diff --git a/.claude/skills/openzl-codec-design/SKILL.md b/.claude/skills/openzl-codec-design/SKILL.md new file mode 100644 index 000000000..46c30be35 --- /dev/null +++ b/.claude/skills/openzl-codec-design/SKILL.md @@ -0,0 +1,231 @@ +--- +name: openzl-codec-design +description: Design patterns and requirements for OpenZL codecs (located under `src/openzl/codecs/`). **USE AUOMATICALLY** when creating, modifying, or reviewing codecs in OpenZL. +--- + +# Creating or Modifying an OpenZL Codec + +## Workflow for Creating a New Codec + +If the user provides an input to this skill, interpret it as an **informal specification** of the codec they want to create. Before writing any code: + +1. **Ask clarifying questions** about the format. Resolve ambiguities around input/output types, element widths, codec header layout, edge cases, error conditions, and whether the codec is public or private. +2. **Write `spec.md` first.** ALWAYS generate the decoder wire format specification (`spec.md`) before any other file. Follow the conventions of existing specs in `src/openzl/codecs/` (inputs, codec header, decoding algorithm, outputs). +3. **Ask the user to verify the spec.** Do NOT proceed with implementation until the user has reviewed and approved the `spec.md`. The spec is the contract — all code flows from it. + +## Security + +### Decoder MUST Be Safe to Malicious Inputs + +The decoder processes untrusted data from compressed frames. All assumptions MUST be validated, especially: +- Bounds on sizes, counts, and offsets read from the frame header +- Element widths and stream types +- Buffer sizes before writing + +Never trust values from the compressed stream without verification. A malicious frame must not cause crashes, out-of-bounds access, or undefined behavior. + +### Encoder MUST Be Safe to Malicious Inputs + +The encoder is processing data that the user provides. Unless explicitly stated otherwise all assumptions MUST be validated. Typcially, this is less of an issue on the encoder side, but any assumptions the encoder makes about the input data (e.g. it doesn't contain the value 0) must be validated, otherwise the data could be corrupted. + +## Requirements + +### General + +- Codecs must work on big & little endian machines, and must not depend on endian-ness. +- Prefer to use helpers that already exist in `src/openzl/shared/`, rather than re-implementing them. + - Especially `openzl/shared/mem.h`, `openzl/shared/bits.h`, and `openzl/shared/utils.h`. +- All code MUST be portable across platforms. E.g. both ARM and x86-64, 32- and 64-bit systems, and both little- and big-endian. + +### Bumping ZL_MAX_FORMAT_VERSION + +When adding a new codec, or making a breaking change to a codec that requires bumping the format version, we need to make sure the development branch bumps the format version. +If not adding a codec or making a format breaking change to a codec, then you can skip this section. + +Determine the production max format version from the `ZL_MAX_FORMAT_VERSION` macro in `fbcode/openzl/prod/include/openzl/zl_version.h`, call it `$prod_max_format_version`. +Determine the development max format version from the `ZL_MAX_FORMAT_VERSION` macro in `fbcode/openzl/dev/include/openzl/zl_version.h`, call it `$dev_max_format_version`. +If `$dev_max_format_version == $prod_max_format_version`, then the development `ZL_MAX_FORMAT_VERSION` in `fbcode/openzl/dev/include/openzl/zl_version.h` must be bumped. +This needs to be done before hooking up the encoder and decoder registry so that the new max format version is used during registration. + +### Format Versioning + +Codecs MUST preserve forward and backward compatibility with all supported format versions from `ZL_MIN_FORMAT_VERSION` to `ZL_MAX_FORMAT_VERSION`. +Codecs MAY change their format, with very careful consideration, but they MUST do it in way that preserves compatibility: + +- `ZL_MAX_FORMAT_VERSION` must be bumped in the dev branch (see above) +- The `spec.md` file MUST be updated to reflect the variation based on the format version +- The encoder MUST check the format version with `ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion)` and only emit the new format for the latest format version +- The encoder MUST maintain the ability to emit the older format versions down to the minimum format version the codec supports +- The decoder MUST check the format version with `DI_getFrameFormatVersion(dictx)` and correctly interpret the encoded data based on the format version + +While codecs are allowed to change their format, this is something that should only be done with extreme care, and done very rarely. +It should NEVER be done on a whim to fix a small issue. +Format versions will be supported for years, so every change compounds the maintainence burden of the code for years. + +### Encoder Parameters + +Parameters MUST be validated and cannot be trusted to match a particular format. +Parameters can come from a serialized compressor, which means that an attacker could control the serialized compressor, so all assumptions about parameters MUST be validated. +E.g. if a parameter is supposed to be an 8-byte uint64_t, then the size of the parameter MUST be validated to be equal to 8. + +## Directory Layout + +Each codec lives in `src/openzl/codecs/{codec_name}/`. A typical codec has these files: + +``` +{codec_name}/ + encode_{codec}_binding.h # Encoder binding API + registration macro (EI_CODEC) + encode_{codec}_binding.c # Encoder binding implementation + encode_{codec}_kernel.h # Encoder kernel API (transportable, no openzl deps) + encode_{codec}_kernel.c # Encoder kernel implementation + decode_{codec}_binding.h # Decoder binding API + registration macro (DI_CODEC) + decode_{codec}_binding.c # Decoder binding implementation + decode_{codec}_kernel.h # Decoder kernel API (transportable, no openzl deps) + decode_{codec}_kernel.c # Decoder kernel implementation + graph_{codec}.h # [optional] Graph descriptor (I/O stream types) + spec.md # [optional] Human-readable decoder wire format spec +``` + +### Kernel vs Binding Split + +**Kernel** = pure algorithm. Minimal deps (C standard library, `openzl/shared/`). No memory allocation. Must be independent of the OpenZL engine and transportable to other contexts. Publishes its own lean interface. + +**Binding** = glue between kernel and OpenZL engine. Implements `ZL_Encoder`/`ZL_Decoder` interfaces. Handles pre-condition checks, error reporting, memory allocation, and kernel orchestration. + +Simple codecs may skip the kernel and put everything in the binding. Complex codecs may have multiple kernel variants. + +See `README.md` for the full conventions. + +### Graph Descriptors + +Define I/O stream types. Common reusable graphs in `src/openzl/codecs/common/graph_pipe.h`: +- `NUMPIPE_GRAPH(id)` — 1 numeric in, 1 numeric out (used by zigzag, delta, divide_by) +- `PIPE_GRAPH(id)` — 1 serial in, 1 serial out (used by lz4, zstd, rolz) + +### spec.md + +A human-readable specification of the decoder wire format: inputs, codec header format, decoding algorithm, and outputs. Written from the decoder's perspective. + +## Encoder Binding Pattern + +The encoder binding header declares the encode function and a registration macro: + +```c +ZL_Report EI_{codec}(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +#define EI_CODEC(id) \ + { .gd = GRAPH_MACRO(id), \ + .transform_f = EI_{codec}, \ + .name = "!zl.{codec}" } +``` + +## Decoder Binding Pattern + +```c +ZL_Report DI_{codec}(ZL_Decoder* dictx, const ZL_Input* in[]); + +#define DI_CODEC(id) { .transform_f = DI_{codec}, .name = "!zl.{codec}" } +``` + +## Adding the Wire Format ID + +In `src/openzl/common/wire_format.h`, add a new entry to the `ZL_StandardTransformID` enum before `ZL_StandardTransformID_end`. Use an available slot (look for gaps marked "available"). These IDs are serialized into compressed frames and must remain **stable forever**. + +## Adding the Encoder Node ID + +- **Public codecs**: Add to `ZL_StandardNodeID` in `include/openzl/zl_nodes.h` (before `ZL_StandardNodeID_public_end`) +- **Private codecs**: Add to `ZL_PrivateStandardNodeID` in `src/openzl/compress/private_nodes.h` (before `ZL_PrivateStandardNodeID_end`) + +## Public C Header (`include/openzl/codecs/`) + +For public codecs, create `include/openzl/codecs/zl_{codec}.h`: + +1. Include `openzl/zl_nodes.h` (for nodes) or `openzl/zl_graphs.h` (for graphs) +2. Wrap in `extern "C"` guards +3. Add a comment block describing the codec's inputs, outputs, and behavior +4. Define the public ID macro: + - Nodes: `#define ZL_NODE_{CODEC} ZL_MAKE_NODE_ID(ZL_StandardNodeID_{codec})` + - Graphs: `#define ZL_GRAPH_{CODEC} ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_{codec})` +5. Optionally define parameter IDs (`ZL_{CODEC}_PID`) and C API functions for parameterized codecs + +Then add `#include "openzl/codecs/zl_{codec}.h" // IWYU pragma: export` to `include/openzl/zl_public_nodes.h`. + +See existing headers in `include/openzl/codecs/` for examples (e.g., `zl_zigzag.h` for simple, `zl_partition.h` for complex). + +## C++ Binding (`cpp/include/openzl/cpp/codecs/`) + +Create `cpp/include/openzl/cpp/codecs/{Codec}.hpp`: + +1. Include the corresponding C header (`openzl/codecs/zl_{codec}.h`) +2. Include C++ framework headers: `Compressor.hpp` and either `Node.hpp` or `Graph.hpp`, plus `Metadata.hpp` +3. Define the class in `namespace openzl::nodes` (or `openzl::graphs`): + - For simple 1-in 1-out nodes: inherit `SimplePipeNode<{Codec}>` + - For simple graphs: inherit `SimpleGraph<{Codec}>` + - For complex codecs: inherit `Node` or `Graph` directly +4. Declare `static constexpr NodeID node = ZL_NODE_{CODEC};` (or `GraphID graph = ZL_GRAPH_{CODEC};`) +5. Declare `static constexpr auto metadata = NodeMetadata{...};` with input/output types, names, and description +6. For parameterized codecs: add constructor taking config, override `parameters()` + +Then add `#include "openzl/cpp/codecs/{Codec}.hpp" // IWYU pragma: export` to `cpp/include/openzl/cpp/Codecs.hpp`. + +See `cpp/include/openzl/cpp/codecs/Zigzag.hpp` for a simple example, `cpp/include/openzl/cpp/codecs/Partition.hpp` for a complex one. + +## Hooking Up the Registries + +### Encoder Registry (`src/openzl/codecs/encoder_registry.c`) + +1. Add `#include "openzl/codecs/{codec}/encode_{codec}_binding.h"` +2. Add entry to `ER_standardNodes[]`: +```c +REGISTER_TRANSFORM(ZL_StandardNodeID_{codec}, ZL_StandardTransformID_{codec}, ZL_MAX_FORMAT_VERSION, EI_CODEC), +``` + +NOTE: Do not use the macro `ZL_MAX_FORMAT_VERSION`, use the current value of that macro! This value tells OpenZL the minimum format version that is required to use this codec, which for new codecs is the current maximum format version. + +### Decoder Registry (`src/openzl/codecs/decoder_registry.c`) + +1. Add `#include "openzl/codecs/{codec}/decode_{codec}_binding.h"` +2. Add entry to `SDecoders_array[]` using the appropriate macro: + - `REGISTER_TTRANSFORM_G` — fixed typed I/O (most common) + - `REGISTER_VOTRANSFORM_G` — variable number of outputs + - `REGISTER_MITRANSFORM_G` — variable number of inputs +```c +REGISTER_TTRANSFORM_G(ZL_StandardTransformID_{codec}, ZL_MAX_FORMAT_VERSION, DI_CODEC, GRAPH_MACRO), +``` + +NOTE: Do not use the macro `ZL_MAX_FORMAT_VERSION`, use the current value of that macro! This value tells OpenZL the minimum format version that is required to use this codec, which for new codecs is the current maximum format version. + +## Testing + +### Adding a Test Component + +See `tests/registry/README.md` and `tests/registry/OpenZLComponents.h` for instructions. + +Steps: +1. Add enum value to `OpenZLComponentID` in `tests/registry/OpenZLComponents.h` (before `NumComponents`) +2. Add factory declaration `make${Component}Component()` in the `components` namespace +3. Add case to the `makeOpenZLComponent()` switch statement +4. Create `tests/registry/components/${Component}.cpp` implementing `OpenZLComponent` + +Required overrides: `name()`, `minFormatVersion()`, `predefinedInputs()` (edge cases). +Optional overrides: `predefinedNodes()`/`predefinedGraphs()`, `generateInputs()`, `generateNodes()`/`generateGraphs()`. + +Prefer using the C++ bindings (e.g., `nodes::Zigzag{}`, `graphs::Bitpack{}`) to create nodes and graphs in the test component rather than raw C API calls. Include from `openzl/cpp/codecs/{Codec}.hpp` and use `parameterize(compressor)` to build nodes/graphs. + +See `tests/registry/components/Zigzag.cpp` for a simple example. + +### Running Component Tests + +```bash +buck test fbcode//openzl/dev/tests:integrationtest +``` + +### Running Component Fuzzers + +Run fuzzers only after all tests pass. Run all 3 in parallel with a 10-minute timeout: + +```bash +arc lionhead bundle run Zstrong_OpenZLComponentFuzzer_FuzzRoundTrip --run-duration-secs 600 +arc lionhead bundle run Zstrong_OpenZLComponentFuzzer_FuzzCompress --run-duration-secs 600 +arc lionhead bundle run Zstrong_OpenZLComponentFuzzer_FuzzDecompress --run-duration-secs 600 +``` diff --git a/.claude/skills/openzl-component-registry/SKILL.md b/.claude/skills/openzl-component-registry/SKILL.md new file mode 100644 index 000000000..a13d0536e --- /dev/null +++ b/.claude/skills/openzl-component-registry/SKILL.md @@ -0,0 +1,6 @@ +--- +name: openzl-component-registry +description: Design documentation for the OpenZL component registry located under tests/registry. **USE AUTOMATICALLY** whenever editing files under tests/registry/. +--- + +@../../../tests/registry/README.md diff --git a/.claude/skills/unitbench-scenarios/SKILL.md b/.claude/skills/unitbench-scenarios/SKILL.md new file mode 100644 index 000000000..4ef4dfbd7 --- /dev/null +++ b/.claude/skills/unitbench-scenarios/SKILL.md @@ -0,0 +1,192 @@ +--- +name: unitbench-openzl-scenarios +description: Use when creating benchmark scenarios for new openzl codec nodes in unitBench - adding kernel-level encode/decode benchmarks or graph-level compress/decompress benchmarks for codecs like bitsplit, delta, transpose, entropy, etc. +--- + +# unitBench Scenario Creation + +Create benchmark scenarios for openzl codec nodes. Two benchmark types exist: **kernel** (test encode/decode kernel functions directly) and **graph** (test a node within a full compress/decompress pipeline). + +## Deciding What to Benchmark + +Before creating scenarios, ask the user: + +1. **Does this node have a standalone kernel function?** (e.g., `ZL_bitSplitEncode`, `ZL_bitSplitDecode`) + - If yes: kernel benchmarks are an option - test the encode/decode functions directly with minimal overhead. + - If no: the node must be tested as part of a graph. + +2. **Should the node be tested in a graph?** + - Graph benchmarks test the full pipeline: tokenization -> node -> downstream processing -> round-trip decompression. + - Useful for measuring real-world overhead vs kernel-only performance. + +3. **What data types/widths does the node operate on?** + - Determines element widths, bit layouts, and which tokenizer node to use in graphs. + - Ask the user for the specific parameters (bitWidths, element widths, etc.). + +## File Locations + +| What | Where | +|------|-------| +| Kernel benchmarks | `benchmark/unitBench/scenarios/codecs/.c` and `.h` | +| Graph benchmarks | `benchmark/unitBench/scenarios/_graph.c` and `.h` | +| Scenario registration | `benchmark/unitBench/benchList.h` | +| BUCK file | `benchmark/unitBench/BUCK` | +| Test data | `/tmp/` (use `dd if=/dev/urandom`) | + +All paths relative to the openzl dev root. + +## Kernel Benchmark + +Test encode/decode kernel functions directly. Requires a standalone kernel API. + +### Header (`.h`) + +Add declarations to existing `scenarios/codecs/.h` or create a new one: + +```c +// Decode +size_t Decode__prep(void* src, size_t srcSize, const BenchPayload* bp); +size_t Decode__outSize(const void* src, size_t srcSize); +size_t Decode__wrapper(const void* src, size_t srcSize, void* dst, size_t dstCapacity, void* customPayload); + +// Encode +size_t Encode__prep(void* src, size_t srcSize, const BenchPayload* bp); +size_t Encode__outSize(const void* src, size_t srcSize); +size_t Encode__wrapper(const void* src, size_t srcSize, void* dst, size_t dstCapacity, void* customPayload); +``` + +### Source (`.c`) + +**Decode scenario:** prep packs split streams contiguously into src, wrapper recomputes pointers and calls the decode kernel, outSize returns `(srcSize / sumSrcElt) * dstEltWidth`. + +**Encode scenario:** prep fills src with random values, wrapper calls the encode kernel writing streams contiguously into dst, outSize returns `(srcSize / srcEltWidth) * sumDstElt`. + +**Reference implementation:** See `scenarios/codecs/bitSplit.c` for the complete pattern with multiple data type examples. + +## Graph Benchmark + +Test a node within a full compress/decompress graph. Required when no standalone kernel exists. Also useful alongside kernel benchmarks to measure graph overhead. + +### Header (`.h`) + +```c +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef GUARD_MACRO_H +#define GUARD_MACRO_H + +#include "openzl/shared/portability.h" +#include "openzl/zl_compressor.h" + +ZL_BEGIN_C_DECLS + +ZL_GraphID _graph(ZL_Compressor* cgraph); + +ZL_END_C_DECLS + +#endif +``` + +### Source (`.c`) + +Build the graph using `ZL_Compressor_registerStaticGraph_fromNode1o`. Typical pattern: tokenize input -> apply node -> downstream graph. + +```c +#include "openzl/codecs/zl_.h" // ZL_NODE_ +#include "openzl/zl_compressor.h" +#include "openzl/zl_public_nodes.h" // ZL_NODE_INTERPRET_AS_LE* + +ZL_GraphID my_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, // tokenizer matching element width + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_YOUR_NODE, ZL_GRAPH_STORE)); + // ZL_GRAPH_STORE to benchmark node in isolation + // ZL_GRAPH_ZSTD to benchmark with compression +} +``` + +**Tokenizer node must match element width:** `ZL_NODE_INTERPRET_AS_LE16` (2 bytes), `ZL_NODE_INTERPRET_AS_LE32` (4 bytes), `ZL_NODE_INTERPRET_AS_LE64` (8 bytes). + +**Reference:** See `scenarios/sao_graph.c` for a complex multi-stream graph example. + +## Registration + +### benchList.h + +1. Add include for graph header (near other graph includes around line 171): +```c +#include "benchmark/unitBench/scenarios/_graph.h" +``` + +2. Add entries to `scenarioList[]` array (**maintain alphabetical order**): +```c +// Kernel scenarios (set .func via first positional arg) +{ "Decode_", Decode__wrapper, .prep = Decode__prep, .outSize = Decode__outSize }, +{ "Encode_", Encode__wrapper, .prep = Encode__prep, .outSize = Encode__outSize }, + +// Graph scenario (set .graphF - harness auto-wires init and compression) +{ "", .graphF = _graph }, +``` + +### BUCK + +Add a library target for graph benchmarks (following `sao_graph` pattern): +```python +zs_library( + name = "_graph", + srcs = ["scenarios/_graph.c"], + headers = ["scenarios/_graph.h"], + deps = [ + "../..:zstronglib", + ], +) +``` + +Kernel `.c`/`.h` files are auto-included by the unitBench binary's `glob(["**/*.c"])`. + +## Test Data and Running + +**Test data size must be a multiple of the element width** for the codec/node being tested. For example, fp64 (8-byte elements) needs a file size divisible by 8. Using standard sizes like 1MB/10MB works for all common element widths. + +```bash +# Generate test data (use sizes that are multiples of element width) +dd if=/dev/urandom of=/tmp/openzl_bench/test_1MB.bin bs=1M count=1 +dd if=/dev/urandom of=/tmp/openzl_bench/test_10MB.bin bs=1M count=10 + +# Build with BUCK in opt mode (best practice - optimized, no ASAN) +buck build @//mode/opt //openzl/dev/benchmark/unitBench:unitBench + +# Run benchmark via buck run +buck run @//mode/opt //openzl/dev/benchmark/unitBench:unitBench -- /tmp/openzl_bench/test_10MB.bin + +# Useful options (after the -- separator) +# -i benchmark duration (default ~2s) +# -B split input into blocks +# --csv CSV output for parsing +# -z compression only (skip decompression round-trip) + +# List all scenarios +buck run @//mode/opt //openzl/dev/benchmark/unitBench:unitBench -- --list +``` + +**Always use `buck build/run @//mode/opt`** for benchmarking. If buck is not available, fall back to `make unitBench` (from the openzl dev root). + +## Common Mistakes + +- **Forgetting prep function:** Kernel decode benchmarks need prep to fill split streams. Encode benchmarks need prep to fill random source values. +- **Wrong outSize:** Decode: `(srcSize / sumSrcElt) * dstEltWidth`. Encode: `(srcSize / srcEltWidth) * sumDstElt`. +- **Graph not setting formatVersion:** Must set `ZL_CParam_formatVersion` to `ZL_MAX_FORMAT_VERSION` for newer nodes. +- **scenarioList not alphabetical:** Entries must be in alphabetical order by name. +- **Test data in repo:** Put test data in `/tmp/`, not in the source tree. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..755a46af1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Downloads data '...' +2. Run '...' with flags '...' +3. Scroll up on the log to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots and charts** +If applicable, add screenshots and charts to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. Mac] + - Version [e.g. 22] + - Compiler [e.g. gcc] + - Flags [e.g. O2] + - Other relevant hardware specs [e.g. Dual-core] + - Build system [e.g. Makefile] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..bbcbbe7d6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..0b38e64f3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,27 @@ + + +## Summary + + +Fixes #(issue) + +## Type of Change + + + + + + + + + + +## Test Plan + + + +### Test Configuration + +- Compiler: +- Build type: +- Platform(s): diff --git a/.github/workflows/cmake-ci.yml b/.github/workflows/cmake-ci.yml index efe0c9a11..077982404 100644 --- a/.github/workflows/cmake-ci.yml +++ b/.github/workflows/cmake-ci.yml @@ -7,6 +7,7 @@ on: branches: [dev] pull_request: branches: [dev, master, actionsTest] + workflow_dispatch: {} env: # Common environment variables @@ -29,6 +30,11 @@ jobs: os: ubuntu-latest build_mode: dev extra_flags: "-Werror" + - name: "CMake Linux (cmake 3.20.2)" + os: ubuntu-latest + build_mode: dev + extra_flags: "-Werror" + cmake_version: "3.20.2" - name: "CMake macOS" os: macos-latest build_mode: dev @@ -52,6 +58,15 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install specific CMake version + if: ${{ matrix.cmake_version != '' }} + run: | + sudo apt-get remove --purge -y cmake + pip install cmake==${{ matrix.cmake_version }} + + - name: Check CMake version + run: cmake --version + - name: Configure CMake run: | cmake -E make_directory ${{github.workspace}}/build @@ -90,18 +105,20 @@ jobs: - name: Build working-directory: ${{github.workspace}}/build - run: make + run: make -j2 - name: Build unitBench if: ${{ matrix.name == 'CMake Linux' }} working-directory: ${{github.workspace}}/build - run: cmake --build . --target unitBench + run: cmake --build . --parallel --target unitBench - name: Test + if: ${{ matrix.cmake_version == '' }} working-directory: ${{github.workspace}}/build run: ctest --output-on-failure - name: Install + if: ${{ matrix.cmake_version == '' }} working-directory: ${{github.workspace}}/build run: make install @@ -112,4 +129,20 @@ jobs: steps: - uses: actions/checkout@v4 - name: Test CMake installation - run: ./build/cmake/tests/test-install.py + run: ./build-scripts/cmake/tests/test-install.py + + # Tarball build test (no git repository) + cmake-tarball-test: + name: CMake Tarball Build Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Test tarball build scenario + run: | + # Simulate tarball environment by removing git repo and deps + rm -rf .git deps/zstd + # Configure and build -- should download deps + cmake -B cmakebuild -DOPENZL_BUILD_TESTS=ON -DOPENZL_ALLOW_INTROSPECTION=OFF + cmake --build cmakebuild + # quick runtime check, to verify it works + cmakebuild/cli/zli --version diff --git a/.github/workflows/cross-platform-ci.yml b/.github/workflows/cross-platform-ci.yml index 6b5d4b31e..b5316ecb2 100644 --- a/.github/workflows/cross-platform-ci.yml +++ b/.github/workflows/cross-platform-ci.yml @@ -7,6 +7,7 @@ on: branches: [dev] pull_request: branches: [dev, master, actionsTest] + workflow_dispatch: {} env: # Common environment variables diff --git a/.github/workflows/dev-ci.yml b/.github/workflows/dev-ci.yml index 765d02ff2..9b1f0e4c1 100644 --- a/.github/workflows/dev-ci.yml +++ b/.github/workflows/dev-ci.yml @@ -7,6 +7,7 @@ on: branches: [dev] pull_request: branches: [dev, master, actionsTest] + workflow_dispatch: {} env: # Common environment variables @@ -130,6 +131,10 @@ jobs: flags: "-Werror -Wgnu-anonymous-struct -DZS_ENABLE_CLANG_PRAGMA -Wno-implicit-fallthrough" steps: - uses: actions/checkout@v4 + - name: Install GCC-9 + if: ${{ matrix.cc == 'gcc-9' }} + run: | + sudo apt install gcc-9 g++-9 - name: Build env: CC: ${{ matrix.cc }} @@ -183,6 +188,28 @@ jobs: - name: Run tests run: make test + # Header compatibility tests (compile-only) + test-c99-compat: + name: C99 Compatibility + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Verify public headers compile under strict C99 + run: CC=clang make c99_compat + + # CLI integration testing + test-cli: + name: CLI Integration Tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Run CLI integration tests + run: make cli_test + # Sanitizer testing test-sanitizers: name: ${{ matrix.name }} @@ -216,18 +243,32 @@ jobs: CC: ${{ matrix.cc || 'cc' }} run: make test - # Code quality checks + # # Code quality checks test-quality: name: Code Quality (clang-format) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run clang-format style check - uses: jidicula/clang-format-action@1ca6f2218b4d8a56817f3654c4a7f47d34117251 # v4.8.0 + uses: jidicula/clang-format-action@6cd220de46c89139a0365edae93eee8eb30ca8fe # v4.16.0 with: - clang-format-version: '18' + clang-format-version: '21' check-path: '.' - exclude-regex: '.*/fbcode_builder/.*' + + # Python formatting check + test-python-format: + name: Code Quality (ruff) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Install ruff + run: pip install ruff==0.15.0 + - name: Check Python formatting with ruff + run: make check-python-format # Static analysis test-static-analysis: @@ -241,7 +282,7 @@ jobs: sudo apt-get install -y clang-tools - name: Run scan-build continue-on-error: true - run: CFLAGS="-Og -g" scan-build --status-bugs -v make -j unitBench V=1 + run: CFLAGS="-Og -g" scan-build --status-bugs -v make -j2 unitBench V=1 # ============================================================================= # FUTURE WORK / DISABLED JOBS diff --git a/.github/workflows/openzl-demo-wheels.yml b/.github/workflows/openzl-demo-wheels.yml new file mode 100644 index 000000000..db47934ec --- /dev/null +++ b/.github/workflows/openzl-demo-wheels.yml @@ -0,0 +1,64 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +name: OpenZL Demo Wheels + +on: + workflow_dispatch: + pull_request: + branches: + - openzl-demo + push: + branches: + - openzl-demo + +jobs: + build_sdist: + name: Build SDist + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Build SDist + run: pipx run build --sdist contrib/openzl-demo + + - name: Check metadata + run: pipx run twine check contrib/openzl-demo/dist/* + + - uses: actions/upload-artifact@v4 + with: + name: dist-sdist + path: contrib/openzl-demo/dist/*.tar.gz + + + build_wheels: + name: Wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + # Once MSVC is supported we can build Windows packages as well by adding windows-latest + # Once we're public we can build on ubuntu-24.04-arm & windows-11-arm. + # They are not supported for private repos. + # TODO: Remove filesystem for macos-13 + os: [ubuntu-latest, macos-latest] + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: pypa/cibuildwheel@v3.0.0 + with: + package-dir: contrib/openzl-demo + + - name: Verify clean directory + run: git diff --exit-code + shell: bash + + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + path: wheelhouse/*.whl + name: dist-${{ matrix.os }} diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml new file mode 100644 index 000000000..a68ff3dde --- /dev/null +++ b/.github/workflows/release-binaries.yml @@ -0,0 +1,132 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +name: Release Binaries + +# This workflow builds pre-compiled binaries and attaches them to github releases +# It is triggered by a release event, this builds and uploads binaries to that release + +# Usage: +# 1. Go to Github -> Releases -> Create a new release +# 2. Create a new tag (e.g., v1.0.0) and publish the release +# 3. This workflow automatically runs and attaches binaries + +# You can also manually trigger the workflow via workflow_dispatch for testing + +on: + release: + types: [published] + workflow_dispatch: + +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + +permissions: + contents: write # Required to upload assets to GitHub Releases + +jobs: + # =============================================================================# + # VALIDATE VERSION TAG MATCHES SOURCE + # =============================================================================# + validate-version: + name: Validate release tag matches source version + if: github.event_name == 'release' + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Check version consistency + run: | + MAJOR=$(grep '#define ZL_LIBRARY_VERSION_MAJOR' include/openzl/zl_version.h | awk '{print $3}') + MINOR=$(grep '#define ZL_LIBRARY_VERSION_MINOR' include/openzl/zl_version.h | awk '{print $3}') + PATCH=$(grep '#define ZL_LIBRARY_VERSION_PATCH' include/openzl/zl_version.h | awk '{print $3}') + SOURCE_VERSION="v${MAJOR}.${MINOR}.${PATCH}" + TAG="${{ github.event.release.tag_name }}" + echo "Source version: $SOURCE_VERSION" + echo "Release tag: $TAG" + if [ "$SOURCE_VERSION" != "$TAG" ]; then + echo "::error::Version mismatch! zl_version.h says $SOURCE_VERSION but release tag is $TAG. Please update zl_version.h to match the release tag." + exit 1 + fi + + # =============================================================================# + # WINDOWS X64 BINARY + # =============================================================================# + build-windows-x64: + name: Windows X64 CLI Binary + needs: validate-version + if: always() && (needs.validate-version.result == 'success' || needs.validate-version.result == 'skipped') + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup MSYS2 with MinGW-w64 + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + install: make diffutils cmake git mingw-w64-x86_64-gcc + update: true + + - name: Show build environment + run: | + echo "=== Build environment ===" + gcc --version + g++ --version + make --version + echo "=== Build environment verified ===" + + + - name: Build dependencies + run: | + echo "=== Building dependencies ===" + make -j builddeps + echo "=== Dependencies built ===" + + + - name: Build zli CLI (statically linked) + run: | + echo "=== Building zli CLI executable ===" + LDFLAGS="-static" make -j zli BUILD_TYPE=OPT V=1 + echo "=== zli CLI executable build completed ===" + + + - name: Prepare release artifact + run: | + echo "=== Preparing release artifact ===" + mkdir release + cp zli.exe release/openzl-cli-windows-x64.exe + echo "=== Release artifact prepared ===" + ls -la release + + - name: Verify release artifact + run: | + echo "=== Verifying binary runs standalone ===" + ./release/openzl-cli-windows-x64.exe --version + echo "=== Checking for non-system DLL dependencies ===" + objdump -p release/openzl-cli-windows-x64.exe | grep "DLL Name" || true + echo "=== Checking binary size ===" + ls -lh release/openzl-cli-windows-x64.exe + echo "=== Release artifact verified ===" + + + - name: Upload binary to Github Releases + if: github.event_name == 'release' + shell: bash + run: gh release upload "${{ github.event.release.tag_name }}" release/openzl-cli-windows-x64.exe --clobber + env: + GH_TOKEN: ${{ github.token }} + + - name: Upload artifact (for manual workflow runs) + uses: actions/upload-artifact@v4 + with: + name: openzl-cli-windows-x64 + path: release\openzl-cli-windows-x64.exe + retention-days: 30 + +# =============================================================================# +# Future platform support will go here +# =============================================================================#s diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index fb4c627df..3bd2d4dce 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -4,14 +4,28 @@ name: Wheels on: workflow_dispatch: + + # Only run on PRs that either touch the Python bindings or the CMake build system. + # This is an expensive workflow that almost always passes when Python isn't modified, + # so only run it when it's needed. The tests will still be run on commit for everything. pull_request: + paths: + - 'py/**' + - 'CMakeLists.txt' + - 'build-scripts/**' + - '.github/workflows/wheels.yml' + + # Always run on commit to dev branch to ensure the test is consistently run. + # There are far fewer commits than PR versions, so this is relatively cheap. push: branches: - - dev + - dev + release: types: - published + jobs: build_sdist: name: Build SDist @@ -42,7 +56,7 @@ jobs: # Once MSVC is supported we can build Windows packages as well by adding windows-latest # Once we're public we can build on ubuntu-24.04-arm & windows-11-arm. # They are not supported for private repos. - os: [ubuntu-latest, macos-13, macos-latest] + os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@v4 @@ -65,21 +79,21 @@ jobs: # This can be uncommented to support automatic uploads to PyPI on release # once OpenZL is publicly available. - # upload_all: - # name: Upload if release - # needs: [build_wheels, build_sdist] - # runs-on: ubuntu-latest - # if: github.event_name == 'release' && github.event.action == 'published' - - # steps: - # - uses: actions/setup-python@v5 - # - uses: actions/download-artifact@v4 - # with: - # path: dist - # pattern: dist-* - # merge-multiple: true - - # - uses: pypa/gh-action-pypi-publish@release/v1 - # with: - # user: __token__ - # password: ${{ secrets.pypi_password }} + upload_all: + name: Upload if release + needs: [build_wheels, build_sdist] + runs-on: ubuntu-latest + if: github.event_name == 'release' && github.event.action == 'published' + + steps: + - uses: actions/setup-python@v5 + - uses: actions/download-artifact@v4 + with: + path: dist + pattern: dist-* + merge-multiple: true + + - uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.pypi_password }} diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 2c1509a51..8b9100ecb 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -7,6 +7,7 @@ on: branches: [dev] pull_request: branches: [dev, master, actionsTest] + workflow_dispatch: {} env: # Common environment variables @@ -39,9 +40,9 @@ jobs: echo "=== Testing Windows Compiler Detection Script ===" echo "This validates our Windows setup script works correctly in CI" echo "Testing help functionality..." - powershell -ExecutionPolicy Bypass -File build/cmake/detect_windows_compiler.ps1 -Help + powershell -ExecutionPolicy Bypass -File build-scripts/cmake/detect_windows_compiler.ps1 -Help echo "Testing detection functionality (without builds)..." - powershell -ExecutionPolicy Bypass -File build/cmake/detect_windows_compiler.ps1 -DetectOnly + powershell -ExecutionPolicy Bypass -File build-scripts/cmake/detect_windows_compiler.ps1 -DetectOnly echo "=== Script functionality tests completed successfully ===" shell: cmd @@ -78,7 +79,7 @@ jobs: run: | echo "=== Running Windows Compiler Detection Script ===" echo "This will detect available compilers and verify clang-cl setup" - powershell -ExecutionPolicy Bypass -File build/cmake/detect_windows_compiler.ps1 -DetectOnly + powershell -ExecutionPolicy Bypass -File build-scripts/cmake/detect_windows_compiler.ps1 -DetectOnly echo "=== Manual verification ===" where clang-cl clang-cl --version @@ -128,14 +129,23 @@ jobs: ) shell: cmd - - name: Build + - name: Build openzl working-directory: ${{github.workspace}}/build run: | - echo "=== Building with clang-cl ===" + echo "=== Building openzl with clang-cl ===" cmake --build . --config ${{ matrix.config }} --target openzl --verbose echo "=== Build completed ===" shell: cmd + - name: Build all targets + if: matrix.arch == 'x64' && matrix.config == 'Release' + working-directory: ${{github.workspace}}/build + run: | + echo "=== Building all targets with clang-cl ===" + cmake --build . --config Release --verbose + echo "=== Build completed ===" + shell: cmd + # ============================================================================= # WINDOWS BUILDS (MinGW) # ============================================================================= @@ -166,7 +176,7 @@ jobs: uses: msys2/setup-msys2@v2 with: msystem: ${{ matrix.msystem }} - install: make diffutils cmake git + install: make diffutils cmake git python update: true - name: Install MinGW GCC (i686) @@ -205,10 +215,12 @@ jobs: - name: Build and test run: | echo "=== Testing $CC $CXX ${{ matrix.msystem }} ===" - CFLAGS=-Werror CXXFLAGS=-Werror make -j test V=1 + CFLAGS=-Werror make lib V=1 + CFLAGS=-Werror CXXFLAGS=-Werror make test V=1 + echo "=== Building with make -j ===" + make -j V=1 echo "=== Build and test completed successfully ===" - # ============================================================================= # CHOCOLATEY MinGW-w64 (pure Windows, no MSYS2) — build with `make` # Note: this test is currently failing at link stage, disabling it for now diff --git a/.gitignore b/.gitignore index fa441b53f..2f2443aad 100644 --- a/.gitignore +++ b/.gitignore @@ -37,18 +37,24 @@ libzl.a libzl.so libopenzl.a libopenzl.so +sddl_compiler +sddl2_arithmetic_test +sddl2_input_test +sddl2_segments_test +sddl2_tagged_segments_test +sddl2_type_size_test +sddl2_vm_test # dependencies /deps/* -!/deps/nci-short -!/deps/sao-short -!/deps/json_examples.json # Build system temporary objects +build/ build-*/ __pycache__/ .cache/ cmakebuild/ +cmake-build/ # VSCode CMake artifacts .vs @@ -63,6 +69,7 @@ cmakebuild/ # environment .venv .DS_Store +*.dSYM/ # corpus download /_corpus/ @@ -77,3 +84,6 @@ vrs_index_* *.zs.streams.* benchresult.bin* tmp* + +# CTest artifacts +Testing/ diff --git a/.gitmodules b/.gitmodules index 019a45dc1..38e0f003e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,14 @@ [submodule "deps/zstd"] path = deps/zstd url = https://github.com/facebook/zstd.git + +[submodule "deps/lz4"] + path = deps/lz4 + url = https://github.com/lz4/lz4.git + +[submodule "deps/xgboost"] + path = deps/xgboost + url = https://github.com/dmlc/xgboost.git +[submodule "deps/googletest"] + path = deps/googletest + url = https://github.com/google/googletest.git diff --git a/.vscode/settings.json b/.vscode/settings.json index 28eebaa46..33dcd13a5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,10 @@ { "cmake.copyCompileCommands": "${workspaceFolder}/compile_commands.json", - "cmake.buildDirectory": "${workspaceFolder}/build", - "cmake.useCMakePresets": "always", + "cmake.buildDirectory": "${workspaceFolder}/cmakebuild", + "cmake.useCMakePresets": "auto", + "cmake.configureArgs": [ + "-DOPENZL_BUILD_ALL=ON" + ], "files.associations": { "array": "cpp", "string_view": "cpp", @@ -9,5 +12,40 @@ "vector": "cpp", "*.make": "makefile" }, - "files.trimTrailingWhitespace": true + "files.trimTrailingWhitespace": true, + "C_Cpp.default.compileCommands": "${workspaceFolder}/compile_commands.json", + "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", + "C_Cpp.intelliSenseEngine": "default", + "C_Cpp.codeAnalysis.runAutomatically": true, + "clangd.arguments": [ + "--compile-commands-dir=${workspaceFolder}", + "--header-insertion=iwyu" + ], + + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "css", + ], + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "[javascript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[typescript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[css]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "eslint.format.enable": true } diff --git a/BUCK b/BUCK index 9c89f17c7..fe5c6aeb9 100644 --- a/BUCK +++ b/BUCK @@ -1,6 +1,8 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load(":defs.bzl", "private_headers", "public_headers", "zs_library") +load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") +load("@fbcode_macros//build_defs:python_library.bzl", "python_library") +load(":defs.bzl", "private_headers", "public_headers", "zl_fbcode_is_release_pp_flag", "zs_library") oncall("data_compression") @@ -30,6 +32,10 @@ zs_library( ], )), header_namespace = "", + propagated_pp_flags = [ + zl_fbcode_is_release_pp_flag(), + "-DZL_IS_FBCODE=1", + ], exported_deps = [ ":config", ], @@ -95,8 +101,12 @@ zs_library( # "-mavx2", "-DUSE_FOLLY", ], + deps = [ + "fbsource//third-party/lz4:lz4", + ], exported_deps = [ ":common", + ":dict", ":fse", ], exported_external_deps = [ @@ -123,8 +133,12 @@ zs_library( "src/zstrong/transforms/decoder_registry.h", ])), header_namespace = "", + deps = [ + "fbsource//third-party/lz4:lz4", + ], exported_deps = [ ":common", + ":dict", ":fse", ], exported_external_deps = [ @@ -132,12 +146,30 @@ zs_library( ], ) +zs_library( + name = "dict", + srcs = glob([ + "src/openzl/dict/**/*.c", + ]), + headers = private_headers(glob([ + "src/openzl/dict/**/*.h", + ])), + header_namespace = "", + deps = [ + ":common", + ], + exported_deps = [ + ":public_headers", + ], +) + zs_library( name = "zstronglib", exported_deps = [ ":common", ":compress", ":decompress", + ":dict", ], exported_external_deps = [ "zstd", @@ -149,10 +181,14 @@ zs_library( name = "fse", srcs = glob([ "src/openzl/fse/**/*.c", - "src/openzl/fse/**/*.S", "src/zstrong/fse/**/*.c", - "src/zstrong/fse/**/*.S", - ]), + ]) + select({ + "DEFAULT": glob([ + "src/openzl/fse/**/*.S", + "src/zstrong/fse/**/*.S", + ]), + "ovr_config//compiler:msvc": [], + }), headers = private_headers(glob([ "src/openzl/fse/**/*.h", "src/zstrong/fse/**/*.h", @@ -163,3 +199,82 @@ zs_library( ":config", ], ) + +cpp_library( + # @autodeps-skip + name = "openzl_fbcode", + visibility = ["//openzl:openzl"], + exported_deps = [ + "custom_parsers:pytorch_model_parser", # @manual + "custom_parsers:zip_lexer", # @manual + "custom_transforms/json_extract:json_extract", # @manual + "custom_transforms/parse:parse", # @manual + "custom_transforms/thrift:thrift_lib", # @manual + "custom_transforms/thrift:thrift_parse_config_schema-cpp2-types", # @manual + "custom_transforms/thrift/kernels:decode_thrift_binding", # @manual + "custom_transforms/thrift/kernels:encode_thrift_binding", # @manual + "custom_transforms/tulip_v2:tulip_v2", # @manual + "tools:zstrong_cpp", # @manual + "tools:zstrong_json", # @manual + "tools:zstrong_ml", # @manual + ":openzl_core", # @manual + ], +) + +# This target exposes the standalone OpenZL core library that only has zstd as an external dependency. +cpp_library( + # @autodeps-skip + name = "openzl_core", + visibility = ["//openzl:openzl_core"], + exported_deps = [ + "cpp:openzl_cpp", # @manual + ], +) + +cpp_library( + # @autodeps-skip + name = "openzl_training", + visibility = ["//openzl:openzl_training"], + exported_deps = [ + "tools/training:train", # @manual + ], +) + +# Not intended to be widely used. A supported Python binding is coming. +python_library( + # @autodeps-skip + name = "openzl_py_deprecated", + visibility = ["//openzl:openzl_py_deprecated"], + deps = [ + "custom_transforms/thrift:thrift_parse_config_schema-py3-types", # @manual + "custom_transforms/thrift:thrift_parse_config_schema-python-types", # @manual + "tools/py:zstrong_json", # @manual + "tools/py:zstrong_ml", # @manual + ], +) + +# Do not use in production builds. +cpp_library( + # @autodeps-skip + name = "openzl_test_utils", + visibility = ["//openzl:openzl_test_utils"], + exported_deps = [ + "custom_transforms/thrift/tests:thrift_test_utils", # @manual + "custom_transforms/tulip_v2/tests:tulip_v2_data_utils", # @manual + "tests:fuzz_utils", # @manual + "tests:selector_optimization", # @manual + "tests:test_zstrong_fixtures", # @manual + "tests/datagen:datagen", + "tools:fileio", # @manual + "tools/streamdump:stream_dump2_headers", # @manual + ], +) + +python_library( + # @autodeps-skip + name = "openzl_py", + visibility = ["//openzl:openzl_py"], + deps = [ + "py:openzl", + ], +) diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 000000000..aadbc5bb1 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,5 @@ +v0.1.0 (2025-10-06) +Initial release + +v0.0.23 (2025-09-30) +Repo snapshot for whitepaper reproducibility diff --git a/CMakeLists.txt b/CMakeLists.txt index 7dc165118..c6c77432c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ project(${PACKAGE_NAME} CXX C ASM) # ---- Build Options ---- option(OPENZL_BUILD_ALL "Build all optional components" OFF) -option(OPENZL_BUILD_SHARED_LIBS "Build as shared library" ${OPENZL_BUILD_ALL}) +option(OPENZL_BUILD_SHARED_LIBS "Build as shared library" OFF) option(OPENZL_BUILD_TESTS "Build tests" ${OPENZL_BUILD_ALL}) option(OPENZL_BUILD_BENCHMARKS "Build benchmarks" ${OPENZL_BUILD_ALL}) # Apache Arrow build is broken due to missing thrift download. @@ -23,6 +23,7 @@ option(OPENZL_BUILD_PYTHON_EXT_TESTS "Build Python extension tests" ${OPENZL_BUI option(OPENZL_ALLOW_INTROSPECTION "Allow introspection" ON) option(OPENZL_INSTALL "Install OpenZL" ON) option(OPENZL_CPP_INSTALL "Install C++ bindings" ${OPENZL_INSTALL}) +option(OPENZL_BUILD_PYTHON_DEMO "Build openzl_demo Python extension" ${OPENZL_BUILD_ALL}) # Fine-grained control of build directories that can be disabled. # NOTE: Disabling some but not all of these may break the build, use with caution. @@ -38,19 +39,19 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # ---- CMake Module Path ---- set(CMAKE_MODULE_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/cmake" # For in-fbsource release builds "${CMAKE_CURRENT_SOURCE_DIR}/../../opensource/fbcode_builder/CMake" # For in-fbsource dev builds "${CMAKE_CURRENT_SOURCE_DIR}/../../../opensource/fbcode_builder/CMake" # For shipit-transformed builds - "${CMAKE_CURRENT_SOURCE_DIR}/build/fbcode_builder/CMake" + "${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/fbcode_builder/CMake" ${CMAKE_MODULE_PATH}) # ---- Package Information ---- if (NOT DEFINED PACKAGE_VERSION) # TODO: How do we set the package version based on our headers? - set(PACKAGE_VERSION "0.0.0-dev") + set(PACKAGE_VERSION "0.2.0") endif() set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}") @@ -133,7 +134,7 @@ include(OpenZLFunctions) include(openzl-deps) include(OpenZLConfigChecks) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/build/cmake/zl_config.h.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/build-scripts/cmake/zl_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/include/openzl/zl_config.h ) set(CONFIG "${CMAKE_CURRENT_BINARY_DIR}/include/openzl/zl_config.h") @@ -213,10 +214,8 @@ if (OPENZL_BUILD_TESTS) googletest # v1.14.0 URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip URL_HASH SHA256=1f357c27ca988c3f7c6b4bf68a9395005ac6761f034046e9dde0896e3aba00e4 - OVERRIDE_FIND_PACKAGE ) FetchContent_MakeAvailable(googletest) - find_package(googletest REQUIRED) include(GoogleTest) enable_testing() @@ -252,6 +251,10 @@ if (OPENZL_BUILD_BENCHMARKS) add_subdirectory(benchmark) endif() +if (OPENZL_BUILD_PYTHON_DEMO) + add_subdirectory(contrib/openzl-demo) +endif() + if (OPENZL_INSTALL) set(OPENZL_INSTALL_TARGETS openzl openzl_deps) @@ -287,7 +290,7 @@ if (OPENZL_INSTALL) # files using "find_package(openzl CONFIG)" include(CMakePackageConfigHelpers) configure_package_config_file( - build/cmake/openzl-config.cmake.in + build-scripts/cmake/openzl-config.cmake.in openzl-config.cmake INSTALL_DESTINATION ${OPENZL_INSTALL_CMAKEDIR} PATH_VARS diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 21c4241d0..32f2900c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,17 +1,23 @@ -# Contributing to zstrong +# Contributing to OpenZL + We want to make contributing to this project as easy and transparent as possible. ## Pull Requests We actively welcome your pull requests. -1. Fork the repo and create your branch from `master`. +1. Fork the repo and create your branch from `dev`. 2. If you've added code that should be tested, add tests. 3. If you've changed APIs, update the documentation. 4. Ensure the test suite passes. 5. Make sure your code lints. 6. If you haven't already, complete the Contributor License Agreement ("CLA"). +### Common reasons for a rejected pull request +- OpenZL currently expects its library of standard codecs to be generalized and well-tested. We are happy to link to useful custom codecs, but cannot accept pull requests adding them to the library. If you have a general codec that you would like to contribute, please create an issue for discussion before submitting a pull request. +- Large codemods are difficult to verify and will be rejected unless they are accompanied with the generating scripts. +- Low-impact pull requests that are transparently for "stat-padding" will be rejected. + ## Contributor License Agreement ("CLA") In order to accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Facebook's open source projects. diff --git a/LICENSE b/LICENSE index ecca4ac3e..863b757fc 100644 --- a/LICENSE +++ b/LICENSE @@ -7,8 +7,8 @@ Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation @@ -18,13 +18,13 @@ are permitted provided that the following conditions are met: be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Makefile b/Makefile index 5550bec28..f26e4ad84 100644 --- a/Makefile +++ b/Makefile @@ -5,24 +5,60 @@ default : zli # Common repository-wide definitions -include build/make/zldefs.make +include build-scripts/make/zldefs.make # Provides macros to generate targets -include build/make/multiconf.make +include build-scripts/make/multiconf.make + +# ===================================== +# ADAPTIVE mode: Per-Target Smart Defaults +# ===================================== +# In ADAPTIVE mode, targets add their own appropriate flags +# In coercive modes (OPT, DEV, etc.), these complement are overridden by global settings +ifeq ($(BUILD_TYPE),ADAPTIVE) + # Production binaries: optimize for performance + zli: CFLAGS += -g0 -O3 + zli: CXXFLAGS += -g0 -O3 + zli: CPPFLAGS += -DNDEBUG + + libopenzl.a: CFLAGS += -g0 -O3 + libopenzl.so: CFLAGS += -g0 -O3 + libopenzl.a: CPPFLAGS += -DNDEBUG + libopenzl.so: CPPFLAGS += -DNDEBUG + + # Benchmarks: optimize for representative performance + unitBench: CFLAGS += -g0 -O3 + unitBench: CPPFLAGS += -DNDEBUG + + # Test programs: enable asserts for correctness checking + gtests: CFLAGS += -g + gtests: CXXFLAGS += -g + gtests: CPPFLAGS += -DZL_ENABLE_ASSERT +endif # dependencies ifneq (,$(filter Windows%,$(OS))) LIBZSTD_SO := deps/zstd/lib/dll/libzstd.dll +LIBLZ4_SO := deps/lz4/lib/liblz4.dll +LIBXGBOOST_SO := deps/xgboost/lib/libxgboost.dll else ifeq ($(shell uname), Darwin) LIBZSTD_SO := deps/zstd/lib/libzstd.dylib +LIBLZ4_SO := deps/lz4/lib/liblz4.dylib +LIBXGBOOST_SO := deps/xgboost/lib/libxgboost.dylib else LIBZSTD_SO := deps/zstd/lib/libzstd.so +LIBLZ4_SO := deps/lz4/lib/liblz4.so +LIBXGBOOST_SO := deps/xgboost/lib/libxgboost.so endif LIBZSTD_A := deps/zstd/lib/libzstd.a +LIBLZ4_A := deps/lz4/lib/liblz4.a LIBGTEST_A := deps/googletest/lib/libgtest.a +LIBXGBOOST_A := deps/xgboost/lib/libxgboost.a +LIBDMLC_A := deps/xgboost/lib/libdmlc.a GTEST_HEADERS := deps/googletest/googletest/include/gtest/gtest.h +XGBOOST_HEADER := deps/xgboost/include/xgboost/c_api.h ifndef SKIP_BUILDDEPS_CHECK # Check if any gtest-dependent targets are being built @@ -37,6 +73,24 @@ ifndef SKIP_BUILDDEPS_CHECK $(if $(shell test -f $(GTEST_HEADERS) && echo EXISTS),,$(error FATAL: $(GTEST_HEADERS) still missing after download attempt)) endif endif + + # Check if xgboost headers are being built + XGBOOST_TARGETS := zli gtests test all cli_test + BUILDING_XGBOOST_TARGETS := $(filter $(XGBOOST_TARGETS),$(MAKECMDGOALS)) + ifeq ($(MAKECMDGOALS),) + # If no targets are specified, assume we're building everything + BUILDING_XGBOOST_TARGETS := zli + endif + + ifneq ($(BUILDING_XGBOOST_TARGETS),) + # Download XGBoost library + ifeq ($(wildcard $(XGBOOST_HEADER)),) + $(info Downloading xgboost dependency for targets: $(BUILDING_XGBOOST_TARGETS)) + XGBOOST_BUILD_RESULT := $(shell $(MAKE) SKIP_BUILDDEPS_CHECK=1 $(XGBOOST_HEADER)) + _ := $(shell sync) + $(if $(shell test -f $(XGBOOST_HEADER) && echo EXISTS),,$(error FATAL: $(XGBOOST_HEADER) still missing after download attempt)) + endif + endif endif # Set EXEC_PREFIX to prefix every build output that is run in tests. @@ -52,10 +106,10 @@ LIBASMSRCS := $(wildcard $(addsuffix /*.S, $(LIBDIRS))) LIBOBJS := $(patsubst %.c,%.o,$(LIBCSRCS)) $(patsubst %.S,%.o,$(LIBASMSRCS)) libopenzl.a: -$(eval $(call static_library,libopenzl.a,$(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call static_library,libopenzl.a,$(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) libopenzl.so: CFLAGS += -fPIC -$(eval $(call c_dynamic_library,libopenzl.so,$(LIBOBJS),$(LIBZSTD_SO))) +$(eval $(call c_dynamic_library,libopenzl.so,$(LIBOBJS),$(LIBZSTD_SO) $(LIBLZ4_SO))) .PHONY:lib lib: libopenzl.a libopenzl.so @@ -65,7 +119,7 @@ lib: libopenzl.a libopenzl.so # ===================================== .PHONY: all -all : lib gtests unitBench zli stream_dump2 examples +all : lib gtests unitBench zli sddl_compiler stream_dump2 examples # Define a function to generate a list of C++ object files from directory cxx_objs = $(patsubst %.cpp,%.o,$(wildcard $(addsuffix /*.cpp, $(1)))) @@ -91,9 +145,25 @@ VISUALIZER_CXXOBJS := $(call cxx_objs,$(VISUALIZER_CPPDIR)) TRAINING_CXXOBJS := $(call cxx_objs,$(TRAINING_DIRS)) TRAINING_TEST_CXXOBJS := $(call cxx_objs,$(TRAINING_TEST_DIRS)) SDDL_COMPILER_CXXOBJS := $(filter-out %main.o, $(call cxx_objs,$(SDDL_COMPILER_DIR))) +SDDL2_COMPILER_CXXOBJS := $(filter-out %main.o, $(call cxx_objs,$(SDDL2_COMPILER_DIRS))) +SDDL2_ASSEMBLER_CXXOBJS := $(filter-out %main.o, $(call cxx_objs,$(SDDL2_ASSEMBLER_DIR))) +ML_SELECTOR_COBJS := $(call c_objs,$(ML_SELECTOR_DIR)) +ML_SELECTOR_CXXOBJS := $(call cxx_objs,$(ML_SELECTOR_DIR)) + +# ML selector files depend on xgboost headers +$(ML_SELECTOR_COBJS) $(ML_SELECTOR_CXXOBJS): | $(XGBOOST_HEADER) + +XGBOOST_INCLUDE_PATHS := -Ideps/xgboost/include -Ideps/xgboost/dmlc-core/include # xgboost headers + +# Add flags for cross platform compatibility for Windows +zli: LDFLAGS += $(XGBOOST_LDFLAGS) +zli: CPPFLAGS += $(XGBOOST_INCLUDE_PATHS) +zli: LDLIBS += $(XGBOOST_LDLIBS) + +gtests: LDFLAGS += $(XGBOOST_LDFLAGS) +gtests: CPPFLAGS += $(XGBOOST_INCLUDE_PATHS) +gtests: LDLIBS += $(XGBOOST_LDLIBS) -zli: CFLAGS += -O3 -zli: CXXFLAGS += -O3 $(eval $(call cxx_program,zli, \ cli/zli.o \ $(CLI_CXXOBJS) \ @@ -111,9 +181,13 @@ $(eval $(call cxx_program,zli, \ $(IO_CXXOBJS) \ $(TRAINING_CXXOBJS) \ $(SDDL_COMPILER_CXXOBJS) \ + $(SDDL2_COMPILER_CXXOBJS) \ + $(SDDL2_ASSEMBLER_CXXOBJS) \ + $(ML_SELECTOR_COBJS) \ + $(ML_SELECTOR_CXXOBJS) \ $(ZLCPP_OBJS) \ $(LIBOBJS), \ - $(LIBZSTD_A))) + $(LIBZSTD_A) $(LIBLZ4_A) $(LIBXGBOOST_A) $(LIBDMLC_A))) .PHONY: examples examples: zs2_pipeline zs2_trygraph zs2_selector zs2_struct zs2_round_trip @@ -122,6 +196,24 @@ examples: zs2_pipeline zs2_trygraph zs2_selector zs2_struct zs2_round_trip test : gtests zs2_test $(EXEC_PREFIX) ./gtests +# Python bindings for openzl.ext module (required for ML tests) +.PHONY: python-bindings +python-bindings: + @echo "Building and installing openzl Python bindings..." + pip install --quiet py/ + +.PHONY: cli_test +cli_test: zli python-bindings + cd cli/tests && python3 cli_integration_tests.py ../../zli + +.PHONY: check-python-format +check-python-format: + @./scripts/check_python_format.sh + +.PHONY: fix-python-format +fix-python-format: + @./scripts/check_python_format.sh --fix + .PHONY: zs2_test zs2_test : examples $(EXEC_PREFIX) ./zs2_pipeline @@ -129,14 +221,19 @@ zs2_test : examples # ******** Tools ******** -unitBench: CFLAGS += -O3 -unitBench: CPPFLAGS += -DNDEBUG UNITBENCH_COBJS := $(foreach DIR,$(UNITBENCH_DIRS),$(call c_objs,$(DIR))) -$(eval $(call c_program_shared_o,unitBench,tools/time/timefn.o tools/fileio/fileio.o $(UNITBENCH_COBJS) $(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call c_program_shared_o,unitBench,tools/time/timefn.o tools/fileio/fileio.o $(UNITBENCH_COBJS) $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) stream_dump2: $(eval $(call c_program_shared_o,stream_dump2, \ - $(STREAMDUMP_COBJS) tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A))) + $(STREAMDUMP_COBJS) tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) + +$(eval $(call cxx_program,sddl_compiler, \ + $(SDDL_COMPILER_DIR)/main.o \ + $(SDDL_COMPILER_CXXOBJS) \ + $(ZLCPP_OBJS), \ + libopenzl.a \ + $(LIBZSTD_A) $(LIBLZ4_A))) # Selection of gtest units (by file name convention) CXX_FILE_OBJS := $(notdir $(CXX_OBJS)) @@ -145,7 +242,7 @@ GTEST_FILEO += $(filter %Test.o,$(CXX_FILE_OBJS)) GTEST_FILTER_LIST := VersionTest.o NoIntrospectionTest.o GTEST_FILEO := $(filter-out $(GTEST_FILTER_LIST),$(GTEST_FILEO)) -ALL_TEST_OBJS := $(patsubst %.cpp,%.o,$(foreach dir,$(TESTSDIRS),$(wildcard $(dir)/*.cpp))) +ALL_TEST_OBJS := $(patsubst %.cpp,%.o,$(foreach dir,$(TESTSDIRS) $(ML_SELECTOR_TESTS_DIR),$(wildcard $(dir)/*.cpp))) GTEST_OBJS := $(foreach name,$(GTEST_FILEO),$(filter %/$(name),$(ALL_TEST_OBJS))) # Other module objects used in gtests @@ -154,7 +251,12 @@ DATAGEN_OBJS := \ tests/datagen/structures/LocalParamsProducer.o \ tests/datagen/structures/openzl/StringInputProducer.o \ tests/datagen/InputExpander.o -CLI_TEST_OBJS := $(filter-out test_%.o,$(notdir $(foreach DIR,$(CLI_TEST_DIRS),$(call cxx_objs,$(DIR))))) +SERIALIZATION_TEST_OBJS := \ + tests/serialization/GraphBuilder.o \ + tests/serialization/GraphBuilderUtils.o +TEST_REGISTRY_SRCS = $(wildcard $(addsuffix /*.cpp, $(TEST_REGISTRY_DIRS))) +TEST_REGISTRY_OBJS = $(patsubst %.cpp,%.o,$(TEST_REGISTRY_SRCS)) +CLI_TEST_OBJS := $(filter-out %/test_%.o test_%.o,$(foreach DIR,$(CLI_TEST_DIRS),$(call cxx_objs,$(DIR)))) ZLCPP_TEST_OBJS := $(call cxx_objs,$(ZLCPP_TEST_DIR)) ALL_GTESTS_OBJS := \ @@ -162,12 +264,15 @@ ALL_GTESTS_OBJS := \ tools/time/timefn.o \ tests/utils.o \ tests/local_params_utils.o \ + tests/ml_selector_utils.o \ tests/unittest/common/test_errors_in_c.o \ + tests/unittest/common/sha_vec.o \ tests/compress/ml_selectors/test_zstrong_ml_core_models.o \ $(GTEST_OBJS) \ $(ZLCPP_TEST_OBJS) \ $(CLI_CXXOBJS) \ $(CLI_TEST_OBJS) \ + $(ARG_CXXOBJS) \ $(LOGGER_CXXOBJS) \ $(CUSTOM_PARSERS_COBJS) \ $(CUSTOM_PARSERS_CXXOBJS) \ @@ -181,45 +286,56 @@ ALL_GTESTS_OBJS := \ $(IO_CXXOBJS) \ $(TRAINING_CXXOBJS) \ $(SDDL_COMPILER_CXXOBJS) \ + $(SDDL2_COMPILER_CXXOBJS) \ + $(SDDL2_ASSEMBLER_CXXOBJS) \ + $(ML_SELECTOR_COBJS) \ + $(ML_SELECTOR_CXXOBJS) \ $(DATAGEN_OBJS) \ + $(SERIALIZATION_TEST_OBJS) \ + $(TEST_REGISTRY_OBJS) \ $(ZLCPP_OBJS) \ $(LIBOBJS) -gtests: $(LIBGTEST_A) $(LIBZSTD_A) +gtests: $(LIBGTEST_A) $(LIBZSTD_A) $(LIBLZ4_A) $(LIBXGBOOST_A) gtests: CPPFLAGS += -Ideps/googletest/googletest/include gtests: CXXFLAGS += -Wno-undef -Wno-sign-compare gtests: LDLIBS += -lpthread -gtests: CPPFLAGS += -g -DZL_ENABLE_ASSERT $(eval $(call cxx_program,gtests, \ $(ALL_GTESTS_OBJS), \ - $(LIBGTEST_A) $(LIBZSTD_A))) + $(LIBGTEST_A) $(LIBZSTD_A) $(LIBLZ4_A) $(LIBXGBOOST_A) $(LIBDMLC_A))) # ******** Examples ******** zs2_pipeline: -$(eval $(call c_program_shared_o,zs2_pipeline,examples/zs2_pipeline.o tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call c_program_shared_o,zs2_pipeline,examples/zs2_pipeline.o tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) zs2_struct: -$(eval $(call c_program_shared_o,zs2_struct,examples/zs2_struct.o tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call c_program_shared_o,zs2_struct,examples/zs2_struct.o tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) zs2_trygraph: -$(eval $(call c_program_shared_o,zs2_trygraph,examples/zs2_trygraph.o $(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call c_program_shared_o,zs2_trygraph,examples/zs2_trygraph.o $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) zs2_selector: -$(eval $(call c_program_shared_o,zs2_selector,examples/zs2_selector.o tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call c_program_shared_o,zs2_selector,examples/zs2_selector.o tools/fileio/fileio.o $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) zs2_round_trip: -$(eval $(call cxx_program_shared_o,zs2_round_trip,tests/round_trip.o tools/fileio/fileio.o $(SHARED_COMPONENTS_CXXOBJS) $(LIBOBJS),$(LIBZSTD_A))) +$(eval $(call cxx_program_shared_o,zs2_round_trip,tests/round_trip.o tools/fileio/fileio.o $(SHARED_COMPONENTS_CXXOBJS) $(LIBOBJS),$(LIBZSTD_A) $(LIBLZ4_A))) +# ******** Compatibility tests ******** + +# Compile-only check that public headers remain usable from a strict C99 TU. +.PHONY: c99_compat +c99_compat: + $(CC) -std=c99 -Werror -Wall -Wextra -Iinclude \ + -c tests/compat/c99_compat.c -o /dev/null # ******** Cleaning ******** .PHONY: clean clean: - # note: done by multiconf.make + # note: a lot is done within multiconf.make @echo Cleaning completed - #special cases : these targets require additional flags to compile without warnings $(CACHE_ROOT)/%/src/openzl/common/errors.o : CFLAGS += -Wno-format-nonliteral $(CACHE_ROOT)/%/src/openzl/common/logging.o : CFLAGS += -Wno-format-nonliteral @@ -235,13 +351,16 @@ TAR ?= tar # Use this target as a work-around if dependencies are not correctly built # automatically. .PHONY : builddeps -builddeps : $(LIBGTEST_A) $(LIBZSTD_A) $(LIBZSTD_SO) +builddeps : $(LIBGTEST_A) $(LIBZSTD_A) $(LIBZSTD_SO) $(LIBLZ4_A) $(LIBLZ4_SO) .PHONY: cleandeps cleandeps: $(RM) -r deps/googletest deps/googletest.tar.gz -$(GIT) submodule deinit -f deps/zstd 2> /dev/null $(RM) -r deps/zstd deps/$(ZSTD_DIRNAME) $(ZSTD_TARBALL) + -$(GIT) submodule deinit -f deps/lz4 2> /dev/null + $(RM) -r deps/lz4 deps/$(LZ4_DIRNAME) $(LZ4_TARBALL) + $(RM) -r deps/xgboost deps/xgboost.tar.gz # Variables are by default not exported, but when they're passed on the CLI, # they are exported. We do not want to pass super restrictive flags to our @@ -288,20 +407,140 @@ $(LIBZSTD_A) : MAKEOVERRIDES= $(LIBZSTD_A) : $(ZSTD_MAKEFILE) $(MAKE) -C $(ZSTD_LIBDIR) libzstd.a +# LZ4 +LZ4_LIBDIR := deps/lz4/lib +LZ4_HEADER := $(LZ4_LIBDIR)/lz4.h +LZ4_MAKEFILE := $(LZ4_LIBDIR)/Makefile + +LZ4_VERSION ?= 1.10.0 +LZ4_DIRNAME := lz4-$(LZ4_VERSION) +LZ4_TARBALL := deps/$(LZ4_DIRNAME).tar.gz + +$(LZ4_TARBALL): + $(MKDIR) -p deps + $(CURL) -L https://github.com/lz4/lz4/releases/download/v$(LZ4_VERSION)/$(LZ4_DIRNAME).tar.gz -o $@ + +.PHONY: lz4-fallback +lz4-fallback: $(LZ4_TARBALL) + $(RM) -r deps/$(LZ4_DIRNAME) + $(TAR) -xzf $(LZ4_TARBALL) -C deps + $(RM) -r deps/lz4 + mv deps/$(LZ4_DIRNAME) deps/lz4 + +$(LZ4_HEADER): + -$(GIT) submodule update --init --single-branch --depth 1 deps/lz4 + if [ ! -f $@ ]; then \ + echo "Falling back to tarball download and extraction for lz4"; \ + $(MAKE) lz4-fallback; \ + fi + +$(LZ4_MAKEFILE): $(LZ4_HEADER) + touch $@ + +$(LIBLZ4_SO) : MAKEOVERRIDES= +$(LIBLZ4_SO) : $(LZ4_MAKEFILE) + $(MAKE) -C $(LZ4_LIBDIR) liblz4 + +$(LIBLZ4_A) : MAKEOVERRIDES= +$(LIBLZ4_A) : $(LZ4_MAKEFILE) + $(MAKE) -C $(LZ4_LIBDIR) liblz4.a + # Google Test -deps/googletest.tar.gz : +GTEST_VERSION ?= 1.17.0 +GTEST_DIRNAME := googletest-$(GTEST_VERSION) +GTEST_TARBALL := deps/$(GTEST_DIRNAME).tar.gz + +$(GTEST_TARBALL): $(MKDIR) -p deps - $(CURL) -L https://github.com/google/googletest/releases/download/v1.17.0/googletest-1.17.0.tar.gz -o $@ + $(CURL) -L https://github.com/google/googletest/releases/download/v$(GTEST_VERSION)/$(GTEST_DIRNAME).tar.gz -o $@ -# Ensure headers are available (no need for compiled library yet) -$(GTEST_HEADERS): deps/googletest.tar.gz - cd deps && tar xzf googletest.tar.gz +.PHONY: gtest-fallback +gtest-fallback: $(GTEST_TARBALL) + $(RM) -r deps/$(GTEST_DIRNAME) + $(TAR) -xzf $(GTEST_TARBALL) -C deps $(RM) -r deps/googletest - mv deps/googletest*/ deps/googletest - touch $@ + mv deps/$(GTEST_DIRNAME) deps/googletest + +# Ensure headers are available - prefer submodule, fallback to tarball +$(GTEST_HEADERS): + -$(GIT) submodule update --init --single-branch --depth 1 deps/googletest + if [ ! -f $@ ]; then \ + echo "Falling back to tarball download and extraction for googletest"; \ + $(MAKE) gtest-fallback; \ + fi $(LIBGTEST_A) : MAKEOVERRIDES= $(LIBGTEST_A) : $(GTEST_HEADERS) cd deps/googletest && cmake . $(MAKE) -C deps/googletest + +# XGBoost +XGBOOST_LIBDIR := deps/xgboost/lib + +XGBOOST_VERSION ?= 3.1.0 +XGBOOST_DIRNAME := xgboost-src-$(XGBOOST_VERSION) +XGBOOST_TARBALL := deps/$(XGBOOST_DIRNAME).tar.gz + +# Common CMake flags for xgboost shared library build +XGBOOST_CMAKE_COMMON := -DBUILD_STATIC_LIB=OFF -DUSE_OPENMP=OFF \ + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$(abspath $(XGBOOST_LIBDIR)) + +# Platform-specific CMake flags for xgboost +XGBOOST_CMAKE_PLATFORM := +XGBOOST_LDFLAGS := +XGBOOST_LDLIBS := +ifneq (,$(filter $(SMALL_CMD_LINE),$(UNAME))) + # MinGW/MSYS: Use Unix Makefiles generator and link ws2_32 for Windows socket functions + XGBOOST_CMAKE_PLATFORM := -G "Unix Makefiles" \ + -DCMAKE_CXX_STANDARD_LIBRARIES="-lws2_32" \ + -DCMAKE_SHARED_LINKER_FLAGS="-lws2_32" + XGBOOST_LDFLAGS += -L$(abspath $(XGBOOST_LIBDIR)) + XGBOOST_LDLIBS += -lws2_32 +else ifeq ($(shell uname),Darwin) + # macOS: Set install_name to absolute path so dyld can find the library + XGBOOST_CMAKE_PLATFORM := -DCMAKE_INSTALL_NAME_DIR=$(abspath $(XGBOOST_LIBDIR)) \ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_MACOSX_RPATH=ON +endif + +$(XGBOOST_TARBALL): + $(MKDIR) -p deps + $(CURL) -L https://github.com/dmlc/xgboost/releases/download/v$(XGBOOST_VERSION)/$(XGBOOST_DIRNAME).tar.gz -o $@ + +.PHONY: xgboost-fallback +xgboost-fallback: $(XGBOOST_TARBALL) + $(RM) -r deps/xgboost + $(TAR) -xzf $(XGBOOST_TARBALL) -C deps + @if [ -d deps/$(XGBOOST_DIRNAME) ] && [ ! -d deps/xgboost ]; then \ + mv deps/$(XGBOOST_DIRNAME) deps/xgboost; \ + fi + +$(XGBOOST_HEADER): + -$(GIT) submodule update --init --recursive --single-branch --depth 1 deps/xgboost + if [ ! -f $@ ]; then \ + echo "Falling back to tarball download and extraction for xgboost"; \ + $(MAKE) xgboost-fallback; \ + fi + +# Build shared library only after static library is done (to avoid parallel cmake conflicts) +$(LIBXGBOOST_SO) : MAKEOVERRIDES= +$(LIBXGBOOST_SO) : $(LIBXGBOOST_A) + $(MKDIR) -p $(XGBOOST_LIBDIR) + cd deps/xgboost && mkdir -p build-shared && cd build-shared && \ + cmake .. $(XGBOOST_CMAKE_COMMON) $(XGBOOST_CMAKE_PLATFORM) && $(MAKE) +ifeq ($(shell uname),Darwin) + install_name_tool -id "$(abspath $(XGBOOST_LIBDIR))/libxgboost.dylib" \ + "$(abspath $(XGBOOST_LIBDIR))/libxgboost.dylib" || true +endif + +$(LIBXGBOOST_A) : MAKEOVERRIDES= +$(LIBXGBOOST_A) : $(XGBOOST_HEADER) + $(MKDIR) -p $(XGBOOST_LIBDIR) + cd deps/xgboost && mkdir -p build && cd build && cmake .. -DBUILD_STATIC_LIB=ON -DUSE_OPENMP=OFF -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=$(abspath $(XGBOOST_LIBDIR)) $(XGBOOST_CMAKE_PLATFORM) && $(MAKE) + # xgboost's CMakeLists.txt strips the 'lib' prefix on Windows; rename to match expected name + @if [ -f $(XGBOOST_LIBDIR)/xgboost.a ] && [ ! -f $(XGBOOST_LIBDIR)/libxgboost.a ]; then \ + mv $(XGBOOST_LIBDIR)/xgboost.a $(XGBOOST_LIBDIR)/libxgboost.a; \ + fi + +# libdmlc.a is built as part of xgboost static build +$(LIBDMLC_A): $(LIBXGBOOST_A) diff --git a/README.md b/README.md index 1a92cb047..80a86d13a 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,45 @@ # OpenZL -OpenZL delivers high compression ratios _while preserving high speed_, a level of performance that is out of reach for generic compressors. +OpenZL delivers high compression ratios _while preserving high speed_, a level of performance that is out of reach for generic compressors. **Check out the [blog post](https://engineering.fb.com/2025/10/06/developer-tools/openzl-open-source-format-aware-compression-framework/) and [whitepaper](https://arxiv.org/abs/2510.03203) for a breakdown of how it works.** -OpenZL takes a description of your data and builds from it a specialized compressor optimized for your specific format. [Learn how it works →](getting-started/introduction.md) +OpenZL takes a description of your data and builds from it a specialized compressor optimized for your specific format. [Learn how it works →](https://facebook.github.io/openzl/getting-started/introduction/) OpenZL consists of a core library and tools to generate specialized compressors — all compatible with a single universal decompressor. -It is designed for data engineers that deal with large quantities of specialized datasets (like AI workloads for example) and require high speed for their processing pipelines. +It is designed for engineers that deal with large quantities of specialized datasets (like AI workloads for example) and require high speed for their processing pipelines. See our [docs](https://facebook.github.io/openzl) for more information and our [quickstart guide](https://facebook.github.io/openzl/getting-started/quick-start) to get started with a guided tutorial. -## Build with `make` +## Project Status + +This project is under active development. The API, the compressed format, and the set of codecs and graphs included in OpenZL are all subject to (and will!) change as the project matures. + +However, we intend to maintain some stability guarantees in the face of that evolution. In particular, payloads compressed with any release-tagged version of the library will remain decompressible by new releases of the library for at least the next several years. And new releases of the library will be able to generate frames compatible with at least the previous release. + +(Commits on the `dev` branch offer no guarantees whatsoever. Use only release-tagged commits for any non-experimental deployments.) + +Despite the big scary warnings above, we consider the core to have reached production-readiness, and OpenZL is used extensively in production at Meta. + +## Building OpenZL + +### Prerequisites +OpenZL requires a compiler that supports C11 and C++17. When building with `cmake`, `cmake 3.20.2` or newer is required. There is ongoing work to relax these restrictions. As that happens, this section will be updated. + +### Build with `make` + +The OpenZL library and essential tools can be built using `make`: -OpenZL library and essential tools can be built using `make`. -Basic usage is: ```sh make ``` -### Build Options +#### Build Options + The `Makefile` supports all standard build variables, such as `CC`, `CFLAGS`, `CPPFLAGS`, `LDFLAGS`, `LDLIBS`, etc. It builds with multi-threading by default, auto-detecting the local number of cores, and can be overridden using standard `-j#` flag (ex: `make -j8`). -### Build Types +#### Build Types Binary generation can be altered by explicitly requesting a build type: @@ -32,51 +48,71 @@ Example: make lib BUILD_TYPE=DEV ``` -Build types are documented in `make help`, and their exact flags are detailed with `make show-config` +Build types are documented in `make help`, and their exact flags are detailed with `make show-config`. + Usual ones are: -* `BUILD_TYPE=DEV` = debug build with asserts enabled and ASAN / UBSAN enabled -* `BUILD_TYPE=OPT` = optimized build with asserts disabled (default) +* `BUILD_TYPE=DEV`: debug build with asserts enabled and ASAN / UBSAN enabled +* `BUILD_TYPE=OPT`: optimized build with asserts disabled (default) -## Build with `cmake` +### Build with `cmake` -OpenZL can be built using `cmake`. Basic usage is as follows -``` +OpenZL can be built using `cmake`. Basic usage is as follows: + +```sh mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DOPENZL_BUILD_TESTS=ON .. make -j make -j test ``` + Details on setting CMake variables is below. -### Build Modes +#### Build Modes By default, we ship several different predefined build modes which can be set with the `OPENZL_BUILD_MODE` variable: -* none (default) = CMake default build mode controlled by `CMAKE_BUILD_TYPE` -* dev = debug build with asserts enabled and ASAN / UBSAN enabled -* dev-nosan = debug build with asserts enabled -* opt = optimized build with asserts disabled -* opt-asan = optimized build with asserts disabled and ASAN / UBSAN enabled -* dbgo = optimized build with asserts enabled -* dbgo-asan = optimized build with asserts enabled and ASAN / UBSAN enabled +* `none` (default): CMake default build mode controlled by `CMAKE_BUILD_TYPE` +* `dev`: debug build with asserts enabled and ASAN / UBSAN enabled +* `dev-nosan`: debug build with asserts enabled +* `opt`: optimized build with asserts disabled +* `opt-asan`: optimized build with asserts disabled and ASAN / UBSAN enabled +* `dbgo`: optimized build with asserts enabled +* `dbgo-asan`: optimized build with asserts enabled and ASAN / UBSAN enabled > [!CAUTION] > When switching between build modes, make sure to purge the CMake cache and re-configure the build. For instance, > `cmake --fresh -DOPENZL_BUILD_MODE=dev-nosan ..` -For ASAN / UBSAN, ensure that libasan and libubsan are installed on the machine. +For ASAN / UBSAN, ensure that `libasan` and `libubsan` are installed on the machine. + +#### Editor Integration -### Editor Integration +OpenZL ships with settings to configure VSCode to work with the CMake build system. To enable it install two extensions: -OpenZL ships with settings to configure VSCode to work with the cmake build system. To enable it install two extensions: +1. `cmake-tools` +2. `clangd` (or any other C++ language server that works with `compile_commands.json`) + +**Important:** For proper C++ language server support, you need to generate `compile_commands.json`: + +The preferred method is to use the CMake Tools extension command "`CMake: Configure`". + +If it doesn't work, or is too difficult to setup, you can use the manual setup: + +```bash +mkdir -p cmakebuild +cmake -B cmakebuild -DOPENZL_BUILD_TESTS=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . +cp cmakebuild/compile_commands.json . +``` -1. cmake-tools -2. clangd (or any other C++ language server that works with compile_commands.json) +**When to regenerate:** +* After cloning the repository (first-time setup) +* When adding/removing source files +* When modifying `CMakeLists.txt` -### CMake Variables +#### CMake Variables * `CMAKE_C_COMPILER` = Set the C compiler for OpenZL & dependency builds * `CMAKE_CXX_COMPILER` = Set the C++ compiler for OpenZL & dependency builds @@ -94,40 +130,40 @@ OpenZL ships with settings to configure VSCode to work with the cmake build syst * `OPENZL_CXX_COMPILE_DEFINITIONS` = C++ compiler definitions (-D) for OpenZL only * `OPENZL_COMMON_FLAGS` = extra compiler flags used in all targets -## Windows Build +### Windows Build OpenZL uses modern C11 features that may not be fully supported by MSVC. For Windows builds, we recommend using **clang-cl** for the best compatibility. -### Quick Start (Windows) +#### Quick Start (Windows) -1. **Recommended**: Use clang-cl for full C11 support +1. **Recommended**: Use `clang-cl` for full C11 support ```cmd cmake -S . -B build -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl cmake --build build --config Release ``` -2. **Alternative**: Use MinGW-w64 for GNU toolchain compatibility +2. **Alternative**: Use MinGW-w64 for GNU toolchain compatibility. ```cmd cmake -S . -B build -G "MinGW Makefiles" cmake --build build --config Release ``` -3. **Limited Support**: MSVC may produce C2099 errors due to limited C11 support +3. **Limited Support**: MSVC may produce C2099 errors due to limited C11 support. -### Compiler Detection +#### Compiler Detection Run our detection script to check available compilers and get recommendations: ```cmd # PowerShell -./build/cmake/detect_windows_compiler.ps1 +./build-scripts/cmake/detect_windows_compiler.ps1 # Command Prompt -./build/cmake/detect_windows_compiler.bat +./build-scripts/cmake/detect_windows_compiler.bat ``` -For detailed Windows build instructions, troubleshooting, and installation guides, see [build/cmake/WINDOWS_BUILD.md](build/cmake/WINDOWS_BUILD.md). +For detailed Windows build instructions, troubleshooting, and installation guides, see [build-scripts/cmake/WINDOWS_BUILD.md](build-scripts/cmake/WINDOWS_BUILD.md). ## License -OpenZL is BSD licensed, as found in the LICENSE file. +OpenZL is BSD licensed, as found in the [LICENSE](LICENSE) file. diff --git a/WARRANTY b/WARRANTY deleted file mode 100644 index 640e51528..000000000 --- a/WARRANTY +++ /dev/null @@ -1,12 +0,0 @@ -******************************** -* ACHTUNG! ATTENTION! CAUTION! * -******************************** - -This is an in-development compression system. No guarantees whatsoever are -currently made regarding its safety, stability, forwards or backwards -compatibility, performance, etc. - -Not only is this code provided "as is", without any warranty, express or -implied, it is not even really intended to be provided. You are trespassing -on a pre-release codebase. You should not use it for any purpose other than -experimentation or contribution to its development. diff --git a/benchmark/BUCK b/benchmark/BUCK index dd03242e4..fa2c530fe 100644 --- a/benchmark/BUCK +++ b/benchmark/BUCK @@ -1,8 +1,9 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. +load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary") load("@fbcode_macros//build_defs:native_rules.bzl", "buck_filegroup") load("@fbsource//tools/build_defs:manifold.bzl", "manifold_get") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxbinary") +load("../defs.bzl", "zs_cxxbinary") oncall("data_compression") @@ -28,9 +29,14 @@ zs_cxxbinary( srcs = [( src_file, SRC_FILE_FLAGS.get(src_file, []), - ) for src_file in glob([ - "**/*.cpp", - ])], + ) for src_file in glob( + [ + "**/*.cpp", + ], + exclude = [ + "BenchmarkComponents.cpp", + ], + )], headers = glob([ "**/*.h", ]), @@ -38,25 +44,36 @@ zs_cxxbinary( "corpus": ":benchmark_corpora", }, deps = [ + "..:zstronglib", + "../custom_transforms/json_extract:json_extract", + "../custom_transforms/json_extract/tests:json_extract_test_data", + "../custom_transforms/parse:parse", + "../custom_transforms/parse/tests:parse_test_data", + "../custom_transforms/thrift:thrift_lib", + "../custom_transforms/thrift/tests:thrift_test_utils", + "../tests/datagen:datagen", + "../tools:zstrong_ml", "fbsource//third-party/benchmark:benchmark", "fbsource//third-party/fmt:fmt", "fbsource//xplat/tools/cxx:resources", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/benchmark/unitBench:sao_graph", - "//data_compression/experimental/zstrong/custom_transforms/json_extract:json_extract", - "//data_compression/experimental/zstrong/custom_transforms/json_extract/tests:json_extract_test_data", - "//data_compression/experimental/zstrong/custom_transforms/parse:parse", - "//data_compression/experimental/zstrong/custom_transforms/parse/tests:parse_test_data", - "//data_compression/experimental/zstrong/custom_transforms/thrift:thrift_lib", - "//data_compression/experimental/zstrong/custom_transforms/thrift/tests:thrift_test_utils", - "//data_compression/experimental/zstrong/tests/datagen:datagen", - "//data_compression/experimental/zstrong/tools:zstrong_ml", + "unitBench:sao_graph", "//folly:demangle", "//folly:dynamic", "//folly:json", ], ) +cpp_binary( + # @autodeps-skip + name = "benchmark_components", + srcs = ["BenchmarkComponents.cpp"], + deps = [ + "..:zstronglib", + "../tests/registry:openzl_components", + "fbsource//third-party/benchmark:benchmark", + ], +) + buck_filegroup( name = "benchmark_corpora", srcs = [ diff --git a/benchmark/BenchmarkComponents.cpp b/benchmark/BenchmarkComponents.cpp new file mode 100644 index 000000000..e0b3c249c --- /dev/null +++ b/benchmark/BenchmarkComponents.cpp @@ -0,0 +1,401 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include + +#include "openzl/cpp/CCtx.hpp" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/DCtx.hpp" +#include "openzl/cpp/FrameInfo.hpp" +#include "tests/registry/OpenZLComponent.h" +#include "tests/registry/OpenZLComponents.h" + +namespace { +using namespace openzl; +using namespace openzl::tests; + +bool detailedBenchmark(int* argc, char** argv) +{ + for (int i = 0; i < *argc; ++i) { + if (std::string_view{ argv[i] } == std::string_view{ "--detailed" }) { + for (int j = i; j < *argc - 1; ++j) { + argv[j] = argv[j + 1]; + } + *argc -= 1; + return true; + } + } + return false; +} + +class ComponentBenchmark { + public: + explicit ComponentBenchmark(const OpenZLComponent& component) + : component_(&component) + { + compressor_.selectStartingGraph(ZL_GRAPH_STORE); + component_->registerComponent(compressor_); + datagen::DataGen gen(0xdeadbeef); + benchmarks_ = component_->benchmarks(compressor_, gen); + } + + static void registerCompressOverallBenchmark( + std::shared_ptr self) + { + if (self->benchmarks_.empty()) { + return; + } + auto bench = [self](benchmark::State& state) { + self->benchCompressOverall(state); + }; + benchmark::RegisterBenchmark( + ("Compress/Component:" + self->component_->name() + "/Overall") + .c_str(), + std::move(bench)); + } + + static void registerCompressDetailedBenchmarks( + std::shared_ptr self) + { + for (const auto& benchmark : self->benchmarks_) { + auto bench = [self, &benchmark](benchmark::State& state) { + self->benchCompressDetailed(state, benchmark); + }; + benchmark::RegisterBenchmark( + ("Compress/Component:" + self->component_->name() + + "/Detailed/" + benchmark.name) + .c_str(), + std::move(bench)); + } + } + + static void registerDecompressOverallBenchmark( + std::shared_ptr self) + { + if (self->benchmarks_.empty()) { + return; + } + auto bench = [self](benchmark::State& state) { + self->benchDecompressOverall(state); + }; + benchmark::RegisterBenchmark( + ("Decompress/Component:" + self->component_->name() + + "/Overall") + .c_str(), + std::move(bench)); + } + + static void registerDecompressDetailedBenchmarks( + std::shared_ptr self) + { + for (const auto& benchmark : self->benchmarks_) { + auto bench = [self, &benchmark](benchmark::State& state) { + self->benchDecompressDetailed(state, benchmark); + }; + benchmark::RegisterBenchmark( + ("Decompress/Component:" + self->component_->name() + + "/Detailed/" + benchmark.name) + .c_str(), + std::move(bench)); + } + } + + private: + void setParameters(CCtx& cctx) const + { + cctx.refCompressor(compressor_); + cctx.setParameter(CParam::StickyParameters, true); + // Disable checksumming + cctx.setParameter(CParam::CompressedChecksum, ZL_TernaryParam_disable); + cctx.setParameter(CParam::ContentChecksum, ZL_TernaryParam_disable); + // Set format version (currently can only be max) + cctx.setParameter(CParam::FormatVersion, formatVersion_); + } + + void benchCompressOverall(benchmark::State& state) const + { + CCtx cctx; + setParameters(cctx); + + size_t compressBound = 0; + std::vector>> benchmarkInputs; + benchmarkInputs.reserve(benchmarks_.size()); + size_t totalSrcSize = 0; + for (const auto& benchmark : benchmarks_) { + std::vector> inputs; + inputs.reserve(benchmark.inputs.size()); + for (const auto& input : benchmark.inputs) { + auto in = input->inputs(); + compressBound = + std::max(compressBound, component_->compressBound(in)); + inputs.push_back(std::move(in)); + totalSrcSize += input->sizeBytes(); + } + benchmarkInputs.push_back(std::move(inputs)); + } + + std::string compressed(compressBound, '\0'); + size_t totalCompressedSize = 0; + for (size_t i = 0; i < benchmarks_.size(); ++i) { + const auto& benchmark = benchmarks_[i]; + for (const auto& input : benchmarkInputs[i]) { + cctx.selectStartingGraph(benchmark.graph); + const size_t cSize = cctx.compress(compressed, input); + totalCompressedSize += cSize; + } + } + + for (auto _ : state) { + for (size_t i = 0; i < benchmarks_.size(); ++i) { + const auto& benchmark = benchmarks_[i]; + for (const auto& input : benchmarkInputs[i]) { + cctx.selectStartingGraph(benchmark.graph); + cctx.compress(compressed, input); + benchmark::DoNotOptimize(compressed); + benchmark::ClobberMemory(); + } + } + } + + state.SetBytesProcessed((int64_t)(totalSrcSize * state.iterations())); + state.counters["CompressedSize"] = (double)totalCompressedSize; + state.counters["Size"] = (double)totalSrcSize; + state.counters["CompressionRatio"] = + (double)totalSrcSize / totalCompressedSize; + } + + void benchDecompressOverall(benchmark::State& state) const + { + CCtx cctx; + setParameters(cctx); + DCtx dctx; + component_->registerComponent(dctx); + + size_t compressBound = 0; + size_t totalSrcSize = 0; + std::vector>> benchmarkInputs; + benchmarkInputs.reserve(benchmarks_.size()); + for (const auto& benchmark : benchmarks_) { + std::vector> inputs; + inputs.reserve(benchmark.inputs.size()); + for (const auto& input : benchmark.inputs) { + auto in = input->inputs(); + compressBound = + std::max(compressBound, component_->compressBound(in)); + inputs.push_back(std::move(in)); + totalSrcSize += input->sizeBytes(); + } + benchmarkInputs.push_back(std::move(inputs)); + } + + // Compress all inputs and collect frame info + std::string compressBuffer(compressBound, '\0'); + std::vector frames; + for (size_t i = 0; i < benchmarks_.size(); ++i) { + for (const auto& input : benchmarkInputs[i]) { + frames.push_back(compressFrame( + cctx, benchmarks_[i].graph, input, compressBuffer)); + } + } + size_t totalCompressedSize = 0; + for (const auto& frame : frames) { + totalCompressedSize += frame.data.size(); + } + + std::vector outputs; + outputs.reserve(100); + for (auto _ : state) { + for (auto& frame : frames) { + outputs.clear(); + for (size_t i = 0; i < frame.outputTypes.size(); ++i) { + outputs.push_back(wrapOutput( + frame.outputTypes[i], + frame.outputEltWidths[i], + frame.buffers[i])); + } + dctx.decompress(outputs, frame.data); + benchmark::DoNotOptimize(outputs); + benchmark::ClobberMemory(); + } + } + + state.SetBytesProcessed((int64_t)(totalSrcSize * state.iterations())); + state.counters["CompressedSize"] = (double)totalCompressedSize; + state.counters["Size"] = (double)totalSrcSize; + state.counters["CompressionRatio"] = + (double)totalSrcSize / totalCompressedSize; + } + + void benchCompressDetailed( + benchmark::State& state, + const OpenZLComponent::Benchmark& benchmark) const + { + CCtx cctx; + setParameters(cctx); + + size_t compressBound = 0; + std::vector> inputs; + inputs.reserve(benchmark.inputs.size()); + size_t totalSrcSize = 0; + for (const auto& input : benchmark.inputs) { + auto in = input->inputs(); + compressBound = + std::max(compressBound, component_->compressBound(in)); + inputs.push_back(std::move(in)); + totalSrcSize += input->sizeBytes(); + } + + std::string compressed(compressBound, '\0'); + size_t totalCompressedSize = 0; + for (const auto& input : inputs) { + cctx.selectStartingGraph(benchmark.graph); + const size_t cSize = cctx.compress(compressed, input); + totalCompressedSize += cSize; + } + + for (auto _ : state) { + for (const auto& input : inputs) { + cctx.selectStartingGraph(benchmark.graph); + cctx.compress(compressed, input); + } + } + + state.SetBytesProcessed((int64_t)(totalSrcSize * state.iterations())); + state.counters["CompressedSize"] = (double)totalCompressedSize; + state.counters["Size"] = (double)totalSrcSize; + state.counters["CompressionRatio"] = + (double)totalSrcSize / totalCompressedSize; + } + + void benchDecompressDetailed( + benchmark::State& state, + const OpenZLComponent::Benchmark& bm) const + { + CCtx cctx; + setParameters(cctx); + DCtx dctx; + component_->registerComponent(dctx); + + size_t compressBound = 0; + std::vector> inputs; + inputs.reserve(bm.inputs.size()); + size_t totalSrcSize = 0; + for (const auto& input : bm.inputs) { + auto in = input->inputs(); + compressBound = + std::max(compressBound, component_->compressBound(in)); + inputs.push_back(std::move(in)); + totalSrcSize += input->sizeBytes(); + } + + // Compress all inputs and collect frame info + std::string compressBuffer(compressBound, '\0'); + std::vector frames; + frames.reserve(inputs.size()); + for (const auto& input : inputs) { + frames.push_back( + compressFrame(cctx, bm.graph, input, compressBuffer)); + } + size_t totalCompressedSize = 0; + for (const auto& frame : frames) { + totalCompressedSize += frame.data.size(); + } + + std::vector outputs; + outputs.reserve(100); + for (auto _ : state) { + for (auto& frame : frames) { + outputs.clear(); + for (size_t i = 0; i < frame.outputTypes.size(); ++i) { + outputs.push_back(wrapOutput( + frame.outputTypes[i], + frame.outputEltWidths[i], + frame.buffers[i])); + } + dctx.decompress(outputs, frame.data); + benchmark::DoNotOptimize(outputs); + benchmark::ClobberMemory(); + } + } + + state.SetBytesProcessed((int64_t)(totalSrcSize * state.iterations())); + state.counters["CompressedSize"] = (double)totalCompressedSize; + state.counters["Size"] = (double)totalSrcSize; + state.counters["CompressionRatio"] = + (double)totalSrcSize / totalCompressedSize; + } + + struct CompressedFrame { + std::string data; + std::vector outputTypes; + std::vector outputEltWidths; + std::vector> buffers; + }; + + static CompressedFrame compressFrame( + CCtx& cctx, + GraphID graph, + poly::span inputs, + std::string& compressBuffer) + { + cctx.selectStartingGraph(graph); + const size_t cSize = cctx.compress(compressBuffer, inputs); + + CompressedFrame frame; + frame.data = compressBuffer.substr(0, cSize); + FrameInfo info(frame.data); + for (size_t i = 0; i < info.numOutputs(); ++i) { + frame.outputTypes.push_back(info.outputType(i)); + frame.outputEltWidths.push_back(inputs[i].eltWidth()); + if (info.outputType(i) != Type::String) { + frame.buffers.emplace_back(info.outputContentSize(i)); + } else { + frame.buffers.emplace_back(); + } + } + return frame; + } + + static Output + wrapOutput(Type type, size_t eltWidth, std::vector& buffer) + { + switch (type) { + case Type::Serial: + return Output::wrapSerial(buffer.data(), buffer.size()); + case Type::Struct: + return Output::wrapStruct( + buffer.data(), eltWidth, buffer.size() / eltWidth); + case Type::Numeric: + return Output::wrapNumeric( + buffer.data(), eltWidth, buffer.size() / eltWidth); + case Type::String: + return Output(); + } + return Output(); + } + + Compressor compressor_; + const OpenZLComponent* component_; + std::vector benchmarks_; + int formatVersion_ = ZL_MAX_FORMAT_VERSION; +}; + +} // namespace + +int main(int argc, char** argv) +{ + const bool detailed = detailedBenchmark(&argc, argv); + + for (const auto& component : getAllOpenZLComponents()) { + auto bench = std::make_shared(*component); + ComponentBenchmark::registerCompressOverallBenchmark(bench); + ComponentBenchmark::registerDecompressOverallBenchmark(bench); + if (detailed) { + ComponentBenchmark::registerCompressDetailedBenchmarks(bench); + ComponentBenchmark::registerDecompressDetailedBenchmarks(bench); + } + } + + benchmark::Initialize(&argc, argv); + benchmark::RunSpecifiedBenchmarks(); + benchmark::Shutdown(); +} diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index fcc37cb06..21c3639bb 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -1,7 +1,8 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -# The binary comes with an SAO corpus internally that isn't provided here -set(BENCHMARK_ENABLE_GTEST_TESTS OFF) +# Keep upstream benchmark self-tests out of our CTest runs. +set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE) +set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "" FORCE) FetchContent_Declare( googlebenchmark # v1.6.1 URL https://github.com/google/benchmark/archive/refs/tags/v1.6.1.zip @@ -21,14 +22,17 @@ find_package(fmt REQUIRED) file( GLOB_RECURSE openzl_benchmark_sources CONFIGURE_DEPENDS - "${CMAKE_CURRENT_LIST_DIR}/*.cpp") -list(APPEND openzl_benchmark_sources "${CMAKE_CURRENT_LIST_DIR}/unitBench/saoGraph.c") -list(FILTER openzl_benchmark_sources EXCLUDE REGEX "${CMAKE_CURRENT_LIST_DIR}/unitBench/tools/.*$") + "${CMAKE_CURRENT_LIST_DIR}/*.cpp" + "${CMAKE_CURRENT_LIST_DIR}/unitBench/**/*.c") +list(FILTER openzl_benchmark_sources + EXCLUDE REGEX "${CMAKE_CURRENT_LIST_DIR}/tools/.*$") +list(FILTER openzl_benchmark_sources + EXCLUDE REGEX "${CMAKE_CURRENT_LIST_DIR}/BenchmarkComponents.cpp$") file( GLOB_RECURSE openzl_benchmark_headers CONFIGURE_DEPENDS - "${CMAKE_CURRENT_LIST_DIR}/*.h") -list(APPEND openzl_benchmark_headers "${CMAKE_CURRENT_LIST_DIR}/unitBench/saoGraph.h") + "${CMAKE_CURRENT_LIST_DIR}/*.h" + "${CMAKE_CURRENT_LIST_DIR}/unitBench/**/*.h") add_executable(openzl_benchmark ${openzl_benchmark_sources} diff --git a/benchmark/benchmark_config.cpp b/benchmark/benchmark_config.cpp index 9e35d9abe..318df2fed 100644 --- a/benchmark/benchmark_config.cpp +++ b/benchmark/benchmark_config.cpp @@ -45,9 +45,9 @@ static std::vector k_predefinedShortList = { "E2E / Huffman / Uniform8(card=100, size=10240, seed=10) / Decompress", "E2E / MergeSorted / SortedRuns32(numRuns=32, avgRunLength=1000, numUniqueValues=1600, seed=10) / Compress", "E2E / MergeSorted / SortedRuns32(numRuns=32, avgRunLength=1000, numUniqueValues=1600, seed=10) / Decompress", - "E2E / Prefix / SortedVariable(nbBytes=1024, nbSegments=105, minSegLenth=5, maxSegLenth=15, alphabetSize=4) / Compress", - "E2E / Prefix / SortedVariable(nbBytes=102400, nbSegments=6843, minSegLenth=10, maxSegLenth=20, alphabetSize=4) / Compress", - "E2E / Prefix / SortedVariable(nbBytes=102400, nbSegments=6843, minSegLenth=10, maxSegLenth=20, alphabetSize=4) / Decompress", + "E2E / Prefix / SortedVariable(nbBytes=1024, nbSegments=105, minSegLength=5, maxSegLength=15, alphabetSize=4) / Compress", + "E2E / Prefix / SortedVariable(nbBytes=102400, nbSegments=6843, minSegLength=10, maxSegLength=20, alphabetSize=4) / Compress", + "E2E / Prefix / SortedVariable(nbBytes=102400, nbSegments=6843, minSegLength=10, maxSegLength=20, alphabetSize=4) / Decompress", "E2E / SAO-Splitter / Uniform32(size=28000, seed=10) / Compress", "E2E / SAO-Splitter / Uniform32(size=28000, seed=10) / Decompress", "E2E / SAO-Splitter / Uniform32(size=280000, seed=10) / Decompress", @@ -76,12 +76,12 @@ static std::vector k_predefinedShortList = { "E2E / TokenizeSorted / Uniform16(card=100, size=10240, seed=10) / Decompress", "E2E / TokenizeSorted / Uniform32(card=100, size=102400, seed=10) / Compress", "E2E / TokenizeSorted / Uniform32(card=100, size=102400, seed=10) / Decompress", - "E2E / TokenizeVSF / UnsortedVariable(nbBytes=10240, nbSegments=1875, minSegLenth=1, maxSegLenth=10, alphabetSize=4) / Compress", - "E2E / TokenizeVSF / UnsortedVariable(nbBytes=10240, nbSegments=1875, minSegLenth=1, maxSegLenth=10, alphabetSize=4) / Decompress", - "E2E / TokenizeVSF / UnsortedVariable(nbBytes=102400, nbSegments=18756, minSegLenth=1, maxSegLenth=10, alphabetSize=4) / Compress", - "E2E / TokenizeVSF / UnsortedVariable(nbBytes=102400, nbSegments=18756, minSegLenth=1, maxSegLenth=10, alphabetSize=4) / Decompress", - "E2E / TokenizeVSFSorted / UnsortedVariable(nbBytes=10240, nbSegments=1044, minSegLenth=5, maxSegLenth=15, alphabetSize=4) / Compress", - "E2E / TokenizeVSFSorted / UnsortedVariable(nbBytes=10240, nbSegments=1875, minSegLenth=1, maxSegLenth=10, alphabetSize=4) / Decompress", + "E2E / TokenizeVSF / UnsortedVariable(nbBytes=10240, nbSegments=1875, minSegLength=1, maxSegLength=10, alphabetSize=4) / Compress", + "E2E / TokenizeVSF / UnsortedVariable(nbBytes=10240, nbSegments=1875, minSegLength=1, maxSegLength=10, alphabetSize=4) / Decompress", + "E2E / TokenizeVSF / UnsortedVariable(nbBytes=102400, nbSegments=18756, minSegLength=1, maxSegLength=10, alphabetSize=4) / Compress", + "E2E / TokenizeVSF / UnsortedVariable(nbBytes=102400, nbSegments=18756, minSegLength=1, maxSegLength=10, alphabetSize=4) / Decompress", + "E2E / TokenizeVSFSorted / UnsortedVariable(nbBytes=10240, nbSegments=1044, minSegLength=5, maxSegLength=15, alphabetSize=4) / Compress", + "E2E / TokenizeVSFSorted / UnsortedVariable(nbBytes=10240, nbSegments=1875, minSegLength=1, maxSegLength=10, alphabetSize=4) / Decompress", "E2E / TransposeSplit / FixedSizeUniform(nbElts=1000, eltWidth=15) / Decompress", "E2E / TransposeSplit / FixedSizeUniform(nbElts=10000, eltWidth=4) / Compress", "E2E / TransposeSplit / FixedSizeUniform(nbElts=10000, eltWidth=4) / Decompress", @@ -96,8 +96,8 @@ static std::vector k_predefinedShortList = { "MCR / Float32 / Uniform32(card=100, size=10240, seed=10) / Decode", "MCR / Float32 / Uniform32(card=100, size=10240, seed=10) / Encode", "MCR / Float32 / Uniform32(card=100, size=10485760, seed=10) / Decode", - "MCR / MicroPrefix / SortedVariable(nbBytes=10240, nbSegments=694, minSegLenth=10, maxSegLenth=20, alphabetSize=4) / Decode", - "MCR / MicroPrefix / SortedVariable(nbBytes=10240, nbSegments=694, minSegLenth=10, maxSegLenth=20, alphabetSize=4) / Encode", + "MCR / MicroPrefix / SortedVariable(nbBytes=10240, nbSegments=694, minSegLength=10, maxSegLength=20, alphabetSize=4) / Decode", + "MCR / MicroPrefix / SortedVariable(nbBytes=10240, nbSegments=694, minSegLength=10, maxSegLength=20, alphabetSize=4) / Encode", "MCR / MicroTransposeSplit4 / FixedSizeUniform(nbElts=1024, eltWidth=4) / Encode", "MCR / MicroTransposeSplit4 / FixedSizeUniform(nbElts=10240, eltWidth=4) / Decode", "MCR / MicroTransposeSplit8 / FixedSizeUniform(nbElts=1024, eltWidth=8) / Decode", diff --git a/benchmark/benchmark_data.h b/benchmark/benchmark_data.h index 3d23cfa97..6cafa0e71 100644 --- a/benchmark/benchmark_data.h +++ b/benchmark/benchmark_data.h @@ -275,7 +275,7 @@ class VariableSizeData : public BenchmarkData { std::string name() override { return fmt::format( - "{}Variable(nbBytes={}, nbSegments={}, minSegLenth={}, maxSegLenth={}, alphabetSize={})", + "{}Variable(nbBytes={}, nbSegments={}, minSegLength={}, maxSegLength={}, alphabetSize={})", sorted_ ? "Sorted" : "Unsorted", data_.size(), fieldSizes_.size(), @@ -319,11 +319,13 @@ class UniformDistributionData : public BenchmarkData { if (cardinality.has_value()) { auto alphabet = utils::generateRandomAlphabet( cardinality.value(), seed, minValue, maxValue); - data_ = utils::toUint8Vector(utils::generateUniformRandomVector( - size, seed, alphabet)); + data_ = utils::toUint8Vector( + utils::generateUniformRandomVector( + size, seed, alphabet)); } else { - data_ = utils::toUint8Vector(utils::generateUniformRandomVector( - size, seed, minValue, maxValue)); + data_ = utils::toUint8Vector( + utils::generateUniformRandomVector( + size, seed, minValue, maxValue)); } } std::string_view data() override @@ -437,11 +439,12 @@ class NormalDistributionData : public BenchmarkData { stddev_(stddev), size_(size), seed_(seed), - data_(utils::toUint8Vector(utils::generateNormalRandomVector( - size, - seed, - mean, - stddev))) + data_(utils::toUint8Vector( + utils::generateNormalRandomVector( + size, + seed, + mean, + stddev))) { } std::string_view data() override @@ -527,7 +530,7 @@ class CustomDistributionData : public BenchmarkData { class FixedWidthDataProducerData : public BenchmarkData { public: explicit FixedWidthDataProducerData( - zstrong::tests::datagen::FixedWidthDataProducer& producer) + openzl::tests::datagen::FixedWidthDataProducer& producer) : data_(producer("FixedWidthDataProducerData")) { std::ostringstream oss; @@ -549,7 +552,7 @@ class FixedWidthDataProducerData : public BenchmarkData { } private: - zstrong::tests::datagen::FixedWidthData data_; + openzl::tests::datagen::FixedWidthData data_; std::string name_; }; diff --git a/benchmark/benchmark_data_utils.h b/benchmark/benchmark_data_utils.h index eb32eb12a..14e78414d 100644 --- a/benchmark/benchmark_data_utils.h +++ b/benchmark/benchmark_data_utils.h @@ -13,8 +13,9 @@ #include "openzl/shared/mem.h" #include "openzl/zl_config.h" +#include "openzl/zl_version.h" -#if ZL_HAVE_FBCODE +#if ZL_IS_FBCODE # include "tools/cxx/Resources.h" #endif @@ -278,18 +279,9 @@ inline std::string readCorpus(const std::filesystem::path& name) return envPath; } } -#if ZL_HAVE_FBCODE - { - // Try looking for a buck resource, we have two possible paths one - // for dev and one for release - const std::vector paths = { - "data_compression/experimental/zstrong/benchmark/corpus", - "openzl/versions/release/benchmark/corpus" - }; - for (auto path : paths) { - if (build::doesResourceExist(path)) - return build::getResourcePath(path).string(); - } +#if ZL_IS_FBCODE + if (build::doesResourceExist("corpus")) { + return build::getResourcePath("corpus").string(); } #endif // We failed finding a path diff --git a/benchmark/e2e/e2e_bench.cpp b/benchmark/e2e/e2e_bench.cpp index 304d68471..0d5ea7935 100644 --- a/benchmark/e2e/e2e_bench.cpp +++ b/benchmark/e2e/e2e_bench.cpp @@ -14,7 +14,6 @@ #include "benchmark/benchmark_config.h" #include "benchmark/benchmark_data.h" #include "benchmark/benchmark_data_utils.h" -#include "benchmark/benchmark_testcase.h" #include "benchmark/e2e/e2e_bench.h" #include "benchmark/e2e/e2e_compressor.h" #include "benchmark/e2e/e2e_fieldlz.h" @@ -23,14 +22,10 @@ #include "benchmark/e2e/e2e_sao.h" #include "benchmark/e2e/e2e_splitByStruct.h" #include "benchmark/e2e/e2e_thrift.h" -#include "benchmark/e2e/e2e_zstrong_utils.h" #include "openzl/codecs/dispatch_string/decode_dispatch_string_binding.h" #include "openzl/codecs/dispatch_string/encode_dispatch_string_binding.h" -#include "openzl/codecs/divide_by/decode_divide_by_binding.h" -#include "openzl/codecs/divide_by/encode_divide_by_binding.h" #include "openzl/compress/private_nodes.h" #include "openzl/zl_compressor.h" -#include "openzl/zl_data.h" // ZS2_Data_* #include "openzl/zl_opaque_types.h" #include "openzl/zl_public_nodes.h" diff --git a/benchmark/e2e/e2e_fieldlz.h b/benchmark/e2e/e2e_fieldlz.h index 9707cbe5d..f20fed5a9 100644 --- a/benchmark/e2e/e2e_fieldlz.h +++ b/benchmark/e2e/e2e_fieldlz.h @@ -91,11 +91,11 @@ inline void registerFieldLzBenchmarks() // Create instances of the benchmark corpora. // We want to benchmark multiple different distributions with // different integer sizes. - zstrong::tests::datagen::VectorOfTokensParameters params{}; + openzl::tests::datagen::VectorOfTokensParameters params{}; params.numTokens = 100000; - auto rand = std::make_shared( + auto rand = std::make_shared( std::make_shared(0xdeadbeef)); - zstrong::tests::datagen::VectorOfTokensProducer producer(rand, params); + openzl::tests::datagen::VectorOfTokensProducer producer(rand, params); std::vector> corpora = { // 10K 16bit values with cardinality of 100 std::make_shared>(10240, 100), diff --git a/benchmark/e2e/e2e_json_extract.cpp b/benchmark/e2e/e2e_json_extract.cpp index e4a97f02b..adad0e483 100644 --- a/benchmark/e2e/e2e_json_extract.cpp +++ b/benchmark/e2e/e2e_json_extract.cpp @@ -9,11 +9,9 @@ #include "benchmark/e2e/e2e_compressor.h" #include "custom_transforms/json_extract/decode_json_extract.h" #include "custom_transforms/json_extract/encode_json_extract.h" -#include "openzl/zl_config.h" -#include "openzl/zl_ctransform.h" -#include "openzl/zl_dtransform.h" +#include "openzl/zl_version.h" -#if ZL_HAVE_FBCODE +#if ZL_IS_FBCODE # include "custom_transforms/json_extract/tests/json_extract_test_data.h" @@ -44,7 +42,7 @@ class JsonExtractCompressor : public ZstrongCompressor { void registerBenchmark(size_t size) { auto corpus = std::make_shared( - tests::genJsonLikeData(size)); + openzl::tests::genJsonLikeData(size)); auto compressor = std::make_shared(); E2EBenchmarkTestcase(compressor, corpus).registerBenchmarks(); } diff --git a/benchmark/e2e/e2e_parse.cpp b/benchmark/e2e/e2e_parse.cpp index af97d745f..58a51b850 100644 --- a/benchmark/e2e/e2e_parse.cpp +++ b/benchmark/e2e/e2e_parse.cpp @@ -10,19 +10,16 @@ #include "benchmark/e2e/e2e_fieldlz.h" #include "custom_transforms/parse/decode_parse.h" #include "custom_transforms/parse/encode_parse.h" -#include "openzl/zl_config.h" -#include "openzl/zl_ctransform.h" -#include "openzl/zl_dtransform.h" #include "openzl/zl_opaque_types.h" -#if ZL_HAVE_FBCODE +#if ZL_IS_FBCODE # include "custom_transforms/parse/tests/parse_test_data.h" namespace zstrong::bench::e2e::parse { namespace { -using tests::parse::Type; +using openzl::tests::parse::Type; class ParseCompressor : public ZstrongStringCompressor { public: @@ -59,8 +56,8 @@ class ParseCompressor : public ZstrongStringCompressor { void registerBenchmark(size_t size, Type type) { - auto data = tests::parse::genData(size, type); - auto [content, fieldSizes] = tests::parse::flatten(data); + auto data = openzl::tests::parse::genData(size, type); + auto [content, fieldSizes] = openzl::tests::parse::flatten(data); auto corpus = std::make_shared( std::move(content), std::move(fieldSizes)); auto compressor = diff --git a/benchmark/e2e/e2e_sao.h b/benchmark/e2e/e2e_sao.h index 7c1f1e67c..ea678dd2f 100644 --- a/benchmark/e2e/e2e_sao.h +++ b/benchmark/e2e/e2e_sao.h @@ -13,7 +13,7 @@ #include "benchmark/e2e/e2e_bench.h" #include "benchmark/e2e/e2e_compressor.h" #include "benchmark/e2e/e2e_zstrong_utils.h" -#include "benchmark/unitBench/saoGraph.h" +#include "benchmark/unitBench/scenarios/sao_graph.h" #include "openzl/compress/private_nodes.h" #include "openzl/zl_compressor.h" #include "openzl/zl_public_nodes.h" diff --git a/benchmark/e2e/e2e_thrift.cpp b/benchmark/e2e/e2e_thrift.cpp index ff9f5ce55..47d3955f0 100644 --- a/benchmark/e2e/e2e_thrift.cpp +++ b/benchmark/e2e/e2e_thrift.cpp @@ -2,9 +2,9 @@ #include "benchmark/e2e/e2e_thrift.h" #include -#include "openzl/zl_config.h" +#include "openzl/zl_version.h" -#if ZL_HAVE_FBCODE +#if ZL_IS_FBCODE # include # include @@ -13,10 +13,8 @@ # include "benchmark/benchmark_data.h" # include "benchmark/benchmark_data_utils.h" -# include "benchmark/benchmark_testcase.h" # include "benchmark/e2e/e2e_bench.h" # include "benchmark/e2e/e2e_compressor.h" -# include "benchmark/e2e/e2e_zstrong_utils.h" # include "custom_transforms/thrift/parse_config.h" # include "custom_transforms/thrift/tests/util.h" # include "custom_transforms/thrift/thrift_parsers.h" @@ -152,7 +150,7 @@ std::vector buildRandomList(size_t size) std::vector result; std::mt19937 gen(0xdeadbeef); for (size_t i = 0; i < size; ++i) { - result.push_back(::zstrong::thrift::tests::generate(gen)); + result.push_back(::openzl::thrift::tests::generate(gen)); } return result; } @@ -319,10 +317,10 @@ std::vector buildTestCases() size_t binaryBytes = 0; while (true) { std::string const str_compact = - ::zstrong::thrift::tests::generateRandomThrift< + ::openzl::thrift::tests::generateRandomThrift< apache::thrift::CompactSerializer>(genCompact); std::string const str_binary = - ::zstrong::thrift::tests::generateRandomThrift< + ::openzl::thrift::tests::generateRandomThrift< apache::thrift::BinarySerializer>(genBinary); ss_compact << str_compact; @@ -418,8 +416,9 @@ std::vector buildTestCases() buildManySmallMapsTestCase(targetSizeBytes)); testCases.push_back( buildManySmallMapsTestCase(targetSizeBytes)); - testCases.push_back(buildManySmallMapsTestCase( - targetSizeBytes)); + testCases.push_back( + buildManySmallMapsTestCase( + targetSizeBytes)); } return testCases; diff --git a/benchmark/e2e/e2e_zstrong_utils.h b/benchmark/e2e/e2e_zstrong_utils.h index 321b74240..93d2ad47d 100644 --- a/benchmark/e2e/e2e_zstrong_utils.h +++ b/benchmark/e2e/e2e_zstrong_utils.h @@ -107,8 +107,12 @@ inline ZL_GraphID addConversionFromSerial( if (inputType & ZL_Type_struct) { ZL_IntParam intParams = { ZL_trlip_tokenSize, (int)eltWidth }; ZL_LocalParams params = { .intParams = { &intParams, 1 } }; - auto const node = ZL_Compressor_cloneNode( - cgraph, ZL_NODE_CONVERT_SERIAL_TO_TOKENX, ¶ms); + const ZL_ParameterizedNodeDesc desc = { + .node = ZL_NODE_CONVERT_SERIAL_TO_TOKENX, + .localParams = ¶ms, + }; + auto const node = + ZL_Compressor_registerParameterizedNode(cgraph, &desc); return ZL_Compressor_registerStaticGraph_fromNode1o( cgraph, node, graph); } diff --git a/benchmark/micro/micro_feature_gen.h b/benchmark/micro/micro_feature_gen.h index 0f04cd71f..d0a7c3e54 100644 --- a/benchmark/micro/micro_feature_gen.h +++ b/benchmark/micro/micro_feature_gen.h @@ -6,10 +6,11 @@ #include "openzl/common/vector.h" #include "openzl/compress/selectors/ml/features.h" #include "openzl/zl_config.h" +#include "openzl/zl_version.h" // Our tools don't really compile outside of fbcode atm, this is a hack to // make sure we compile this benchmark only in fbcode env. -#if ZL_HAVE_FBCODE +#if ZL_IS_FBCODE # include "benchmark/benchmark_testcase.h" # include "benchmark/micro/micro_bench.h" @@ -61,7 +62,7 @@ namespace zstrong::bench::micro { void inline registerFeatureGeneratorBench() {} } // namespace zstrong::bench::micro -#endif // ZL_HAVE_FBCODE +#endif // ZL_IS_FBCODE const size_t kDefaultVectorCapacity = 1024; @@ -83,7 +84,7 @@ void inline registerFeatureGenIntegerBench(size_t size) VECTOR(LabeledFeature) features = empty_vector(); while (state.KeepRunning()) { - ZL_Report report = FeatureGen_integer(stream, &features, nullptr); + ZL_Report report = FeatureGen_integer(stream, &features); VECTOR_CLEAR(features); benchmark::DoNotOptimize(report); benchmark::ClobberMemory(); diff --git a/benchmark/runner/local_compare.py b/benchmark/runner/local_compare.py index eb99d1149..8a2d56587 100644 --- a/benchmark/runner/local_compare.py +++ b/benchmark/runner/local_compare.py @@ -11,12 +11,10 @@ import typing as t import click - from scm.hgrepo import HgCommit, HgRepository from .phabricator_utils import PHAB_ACCESS_TYPE, PhabricatorUtils from .quiet_cpu_utils import QuietCPUManager - from .zstrong_gbenchmarks import ( ZstrongGoogleBenchmarkResults, ZstrongGoogleBenchmarkRunner, @@ -28,7 +26,7 @@ log = logging.getLogger("BenchmarkRunner") -DEAFULT_BUCK_TAGET = "//data_compression/experimental/zstrong/benchmark:benchmark" +DEAFULT_BUCK_TAGET = "//openzl/dev/benchmark:benchmark" DEFAULT_REPETITIONS = 10 DEFAULT_MIN_TIME = 0.1 @@ -470,7 +468,7 @@ def compare_versions( *additional_args, ] replication_args = " ".join([a for a in replication_args if a]) - replication_command_line = f"$ buck2 run //data_compression/experimental/zstrong/benchmark/runner:local_compare -- {replication_args} \n\n" + replication_command_line = f"$ buck2 run //openzl/dev/benchmark/runner:local_compare -- {replication_args} \n\n" update_diff_test_plan(replication_command_line + formatted, commit) diff --git a/benchmark/runner/main.py b/benchmark/runner/main.py index 913f99f9c..5e4fd2ee2 100644 --- a/benchmark/runner/main.py +++ b/benchmark/runner/main.py @@ -120,7 +120,7 @@ def process_results(self): content = [] if self.start_time and self.end_time: content.append( - f"Benchmark ended at {self.end_time.strftime('%m-%d-%Y %H:%M:%S')} and took {(self.end_time-self.start_time).total_seconds()/60:0.2f} minutes to execute." + f"Benchmark ended at {self.end_time.strftime('%m-%d-%Y %H:%M:%S')} and took {(self.end_time - self.start_time).total_seconds() / 60:0.2f} minutes to execute." ) content.append( f"Comparing current run {self.run_id} against {self.compare}" diff --git a/benchmark/runner/phabricator_utils.py b/benchmark/runner/phabricator_utils.py index 7693b1e36..5a36af837 100644 --- a/benchmark/runner/phabricator_utils.py +++ b/benchmark/runner/phabricator_utils.py @@ -3,7 +3,6 @@ # pyre-unsafe import logging - from enum import Enum from typing import Union diff --git a/benchmark/runner/zstrong_gbenchmarks.py b/benchmark/runner/zstrong_gbenchmarks.py index 3435b0903..165e91fb3 100644 --- a/benchmark/runner/zstrong_gbenchmarks.py +++ b/benchmark/runner/zstrong_gbenchmarks.py @@ -325,16 +325,18 @@ def compare(self, other, removed=False) -> ZstrongComparedResults: metric_columns.append(f"{metric}_diff") def calc_p_value(type="two-sided", shift=0): - col_name = f"{metric}_p_value_{type.replace('-','_')}" + col_name = f"{metric}_p_value_{type.replace('-', '_')}" joint[col_name] = joint[[f"{metric}_arr_1", f"{metric}_arr_2"]].apply( - lambda x: st.ttest_ind( - x[0] * (1 + shift), - x[1], - trim=0.1, - equal_var=False, - alternative=type, - random_state=1337, - ).pvalue, + lambda x: ( + st.ttest_ind( + x[0] * (1 + shift), + x[1], + trim=0.1, + equal_var=False, + alternative=type, + random_state=1337, + ).pvalue + ), axis=1, ) metric_columns.append(col_name) @@ -436,7 +438,7 @@ def run(self) -> ZstrongGoogleBenchmarkResults: args = [ "--benchmark_format=json", # "--benchmark_enable_random_interleaving=true", - f"--benchmark_repetitions={min(self.MAX_REPS_PER_EXECUTION, self.repetitions-rep)}", + f"--benchmark_repetitions={min(self.MAX_REPS_PER_EXECUTION, self.repetitions - rep)}", ] if self.min_time: args.append(f"--benchmark_min_time={self.min_time}") diff --git a/benchmark/tools/BUCK b/benchmark/tools/BUCK new file mode 100644 index 000000000..7f8ad8fdb --- /dev/null +++ b/benchmark/tools/BUCK @@ -0,0 +1,30 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +load("../../defs.bzl", "zs_binary") + +oncall("data_compression") + +zs_binary( + name = "bench_input_gen", + srcs = [ + "input_gen.cpp", + ], +) + +zs_binary( + name = "gen_split_byrange_data", + srcs = [ + "gen_split_byrange_data.cpp", + ], +) + +zs_binary( + name = "inspect_split_byrange", + srcs = [ + "inspect_split_byrange.c", + ], + deps = [ + "../..:zstronglib", + "../../tools:fileio", + ], +) diff --git a/benchmark/tools/gen_split_byrange_data.cpp b/benchmark/tools/gen_split_byrange_data.cpp new file mode 100644 index 000000000..6a1a0cc10 --- /dev/null +++ b/benchmark/tools/gen_split_byrange_data.cpp @@ -0,0 +1,230 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/* + * Generate golden benchmark data files for split_byrange. + * + * Usage: + * gen_split_byrange_data [nbElts] + * + * Modes: + * nosplit - uniform random u32 values (single range, no split possible) + * 2ranges - two non-overlapping ranges, equal halves + * 5ranges - five non-overlapping ranges, equal segments + * 10ranges - ten non-overlapping ranges, equal segments + * ascending - values from ascending ranges with increasing base + * valley - high-low-high pattern (descending then ascending ranges) + * + * Default nbElts: 262144 (1 MB of u32) + * + * Examples: + * gen_split_byrange_data /tmp/openzl_bench/nosplit.bin nosplit + * gen_split_byrange_data /tmp/openzl_bench/5ranges.bin 5ranges 1000000 + */ + +#include +#include +#include +#include + +#define DEFAULT_NB_ELTS (256 * 1024) /* 1 MB of u32 */ + +/* Simple xorshift64 PRNG for reproducibility */ +// NOLINTNEXTLINE(facebook-avoid-non-const-global-variables) +static uint64_t rng_state = 0x123456789ABCDEF0ULL; + +static uint64_t xorshift64(void) +{ + uint64_t x = rng_state; + x ^= x << 13; + x ^= x >> 7; + x ^= x << 17; + rng_state = x; + return x; +} + +static uint32_t randRange(uint32_t lo, uint32_t hi) +{ + if (lo >= hi) + return lo; + return lo + (uint32_t)(xorshift64() % (hi - lo + 1)); +} + +/* Fill buffer with random u32 values in [lo, hi] */ +static void fillRange(uint32_t* buf, size_t n, uint32_t lo, uint32_t hi) +{ + for (size_t i = 0; i < n; i++) { + buf[i] = randRange(lo, hi); + } +} + +static int writeFile(const char* path, const uint32_t* data, size_t nbElts) +{ + FILE* f = fopen(path, "wb"); + if (!f) { + fprintf(stderr, "Error: cannot open %s for writing\n", path); + return 1; + } + size_t written = fwrite(data, sizeof(uint32_t), nbElts, f); + fclose(f); + if (written != nbElts) { + fprintf(stderr, "Error: wrote %zu of %zu elements\n", written, nbElts); + return 1; + } + printf("Wrote %zu elements (%zu bytes) to %s\n", + nbElts, + nbElts * sizeof(uint32_t), + path); + return 0; +} + +/* Generate N equal segments with non-overlapping ranges. + * Ranges are separated by gaps of ~1000. */ +static int genNRanges(const char* path, size_t nbElts, int nbRanges) +{ + uint32_t* data = (uint32_t*)malloc(nbElts * sizeof(uint32_t)); + if (!data) { + fprintf(stderr, "Error: allocation failed\n"); + return 1; + } + + size_t segSize = nbElts / (size_t)nbRanges; + uint32_t cursor = 100; + uint32_t const amplitude = 500; + uint32_t const gap = 1000; + + for (int r = 0; r < nbRanges; r++) { + size_t start = (size_t)r * segSize; + size_t end = (r == nbRanges - 1) ? nbElts : start + segSize; + fillRange(data + start, end - start, cursor, cursor + amplitude); + cursor += amplitude + gap; + } + + int ret = writeFile(path, data, nbElts); + if (!ret) { + printf(" Pattern: %d equal ranges, amplitude=%u, gap=%u\n", + nbRanges, + amplitude, + gap); + } + free(data); + return ret; +} + +/* ascending: ranges with increasing base and varying amplitude */ +static int genAscending(const char* path, size_t nbElts) +{ + int const nbRanges = 6; + uint32_t* data = (uint32_t*)malloc(nbElts * sizeof(uint32_t)); + if (!data) { + fprintf(stderr, "Error: allocation failed\n"); + return 1; + } + + size_t segSize = nbElts / (size_t)nbRanges; + uint32_t cursor = 0; + + uint32_t const amplitudes[] = { 200, 50, 800, 100, 300, 500 }; + uint32_t const gaps[] = { 500, 2000, 300, 5000, 1000, 0 }; + + for (int r = 0; r < nbRanges; r++) { + size_t start = (size_t)r * segSize; + size_t end = (r == nbRanges - 1) ? nbElts : start + segSize; + fillRange(data + start, end - start, cursor, cursor + amplitudes[r]); + cursor += amplitudes[r] + gaps[r]; + } + + int ret = writeFile(path, data, nbElts); + if (!ret) { + printf(" Pattern: %d ascending ranges with varying amplitudes\n", + nbRanges); + } + free(data); + return ret; +} + +/* valley: high-low-high pattern */ +static int genValley(const char* path, size_t nbElts) +{ + int const nbRanges = 5; + uint32_t* data = (uint32_t*)malloc(nbElts * sizeof(uint32_t)); + if (!data) { + fprintf(stderr, "Error: allocation failed\n"); + return 1; + } + + /* Ranges: 10000-10500, 5000-5200, 100-300, 6000-6800, 12000-12400 */ + uint32_t const lo[] = { 10000, 5000, 100, 6000, 12000 }; + uint32_t const hi[] = { 10500, 5200, 300, 6800, 12400 }; + + size_t segSize = nbElts / (size_t)nbRanges; + for (int r = 0; r < nbRanges; r++) { + size_t start = (size_t)r * segSize; + size_t end = (r == nbRanges - 1) ? nbElts : start + segSize; + fillRange(data + start, end - start, lo[r], hi[r]); + } + + int ret = writeFile(path, data, nbElts); + if (!ret) { + printf(" Pattern: valley (high-low-high) with %d ranges\n", nbRanges); + } + free(data); + return ret; +} + +static void printUsage(void) +{ + fprintf(stderr, + "Usage: gen_split_byrange_data [nbElts]\n" + "\n" + "Modes:\n" + " nosplit - uniform random (no range boundaries)\n" + " 2ranges - two non-overlapping ranges\n" + " 5ranges - five non-overlapping ranges\n" + " 10ranges - ten non-overlapping ranges\n" + " ascending - ascending ranges with varying amplitudes\n" + " valley - high-low-high pattern\n" + "\n" + "Default nbElts: %d (= %d KB of u32)\n", + DEFAULT_NB_ELTS, + (int)(DEFAULT_NB_ELTS * 4 / 1024)); +} + +int main(int argc, char** argv) +{ + if (argc < 3) { + printUsage(); + return 1; + } + + const char* path = argv[1]; + const char* mode = argv[2]; + size_t nbElts = DEFAULT_NB_ELTS; + if (argc >= 4) { + nbElts = (size_t)atol(argv[3]); + if (nbElts == 0) { + fprintf(stderr, "Error: nbElts must be > 0\n"); + return 1; + } + } + + /* Seed PRNG deterministically */ + rng_state = 0x123456789ABCDEF0ULL; + + if (strcmp(mode, "nosplit") == 0) { + return genNRanges(path, nbElts, 1); + } else if (strcmp(mode, "2ranges") == 0) { + return genNRanges(path, nbElts, 2); + } else if (strcmp(mode, "5ranges") == 0) { + return genNRanges(path, nbElts, 5); + } else if (strcmp(mode, "10ranges") == 0) { + return genNRanges(path, nbElts, 10); + } else if (strcmp(mode, "ascending") == 0) { + return genAscending(path, nbElts); + } else if (strcmp(mode, "valley") == 0) { + return genValley(path, nbElts); + } else { + fprintf(stderr, "Error: unknown mode '%s'\n", mode); + printUsage(); + return 1; + } +} diff --git a/benchmark/unitBench/tools/input_gen.cpp b/benchmark/tools/input_gen.cpp similarity index 100% rename from benchmark/unitBench/tools/input_gen.cpp rename to benchmark/tools/input_gen.cpp diff --git a/benchmark/tools/inspect_split_byrange.c b/benchmark/tools/inspect_split_byrange.c new file mode 100644 index 000000000..d1597d903 --- /dev/null +++ b/benchmark/tools/inspect_split_byrange.c @@ -0,0 +1,312 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/* + * Inspect split_byrange segmentation on a raw numeric file. + * + * Compresses the input with INTERPRET_AS_LE{32,64} → SPLIT_BYRANGE → STORE, + * then uses the Reflection API to enumerate each segment: count, size, + * min/max values, and value range width. + * + * Usage: + * inspect_split_byrange [mode] + * + * Modes: + * split32 - INTERPRET_AS_LE32 → SPLIT_BYRANGE → STORE + * split64 - INTERPRET_AS_LE64 → SPLIT_BYRANGE → STORE (default) + * tokenSort64 - INTERPRET_AS_LE64 → tokenize_sorted(delta_int+numeric, + * numeric) splitTokenSort64 - INTERPRET_AS_LE64 → SPLIT_BYRANGE → + * tokenize_sorted(delta_int+numeric, numeric) + */ + +#include +#include +#include +#include + +#include "openzl/codecs/zl_split.h" +#include "openzl/common/assertion.h" +#include "openzl/zl_compress.h" +#include "openzl/zl_compressor.h" +#include "openzl/zl_data.h" +#include "openzl/zl_public_nodes.h" +#include "openzl/zl_reflection.h" +#include "tools/fileio/fileio.h" + +static ZL_GraphID splitByRange32_store(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE32, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_STORE)); +} + +static ZL_GraphID splitByRange64_store(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_STORE)); +} + +/* --- tokenSort variants for introspection --- */ + +#include "openzl/codecs/zl_delta.h" +#include "openzl/codecs/zl_generic.h" +#include "openzl/codecs/zl_tokenize.h" + +static ZL_GraphID tokenSort64_numeric(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + ZL_GraphID alphabetGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_DELTA_INT, ZL_GRAPH_NUMERIC); + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerTokenizeGraph( + cgraph, + ZL_Type_numeric, + true, + alphabetGraph, + ZL_GRAPH_NUMERIC)); +} + +static ZL_GraphID splitByRange64_tokenSort_numeric(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + ZL_GraphID alphabetGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_DELTA_INT, ZL_GRAPH_NUMERIC); + ZL_GraphID tokenSort = ZL_Compressor_registerTokenizeGraph( + cgraph, ZL_Type_numeric, true, alphabetGraph, ZL_GRAPH_NUMERIC); + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, tokenSort)); +} + +static void print_minmax_u32(const void* data, size_t nbElts) +{ + const uint32_t* p = (const uint32_t*)data; + uint32_t lo = p[0], hi = p[0]; + for (size_t i = 1; i < nbElts; i++) { + if (p[i] < lo) + lo = p[i]; + if (p[i] > hi) + hi = p[i]; + } + printf(" min = %" PRIu32 " max = %" PRIu32 " range = %" PRIu32 "\n", + lo, + hi, + hi - lo); +} + +static void print_minmax_u64(const void* data, size_t nbElts) +{ + const uint64_t* p = (const uint64_t*)data; + uint64_t lo = p[0], hi = p[0]; + for (size_t i = 1; i < nbElts; i++) { + if (p[i] < lo) + lo = p[i]; + if (p[i] > hi) + hi = p[i]; + } + printf(" min = %" PRIu64 " max = %" PRIu64 " range = %" PRIu64 "\n", + lo, + hi, + hi - lo); +} + +int main(int argc, char* argv[]) +{ + if (argc < 2 || argc > 3) { + fprintf(stderr, + "Usage: %s [mode]\n" + "Modes: split32, split64 (default), tokenSort64, splitTokenSort64\n", + argv[0]); + return 1; + } + + const char* filename = argv[1]; + const char* mode = (argc >= 3) ? argv[2] : "split64"; + + int eltWidth = 64; // NOLINT(clang-analyzer-deadcode.DeadStores) + ZL_GraphFn graphFn; + if (strcmp(mode, "split32") == 0) { + eltWidth = 32; + graphFn = splitByRange32_store; + } else if (strcmp(mode, "split64") == 0) { + eltWidth = 64; + graphFn = splitByRange64_store; + } else if (strcmp(mode, "tokenSort64") == 0) { + eltWidth = 64; + graphFn = tokenSort64_numeric; + } else if (strcmp(mode, "splitTokenSort64") == 0) { + eltWidth = 64; + graphFn = splitByRange64_tokenSort_numeric; + } else { + fprintf(stderr, "Error: unknown mode '%s'\n", mode); + return 1; + } + printf("Mode: %s\n", mode); + + /* 1. Read input */ + ZL_Buffer input = FIO_createBuffer_fromFilename_orDie(filename); + ZL_RC inputRC = ZL_B_getRC(&input); + size_t srcSize = ZL_RC_avail(&inputRC); + void const* srcData = ZL_RC_ptr(&inputRC); + + size_t const eltBytes = (size_t)eltWidth / 8; + size_t const nbElts = srcSize / eltBytes; + printf("Input: %s\n", filename); + printf(" %zu bytes, %zu elements of %d bits\n", srcSize, nbElts, eltWidth); + + /* Print global min/max */ + printf(" Global value range:\n"); + if (eltWidth == 32) { + print_minmax_u32(srcData, nbElts); + } else { + print_minmax_u64(srcData, nbElts); + } + printf("\n"); + + /* 2. Compress with splitByRange → STORE */ + ZL_Compressor* cgraph = ZL_Compressor_create(); + ZL_REQUIRE_NN(cgraph); + ZL_REQUIRE_SUCCESS(ZL_Compressor_initUsingGraphFn(cgraph, graphFn)); + + ZL_CCtx* cctx = ZL_CCtx_create(); + ZL_REQUIRE_NN(cctx); + ZL_REQUIRE_SUCCESS(ZL_CCtx_refCompressor(cctx, cgraph)); + + size_t dstCapacity = ZL_compressBound(srcSize); + void* dst = malloc(dstCapacity); + ZL_REQUIRE_NN(dst); + + ZL_Report r = ZL_CCtx_compress(cctx, dst, dstCapacity, srcData, srcSize); + ZL_REQUIRE_SUCCESS(r); + size_t compressedSize = ZL_validResult(r); + printf("Compressed: %zu bytes (ratio x%.2f)\n\n", + compressedSize, + (double)srcSize / (double)compressedSize); + + /* 3. Reflect on compressed frame */ + ZL_ReflectionCtx* rctx = ZL_ReflectionCtx_create(); + ZL_REQUIRE_NN(rctx); + /* no custom decoders needed — only standard codecs */ + ZL_REQUIRE_SUCCESS( + ZL_ReflectionCtx_setCompressedFrame(rctx, dst, compressedSize)); + + size_t nbCodecs = ZL_ReflectionCtx_getNumCodecs_lastChunk(rctx); + size_t nbStreams = ZL_ReflectionCtx_getNumStreams_lastChunk(rctx); + + printf("Reflection: %zu codecs, %zu streams\n\n", nbCodecs, nbStreams); + + /* 4. Print per-codec info */ + for (size_t ci = 0; ci < nbCodecs; ci++) { + ZL_CodecInfo const* codec = + ZL_ReflectionCtx_getCodec_lastChunk(rctx, ci); + const char* name = ZL_CodecInfo_getName(codec); + size_t numIn = ZL_CodecInfo_getNumInputs(codec); + size_t numOut = ZL_CodecInfo_getNumOutputs(codec); + size_t numVarOut = ZL_CodecInfo_getNumVariableOutputs(codec); + size_t hdrSize = ZL_CodecInfo_getHeaderSize(codec); + printf("Codec %zu: %s (inputs=%zu, outputs=%zu, varOutputs=%zu, headerSize=%zu)\n", + ci, + name, + numIn, + numOut, + numVarOut, + hdrSize); + + /* Print output segments with value details */ + for (size_t oi = 0; oi < numOut; oi++) { + ZL_DataInfo const* out = ZL_CodecInfo_getOutput(codec, oi); + size_t segNbElts = ZL_DataInfo_getNumElts(out); + size_t segEltW = ZL_DataInfo_getEltWidth(out); + size_t segSize = ZL_DataInfo_getContentSize(out); + void const* segData = ZL_DataInfo_getDataPtr(out); + size_t segIdx = ZL_DataInfo_getIndex(out); + ZL_Type segType = ZL_DataInfo_getType(out); + + const char* typeStr = + "?"; // NOLINT(clang-analyzer-deadcode.DeadStores) + switch (segType) { + case ZL_Type_serial: + typeStr = "serial"; + break; + case ZL_Type_struct: + typeStr = "struct"; + break; + case ZL_Type_numeric: + typeStr = "numeric"; + break; + case ZL_Type_string: + typeStr = "string"; + break; + default: + typeStr = "other"; + } + + printf(" output[%zu] (stream %zu): type=%s eltWidth=%zu " + "nbElts=%zu size=%zu bytes\n", + oi, + segIdx, + typeStr, + segEltW, + segNbElts, + segSize); + + /* Print min/max for numeric segments */ + if (segData != NULL && segNbElts > 0 + && segType == ZL_Type_numeric) { + if (segEltW == 4) { + print_minmax_u32(segData, segNbElts); + } else if (segEltW == 8) { + print_minmax_u64(segData, segNbElts); + } + } + } + printf("\n"); + } + + /* Cleanup */ + ZL_ReflectionCtx_free(rctx); + free(dst); + ZL_CCtx_free(cctx); + ZL_Compressor_free(cgraph); + ZL_B_destroy(&input); + + return 0; +} diff --git a/benchmark/unitBench/BUCK b/benchmark/unitBench/BUCK index 629aebc1f..b9e6b55fe 100644 --- a/benchmark/unitBench/BUCK +++ b/benchmark/unitBench/BUCK @@ -1,56 +1,46 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_binary", "zs_library", "zs_release_binary") +load("../../defs.bzl", "zs_binary", "zs_library", "zs_release_binary") oncall("data_compression") -zs_binary( - name = "bench_input_gen", - srcs = [ - "tools/input_gen.cpp", - ], -) - zs_library( name = "sao_graph", - srcs = ["saoGraph.c"], - headers = ["saoGraph.h"], + srcs = ["scenarios/sao_graph.c"], + headers = ["scenarios/sao_graph.h"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "../..:zstronglib", + "fbsource//third-party/benchmark:benchmark", ], ) zs_binary( name = "unitBench", - srcs = glob([ - "**/*.c", - ]), + srcs = glob(["**/*.c"]), headers = glob([ "**/*.h", ]), deps = [ - ":sao_graph", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", - "//data_compression/experimental/zstrong/tools:timefn", - "//data_compression/experimental/zstrong/tools/streamdump:stream_dump2_headers", + "../..:zstronglib", + "../../tools:fileio", + "../../tools:timefn", + "../../tools/streamdump:stream_dump2_headers", + "fbsource//third-party/benchmark:benchmark", + "fbsource//third-party/zstd:zstd", ], ) zs_release_binary( name = "unitBench_mc", - srcs = glob([ - "**/*.c", - ]), + srcs = glob(["**/*.c"]), headers = glob([ "**/*.h", ]), deps = [ - ":sao_graph", + "../..:zstronglib", + "../../tools:fileio", + "../../tools:timefn", + "../../tools/streamdump:stream_dump2_headers", "//common/managed_compression/zstrong:stream_dump_shim", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", - "//data_compression/experimental/zstrong/tools:timefn", - "//data_compression/experimental/zstrong/tools/streamdump:stream_dump2_headers", ], ) diff --git a/benchmark/unitBench/benchList.h b/benchmark/unitBench/benchList.h index 2b741495c..1139d1593 100644 --- a/benchmark/unitBench/benchList.h +++ b/benchmark/unitBench/benchList.h @@ -16,6 +16,8 @@ #include "openzl/shared/xxhash.h" #include "benchmark/unitBench/bench_entry.h" // Bench_Entry +#include "openzl/codecs/zl_delta.h" +#include "openzl/codecs/zl_generic.h" #include "openzl/compress/private_nodes.h" #include "openzl/zl_data.h" #include "openzl/zl_public_nodes.h" @@ -75,6 +77,7 @@ static size_t out_identical(const void* src, size_t srcSize) #include "benchmark/unitBench/scenarios/zstd.h" // openzl standard codecs +#include "benchmark/unitBench/scenarios/codecs/bitSplit.h" #include "benchmark/unitBench/scenarios/codecs/delta.h" #include "benchmark/unitBench/scenarios/codecs/dispatch_by_tag.h" #include "benchmark/unitBench/scenarios/codecs/dispatch_string.h" @@ -167,7 +170,10 @@ static size_t genericGraphCompression( return ZL_validResult(r); } -#include "benchmark/unitBench/saoGraph.h" // sao_graph_v1 +#include "benchmark/unitBench/scenarios/sao_graph.h" // sao_graph_v1 +#include "benchmark/unitBench/scenarios/sao_sddl1.h" // sao_graph_sddl1 +#include "benchmark/unitBench/scenarios/sao_sddl2.h" // sao_graph_sddl2 +#include "benchmark/unitBench/scenarios/split_byrange_graph.h" // splitByRange*_graph static ZL_GraphID zstdGraph(ZL_Compressor* cgraph) { @@ -267,6 +273,22 @@ static ZL_GraphID tokenSort16bitGraph(ZL_Compressor* cgraph) ZL_GRAPH_STORE)); } +static inline ZL_GraphID tokenSort64bitGraph(ZL_Compressor* cgraph) +{ + ZL_GraphID alphabetGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_DELTA_INT, ZL_GRAPH_NUMERIC); + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerTokenizeGraph( + cgraph, + ZL_Type_numeric, + true, + alphabetGraph, + ZL_GRAPH_NUMERIC)); +} + // ============================================================= // **** zs2_decompress (Compatible with custom graphs) **** // ============================================================= @@ -404,6 +426,16 @@ static size_t varintEncode32_wrapper( // clang-format off Bench_Entry const scenarioList[] = { + { "bitSplitDecode_bf16", bitSplitDecode_bf16_wrapper, .prep = bitSplitDecode_bf16_prep, .outSize = bitSplitDecode_bf16_outSize }, + { "bitSplitDecode_bounded32", bitSplitDecode_bounded32_wrapper, .prep = bitSplitDecode_bounded32_prep, .outSize = bitSplitDecode_bounded32_outSize }, + { "bitSplitDecode_fp16", bitSplitDecode_fp16_wrapper, .prep = bitSplitDecode_fp16_prep, .outSize = bitSplitDecode_fp16_outSize }, + { "bitSplitDecode_fp32", bitSplitDecode_fp32_wrapper, .prep = bitSplitDecode_fp32_prep, .outSize = bitSplitDecode_fp32_outSize }, + { "bitSplitDecode_fp64", bitSplitDecode_fp64_wrapper, .prep = bitSplitDecode_fp64_prep, .outSize = bitSplitDecode_fp64_outSize }, + { "bitSplitEncode_bf16", bitSplitEncode_bf16_wrapper, .prep = bitSplitEncode_bf16_prep, .outSize = bitSplitEncode_bf16_outSize }, + { "bitSplitEncode_bounded32", bitSplitEncode_bounded32_wrapper, .prep = bitSplitEncode_bounded32_prep, .outSize = bitSplitEncode_bounded32_outSize }, + { "bitSplitEncode_fp16", bitSplitEncode_fp16_wrapper, .prep = bitSplitEncode_fp16_prep, .outSize = bitSplitEncode_fp16_outSize }, + { "bitSplitEncode_fp32", bitSplitEncode_fp32_wrapper, .prep = bitSplitEncode_fp32_prep, .outSize = bitSplitEncode_fp32_outSize }, + { "bitSplitEncode_fp64", bitSplitEncode_fp64_wrapper, .prep = bitSplitEncode_fp64_prep, .outSize = bitSplitEncode_fp64_outSize }, { "deltaDecode8", deltaDecode8_wrapper, .outSize = out_identical }, { "deltaDecode16", deltaDecode16_wrapper, .outSize = out_identical }, { "deltaEncode32", deltaEncode32_wrapper, .outSize = out_identical }, @@ -453,10 +485,21 @@ Bench_Entry const scenarioList[] = { { "rangePack64zstd", .graphF = rangepack64_zstdGraph }, { "rolz_c", rolzc_wrapper }, { "sao_v1", .graphF=sao_graph_v1 }, + { "sao_sddl1", .graphF=sao_graph_sddl1 }, + { "sao_sddl2", .graphF=sao_graph_sddl2 }, { "saoIngest", saoIngest_wrapper }, { "saoIngestCompiled", saoIngestCompiled_wrapper }, { "splitBy4", splitBy4_wrapper, .prep = splitBy4_preparation }, { "splitBy8", splitBy8_wrapper, .prep = splitBy8_preparation }, + { "splitByRange8", .graphF = splitByRange8_graph }, + { "splitByRange16", .graphF = splitByRange16_graph }, + { "splitByRange32", .graphF = splitByRange32_graph }, + { "splitByRange32_zstd", .graphF = splitByRange32_zstd_graph }, + { "splitByRange64", .graphF = splitByRange64_graph }, + { "splitByRange64_concatAlpha_tokenSort", .graphF = splitByRange64_concatAlpha_tokenSort_graph }, + { "splitByRange64_tokenSort", .graphF = splitByRange64_tokenSort_graph }, + { "splitByRange64_zstd", .graphF = splitByRange64_zstd_graph }, + { "tokenSort64_splitIndices", .graphF = tokenSort64_splitIndices_graph }, { "tokenize2", .graphF=tokenize2Graph }, { "tokenize2to1Encode", tokenize2to1Encode_wrapper }, { "tokenize2to1Decode", tokenize2to1Decode_wrapper, .display = tokenize2to1Decode_displayResult }, @@ -466,6 +509,7 @@ Bench_Entry const scenarioList[] = { { "tokenize32_delta_fieldlz", .graphF=tokenize32_delta_fieldlz }, { "tokenize64_delta_fieldlz", .graphF=tokenize64_delta_fieldlz }, { "tokenSort16", .graphF=tokenSort16bitGraph }, + { "tokenSort64", .graphF=tokenSort64bitGraph }, { "transposeEncode16", transposeEncode16_wrapper, .outSize = out_identical }, { "transposeDecode16", transposeDecode16_wrapper, .outSize = out_identical }, { "transposeEncode32", transposeEncode32_wrapper, .outSize = out_identical }, diff --git a/benchmark/unitBench/scenarios/codecs/bitSplit.c b/benchmark/unitBench/scenarios/codecs/bitSplit.c new file mode 100644 index 000000000..122998444 --- /dev/null +++ b/benchmark/unitBench/scenarios/codecs/bitSplit.c @@ -0,0 +1,777 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "benchmark/unitBench/scenarios/codecs/bitSplit.h" + +#include /* uint8_t, uint16_t, uint32_t, uint64_t */ +#include /* rand */ + +#include "openzl/codecs/bitSplit/decode_bitSplit_kernel.h" /* ZL_bitSplitDecode */ +#include "openzl/codecs/bitSplit/encode_bitSplit_kernel.h" /* ZL_bitSplitEncode */ + +/* + * Helper: fill a buffer with random values masked to bitWidth. + * Each element is srcEltWidth bytes. + */ +static void fillRandomMasked( + void* buf, + size_t nbElts, + size_t srcEltWidth, + unsigned bitWidth) +{ + uint64_t const mask = (bitWidth >= 64) ? ~0ULL : (1ULL << bitWidth) - 1; + uint8_t* p = (uint8_t*)buf; + + for (size_t e = 0; e < nbElts; e++) { + uint64_t value = ((uint64_t)rand() << 32) | (uint64_t)rand(); + value &= mask; + /* Store value in little-endian order using srcEltWidth bytes */ + for (size_t b = 0; b < srcEltWidth; b++) { + p[e * srcEltWidth + b] = (uint8_t)(value >> (b * 8)); + } + } +} + +/* + * Helper: fill source buffer with random values, top bits zeroed. + */ +static void +fillRandomSrc(void* buf, size_t nbElts, size_t eltWidth, size_t usedBits) +{ + uint64_t const mask = (usedBits >= 64) ? ~0ULL : (1ULL << usedBits) - 1; + uint8_t* p = (uint8_t*)buf; + + for (size_t e = 0; e < nbElts; e++) { + uint64_t value = ((uint64_t)rand() << 32) | (uint64_t)rand(); + value &= mask; + for (size_t b = 0; b < eltWidth; b++) { + p[e * eltWidth + b] = (uint8_t)(value >> (b * 8)); + } + } +} + +/* ========================================================================= + * DECODE SCENARIOS + * ========================================================================= + * Prep packs all source streams contiguously into src: + * Layout: [stream0 | stream1 | ... | streamN] + * where each streamI has nbElts * srcEltWidths[I] bytes. + * + * nbElts = srcSize / sum(srcEltWidths) + * prep returns nbElts * sum(srcEltWidths) (== srcSize rounded down) + * + * Wrapper recomputes stream pointers from offsets into src, decodes into dst. + * outSize returns nbElts * dstEltWidth. + */ + +/* === fp32 decode scenario === + * bitWidths {23, 8, 1}, srcEltWidths {4, 1, 1}, dstEltWidth=4 + * sum(srcEltWidths) = 6 + */ + +size_t +bitSplitDecode_fp32_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidths[3] = { 4, 1, 1 }; + static const unsigned bitWidths[3] = { 23, 8, 1 }; + static const size_t sumSrcElt = 4 + 1 + 1; /* 6 */ + + size_t const nbElts = srcSize / sumSrcElt; + if (nbElts == 0) + return 0; + + uint8_t* p = (uint8_t*)src; + size_t offset = 0; + for (int i = 0; i < 3; i++) { + fillRandomMasked(p + offset, nbElts, srcEltWidths[i], bitWidths[i]); + offset += nbElts * srcEltWidths[i]; + } + + return nbElts * sumSrcElt; +} + +size_t bitSplitDecode_fp32_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 6, output = nbElts * 4 */ + return (srcSize / 6) * 4; +} + +size_t bitSplitDecode_fp32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t dstEltWidth = 4; + static const size_t srcEltWidths[3] = { 4, 1, 1 }; + static const uint8_t bitWidths[3] = { 23, 8, 1 }; + static const size_t nbWidths = 3; + static const size_t sumSrcElt = 4 + 1 + 1; /* 6 */ + + size_t const nbElts = srcSize / sumSrcElt; + const uint8_t* p = (const uint8_t*)src; + + size_t offset = 0; + const void* srcPtrs[3]; + for (int i = 0; i < 3; i++) { + srcPtrs[i] = p + offset; + offset += nbElts * srcEltWidths[i]; + } + + ZL_bitSplitDecode( + dst, + dstEltWidth, + nbElts, + srcPtrs, + srcEltWidths, + bitWidths, + nbWidths); + + return nbElts * dstEltWidth; +} + +/* === bf16 decode scenario === + * bitWidths {7, 8, 1}, srcEltWidths {1, 1, 1}, dstEltWidth=2 + * sum(srcEltWidths) = 3 + */ + +size_t +bitSplitDecode_bf16_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidths[3] = { 1, 1, 1 }; + static const unsigned bitWidths[3] = { 7, 8, 1 }; + static const size_t sumSrcElt = 1 + 1 + 1; /* 3 */ + + size_t const nbElts = srcSize / sumSrcElt; + if (nbElts == 0) + return 0; + + uint8_t* p = (uint8_t*)src; + size_t offset = 0; + for (int i = 0; i < 3; i++) { + fillRandomMasked(p + offset, nbElts, srcEltWidths[i], bitWidths[i]); + offset += nbElts * srcEltWidths[i]; + } + + return nbElts * sumSrcElt; +} + +size_t bitSplitDecode_bf16_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 3, output = nbElts * 2 */ + return (srcSize / 3) * 2; +} + +size_t bitSplitDecode_bf16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t dstEltWidth = 2; + static const size_t srcEltWidths[3] = { 1, 1, 1 }; + static const uint8_t bitWidths[3] = { 7, 8, 1 }; + static const size_t nbWidths = 3; + static const size_t sumSrcElt = 1 + 1 + 1; /* 3 */ + + size_t const nbElts = srcSize / sumSrcElt; + const uint8_t* p = (const uint8_t*)src; + + size_t offset = 0; + const void* srcPtrs[3]; + for (int i = 0; i < 3; i++) { + srcPtrs[i] = p + offset; + offset += nbElts * srcEltWidths[i]; + } + + ZL_bitSplitDecode( + dst, + dstEltWidth, + nbElts, + srcPtrs, + srcEltWidths, + bitWidths, + nbWidths); + + return nbElts * dstEltWidth; +} + +/* === bounded32 decode scenario === + * bitWidths {13, 8}, srcEltWidths {2, 1}, dstEltWidth=4 + * sum(srcEltWidths) = 3 + */ + +size_t +bitSplitDecode_bounded32_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidths[2] = { 2, 1 }; + static const unsigned bitWidths[2] = { 13, 8 }; + static const size_t sumSrcElt = 2 + 1; /* 3 */ + + size_t const nbElts = srcSize / sumSrcElt; + if (nbElts == 0) + return 0; + + uint8_t* p = (uint8_t*)src; + size_t offset = 0; + for (int i = 0; i < 2; i++) { + fillRandomMasked(p + offset, nbElts, srcEltWidths[i], bitWidths[i]); + offset += nbElts * srcEltWidths[i]; + } + + return nbElts * sumSrcElt; +} + +size_t bitSplitDecode_bounded32_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 3, output = nbElts * 4 */ + return (srcSize / 3) * 4; +} + +size_t bitSplitDecode_bounded32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t dstEltWidth = 4; + static const size_t srcEltWidths[2] = { 2, 1 }; + static const uint8_t bitWidths[2] = { 13, 8 }; + static const size_t nbWidths = 2; + static const size_t sumSrcElt = 2 + 1; /* 3 */ + + size_t const nbElts = srcSize / sumSrcElt; + const uint8_t* p = (const uint8_t*)src; + + size_t offset = 0; + const void* srcPtrs[2]; + for (int i = 0; i < 2; i++) { + srcPtrs[i] = p + offset; + offset += nbElts * srcEltWidths[i]; + } + + ZL_bitSplitDecode( + dst, + dstEltWidth, + nbElts, + srcPtrs, + srcEltWidths, + bitWidths, + nbWidths); + + return nbElts * dstEltWidth; +} + +/* === fp16 decode scenario === + * bitWidths {10, 5, 1}, srcEltWidths {2, 1, 1}, dstEltWidth=2 + * sum(srcEltWidths) = 4 + */ + +size_t +bitSplitDecode_fp16_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidths[3] = { 2, 1, 1 }; + static const unsigned bitWidths[3] = { 10, 5, 1 }; + static const size_t sumSrcElt = 2 + 1 + 1; /* 4 */ + + size_t const nbElts = srcSize / sumSrcElt; + if (nbElts == 0) + return 0; + + uint8_t* p = (uint8_t*)src; + size_t offset = 0; + for (int i = 0; i < 3; i++) { + fillRandomMasked(p + offset, nbElts, srcEltWidths[i], bitWidths[i]); + offset += nbElts * srcEltWidths[i]; + } + + return nbElts * sumSrcElt; +} + +size_t bitSplitDecode_fp16_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 4, output = nbElts * 2 */ + return (srcSize / 4) * 2; +} + +size_t bitSplitDecode_fp16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t dstEltWidth = 2; + static const size_t srcEltWidths[3] = { 2, 1, 1 }; + static const uint8_t bitWidths[3] = { 10, 5, 1 }; + static const size_t nbWidths = 3; + static const size_t sumSrcElt = 2 + 1 + 1; /* 4 */ + + size_t const nbElts = srcSize / sumSrcElt; + const uint8_t* p = (const uint8_t*)src; + + size_t offset = 0; + const void* srcPtrs[3]; + for (int i = 0; i < 3; i++) { + srcPtrs[i] = p + offset; + offset += nbElts * srcEltWidths[i]; + } + + ZL_bitSplitDecode( + dst, + dstEltWidth, + nbElts, + srcPtrs, + srcEltWidths, + bitWidths, + nbWidths); + + return nbElts * dstEltWidth; +} + +/* === fp64 decode scenario === + * bitWidths {52, 11, 1}, srcEltWidths {8, 2, 1}, dstEltWidth=8 + * sum(srcEltWidths) = 11 + */ + +size_t +bitSplitDecode_fp64_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidths[3] = { 8, 2, 1 }; + static const unsigned bitWidths[3] = { 52, 11, 1 }; + static const size_t sumSrcElt = 8 + 2 + 1; /* 11 */ + + size_t const nbElts = srcSize / sumSrcElt; + if (nbElts == 0) + return 0; + + uint8_t* p = (uint8_t*)src; + size_t offset = 0; + for (int i = 0; i < 3; i++) { + fillRandomMasked(p + offset, nbElts, srcEltWidths[i], bitWidths[i]); + offset += nbElts * srcEltWidths[i]; + } + + return nbElts * sumSrcElt; +} + +size_t bitSplitDecode_fp64_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 11, output = nbElts * 8 */ + return (srcSize / 11) * 8; +} + +size_t bitSplitDecode_fp64_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t dstEltWidth = 8; + static const size_t srcEltWidths[3] = { 8, 2, 1 }; + static const uint8_t bitWidths[3] = { 52, 11, 1 }; + static const size_t nbWidths = 3; + static const size_t sumSrcElt = 8 + 2 + 1; /* 11 */ + + size_t const nbElts = srcSize / sumSrcElt; + const uint8_t* p = (const uint8_t*)src; + + size_t offset = 0; + const void* srcPtrs[3]; + for (int i = 0; i < 3; i++) { + srcPtrs[i] = p + offset; + offset += nbElts * srcEltWidths[i]; + } + + ZL_bitSplitDecode( + dst, + dstEltWidth, + nbElts, + srcPtrs, + srcEltWidths, + bitWidths, + nbWidths); + + return nbElts * dstEltWidth; +} + +/* ========================================================================= + * ENCODE SCENARIOS + * ========================================================================= + * Prep fills src with random source data, returns srcSize. + * + * Wrapper reads src, writes output streams contiguously into dst: + * Layout in dst: [stream0 | stream1 | ... | streamN] + * where each streamI has nbElts * dstEltWidths[I] bytes. + * + * nbElts = srcSize / srcEltWidth + * outSize returns nbElts * sum(dstEltWidths). + */ + +/* === fp32 encode scenario === + * srcEltWidth=4, bitWidths {23, 8, 1}, dstEltWidths {4, 1, 1} + * sum(dstEltWidths) = 6 + */ + +size_t +bitSplitEncode_fp32_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidth = 4; + static const size_t sumBits = 23 + 8 + 1; /* 32 bits total */ + + size_t const nbElts = srcSize / srcEltWidth; + if (nbElts == 0) + return 0; + + fillRandomSrc(src, nbElts, srcEltWidth, sumBits); + + return nbElts * srcEltWidth; +} + +size_t bitSplitEncode_fp32_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 4, output = nbElts * 6 */ + return (srcSize / 4) * 6; +} + +size_t bitSplitEncode_fp32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t srcEltWidth = 4; + static const size_t dstEltWidths[3] = { 4, 1, 1 }; + static const uint8_t bitWidths[3] = { 23, 8, 1 }; + static const size_t nbWidths = 3; + static const size_t sumDstElt = 4 + 1 + 1; /* 6 */ + + size_t const nbElts = srcSize / srcEltWidth; + uint8_t* p = (uint8_t*)dst; + + size_t offset = 0; + void* dstPtrs[3]; + for (int i = 0; i < 3; i++) { + dstPtrs[i] = p + offset; + offset += nbElts * dstEltWidths[i]; + } + + ZL_bitSplitEncode( + dstPtrs, + dstEltWidths, + nbElts, + src, + srcEltWidth, + bitWidths, + nbWidths); + + return nbElts * sumDstElt; +} + +/* === bf16 encode scenario === + * srcEltWidth=2, bitWidths {7, 8, 1}, dstEltWidths {1, 1, 1} + * sum(dstEltWidths) = 3 + */ + +size_t +bitSplitEncode_bf16_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidth = 2; + static const size_t sumBits = 7 + 8 + 1; /* 16 bits total */ + + size_t const nbElts = srcSize / srcEltWidth; + if (nbElts == 0) + return 0; + + fillRandomSrc(src, nbElts, srcEltWidth, sumBits); + + return nbElts * srcEltWidth; +} + +size_t bitSplitEncode_bf16_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 2, output = nbElts * 3 */ + return (srcSize / 2) * 3; +} + +size_t bitSplitEncode_bf16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t srcEltWidth = 2; + static const size_t dstEltWidths[3] = { 1, 1, 1 }; + static const uint8_t bitWidths[3] = { 7, 8, 1 }; + static const size_t nbWidths = 3; + static const size_t sumDstElt = 1 + 1 + 1; /* 3 */ + + size_t const nbElts = srcSize / srcEltWidth; + uint8_t* p = (uint8_t*)dst; + + size_t offset = 0; + void* dstPtrs[3]; + for (int i = 0; i < 3; i++) { + dstPtrs[i] = p + offset; + offset += nbElts * dstEltWidths[i]; + } + + ZL_bitSplitEncode( + dstPtrs, + dstEltWidths, + nbElts, + src, + srcEltWidth, + bitWidths, + nbWidths); + + return nbElts * sumDstElt; +} + +/* === bounded32 encode scenario === + * srcEltWidth=4, bitWidths {13, 8}, dstEltWidths {2, 1} + * sum(dstEltWidths) = 3 + */ + +size_t +bitSplitEncode_bounded32_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidth = 4; + static const size_t sumBits = 13 + 8; /* 21 bits total */ + + size_t const nbElts = srcSize / srcEltWidth; + if (nbElts == 0) + return 0; + + fillRandomSrc(src, nbElts, srcEltWidth, sumBits); + + return nbElts * srcEltWidth; +} + +size_t bitSplitEncode_bounded32_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 4, output = nbElts * 3 */ + return (srcSize / 4) * 3; +} + +size_t bitSplitEncode_bounded32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t srcEltWidth = 4; + static const size_t dstEltWidths[2] = { 2, 1 }; + static const uint8_t bitWidths[2] = { 13, 8 }; + static const size_t nbWidths = 2; + static const size_t sumDstElt = 2 + 1; /* 3 */ + + size_t const nbElts = srcSize / srcEltWidth; + uint8_t* p = (uint8_t*)dst; + + size_t offset = 0; + void* dstPtrs[2]; + for (int i = 0; i < 2; i++) { + dstPtrs[i] = p + offset; + offset += nbElts * dstEltWidths[i]; + } + + ZL_bitSplitEncode( + dstPtrs, + dstEltWidths, + nbElts, + src, + srcEltWidth, + bitWidths, + nbWidths); + + return nbElts * sumDstElt; +} + +/* === fp64 encode scenario === + * srcEltWidth=8, bitWidths {52, 11, 1}, dstEltWidths {8, 2, 1} + * sum(dstEltWidths) = 11 + */ + +size_t +bitSplitEncode_fp64_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidth = 8; + static const size_t sumBits = 52 + 11 + 1; /* 64 bits total */ + + size_t const nbElts = srcSize / srcEltWidth; + if (nbElts == 0) + return 0; + + fillRandomSrc(src, nbElts, srcEltWidth, sumBits); + + return nbElts * srcEltWidth; +} + +size_t bitSplitEncode_fp64_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 8, output = nbElts * 11 */ + return (srcSize / 8) * 11; +} + +size_t bitSplitEncode_fp64_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t srcEltWidth = 8; + static const size_t dstEltWidths[3] = { 8, 2, 1 }; + static const uint8_t bitWidths[3] = { 52, 11, 1 }; + static const size_t nbWidths = 3; + static const size_t sumDstElt = 8 + 2 + 1; /* 11 */ + + size_t const nbElts = srcSize / srcEltWidth; + uint8_t* p = (uint8_t*)dst; + + size_t offset = 0; + void* dstPtrs[3]; + for (int i = 0; i < 3; i++) { + dstPtrs[i] = p + offset; + offset += nbElts * dstEltWidths[i]; + } + + ZL_bitSplitEncode( + dstPtrs, + dstEltWidths, + nbElts, + src, + srcEltWidth, + bitWidths, + nbWidths); + + return nbElts * sumDstElt; +} + +/* === fp16 encode scenario === + * srcEltWidth=2, bitWidths {10, 5, 1}, dstEltWidths {2, 1, 1} + * sum(dstEltWidths) = 4 + */ + +size_t +bitSplitEncode_fp16_prep(void* src, size_t srcSize, const BenchPayload* bp) +{ + (void)bp; + + static const size_t srcEltWidth = 2; + static const size_t sumBits = 10 + 5 + 1; /* 16 bits total */ + + size_t const nbElts = srcSize / srcEltWidth; + if (nbElts == 0) + return 0; + + fillRandomSrc(src, nbElts, srcEltWidth, sumBits); + + return nbElts * srcEltWidth; +} + +size_t bitSplitEncode_fp16_outSize(const void* src, size_t srcSize) +{ + (void)src; + /* nbElts = srcSize / 2, output = nbElts * 4 */ + return (srcSize / 2) * 4; +} + +size_t bitSplitEncode_fp16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload) +{ + (void)dstCapacity; + (void)customPayload; + + static const size_t srcEltWidth = 2; + static const size_t dstEltWidths[3] = { 2, 1, 1 }; + static const uint8_t bitWidths[3] = { 10, 5, 1 }; + static const size_t nbWidths = 3; + static const size_t sumDstElt = 2 + 1 + 1; /* 4 */ + + size_t const nbElts = srcSize / srcEltWidth; + uint8_t* p = (uint8_t*)dst; + + size_t offset = 0; + void* dstPtrs[3]; + for (int i = 0; i < 3; i++) { + dstPtrs[i] = p + offset; + offset += nbElts * dstEltWidths[i]; + } + + ZL_bitSplitEncode( + dstPtrs, + dstEltWidths, + nbElts, + src, + srcEltWidth, + bitWidths, + nbWidths); + + return nbElts * sumDstElt; +} diff --git a/benchmark/unitBench/scenarios/codecs/bitSplit.h b/benchmark/unitBench/scenarios/codecs/bitSplit.h new file mode 100644 index 000000000..dbfdb5c6a --- /dev/null +++ b/benchmark/unitBench/scenarios/codecs/bitSplit.h @@ -0,0 +1,255 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_BENCHMARK_UNITBENCH_SCENARIOS_CODECS_BITSPLIT_H +#define ZSTRONG_BENCHMARK_UNITBENCH_SCENARIOS_CODECS_BITSPLIT_H + +#include /* size_t */ +#include "benchmark/unitBench/bench_entry.h" /* BenchPayload, BMK_benchFn_t */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* === Decode scenarios === */ + +/** + * Preparation function for fp32 decomposition benchmark. + * Packs 3 source streams with bitWidths {23, 8, 1} contiguously into src. + */ +size_t +bitSplitDecode_fp32_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for fp32 decode: nbElts * 4, where nbElts = srcSize / 6. + */ +size_t bitSplitDecode_fp32_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for fp32 decomposition decode benchmark. + * Decodes 3 streams from src into 32-bit elements in dst. + */ +size_t bitSplitDecode_fp32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for bf16 decomposition benchmark. + * Packs 3 source streams with bitWidths {7, 8, 1} contiguously into src. + */ +size_t +bitSplitDecode_bf16_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for bf16 decode: nbElts * 2, where nbElts = srcSize / 3. + */ +size_t bitSplitDecode_bf16_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for bf16 decomposition decode benchmark. + * Decodes 3 streams from src into 16-bit elements in dst. + */ +size_t bitSplitDecode_bf16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for bounded32 integer benchmark. + * Packs 2 source streams with bitWidths {13, 8} contiguously into src. + */ +size_t bitSplitDecode_bounded32_prep( + void* src, + size_t srcSize, + const BenchPayload* bp); + +/** + * Output size for bounded32 decode: nbElts * 4, where nbElts = srcSize / 3. + */ +size_t bitSplitDecode_bounded32_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for bounded32 integer decode benchmark. + * Decodes 2 streams from src into 32-bit elements in dst. + */ +size_t bitSplitDecode_bounded32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for fp16 decomposition benchmark. + * Packs 3 source streams with bitWidths {10, 5, 1} contiguously into src. + */ +size_t +bitSplitDecode_fp16_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for fp16 decode: nbElts * 2, where nbElts = srcSize / 4. + */ +size_t bitSplitDecode_fp16_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for fp16 decomposition decode benchmark. + * Decodes 3 streams from src into 16-bit elements in dst. + */ +size_t bitSplitDecode_fp16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for fp64 decomposition benchmark. + * Packs 3 source streams with bitWidths {52, 11, 1} contiguously into src. + */ +size_t +bitSplitDecode_fp64_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for fp64 decode: nbElts * 8, where nbElts = srcSize / 11. + */ +size_t bitSplitDecode_fp64_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for fp64 decomposition decode benchmark. + * Decodes 3 streams from src into 64-bit elements in dst. + */ +size_t bitSplitDecode_fp64_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/* === Encode scenarios === */ + +/** + * Preparation function for fp32 encode benchmark. + * Fills src with random 32-bit values. + */ +size_t +bitSplitEncode_fp32_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for fp32 encode: nbElts * 6, where nbElts = srcSize / 4. + */ +size_t bitSplitEncode_fp32_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for fp32 encode benchmark. + * Encodes 32-bit elements from src into 3 streams in dst. + */ +size_t bitSplitEncode_fp32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for bf16 encode benchmark. + * Fills src with random 16-bit values. + */ +size_t +bitSplitEncode_bf16_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for bf16 encode: nbElts * 3, where nbElts = srcSize / 2. + */ +size_t bitSplitEncode_bf16_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for bf16 encode benchmark. + * Encodes 16-bit elements from src into 3 streams in dst. + */ +size_t bitSplitEncode_bf16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for bounded32 encode benchmark. + * Fills src with random 32-bit values (top 11 bits zero). + */ +size_t bitSplitEncode_bounded32_prep( + void* src, + size_t srcSize, + const BenchPayload* bp); + +/** + * Output size for bounded32 encode: nbElts * 3, where nbElts = srcSize / 4. + */ +size_t bitSplitEncode_bounded32_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for bounded32 encode benchmark. + * Encodes 32-bit elements from src into 2 streams in dst. + */ +size_t bitSplitEncode_bounded32_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for fp64 encode benchmark. + * Fills src with random 64-bit values. + */ +size_t +bitSplitEncode_fp64_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for fp64 encode: nbElts * 11, where nbElts = srcSize / 8. + */ +size_t bitSplitEncode_fp64_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for fp64 encode benchmark. + * Encodes 64-bit elements from src into 3 streams in dst. + */ +size_t bitSplitEncode_fp64_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +/** + * Preparation function for fp16 encode benchmark. + * Fills src with random 16-bit values. + */ +size_t +bitSplitEncode_fp16_prep(void* src, size_t srcSize, const BenchPayload* bp); + +/** + * Output size for fp16 encode: nbElts * 4, where nbElts = srcSize / 2. + */ +size_t bitSplitEncode_fp16_outSize(const void* src, size_t srcSize); + +/** + * Wrapper function for fp16 encode benchmark. + * Encodes 16-bit elements from src into 3 streams in dst. + */ +size_t bitSplitEncode_fp16_wrapper( + const void* src, + size_t srcSize, + void* dst, + size_t dstCapacity, + void* customPayload); + +#ifdef __cplusplus +} +#endif + +#endif // ZSTRONG_BENCHMARK_UNITBENCH_SCENARIOS_CODECS_BITSPLIT_H diff --git a/benchmark/unitBench/scenarios/codecs/dispatch_string.c b/benchmark/unitBench/scenarios/codecs/dispatch_string.c index 542b56561..0f5923254 100644 --- a/benchmark/unitBench/scenarios/codecs/dispatch_string.c +++ b/benchmark/unitBench/scenarios/codecs/dispatch_string.c @@ -106,7 +106,7 @@ size_t dispatchStringDecode_wrapper( (void)customPayload; // unpack src - const uint8_t nbSrcs = (uint8_t) * (const uint64_t*)src; + const uint8_t nbSrcs = (uint8_t)*(const uint64_t*)src; const uint64_t* srcNbStrsUnparsed = (const uint64_t*)src + 1; const uint32_t* srcStrLens[DISPATCH_STRING_NB_DSTS]; const uint8_t* indices; diff --git a/benchmark/unitBench/scenarios/misc/id_list_features.c b/benchmark/unitBench/scenarios/misc/id_list_features.c index e1834815f..221129ad6 100644 --- a/benchmark/unitBench/scenarios/misc/id_list_features.c +++ b/benchmark/unitBench/scenarios/misc/id_list_features.c @@ -4,7 +4,6 @@ #include #include "openzl/shared/mem.h" -#include "openzl/zl_ctransform.h" // =============================================== // **** id_score_list_features map.value **** diff --git a/benchmark/unitBench/saoGraph.c b/benchmark/unitBench/scenarios/sao_graph.c similarity index 98% rename from benchmark/unitBench/saoGraph.c rename to benchmark/unitBench/scenarios/sao_graph.c index b4b623ec5..59219d44d 100644 --- a/benchmark/unitBench/saoGraph.c +++ b/benchmark/unitBench/scenarios/sao_graph.c @@ -6,7 +6,7 @@ */ /* === Dependencies === */ -#include "benchmark/unitBench/saoGraph.h" +#include "benchmark/unitBench/scenarios/sao_graph.h" #include // abort diff --git a/benchmark/unitBench/saoGraph.h b/benchmark/unitBench/scenarios/sao_graph.h similarity index 100% rename from benchmark/unitBench/saoGraph.h rename to benchmark/unitBench/scenarios/sao_graph.h diff --git a/benchmark/unitBench/scenarios/sao_sddl1.c b/benchmark/unitBench/scenarios/sao_sddl1.c new file mode 100644 index 000000000..341daa088 --- /dev/null +++ b/benchmark/unitBench/scenarios/sao_sddl1.c @@ -0,0 +1,178 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "benchmark/unitBench/scenarios/sao_sddl1.h" + +#include // abort + +#include "openzl/codecs/zl_sddl.h" // ZL_Compressor_buildSDDLGraph +#include "openzl/codecs/zl_store.h" // ZL_GRAPH_STORE +#include "openzl/zl_compressor.h" // ZL_Compressor_setParameter + +/* ================================================== + * SDDL1 Bytecode for SAO + * ================================================== + * Compiled from: examples/sddl/sao_silesia_v1.sddl + * using: ./sddl_compiler < examples/sddl/sao_silesia_v1.sddl + * + * This bytecode implements the SAO parser using SDDL1 + * (the original SDDL with text-based compilation): + * 1. Define StarEntry record with 7 fields + * 2. Consume 28-byte header + * 3. Calculate number of stars using _rem / sizeof StarEntry + * 4. Consume array of StarEntry records + */ + +static const unsigned char sao_sddl1_bytecode[] = { + 0xa2, 0x65, 0x65, 0x78, 0x70, 0x72, 0x73, 0x84, 0xa2, 0x66, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x82, 0xa2, 0x63, 0x76, 0x61, 0x72, 0x69, 0x53, + 0x74, 0x61, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x63, 0x64, 0x62, 0x67, + 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x18, 0xee, 0x09, 0xa2, 0x66, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x87, 0xa2, 0x64, 0x73, 0x65, 0x6e, 0x64, + 0x82, 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, 0x63, 0x66, 0x38, 0x6c, 0x63, + 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x18, 0xfe, 0x09, + 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, 0xf6, 0x63, 0x64, 0x62, 0x67, 0xa1, + 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x18, 0xfe, 0x09, 0x63, 0x64, 0x62, 0x67, + 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x18, 0xfe, 0x09, 0xa2, 0x64, 0x73, + 0x65, 0x6e, 0x64, 0x82, 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, 0x63, 0x66, + 0x38, 0x6c, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, + 0x19, 0x01, 0x0a, 0x09, 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, 0xf6, 0x63, + 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x0a, + 0x09, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, + 0x01, 0x0a, 0x09, 0xa2, 0x64, 0x73, 0x65, 0x6e, 0x64, 0x82, 0xa2, 0x64, + 0x61, 0x74, 0x6f, 0x6d, 0x64, 0x62, 0x79, 0x74, 0x65, 0x63, 0x64, 0x62, + 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x16, 0x04, 0xa2, + 0x64, 0x64, 0x65, 0x73, 0x74, 0xf6, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, + 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x16, 0x04, 0x63, 0x64, 0x62, 0x67, + 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x16, 0x04, 0xa2, 0x64, + 0x73, 0x65, 0x6e, 0x64, 0x82, 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, 0x64, + 0x62, 0x79, 0x74, 0x65, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, + 0x63, 0x82, 0x19, 0x01, 0x1d, 0x04, 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, + 0xf6, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, + 0x01, 0x1d, 0x04, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, + 0x82, 0x19, 0x01, 0x1d, 0x04, 0xa2, 0x64, 0x73, 0x65, 0x6e, 0x64, 0x82, + 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, 0x63, 0x69, 0x32, 0x6c, 0x63, 0x64, + 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x24, 0x07, + 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, 0xf6, 0x63, 0x64, 0x62, 0x67, 0xa1, + 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x24, 0x07, 0x63, 0x64, 0x62, + 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x24, 0x07, 0xa2, + 0x64, 0x73, 0x65, 0x6e, 0x64, 0x82, 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, + 0x63, 0x66, 0x34, 0x6c, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, + 0x63, 0x82, 0x19, 0x01, 0x2e, 0x09, 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, + 0xf6, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, + 0x01, 0x2e, 0x09, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, + 0x82, 0x19, 0x01, 0x2e, 0x09, 0xa2, 0x64, 0x73, 0x65, 0x6e, 0x64, 0x82, + 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, 0x63, 0x66, 0x34, 0x6c, 0x63, 0x64, + 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x3a, 0x09, + 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, 0xf6, 0x63, 0x64, 0x62, 0x67, 0xa1, + 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x3a, 0x09, 0x63, 0x64, 0x62, + 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x3a, 0x09, 0x63, + 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x18, 0xfa, 0x18, + 0x4b, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x18, + 0xee, 0x18, 0x57, 0xa2, 0x67, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0xa2, 0x65, 0x61, 0x72, 0x72, 0x61, 0x79, 0x82, 0xa2, 0x64, 0x73, 0x65, + 0x6e, 0x64, 0x82, 0xa2, 0x64, 0x61, 0x74, 0x6f, 0x6d, 0x64, 0x62, 0x79, + 0x74, 0x65, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, + 0x19, 0x01, 0x5a, 0x04, 0xa2, 0x64, 0x64, 0x65, 0x73, 0x74, 0xf6, 0x63, + 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x5a, + 0x04, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, + 0x01, 0x5a, 0x04, 0xa2, 0x63, 0x69, 0x6e, 0x74, 0x18, 0x1c, 0x63, 0x64, + 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x5f, 0x02, + 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, + 0x5a, 0x07, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, + 0x19, 0x01, 0x58, 0x09, 0xa2, 0x66, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x82, 0xa2, 0x63, 0x76, 0x61, 0x72, 0x69, 0x6e, 0x75, 0x6d, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x73, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, + 0x63, 0x82, 0x19, 0x01, 0x63, 0x09, 0xa2, 0x63, 0x64, 0x69, 0x76, 0x82, + 0xa2, 0x63, 0x76, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x6d, 0x63, 0x64, + 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x6f, 0x04, + 0xa2, 0x66, 0x73, 0x69, 0x7a, 0x65, 0x6f, 0x66, 0xa2, 0x63, 0x76, 0x61, + 0x72, 0x69, 0x53, 0x74, 0x61, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x63, + 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x7d, + 0x09, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, + 0x01, 0x76, 0x10, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, + 0x82, 0x19, 0x01, 0x6f, 0x17, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, + 0x6f, 0x63, 0x82, 0x19, 0x01, 0x63, 0x18, 0x23, 0xa2, 0x67, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0xa2, 0x65, 0x61, 0x72, 0x72, 0x61, 0x79, + 0x82, 0xa2, 0x63, 0x76, 0x61, 0x72, 0x69, 0x53, 0x74, 0x61, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, + 0x63, 0x82, 0x19, 0x01, 0x89, 0x09, 0xa2, 0x63, 0x76, 0x61, 0x72, 0x69, + 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x73, 0x63, 0x64, 0x62, + 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x93, 0x09, 0x63, + 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, 0x01, 0x89, + 0x13, 0x63, 0x64, 0x62, 0x67, 0xa1, 0x63, 0x6c, 0x6f, 0x63, 0x82, 0x19, + 0x01, 0x87, 0x15, 0x63, 0x73, 0x72, 0x63, 0x79, 0x01, 0x9e, 0x23, 0x20, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x23, 0x20, 0x53, 0x74, 0x61, + 0x72, 0x20, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x0a, 0x23, 0x20, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x60, 0x73, 0x61, 0x6f, 0x60, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x6c, 0x65, 0x73, 0x69, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x72, 0x70, 0x75, + 0x73, 0x0a, 0x23, 0x20, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x53, 0x44, + 0x44, 0x4c, 0x20, 0x76, 0x30, 0x2e, 0x35, 0x20, 0x28, 0x53, 0x44, 0x44, + 0x4c, 0x31, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x29, 0x0a, 0x23, + 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x0a, 0x23, 0x20, 0x53, + 0x74, 0x61, 0x72, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x36, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x29, 0x0a, 0x53, 0x74, 0x61, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x36, 0x34, 0x4c, 0x45, 0x0a, 0x20, 0x20, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x36, 0x34, 0x4c, 0x45, 0x0a, 0x20, 0x20, + 0x42, 0x79, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x42, 0x79, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x49, 0x6e, 0x74, 0x31, 0x36, 0x4c, 0x45, 0x0a, 0x20, 0x20, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x4c, 0x45, 0x0a, 0x20, 0x20, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x4c, 0x45, 0x0a, 0x7d, 0x0a, + 0x0a, 0x23, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x0a, 0x3a, 0x20, 0x42, 0x79, 0x74, 0x65, + 0x5b, 0x32, 0x38, 0x5d, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x73, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x65, 0x6d, 0x20, 0x2f, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x6f, 0x66, 0x20, 0x53, 0x74, 0x61, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x0a, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x5b, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x73, 0x5d, 0x0a +}; + +static const size_t sao_sddl1_bytecode_size = sizeof(sao_sddl1_bytecode); + +/* ================================================== + * Graph for SAO using SDDL1 (original SDDL) + * ================================================== + */ + +ZL_GraphID sao_graph_sddl1(ZL_Compressor* cgraph) +{ + // Set format version and compression level + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + // Register SDDL1 graph with STORE destination for benchmarking + ZL_Result_ZL_GraphID result = ZL_Compressor_buildSDDLGraph( + cgraph, + sao_sddl1_bytecode, + sao_sddl1_bytecode_size, + ZL_GRAPH_STORE); + + // Check if the result contains an error + if (result._value._code != ZL_ErrorCode_no_error) { + abort(); + } + + ZL_GraphID sddl1_graph = result._value._value; + if (!ZL_GraphID_isValid(sddl1_graph)) { + abort(); + } + + return sddl1_graph; +} diff --git a/benchmark/unitBench/scenarios/sao_sddl1.h b/benchmark/unitBench/scenarios/sao_sddl1.h new file mode 100644 index 000000000..2fa44cde8 --- /dev/null +++ b/benchmark/unitBench/scenarios/sao_sddl1.h @@ -0,0 +1,10 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_BENCHMARK_UNITBENCH_SAOGRAPH_SDDL1_H +#define ZSTRONG_BENCHMARK_UNITBENCH_SAOGRAPH_SDDL1_H + +#include "openzl/zl_opaque_types.h" + +ZL_GraphID sao_graph_sddl1(ZL_Compressor* cgraph); + +#endif // ZSTRONG_BENCHMARK_UNITBENCH_SAOGRAPH_SDDL1_H diff --git a/benchmark/unitBench/scenarios/sao_sddl2.c b/benchmark/unitBench/scenarios/sao_sddl2.c new file mode 100644 index 000000000..e7a52f59c --- /dev/null +++ b/benchmark/unitBench/scenarios/sao_sddl2.c @@ -0,0 +1,67 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "benchmark/unitBench/scenarios/sao_sddl2.h" + +#include // abort + +#include "openzl/codecs/zl_sddl2.h" // ZL_Compressor_registerSDDL2Graph, SDDL2_BYTECODE_PARAM +#include "openzl/zl_compressor.h" // ZL_Compressor_setParameter + +/* ================================================== + * SDDL2 Bytecode for SAO + * ================================================== + * Copied from: examples/sddl2_asm/sao_silesia.asm + * which was generated by: tools/sddl2/assembler/sddl2_assembler.py + * + * This bytecode implements the SAO parser using push.remaining + * to dynamically calculate the number of star records: + * 1. Create 28-byte header segment (unspecified) + * 2. Build StarEntry structure type (6 fields) + * 3. Use push.remaining to calculate star count + * 4. Create tagged segment with StarEntry[] type + */ + +static const unsigned char sao_sddl2_bytecode[] = { + 0x03, 0x00, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0c, 0x00, + 0x35, 0x01, 0x01, 0x00, 0x35, 0x01, 0x01, 0x00, 0x14, 0x01, 0x01, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x08, 0x00, 0x37, 0x01, 0x01, 0x00, 0x37, 0x01, 0x01, 0x00, + 0x03, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, + 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x07, 0x00, + 0x81, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x05, 0x00 +}; + +static const size_t sao_sddl2_bytecode_size = sizeof(sao_sddl2_bytecode); + +/* ================================================== + * Graph for SAO using SDDL2 interpreter + * ================================================== + */ + +ZL_GraphID sao_graph_sddl2(ZL_Compressor* cgraph) +{ + // Set format version and compression level + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + // Register the public auto-segmenting SDDL2 graph with STORE destination + ZL_GraphID sddl2_graph = ZL_Compressor_registerSDDL2Graph_advanced( + cgraph, + sao_sddl2_bytecode, + sao_sddl2_bytecode_size, + ZL_GRAPH_STORE, + 0); + + if (!ZL_GraphID_isValid(sddl2_graph)) { + abort(); + } + + return sddl2_graph; +} diff --git a/benchmark/unitBench/scenarios/sao_sddl2.h b/benchmark/unitBench/scenarios/sao_sddl2.h new file mode 100644 index 000000000..ae02f298e --- /dev/null +++ b/benchmark/unitBench/scenarios/sao_sddl2.h @@ -0,0 +1,10 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_BENCHMARK_UNITBENCH_SAOGRAPH_SDDL2_H +#define ZSTRONG_BENCHMARK_UNITBENCH_SAOGRAPH_SDDL2_H + +#include "openzl/zl_data.h" // ZL_GraphID + +ZL_GraphID sao_graph_sddl2(ZL_Compressor* cgraph); + +#endif // ZSTRONG_BENCHMARK_UNITBENCH_SAOGRAPH_SDDL2_H diff --git a/benchmark/unitBench/scenarios/split_byrange_graph.c b/benchmark/unitBench/scenarios/split_byrange_graph.c new file mode 100644 index 000000000..2eac1a183 --- /dev/null +++ b/benchmark/unitBench/scenarios/split_byrange_graph.c @@ -0,0 +1,296 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "benchmark/unitBench/scenarios/split_byrange_graph.h" + +#include /* abort */ + +#include "openzl/codecs/zl_concat.h" /* ZL_NODE_CONCAT_NUMERIC */ +#include "openzl/codecs/zl_conversion.h" /* ZL_NODE_INTERPRET_AS_LE8/16 */ +#include "openzl/codecs/zl_delta.h" /* ZL_NODE_DELTA_INT */ +#include "openzl/codecs/zl_generic.h" /* ZL_GRAPH_NUMERIC */ +#include "openzl/codecs/zl_split.h" /* ZL_NODE_SPLIT_BYRANGE */ +// NOLINTNEXTLINE(facebook-unused-include-check) +#include "openzl/codecs/zl_tokenize.h" /* ZL_Compressor_registerTokenizeGraph */ +#include "openzl/zl_compressor.h" +#include "openzl/zl_errors.h" /* ZL_TRY_LET_T, ZL_RET_R_IF_ERR */ +#include "openzl/zl_graph_api.h" /* ZL_FunctionGraphDesc, ZL_Edge_runNode */ +#include "openzl/zl_public_nodes.h" /* ZL_NODE_INTERPRET_AS_LE* */ + +/* split_byrange -> STORE: measures pure range-detection overhead (8-bit) */ +ZL_GraphID splitByRange8_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE8, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_STORE)); +} + +/* split_byrange -> STORE: measures pure range-detection overhead (16-bit) */ +ZL_GraphID splitByRange16_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE16, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_STORE)); +} + +/* split_byrange -> STORE: measures pure range-detection overhead (32-bit) */ +ZL_GraphID splitByRange32_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE32, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_STORE)); +} + +/* split_byrange -> STORE: measures pure range-detection overhead (64-bit) */ +ZL_GraphID splitByRange64_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_STORE)); +} + +/* split_byrange -> ZSTD: realistic pipeline (32-bit) */ +ZL_GraphID splitByRange32_zstd_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE32, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_ZSTD)); +} + +/* split_byrange -> ZSTD: realistic pipeline (64-bit) */ +ZL_GraphID splitByRange64_zstd_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_ZSTD)); +} + +/* split_byrange -> tokenize_sorted(delta_int+numeric, numeric) (64-bit) */ +ZL_GraphID splitByRange64_tokenSort_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + ZL_GraphID alphabetGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_DELTA_INT, ZL_GRAPH_NUMERIC); + + ZL_GraphID tokenSort = ZL_Compressor_registerTokenizeGraph( + cgraph, ZL_Type_numeric, true, alphabetGraph, ZL_GRAPH_NUMERIC); + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, tokenSort)); +} + +/* tokenize_sorted → split_byrange on indices (64-bit) + * Pure static graph: split happens after tokenization, on the index stream. + * The index stream naturally clusters by range (sorted alphabet), so + * split_byrange detects the same bands without needing a Function Graph. */ +ZL_GraphID tokenSort64_splitIndices_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + ZL_GraphID alphabetGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_DELTA_INT, ZL_GRAPH_NUMERIC); + + ZL_GraphID indicesGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_SPLIT_BYRANGE, ZL_GRAPH_NUMERIC); + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, + ZL_NODE_INTERPRET_AS_LE64, + ZL_Compressor_registerTokenizeGraph( + cgraph, + ZL_Type_numeric, + true, + alphabetGraph, + indicesGraph)); +} + +/* ------------------------------------------------------------------ */ +/* Function Graph: split_byrange → tokenize(sorted) per segment → */ +/* concat all alphabets → delta_int+NUMERIC on merged alphabet, */ +/* NUMERIC on each index stream. */ +/* */ +/* Purpose: avoid duplicating alphabet compression overhead across */ +/* segments by merging them back into a single stream before */ +/* compression, while keeping indices separate (narrower index width */ +/* per segment is the win from splitting). */ +/* ------------------------------------------------------------------ */ + +static ZL_Report +splitByRange_concatAlpha_fn(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + (void)nbInputs; + + /* Step 1: Split by range */ + ZL_TRY_LET( + ZL_EdgeList, + segments, + ZL_Edge_runNode(inputs[0], ZL_NODE_SPLIT_BYRANGE)); + + size_t const N = segments.nbEdges; + + /* Step 2: Tokenize each segment (sorted numeric) */ + ZL_NodeIDList nids = ZL_Graph_getCustomNodes(graph); + ZL_NodeID tokenNode = nids.nodeids[0]; + + ZL_Edge** alphabets = + (ZL_Edge**)ZL_Graph_getScratchSpace(graph, N * sizeof(ZL_Edge*)); + + for (size_t i = 0; i < N; i++) { + ZL_TRY_LET( + ZL_EdgeList, + tokenized, + ZL_Edge_runNode(segments.edges[i], tokenNode)); + /* tokenized.edges[0] = alphabet, tokenized.edges[1] = indices */ + alphabets[i] = tokenized.edges[0]; + /* Send indices to NUMERIC */ + ZL_ERR_IF_ERR( + ZL_Edge_setDestination(tokenized.edges[1], ZL_GRAPH_NUMERIC)); + } + + /* Step 3: Concat all alphabets into one stream */ + ZL_TRY_LET( + ZL_EdgeList, + concatResult, + ZL_Edge_runMultiInputNode(alphabets, N, ZL_NODE_CONCAT_NUMERIC)); + /* concatResult.edges[0] = sizes, concatResult.edges[1] = merged data */ + + /* Step 4: Send concat sizes to NUMERIC */ + ZL_ERR_IF_ERR( + ZL_Edge_setDestination(concatResult.edges[0], ZL_GRAPH_NUMERIC)); + + /* Step 5: Send merged alphabet to delta_int → NUMERIC */ + ZL_GraphIDList gids = ZL_Graph_getCustomGraphs(graph); + ZL_ERR_IF_ERR( + ZL_Edge_setDestination(concatResult.edges[1], gids.graphids[0])); + + return ZL_returnSuccess(); +} + +ZL_GraphID splitByRange64_concatAlpha_tokenSort_graph(ZL_Compressor* cgraph) +{ + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION))) { + abort(); + } + if (ZL_isError(ZL_Compressor_setParameter( + cgraph, ZL_CParam_compressionLevel, 1))) { + abort(); + } + + /* Register tokenize node (sorted numeric) */ + ZL_RESULT_OF(ZL_NodeID) + tokenNodeR = ZL_Compressor_parameterizeTokenizeNode( + cgraph, ZL_Type_numeric, true); + if (ZL_RES_isError(tokenNodeR)) { + abort(); + } + ZL_NodeID tokenNode = ZL_RES_value(tokenNodeR); + + /* Register alphabet successor graph: delta_int → NUMERIC */ + ZL_GraphID alphabetGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_DELTA_INT, ZL_GRAPH_NUMERIC); + + ZL_Type inType = ZL_Type_numeric; + ZL_GraphID customGraphs[] = { alphabetGraph }; + ZL_NodeID customNodes[] = { tokenNode }; + ZL_FunctionGraphDesc graphDesc = { + .name = "splitByRange_concatAlpha_tokenSort", + .graph_f = splitByRange_concatAlpha_fn, + .inputTypeMasks = &inType, + .nbInputs = 1, + .customGraphs = customGraphs, + .nbCustomGraphs = 1, + .customNodes = customNodes, + .nbCustomNodes = 1, + }; + + ZL_GraphID innerGraph = + ZL_Compressor_registerFunctionGraph(cgraph, &graphDesc); + + return ZL_Compressor_registerStaticGraph_fromNode1o( + cgraph, ZL_NODE_INTERPRET_AS_LE64, innerGraph); +} diff --git a/benchmark/unitBench/scenarios/split_byrange_graph.h b/benchmark/unitBench/scenarios/split_byrange_graph.h new file mode 100644 index 000000000..c5cd5ce60 --- /dev/null +++ b/benchmark/unitBench/scenarios/split_byrange_graph.h @@ -0,0 +1,33 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_BENCHMARK_UNITBENCH_SPLIT_BYRANGE_GRAPH_H +#define ZSTRONG_BENCHMARK_UNITBENCH_SPLIT_BYRANGE_GRAPH_H + +#include "openzl/shared/portability.h" +#include "openzl/zl_compressor.h" + +ZL_BEGIN_C_DECLS + +/* split_byrange -> STORE: measures pure range-detection overhead */ +ZL_GraphID splitByRange8_graph(ZL_Compressor* cgraph); +ZL_GraphID splitByRange16_graph(ZL_Compressor* cgraph); +ZL_GraphID splitByRange32_graph(ZL_Compressor* cgraph); +ZL_GraphID splitByRange64_graph(ZL_Compressor* cgraph); + +/* split_byrange -> ZSTD: realistic pipeline with compression */ +ZL_GraphID splitByRange32_zstd_graph(ZL_Compressor* cgraph); +ZL_GraphID splitByRange64_zstd_graph(ZL_Compressor* cgraph); + +/* split_byrange -> tokenize_sorted(delta_int+numeric, numeric) */ +ZL_GraphID splitByRange64_tokenSort_graph(ZL_Compressor* cgraph); + +/* tokenize_sorted -> split_byrange on indices only */ +ZL_GraphID tokenSort64_splitIndices_graph(ZL_Compressor* cgraph); + +/* split_byrange -> tokenize(sorted) -> concat alphabets -> delta_int+NUMERIC + * Function Graph: keeps indices separate (narrow width), merges alphabets */ +ZL_GraphID splitByRange64_concatAlpha_tokenSort_graph(ZL_Compressor* cgraph); + +ZL_END_C_DECLS + +#endif diff --git a/benchmark/unitBench/unitBench.c b/benchmark/unitBench/unitBench.c index 92f6f0d73..5c4569741 100644 --- a/benchmark/unitBench/unitBench.c +++ b/benchmark/unitBench/unitBench.c @@ -619,6 +619,7 @@ static int help(const char* exename) printf(" -l=# select compression level \n"); printf(" -i=# Test duration per file, in seconds \n"); printf(" -B=# Split input into blocks of size # bytes \n"); + printf(" -z Compression only"); printf(" --csv output result in csv format \n"); printf(" --save-result save the 1st generated artifact into '%s' \n", artifactFilename); @@ -662,11 +663,13 @@ int main(int argc, const char* argv[]) CMD_FLAG("--list", return display_target_names()); - CMD_FLAG2("-d", "--decompress-only", bp.decompressOnly = true; - bp.noDecompress = false) + CMD_FLAG2( + "-d", "--decompress-only", bp.decompressOnly = true; + bp.noDecompress = false) - CMD_FLAG2("-z", "--no-decompress", bp.noDecompress = true; - bp.decompressOnly = false) + CMD_FLAG2( + "-z", "--no-decompress", bp.noDecompress = true; + bp.decompressOnly = false) CMD_FLAG2("-m", "--memory", bp.memory = true); @@ -685,8 +688,9 @@ int main(int argc, const char* argv[]) CMD_FLAG("-q", bp.notification = 0); CMD_FLAG("--quiet", bp.notification = 0); - CMD_FLAG("--csv", dispform = disp_csv; bp.notification = 0; - bp.noDecompress = true); + CMD_FLAG( + "--csv", dispform = disp_csv; bp.notification = 0; + bp.noDecompress = true); CMD_FLAG("--save-result", bp.saveArtifact = true); diff --git a/build/.gitignore b/build-scripts/.gitignore similarity index 100% rename from build/.gitignore rename to build-scripts/.gitignore diff --git a/build/cmake/OpenZLCompilerMSVC.cmake b/build-scripts/cmake/OpenZLCompilerMSVC.cmake similarity index 88% rename from build/cmake/OpenZLCompilerMSVC.cmake rename to build-scripts/cmake/OpenZLCompilerMSVC.cmake index dc79a1529..1db86e8af 100644 --- a/build/cmake/OpenZLCompilerMSVC.cmake +++ b/build-scripts/cmake/OpenZLCompilerMSVC.cmake @@ -2,6 +2,9 @@ # MSVC and clang-cl compiler configuration for OpenZL +# Use static CRT (/MT) to match xgboost and other static dependencies +set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + # Detect ClangCL toolset (the standard way) set(USING_CLANG_CL FALSE) if (CMAKE_GENERATOR_TOOLSET STREQUAL "ClangCL") @@ -23,7 +26,10 @@ set(OPENZL_CXX_COMPILE_DEFINITIONS ${OPENZL_COMMON_COMPILE_DEFINITIONS}) # Define compile options for MSVC set(OPENZL_COMMON_COMPILE_OPTIONS) set(OPENZL_C_COMPILE_OPTIONS ${OPENZL_COMMON_COMPILE_OPTIONS}) -set(OPENZL_CXX_COMPILE_OPTIONS ${OPENZL_COMMON_COMPILE_OPTIONS}) +set(OPENZL_CXX_COMPILE_OPTIONS ${OPENZL_COMMON_COMPILE_OPTIONS} ) + +# Add /Ehsc to enable excpetion handling (clang-cl disables by default) +add_compile_options($<$:/EHsc>) # Define warning options for MSVC set(OPENZL_COMMON_COMPILE_WARNINGS) diff --git a/build/cmake/OpenZLCompilerUnix.cmake b/build-scripts/cmake/OpenZLCompilerUnix.cmake similarity index 100% rename from build/cmake/OpenZLCompilerUnix.cmake rename to build-scripts/cmake/OpenZLCompilerUnix.cmake diff --git a/build/cmake/OpenZLConfigChecks.cmake b/build-scripts/cmake/OpenZLConfigChecks.cmake similarity index 100% rename from build/cmake/OpenZLConfigChecks.cmake rename to build-scripts/cmake/OpenZLConfigChecks.cmake diff --git a/build/cmake/OpenZLFunctions.cmake b/build-scripts/cmake/OpenZLFunctions.cmake similarity index 100% rename from build/cmake/OpenZLFunctions.cmake rename to build-scripts/cmake/OpenZLFunctions.cmake diff --git a/build/cmake/OpenZLModeFlags.cmake b/build-scripts/cmake/OpenZLModeFlags.cmake similarity index 100% rename from build/cmake/OpenZLModeFlags.cmake rename to build-scripts/cmake/OpenZLModeFlags.cmake diff --git a/build/cmake/README.md b/build-scripts/cmake/README.md similarity index 95% rename from build/cmake/README.md rename to build-scripts/cmake/README.md index 80e4b9bf0..06054d364 100644 --- a/build/cmake/README.md +++ b/build-scripts/cmake/README.md @@ -39,5 +39,5 @@ cmake --build build --config Release **Compiler detection:** ```bash -./build/cmake/detect_windows_compiler.ps1 +./build-scripts/cmake/detect_windows_compiler.ps1 ``` diff --git a/build/cmake/WINDOWS_BUILD.md b/build-scripts/cmake/WINDOWS_BUILD.md similarity index 90% rename from build/cmake/WINDOWS_BUILD.md rename to build-scripts/cmake/WINDOWS_BUILD.md index 8f16f7250..90b90bc77 100644 --- a/build/cmake/WINDOWS_BUILD.md +++ b/build-scripts/cmake/WINDOWS_BUILD.md @@ -56,6 +56,7 @@ cmake --build build --config Release ### MinGW-w64 - Via MSYS2: `pacman -S mingw-w64-x86_64-gcc` + - For `zli` and test targets: also install `mingw-w64-x86_64-cmake` - Via w64devkit: Download from ## Examples @@ -113,23 +114,23 @@ cmake --build cmake-build --config Release ```powershell # PowerShell - Get compiler recommendations and installation instructions -./build/cmake/detect_windows_compiler.ps1 +./build-scripts/cmake/detect_windows_compiler.ps1 # Command Prompt - Get compiler recommendations and installation instructions -./build/cmake/detect_windows_compiler.bat +./build-scripts/cmake/detect_windows_compiler.bat ``` #### Step 2: Run Complete Setup Helper ```powershell # PowerShell - Comprehensive setup: detect, recommend, and test -./build/cmake/detect_windows_compiler.ps1 +./build-scripts/cmake/detect_windows_compiler.ps1 # For CI/automation (non-interactive) -./build/cmake/detect_windows_compiler.ps1 -CI +./build-scripts/cmake/detect_windows_compiler.ps1 -CI # Only test configurations (skip detection phase) -./build/cmake/detect_windows_compiler.ps1 -TestOnly +./build-scripts/cmake/detect_windows_compiler.ps1 -TestOnly ``` This script will: diff --git a/build/cmake/detect_windows_compiler.bat b/build-scripts/cmake/detect_windows_compiler.bat similarity index 97% rename from build/cmake/detect_windows_compiler.bat rename to build-scripts/cmake/detect_windows_compiler.bat index b84765e9f..82a0b4070 100644 --- a/build/cmake/detect_windows_compiler.bat +++ b/build-scripts/cmake/detect_windows_compiler.bat @@ -120,7 +120,7 @@ if "!MINGW_AVAILABLE!" == "false" ( echo. ) -echo For detailed build instructions, see build/cmake/WINDOWS_BUILD.md +echo For detailed build instructions, see build-scripts/cmake/WINDOWS_BUILD.md echo. echo Happy building! ^🚀 diff --git a/build/cmake/detect_windows_compiler.ps1 b/build-scripts/cmake/detect_windows_compiler.ps1 similarity index 100% rename from build/cmake/detect_windows_compiler.ps1 rename to build-scripts/cmake/detect_windows_compiler.ps1 diff --git a/build/cmake/openzl-config.cmake.in b/build-scripts/cmake/openzl-config.cmake.in similarity index 88% rename from build/cmake/openzl-config.cmake.in rename to build-scripts/cmake/openzl-config.cmake.in index 60a354f6f..6c8a0df18 100644 --- a/build/cmake/openzl-config.cmake.in +++ b/build-scripts/cmake/openzl-config.cmake.in @@ -14,8 +14,8 @@ include(CMakeFindDependencyMacro) -set_and_check(OPENZL_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") -set_and_check(OPENZL_CMAKE_DIR "@PACKAGE_CMAKE_INSTALL_DIR@") +set_and_check(OPENZL_INCLUDE_DIR "@PACKAGE_OPENZL_INSTALL_INCLUDEDIR@") +set_and_check(OPENZL_CMAKE_DIR "@PACKAGE_OPENZL_INSTALL_CMAKEDIR@") # find_dependency() ends up changing PACKAGE_PREFIX_DIR, so save # openzl's prefix directory in the OPENZL_PREFIX_DIR variable diff --git a/build-scripts/cmake/openzl-deps.cmake b/build-scripts/cmake/openzl-deps.cmake new file mode 100644 index 000000000..62c12295f --- /dev/null +++ b/build-scripts/cmake/openzl-deps.cmake @@ -0,0 +1,214 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +if (OPENZL_SANITIZE_ADDRESS) + if (("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU) OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES Clang)) + set(OPENZL_SANITIZE_ADDRESS ON) + set(OPENZL_ASAN_FLAGS -fsanitize=address,undefined) + list(APPEND OPENZL_COMMON_FLAGS ${OPENZL_ASAN_FLAGS}) + endif() +endif() + +if (OPENZL_SANITIZE_MEMORY) + if (("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU) OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES Clang)) + set(OPENZL_SANITIZE_MEMORY ON) + set(OPENZL_MSAN_FLAGS -fsanitize=memory) + list(APPEND OPENZL_COMMON_FLAGS ${OPENZL_MSAN_FLAGS}) + endif() +endif() + +set(ZSTD_LEGACY_SUPPORT OFF) + +# Two-tier zstd dependency resolution with automated hash verification +# 1. Git submodule (matches Makefile behavior) +# 2. FetchContent + URL (no git required, cryptographically verified) + +set(ZSTD_VERSION "1.5.7") +set(ZSTD_DIRNAME "zstd-${ZSTD_VERSION}") +set(ZSTD_TARBALL_SHA256 "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3") +set(ZSTD_EXPECTED_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd/lib/zstd.h") +set(ZSTD_EXPECTED_CMAKE "${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd/build/cmake/CMakeLists.txt") + +# Helper function to check if zstd is available and working +function(check_zstd_available RESULT_VAR) + if(EXISTS "${ZSTD_EXPECTED_HEADER}" AND EXISTS "${ZSTD_EXPECTED_CMAKE}") + set(${RESULT_VAR} TRUE PARENT_SCOPE) + else() + set(${RESULT_VAR} FALSE PARENT_SCOPE) + endif() +endfunction() + +message(STATUS "Attempting zstd dependency resolution...") + +# Check if zstd is already available +check_zstd_available(ZSTD_AVAILABLE) +if(ZSTD_AVAILABLE) + message(STATUS "zstd dependency already present") +else() + # Tier 1: Git Submodule (existing approach, matches Makefile) + message(STATUS "Tier 1: Trying git submodule...") + execute_process( + COMMAND git submodule update --init --single-branch --depth 1 deps/zstd + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE GIT_SUBMOD_RESULT + OUTPUT_QUIET ERROR_QUIET + ) + + check_zstd_available(ZSTD_AVAILABLE) +endif() + +# Tier 2: FetchContent + URL with Hash Verification +if(NOT ZSTD_AVAILABLE) + message(STATUS "Tier 1 failed. Tier 2: Trying FetchContent with verified tarball...") + + include(FetchContent) + + # Clean up any partial downloads first + file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd") + file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/deps/${ZSTD_DIRNAME}") + + # DOWNLOAD_EXTRACT_TIMESTAMP was added in CMake 3.24 + if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24") + set(ZSTD_FETCH_TIMESTAMP_OPT DOWNLOAD_EXTRACT_TIMESTAMP TRUE) + else() + set(ZSTD_FETCH_TIMESTAMP_OPT) + endif() + + message(STATUS "Using hash verification for tarball download") + FetchContent_Declare(zstd_tarball + URL https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/${ZSTD_DIRNAME}.tar.gz + URL_HASH SHA256=${ZSTD_TARBALL_SHA256} + ${ZSTD_FETCH_TIMESTAMP_OPT} + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd" + ) + + FetchContent_MakeAvailable(zstd_tarball) + check_zstd_available(ZSTD_AVAILABLE) +endif() + +# Final check +if(NOT ZSTD_AVAILABLE) + message(FATAL_ERROR "Failed to obtain zstd dependency through all available methods (git submodule, FetchContent+tarball)") +endif() + +message(STATUS "zstd dependency resolved successfully") + +# Set zstd build options before making it available +# Disable zstd shared library on MSVC-frontend compilers (MSVC and ClangCL). +# ClangCL: rc.exe cannot find Clang's internal headers (e.g. __stddef_ptrdiff_t.h). +# Plain MSVC: static CRT (/MT) is incompatible with a dynamically-linked zstd DLL. +if(CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") + set(ZSTD_BUILD_SHARED OFF CACHE BOOL "") +endif() +set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "") +set(ZSTD_BUILD_CONTRIB OFF CACHE BOOL "") +set(ZSTD_BUILD_TESTS OFF CACHE BOOL "") + +# Add zstd subdirectory directly instead of using FetchContent +add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd/build/cmake" zstd_build) +# Note: find_package not needed when using add_subdirectory - targets are directly available +list(APPEND OPENZL_LINK_LIBRARIES libzstd) + +# Same two-tier lz4 dependency resolution with automated hash verification +set(LZ4_VERSION "1.10.0") +set(LZ4_DIRNAME "lz4-${LZ4_VERSION}") +set(LZ4_TARBALL_SHA256 "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b") +set(LZ4_EXPECTED_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/deps/lz4/lib/lz4.h") +set(LZ4_EXPECTED_CMAKE "${CMAKE_CURRENT_SOURCE_DIR}/deps/lz4/build/cmake/CMakeLists.txt") + +function(check_lz4_available RESULT_VAR) + if(EXISTS "${LZ4_EXPECTED_HEADER}" AND EXISTS "${LZ4_EXPECTED_CMAKE}") + set(${RESULT_VAR} TRUE PARENT_SCOPE) + else() + set(${RESULT_VAR} FALSE PARENT_SCOPE) + endif() +endfunction() + +message(STATUS "Attempting lz4 dependency resolution...") +check_lz4_available(LZ4_AVAILABLE) + +if (NOT LZ4_AVAILABLE) + message(STATUS "Tier 1: Trying git submodule...") + execute_process( + COMMAND git submodule update --init --single-branch --depth 1 deps/lz4 + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE GIT_SUBMOD_RESULT + OUTPUT_QUIET ERROR_QUIET + ) + + check_lz4_available(LZ4_AVAILABLE) +endif() + +check_lz4_available(LZ4_AVAILABLE) +if(NOT LZ4_AVAILABLE) + message(STATUS "Tier 1 failed. Tier 2: Trying FetchContent with verified tarball...") + + include(FetchContent) + + # Clean up any partial downloads first + file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/deps/lz4") + file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/deps/${LZ4_DIRNAME}") + + message(STATUS "Using hash verification for tarball download") + FetchContent_Declare(lz4_tarball + URL https://github.com/lz4/lz4/releases/download/v${LZ4_VERSION}/${LZ4_DIRNAME}.tar.gz + URL_HASH SHA256=${LZ4_TARBALL_SHA256} + DOWNLOAD_EXTRACT_TIMESTAMP ON + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps/lz4" + ) + + FetchContent_MakeAvailable(lz4_tarball) +endif() + +check_lz4_available(LZ4_AVAILABLE) +if(NOT LZ4_AVAILABLE) + message(FATAL_ERROR "Failed to obtain lz4 dependency through all available methods (git submodule, FetchContent+tarball)") +endif() +message(STATUS "lz4 dependency resolved successfully") + +set(LZ4_BUILD_TESTS OFF CACHE BOOL "") +set(LZ4_BUILD_CLI OFF CACHE BOOL "" FORCE) +set(LZ4_BUNDLED_MODE OFF CACHE BOOL "" FORCE) + +# Save current BUILD_SHARED_LIBS and BUILD_STATIC_LIBS values +set(_OPENZL_SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) +set(_OPENZL_SAVED_BUILD_STATIC_LIBS ${BUILD_STATIC_LIBS}) + +# Force lz4 to build static library only to avoid polluting global BUILD_SHARED_LIBS +set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) +set(BUILD_STATIC_LIBS ON CACHE BOOL "" FORCE) + +# Add lz4 subdirectory directly instead of using FetchContent +add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/deps/lz4/build/cmake" lz4_build) + +# Restore BUILD_SHARED_LIBS and BUILD_STATIC_LIBS to their original values +set(BUILD_SHARED_LIBS ${_OPENZL_SAVED_BUILD_SHARED_LIBS} CACHE BOOL "" FORCE) +set(BUILD_STATIC_LIBS ${_OPENZL_SAVED_BUILD_STATIC_LIBS} CACHE BOOL "" FORCE) + +list(APPEND OPENZL_LINK_LIBRARIES lz4) +list(APPEND OPENZL_INCLUDE_DIRECTORIES + "$") + +find_library(MATH_LIBRARY m) +if(MATH_LIBRARY) + list(APPEND OPENZL_LINK_LIBRARIES m) +endif() + +# We aren't currently using pthreads, but we expect to, so lets just include it +# now. +# Add it after Zstd because it is incorrectly not linking against Threads +set(CMAKE_THREAD_PREFER_PTHREAD ON) +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +set(ZTRONG_HAVE_PTHREAD "${CMAKE_USE_PTHREADS_INIT}") +list(APPEND CMAKE_REQUIRED_LIBRARIES Threads::Threads) +list(APPEND OPENZL_LINK_LIBRARIES Threads::Threads) + +add_library(openzl_deps INTERFACE) + +list(REMOVE_DUPLICATES OPENZL_INCLUDE_DIRECTORIES) +target_include_directories(openzl_deps INTERFACE ${OPENZL_INCLUDE_DIRECTORIES}) +target_link_libraries(openzl_deps INTERFACE + ${OPENZL_LINK_LIBRARIES} + ${OPENZL_ASAN_FLAGS} + ${OPENZL_MSAN_FLAGS} +) diff --git a/build-scripts/cmake/tests/CMakeLists.txt b/build-scripts/cmake/tests/CMakeLists.txt new file mode 100644 index 000000000..395d50726 --- /dev/null +++ b/build-scripts/cmake/tests/CMakeLists.txt @@ -0,0 +1,9 @@ +project(test) +cmake_minimum_required(VERSION 3.20.2 FATAL_ERROR) + +find_package(zstd REQUIRED) +find_package(lz4 REQUIRED) +find_package(OpenZL CONFIG REQUIRED) + +add_executable(build_test main.cpp) +target_link_libraries(build_test OpenZL::openzl_cpp) diff --git a/build/cmake/tests/main.cpp b/build-scripts/cmake/tests/main.cpp similarity index 100% rename from build/cmake/tests/main.cpp rename to build-scripts/cmake/tests/main.cpp diff --git a/build/cmake/tests/test-install.py b/build-scripts/cmake/tests/test-install.py similarity index 66% rename from build/cmake/tests/test-install.py rename to build-scripts/cmake/tests/test-install.py index 4e0e29766..7a687d69d 100755 --- a/build/cmake/tests/test-install.py +++ b/build-scripts/cmake/tests/test-install.py @@ -35,13 +35,29 @@ "-lopenzl_cpp", "-lopenzl", "-lzstd", + "-llz4", "-o", f"{BUILD_DIR}/main", ], cwd=TEST_DIR, check=True, ) -run(["./main"], cwd=BUILD_DIR, check=True) +import os + +env = os.environ.copy() +lib_paths = [str(INSTALL_DIR / "lib"), str(INSTALL_DIR / "lib64")] +env["LD_LIBRARY_PATH"] = ":".join(lib_paths) +run(["./main"], cwd=BUILD_DIR, check=True, env=env) + +# Make sure the installed package can be imported in cmake +BUILD_DIR_FOR_TEST = tempfile.mkdtemp(dir=TEST_DIR, prefix="build-") +run( + ["cmake", f"-DCMAKE_PREFIX_PATH={INSTALL_DIR}", ".."], + cwd=BUILD_DIR_FOR_TEST, + check=True, +) +run(["make"], cwd=BUILD_DIR_FOR_TEST, check=True) +run(["./build_test"], cwd=BUILD_DIR_FOR_TEST, check=True) # Clean up build dir on success. On failure, keep it around so we can debug. shutil.rmtree(BUILD_DIR, ignore_errors=True) diff --git a/build/cmake/zl_config.h.cmake b/build-scripts/cmake/zl_config.h.cmake similarity index 75% rename from build/cmake/zl_config.h.cmake rename to build-scripts/cmake/zl_config.h.cmake index 8c4ace222..1c925ff6d 100644 --- a/build/cmake/zl_config.h.cmake +++ b/build-scripts/cmake/zl_config.h.cmake @@ -5,17 +5,12 @@ // clang-format off // BEGIN CODEMOD DEFINES -#ifndef OPENZL_HAVE_FBCODE -#define OPENZL_HAVE_FBCODE ZL_HAVE_FBCODE // TODO(T223464378): Delete -#endif #ifndef OPENZL_HAVE_X86_64_ASM #define OPENZL_HAVE_X86_64_ASM ZL_HAVE_X86_64_ASM // TODO(T223464378): Delete #endif // END CODEMOD DEFINES // clang-format on -#define ZL_HAVE_FBCODE 0 - #cmakedefine01 ZL_ALLOW_INTROSPECTION #cmakedefine01 ZL_HAVE_X86_64_ASM diff --git a/build/make/multiconf.make b/build-scripts/make/multiconf.make similarity index 98% rename from build/make/multiconf.make rename to build-scripts/make/multiconf.make index b358ae31a..d32f2ea25 100644 --- a/build/make/multiconf.make +++ b/build-scripts/make/multiconf.make @@ -179,15 +179,12 @@ MCM_ALL_BINS += $(1) $$(CACHE_ROOT)/%/$(1) : $$(addprefix $$(CACHE_ROOT)/%/,$(2)) $(3) @echo AR $$@ - $$(AR) $$(ARFLAGS) $$@ $$^ -ifeq ($(MCM_STRIP),1) - -$(STRIP) -S $$@ -endif + $$(AR) $$(ARFLAGS) $$@ $$(filter-out %.a,$$^) $(4) .PHONY: $(1) $(1) : ARFLAGS = rcs -$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$(2) $$(CPPFLAGS) $$(CC) $$(CFLAGS) $$(CXX) $$(CXXFLAGS) $$(AR) $$(ARFLAGS) $(5))/$(1) +$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$(2) $$(CPPFLAGS) $$(CC) $$(CFLAGS) $$(CXX) $$(CXXFLAGS) $$(AR) $$(ARFLAGS) $(MCM_STRIP) $(5))/$(1) $$(LN) -sf $$< $$@ endef # static_library @@ -218,7 +215,7 @@ endif .PHONY: $(1) $(1) : CFLAGS += -fPIC -$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$(2) $$(CPPFLAGS) $$(CC) $$(CFLAGS) $$(LDFLAGS) $$(LDLIBS) $(5))/$(1) +$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$(2) $$(CPPFLAGS) $$(CC) $$(CFLAGS) $$(LDFLAGS) $$(LDLIBS) $(MCM_STRIP) $(5))/$(1) $$(LN) -sf $$< $$@ endef # c_dynamic_library @@ -270,7 +267,7 @@ endif endif -MCM_HASH_$(1) = $$(call HASH_FUNC,$(1),$($(6)) $$(CPPFLAGS) $($(7)) $$(LDFLAGS) $$(LDLIBS) $(5)) +MCM_HASH_$(1) = $$(call HASH_FUNC,$(1),$($(6)) $$(CPPFLAGS) $($(7)) $$(LDFLAGS) $$(LDLIBS) $$(MCM_STRIP) $(5)) .PHONY: $(1) $(1) : $$(CACHE_ROOT)/$$(MCM_HASH_$(1))/$(1) diff --git a/build/make/zldefs.make b/build-scripts/make/zldefs.make similarity index 63% rename from build/make/zldefs.make rename to build-scripts/make/zldefs.make index aaa35fa3c..1d2e43eee 100644 --- a/build/make/zldefs.make +++ b/build-scripts/make/zldefs.make @@ -35,15 +35,21 @@ CXXFLAGS += $(CXXDEBUGFLAGS) $(MOREFLAGS) LDFLAGS += $(MOREFLAGS) LDLIBS += -lm # note: to be removed from library once dependency fixed CPPFLAGS += -Ideps/zstd/lib/ # "zstd.h" +CPPFLAGS += -Ideps/lz4/lib/ # "lz4.h" ARFLAGS += -c # do not print warning message when creating the archive (expected) -# build modes # Default build mode -BUILD_TYPE ?= DEFAULT +# support both BUILD_TYPE and BUILD_MODE, priority to BUILD_TYPE +# ADAPTIVE mode provides smart per-target defaults (targets add their own flags) +BUILD_MODE ?= ADAPTIVE +BUILD_TYPE ?= $(BUILD_MODE) # Sanitizer flags SANITIZER_FLAGS = -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=undefined -fno-omit-frame-pointer +# Log level +LOG_LEVEL ?= SEQ + # Build mode configuration ifeq ($(BUILD_TYPE),DEV) CFLAGS += -g -O0 @@ -59,21 +65,21 @@ else ifeq ($(BUILD_TYPE),DEV_NOSAN) else ifeq ($(BUILD_TYPE),TRACES) CFLAGS += -g -O0 CXXFLAGS += -g -O0 - CPPFLAGS += -DZL_ENABLE_ASSERT -DZL_LOG_LVL=ZL_LOG_LVL_SEQ + CPPFLAGS += -DZL_ENABLE_ASSERT -DZL_LOG_LVL=ZL_LOG_LVL_$(LOG_LEVEL) CFLAGS += $(SANITIZER_FLAGS) CXXFLAGS += $(SANITIZER_FLAGS) LDFLAGS += $(SANITIZER_FLAGS) else ifeq ($(BUILD_TYPE),TRACES_NOSAN) CFLAGS += -g -O0 CXXFLAGS += -g -O0 - CPPFLAGS += -DZL_ENABLE_ASSERT -DZL_LOG_LVL=ZL_LOG_LVL_SEQ + CPPFLAGS += -DZL_ENABLE_ASSERT -DZL_LOG_LVL=ZL_LOG_LVL_$(LOG_LEVEL) else ifeq ($(BUILD_TYPE),OPT) CDEBUGFLAGS = DEBUGFLAGS = CFLAGS += -g0 -O3 CXXFLAGS += -g0 -O3 CPPFLAGS += -DNDEBUG - MCM_STRIP = 1 + MCM_STRIP ?= 1 else ifeq ($(BUILD_TYPE),OPT_ASAN) CFLAGS += -O3 -DNDEBUG CXXFLAGS += -O3 -DNDEBUG @@ -92,11 +98,12 @@ else ifeq ($(BUILD_TYPE),DBGO_ASAN) CFLAGS += $(SANITIZER_FLAGS) CXXFLAGS += $(SANITIZER_FLAGS) LDFLAGS += $(SANITIZER_FLAGS) -else ifeq ($(BUILD_TYPE),DEFAULT) +else ifeq ($(BUILD_TYPE),BASELINE) # no modification, just use baseline flags - MCM_STRIP = 1 +else ifeq ($(BUILD_TYPE),ADAPTIVE) +# ADAPTIVE mode: baseline flags, targets add their own optimizations else - $(error Invalid BUILD_TYPE: $(BUILD_TYPE). Valid options: DEFAULT, DEV, DEV_NOSAN, OPT, OPT_ASAN, DBGO, DBGO_ASAN, TRACES, TRACES_NOSAN) + $(error Invalid BUILD_TYPE: $(BUILD_TYPE). Valid options: ADAPTIVE, OPT, BASELINE, OPT_ASAN, DBGO, DBGO_ASAN, DEV, DEV_NOSAN, TRACES, TRACES_NOSAN) endif # position user flags at the end, so that they have higher priority @@ -114,23 +121,28 @@ show-config: @echo "CPPFLAGS: $(CPPFLAGS)" @echo "LDFLAGS: $(LDFLAGS)" -# Help target .PHONY: help help: @echo "Available build types:" - @echo " BUILD_TYPE=DEV - Debug build with asserts and sanitizers" - @echo " BUILD_TYPE=DEV_NOSAN - Debug build with asserts (no sanitizers)" - @echo " BUILD_TYPE=OPT - Optimized build, no asserts (default)" - @echo " BUILD_TYPE=OPT_ASAN - Optimized build with sanitizers" - @echo " BUILD_TYPE=DBGO - Optimized build with asserts" - @echo " BUILD_TYPE=DBGO_ASAN - Optimized build with asserts and sanitizers" - @echo " BUILD_TYPE=TRACES - Debug build with asserts, sanitizers and traces" + @echo " BUILD_TYPE=ADAPTIVE - (default) Smart per-target defaults" + @echo " Production: -O3 -DNDEBUG" + @echo " Tests: -g -DZL_ENABLE_ASSERT" + @echo " Benchmarks: -O3 -DNDEBUG" + @echo " BUILD_TYPE=OPT - Optimized build, no asserts (coercive for all targets)" + @echo " BUILD_TYPE=DEV - Debug build with asserts and sanitizers (coercive)" + @echo " BUILD_TYPE=DEV_NOSAN - Debug build with asserts (no sanitizers)" + @echo " BUILD_TYPE=OPT_ASAN - Optimized build with sanitizers" + @echo " BUILD_TYPE=DBGO - Optimized build with asserts" + @echo " BUILD_TYPE=DBGO_ASAN - Optimized build with asserts and sanitizers" + @echo " BUILD_TYPE=TRACES - Debug build with asserts, sanitizers and traces" @echo " BUILD_TYPE=TRACES_NOSAN - Debug build with asserts and traces" @echo "" @echo "Usage examples:" - @echo " make lib # Build library with DEFAULT type" - @echo " make lib BUILD_TYPE=DBGO_ASAN # Build library with DBGO_ASAN type" - @echo " make zli BUILD_TYPE=DEV # Build executable with DEV type" + @echo " make # Build with ADAPTIVE mode (smart defaults)" + @echo " make zli # Build zli with -O3 -DNDEBUG (ADAPTIVE)" + @echo " make gtests # Build gtests with -g -DZL_ENABLE_ASSERT (ADAPTIVE)" + @echo " make BUILD_TYPE=OPT # Force OPT mode for all targets" + @echo " make BUILD_TYPE=DEV # Force DEV mode for all targets" @echo " make show-config BUILD_TYPE=DEV # Show configuration for DEV type" # Paths to source files @@ -142,7 +154,7 @@ TESTROOT:= tests TESTSDIRS:= $(shell find $(TESTROOT) -type d) CLIDIR := cli CLIDIRS := $(CLIDIR) $(CLIDIR)/args $(CLIDIR)/commands $(CLIDIR)/utils -CLI_TEST_DIRS := $(CLIDIR)/tests $(CLIDIR)/training/tests +CLI_TEST_DIRS := $(CLIDIR)/tests $(CLIDIR)/tests/unittest $(CLIDIR)/training/tests CLI_DIRS := $(CLIDIRS) $(CLI_TEST_DIRS) ARGDIR := tools/arg FILEIODIR := tools/fileio @@ -166,11 +178,47 @@ TRAINING_DIRS := tools/training $(shell find $(TRAINING_ROOTS) -type d) TRAINING_TEST_DIRS := $(shell find tools/training/tests -type d) SDDL_COMPILER_DIR := tools/sddl/compiler SDDL_COMPILER_TESTS_DIR := $(SDDL_COMPILER_DIR)/tests +SDDL2_COMPILER_DIR := tools/sddl2/compiler +SDDL2_COMPILER_DIRS := $(filter-out %/tests,$(shell find $(SDDL2_COMPILER_DIR) -type d)) +SDDL2_COMPILER_TESTS_DIR := $(SDDL2_COMPILER_DIR)/tests +SDDL2_ASSEMBLER_DIR := tools/sddl2/assembler +SDDL2_ASSEMBLER_TESTS_DIR := $(SDDL2_ASSEMBLER_DIR)/tests +ML_SELECTOR_DIR := tools/ml_selector +ML_SELECTOR_TESTS_DIR := $(ML_SELECTOR_DIR)/tests +TEST_REGISTRY_DIRS := tests/registry tests/registry/components # input for multiconf.make -C_SRCDIRS := $(LIBDIRS) $(EXDIRS) $(TESTSDIRS) $(FILEIODIR) $(TIMEDIR) $(STREAMDUMPDIR) $(UNITBENCH_DIRS) $(CUSTOMPARSERSDIR) $(CSVDIR) $(PROFILES_SDDL_DIR) $(PARQUETDIR) $(CLI_DIRS) +C_SRCDIRS := $(LIBDIRS) $(EXDIRS) $(TESTSDIRS) $(FILEIODIR) $(TIMEDIR) $(STREAMDUMPDIR) $(UNITBENCH_DIRS) $(CUSTOMPARSERSDIR) $(CSVDIR) $(PROFILES_SDDL_DIR) $(PARQUETDIR) $(CLI_DIRS) $(ML_SELECTOR_DIR) ASM_SRCDIRS := $(LIBDIRS) -CXX_SRCDIRS := $(CLIDIRS) $(ARGDIR) $(TESTSDIRS) $(FILEIODIR) $(TIMEDIR) $(LOGGERDIR) $(CUSTOMPARSERSDIR) $(CSVDIR) $(PROFILES_SDDL_DIR) $(PARQUETDIR) $(SHARED_COMPONENTSDIR) $(VISUALIZER_CPPDIR) $(IODIR) $(ZLCPP_DIRS) $(ZLCPP_TEST_DIR) $(TRAINING_DIRS) $(TRAINING_TEST_DIRS) $(SDDL_COMPILER_DIR) $(SDDL_COMPILER_TESTS_DIR) $(CLI_DIRS) $(CLI_TEST_DIRS) +CXX_SRCDIRS := \ + $(CLIDIRS) \ + $(ARGDIR) \ + $(TESTSDIRS) \ + $(FILEIODIR) \ + $(TIMEDIR) \ + $(LOGGERDIR) \ + $(CUSTOMPARSERSDIR) \ + $(CSVDIR) \ + $(PROFILES_SDDL_DIR) \ + $(PARQUETDIR) \ + $(SHARED_COMPONENTSDIR) \ + $(VISUALIZER_CPPDIR) \ + $(IODIR) \ + $(ZLCPP_DIRS) \ + $(ZLCPP_TEST_DIR) \ + $(TRAINING_DIRS) \ + $(TRAINING_TEST_DIRS) \ + $(SDDL_COMPILER_DIR) \ + $(SDDL_COMPILER_TESTS_DIR) \ + $(SDDL2_COMPILER_DIRS) \ + $(SDDL2_COMPILER_TESTS_DIR) \ + $(SDDL2_ASSEMBLER_DIR) \ + $(SDDL2_ASSEMBLER_TESTS_DIR) \ + $(CLI_DIRS) \ + $(CLI_TEST_DIRS) \ + $(ML_SELECTOR_DIR) \ + $(ML_SELECTOR_TESTS_DIR) \ + $(TEST_REGISTRY_DIRS) # Use response file for link stage for environments with small command line limit (<= 32KB) UNAME := $(shell sh -c 'MSYSTEM="MSYS" uname') diff --git a/build/cmake/openzl-deps.cmake b/build/cmake/openzl-deps.cmake deleted file mode 100644 index 657a101cc..000000000 --- a/build/cmake/openzl-deps.cmake +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. - -if (OPENZL_SANITIZE_ADDRESS) - if (("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU) OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES Clang)) - set(OPENZL_SANITIZE_ADDRESS ON) - set(OPENZL_ASAN_FLAGS -fsanitize=address,undefined) - list(APPEND OPENZL_COMMON_FLAGS ${OPENZL_ASAN_FLAGS}) - endif() -endif() - -if (OPENZL_SANITIZE_MEMORY) - if (("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU) OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES Clang)) - set(OPENZL_SANITIZE_MEMORY ON) - set(OPENZL_MSAN_FLAGS -fsanitize=memory) - list(APPEND OPENZL_COMMON_FLAGS ${OPENZL_MSAN_FLAGS}) - endif() -endif() - -set(ZSTD_LEGACY_SUPPORT OFF) - -# Use git submodule instead of direct download -if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd/build/cmake/CMakeLists.txt") - execute_process( - COMMAND git submodule update --init --recursive deps/zstd - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE GIT_SUBMOD_RESULT - ) - if(NOT GIT_SUBMOD_RESULT EQUAL "0") - message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules manually") - endif() -endif() - -# Set zstd build options before making it available -set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "") -set(ZSTD_BUILD_CONTRIB OFF CACHE BOOL "") -set(ZSTD_BUILD_TESTS OFF CACHE BOOL "") - -# Add zstd subdirectory directly instead of using FetchContent -add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd/build/cmake" zstd_build) -# Note: find_package not needed when using add_subdirectory - targets are directly available -list(APPEND OPENZL_LINK_LIBRARIES libzstd) - -find_library(MATH_LIBRARY m) -if(MATH_LIBRARY) - list(APPEND OPENZL_LINK_LIBRARIES m) -endif() - -# We aren't currently using pthreads, but we expect to, so lets just include it -# now. -# Add it after Zstd because it is incorrectly not linking against Threads -set(CMAKE_THREAD_PREFER_PTHREAD ON) -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads REQUIRED) -set(ZTRONG_HAVE_PTHREAD "${CMAKE_USE_PTHREADS_INIT}") -list(APPEND CMAKE_REQUIRED_LIBRARIES Threads::Threads) -list(APPEND OPENZL_LINK_LIBRARIES Threads::Threads) - -add_library(openzl_deps INTERFACE) - -list(REMOVE_DUPLICATES OPENZL_INCLUDE_DIRECTORIES) -target_include_directories(openzl_deps INTERFACE ${OPENZL_INCLUDE_DIRECTORIES}) -target_link_libraries(openzl_deps INTERFACE - ${OPENZL_LINK_LIBRARIES} - ${OPENZL_ASAN_FLAGS} - ${OPENZL_MSAN_FLAGS} -) diff --git a/cli/BUCK b/cli/BUCK index 5ca79d9d3..60c0f694c 100644 --- a/cli/BUCK +++ b/cli/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxbinary", "zs_cxxlibrary") +load("../defs.bzl", "zs_cxxbinary", "zs_cxxlibrary") oncall("data_compression") @@ -13,13 +13,13 @@ zs_cxxbinary( name = "zli", # placeholder name for now srcs = ["zli.cpp"], deps = [ - "//data_compression/experimental/zstrong/cli:cmd", - "//data_compression/experimental/zstrong/cli/args:args", - "//data_compression/experimental/zstrong/cli/commands:commands", - "//data_compression/experimental/zstrong/cli/utils:utils", - "//data_compression/experimental/zstrong/tools:arg", - "//data_compression/experimental/zstrong/tools:io", - "//data_compression/experimental/zstrong/tools:logger", - "//data_compression/experimental/zstrong/tools/training:train_common", + "../tools:arg", + "../tools:io", + "../tools:logger", + "../tools/training:train_common", + "args:args", + "commands:commands", + "utils:utils", + ":cmd", ], ) diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt index 94831a2b0..c836930d4 100644 --- a/cli/CMakeLists.txt +++ b/cli/CMakeLists.txt @@ -10,8 +10,7 @@ add_subdirectory(args) add_subdirectory(commands) add_subdirectory(utils) -if (BUILD_TESTS AND BUILD_PYTHON_EXT) - message(STATUS "adding python tests") +if (BUILD_TESTS) add_subdirectory(tests) endif() @@ -37,6 +36,7 @@ add_dependencies(zli commands utils logger + xgboost_external ) apply_openzl_compile_options_to_target(zli) diff --git a/cli/args/ArgsUtils.cpp b/cli/args/ArgsUtils.cpp index 53cf162a3..296ce940a 100644 --- a/cli/args/ArgsUtils.cpp +++ b/cli/args/ArgsUtils.cpp @@ -7,8 +7,6 @@ #include "custom_parsers/dependency_registration.h" -#include "openzl/codecs/zl_ace.h" - #include "tools/io/InputFile.h" #include "tools/logger/Logger.h" @@ -36,20 +34,25 @@ void checkOutput(const std::string& path, bool force) } std::unique_ptr createCompressorFromArgs( - const std::optional& profileName, - const std::optional& profileArg, + const ProfileArgs& profileArgs, const std::optional& compressorPath) { - if (profileName && compressorPath) { + if (profileArgs.name() && compressorPath) { throw InvalidArgsException( "Both compressor profile and serialized compressor specified. Please provide only one."); } - if (profileName) { - ProfileArgs profileArgs; - profileArgs.name = profileName.value(); - if (profileArg) { - profileArgs.argmap.emplace("TBD", profileArg.value()); + if (profileArgs.name()) { + if (profileArgs.chunkSize()) { + const auto profileName = profileArgs.name().value(); + const auto profile = compressProfiles().find(profileName); + if (profile != compressProfiles().end() + && !profile->second->supportsChunkSize) { + Logger::log( + INFO, + "Profile '" + profileName + + "' does not support --chunk-size; ignoring the flag."); + } } return util::createCompressorFromProfile(profileArgs); } diff --git a/cli/args/ArgsUtils.h b/cli/args/ArgsUtils.h index 145a66e61..57a274927 100644 --- a/cli/args/ArgsUtils.h +++ b/cli/args/ArgsUtils.h @@ -4,6 +4,7 @@ #include +#include "cli/utils/compress_profiles.h" #include "openzl/cpp/Compressor.hpp" namespace openzl { @@ -18,8 +19,7 @@ void checkOutput(const std::string& path, bool force); * created compressor. */ std::unique_ptr createCompressorFromArgs( - const std::optional& profileName, - const std::optional& profileArg, + const ProfileArgs& profileArgs, const std::optional& compressorPath); } // namespace cli diff --git a/cli/args/BUCK b/cli/args/BUCK index 946c92846..415537220 100644 --- a/cli/args/BUCK +++ b/cli/args/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxlibrary") +load("../../defs.bzl", "zs_cxxlibrary") oncall("data_compression") @@ -18,13 +18,13 @@ zs_cxxlibrary( "TrainArgs.h", ], exported_deps = [ - "//data_compression/experimental/zstrong/cli:cmd", - "//data_compression/experimental/zstrong/cli/utils:utils", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers:custom_parsers", - "//data_compression/experimental/zstrong/tools:arg", - "//data_compression/experimental/zstrong/tools:io", - "//data_compression/experimental/zstrong/tools/training:train_common", - "//data_compression/experimental/zstrong/tools/training/utils:training_utils", + "..:cmd", + "../../cpp:openzl_cpp", + "../../custom_parsers:custom_parsers", + "../../tools:arg", + "../../tools:io", + "../../tools/training:train_common", + "../../tools/training/utils:training_utils", + "../utils:utils", ], ) diff --git a/cli/args/BenchmarkArgs.h b/cli/args/BenchmarkArgs.h index 348c98eb9..5839ce73b 100644 --- a/cli/args/BenchmarkArgs.h +++ b/cli/args/BenchmarkArgs.h @@ -14,10 +14,11 @@ #include "cli/args/ArgsUtils.h" #include "cli/args/GlobalArgs.h" +#include "cli/utils/util.h" namespace openzl::cli { -struct BenchmarkArgs : public GlobalArgs { +struct BenchmarkArgs : public GlobalArgs, public ProfileArgs { static void addArgs(arg::ArgParser& parser) { // Add the command @@ -30,15 +31,7 @@ struct BenchmarkArgs : public GlobalArgs { kOutputCsv, 0, true, - "Output file path for CSV-formatted sumamry statistic."); - parser.addCommandFlag( - cmd(), kProfile, 'p', true, "Benchmark the given profile."); - parser.addCommandFlag( - cmd(), - kProfileArg, - 0, - true, - "Pass the given value as an argument to constructing the profile."); + "Output file path for CSV-formatted summary statistic."); parser.addCommandFlag( cmd(), kCompressor, @@ -62,12 +55,12 @@ struct BenchmarkArgs : public GlobalArgs { "Enforce strict mode compression. This will fail the compression in cases of errors, instead of falling back."); } - explicit BenchmarkArgs(const arg::ParsedArgs& parsed) : GlobalArgs(parsed) + explicit BenchmarkArgs(const arg::ParsedArgs& parsed) + : GlobalArgs(parsed), ProfileArgs(parsed) { - compressor = createCompressorFromArgs( - parsed.cmdFlag(cmd(), kProfile), - parsed.cmdFlag(cmd(), kProfileArg), - parsed.cmdFlag(cmd(), kCompressor)); + // Create the compressor + setCompressor(createCompressorFromArgs( + *this, parsed.cmdFlag(cmd(), kCompressor))); auto inputPath = parsed.cmdPositional(Cmd::BENCHMARK, kInput); auto input_set = tools::io::InputSetBuilder(recursive) @@ -83,17 +76,19 @@ struct BenchmarkArgs : public GlobalArgs { } auto levelArg = parsed.cmdFlag(cmd(), kLevel); if (levelArg) { - level = std::stoi(levelArg.value()); + level = util::checkedstoi(levelArg.value()); } auto numItersArg = parsed.cmdFlag(cmd(), kNumIters); if (numItersArg) { - numIters = std::stoi(numItersArg.value()); + numIters = util::checkedstoi(numItersArg.value()); } strict = parsed.cmdHasFlag(Cmd::BENCHMARK, kStrict); } - explicit BenchmarkArgs(const GlobalArgs& globalArgs) - : GlobalArgs(globalArgs) + explicit BenchmarkArgs( + const GlobalArgs& globalArgs, + const std::shared_ptr& compressor) + : GlobalArgs(globalArgs), ProfileArgs(compressor) { } @@ -102,8 +97,6 @@ struct BenchmarkArgs : public GlobalArgs { return Cmd::BENCHMARK; } - std::shared_ptr compressor; - std::vector inputs; std::unique_ptr outputCsv; @@ -113,11 +106,8 @@ struct BenchmarkArgs : public GlobalArgs { bool strict = false; private: - inline static const std::string kInput = "input"; - inline static const std::string kOutputCsv = "output-csv"; - - inline static const std::string kProfile = "profile"; - inline static const std::string kProfileArg = "profile-arg"; + inline static const std::string kInput = "input"; + inline static const std::string kOutputCsv = "output-csv"; inline static const std::string kCompressor = "compressor"; inline static const std::string kLevel = "level"; diff --git a/cli/args/CMakeLists.txt b/cli/args/CMakeLists.txt index 878a68c2b..3a5c854a1 100644 --- a/cli/args/CMakeLists.txt +++ b/cli/args/CMakeLists.txt @@ -20,11 +20,13 @@ target_link_libraries(args openzl_cpp custom_parsers tools_io - arg) + arg + utils) add_dependencies(args openzl_cpp custom_parsers tools_io - arg) + arg + utils) diff --git a/cli/args/CompressArgs.h b/cli/args/CompressArgs.h index 0116450f8..1e9eb0a6e 100644 --- a/cli/args/CompressArgs.h +++ b/cli/args/CompressArgs.h @@ -13,12 +13,13 @@ #include "cli/args/ArgsUtils.h" #include "cli/args/GlobalArgs.h" +#include "cli/utils/util.h" #include "tools/io/InputFile.h" #include "tools/io/OutputFile.h" namespace openzl::cli { -struct CompressArgs : public GlobalArgs { +struct CompressArgs : public GlobalArgs, public ProfileArgs { static void addArgs(arg::ArgParser& parser) { // Add the command @@ -29,14 +30,6 @@ struct CompressArgs : public GlobalArgs { parser.addCommandFlag(cmd(), kOutput, 'o', true, "Output file path."); parser.addCommandFlag( cmd(), kForce, 'f', false, "Overwrite output file."); - parser.addCommandFlag( - cmd(), kProfile, 'p', true, "Compress with the given profile."); - parser.addCommandFlag( - cmd(), - kProfileArg, - 0, - true, - "Pass the given value as an argument to constructing the profile."); parser.addCommandFlag( cmd(), kCompressor, @@ -49,6 +42,14 @@ struct CompressArgs : public GlobalArgs { 0, false, "Train the compressor on the input file before compressing."); + parser.addCommandFlag( + cmd(), + kTrainInlineTestLimit, + 0, + true, + // "Lime limit spent on inline training, in seconds, for + // testing." + ""); parser.addCommandFlag( cmd(), kTrace, @@ -61,15 +62,38 @@ struct CompressArgs : public GlobalArgs { 0, true, "Directory to write trace streamdump to."); + parser.addCommandFlag( + cmd(), + kStrict, + 0, + false, + "Enforce strict mode compression. Fail on errors instead of falling back to generic compression."); + parser.addCommandFlag( + cmd(), + kNoStreamPreview, + 0, + false, + "Omit stream preview data from the trace CBOR output. Requires --trace."); + parser.addCommandFlag( + cmd(), + kStoreOnExpansion, + 0, + false, + "Enable anti-inflation guard (replace expanding chunks with STORE). This is the default."); + parser.addCommandFlag( + cmd(), + kNoStoreOnExpansion, + 0, + false, + "Disable anti-inflation guard (do not replace expanding chunks with STORE)."); } - explicit CompressArgs(const arg::ParsedArgs& parsed) : GlobalArgs(parsed) + explicit CompressArgs(const arg::ParsedArgs& parsed) + : GlobalArgs(parsed), ProfileArgs(parsed) { // Create the compressor - compressor = createCompressorFromArgs( - parsed.cmdFlag(cmd(), kProfile), - parsed.cmdFlag(cmd(), kProfileArg), - parsed.cmdFlag(cmd(), kCompressor)); + setCompressor(createCompressorFromArgs( + *this, parsed.cmdFlag(cmd(), kCompressor))); // Get the input and output files auto inputPath = parsed.cmdPositional(cmd(), kInput); @@ -80,6 +104,10 @@ struct CompressArgs : public GlobalArgs { output = std::make_unique(std::move(outputPath)); trainInline = parsed.cmdHasFlag(cmd(), kTrainInline); + if (parsed.cmdHasFlag(cmd(), kTrainInlineTestLimit)) { + trainInlineTestLimit = util::checkedstoul( + parsed.cmdFlag(cmd(), kTrainInlineTestLimit).value()); + } if (parsed.cmdHasFlag(cmd(), kTrace)) { auto path = parsed.cmdFlag(cmd(), kTrace).value(); @@ -87,6 +115,18 @@ struct CompressArgs : public GlobalArgs { } traceStreamsDir = parsed.cmdFlag(cmd(), kTraceStreamsDir); + strict = parsed.cmdHasFlag(cmd(), kStrict); + streamPreview = !parsed.cmdHasFlag(cmd(), kNoStreamPreview); + + if (!streamPreview && !traceOutput) { + throw InvalidArgsException( + "--no-stream-preview requires --trace to be specified."); + } + if (parsed.cmdHasFlag(cmd(), kNoStoreOnExpansion)) { + storeOnExpansion = false; + } else if (parsed.cmdHasFlag(cmd(), kStoreOnExpansion)) { + storeOnExpansion = true; + } } static Cmd cmd() @@ -94,29 +134,36 @@ struct CompressArgs : public GlobalArgs { return Cmd::COMPRESS; }; - std::shared_ptr compressor; - std::shared_ptr input; std::shared_ptr output; bool trainInline{}; + poly::optional trainInlineTestLimit; + std::shared_ptr traceOutput; std::optional traceStreamsDir; + bool strict = false; + bool streamPreview = true; + bool storeOnExpansion = true; private: - inline static const std::string kInput = "input"; - inline static const std::string kOutput = "output"; - inline static const std::string kForce = "force"; - - inline static const std::string kProfile = "profile"; - inline static const std::string kProfileArg = "profile-arg"; + inline static const std::string kInput = "input"; + inline static const std::string kOutput = "output"; + inline static const std::string kForce = "force"; inline static const std::string kCompressor = "compressor"; - inline static const std::string kVerbose = "verbose"; - inline static const std::string kRecursive = "recursive"; - inline static const std::string kTrainInline = "train-inline"; - inline static const std::string kTrace = "trace"; - inline static const std::string kTraceStreamsDir = "trace-streams-dir"; + inline static const std::string kVerbose = "verbose"; + inline static const std::string kRecursive = "recursive"; + inline static const std::string kTrainInline = "train-inline"; + inline static const std::string kTrainInlineTestLimit = + "train-inline-test-limit"; + inline static const std::string kTrace = "trace"; + inline static const std::string kTraceStreamsDir = "trace-streams-dir"; + inline static const std::string kStrict = "strict"; + inline static const std::string kNoStreamPreview = "no-stream-preview"; + inline static const std::string kStoreOnExpansion = "store-on-expansion"; + inline static const std::string kNoStoreOnExpansion = + "no-store-on-expansion"; }; } // namespace openzl::cli diff --git a/cli/args/DecompressArgs.h b/cli/args/DecompressArgs.h index 1bf39cd3f..a227a8c73 100644 --- a/cli/args/DecompressArgs.h +++ b/cli/args/DecompressArgs.h @@ -4,6 +4,8 @@ #include #include +#include +#include #include "cli/args/ArgsUtils.h" #include "cli/args/GlobalArgs.h" @@ -26,6 +28,24 @@ class DecompressArgs : GlobalArgs { parser.addCommandFlag(cmd(), kOutput, 'o', true, "Output file path."); parser.addCommandFlag( cmd(), kForce, 'f', false, "Overwrite output file."); + parser.addCommandFlag( + cmd(), + kTrace, + 0, + true, + "Record a trace of the decompression to be visualized with streamdump. Writes a CBOR file to the provided path."); + parser.addCommandFlag( + cmd(), + kTraceStreamsDir, + 0, + true, + "Directory to write trace streamdump to."); + parser.addCommandFlag( + cmd(), + kNoStreamPreview, + 0, + false, + "Omit stream preview data from the trace CBOR output. Requires --trace."); } explicit DecompressArgs(const arg::ParsedArgs& parsed) : GlobalArgs(parsed) @@ -48,6 +68,19 @@ class DecompressArgs : GlobalArgs { input = std::make_unique(std::move(inputPath)); output = std::make_unique( std::move(outputPath).value()); + + if (parsed.cmdHasFlag(cmd(), kTrace)) { + auto path = parsed.cmdFlag(cmd(), kTrace).value(); + traceOutput = std::make_shared(path); + } + + traceStreamsDir = parsed.cmdFlag(cmd(), kTraceStreamsDir); + streamPreview = !parsed.cmdHasFlag(cmd(), kNoStreamPreview); + + if (!streamPreview && !traceOutput) { + throw InvalidArgsException( + "--no-stream-preview requires --trace to be specified."); + } } static Cmd cmd() @@ -58,10 +91,17 @@ class DecompressArgs : GlobalArgs { std::unique_ptr input; std::unique_ptr output; + std::shared_ptr traceOutput; + std::optional traceStreamsDir; + bool streamPreview = true; + private: - inline static const std::string kInput = "input"; - inline static const std::string kOutput = "output"; - inline static const std::string kForce = "force"; + inline static const std::string kInput = "input"; + inline static const std::string kOutput = "output"; + inline static const std::string kForce = "force"; + inline static const std::string kTrace = "trace"; + inline static const std::string kTraceStreamsDir = "trace-streams-dir"; + inline static const std::string kNoStreamPreview = "no-stream-preview"; }; } // namespace openzl::cli diff --git a/cli/args/GlobalArgs.h b/cli/args/GlobalArgs.h index 481fce8fd..17a97583a 100644 --- a/cli/args/GlobalArgs.h +++ b/cli/args/GlobalArgs.h @@ -38,7 +38,8 @@ class GlobalArgs { explicit GlobalArgs(const arg::ParsedArgs& parsed) { - verbosity = std::stoi(parsed.globalFlag(kVerbose).value_or("3")); + verbosity = + util::checkedstoi(parsed.globalFlag(kVerbose).value_or("3")); recursive = parsed.globalHasFlag(kRecursive); if (parsed.immediate().has_value()) { diff --git a/cli/args/TrainArgs.h b/cli/args/TrainArgs.h index 063c97566..335aca8bf 100644 --- a/cli/args/TrainArgs.h +++ b/cli/args/TrainArgs.h @@ -14,10 +14,11 @@ #include "cli/args/ArgsUtils.h" #include "cli/args/GlobalArgs.h" +#include "cli/utils/util.h" namespace openzl::cli { -class TrainArgs : public GlobalArgs { +class TrainArgs : public GlobalArgs, public ProfileArgs { public: static void addArgs(arg::ArgParser& parser) { @@ -27,14 +28,6 @@ class TrainArgs : public GlobalArgs { // Add the top-level flags parser.addCommandPositional( cmd(), kSampleDir, "Directory containing samples to train on."); - parser.addCommandFlag( - cmd(), kProfile, 'p', true, "Train with the given profile."); - parser.addCommandFlag( - cmd(), - kProfileArg, - 0, - true, - "Pass the given value as an argument to constructing the profile."); parser.addCommandFlag( cmd(), kCompressor, @@ -115,14 +108,20 @@ class TrainArgs : public GlobalArgs { 0, false, "Enables pareto frontier training. This will output a directory containing all compressors in the pareto frontier."); + parser.addCommandFlag( + cmd(), + kSaveAceState, + 0, + false, + "Save the ACE state as a local parameter in the trained compressor."); } - explicit TrainArgs(const arg::ParsedArgs& parsed) : GlobalArgs(parsed) + explicit TrainArgs(const arg::ParsedArgs& parsed) + : GlobalArgs(parsed), ProfileArgs(parsed) { - compressor = createCompressorFromArgs( - parsed.cmdFlag(cmd(), kProfile), - parsed.cmdFlag(cmd(), kProfileArg), - parsed.cmdFlag(cmd(), kCompressor)); + // Create the compressor + setCompressor(createCompressorFromArgs( + *this, parsed.cmdFlag(cmd(), kCompressor))); auto outputPath = parsed.cmdFlag(cmd(), kOutput); if (outputPath) { checkOutput(outputPath.value(), parsed.cmdHasFlag(cmd(), kForce)); @@ -161,24 +160,26 @@ class TrainArgs : public GlobalArgs { auto threads = parsed.cmdFlag(cmd(), kThreads); if (threads) { - trainParams.threads = std::stoul(threads.value()); + trainParams.threads = util::checkedstoul(threads.value()); } auto numSamples = parsed.cmdFlag(cmd(), kNumSamples); if (numSamples) { - trainParams.numSamples = std::stoul(numSamples.value()); + trainParams.numSamples = util::checkedstoul(numSamples.value()); } auto maxTimeSecs = parsed.cmdFlag(cmd(), kMaxTimeSecs); if (maxTimeSecs) { - trainParams.maxTimeSecs = std::stoul(maxTimeSecs.value()); + trainParams.maxTimeSecs = util::checkedstoul(maxTimeSecs.value()); } useAllSamples = parsed.cmdHasFlag(cmd(), kUseAllSamples); auto maxFileSizeMb = parsed.cmdFlag(cmd(), kMaxFileSizeMb); if (maxFileSizeMb) { - trainParams.maxFileSizeMb = std::stoul(maxFileSizeMb.value()); + trainParams.maxFileSizeMb = + util::checkedstoul(maxFileSizeMb.value()); } auto maxTotalSizeMb = parsed.cmdFlag(cmd(), kMaxTotalSizeMb); if (maxTotalSizeMb) { - trainParams.maxTotalSizeMb = std::stoul(maxTotalSizeMb.value()); + trainParams.maxTotalSizeMb = + util::checkedstoul(maxTotalSizeMb.value()); } if (parsed.cmdHasFlag(cmd(), kParetoFrontier)) { @@ -189,11 +190,15 @@ class TrainArgs : public GlobalArgs { parsed.cmdHasFlag(cmd(), kNoAceSuccessors); trainParams.noClustering = parsed.cmdHasFlag(cmd(), kNoClustering); + trainParams.saveAceState = parsed.cmdHasFlag(cmd(), kSaveAceState); trainParams.compressorGenFunc = custom_parsers::createCompressorFromSerialized; } - explicit TrainArgs(const GlobalArgs& globalArgs) : GlobalArgs(globalArgs) + explicit TrainArgs( + const GlobalArgs& globalArgs, + const std::shared_ptr& compressor) + : GlobalArgs(globalArgs), ProfileArgs(compressor) { trainParams.compressorGenFunc = custom_parsers::createCompressorFromSerialized; @@ -204,7 +209,6 @@ class TrainArgs : public GlobalArgs { return Cmd::TRAIN; } - std::shared_ptr compressor; std::shared_ptr inputs; std::shared_ptr output; @@ -213,8 +217,6 @@ class TrainArgs : public GlobalArgs { private: inline static const std::string kSampleDir = "sample-dir"; - inline static const std::string kProfile = "profile"; - inline static const std::string kProfileArg = "profile-arg"; inline static const std::string kCompressor = "compressor"; inline static const std::string kOutput = "output"; @@ -231,6 +233,7 @@ class TrainArgs : public GlobalArgs { inline static const std::string kMaxFileSizeMb = "max-file-size-mb"; inline static const std::string kMaxTotalSizeMb = "max-total-size-mb"; inline static const std::string kParetoFrontier = "pareto-frontier"; + inline static const std::string kSaveAceState = "save-ace-state"; }; } // namespace openzl::cli diff --git a/cli/commands/BUCK b/cli/commands/BUCK index 959351198..09b52db64 100644 --- a/cli/commands/BUCK +++ b/cli/commands/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxlibrary") +load("../../defs.bzl", "zs_cxxlibrary") oncall("data_compression") @@ -23,13 +23,13 @@ zs_cxxlibrary( "cmd_train.h", ], deps = [ - "//data_compression/experimental/zstrong/cli/args:args", - "//data_compression/experimental/zstrong/cli/utils:utils", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers:custom_parsers", - "//data_compression/experimental/zstrong/tools:io", - "//data_compression/experimental/zstrong/tools:logger", - "//data_compression/experimental/zstrong/tools/training:train", - "//data_compression/experimental/zstrong/tools/training/clustering:clustering_graph_trainer", + "../../cpp:openzl_cpp", + "../../custom_parsers:custom_parsers", + "../../tools:io", + "../../tools:logger", + "../../tools/training:train", + "../../tools/training/clustering:clustering_graph_trainer", + "../args:args", + "../utils:utils", ], ) diff --git a/cli/commands/cmd_benchmark.cpp b/cli/commands/cmd_benchmark.cpp index cc9743572..ceb9183fd 100644 --- a/cli/commands/cmd_benchmark.cpp +++ b/cli/commands/cmd_benchmark.cpp @@ -21,8 +21,7 @@ namespace openzl::cli { using namespace openzl::tools::logger; namespace { -constexpr size_t BYTES_TO_MB = 1000 * 1000; -constexpr size_t BYTES_TO_GiB = 1024 * 1024 * 1024; +constexpr size_t BYTES_TO_MB = 1000 * 1000; /// Updates the printed line of benchmarks based on the new parameters provided. /// @return The BenchmarkResult structure containing ratio and speeds @@ -99,8 +98,8 @@ BenchmarkResult runCompressionBenchmarks(const BenchmarkArgs& args) const auto iters = args.numIters; // create compressor, context, and decompression context - auto cctx = - createCompressionContext(*args.compressor, args.level, args.strict); + auto cctx = createCompressionContext( + *args.compressor(), args.level, args.strict); DCtx dctx; // if output is not specified, don't write csv-formatted summary statistics @@ -124,11 +123,6 @@ BenchmarkResult runCompressionBenchmarks(const BenchmarkArgs& args) for (const auto& input : *inputs) { uncompressed_size += input.contentSize(); } - // TODO: Size limitations should be a library feature - if (uncompressed_size > 2 * BYTES_TO_GiB) { - throw std::runtime_error( - "Chunking support is required for compressing inputs larger than 2 GiB. "); - } // get the compressed size const auto compressed = cctx.compress(inputVec); diff --git a/cli/commands/cmd_compress.cpp b/cli/commands/cmd_compress.cpp index 16c1d909f..579d4a8df 100644 --- a/cli/commands/cmd_compress.cpp +++ b/cli/commands/cmd_compress.cpp @@ -6,14 +6,13 @@ #include #include "openzl/cpp/CCtx.hpp" +#include "openzl/cpp/CParam.hpp" #include "openzl/zl_compress.h" #include "tools/io/InputSetStatic.h" #include "tools/io/OutputBuffer.h" #include "tools/logger/Logger.h" -#include "custom_parsers/dependency_registration.h" - #include "cli/args/TrainArgs.h" #include "cli/commands/cmd_compress.h" #include "cli/commands/cmd_train.h" @@ -23,8 +22,7 @@ using namespace openzl::tools; using namespace logger; namespace openzl::cli { -constexpr size_t BYTES_TO_MiB = 1024 * 1024; -constexpr size_t BYTES_TO_GiB = 1024 * 1024 * 1024; +constexpr size_t BYTES_TO_MB = 1000 * 1000; namespace { @@ -64,11 +62,13 @@ int trainCompressorOnSampleFile(CompressArgs& args) std::make_shared(compressorData); // Construct args for training - TrainArgs trainArgs(args); + TrainArgs trainArgs(args, args.compressor()); trainArgs.inputs = std::make_unique(std::move(inputVec)); - trainArgs.output = compressorOutput; - trainArgs.compressor = args.compressor; + trainArgs.output = compressorOutput; + if (args.trainInlineTestLimit) { + trainArgs.trainParams.maxTimeSecs = args.trainInlineTestLimit.value(); + } // Train the compressor int result = cmdTrain(trainArgs); @@ -77,8 +77,9 @@ int trainCompressorOnSampleFile(CompressArgs& args) } // Save the trained compressor - args.compressor = custom_parsers::createCompressorFromSerialized( - compressorOutput->to_input()->contents()); + args.setCompressor( + custom_parsers::createCompressorFromSerialized( + compressorOutput->to_input()->contents())); return result; } @@ -96,7 +97,7 @@ void writeTrace(CCtx& cctx, const CompressArgs& args) throw InvalidArgsException(msg); } for (const auto& [id, stream] : trace.second) { - std::filesystem::path path = dir / (std::to_string(id) + ".sdd"); + std::filesystem::path path = dir / (id + ".sdd"); std::ofstream file{ path, std::ios::binary }; if (!file.is_open()) { Logger::log( @@ -107,8 +108,7 @@ void writeTrace(CCtx& cctx, const CompressArgs& args) } file.write(stream.first.data(), stream.first.size()); if (stream.second != "") { - std::filesystem::path strLensPath = - dir / (std::to_string(id) + ".sdlens"); + std::filesystem::path strLensPath = dir / (id + ".sdlens"); std::ofstream strLensFile{ strLensPath, std::ios::binary }; if (!strLensFile.is_open()) { Logger::log( @@ -129,14 +129,20 @@ int performCompression(const CompressArgs& args) // create compressor and context CCtx cctx; cctx.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); - cctx.refCompressor(*args.compressor); + if (!args.strict) { + cctx.setParameter(CParam::PermissiveCompression, 1); + } + if (!args.storeOnExpansion) { + cctx.setParameter(CParam::StoreOnExpansion, ZL_TernaryParam_disable); + } + cctx.refCompressor(*args.compressor()); if (args.traceOutput) { args.traceOutput->open(); Logger::log( VERBOSE1, "Tracing compression to ", args.traceOutput->name().data()); - cctx.writeTraces(true); + cctx.writeTraces(true, args.streamPreview); } auto& input = *args.input; @@ -144,14 +150,16 @@ int performCompression(const CompressArgs& args) // ahead of time. const auto inputSize = input.size().value(); - // TODO: Size limitations should be a library feature - if (inputSize > 2 * BYTES_TO_GiB) { - throw std::runtime_error( - "Chunking support is required for compressing inputs larger than 2 GiB. "); - } Logger::log(VERBOSE1, "Input size: ", inputSize); - std::string dstBuffer = std::string(ZL_compressBound(inputSize), '\0'); + // When StoreOnExpansion is disabled (train-inline or explicit flag), + // compression may expand data beyond ZL_compressBound(), which assumes the + // anti-inflation guard limits output to input + overhead. Use a generous + // buffer in that case. + size_t const dstCapacity = (args.trainInline || !args.storeOnExpansion) + ? 2 * ZL_compressBound(inputSize) + 1024 + : ZL_compressBound(inputSize); + std::string dstBuffer = std::string(dstCapacity, '\0'); // read the input const auto srcBuffer = input.contents(); @@ -175,16 +183,16 @@ int performCompression(const CompressArgs& args) const auto end = std::chrono::steady_clock::now(); const auto time_ms = std::chrono::duration(end - start); - const auto time_s = time_ms.count() / 1000.0; - const auto inputSize_mib = (double)inputSize / BYTES_TO_MiB; + const auto time_s = time_ms.count() / 1000.0; + const auto inputSize_mb = (double)inputSize / BYTES_TO_MB; - const auto compressionSpeed = inputSize_mib / time_s; + const auto compressionSpeed = inputSize_mb / time_s; // write output dstBuffer.resize(compressedSize); Logger::log_c( INFO, - "Compressed %zu -> %zu (%.2fx) in %.3f ms, %.2f MiB/s", + "Compressed %zu -> %zu (%.2fx) in %.3f ms, %.2f MB/s", srcBuffer.size(), dstBuffer.size(), (double)srcBuffer.size() / dstBuffer.size(), diff --git a/cli/commands/cmd_decompress.cpp b/cli/commands/cmd_decompress.cpp index b67fb859a..894133b5e 100644 --- a/cli/commands/cmd_decompress.cpp +++ b/cli/commands/cmd_decompress.cpp @@ -4,18 +4,63 @@ #include "cli/utils/util.h" #include +#include +#include #include "tools/logger/Logger.h" #include "openzl/cpp/DCtx.hpp" #include "openzl/cpp/Exception.hpp" -#include "openzl/zl_decompress.h" namespace openzl::cli { -constexpr size_t BYTES_TO_MiB = 1024 * 1024; +constexpr size_t BYTES_TO_MB = 1000 * 1000; using namespace tools::logger; +namespace { + +void writeTrace(DCtx& dctx, const DecompressArgs& args) +{ + const auto trace = dctx.getLatestTrace(); + args.traceOutput->write(trace.first); + args.traceOutput->close(); + if (args.traceStreamsDir) { + std::filesystem::path dir{ *args.traceStreamsDir }; + if (!std::filesystem::is_directory(dir)) { + std::string msg = "Streamdump trace directory does not exist: " + + dir.string(); + throw InvalidArgsException(msg); + } + for (const auto& [id, stream] : trace.second) { + std::filesystem::path path = dir / (id + ".sdd"); + std::ofstream file{ path, std::ios::binary }; + if (!file.is_open()) { + Logger::log( + ERRORS, + "Failed to open streamdump file: ", + path.string().c_str()); + continue; + } + file.write(stream.first.data(), stream.first.size()); + if (stream.second != "") { + std::filesystem::path strLensPath = dir / (id + ".sdlens"); + std::ofstream strLensFile{ strLensPath, std::ios::binary }; + if (!strLensFile.is_open()) { + Logger::log( + ERRORS, + "Failed to open streamdump strlens file: ", + strLensPath.string().c_str()); + continue; + } + strLensFile.write(stream.second.data(), stream.second.size()); + } + file.close(); + } + } +} + +} // anonymous namespace + int cmdDecompress(const DecompressArgs& args) { if (!args.output) { @@ -41,22 +86,40 @@ int cmdDecompress(const DecompressArgs& args) DCtx dctx; + if (args.traceOutput) { + args.traceOutput->open(); + Logger::log( + VERBOSE1, + "Tracing decompression to ", + args.traceOutput->name().data()); + dctx.writeTraces(true, args.streamPreview); + } + // decompress - std::string dstBuffer = dctx.decompressSerial(srcBuffer); + std::string dstBuffer; + try { + dstBuffer = dctx.decompressSerial(srcBuffer); + } catch (const openzl::Exception&) { + // if tracing, write the error trace to the output file + if (args.traceOutput) { + writeTrace(dctx, args); + } + throw; + } util::logWarnings(dctx); const auto end = std::chrono::steady_clock::now(); const auto time_ms = std::chrono::duration(end - start); - const auto time_s = time_ms.count() / 1000.0; - const auto decompressedSize_mib = (double)dstBuffer.size() / BYTES_TO_MiB; + const auto time_s = time_ms.count() / 1000.0; + const auto decompressedSize_mb = (double)dstBuffer.size() / BYTES_TO_MB; - const auto compressionSpeed = decompressedSize_mib / time_s; + const auto compressionSpeed = decompressedSize_mb / time_s; Logger::log_c( INFO, - "Decompressed: %2.2f%% (%s -> %s) in %.3f ms, %.2f MiB/s", + "Decompressed: %2.2f%% (%s -> %s) in %.3f ms, %.2f MB/s", (double)srcBuffer.size() / dstBuffer.size() * 100, util::sizeString(srcBuffer.size()).c_str(), util::sizeString(dstBuffer.size()).c_str(), @@ -64,6 +127,11 @@ int cmdDecompress(const DecompressArgs& args) compressionSpeed); output.write(std::move(dstBuffer)); output.close(); + + // if tracing, write the trace to the output file + if (args.traceOutput) { + writeTrace(dctx, args); + } return 0; } diff --git a/cli/commands/cmd_list_profiles.cpp b/cli/commands/cmd_list_profiles.cpp index ba61a913f..9e62b5021 100644 --- a/cli/commands/cmd_list_profiles.cpp +++ b/cli/commands/cmd_list_profiles.cpp @@ -1,4 +1,5 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +#include #include #include "cli/commands/cmd_list_profiles.h" @@ -14,10 +15,19 @@ int cmdListProfiles(const ListProfilesArgs&) { std::stringstream ss; ss << "Available profiles:\n"; + + // Find the maximum profile name length for proper alignment + size_t maxNameLen = 0; + for (auto const& [_, profile] : compressProfiles()) { + maxNameLen = std::max(maxNameLen, profile->name.length()); + } + + // Print each profile with proper spacing for (auto const& [_, profile] : compressProfiles()) { auto const& name = profile->name; auto const& desc = profile->description; - ss << " -| " << name << "\t= " << desc << "\n"; + ss << " -| " << std::left << std::setw(maxNameLen) << name << " = " + << desc << "\n"; } Logger::log(ALWAYS, ss.str()); return 0; diff --git a/cli/commands/cmd_train.cpp b/cli/commands/cmd_train.cpp index 5332dbdda..0d69de795 100644 --- a/cli/commands/cmd_train.cpp +++ b/cli/commands/cmd_train.cpp @@ -81,15 +81,14 @@ int cmdTrain(const TrainArgs& args) auto filteredInputsPtr = limiter.getFilteredInputsPtr(inputs); // Benchmark the untrained compressor - BenchmarkArgs benchmarkArgs(args); - benchmarkArgs.compressor = args.compressor; + BenchmarkArgs benchmarkArgs(args, args.compressor()); benchmarkArgs.inputs = training::inputSetToMultiInputs(*filteredInputsPtr); Logger::log(INFO, "Benchmarking untrained compressor..."); auto untrainedBenchmark = runCompressionBenchmarks(benchmarkArgs); std::vector> serializedTrainedCompressors = openzl::training::train( - benchmarkArgs.inputs, *args.compressor, args.trainParams); + benchmarkArgs.inputs, *args.compressor(), args.trainParams); poly::optional resultsCsv; if (args.trainParams.paretoFrontier) { @@ -110,9 +109,9 @@ int cmdTrain(const TrainArgs& args) for (size_t i = 0; i < serializedTrainedCompressors.size(); ++i) { auto& serializedTrainedCompressor = serializedTrainedCompressors[i]; // Benchmark the trained compressor - benchmarkArgs.compressor = + benchmarkArgs.setCompressor( custom_parsers::createCompressorFromSerialized( - *serializedTrainedCompressor); + *serializedTrainedCompressor)); if (!args.trainParams.paretoFrontier) { Logger::log(INFO, "Benchmarking trained compressor..."); } diff --git a/cli/tests/BUCK b/cli/tests/BUCK index 30705d289..921d1e9ce 100644 --- a/cli/tests/BUCK +++ b/cli/tests/BUCK @@ -3,34 +3,47 @@ load("@fbcode_macros//build_defs:custom_unittest.bzl", "custom_unittest") load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary") load("@fbcode_macros//build_defs:python_library.bzl", "python_library") +load("../../defs.bzl", "zs_unittest") oncall("data_compression") +# @autodeps-skip + +zs_unittest( + name = "util_test", + srcs = ["unittest/UtilTest.cpp"], + deps = [ + "../../cpp:openzl_cpp", + "../../tools:logger", + "../utils:utils", + ], +) + custom_unittest( name = "serial_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "SerialTest.test_compress_decompress", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) custom_unittest( - name = "csv_train_inline_test", + name = "u16_train_inline_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", - "CsvTrainInlineTest.test_train_inline", + "$(location ..:zli)", + "U16TrainInlineTest.test_train_inline", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -38,13 +51,13 @@ custom_unittest( name = "ace_train_inline_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "AceTrainInlineTest.test_train_inline", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -52,13 +65,13 @@ custom_unittest( name = "csv_default_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "CsvTest.test_train_compress_decompress", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -66,13 +79,13 @@ custom_unittest( name = "csv_greedy_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "CsvGreedyTest.test_train_compress_decompress", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -80,13 +93,13 @@ custom_unittest( name = "csv_full_split_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "CsvFullSplitTest.test_train_compress_decompress", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -94,13 +107,55 @@ custom_unittest( name = "csv_bottom_up_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "CsvBottomUpTest.test_train_compress_decompress", ], type = "simple", deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "csv_chunked_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "CsvChunkedTest.test_train_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "sddl2_chunked_train_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "Sddl2ChunkedTrainTest.test_train_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "parquet_chunked_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "ParquetChunkedTest.test_chunk_size_affects_output", + ], + type = "simple", + deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -108,13 +163,13 @@ custom_unittest( name = "parquet_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "ParquetTest.test_train_compress_decompress", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -122,13 +177,13 @@ custom_unittest( name = "csv_alternative_separator_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "CsvAlternativeSeparatorTest.test_compress_decompress", ], type = "simple", deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -136,13 +191,125 @@ custom_unittest( name = "benchmark_csv_compression_test", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", "BenchmarkCsvCompressionTest.test_benchmark", ], type = "simple", deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "numeric_segmentation_roundtrip_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "NumericSegmentationTest.test_numeric_profiles_roundtrip", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "numeric_segmentation_chunk_size_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "NumericSegmentationTest.test_numeric_profiles_with_chunk_size", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "serial_segmentation_default_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "SerialSegmentationTest.test_serial_default_chunk_size", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "serial_segmentation_chunk_size_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "SerialSegmentationTest.test_serial_with_chunk_size", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "strict_mode_permissive_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "StrictModeTest.test_permissive_mode_succeeds", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "strict_mode_fails_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "StrictModeTest.test_strict_mode_fails", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "u8_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "U8Test.test_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "u8_train_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "U8TrainTest.test_train_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -150,12 +317,40 @@ custom_unittest( name = "all_integration_tests", command = [ "$(location :integration_test_bin)", - "$(location //data_compression/experimental/zstrong/cli:zli)", + "$(location ..:zli)", ], type = "simple", deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "chunk_size_binary_suffix_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "ChunkSizeBinarySuffixTest.test_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "invalid_chunk_size_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "InvalidChunkSizeTest.test_invalid_suffix_rejected", + ], + type = "simple", + deps = [ + "..:zli", ":integration_test_bin", - "//data_compression/experimental/zstrong/cli:zli", ], ) @@ -167,6 +362,7 @@ python_binary( deps = [ ":abstract_compression_test", ":command_utils", + ":file_utils", ], ) @@ -178,6 +374,7 @@ python_library( deps = [ ":command_utils", ":file_utils", + "//openzl:openzl_py", ], ) @@ -186,7 +383,7 @@ python_library( srcs = ["command_utils.py"], base_module = "", resources = { - "//data_compression/experimental/zstrong/cli:zli": "bin/zli", + "..:zli": "bin/zli", }, typing = True, deps = [], @@ -196,8 +393,92 @@ python_library( name = "file_utils", srcs = ["file_utils.py"], base_module = "", - resources = glob(["sample_files/**/*"]), + resources = glob(["sample_files/**/*"]) + glob(["profile_files/**/*"]), typing = True, deps = [ ], ) + +custom_unittest( + name = "trace_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "TraceTest.test_compress_decompress_with_trace", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "ml_selector_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "MLSelectorTest.test_train_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "ml_dynamic_successor_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "MLDynamicSuccessorTest.test_dynamic_ml_successors", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "ml_dynamic_successor_compression_ratio_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "MLDynamicSuccessorTest.test_compression_ratios", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "sddl2_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "SDDL2TrainTest.test_train_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) + +custom_unittest( + name = "csv_save_ace_state_test", + command = [ + "$(location :integration_test_bin)", + "$(location ..:zli)", + "CsvSaveAceStateTest.test_train_compress_decompress", + ], + type = "simple", + deps = [ + "..:zli", + ":integration_test_bin", + ], +) diff --git a/cli/tests/CMakeLists.txt b/cli/tests/CMakeLists.txt index ab7f3dd3c..8ffdfcd7b 100644 --- a/cli/tests/CMakeLists.txt +++ b/cli/tests/CMakeLists.txt @@ -10,3 +10,14 @@ if(NOT COMMAND add_zs_test) endif() enable_testing() + +if (BUILD_TESTS) + add_zs_test(cli_util_test unittest/UtilTest.cpp) + target_link_libraries(cli_util_test PRIVATE utils) + target_include_directories(cli_util_test PRIVATE + ${PROJECT_BINARY_DIR}/include + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}) + apply_openzl_compile_options_to_target(cli_util_test) +endif() diff --git a/cli/tests/README.md b/cli/tests/README.md index 634f29dcf..eac68bb67 100644 --- a/cli/tests/README.md +++ b/cli/tests/README.md @@ -104,22 +104,22 @@ All tests can be run using the following command: (Note – this gives a single pass/fail result) ```bash -buck2 test //data_compression/experimental/zstrong/cli/tests:all_integration_tests +buck2 test cli/tests:all_integration_tests ``` Specific tests can be run using the following commands referencing the individual targets: ``` -buck2 test //data_compression/experimental/zstrong/cli/tests:zstd_test -buck2 test //data_compression/experimental/zstrong/cli/tests:csv_default_test -buck2 test //data_compression/experimental/zstrong/cli/tests:csv_greedy_test -buck2 test //data_compression/experimental/zstrong/cli/tests:csv_full_split_test -buck2 test //data_compression/experimental/zstrong/cli/tests:csv_train_inline_test -buck2 test //data_compression/experimental/zstrong/cli/tests:parquet_test +buck2 test cli/tests:zstd_test +buck2 test cli/tests:csv_default_test +buck2 test cli/tests:csv_greedy_test +buck2 test cli/tests:csv_full_split_test +buck2 test cli/tests:csv_train_inline_test +buck2 test cli/tests:parquet_test ``` To get the stdout, use buck2 run instead of buck2 test, eg ``` -buck2 run //data_compression/experimental/zstrong/cli/tests:all_integration_tests +buck2 run cli/tests:all_integration_tests ``` diff --git a/cli/tests/abstract_compression_test.py b/cli/tests/abstract_compression_test.py index 188ec03f4..16375ac6e 100644 --- a/cli/tests/abstract_compression_test.py +++ b/cli/tests/abstract_compression_test.py @@ -14,7 +14,6 @@ execute_train, execute_train_inline, ) - from file_utils import ( file_contents_match, get_sample_files_from_dir, @@ -229,12 +228,125 @@ def train_compress_decompress(self) -> None: uncompressed_dir=input_dir_path(self.input_dir_name), trained_compressor_path=self.compressor_info.compressor_str, trainer_name=self.trainer_name, + extra_args=self.extra_args, ) # Compress and decompress using the trained compressor self.compress_and_decompress_samples() +class _MLBaseTest(_TrainBaseTest): + """ + Abstract base class for ML compression tests with training. + """ + + def setUp(self) -> None: + super().setUp() + # Create the serialized compressors folder once per test + self.serialized_compressors_folder = self.get_serialized_compressors() + + def get_serialized_compressors(self) -> str: + """ + Generate serialized compressors using static successors from numeric-ml-selector-64 profile. + + Returns: + str: Path to the temporary folder containing the serialized .cbor files + """ + import openzl.ext as zl + + def field_lz() -> bytes: + compressor = zl.Compressor() + graph = zl.graphs.FieldLz()(compressor) + compressor.select_starting_graph(graph) + return compressor.serialize() + + def delta_field_lz() -> bytes: + compressor = zl.Compressor() + graph = zl.graphs.FieldLz()(compressor) + graph = zl.nodes.DeltaInt()(compressor, graph) + compressor.select_starting_graph(graph) + return compressor.serialize() + + def range_pack() -> bytes: + compressor = zl.Compressor() + graph = zl.nodes.RangePack()(compressor, successor=zl.graphs.FieldLz()) + compressor.select_starting_graph(graph) + return compressor.serialize() + + def range_pack_zstd() -> bytes: + compressor = zl.Compressor() + graph = zl.nodes.RangePack()(compressor, successor=zl.graphs.Zstd()) + compressor.select_starting_graph(graph) + return compressor.serialize() + + def tokenize_delta_fieldlz() -> bytes: + compressor = zl.Compressor() + delta_fieldlz = zl.nodes.DeltaInt()(compressor, zl.graphs.FieldLz()) + tokenize = zl.nodes.Tokenize(type=zl.Type.Numeric, sort=True) + graph = tokenize( + compressor, + alphabet=delta_fieldlz, + indices=zl.graphs.FieldLz(), + ) + compressor.select_starting_graph(graph) + return compressor.serialize() + + def zstd() -> bytes: + compressor = zl.Compressor() + graph = zl.graphs.Zstd()(compressor) + compressor.select_starting_graph(graph) + return compressor.serialize() + + compressors = { + "00_field_lz": field_lz(), + "01_range_pack": range_pack(), + "02_range_pack_zstd": range_pack_zstd(), + "03_delta_field_lz": delta_field_lz(), + "04_tokenize_delta_fieldlz": tokenize_delta_fieldlz(), + "05_zstd": zstd(), + } + + # Create a temporary directory for the serialized compressors + compressor_dir = tempfile.mkdtemp() + self.addCleanup(lambda: shutil.rmtree(compressor_dir, True)) + + for name, data in compressors.items(): + with open(os.path.join(compressor_dir, f"{name}.cbor"), "wb") as f: + f.write(data) + + return compressor_dir + + @property + def input_dir_name(self) -> str: + """ + Return the directory name for input sample files. + + This property determines where sample files are located: + cli/tests/sample_files/ml_selector/ + + Note: sample files are generated using the following command from + tutorial in examples/ml_selector and taking the first file: + + ``` + buck2 run @//mode/opt examples/ml_selector:generate_data -- /tmp/ml_test_samples + ``` + + Returns: + "ml_selector" as the input directory name + """ + return "ml_selector" + + @property + def compressor_profile_name(self) -> str: + """ + Return the profile name to use for compression/training. + + Returns: + "numeric-ml-selector-64" as the profile name + """ + return "numeric-ml-selector-64" + + class _CsvBaseTest(_TrainBaseTest): """ Abstract base class for CSV compression tests with training. diff --git a/cli/tests/cli_integration_tests.py b/cli/tests/cli_integration_tests.py index dcb45c855..f06a4fc02 100644 --- a/cli/tests/cli_integration_tests.py +++ b/cli/tests/cli_integration_tests.py @@ -1,17 +1,29 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. +import os +import shutil +import struct import sys +import tempfile import unittest import command_utils - from abstract_compression_test import ( _BenchmarkBaseTest, _CompressDecompressBaseTest, _CsvBaseTest, + _MLBaseTest, _TrainBaseTest, _TrainInlineBaseTest, ) +from command_utils import ( + CompressorInfo, + CompressorType, + execute_compress, + execute_decompress, + execute_train, +) +from file_utils import file_contents_match, input_dir_path, profile_dir_path class SerialTest(_CompressDecompressBaseTest): @@ -106,6 +118,24 @@ def test_train_compress_decompress(self): self.train_compress_decompress() +class CsvSaveAceStateTest(_CsvBaseTest): + """ + Test case for CSV training with --save-ace-state flag. + + Verifies that training with --save-ace-state produces a compressor + that correctly compresses and decompresses files. + """ + + def test_train_compress_decompress(self): + execute_train( + compressor_info=self.training_compressor_info, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=self.compressor_info.compressor_str, + extra_args="--save-ace-state", + ) + self.compress_and_decompress_samples() + + class CsvFullSplitTest(_CsvBaseTest): """ Test case for CSV training and compression using the full-split trainer. @@ -164,6 +194,261 @@ def test_train_compress_decompress(self): self.train_compress_decompress() +class CsvChunkedTest(_CsvBaseTest): + """ + Test case for CSV training and compression using the trainer with chunking. + + This test demonstrates the train-compress-decompress workflow for CSV files + using including chunking the input data. + + Sample files are located in cli/tests/sample_files/csv/ + Output files are stored in {output_dir_path} + """ + + @property + def extra_args(self) -> str | None: + return "--chunk-size 1M" + + def test_train_compress_decompress(self): + """ + Test the train, compress, and decompress workflow for CSV files using the greedy trainer. + + This test: + 1. Trains a compressor on the CSV files in cli/tests/sample_files/csv/ using the greedy trainer + 2. Saves the trained compressor to {output_dir_path}/trained_compressor.zlc + 3. Uses the trained compressor to compress and decompress the CSV files + 4. Verifies that the decompressed files match the originals + """ + self.train_compress_decompress() + + +class Sddl2ChunkedTrainTest(unittest.TestCase): + k_blocks = 12 + k_entries_per_block = 2048 + + def setUp(self) -> None: + self.output_dir_path = tempfile.mkdtemp() + self.addCleanup(lambda: shutil.rmtree(self.output_dir_path, True)) + + self.input_dir_path = os.path.join(self.output_dir_path, "input") + os.makedirs(self.input_dir_path) + + self.description_path = os.path.join( + self.output_dir_path, "repeated_blocks.sddl" + ) + self.sample_path = os.path.join(self.input_dir_path, "sample.bin") + self.trained_compressor_path = os.path.join( + self.output_dir_path, "trained_compressor.zlc" + ) + self.compressed_path = os.path.join(self.output_dir_path, "sample.zl") + self.decompressed_path = os.path.join(self.output_dir_path, "sample.out") + + with open(self.description_path, "w", encoding="utf-8") as handle: + handle.write(self._build_description()) + + with open(self.sample_path, "wb") as handle: + handle.write(self._build_sample()) + + def _build_description(self) -> str: + lines = [ + "record Header() {", + " magic: UInt32LE,", + " flag: Byte,", + "}", + "", + "record Entry(flag) {", + " id: UInt32LE,", + " when flag {", + " optional: UInt16LE,", + " },", + " required: UInt64LE,", + "}", + "", + "header: Header", + "expect header.magic == 0xdeadbeef", + ] + + for block in range(self.k_blocks): + lines.append( + f"block{block}: Entry(header.flag)[{self.k_entries_per_block}]" + ) + + return "\n".join(lines) + "\n" + + def _build_sample(self) -> bytes: + payload = bytearray() + payload += struct.pack(" str | None: + """Pass the serialized compressor folder via --profile-arg.""" + return f"--profile-arg {self.serialized_compressors_folder}" + + def test_dynamic_ml_successors(self): + """ + Test train_compress_decompress works when there is ml selector successor in compressor. + """ + default_compressor_info = CompressorInfo( + compressor_str=self.compressor_profile_name, + compressor_type=CompressorType.PROFILE, + ) + + # Train ml selector and save trained compressor + execute_train( + compressor_info=default_compressor_info, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=os.path.join( + self.serialized_compressors_folder, "trained.cbor" + ), + ) + + # Train ml selector that has a ml selector as a successor + execute_train( + compressor_info=default_compressor_info, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=self.compressor_info.compressor_str, + trainer_name=self.trainer_name, + extra_args=self.extra_args, + ) + + self.compress_and_decompress_samples() + + def test_compression_ratios(self): + """ + Create trained compressor using dynamic successors that match static successors in numeric-ml-selector-64 profile. + Resulting compressed files should have the same compression ratio as directly using the numeric-ml-selector-64 profile. + """ + from file_utils import file_contents_match + + default_compressor_info = CompressorInfo( + compressor_str=self.compressor_profile_name, + compressor_type=CompressorType.PROFILE, + ) + + # Train with static successors (no extra_args) + static_trained_path = os.path.join(self.output_dir_path, "static_trained.zlc") + execute_train( + compressor_info=default_compressor_info, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=static_trained_path, + trainer_name=self.trainer_name, + extra_args=None, + ) + + # Train with dynamic successors (with extra_args) + dynamic_trained_path = os.path.join(self.output_dir_path, "dynamic_trained.zlc") + execute_train( + compressor_info=default_compressor_info, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=dynamic_trained_path, + trainer_name=self.trainer_name, + extra_args=self.extra_args, + ) + + # Compress samples with both trained compressors and compare outputs + static_compressor_info = CompressorInfo( + compressor_str=static_trained_path, + compressor_type=CompressorType.FILE, + ) + dynamic_compressor_info = CompressorInfo( + compressor_str=dynamic_trained_path, + compressor_type=CompressorType.FILE, + ) + + for sample in self.input_samples: + static_compressed_path = sample.compressed_file_path + "_static" + execute_compress( + file_to_compress_path=sample.orig_file_path, + compressor_info=static_compressor_info, + compressed_file_path=static_compressed_path, + extra_args=None, + ) + + dynamic_compressed_path = sample.compressed_file_path + "_dynamic" + execute_compress( + file_to_compress_path=sample.orig_file_path, + compressor_info=dynamic_compressor_info, + compressed_file_path=dynamic_compressed_path, + extra_args=None, + ) + + self.assertTrue( + file_contents_match(static_compressed_path, dynamic_compressed_path), + f"Compressed files differ for {sample.orig_file_path}: " + f"static={os.path.getsize(static_compressed_path)} bytes, " + f"dynamic={os.path.getsize(dynamic_compressed_path)} bytes", + ) + + print("Compressed files are identical between static and dynamic successors.") + + +class MLSelectorTest(_MLBaseTest): + """ + Test case for ml selector and compression using the trainer. + Sample files are located in cli/tests/sample_files/ml_selector/ + """ + + def test_train_compress_decompress(self): + """ + Test the train, compress, and decompress workflow for numeric 64 bit files using the ml selector trainer. + + This test: + 1. Trains a compressor on files in cli/tests/sample_files/ml_selector/ + 2. Saves the trained compressor to {output_dir_path}/trained_compressor.zlc + 3. Uses the trained compressor to compress and decompress the files + 4. Verifies that the decompressed files match the originals + """ + self.train_compress_decompress() + + class ParquetTest(_TrainBaseTest): """ Parquet compression tests with training. @@ -206,14 +491,88 @@ def test_train_compress_decompress(self): self.train_compress_decompress() -class CsvTrainInlineTest(_TrainInlineBaseTest): +class ParquetChunkedTest(ParquetTest): + """ + Verify that --chunk-size is wired through to the parquet profile. + + Trains twice — once with the default chunk size and once with an explicit + --chunk-size 2M — then checks that the serialized compressors differ + (the chunk size is baked into the profile) and that both round-trip + correctly. + """ + + def test_chunk_size_affects_output(self): + profile = CompressorInfo( + compressor_str=self.compressor_profile_name, + compressor_type=CompressorType.PROFILE, + ) + + default_trained = os.path.join(self.output_dir_path, "default.zlc") + execute_train( + compressor_info=profile, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=default_trained, + ) + + chunked_trained = os.path.join(self.output_dir_path, "chunked.zlc") + execute_train( + compressor_info=profile, + uncompressed_dir=input_dir_path(self.input_dir_name), + trained_compressor_path=chunked_trained, + extra_args="--chunk-size 2M", + ) + + # Compare bytewise rather than by file size: ACE training has + # structural non-determinism that can produce two trained compressors + # of identical byte count even when their contents differ. The + # invariant we actually care about is that the chunk-size parameter + # was baked into the serialized compressor — which guarantees the + # *bytes* differ, but not the size. + with open(default_trained, "rb") as f: + default_bytes = f.read() + with open(chunked_trained, "rb") as f: + chunked_bytes = f.read() + self.assertNotEqual( + default_bytes, + chunked_bytes, + "Trained compressors should differ when --chunk-size is changed", + ) + + sample = self.input_samples[0] + for trained_path, label in [ + (default_trained, "default"), + (chunked_trained, "chunked"), + ]: + trained = CompressorInfo( + compressor_str=trained_path, + compressor_type=CompressorType.FILE, + ) + compressed = sample.compressed_file_path + f".{label}" + execute_compress( + file_to_compress_path=sample.orig_file_path, + compressor_info=trained, + compressed_file_path=compressed, + extra_args=None, + ) + decompressed = compressed + ".out" + execute_decompress( + compressed_file_path=compressed, + decompressed_file_path=decompressed, + ) + self.assertTrue( + file_contents_match(sample.orig_file_path, decompressed), + f"Round-trip failed for {label} path", + ) + + +class U16TrainInlineTest(_TrainInlineBaseTest): @property def input_file_name(self) -> str: - return "csv/input_experiments.csv" + return "u16/zigzag_1000.bin" @property def compressor_profile_name(self) -> str: - return "csv" + return "le-u16" def test_train_inline(self) -> None: self.train_inline() @@ -253,6 +612,65 @@ def test_compress_decompress(self): self.compress_and_decompress_samples() +class U8Test(_CompressDecompressBaseTest): + """ + Test case for u8 profile compression and decompression. + + This test verifies that the u8 (unsigned 8-bit) profile + can compress and decompress 8-bit data correctly. + Sample files are located in cli/tests/sample_files/u8/ + """ + + @property + def input_dir_name(self) -> str: + return "u8" + + @property + def compressor_profile_name(self) -> str: + return "u8" + + def test_compress_decompress(self): + """ + Test that u8 profile can compress and decompress 8-bit data. + + This test: + 1. Compresses all files in cli/tests/sample_files/u8/ + 2. Decompresses the compressed files + 3. Verifies that the decompressed files match the originals + """ + self.compress_and_decompress_samples() + + +class U8TrainTest(_TrainBaseTest): + """ + Test case for u8 profile with ACE training. + + This test verifies that the u8 profile can be trained using ACE + (Automated Compressor Explorer) and that the trained compressor works correctly. + Sample files are located in cli/tests/sample_files/u8/ + """ + + @property + def input_dir_name(self) -> str: + return "u8" + + @property + def compressor_profile_name(self) -> str: + return "u8" + + def test_train_compress_decompress(self): + """ + Test the train, compress, and decompress workflow for u8 profile. + + This test: + 1. Trains a compressor on the u8 files in cli/tests/sample_files/u8/ using ACE + 2. Saves the trained compressor to {output_dir_path}/trained_compressor.zlc + 3. Uses the trained compressor to compress and decompress the u8 files + 4. Verifies that the decompressed files match the originals + """ + self.train_compress_decompress() + + class BenchmarkCsvCompressionTest(_BenchmarkBaseTest): """ Test case for benchmarking compression. @@ -270,13 +688,472 @@ def test_benchmark(self): self.benchmark() +class TraceTest(_CompressDecompressBaseTest): + """ + Test case for compression and decompression with tracing enabled. + + This test verifies that the --trace and --trace-streams-dir flags work + correctly during compress and decompress without crashing, and that + trace output files are actually created. Tests that need full stream + traces must opt out of StoreOnExpansion explicitly. + """ + + @property + def input_dir_name(self) -> str: + return "trace" + + @property + def compressor_profile_name(self) -> str: + return "csv" + + def test_compress_decompress_with_trace(self): + """ + Test that compress and decompress with --trace flags produce trace files + and roundtrip correctly. + + This test: + 1. Compresses a CSV sample with --trace, --trace-streams-dir, and + --no-store-on-expansion + 2. Asserts the compress trace CBOR file exists and is non-empty + 3. Decompresses with --trace + 4. Asserts the decompress trace CBOR file exists and is non-empty + 5. Verifies the decompressed file matches the original (roundtrip check) + """ + sample = self.input_samples[0] + + compress_trace_path = os.path.join(self.output_dir_path, "compress_trace.cbor") + decompress_trace_path = os.path.join( + self.output_dir_path, "decompress_trace.cbor" + ) + streams_dir = os.path.join(self.output_dir_path, "streams") + os.makedirs(streams_dir, exist_ok=True) + + execute_compress( + file_to_compress_path=sample.orig_file_path, + compressor_info=self.compressor_info, + compressed_file_path=sample.compressed_file_path, + extra_args=( + f"--trace {compress_trace_path} " + f"--trace-streams-dir {streams_dir} " + "--no-store-on-expansion" + ), + ) + + self.assertTrue( + os.path.exists(sample.compressed_file_path), + "Compressed file was not created", + ) + self.assertTrue( + os.path.exists(compress_trace_path), + "Compress trace file was not created", + ) + self.assertGreater( + os.path.getsize(compress_trace_path), + 0, + "Compress trace file is empty", + ) + self.assertGreater( + len(os.listdir(streams_dir)), + 0, + "Compress streams dir is empty", + ) + + decompress_streams_dir = os.path.join( + self.output_dir_path, "decompress_streams" + ) + os.makedirs(decompress_streams_dir, exist_ok=True) + + execute_decompress( + compressed_file_path=sample.compressed_file_path, + decompressed_file_path=sample.decompressed_file_path, + extra_args=f"--trace {decompress_trace_path} --trace-streams-dir {decompress_streams_dir}", + ) + + self.assertTrue( + os.path.exists(decompress_trace_path), + "Decompress trace file was not created", + ) + self.assertGreater( + os.path.getsize(decompress_trace_path), + 0, + "Decompress trace file is empty", + ) + self.assertGreater( + len(os.listdir(decompress_streams_dir)), + 0, + "Decompress streams dir is empty", + ) + + self.assertTrue( + sample.original_matches_decompressed, + f"Decompressed file does not match original: {sample.orig_file_path}", + ) + + def test_trace_does_not_change_compressed_output(self): + """ + Test that compression tracing does not change the compressed bytes. + + This uses a checked-in random sample that exercises StoreOnExpansion + for the serial profile. The traced output should match the default + output, not the --no-store-on-expansion output. + """ + random_input_path = os.path.join(input_dir_path("u8"), "random_u8.bin") + + compressor_info = CompressorInfo( + compressor_str="serial", + compressor_type=CompressorType.PROFILE, + ) + plain_compressed_path = os.path.join( + self.output_dir_path, "plain_random_input.zl" + ) + traced_compressed_path = os.path.join( + self.output_dir_path, "traced_random_input.zl" + ) + no_store_compressed_path = os.path.join( + self.output_dir_path, "no_store_random_input.zl" + ) + trace_path = os.path.join(self.output_dir_path, "random_trace.cbor") + streams_dir = os.path.join(self.output_dir_path, "random_trace_streams") + os.makedirs(streams_dir, exist_ok=True) + + execute_compress( + file_to_compress_path=random_input_path, + compressor_info=compressor_info, + compressed_file_path=plain_compressed_path, + extra_args=None, + ) + execute_compress( + file_to_compress_path=random_input_path, + compressor_info=compressor_info, + compressed_file_path=traced_compressed_path, + extra_args=f"--trace {trace_path} --trace-streams-dir {streams_dir}", + ) + execute_compress( + file_to_compress_path=random_input_path, + compressor_info=compressor_info, + compressed_file_path=no_store_compressed_path, + extra_args="--no-store-on-expansion", + ) + + self.assertFalse( + file_contents_match(plain_compressed_path, no_store_compressed_path), + "Test input did not exercise StoreOnExpansion", + ) + + self.assertTrue( + file_contents_match(plain_compressed_path, traced_compressed_path), + "Compression tracing changed the compressed output", + ) + self.assertTrue( + os.path.exists(trace_path), + "Compress trace file was not created", + ) + self.assertGreater( + os.path.getsize(trace_path), + 0, + "Compress trace file is empty", + ) + + +class NumericSegmentationTest(unittest.TestCase): + """ + Test case for numeric profile auto-segmentation via the CLI. + + Generates binary numeric data, compresses with numeric profiles, + decompresses, and verifies round-trip correctness. Tests multiple + element widths and chunk sizes to exercise the segmenter. + """ + + def setUp(self) -> None: + import shutil + import struct + import tempfile + + self.tmpdir = tempfile.mkdtemp() + self.addCleanup(lambda: shutil.rmtree(self.tmpdir, True)) + + # Generate ~2MB of data per profile so --chunk-size 1M triggers + # multi-chunk segmentation (2 chunks). + self.test_files: dict[str, dict] = {} + target_bytes = 2 * 1000 * 1000 # 2 MB + configs = [ + ("u8", "B", 1, "u8"), + ("le-u16", "H", 2, "le-u16"), + ("le-i32", "i", 4, "le-i32"), + ("le-u64", "Q", 8, "le-u64"), + ] + for profile, fmt, elt_size, name in configs: + n = target_bytes // elt_size + max_val = 2 ** (elt_size * 8) + data = struct.pack(f"<{n}{fmt}", *[i % max_val for i in range(n)]) + path = os.path.join(self.tmpdir, f"{name}.bin") + with open(path, "wb") as f: + f.write(data) + self.test_files[name] = { + "path": path, + "profile": profile, + "size": len(data), + } + + def _round_trip( + self, profile: str, input_path: str, extra_args: str | None = None + ) -> None: + """Compress, decompress, and verify round-trip for a single file.""" + compressed_path = input_path + ".zl" + decompressed_path = input_path + ".rt" + + compressor_info = CompressorInfo( + compressor_str=profile, + compressor_type=CompressorType.PROFILE, + ) + execute_compress( + file_to_compress_path=input_path, + compressor_info=compressor_info, + compressed_file_path=compressed_path, + extra_args=extra_args, + ) + execute_decompress( + compressed_file_path=compressed_path, + decompressed_file_path=decompressed_path, + ) + from file_utils import file_contents_match + + self.assertTrue( + file_contents_match(input_path, decompressed_path), + f"Round-trip failed for profile {profile} on {input_path}", + ) + + def test_numeric_profiles_roundtrip(self) -> None: + """Test that all numeric profiles compress and decompress correctly.""" + for name, info in self.test_files.items(): + with self.subTest(profile=name): + self._round_trip(info["profile"], info["path"]) + + def test_numeric_profiles_with_chunk_size(self) -> None: + """Test numeric profiles with --chunk-size 1M on 2MB data (forces 2 chunks).""" + for name, info in self.test_files.items(): + with self.subTest(profile=name): + self._round_trip( + info["profile"], + info["path"], + extra_args="--chunk-size 1M", + ) + + +class SerialSegmentationTest(unittest.TestCase): + """ + Test case for the serial profile's auto-segmentation via the CLI. + + Generates raw byte data, compresses with the `serial` profile, decompresses, + and verifies round-trip correctness with and without --chunk-size. + """ + + def setUp(self) -> None: + import shutil + import tempfile + + self.tmpdir = tempfile.mkdtemp() + self.addCleanup(lambda: shutil.rmtree(self.tmpdir, True)) + + # Generate ~2MB of data so --chunk-size 1M triggers multi-chunk + # segmentation (2 chunks). + target_bytes = 2 * 1000 * 1000 # 2 MB + data = bytes((i % 256) for i in range(target_bytes)) + self.input_path: str = os.path.join(self.tmpdir, "serial.bin") + with open(self.input_path, "wb") as f: + f.write(data) + + def _round_trip(self, extra_args: str | None = None) -> None: + compressed_path = self.input_path + ".zl" + decompressed_path = self.input_path + ".rt" + + compressor_info = CompressorInfo( + compressor_str="serial", + compressor_type=CompressorType.PROFILE, + ) + execute_compress( + file_to_compress_path=self.input_path, + compressor_info=compressor_info, + compressed_file_path=compressed_path, + extra_args=extra_args, + ) + execute_decompress( + compressed_file_path=compressed_path, + decompressed_file_path=decompressed_path, + ) + from file_utils import file_contents_match + + self.assertTrue( + file_contents_match(self.input_path, decompressed_path), + f"Round-trip failed for serial profile on {self.input_path}", + ) + + def test_serial_default_chunk_size(self) -> None: + """Default chunk size (16 MiB) on 2MB data → single-chunk segmentation.""" + self._round_trip() + + def test_serial_with_chunk_size(self) -> None: + """--chunk-size 1M on 2MB data forces multi-chunk segmentation.""" + self._round_trip(extra_args="--chunk-size 1M") + + +class StrictModeTest(_CompressDecompressBaseTest): + """ + Test case for strict mode behavior. + + This test verifies that: + 1. By default (permissive mode), compression succeeds even when using a + mismatched profile (e.g., le-u64 profile on data not divisible by 8) + 2. With --strict flag, compression fails on mismatched data + + The test uses the le-u64 profile (64-bit little-endian unsigned integers) + to compress data whose size is NOT a multiple of 8 bytes. This should: + - Succeed in permissive mode (default) by falling back to generic compression + - Fail in strict mode because the input size doesn't match 64-bit alignment + """ + + @property + def input_dir_name(self) -> str: + return "serial" + + @property + def compressor_profile_name(self) -> str: + # Use le-u64 profile which expects input size to be multiple of 8 bytes + return "le-u64" + + def test_permissive_mode_succeeds(self): + """ + Test that compression succeeds in permissive mode (default). + + This verifies that when using a mismatched profile (le-u64 on non-aligned data), + the compression falls back to generic compression and succeeds. + """ + self.compress_and_decompress_samples() + + def test_strict_mode_fails(self): + """ + Test that compression fails in strict mode with mismatched data. + + This verifies that when using --strict flag with a mismatched profile, + the compression fails instead of falling back to generic compression. + + Note: Only files whose size is NOT a multiple of 8 AND larger than + a minimum threshold will trigger the failure. Very small files may + be handled differently by the compression pipeline. + """ + from command_utils import execute_command + + failed_count = 0 + for sample in self.input_samples: + # Attempt compression with --strict flag + cflag = self.compressor_info.compressor_type.value + cstr = self.compressor_info.compressor_str + + compress_args = f"compress {sample.orig_file_path} --{cflag} {cstr} -o {sample.compressed_file_path} --strict" + + result = execute_command(compress_args) + + if result != 0: + failed_count += 1 + print(f"Strict mode correctly failed for {sample.orig_file_path}") + + # At least one file should fail in strict mode + self.assertGreater( + failed_count, + 0, + "Expected at least one compression to fail in strict mode", + ) + + print( + f"Verified that strict mode fails: {failed_count} file(s) failed as expected" + ) + + +class ChunkSizeBinarySuffixTest(_CompressDecompressBaseTest): + """ + Test that --chunk-size accepts binary suffixes (KiB, MiB, etc.) + through the checked integer parsing. + """ + + @property + def input_dir_name(self) -> str: + return "serial" + + @property + def compressor_profile_name(self) -> str: + return "serial" + + @property + def extra_args(self) -> str | None: + return "--chunk-size 512KiB" + + def test_compress_decompress(self): + self.compress_and_decompress_samples() + + +class InvalidChunkSizeTest(unittest.TestCase): + """ + Test that --chunk-size with an invalid suffix is rejected by the CLI. + """ + + def setUp(self) -> None: + self.tmpdir = tempfile.mkdtemp() + self.addCleanup(lambda: shutil.rmtree(self.tmpdir, True)) + + def test_invalid_suffix_rejected(self): + sample_dir = os.path.join(self.tmpdir, "input") + os.makedirs(sample_dir) + sample_path = os.path.join(sample_dir, "dummy.bin") + with open(sample_path, "wb") as f: + f.write(b"\x00" * 1024) + + compressed_path = os.path.join(self.tmpdir, "out.zl") + result = command_utils.execute_command( + f"compress {sample_path} --profile serial " + f"-o {compressed_path} --chunk-size 1XYZ" + ) + self.assertNotEqual(result, 0, "CLI should reject invalid suffix 'XYZ'") + + +class SDDL2TrainTest(_TrainBaseTest): + """ + Test case for SDDL2 compression, decompression, and training using the clustering trainer. + + This test verifies that a simple format described by SDDL2 can be trained, + compressed and decompressed correctly. The format includes a header + with an array of entries with a mix of fixed and optional fields. + """ + + @property + def input_dir_name(self) -> str: + return "sddl2" + + @property + def compressor_profile_name(self) -> str: + return "sddl2" + + @property + def extra_args(self) -> str | None: + return ( + "--profile-arg " + + profile_dir_path(self.input_dir_name) + + "/simple_description.sddl" + ) + + def test_train_compress_decompress(self): + """ + Test the train, compress, and decompress workflow for files decribed by SDDL2. + """ + self.train_compress_decompress() + + def main(): """ Run the test suite with proper command line arguments. This script expects the CLI binary path as the first command line argument. The CLI binary path can be provided either when built with buck or make: - - Buck: $(location //data_compression/experimental/zstrong/cli:zli) + - Buck: $(location cli:zli) - Make: "${PROJECT_BINARY_DIR}/cli/zli" The CLI binary path is used to execute commands in command_utils.py. diff --git a/cli/tests/command_utils.py b/cli/tests/command_utils.py index 098bab47f..a65803ecb 100644 --- a/cli/tests/command_utils.py +++ b/cli/tests/command_utils.py @@ -2,7 +2,6 @@ import os import subprocess - from dataclasses import dataclass from enum import Enum @@ -146,6 +145,7 @@ def execute_compress( def execute_decompress( compressed_file_path: str, decompressed_file_path: str, + extra_args: str | None = None, ) -> None: """ Execute the decompress command to decompress a file. @@ -160,13 +160,12 @@ def execute_decompress( Args: compressed_file_path: Path to the compressed file decompressed_file_path: Path where the decompressed file will be saved + extra_args: Additional arguments to pass to the decompress command (optional) Raises: ValueError: If the decompression fails or the decompressed file is not created """ - decompress_args = ( - f"decompress {str(compressed_file_path)} -o {str(decompressed_file_path)}" - ) + decompress_args = f"decompress {str(compressed_file_path)} -o {str(decompressed_file_path)} {extra_args or ''}" if execute_command(decompress_args) != 0: raise ValueError("Executing decompress command failed") @@ -182,6 +181,7 @@ def execute_train( uncompressed_dir: str, trained_compressor_path: str, trainer_name: str | None = None, + extra_args: str | None = None, ): """ Execute the train command to train a compressor on sample files. @@ -203,6 +203,8 @@ def execute_train( - "greedy": Makes locally optimal choices at each step - "full-split": Analyzes the entire dataset before making decisions If None, the default trainer for the profile will be used. + extra_args: Additional arguments to pass to the train command (optional). + For example: "--profile-arg /path/to/folder" Raises: ValueError: If the training fails or the trained compressor is not created @@ -210,9 +212,11 @@ def execute_train( cstr = compressor_info.compressor_str cflag = compressor_info.compressor_type.value - train_args = f"train --{cflag} {cstr} {str(uncompressed_dir)} -o {str(trained_compressor_path)}" + train_args = f"train --max-time-secs 1 --{cflag} {cstr} {str(uncompressed_dir)} -o {str(trained_compressor_path)}" if trainer_name: train_args += f" -t {trainer_name}" + if extra_args: + train_args += f" {extra_args}" if execute_command(train_args) != 0: raise ValueError("Executing train command failed") @@ -233,7 +237,7 @@ def execute_train_inline( cstr = compressor_info.compressor_str cflag = compressor_info.compressor_type.value - train_args = f"compress --train-inline --{cflag} {cstr} {str(uncompressed_file)} -o {str(compressed_file_path)}" + train_args = f"compress --train-inline --train-inline-test-limit 1 --{cflag} {cstr} {str(uncompressed_file)} -o {str(compressed_file_path)}" if execute_command(train_args) != 0: raise ValueError("Executing train command failed") diff --git a/cli/tests/file_utils.py b/cli/tests/file_utils.py index 197ee638c..7babe5967 100644 --- a/cli/tests/file_utils.py +++ b/cli/tests/file_utils.py @@ -2,7 +2,6 @@ import os import tempfile - from dataclasses import dataclass # Base directory for all temporary test files @@ -10,6 +9,7 @@ # Directory structure constants SAMPLE_FILES_DIR = "sample_files" # read-only input in local test dir +PROFILE_FILES_DIR = "profile_files" # read-only input in local test dir COMPRESSED_DIR = "compressed" # temp output under /tmp/ DECOMPRESSED_DIR = "decompressed" # temp output under /tmp/ @@ -71,6 +71,26 @@ def input_dir_path(input_dir_name: str) -> str: ) +def profile_dir_path(input_dir_name: str) -> str: + """ + Get the directory path for profile-related files. + + The input files are located at: + cli/tests/profile_files/{input_dir_name}/ + + Args: + input_dir_name: Directory name for input sample files + + Returns: + Absolute path to the directory containing input files for this test + """ + return os.path.join( + os.path.dirname(os.path.abspath(__file__)), + PROFILE_FILES_DIR, + input_dir_name, + ) + + @dataclass(frozen=True) class SampleFile: """ diff --git a/cli/tests/profile_files/sddl2/simple_description.sddl b/cli/tests/profile_files/sddl2/simple_description.sddl new file mode 100644 index 000000000..cfacb2a84 --- /dev/null +++ b/cli/tests/profile_files/sddl2/simple_description.sddl @@ -0,0 +1,16 @@ +record Header() { + magic: UInt32LE, + flag: Byte, +} + +record Entry(flag) { + id: UInt32LE, + when flag { + optional: UInt16LE, + }, + required: UInt64LE, +} + +header: Header +expect header.magic == 0xdeadbeef +entries: Entry(header.flag)[] diff --git a/cli/tests/sample_files/ml_selector/ml_sel_num_64_0 b/cli/tests/sample_files/ml_selector/ml_sel_num_64_0 new file mode 100644 index 000000000..ed6eddfaf Binary files /dev/null and b/cli/tests/sample_files/ml_selector/ml_sel_num_64_0 differ diff --git a/cli/tests/sample_files/ml_selector/ml_sel_num_64_1 b/cli/tests/sample_files/ml_selector/ml_sel_num_64_1 new file mode 100644 index 000000000..23bbc2c1a Binary files /dev/null and b/cli/tests/sample_files/ml_selector/ml_sel_num_64_1 differ diff --git a/cli/tests/sample_files/ml_selector/ml_sel_num_64_2 b/cli/tests/sample_files/ml_selector/ml_sel_num_64_2 new file mode 100644 index 000000000..959fd528a Binary files /dev/null and b/cli/tests/sample_files/ml_selector/ml_sel_num_64_2 differ diff --git a/cli/tests/sample_files/ml_selector/ml_sel_num_64_3 b/cli/tests/sample_files/ml_selector/ml_sel_num_64_3 new file mode 100644 index 000000000..da72e37e2 Binary files /dev/null and b/cli/tests/sample_files/ml_selector/ml_sel_num_64_3 differ diff --git a/cli/tests/sample_files/ml_selector/ml_sel_num_64_4 b/cli/tests/sample_files/ml_selector/ml_sel_num_64_4 new file mode 100644 index 000000000..57c837254 Binary files /dev/null and b/cli/tests/sample_files/ml_selector/ml_sel_num_64_4 differ diff --git a/cli/tests/sample_files/sddl2/sample_0.bin b/cli/tests/sample_files/sddl2/sample_0.bin new file mode 100644 index 000000000..70442b919 Binary files /dev/null and b/cli/tests/sample_files/sddl2/sample_0.bin differ diff --git a/cli/tests/sample_files/sddl2/sample_1.bin b/cli/tests/sample_files/sddl2/sample_1.bin new file mode 100644 index 000000000..14a250f17 Binary files /dev/null and b/cli/tests/sample_files/sddl2/sample_1.bin differ diff --git a/cli/tests/sample_files/sddl2/sample_2.bin b/cli/tests/sample_files/sddl2/sample_2.bin new file mode 100644 index 000000000..d6bce0917 Binary files /dev/null and b/cli/tests/sample_files/sddl2/sample_2.bin differ diff --git a/cli/tests/sample_files/trace/input_experiments.csv b/cli/tests/sample_files/trace/input_experiments.csv new file mode 100644 index 000000000..15ff86f18 --- /dev/null +++ b/cli/tests/sample_files/trace/input_experiments.csv @@ -0,0 +1,5 @@ +universe,experiment_id,segment_id_list +universe_1,1,"[1,2]" +universe_1,2,"[3]" +universe_2,2,"[1]" +universe_2,3,"[2,3,4]" diff --git a/cli/tests/sample_files/u16/zigzag_1000.bin b/cli/tests/sample_files/u16/zigzag_1000.bin new file mode 100644 index 000000000..2827717ce Binary files /dev/null and b/cli/tests/sample_files/u16/zigzag_1000.bin differ diff --git a/cli/tests/sample_files/u8/random_u8.bin b/cli/tests/sample_files/u8/random_u8.bin new file mode 100644 index 000000000..6ff6eb993 Binary files /dev/null and b/cli/tests/sample_files/u8/random_u8.bin differ diff --git a/cli/tests/sample_files/u8/repeated_u8.bin b/cli/tests/sample_files/u8/repeated_u8.bin new file mode 100644 index 000000000..baefc1930 Binary files /dev/null and b/cli/tests/sample_files/u8/repeated_u8.bin differ diff --git a/cli/tests/sample_files/u8/sequential_u8.bin b/cli/tests/sample_files/u8/sequential_u8.bin new file mode 100644 index 000000000..c8b49c8cd Binary files /dev/null and b/cli/tests/sample_files/u8/sequential_u8.bin differ diff --git a/cli/tests/unittest/UtilTest.cpp b/cli/tests/unittest/UtilTest.cpp new file mode 100644 index 000000000..6bc5551ee --- /dev/null +++ b/cli/tests/unittest/UtilTest.cpp @@ -0,0 +1,93 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include + +#include + +#include "cli/utils/util.h" + +using namespace openzl::cli::util; +using openzl::cli::InvalidArgsException; + +namespace { + +// --- checkedstoi --- + +TEST(UtilTest, StoiPlainIntegers) +{ + EXPECT_EQ(checkedstoi("0"), 0); + EXPECT_EQ(checkedstoi("42"), 42); + EXPECT_EQ(checkedstoi("-1"), -1); + EXPECT_EQ(checkedstoi("100"), 100); +} + +TEST(UtilTest, StoiDecimalSuffixes) +{ + EXPECT_EQ(checkedstoi("1K"), 1000); + EXPECT_EQ(checkedstoi("1KB"), 1000); + EXPECT_EQ(checkedstoi("2M"), 2000000); + EXPECT_EQ(checkedstoi("2MB"), 2000000); +} + +TEST(UtilTest, StoiBinarySuffixes) +{ + EXPECT_EQ(checkedstoi("1KiB"), 1024); + EXPECT_EQ(checkedstoi("1MiB"), 1048576); +} + +TEST(UtilTest, StoiEmptyString) +{ + EXPECT_THROW(checkedstoi(""), InvalidArgsException); +} + +TEST(UtilTest, StoiInvalidNumber) +{ + EXPECT_THROW(checkedstoi("abc"), InvalidArgsException); +} + +TEST(UtilTest, StoiInvalidSuffix) +{ + EXPECT_THROW(checkedstoi("1X"), InvalidArgsException); + EXPECT_THROW(checkedstoi("1foo"), InvalidArgsException); +} + +TEST(UtilTest, StoiOverflow) +{ + EXPECT_THROW(checkedstoi("3G"), InvalidArgsException); +} + +TEST(UtilTest, StoulDecimalSuffixes) +{ + EXPECT_EQ(checkedstoul("1K"), 1000UL); + EXPECT_EQ(checkedstoul("1KB"), 1000UL); + EXPECT_EQ(checkedstoul("2M"), 2000000UL); + EXPECT_EQ(checkedstoul("2MB"), 2000000UL); + EXPECT_EQ(checkedstoul("3G"), 3000000000UL); + EXPECT_EQ(checkedstoul("3GB"), 3000000000UL); + if constexpr (sizeof(unsigned long) >= 8) { + EXPECT_EQ(checkedstoul("1T"), 1000000000000UL); + EXPECT_EQ(checkedstoul("1TB"), 1000000000000UL); + } else { + EXPECT_THROW(checkedstoul("1T"), InvalidArgsException); + EXPECT_THROW(checkedstoul("1TB"), InvalidArgsException); + } +} + +TEST(UtilTest, StoulBinarySuffixes) +{ + EXPECT_EQ(checkedstoul("1KiB"), 1024UL); + EXPECT_EQ(checkedstoul("1MiB"), 1048576UL); + EXPECT_EQ(checkedstoul("1GiB"), 1073741824UL); + if constexpr (sizeof(unsigned long) >= 8) { + EXPECT_EQ(checkedstoul("1TiB"), 1099511627776UL); + } else { + EXPECT_THROW(checkedstoul("1TiB"), InvalidArgsException); + } +} + +TEST(UtilTest, StoullOverflow) +{ + EXPECT_THROW(checkedstoull("18446744073709551615T"), InvalidArgsException); +} + +} // namespace diff --git a/cli/utils/BUCK b/cli/utils/BUCK index 0979add16..5f455da0c 100644 --- a/cli/utils/BUCK +++ b/cli/utils/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxlibrary") +load("../../defs.bzl", "zs_cxxlibrary") oncall("data_compression") @@ -15,17 +15,20 @@ zs_cxxlibrary( "util.h", ], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers:custom_parsers", - "//data_compression/experimental/zstrong/custom_parsers:pytorch_model_parser", - "//data_compression/experimental/zstrong/custom_parsers/csv:csv_parser", - "//data_compression/experimental/zstrong/custom_parsers/parquet:parquet_graph", - "//data_compression/experimental/zstrong/custom_parsers/sddl:profile", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:clustering", - "//data_compression/experimental/zstrong/tools:io", - "//data_compression/experimental/zstrong/tools:logger", - "//data_compression/experimental/zstrong/tools/sddl/compiler:lib", - "//data_compression/experimental/zstrong/tools/training/ace:automated_compressor_explorer", + "../..:zstronglib", + "../../cpp:openzl_cpp", + "../../custom_parsers:custom_parsers", + "../../custom_parsers:pytorch_model_parser", + "../../custom_parsers/csv:csv_parser", + "../../custom_parsers/parquet:parquet_graph", + "../../custom_parsers/sddl:profile", + "../../custom_parsers/shared_components:clustering", + "../../tools:arg", + "../../tools:io", + "../../tools:logger", + "../../tools/sddl/compiler:lib", + "../../tools/sddl2/assembler:lib", + "../../tools/sddl2/compiler:lib", + "../../tools/training/ace:automated_compressor_explorer", ], ) diff --git a/cli/utils/CMakeLists.txt b/cli/utils/CMakeLists.txt index 928755beb..6ba0a6d7c 100644 --- a/cli/utils/CMakeLists.txt +++ b/cli/utils/CMakeLists.txt @@ -22,6 +22,8 @@ target_link_libraries(utils csv_parser sddl_profile sddl_compiler_lib + sddl2_compiler_lib + sddl2_assembler_lib pytorch_model_parser parquet_graph shared_components @@ -35,6 +37,8 @@ add_dependencies(utils csv_parser sddl_profile sddl_compiler_lib + sddl2_compiler_lib + sddl2_assembler_lib pytorch_model_parser parquet_graph shared_components diff --git a/cli/utils/compress_profiles.cpp b/cli/utils/compress_profiles.cpp index a357f2046..9fa5fb085 100644 --- a/cli/utils/compress_profiles.cpp +++ b/cli/utils/compress_profiles.cpp @@ -5,22 +5,67 @@ #include +#include + #include "openzl/codecs/zl_conversion.h" -#include "openzl/codecs/zl_sddl.h" +#include "openzl/codecs/zl_lz.h" +#include "openzl/codecs/zl_mlselector.h" +#include "openzl/codecs/zl_sddl2.h" +#include "openzl/codecs/zl_segmenters.h" #include "openzl/cpp/Exception.hpp" #include "openzl/openzl.hpp" #include "openzl/zl_compressor.h" +#include "openzl/zl_reflection.h" #include "custom_parsers/csv/csv_profile.h" +#include "custom_parsers/dependency_registration.h" #include "custom_parsers/parquet/parquet_graph.h" #include "custom_parsers/pytorch_model_parser.h" #include "custom_parsers/sddl/sddl_profile.h" #include "custom_parsers/shared_components/clustering.h" #include "tools/io/InputFile.h" +#include "tools/io/InputSetFileOrDir.h" #include "tools/sddl/compiler/Compiler.h" +#include "tools/sddl2/assembler/Assembler.h" +#include "tools/sddl2/compiler/Compiler.h" + namespace openzl::cli { + +void ProfileArgs::addArgs(arg::ArgParser& parser) +{ + parser.addGlobalFlag(kProfile, 'p', true, "Select the given profile."); + parser.addGlobalFlag( + kProfileArg, + 0, + true, + "Pass the given value as an argument to constructing the profile."); + parser.addGlobalFlag( + kChunkSize, + 0, + true, + "The chunk size for the input to be separated into (e.g. 20M, 500K, 1G). Supports suffixes: K/KB (10^3), M/MB (10^6), G/GB (10^9), T/TB (10^12), and binary KiB (2^10), MiB (2^20), GiB (2^30), TiB (2^40). Plain numbers are treated as bytes. When omitted, profiles use their built-in default chunk size if they segment input."); +} + +ProfileArgs::ProfileArgs(const arg::ParsedArgs& parsed) +{ + auto chunkSize = parsed.globalFlag(kChunkSize); + if (chunkSize.has_value()) { + chunkSize_ = util::checkedstoul(chunkSize.value()); + } else { + chunkSize_ = poly::nullopt; + } + auto profileArg = parsed.globalFlag(kProfileArg); + if (profileArg) { + argmap_.emplace("TBD", profileArg.value()); + } + auto profile = parsed.globalFlag(kProfile); + if (profile) { + name_ = std::move(profile); + } +} + namespace { ZL_GraphID saoProfile(Compressor& compressor) { @@ -54,11 +99,15 @@ ZL_GraphID saoProfile(Compressor& compressor) * Real*4 XRPM R.A. proper motion (radians per year) * Real*4 XDPM Dec. proper motion (radians per year) */ - ZL_GraphID sra0 = nodes::ConvertStructToNumLE()( - compressor, - nodes::DeltaInt()(compressor, graphs::FieldLz()(compressor))); - ZL_GraphID sdec0 = graphs::ACE(nodes::TransposeSplit()( - compressor, graphs::Zstd()(compressor)))(compressor); + ZL_GraphID sra0 = graphs::ACE( + nodes::ConvertStructToNumLE()( + compressor, + nodes::DeltaInt()( + compressor, graphs::FieldLz()(compressor))))( + compressor); + ZL_GraphID sdec0 = graphs::ACE( + nodes::TransposeSplit()(compressor, graphs::Zstd()(compressor)))( + compressor); ZL_GraphID token_compress = nodes::TokenizeStruct()( compressor, graphs::FieldLz()(compressor), @@ -97,46 +146,169 @@ ZL_GraphID saoProfile(Compressor& compressor) splitSizes.size()); } -static void addLEintProfile( +struct IntProfileData { + size_t eltByteWidth; + bool isSigned; +}; + +static std::string makeProfileName(const std::string& signage, size_t bitWidth) +{ + if (bitWidth == 8) { + return signage + "8"; + } + return "le-" + signage + std::to_string(bitWidth); +} + +static std::string makeProfileDescription(bool isSigned, size_t bitWidth) +{ + if (bitWidth == 8) { + return (isSigned ? "Signed " : "Unsigned ") + std::string("8-bit data"); + } + return std::string("Little-endian ") + (isSigned ? "signed " : "unsigned ") + + std::to_string(bitWidth) + "-bit data"; +} + +static ZL_GraphID +buildIntProfile(ZL_Compressor* comp, void* opaque, const ProfileArgs& args) +{ + auto* d = static_cast(opaque); + size_t bitWidth = d->eltByteWidth * 8; + ZL_GraphID graph = ZL_GRAPH_FIELD_LZ; + if (d->isSigned) { + graph = ZL_Compressor_registerStaticGraph_fromNode1o( + comp, ZL_NODE_ZIGZAG, graph); + } + graph = ZL_Compressor_buildACEGraphWithDefault(comp, graph); + graph = ZL_Compressor_registerStaticGraph_fromNode1o( + comp, ZL_Node_interpretAsLE(bitWidth), graph); + size_t chunkSize = + args.chunkSize().value_or(ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE); + return ZL_Compressor_buildNumFromSerialSegmenter( + comp, d->eltByteWidth, chunkSize, graph); +} + +static void addIntProfile( std::map>& mp, bool isSigned, size_t bitWidth) { - std::string signage = isSigned ? "i" : "u"; - std::string name = "le-" + signage + std::to_string(bitWidth); - auto interpretAsLEnode = ZL_Node_interpretAsLE(bitWidth); + std::string signage = isSigned ? "i" : "u"; + std::string name = makeProfileName(signage, bitWidth); + std::string description = makeProfileDescription(isSigned, bitWidth); - std::shared_ptr nodeid = std::shared_ptr( - malloc(2 * sizeof(interpretAsLEnode)), [](void* p) { free(p); }); - ((ZL_NodeID*)nodeid.get())[0] = interpretAsLEnode; - ((ZL_NodeID*)nodeid.get())[1] = ZL_NODE_ZIGZAG; + auto data = std::make_shared( + IntProfileData{ bitWidth / 8, isSigned }); mp[name] = std::make_shared( - name, - std::string("Little-endian ") + (isSigned ? "signed " : "unsigned ") - + std::to_string(bitWidth) + "-bit data", - isSigned ? ([](ZL_Compressor* comp, - void* opaque, - const ProfileArgs&) { - return ZL_Compressor_registerStaticGraph_fromPipelineNodes1o( - comp, (ZL_NodeID*)opaque, 2, ZL_GRAPH_FIELD_LZ); - }) - : ([](ZL_Compressor* comp, - void* opaque, - const ProfileArgs&) { - auto graph = - ZL_Compressor_registerStaticGraph_fromPipelineNodes1o( - comp, - (ZL_NodeID*)opaque, - 1, - ZL_GRAPH_FIELD_LZ); - return ZL_Compressor_buildACEGraphWithDefault( - comp, graph); - }), - std::move(nodeid)); + name, description, buildIntProfile, std::move(data), true); } } // namespace +static ZL_RESULT_OF(ZL_GraphID) extractFolderOfCompressors( + Compressor& compressor, + const std::string& folder) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor.get()); + + auto inputSet = tools::io::InputSetFileOrDir(folder, true); + + std::vector successors; + for (const auto& input : inputSet) { + auto contents = input->contents(); + + const auto deps = compressor.getUnmetDependencies(contents); + + for (const auto& graphName : deps.graphNames) { + if (graphName == "Parquet Parser" || graphName == "CSV Parser") { + throw std::runtime_error( + "CSV and Parquet parsers are not supported in ML Selector profiles. " + "CSV and Parquet parsers require clustering which ML Selector does not provide."); + } + } + + compressor.deserialize(contents); + + ZL_GraphID startingGraphId; + ZL_Compressor_getStartingGraphID(compressor.get(), &startingGraphId); + successors.push_back(startingGraphId); + } + + // ML selectors require at least 2 successors to choose between + if (successors.size() < 2) { + throw Exception( + "ML selector requires at least 2 successor compressors, but " + "only " + + std::to_string(successors.size()) + " were provided in '" + + folder + "'"); + } + + ZL_TRY_LET( + ZL_GraphID, + mlSelectorGraphId, + ZL_Compressor_buildUntrainedMLSelector( + compressor.get(), successors.data(), successors.size())); + + // Wrap with serial-to-numeric conversion so the graph accepts serial input + ZL_GraphID staticGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + compressor.get(), + ZL_NODE_CONVERT_SERIAL_TO_NUM_LE64, + mlSelectorGraphId); + + // Parameterize so ml selector graph can be updated during training + ZL_GraphParameters const wrapperDesc = {}; + + return ZL_Compressor_parameterizeGraph( + compressor.get(), staticGraph, &wrapperDesc); +} + +/** + * @brief Registers static successor graphs for the ML selector. + * NOTE: This is a temporary placeholder + * @param compressor The compressor to register the graph with + */ +static ZL_RESULT_OF(ZL_GraphID) + numeric64BitMLSelectorProfile(ZL_Compressor* compressor) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor); + + ZL_GraphID fieldlz = ZL_Compressor_registerFieldLZGraph(compressor); + ZL_GraphID range_pack = ZL_Compressor_registerStaticGraph_fromNode( + compressor, ZL_NODE_RANGE_PACK, &fieldlz, 1); + ZL_GraphID zstd = ZL_GRAPH_ZSTD; + ZL_GraphID range_pack_zstd = ZL_Compressor_registerStaticGraph_fromNode( + compressor, ZL_NODE_RANGE_PACK, &zstd, 1); + ZL_GraphID delta_fieldlz = ZL_Compressor_registerStaticGraph_fromNode( + compressor, ZL_NODE_DELTA_INT, &fieldlz, 1); + ZL_GraphID tokenize_delta_fieldlz = ZL_Compressor_registerTokenizeGraph( + compressor, + ZL_Type_numeric, + /* sort */ true, + delta_fieldlz, + fieldlz); + + ZL_GraphID successors[6] = { fieldlz, + range_pack, + range_pack_zstd, + delta_fieldlz, + tokenize_delta_fieldlz, + zstd }; + + ZL_TRY_LET( + ZL_GraphID, + mlSelectorGraphId, + ZL_Compressor_buildUntrainedMLSelector(compressor, successors, 6)); + + // Wrap with serial-to-numeric conversion so the graph accepts serial input + ZL_GraphID staticGraph = ZL_Compressor_registerStaticGraph_fromNode1o( + compressor, ZL_NODE_CONVERT_SERIAL_TO_NUM_LE64, mlSelectorGraphId); + + // Parameterize so ml selector graph can be updated during training + ZL_GraphParameters const wrapperDesc = {}; + + return ZL_Compressor_parameterizeGraph( + compressor, staticGraph, &wrapperDesc); +} + const std::map>& compressProfiles() { @@ -147,10 +319,16 @@ compressProfiles() mp[kSerialName] = std::make_shared( kSerialName, "Serial data (aka raw bytes)", - [](ZL_Compressor* compressor, void*, const ProfileArgs&) { - return ZL_Compressor_buildACEGraphWithDefault( - compressor, ZL_GRAPH_ZSTD); - }); + [](ZL_Compressor* compressor, void*, const ProfileArgs& args) { + ZL_GraphID inner = ZL_Compressor_buildACEGraphWithDefault( + compressor, ZL_GRAPH_LZ); + size_t chunkSize = args.chunkSize().value_or( + ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE); + return ZL_Compressor_buildSerialSegmenter( + compressor, chunkSize, inner); + }, + nullptr, + true); std::string kPytorchName = "pytorch"; mp[kPytorchName] = std::make_shared( @@ -165,44 +343,65 @@ compressProfiles() kCsvName, "CSV. Pass optional non-comma separator with --profile-arg .", [](ZL_Compressor* comp, void*, const ProfileArgs& args) { - auto it = args.argmap.find("TBD"); - if (it != args.argmap.end()) { + char sep = ','; + const auto chunkSize = args.chunkSize().value_or( + custom_parsers::kDefaultChunkSize); + auto argmap = args.map(); + auto it = argmap.find("TBD"); + if (it != argmap.end()) { auto str = it->second; if (str.size() != 1) { throw InvalidArgsException( "The CSV profile separator must be a single character. Pass it with --profile-arg ."); } - return openzl::custom_parsers:: - ZL_createGraph_genericCSVCompressorWithOptions( - comp, true, str[0], false); + sep = str[0]; } return openzl::custom_parsers:: - ZL_createGraph_genericCSVCompressor(comp); - }); + ZL_createGraph_genericCSVCompressorWithOptions( + comp, chunkSize, true, sep, false); + }, + nullptr, + true); - addLEintProfile(mp, true, 16); - addLEintProfile(mp, false, 16); - addLEintProfile(mp, true, 32); - addLEintProfile(mp, false, 32); - addLEintProfile(mp, true, 64); - addLEintProfile(mp, false, 64); + addIntProfile(mp, true, 8); + addIntProfile(mp, false, 8); + addIntProfile(mp, true, 16); + addIntProfile(mp, false, 16); + addIntProfile(mp, true, 32); + addIntProfile(mp, false, 32); + addIntProfile(mp, true, 64); + addIntProfile(mp, false, 64); std::string kParquetName = "parquet"; mp[kParquetName] = std::make_shared( kParquetName, "Parquet in the canonical format (no compression, plain encoding)", - [](ZL_Compressor* comp, void*, const ProfileArgs&) { + [](ZL_Compressor* comp, void*, const ProfileArgs& args) { auto clustering = ZS2_createGraph_genericClustering(comp); - return ZL_Parquet_registerGraph(comp, clustering); - }); + const size_t chunkSize = args.chunkSize().value_or( + custom_parsers::kDefaultChunkSize); + if (chunkSize > static_cast( + std::numeric_limits::max())) { + throw InvalidArgsException( + "--chunk-size for the parquet profile must be at most " + + std::to_string( + std::numeric_limits::max()) + + " bytes."); + } + return ZL_Parquet_registerGraph_withChunkSize( + comp, clustering, static_cast(chunkSize)); + }, + nullptr, + true); std::string kSDDLName = "sddl"; mp[kSDDLName] = std::make_shared( kSDDLName, "Data that can be parsed using the Simple Data Description Language. Pass a path to the data description file with --profile-arg.", [](ZL_Compressor* comp, void*, const ProfileArgs& args) { - auto it = args.argmap.find("TBD"); - if (it == args.argmap.end()) { + auto argmap = args.map(); + auto it = argmap.find("TBD"); + if (it == argmap.end()) { throw InvalidArgsException( "The Simple Data Description Language profile requires a data description. Pass a path to the description file with --profile-arg."); } @@ -216,6 +415,39 @@ compressProfiles() comp); }); + std::string kSDDL2Name = "sddl2"; + mp[kSDDL2Name] = std::make_shared( + kSDDL2Name, + "Data that can be parsed using Simple Data Description Language v2 (https://openzl.org/sddl/). Pass a path to the description file with --profile-arg.", + [](ZL_Compressor* comp, void*, const ProfileArgs& args) { + auto argmap = args.map(); + auto it = argmap.find("TBD"); + if (it == argmap.end()) { + throw InvalidArgsException( + "The Simple Data Description Language v2 profile requires a data description file. Pass a path to the description file with --profile-arg."); + } + auto description = tools::io::InputFile(it->second); + auto compiled = sddl2::Compiler{}.compile( + description.contents(), description.name()); + auto bytecode = sddl2::Assembler{}.assemble(compiled); + auto clustering = ZS2_createGraph_genericClustering(comp); + auto graph = ZL_Compressor_registerSDDL2Graph_advanced( + comp, + bytecode.data(), + bytecode.size(), + clustering, + args.chunkSize().value_or(0)); + if (!ZL_GraphID_isValid(graph)) { + throw ExceptionBuilder("Failed to set up SDDL2 profile") + .withErrorCode(ZL_ErrorCode_graph_invalid) + .addErrorContext(comp) + .build(); + } + return graph; + }, + nullptr, + true); + std::string kSAOName = "sao"; mp[kSAOName] = std::make_shared( kSAOName, @@ -225,6 +457,24 @@ compressProfiles() return saoProfile(compressor); }); + std::string kGenericNumericName = "numeric-ml-selector-64"; + mp[kGenericNumericName] = std::make_shared( + kGenericNumericName, + "64 bit numeric data using ml selectors (Placeholder)", + [](ZL_Compressor* comp, void*, const ProfileArgs& args) { + (void)args; + if (args.map().find("TBD") != args.map().end()) { + CompressorRef compressor(comp); + return unwrap(extractFolderOfCompressors( + compressor, args.map().at("TBD"))); + } else { + return unwrap( + numeric64BitMLSelectorProfile(comp), + "Failed to set up numeric profile", + comp); + } + }); + return mp; }(); return staticProfiles; diff --git a/cli/utils/compress_profiles.h b/cli/utils/compress_profiles.h index a0053d237..1732a9c49 100644 --- a/cli/utils/compress_profiles.h +++ b/cli/utils/compress_profiles.h @@ -8,15 +8,62 @@ #include #include +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/poly/Optional.hpp" + #include "openzl/zl_compressor.h" +#include "tools/arg/arg_parser.h" +#include "tools/arg/parsed_args.h" namespace openzl::cli { -struct ProfileArgs { - std::string name; +class ProfileArgs { + public: + static void addArgs(arg::ArgParser& parser); + + explicit ProfileArgs(const arg::ParsedArgs& parsed); + + explicit ProfileArgs(const std::shared_ptr& compressor) + : compressor_(compressor) + { + } + + const poly::optional& chunkSize() const + { + return chunkSize_; + } + + const poly::optional& name() const + { + return name_; + } + + const std::map& map() const + { + return argmap_; + } + + const std::shared_ptr& compressor() const + { + return compressor_; + } + + void setCompressor(const std::shared_ptr& compressor) + { + compressor_ = compressor; + } + + private: + std::shared_ptr compressor_; + + inline static const std::string kProfileArg = "profile-arg"; + inline static const std::string kChunkSize = "chunk-size"; + inline static const std::string kProfile = "profile"; + poly::optional name_; + poly::optional chunkSize_; // Arbitrary (K,V) arguments provided on the command line. - std::map argmap; + std::map argmap_; }; class CompressProfile { @@ -29,11 +76,13 @@ class CompressProfile { const std::string& name_, const std::string& description_, GenFunc gen_, - std::shared_ptr opaque_ = nullptr) + std::shared_ptr opaque_ = nullptr, + bool supportsChunkSize_ = false) : name(name_), description(description_), gen(std::move(gen_)), - opaque(opaque_) + opaque(opaque_), + supportsChunkSize(supportsChunkSize_) { } @@ -42,8 +91,9 @@ class CompressProfile { std::string name; std::string description; // useful for documentation as well as printing GenFunc gen; - std::shared_ptr opaque; // an optional opaque helper pointer that's - // passed to the gen function + std::shared_ptr opaque; // an optional opaque helper pointer + // that's passed to the gen function + bool supportsChunkSize = false; }; const std::map>& diff --git a/cli/utils/util.cpp b/cli/utils/util.cpp index 62ab30574..11fe65e76 100644 --- a/cli/utils/util.cpp +++ b/cli/utils/util.cpp @@ -15,8 +15,12 @@ using namespace std::string_view_literals; namespace openzl::cli::util { -static constexpr std::array suffix{ "B"sv, "KiB"sv, "MiB"sv, "GiB"sv, "TiB"sv }; -static constexpr double kilo = 1024.0; +static constexpr std::array sizeSuffixes{ "B"sv, + "KB"sv, + "MB"sv, + "GB"sv, + "TB"sv }; +static constexpr double kilo = 1000.0; static constexpr double tenK = 10000.0; std::string sizeString(size_t sz) { @@ -29,25 +33,116 @@ std::string sizeString(size_t sz) } szDbl /= kilo; ++suffixPtr; - } while (suffixPtr < suffix.size() - 1); + } while (suffixPtr < sizeSuffixes.size() - 1); std::vector ret(20, 0); - snprintf(ret.data(), 19, "%7.2lf %s", szDbl, suffix[suffixPtr].data()); + snprintf( + ret.data(), 19, "%7.2lf %s", szDbl, sizeSuffixes[suffixPtr].data()); return std::string(ret.data()); } +static unsigned long long suffixToMultiplier(const std::string& suffix) +{ + if (suffix == "K" || suffix == "KB") { + return 1000ULL; + } else if (suffix == "M" || suffix == "MB") { + return 1000ULL * 1000; + } else if (suffix == "G" || suffix == "GB") { + return 1000ULL * 1000 * 1000; + } else if (suffix == "T" || suffix == "TB") { + return 1000ULL * 1000 * 1000 * 1000; + } else if (suffix == "KiB") { + return 1ULL << 10; + } else if (suffix == "MiB") { + return 1ULL << 20; + } else if (suffix == "GiB") { + return 1ULL << 30; + } else if (suffix == "TiB") { + return 1ULL << 40; + } + throw InvalidArgsException( + "Unknown size suffix '" + suffix + + "'. Use K/KB/KiB, M/MB/MiB, G/GB/GiB, or T/TB/TiB."); +} + +template +decltype(auto) checkedInner(const std::string& str, Func&& func) +{ + if (str.empty()) { + throw InvalidArgsException("Size string must not be empty."); + } + size_t pos = 0; + decltype(func(str, &pos)) value; + try { + value = func(str, &pos); + } catch (const std::invalid_argument&) { + throw InvalidArgsException("Not a valid number: '" + str + "'."); + } catch (const std::out_of_range&) { + throw InvalidArgsException("Value out of range: '" + str + "'."); + } + if (pos < str.size()) { + std::string potentialSuffix = str.substr(pos); + auto maybeMultiplier = suffixToMultiplier(potentialSuffix); + if (maybeMultiplier > static_cast( + std::numeric_limits::max())) { + throw InvalidArgsException("Value overflows: '" + str + "'."); + } + auto multiplier = static_cast(maybeMultiplier); + if (value > std::numeric_limits::max() / multiplier) { + throw InvalidArgsException("Value overflows: '" + str + "'."); + } + if (value < std::numeric_limits::min() / multiplier) { + throw InvalidArgsException("Neg. value overflows: '" + str + "'."); + } + value *= multiplier; + } + return value; +} + +int checkedstoi(const std::string& str) +{ + return checkedInner(str, [](const std::string& s, size_t* pos) { + return std::stoi(s, pos); + }); +} +long checkedstol(const std::string& str) +{ + return checkedInner(str, [](const std::string& s, size_t* pos) { + return std::stol(s, pos); + }); +} +unsigned long checkedstoul(const std::string& str) +{ + return checkedInner(str, [](const std::string& s, size_t* pos) { + return std::stoul(s, pos); + }); +} +long long checkedstoll(const std::string& str) +{ + return checkedInner(str, [](const std::string& s, size_t* pos) { + return std::stoll(s, pos); + }); +} + +unsigned long long checkedstoull(const std::string& str) +{ + return checkedInner(str, [](const std::string& s, size_t* pos) { + return std::stoull(s, pos); + }); +} + std::unique_ptr createCompressorFromProfile(const ProfileArgs& args) { auto compressor = std::make_unique(); - if (args.name.empty()) { + if (args.name().value_or("").empty()) { throw InvalidArgsException( "Please provide a profile. See `zli list-profiles` for a list of supported profiles."); } - - auto profile = compressProfiles().find(args.name); + auto name = args.name().value(); + auto profile = compressProfiles().find(name); if (profile == compressProfiles().end()) { throw InvalidArgsException( - "Profile not found: '" + args.name + "Profile not found: '" + name + "'. See `zli list-profiles` for a list of supported profiles."); } diff --git a/cli/utils/util.h b/cli/utils/util.h index 7109a3cb8..632d2e761 100644 --- a/cli/utils/util.h +++ b/cli/utils/util.h @@ -11,9 +11,12 @@ #include "openzl/cpp/DCtx.hpp" #include "openzl/cpp/Exception.hpp" -#include "cli/utils/compress_profiles.h" #include "tools/logger/Logger.h" +namespace openzl::cli { +class ProfileArgs; +} // namespace openzl::cli + namespace openzl::cli { /** @@ -45,8 +48,24 @@ struct CompressorSerializerDeleter { void setVerbosity(int level); +/** + * Print a human-readable size string. + * E.g. 1024 -> "1.02 KB" + */ std::string sizeString(size_t sz); +/** + * Convert a string to an integer. Supports trailing size suffixes (e.g. "1K" -> + * 1000). Checks that the value is well-formed and any suffixes are valid. + * @throws InvalidArgsException if the string is invalid, has an unknown suffix, + * or the result overflows the return type. + */ +int checkedstoi(const std::string& str); +long checkedstol(const std::string& str); +unsigned long checkedstoul(const std::string& str); +long long checkedstoll(const std::string& str); +unsigned long long checkedstoull(const std::string& str); + /** * Creates a compressor based on the provided profile. * diff --git a/cli/zli.cpp b/cli/zli.cpp index 8b937735f..fe03de07c 100644 --- a/cli/zli.cpp +++ b/cli/zli.cpp @@ -40,6 +40,7 @@ int impl(int argc, char** argv) // set command-line arguments GlobalArgs::addArgs(argParser); + ProfileArgs::addArgs(argParser); CompressArgs::addArgs(argParser); DecompressArgs::addArgs(argParser); TrainArgs::addArgs(argParser); @@ -50,9 +51,23 @@ int impl(int argc, char** argv) auto usage = [&](const Cmd& cmd) -> std::string { auto help = cmd == Cmd::UNSPECIFIED ? argParser.help() : argParser.help(cmd); - return "Demo CLI for OpenZL. NO VERSION STABILITY IS IMPLIED!!\n" + + // version string + char version[32] = {}; + snprintf( + version, + 31, + "%d.%d.%d", + ZL_LIBRARY_VERSION_MAJOR, + ZL_LIBRARY_VERSION_MINOR, + ZL_LIBRARY_VERSION_PATCH); + + return "Demo CLI for OpenZL. Version " + std::string(version) + + "\nNO VERSION STABILITY IS IMPLIED!!\n" "\n" "Usage: " + std::string(argv[0]) + " [options] \n" + "\n" + "Options can be specified with or without = sign. For example: --profile=u32 or --profile u32\n" "\n" + std::move(help) + "<<<< NO VERSION STABILITY IS IMPLIED!! >>>>"; }; diff --git a/contrib/custom_codecs/ycocg/graph_ycocg.h b/contrib/custom_codecs/ycocg/graph_ycocg.h index 55a740c7d..7c81b4295 100644 --- a/contrib/custom_codecs/ycocg/graph_ycocg.h +++ b/contrib/custom_codecs/ycocg/graph_ycocg.h @@ -15,7 +15,8 @@ #define YCOCG_GRAPH \ { \ - .CTid = YCOCG_GRAPH_ID, .inStreamType = ZL_Type_serial, \ + .CTid = YCOCG_GRAPH_ID, \ + .inStreamType = ZL_Type_serial, \ .outStreamTypes = ZL_STREAMTYPELIST( \ ZL_Type_numeric, ZL_Type_numeric, ZL_Type_numeric), \ } diff --git a/contrib/lz-research/BUCK b/contrib/lz-research/BUCK new file mode 100644 index 000000000..49abae11d --- /dev/null +++ b/contrib/lz-research/BUCK @@ -0,0 +1,91 @@ +load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary") +load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") + +oncall("data_compression") + +cpp_library( + # @autodeps-skip + name = "codecs", + srcs = [ + "codecs/Bucket.cpp", + "codecs/Bucket16.cpp", + "codecs/IsoByte.cpp", + "codecs/Lz.cpp", + "codecs/SmallInt.cpp", + "codecs/VarByte.cpp", + ], + headers = [ + "codecs/Bucket.hpp", + "codecs/Bucket16.hpp", + "codecs/CodecIDs.hpp", + "codecs/IsoByte.hpp", + "codecs/Lz.hpp", + "codecs/SmallInt.hpp", + "codecs/VarByte.hpp", + "codecs/utils/Partition.hpp", + "codecs/utils/Portability.hpp", + ], + exported_deps = [ + "../../cpp:openzl_cpp", + ], +) + +cpp_library( + # @autodeps-skip + name = "lz_compressors", + srcs = ["LzCompressors.cpp"], + headers = ["LzCompressors.hpp"], + deps = [":codecs"], + exported_deps = [ + "../../cpp:openzl_cpp", + ":codecs", + ], +) + +cpp_library( + # @autodeps-skip + name = "compressor", + srcs = ["Compressor.cpp"], + headers = ["Compressor.hpp"], + deps = [ + ":lz_compressors", + ], + exported_deps = [ + "../../cpp:openzl_cpp", + "../../tools:io", + "../../tools:json", + "../../tools/training:train", + "fbsource//third-party/lz4:lz4", + "fbsource//third-party/zstd:zstd", + "fbsource//xplat/third-party/snappy:snappy", + ], +) + +cpp_library( + # @autodeps-skip + name = "benchmark", + srcs = ["Benchmark.cpp"], + headers = ["Benchmark.hpp"], + exported_deps = [ + "../../tools:io", + "../../tools:json", + "../../tools:logger", + ":compressor", + ], +) + +cpp_binary( + # @autodeps-skip + name = "lz", + srcs = [ + "Main.cpp", + ], + deps = [ + "../../cpp:openzl_cpp", + "../../tools:arg", + "../../tools:fileio", + "../../tools:logger", + "fbsource//third-party/zstd:zstd", + ":benchmark", + ], +) diff --git a/contrib/lz-research/Benchmark.cpp b/contrib/lz-research/Benchmark.cpp new file mode 100644 index 000000000..36ebe04e1 --- /dev/null +++ b/contrib/lz-research/Benchmark.cpp @@ -0,0 +1,224 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "Benchmark.hpp" + +#include "tools/logger/Logger.h" + +namespace openzl::bench { + +namespace { +using tools::logger::Logger; +using tools::logger::LogLevel; + +template +size_t benchmarkFn( + std::vector& durations, + size_t minIters, + std::chrono::nanoseconds minTime, + Fn&& fn) +{ + using Clock = std::chrono::steady_clock; + + // Run one warmup iteration + auto firstResult = fn(); + + auto benchUntil = Clock::now() + minTime; + size_t iters = 0; + + for (; iters < minIters || Clock::now() < benchUntil; ++iters) { + auto start = Clock::now(); + auto result = fn(); + auto stop = Clock::now(); + if (result != firstResult) { + throw std::runtime_error("Results differ!"); + } + durations.push_back(stop - start); + } + + return firstResult; +} + +nlohmann::json toJson(const std::vector& durations) +{ + auto out = nlohmann::json::array(); + for (const auto& d : durations) { + out.push_back(d.count()); + } + return out; +} + +std::string trunc(std::string str, size_t n, bool left) +{ + if (n < 3) { + throw std::runtime_error("bad n"); + } + if (str.size() > n) { + size_t len = n - 3; + if (left) { + str = "..." + str.substr(str.size() - len); + } else { + str = str.substr(0, len) + "..."; + } + return str; + } else { + return str; + } +} +} // namespace + +nlohmann::json BlockResult::json() const +{ + nlohmann::json data; + data["original_size"] = originalSize; + data["compressed_size"] = compressedSize; + data["best_compression_duration_ns"] = bestCompressionDuration().count(); + data["best_decompression_duration_ns"] = + bestDecompressionDuration().count(); + data["compression_durations_ns"] = toJson(compressionDurations); + data["decompression_durations_ns"] = toJson(decompressionDurations); + return data; +} + +nlohmann::json BenchmarkResult::json() const +{ + nlohmann::json data; + data["file_name"] = fileName; + data["compressor_name"] = compressorName; + data["compressor_config"] = compressorConfig; + data["original_size"] = originalSize(); + data["compressed_size"] = compressedSize(); + data["compression_ratio"] = compressionRatio(); + data["best_compression_duration_ns"] = bestCompressionDuration().count(); + data["best_decompression_duration_ns"] = + bestDecompressionDuration().count(); + data["best_compression_speed_mbps"] = bestCompressionSpeedMBps(); + data["best_decompression_speed_mbps"] = bestDecompressionSpeedMBps(); + data["blocks"] = nlohmann::json::array(); + for (const auto& block : blockResults) { + data["blocks"].push_back(block.json()); + } + return data; +} + +/* static */ std::string BenchmarkResult::header() +{ + char buffer[200]; + int len = snprintf( + buffer, + sizeof(buffer), + "%20s, %40s, %10s, %20s, %20s", + "File", + "Compressor", + "Ratio", + "Compression Speed", + "Decompression Speed"); + if (len < 0 || len >= sizeof(buffer)) { + throw std::runtime_error("bad format"); + } + return buffer; +} + +std::string BenchmarkResult::pretty() const +{ + char buffer[200]; + int len = snprintf( + buffer, + sizeof(buffer), + "%20s, %40s, %10.3f, %15.1f MB/s, %15.1f MB/s", + trunc(fileName, 20, true).c_str(), + trunc(compressorName, 40, false).c_str(), + compressionRatio(), + bestCompressionSpeedMBps(), + bestDecompressionSpeedMBps()); + if (len < 0 || len >= sizeof(buffer)) { + throw std::runtime_error("bad format"); + } + return buffer; +} + +std::vector benchmark( + const tools::io::InputSet& inputs, + const BenchmarkArgs& args) +{ + if (args.minIters == 0) { + throw std::runtime_error("min iters must be at least 1"); + } + for (const auto& compressorConfig : args.compressorConfigs) { + // Ensure each compressor builds + makeCompressor(compressorConfig); + } + + Logger::log_c(LogLevel::INFO, "%s", BenchmarkResult::header().c_str()); + std::vector results; + std::unordered_map summaryResults; + for (const auto& input : inputs) { + for (const auto& compressorConfig : args.compressorConfigs) { + auto compressor = makeCompressor(compressorConfig); + auto data = input->contents(); + + BenchmarkResult result; + result.fileName = input->name(); + result.compressorName = compressor->name(); + result.compressorConfig = compressorConfig; + + const auto blockSize = args.blockSize.value_or(data.size()); + const size_t numBlocks = (data.size() + blockSize - 1) / blockSize; + const auto minTimePerBlock = args.minTime / numBlocks; + + do { + auto block = data.substr(0, blockSize); + BlockResult blockResult; + blockResult.originalSize = block.size(); + auto cCapacity = compressor->compressBound(block); + auto cBuf = std::make_unique(cCapacity); + auto dBuf = std::make_unique(block.size()); + + blockResult.compressedSize = benchmarkFn( + blockResult.compressionDurations, + args.mode == BenchmarkMode::Decompression + ? 0 + : args.minIters, + args.mode == BenchmarkMode::Decompression + ? std::chrono::seconds(0) + : minTimePerBlock, + [&] { + return compressor->compress( + { cBuf.get(), cCapacity }, block); + }); + + auto dSize = benchmarkFn( + blockResult.decompressionDurations, + args.mode == BenchmarkMode::Compression ? 0 + : args.minIters, + args.mode == BenchmarkMode::Compression + ? std::chrono::seconds(0) + : minTimePerBlock, + [&] { + return compressor->decompress( + { dBuf.get(), block.size() }, + { cBuf.get(), blockResult.compressedSize }); + }); + + if (poly::string_view{ dBuf.get(), dSize } != block) { + for (size_t i = 0; i < block.size(); ++i) { + if (dBuf[i] != block[i]) { + throw std::runtime_error( + "Corruption: pos " + std::to_string(i)); + } + } + } + result.blockResults.push_back(blockResult); + data = data.substr(block.size()); + } while (!data.empty()); + Logger::log_c(LogLevel::INFO, "%s", result.pretty().c_str()); + results.push_back(result); + summaryResults[compressorConfig] += result; + } + } + for (const auto& [compressorConfig, result] : summaryResults) { + Logger::log_c(LogLevel::INFO, "%s", result.pretty().c_str()); + } + return results; +} + +} // namespace openzl::bench diff --git a/contrib/lz-research/Benchmark.hpp b/contrib/lz-research/Benchmark.hpp new file mode 100644 index 000000000..411a8b533 --- /dev/null +++ b/contrib/lz-research/Benchmark.hpp @@ -0,0 +1,160 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include +#include +#include + +#include "tools/io/InputSet.h" +#include "tools/json.hpp" + +#include "Compressor.hpp" + +namespace openzl::bench { + +enum class BenchmarkMode { + Both, + Compression, + Decompression, +}; + +struct BenchmarkArgs { + size_t minIters{ 1 }; + std::chrono::nanoseconds minTime{ 1 }; + BenchmarkMode mode{ BenchmarkMode::Both }; + std::vector compressorConfigs; + std::optional blockSize; +}; + +struct BlockResult { + size_t originalSize; + size_t compressedSize; + std::vector compressionDurations; + std::vector decompressionDurations; + + std::chrono::nanoseconds bestCompressionDuration() const + { + if (compressionDurations.empty()) { + return std::chrono::nanoseconds(0); + } + return *std::min_element( + compressionDurations.begin(), compressionDurations.end()); + } + + std::chrono::nanoseconds bestDecompressionDuration() const + { + if (decompressionDurations.empty()) { + return std::chrono::nanoseconds(0); + } + return *std::min_element( + decompressionDurations.begin(), decompressionDurations.end()); + } + + nlohmann::json json() const; +}; + +struct BenchmarkResult { + std::string fileName; + std::string compressorName; + nlohmann::json compressorConfig; + std::vector blockResults; + + size_t originalSize() const + { + size_t total = 0; + for (const auto& block : blockResults) { + total += block.originalSize; + } + return total; + } + + size_t compressedSize() const + { + size_t total = 0; + for (const auto& block : blockResults) { + total += block.compressedSize; + } + return total; + } + + double compressionRatio() const + { + return (double)originalSize() / compressedSize(); + } + + std::chrono::nanoseconds bestCompressionDuration() const + { + std::chrono::nanoseconds total{ 0 }; + for (const auto& block : blockResults) { + total += block.bestCompressionDuration(); + } + return total; + } + + std::chrono::nanoseconds bestDecompressionDuration() const + { + std::chrono::nanoseconds total{ 0 }; + for (const auto& block : blockResults) { + total += block.bestDecompressionDuration(); + } + return total; + } + + double bestCompressionSpeedMBps() const + { + auto dur = bestCompressionDuration(); + if (dur.count() == 0) { + return std::numeric_limits::quiet_NaN(); + } + return (double)originalSize() * 1000.0 / dur.count(); + } + + double bestDecompressionSpeedMBps() const + { + auto dur = bestDecompressionDuration(); + if (dur.count() == 0) { + return std::numeric_limits::quiet_NaN(); + } + return (double)originalSize() * 1000.0 / dur.count(); + } + + BenchmarkResult& operator+=(const BenchmarkResult& other) + { + if (!compressorName.empty() && compressorName != other.compressorName) { + throw std::runtime_error( + "Cannot merge results from different compressors"); + } + if (!compressorConfig.empty() + && compressorConfig != other.compressorConfig) { + throw std::runtime_error( + "Cannot merge results from different compressor configs"); + } + + fileName = "total"; + compressorName = other.compressorName; + compressorConfig = other.compressorConfig; + blockResults.insert( + blockResults.end(), + other.blockResults.begin(), + other.blockResults.end()); + return *this; + } + + BenchmarkResult operator+(const BenchmarkResult& other) const + { + auto result = *this; + result += other; + return result; + } + + nlohmann::json json() const; + static std::string header(); + std::string pretty() const; +}; + +std::vector benchmark( + const tools::io::InputSet& inputs, + const BenchmarkArgs& args); + +} // namespace openzl::bench diff --git a/contrib/lz-research/Compressor.cpp b/contrib/lz-research/Compressor.cpp new file mode 100644 index 000000000..49fbd6b22 --- /dev/null +++ b/contrib/lz-research/Compressor.cpp @@ -0,0 +1,841 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include + +#include "Compressor.hpp" + +#include + +#include "openzl/shared/varint.h" +#include "openzl/zl_reflection.h" +#include "tools/io/OutputFile.h" +#include "tools/training/train.h" + +#include "LzCompressors.hpp" +#include "codecs/Lz.hpp" +#include "openzl/shared/xxhash.h" + +namespace openzl::bench { + +namespace { +namespace fs = std::filesystem; + +const char kBase64EncodeTable[] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', + 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' +}; + +static size_t base64EncodedSize(size_t srcSize) +{ + size_t encodedSize = (srcSize / 3) * 4; + if (srcSize % 3 != 0) { + encodedSize += 4; + } + return encodedSize; +} + +static std::string base64Encode(std::string_view in) +{ + std::string out(base64EncodedSize(in.size()), '\0'); + + const uint8_t* src = (const uint8_t*)in.data(); + const size_t srcSize = in.size(); + char* dst = out.data(); + + const char* const dstBegin = dst; + const uint8_t* const srcEnd = src + srcSize; + for (; (srcEnd - src) >= 3; src += 3, dst += 4) { + dst[0] = kBase64EncodeTable[src[0] >> 2]; + dst[1] = kBase64EncodeTable[((src[0] & 0x03) << 4) + ((src[1] >> 4))]; + dst[2] = kBase64EncodeTable[((src[1] & 0x0f) << 2) + ((src[2] >> 6))]; + dst[3] = kBase64EncodeTable[src[2] & 0x3f]; + } + + if (src < srcEnd) { + assert(src + 1 == srcEnd || src + 2 == srcEnd); + dst[0] = kBase64EncodeTable[src[0] >> 2]; + if (src + 1 == srcEnd) { + dst[1] = kBase64EncodeTable[(src[0] & 0x03) << 4]; + dst[2] = '='; + } else { + dst[1] = kBase64EncodeTable[((src[0] & 0x03) << 4) + (src[1] >> 4)]; + dst[2] = kBase64EncodeTable[(src[1] & 0x0f) << 2]; + } + dst[3] = '='; + dst += 4; + } + const size_t dstSize = (size_t)(dst - dstBegin); + ZL_ASSERT_EQ(dstSize, base64EncodedSize(srcSize)); + return out; +} + +static const uint8_t kBase64DecodeTable[256] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0x3f, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, +}; + +static std::string base64Decode(std::string_view in) +{ + while (!in.empty() && in.back() == '=') { + in = in.substr(0, in.size() - 1); + } + + std::string out; + out.reserve(in.size() * 3 / 4); + const uint8_t* const src = (const uint8_t*)in.data(); + for (size_t i = 0; i + 1 < in.size(); i += 4) { + out += (kBase64DecodeTable[src[i]] << 2) + | (kBase64DecodeTable[src[i + 1]] >> 4); + if (i + 2 < in.size()) { + out += ((kBase64DecodeTable[src[i + 1]] << 4) & 0xf0) + | (kBase64DecodeTable[src[i + 2]] >> 2); + if (i + 3 < in.size()) { + out += ((kBase64DecodeTable[src[i + 2]] << 6) & 0xc0) + | (kBase64DecodeTable[src[i + 3]]); + } + } + } + return out; +} + +static std::string hexEncode(uint64_t in) +{ + constexpr std::array hex = { '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', 'a', 'b', + 'c', 'd', 'e', 'f' }; + std::string out; + out.reserve(16); + for (size_t i = 0; i < 16; ++i) { + auto nibble = (in >> (4 * i)) & 0xF; + out.push_back(hex[nibble]); + } + return out; +} + +size_t zstdThrowIfError(size_t result) +{ + if (ZSTD_isError(result)) { + throw std::runtime_error(ZSTD_getErrorName(result)); + } + return result; +} +size_t lz4ThrowIfError(int result) +{ + if (result <= 0) { + throw std::runtime_error("LZ4 error"); + } + return result; +} + +std::string shortParam(openzl::CParam key) +{ + switch (key) { + case openzl::CParam::CompressedChecksum: + return "ccheck"; + case openzl::CParam::ContentChecksum: + return "dcheck"; + case openzl::CParam::CompressionLevel: + return "clvl"; + case openzl::CParam::DecompressionLevel: + return "dlvl"; + case openzl::CParam::FormatVersion: + return "format"; + case openzl::CParam::MinStreamSize: + return "minsize"; + case openzl::CParam::PermissiveCompression: + return "permissive"; + default: + return std::to_string(int(key)); + } +} + +std::string shortParam(ZSTD_cParameter key) +{ + switch (key) { + case ZSTD_c_windowLog: + return "wlog"; + case ZSTD_c_hashLog: + return "hlog"; + case ZSTD_c_chainLog: + return "clog"; + case ZSTD_c_minMatch: + return "mlen"; + case ZSTD_c_targetLength: + return "tlen"; + case ZSTD_c_strategy: + return "strat"; + case ZSTD_c_checksumFlag: + return "check"; + default: + return std::to_string(key); + } +} + +openzl::CParam parseOpenZLCParam(std::string_view key) +{ + if (key == "StickyParameters") { + throw std::runtime_error("cant set sticky"); + } +#define HANDLE(param) \ + if (key == #param) { \ + return openzl::CParam::param; \ + } + + HANDLE(CompressionLevel); + HANDLE(DecompressionLevel); + HANDLE(FormatVersion); + HANDLE(PermissiveCompression); + HANDLE(CompressedChecksum); + HANDLE(ContentChecksum); + HANDLE(MinStreamSize); + +#undef HANDLE + + throw std::runtime_error("Unknown parameter: " + std::string(key)); +} + +std::string param(openzl::CParam key) +{ +#define HANDLE(param) \ + case openzl::CParam::param: \ + return #param; + + switch (key) { + HANDLE(CompressionLevel); + HANDLE(DecompressionLevel); + HANDLE(FormatVersion); + HANDLE(PermissiveCompression); + HANDLE(CompressedChecksum); + HANDLE(ContentChecksum); + HANDLE(MinStreamSize); + default: + throw std::runtime_error("Bad parameter: " + shortParam(key)); + } +#undef HANDLE +} // namespace + +ZSTD_cParameter parseZstdCParam(std::string_view key) +{ + if (key == "compressionLevel") { + throw std::runtime_error("Set level via level"); + } + +#define HANDLE(param) \ + if (key == #param) { \ + return ZSTD_c_##param; \ + } + + HANDLE(windowLog); + HANDLE(hashLog); + HANDLE(chainLog); + HANDLE(searchLog); + HANDLE(minMatch); + HANDLE(targetLength); + HANDLE(strategy); + HANDLE(targetCBlockSize); + HANDLE(enableLongDistanceMatching); + HANDLE(ldmHashLog); + HANDLE(ldmHashRateLog); + HANDLE(contentSizeFlag); + HANDLE(checksumFlag); + HANDLE(dictIDFlag); + HANDLE(nbWorkers); + HANDLE(jobSize); + HANDLE(overlapLog); + +#undef HANDLE + + throw std::runtime_error("Unknown parameter: " + std::string(key)); +} +} // namespace + +std::string ZstdCompressor::name() const +{ + std::string name = "zstd["; + if (level_.has_value()) { + name += "lvl=" + std::to_string(level_.value()) + ","; + } + if (!params_.empty()) { + for (const auto& [k, v] : params_) { + name += shortParam(k) + "=" + std::to_string(v) + ","; + } + name.pop_back(); + name += ","; + } + name.pop_back(); + if (level_.has_value() || !params_.empty()) { + name += "]"; + } + return name; +} + +ZstdCompressor::ZstdCompressor(nlohmann::json config) +{ + if (config.contains("level")) { + level_ = config["level"]; + } + if (config.contains("params")) { + for (const auto& [key, value] : config["params"].items()) { + params_.emplace(parseZstdCParam(key), int(value)); + } + } +} + +size_t ZstdCompressor::compressBound(std::string_view data) const +{ + return ZSTD_compressBound(data.size()); +} + +size_t ZstdCompressor::decompressedSize(std::string_view compressed) const +{ + auto size = ZSTD_findDecompressedSize(compressed.data(), compressed.size()); + if (size == ZSTD_CONTENTSIZE_ERROR || size == ZSTD_CONTENTSIZE_UNKNOWN) { + throw std::runtime_error("bad content size"); + } + return size; +} + +size_t ZstdCompressor::compress( + std::span compressed, + std::string_view data) +{ + if (!cctx_) { + cctx_.reset(ZSTD_createCCtx()); + if (!cctx_) { + throw std::bad_alloc{}; + } + + // Set default parameters + zstdThrowIfError( + ZSTD_CCtx_setParameter(cctx_.get(), ZSTD_c_checksumFlag, 0)); + + if (level_.has_value()) { + zstdThrowIfError(ZSTD_CCtx_setParameter( + cctx_.get(), ZSTD_c_compressionLevel, level_.value_or(3))); + } + for (const auto& [k, v] : params_) { + zstdThrowIfError(ZSTD_CCtx_setParameter(cctx_.get(), k, v)); + } + } + return zstdThrowIfError(ZSTD_compress2( + cctx_.get(), + compressed.data(), + compressed.size(), + data.data(), + data.size())); +} + +size_t ZstdCompressor::decompress( + std::span decompressed, + std::string_view compressed) +{ + if (!dctx_) { + dctx_.reset(ZSTD_createDCtx()); + if (!dctx_) { + throw std::bad_alloc{}; + } + } + return zstdThrowIfError(ZSTD_decompressDCtx( + dctx_.get(), + decompressed.data(), + decompressed.size(), + compressed.data(), + compressed.size())); +} + +Lz4Compressor::Lz4Compressor(nlohmann::json config) +{ + if (config.contains("level")) { + level_ = config["level"]; + } +} + +std::string Lz4Compressor::name() const +{ + std::string name = "lz4"; + if (level_.has_value()) { + name += "[lvl=" + std::to_string(level_.value()) + "]"; + } + return name; +} + +size_t Lz4Compressor::compressBound(std::string_view data) const +{ + if (data.size() == 0 || data.size() > LZ4_MAX_INPUT_SIZE) { + throw std::runtime_error("Invalid input size"); + } + return ZL_VARINT_LENGTH_64 + LZ4_compressBound(data.size()); +} + +size_t Lz4Compressor::decompressedSize(std::string_view compressed) const +{ + return readHeader(compressed); +} + +size_t Lz4Compressor::writeHeader(std::span& compressed, size_t size) + const +{ + if (compressed.size() < ZL_VARINT_LENGTH_64) { + throw std::runtime_error("Not enough space for header"); + } + auto hSize = ZL_varintEncode(size, (uint8_t*)compressed.data()); + compressed = compressed.subspan(hSize); + return hSize; +} + +size_t Lz4Compressor::readHeader(std::string_view& compressed) const +{ + const uint8_t* p = (const uint8_t*)compressed.data(); + auto result = ZL_varintDecode(&p, p + compressed.size()); + if (ZL_RES_isError(result)) { + throw std::runtime_error("Invalid header"); + } + compressed = compressed.substr(p - (const uint8_t*)compressed.data()); + return size_t(ZL_RES_value(result)); +} + +size_t Lz4Compressor::compress( + std::span compressed, + std::string_view data) +{ + auto hSize = writeHeader(compressed, data.size()); + if (!level_.has_value() || level_.value() <= 1) { + if (!cctx_) { + cctx_ = std::make_unique(LZ4_sizeofState()); + } + auto accel = -level_.value_or(1); + return hSize + + lz4ThrowIfError(LZ4_compress_fast_extState( + cctx_.get(), + data.data(), + compressed.data(), + data.size(), + compressed.size(), + accel)); + } else { + if (!cctx_) { + cctx_ = std::make_unique(LZ4_sizeofStateHC()); + } + return hSize + + lz4ThrowIfError(LZ4_compress_HC_extStateHC( + cctx_.get(), + data.data(), + compressed.data(), + data.size(), + compressed.size(), + level_.value())); + } +} + +size_t Lz4Compressor::decompress( + std::span decompressed, + std::string_view compressed) +{ + readHeader(compressed); + return lz4ThrowIfError(LZ4_decompress_safe( + compressed.data(), + decompressed.data(), + compressed.size(), + decompressed.size())); +} + +SnappyCompressor::SnappyCompressor(nlohmann::json config) +{ + if (config.contains("level")) { + level_ = config["level"]; + } +} + +std::string SnappyCompressor::name() const +{ + std::string name = "snappy"; + if (level_.has_value()) { + name += "[lvl=" + std::to_string(level_.value()) + "]"; + } + return name; +} + +size_t SnappyCompressor::compressBound(std::string_view data) const +{ + return snappy::MaxCompressedLength(data.size()); +} + +size_t SnappyCompressor::decompressedSize(std::string_view compressed) const +{ + size_t size; + snappy::GetUncompressedLength(compressed.data(), compressed.size(), &size); + return size; +} + +size_t SnappyCompressor::compress( + std::span compressed, + std::string_view data) +{ + size_t compressedSize = compressed.size(); + snappy::RawCompress( + data.data(), data.size(), compressed.data(), &compressedSize); + return compressedSize; +} + +size_t SnappyCompressor::decompress( + std::span decompressed, + std::string_view compressed) +{ + if (!snappy::RawUncompress( + compressed.data(), compressed.size(), decompressed.data())) { + throw std::runtime_error("snappy decompress failed"); + } + return decompressedSize(compressed); +} + +Lz4LikeCompressor::Lz4LikeCompressor(nlohmann::json config) {} + +std::string Lz4LikeCompressor::name() const +{ + std::string name = "lz4like"; + return name; +} + +size_t Lz4LikeCompressor::compressBound(std::string_view data) const +{ + return lz::Lz4Like::compressBound(data.size()); +} + +size_t Lz4LikeCompressor::decompressedSize(std::string_view compressed) const +{ + return lz::Lz4Like::decompressedSize(compressed); +} + +size_t Lz4LikeCompressor::compress( + std::span compressed, + std::string_view data) +{ + return lz::Lz4Like::compress(compressed, data); +} + +size_t Lz4LikeCompressor::decompress( + std::span decompressed, + std::string_view compressed) +{ + return lz::Lz4Like::decompress(decompressed, compressed); +} + +namespace { +class SaveInputStreamsIntrospectionHooks + : public openzl::CompressIntrospectionHooks { + public: + SaveInputStreamsIntrospectionHooks( + std::string dir, + std::unordered_set nodes) + : dir_(std::move(dir)), nodes_(std::move(nodes)) + { + } + + void on_codecEncode_start( + ZL_Encoder* eictx, + const ZL_Compressor* compressor, + ZL_NodeID nid, + const ZL_Input* inStreams[], + size_t nbInStreams) override + { + std::string name = ZL_Compressor_Node_getName(compressor, nid); + if (!nodes_.contains(name)) { + return; + } + auto out = dir_ / name; + fs::create_directories(out); + for (size_t i = 0; i < nbInStreams; ++i) { + saveInStream(out, inStreams[i]); + } + } + + ~SaveInputStreamsIntrospectionHooks() override = default; + + private: + void saveInStream(const fs::path& dir, const ZL_Input* in) const + { + XXH3_state_t state; + XXH3_64bits_reset(&state); + const auto type = ZL_Input_type(in); + const auto width = ZL_Input_eltWidth(in); + poly::string_view content = { (const char*)ZL_Input_ptr(in), + ZL_Input_contentSize(in) }; + auto lengths = type == ZL_Type_string + ? poly::string_view{ (const char*)ZL_Input_stringLens(in), + ZL_Input_numElts(in) * sizeof(uint32_t) } + : poly::string_view{}; + XXH3_64bits_update(&state, &type, sizeof(type)); + XXH3_64bits_update(&state, &width, sizeof(width)); + XXH3_64bits_update(&state, content.data(), content.size()); + XXH3_64bits_update(&state, lengths.data(), lengths.size()); + auto hash = hexEncode(XXH3_64bits_digest(&state)); + + std::string name = dir / hash; + if (type == ZL_Type_serial) { + name += ".serial"; + } else if (type == ZL_Type_struct) { + name += ".struct." + std::to_string(width); + } else if (type == ZL_Type_numeric) { + name += ".num." + std::to_string(width); + } else if (type == ZL_Type_string) { + name += ".string"; + auto lensName = name + ".lengths"; + name += ".content"; + tools::io::OutputFile out(lensName); + out.write(lengths); + } + tools::io::OutputFile out(name); + out.write(content); + } + + fs::path dir_; + std::unordered_set nodes_; +}; +} // namespace + +OpenZLCompressor::OpenZLCompressor(nlohmann::json config) +{ + if (config.contains("params")) { + for (const auto& [key, val] : config["params"].items()) { + params_.emplace(parseOpenZLCParam(key), int(val)); + } + } + + if (config.contains("compressor")) { + auto compressor = config["compressor"]; + auto data = base64Decode(std::string(compressor)); + serializedCompressor_.assign((const char*)data.data(), data.size()); + } + + if (config.contains("compressor_name")) { + compressorName_ = config["compressor_name"]; + if (serializedCompressor_.empty()) { + serializedCompressor_ = + lz::getSerializedCompressor(compressorName_); + } + } + + if (config.contains("trace")) { + tracePath_ = config["trace"]; + } + if (config.contains("trace_streams")) { + traceStreamsDir_ = config["trace_streams"]; + } + if (config.contains("save_input_streams")) { + if (tracePath_.has_value()) { + throw std::runtime_error( + "Cannot save input streams when trace is enabled"); + } + const auto& saveInputStreamsConfig = config["save_input_streams"]; + if (!saveInputStreamsConfig.contains("dir")) { + throw std::runtime_error( + "Must set output `dir` for save_input_streams"); + } + if (!saveInputStreamsConfig.contains("nodes")) { + throw std::runtime_error("Must set `nodes` for save_input_streams"); + } + saveInputStreamsHooks_ = + std::make_unique( + saveInputStreamsConfig["dir"], + saveInputStreamsConfig["nodes"] + .get>()); + } + + configure(compressor_); +} + +std::string OpenZLCompressor::name() const +{ + std::string name = "openzl["; + name += "c=" + compressorName_ + ","; + for (const auto& [key, val] : params_) { + name += shortParam(key) + "=" + std::to_string(val) + ","; + } + name.pop_back(); + name += "]"; + return name; +} + +void OpenZLCompressor::configure(openzl::Compressor& compressor) const +{ + lz::registerGraphComponents(compressor); + compressor.deserialize(serializedCompressor_); +} + +void OpenZLCompressor::configure(openzl::CCtx& cctx) const +{ + for (const auto& [key, value] : params_) { + cctx.setParameter(key, value); + } + if (tracePath_) { + cctx.writeTraces(true); + } + if (saveInputStreamsHooks_ != nullptr) { + cctx.unwrap(ZL_CCtx_attachIntrospectionHooks( + cctx.get(), saveInputStreamsHooks_->getRawHooks())); + } +} + +void OpenZLCompressor::configure(openzl::DCtx& dctx) const +{ + lz::registerCustomCodecs(dctx); + dctx.unwrap(ZL_DCtx_setStreamArena(dctx.get(), ZL_DataArenaType_stack)); +} + +size_t OpenZLCompressor::compressBound(std::string_view data) const +{ + return ZL_compressBound(data.size()); +} + +size_t OpenZLCompressor::decompressedSize(std::string_view data) const +{ + auto size = ZL_getDecompressedSize(data.data(), data.size()); + if (ZL_isError(size)) { + throw std::runtime_error("bad size"); + } + return ZL_validResult(size); +} + +size_t OpenZLCompressor::compress( + std::span compressed, + std::string_view data) +{ + if (!cctx_) { + cctx_ = openzl::CCtx(); + + // Set default parameters + cctx_->setParameter(CParam::StickyParameters, 1); + cctx_->setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + cctx_->setParameter(CParam::ContentChecksum, ZL_TernaryParam_disable); + cctx_->setParameter( + CParam::CompressedChecksum, ZL_TernaryParam_disable); + + configure(*cctx_); + } + cctx_->refCompressor(compressor_); + auto cSize = + cctx_->compressSerial(compressed, { data.data(), data.size() }); + + if (tracePath_.has_value()) { + auto [trace, streams] = cctx_->getLatestTrace(); + { + tools::io::OutputFile out(*tracePath_); + out.write(trace); + } + if (traceStreamsDir_.has_value()) { + fs::create_directories(*traceStreamsDir_); + for (const auto& [id, data] : streams) { + { + tools::io::OutputFile out( + fs::path(*traceStreamsDir_) / (id + ".sdd")); + out.write(data.first); + } + if (!data.second.empty()) { + tools::io::OutputFile out( + fs::path(*traceStreamsDir_) / (id + ".sdlens")); + out.write(data.first); + } + } + } + } + + return cSize; +} + +size_t OpenZLCompressor::decompress( + std::span decompressed, + std::string_view compressed) +{ + if (!dctx_) { + dctx_ = openzl::DCtx(); + configure(*dctx_); + } + return dctx_->decompressSerial(decompressed, compressed); +} + +nlohmann::json OpenZLCompressor::makeConfig( + std::string_view suffix, + std::string_view serializedCompressor) const +{ + nlohmann::json config; + config["algorithm"] = "openzl"; + for (const auto& [key, value] : params_) { + config[param(key)] = value; + } + config["compressor_name"] = compressorName_ + "/" + std::string(suffix); + config["compressor"] = base64Encode(serializedCompressor); + + return config; +} + +nlohmann::json OpenZLCompressor::train( + poly::span samples) const +{ + std::vector inputs; + for (const auto& sample : samples) { + training::MultiInput input; + input.add(Input::refSerial(sample)); + inputs.push_back(std::move(input)); + } + training::TrainParams params; + params.compressorGenFunc = [this](poly::string_view serialized) { + auto compressor = std::make_unique(); + configure(*compressor); + compressor->deserialize(serialized); + return compressor; + }; + params.paretoFrontier = true; + openzl::Compressor trainingCompressor; + configure(trainingCompressor); + auto compressors = training::train(inputs, trainingCompressor, params); + + nlohmann::json out = nlohmann::json::array(); + for (size_t idx = 0; idx < compressors.size(); ++idx) { + out.push_back(makeConfig(std::to_string(idx), *compressors[idx])); + } + + return out; +} + +std::unique_ptr makeCompressor(nlohmann::json config) +{ + std::string algo = config["algorithm"]; + if (algo == "zstd") { + return std::make_unique(config); + } else if (algo == "lz4") { + return std::make_unique(config); + } else if (algo == "snappy") { + return std::make_unique(config); + } else if (algo == "lz4like") { + return std::make_unique(config); + } else if (algo == "openzl") { + return std::make_unique(config); + } else { + throw std::runtime_error("Unknown algorithm: " + algo); + } +} + +} // namespace openzl::bench diff --git a/contrib/lz-research/Compressor.hpp b/contrib/lz-research/Compressor.hpp new file mode 100644 index 000000000..300f51f9a --- /dev/null +++ b/contrib/lz-research/Compressor.hpp @@ -0,0 +1,207 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "openzl/openzl.hpp" +#include "tools/json.hpp" + +namespace openzl::bench { +class Compressor { + public: + virtual std::string name() const = 0; + virtual size_t compressBound(std::string_view data) const = 0; + virtual size_t decompressedSize(std::string_view compressed) const = 0; + virtual size_t compress( + std::span compressed, + std::string_view data) = 0; + virtual size_t decompress( + std::span decompressed, + std::string_view compressed) = 0; + virtual nlohmann::json train( + poly::span samples) const + { + throw std::runtime_error("Training not supported"); + } + + std::string compress(std::string_view data) + { + std::string compressed; + compressed.resize(compressBound(data)); + auto size = compress(compressed, data); + compressed.resize(size); + return compressed; + } + + std::string decompress(std::string_view compressed) + { + std::string decompressed; + decompressed.resize(decompressedSize(compressed)); + auto size = decompress(decompressed, compressed); + decompressed.resize(size); + return decompressed; + } + + virtual ~Compressor() = default; +}; + +class ZstdCompressor : public Compressor { + public: + explicit ZstdCompressor(int level) : level_(level) {} + explicit ZstdCompressor(std::unordered_map params) + : params_(std::move(params)) + { + } + ZstdCompressor( + std::optional level, + std::unordered_map params) + : level_(level), params_(std::move(params)) + { + } + explicit ZstdCompressor(nlohmann::json config); + + std::string name() const override; + size_t compressBound(std::string_view data) const override; + size_t decompressedSize(std::string_view compressed) const override; + size_t compress(std::span compressed, std::string_view data) override; + size_t decompress(std::span decompressed, std::string_view compressed) + override; + + virtual ~ZstdCompressor() = default; + + private: + struct CCtxDeleter { + void operator()(ZSTD_CCtx* ctx) const + { + ZSTD_freeCCtx(ctx); + } + }; + using ZstdCCtx = std::unique_ptr; + struct DCtxDeleter { + void operator()(ZSTD_DCtx* ctx) const + { + ZSTD_freeDCtx(ctx); + } + }; + using ZstdDCtx = std::unique_ptr; + + std::optional level_; + std::unordered_map params_; + ZstdCCtx cctx_; + ZstdDCtx dctx_; +}; + +class Lz4Compressor : public Compressor { + public: + explicit Lz4Compressor(std::optional level) : level_(level) {} + explicit Lz4Compressor(nlohmann::json config); + + std::string name() const override; + size_t compressBound(std::string_view data) const override; + size_t decompressedSize(std::string_view compressed) const override; + size_t compress(std::span compressed, std::string_view data) override; + size_t decompress(std::span decompressed, std::string_view compressed) + override; + + virtual ~Lz4Compressor() = default; + + private: + size_t writeHeader(std::span& compressed, size_t size) const; + size_t readHeader(std::string_view& compressed) const; + + std::optional level_; + std::unique_ptr cctx_; +}; + +class SnappyCompressor : public Compressor { + public: + explicit SnappyCompressor(std::optional level) : level_(level) {} + explicit SnappyCompressor(nlohmann::json config); + + std::string name() const override; + size_t compressBound(std::string_view data) const override; + size_t decompressedSize(std::string_view compressed) const override; + size_t compress(std::span compressed, std::string_view data) override; + size_t decompress(std::span decompressed, std::string_view compressed) + override; + + virtual ~SnappyCompressor() = default; + + std::optional level_; +}; + +class Lz4LikeCompressor : public Compressor { + public: + explicit Lz4LikeCompressor() {} + explicit Lz4LikeCompressor(nlohmann::json config); + + std::string name() const override; + size_t compressBound(std::string_view data) const override; + size_t decompressedSize(std::string_view compressed) const override; + size_t compress(std::span compressed, std::string_view data) override; + size_t decompress(std::span decompressed, std::string_view compressed) + override; + + virtual ~Lz4LikeCompressor() = default; +}; + +class OpenZLCompressor : public Compressor { + public: + OpenZLCompressor( + std::string compressorName, + openzl::Compressor compressor, + std::unordered_map params) + : compressorName_(std::move(compressorName)), + compressor_(std::move(compressor)), + params_(std::move(params)) + { + } + + explicit OpenZLCompressor(nlohmann::json config); + + std::string name() const override; + + size_t compressBound(std::string_view data) const override; + size_t decompressedSize(std::string_view compressed) const override; + size_t compress(std::span compressed, std::string_view data) override; + size_t decompress(std::span decompressed, std::string_view compressed) + override; + + void configure(openzl::Compressor& compressor) const; + void configure(openzl::CCtx& cctx) const; + void configure(openzl::DCtx& dctx) const; + + nlohmann::json train( + poly::span samples) const override; + + virtual ~OpenZLCompressor() = default; + + private: + nlohmann::json makeConfig( + std::string_view suffix, + std::string_view serializedCompressor) const; + + std::string compressorName_; + std::string serializedCompressor_; + openzl::Compressor compressor_; + std::unordered_map params_; + std::optional cctx_; + std::optional dctx_; + std::optional tracePath_; + std::optional traceStreamsDir_; + std::unique_ptr saveInputStreamsHooks_; +}; + +std::unique_ptr makeCompressor(nlohmann::json config); + +} // namespace openzl::bench diff --git a/contrib/lz-research/LzCompressors.cpp b/contrib/lz-research/LzCompressors.cpp new file mode 100644 index 000000000..f24e4db9b --- /dev/null +++ b/contrib/lz-research/LzCompressors.cpp @@ -0,0 +1,297 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "LzCompressors.hpp" + +#include "codecs/Bucket.hpp" +#include "codecs/Bucket16.hpp" +#include "codecs/IsoByte.hpp" +#include "codecs/Lz.hpp" +#include "codecs/SmallInt.hpp" +#include "codecs/VarByte.hpp" +#include "openzl/codecs/zl_lz.h" +#include "openzl/codecs/zl_partition.h" +#include "openzl/compress/private_nodes.h" + +namespace openzl::lz { +namespace { +GraphID +smallIntGraph(Compressor& compressor, GraphID smallGraph, GraphID largeGraph) +{ + auto node = compressor.getNode("lz_research.small_int"); + if (!node.has_value()) { + throw std::runtime_error("small_int node not found"); + } + return compressor.buildStaticGraph(*node, { smallGraph, largeGraph }); +} + +GraphID +varByteGraph(Compressor& compressor, GraphID controlGraph, GraphID packedGraph) +{ + auto node = compressor.getNode("lz_research.var_byte"); + if (!node.has_value()) { + throw std::runtime_error("var_byte node not found"); + } + return compressor.buildStaticGraph(*node, { controlGraph, packedGraph }); +} + +GraphID isoByteGraph( + Compressor& compressor, + GraphID bitmapGraph = ZL_GRAPH_HUFFMAN, + GraphID highByteGraph = ZL_GRAPH_HUFFMAN) +{ + auto node = compressor.getNode("lz_research.iso_byte"); + if (!node.has_value()) { + throw std::runtime_error("iso_byte node not found"); + } + return compressor.buildStaticGraph( + *node, { bitmapGraph, ZL_GRAPH_STORE, highByteGraph }); +} + +GraphID bucketGraph(Compressor& compressor, bool entropyCompressFixed = false) +{ + return BucketGraph::create(compressor, entropyCompressFixed); +} + +GraphID bucket16Graph(Compressor& compressor) +{ + return Bucket16Graph::create(compressor); +} + +std::string lzStoreCompressor(int llBits) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto lzNode = registerLz(compressor, { .llBits = llBits }); + auto store = graphs::Store{}(); + auto graph = compressor.buildStaticGraph( + lzNode, + { graphs::ACE{ store }(compressor), + graphs::ACE{ store }(compressor), + graphs::ACE{ store }(compressor), + graphs::ACE{ store }(compressor) }); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string lzLz4Compressor(int llBits, bool huf) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto lzNode = registerLz(compressor, { .llBits = llBits }); + auto store = graphs::Store{}(); + // TODO: Bitpack offsets when input is small enough + auto lits = huf ? graphs::Huffman{}() : store; + auto graph = compressor.buildStaticGraph( + lzNode, + { lits, + store, + store, + smallIntGraph( + compressor, + store, + nodes::RangePack{}(compressor, store)) }); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string +lzZstdCompressor(int llBits, bool slow, bool iso = false, bool bucket = false) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto lzNode = registerLz(compressor, { .llBits = llBits }); + auto store = graphs::Store{}(); + auto quantize = + nodes::QuantizeLengths{}(compressor, graphs::Fse{}(), store); + auto huf = graphs::Huffman{}(); + auto lits = huf; + auto tokens = huf; + auto offsets = slow + ? (iso ? isoByteGraph(compressor, huf, bucketGraph(compressor)) + : varByteGraph(compressor, huf, store)) + : store; + if (bucket) { + offsets = bucket16Graph(compressor); + } + offsets = ZL_GRAPH_PARTITION_BITPACK; + auto extraLens = smallIntGraph( + compressor, + slow ? huf : store, + sizeof(length_t) == 2 ? store : quantize); + auto graph = compressor.buildStaticGraph( + lzNode, { lits, tokens, offsets, extraLens }); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string lzStdCompressor(bool slow) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto lzNode = ZL_NODE_LZ; + auto store = graphs::Store{}(); + auto huf = graphs::Huffman{}(); + auto lits = huf; + // auto tokens = huf; + auto offsets = slow ? ZL_GRAPH_PARTITION_BITPACK : store; + auto lens = slow ? ZL_GRAPH_COMPRESS_SMALL_LENGTHS : store; + auto graph = + compressor.buildStaticGraph(lzNode, { lits, offsets, lens, lens }); + (void)graph; + compressor.selectStartingGraph(ZL_GRAPH_LZ); + return compressor.serialize(); +} + +std::string varByteCompressor(int width) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto store = graphs::Store{}(); + auto huf = graphs::Huffman{}(); + auto graph = varByteGraph(compressor, huf, store); + graph = nodes::ConvertSerialToNumLE{ width }(compressor, graph); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string isoByteCompressor(bool useBucket, bool entropy = false) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto huf = graphs::Huffman{}(); + auto graph = isoByteGraph( + compressor, + huf, + useBucket ? bucketGraph(compressor, entropy) : huf); + graph = nodes::ConvertSerialToNumLE{ 2 }(compressor, graph); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string smallIntCompressor(int width, bool slow) +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto store = graphs::Store{}(); + auto huf = graphs::Huffman{}(); + auto quantize = + nodes::QuantizeLengths{}(compressor, graphs::Fse{}(), store); + auto graph = smallIntGraph( + compressor, + slow ? huf : store, + width == 2 ? ZL_GRAPH_PARTITION_BITPACK : quantize); + graph = nodes::ConvertSerialToNumLE{ width }(compressor, graph); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string bucket16Compressor() +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto graph = bucket16Graph(compressor); + graph = nodes::ConvertSerialToNumLE{ 2 }(compressor, graph); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string partitionOffsetsCompressor() +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto graph = ZL_GRAPH_PARTITION_BITPACK; + graph = nodes::ConvertSerialToNumLE{ 2 }(compressor, graph); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +std::string huff16Compressor() +{ + openzl::Compressor compressor; + registerGraphComponents(compressor); + auto graph = ZL_GRAPH_HUFFMAN; + graph = nodes::ConvertSerialToStruct{ 2 }(compressor, graph); + compressor.selectStartingGraph(graph); + return compressor.serialize(); +} + +} // namespace + +std::string getSerializedCompressor(std::string_view name) +{ + for (int llBits = 0; llBits <= 7; ++llBits) { + auto suffix = "[llbits=" + std::to_string(llBits) + "]"; + if (llBits == 0) { + suffix = ""; + } + if (name == "lz-store" + suffix) { + return lzStoreCompressor(llBits); + } else if (name == "lz-lz4" + suffix) { + return lzLz4Compressor(llBits, false); + } else if (name == "lz-lz4-huf" + suffix) { + return lzLz4Compressor(llBits, true); + } else if (name == "lz-zstd-fast" + suffix) { + return lzZstdCompressor(llBits, false); + } else if (name == "lz-zstd-slow" + suffix) { + return lzZstdCompressor(llBits, true); + } else if (name == "lz-zstd-iso" + suffix) { + return lzZstdCompressor(llBits, true, true); + } else if (name == "lz-zstd-buc" + suffix) { + return lzZstdCompressor(llBits, false, false, true); + } + } + if (name == "varbyte16") { + return varByteCompressor(2); + } else if (name == "isobyte16") { + return isoByteCompressor(false); + } else if (name == "isobyte16-bucket") { + return isoByteCompressor(true); + } else if (name == "isobyte16-bucket-huf") { + return isoByteCompressor(true, true); + } else if (name == "varbyte32") { + return varByteCompressor(4); + } else if (name == "smallint16-store") { + return smallIntCompressor(2, false); + } else if (name == "smallint16-huf") { + return smallIntCompressor(2, true); + } else if (name == "smallint32-store") { + return smallIntCompressor(4, false); + } else if (name == "smallint32-huf") { + return smallIntCompressor(4, true); + } else if (name == "bucket16") { + return bucket16Compressor(); + } else if (name == "partition-offsets") { + return partitionOffsetsCompressor(); + } else if (name == "lz-std-fast") { + return lzStdCompressor(false); + } else if (name == "lz-std-slow") { + return lzStdCompressor(true); + } else if (name == "huff16") { + return huff16Compressor(); + } + throw std::runtime_error("Unknown compressor: " + std::string(name)); +} + +void registerGraphComponents(openzl::Compressor& compressor) +{ + compressor.registerFunctionGraph(std::make_shared()); + compressor.registerFunctionGraph(std::make_shared()); + registerLz(compressor, {}); + compressor.registerCustomEncoder(std::make_shared()); + compressor.registerCustomEncoder(std::make_shared()); + compressor.registerCustomEncoder(std::make_shared()); + compressor.registerCustomEncoder(std::make_shared()); + compressor.registerCustomEncoder(std::make_shared()); +} + +void registerCustomCodecs(openzl::DCtx& dctx) +{ + registerLz(dctx); + dctx.registerCustomDecoder(std::make_shared()); + dctx.registerCustomDecoder(std::make_shared()); + dctx.registerCustomDecoder(std::make_shared()); + dctx.registerCustomDecoder(std::make_shared()); + dctx.registerCustomDecoder(std::make_shared()); +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/LzCompressors.hpp b/contrib/lz-research/LzCompressors.hpp new file mode 100644 index 000000000..770372d5c --- /dev/null +++ b/contrib/lz-research/LzCompressors.hpp @@ -0,0 +1,17 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include +#include + +#include + +namespace openzl::lz { + +std::string getSerializedCompressor(std::string_view name); + +void registerGraphComponents(openzl::Compressor& compressor); +void registerCustomCodecs(openzl::DCtx& dctx); + +} // namespace openzl::lz diff --git a/contrib/lz-research/Main.cpp b/contrib/lz-research/Main.cpp new file mode 100644 index 000000000..e8c228639 --- /dev/null +++ b/contrib/lz-research/Main.cpp @@ -0,0 +1,458 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include +#include +#include +#include + +#include "Benchmark.hpp" +#include "tools/arg/arg_parser.h" +#include "tools/arg/parsed_args.h" +#include "tools/io/InputFile.h" +#include "tools/io/InputSetBuilder.h" +#include "tools/io/OutputFile.h" +#include "tools/json.hpp" +#include "tools/logger/Logger.h" + +namespace openzl { +namespace { +namespace fs = std::filesystem; + +nlohmann::json loadJsonFromFlag(const std::optional& flag) +{ + if (!flag.has_value() || flag->empty()) { + throw std::runtime_error("Specify a value for --compressor"); + } + nlohmann::json out; + try { + out = nlohmann::json::parse(*flag); + } catch (const std::exception&) { + tools::io::InputFile file(*flag); + out = nlohmann::json::parse(file.contents()); + } + return out; +} + +std::unique_ptr buildInputSet( + const std::vector& inputs, + bool staticSet = false) +{ + tools::io::InputSetBuilder builder(true); + for (const auto& path : inputs) { + builder.add_path(path); + } + return staticSet ? std::move(builder).build_static() + : std::move(builder).build(); +} + +enum class Commands { + Benchmark = 1, + Compress = 2, + Decompress = 3, + Train = 4, +}; + +class Command { + public: + virtual void addArguments(openzl::arg::ArgParser& parser) const = 0; + virtual void parseArguments(const openzl::arg::ParsedArgs& parser) = 0; + virtual void run() const = 0; + virtual ~Command() = default; +}; + +class BenchmarkCommand : public Command { + public: + void addArguments(openzl::arg::ArgParser& parser) const override + { + parser.addCommand(int(Commands::Benchmark), "benchmark", 'b'); + parser.addCommandPositional( + int(Commands::Benchmark), + arg::NumArgs::OneOrMore, + "input", + "Input files or directories to benchmark on"); + parser.addCommandFlag( + int(Commands::Benchmark), + "min-iters", + 'i', + true, + "Minimum number of iterations to run - defaults to 1"); + parser.addCommandFlag( + int(Commands::Benchmark), + "min-secs", + 's', + true, + "Minimum number of seconds to run - defaults to 1"); + parser.addCommandFlag( + int(Commands::Benchmark), + "compressors", + 'c', + true, + "Either a JSON array of compressor configs, or a path to a file containing those configs"); + parser.addCommandFlag( + int(Commands::Benchmark), + "output", + 'o', + true, + "Path to output file"); + parser.addCommandFlag( + int(Commands::Benchmark), + "compress-only", + 'C', + false, + "Only benchmark compression, not decompression"); + parser.addCommandFlag( + int(Commands::Benchmark), + "decompress-only", + 'D', + false, + "Only benchmark decompression, not compression"); + parser.addCommandFlag( + int(Commands::Benchmark), + "block-size", + 'B', + true, + "Break input into blocks of this size, and benchmark on each block"); + } + + void parseArguments(const openzl::arg::ParsedArgs& args) override + { + benchmark_ = args.chosenCmd() == int(Commands::Benchmark); + if (!benchmark_) { + return; + } + inputPaths_ = args.cmdPositionals(int(Commands::Benchmark), "input"); + + auto minItersFlag = args.cmdFlag(int(Commands::Benchmark), "min-iters"); + if (minItersFlag.has_value()) { + args_.minIters = std::stoull(minItersFlag.value()); + } + + auto minSecsFlag = args.cmdFlag(int(Commands::Benchmark), "min-secs"); + if (minSecsFlag.has_value()) { + args_.minTime = + std::chrono::seconds(std::stoull(minSecsFlag.value())); + } + + auto blockSizeFlag = + args.cmdFlag(int(Commands::Benchmark), "block-size"); + if (blockSizeFlag.has_value()) { + args_.blockSize = std::stoull(blockSizeFlag.value()); + } + + auto outputFlag = args.cmdFlag(int(Commands::Benchmark), "output"); + if (!outputFlag.has_value()) { + throw std::runtime_error("Specify a value for --output"); + } + output_ = outputFlag.value(); + + const bool compressOnly = + args.cmdFlag(int(Commands::Benchmark), "compress-only") + .has_value(); + const bool decompressOnly = + args.cmdFlag(int(Commands::Benchmark), "decompress-only") + .has_value(); + if (compressOnly && decompressOnly) { + throw std::runtime_error( + "Cannot specify both --compress-only and --decompress-only"); + } + if (compressOnly) { + args_.mode = bench::BenchmarkMode::Compression; + } else if (decompressOnly) { + args_.mode = bench::BenchmarkMode::Decompression; + } else { + args_.mode = bench::BenchmarkMode::Both; + } + + auto compressorsFlag = + args.cmdFlag(int(Commands::Benchmark), "compressors"); + auto compressors = loadJsonFromFlag(compressorsFlag.value()); + for (const auto& compressor : compressors) { + args_.compressorConfigs.push_back(compressor); + } + } + + void run() const override + { + if (!benchmark_) { + return; + } + auto inputs = buildInputSet(inputPaths_); + auto results = bench::benchmark(*inputs, args_); + + nlohmann::json out = nlohmann::json::array(); + for (const auto& result : results) { + out.push_back(result.json()); + } + std::ofstream outStream(output_); + outStream << out.dump(2); + } + + ~BenchmarkCommand() override = default; + + private: + bool benchmark_ = false; + std::vector inputPaths_; + bench::BenchmarkArgs args_; + std::string output_; +}; + +class CompressCommand : public Command { + public: + void addArguments(openzl::arg::ArgParser& parser) const + { + parser.addCommand(int(Commands::Compress), "compress", 'c'); + parser.addCommandPositional( + int(Commands::Compress), + arg::NumArgs::OneOrMore, + "input", + "Input files or directories to compress"); + parser.addCommandFlag( + int(Commands::Compress), + "compressor", + 'c', + true, + "Either a JSON compressor config, or a path to a file containing a config"); + parser.addCommandFlag( + int(Commands::Compress), + "output", + 'o', + true, + "Path to output file"); + } + + void parseArguments(const openzl::arg::ParsedArgs& parser) + { + compress_ = parser.chosenCmd() == int(Commands::Compress); + if (!compress_) { + return; + } + inputPaths_ = parser.cmdPositionals(int(Commands::Compress), "input"); + + auto compressorFlag = + parser.cmdFlag(int(Commands::Compress), "compressor"); + compressor_ = loadJsonFromFlag(compressorFlag.value()); + + outputPath_ = parser.cmdFlag(int(Commands::Compress), "output"); + + if (outputPath_.has_value() + && (inputPaths_.size() != 1 || fs::is_directory(inputPaths_[0]))) { + throw std::runtime_error( + "--output can only be used with a single input"); + } + } + + void run() const + { + if (!compress_) { + return; + } + + auto compressor = bench::makeCompressor(compressor_); + auto inputs = buildInputSet(inputPaths_); + for (const auto& input : *inputs) { + auto compressed = compressor->compress(input->contents()); + auto outputPath = + outputPath_.value_or(std::string(input->name()) + ".zl"); + tools::io::OutputFile out(outputPath); + out.write(compressed); + } + } + + ~CompressCommand() override = default; + + private: + bool compress_{ false }; + std::vector inputPaths_; + nlohmann::json compressor_; + std::optional outputPath_; +}; + +class DecompressCommand : public Command { + public: + void addArguments(openzl::arg::ArgParser& parser) const + { + parser.addCommand(int(Commands::Decompress), "decompress", 'd'); + parser.addCommandPositional( + int(Commands::Decompress), + arg::NumArgs::OneOrMore, + "input", + "Input files or directories to compress"); + parser.addCommandFlag( + int(Commands::Decompress), + "compressor", + 'c', + true, + "Either a JSON compressor config, or a path to a file containing a config"); + parser.addCommandFlag( + int(Commands::Decompress), + "output", + 'o', + true, + "Path to output file"); + } + + void parseArguments(const openzl::arg::ParsedArgs& parser) + { + decompress_ = parser.chosenCmd() == int(Commands::Decompress); + if (!decompress_) { + return; + } + inputPaths_ = parser.cmdPositionals(int(Commands::Decompress), "input"); + + auto compressorFlag = + parser.cmdFlag(int(Commands::Decompress), "compressor"); + compressor_ = loadJsonFromFlag(compressorFlag.value()); + + outputPath_ = parser.cmdFlag(int(Commands::Decompress), "output"); + } + + void run() const + { + if (!decompress_) { + return; + } + + auto compressor = bench::makeCompressor(compressor_); + auto inputs = buildInputSet(inputPaths_); + for (const auto& input : *inputs) { + auto decompressed = compressor->decompress(input->contents()); + + auto outputPath = outputPath_; + if (!outputPath.has_value()) { + if (input->name().ends_with(".zl")) { + outputPath = + input->name().substr(0, input->name().size() - 3); + } else { + throw std::runtime_error( + "Cannot determine output for " + + std::string(input->name())); + } + } + tools::io::OutputFile out(*outputPath); + out.write(decompressed); + } + } + + ~DecompressCommand() override = default; + + private: + bool decompress_{ false }; + std::vector inputPaths_; + nlohmann::json compressor_; + std::optional outputPath_; +}; + +class TrainCommand : public Command { + public: + void addArguments(openzl::arg::ArgParser& parser) const + { + parser.addCommand(int(Commands::Train), "train", 't'); + parser.addCommandPositional( + int(Commands::Train), + arg::NumArgs::OneOrMore, + "input", + "Input files or directories to compress"); + parser.addCommandFlag( + int(Commands::Train), + "compressor", + 'c', + true, + "Either a JSON compressor config, or a path to a file containing a config"); + parser.addCommandFlag( + int(Commands::Train), + "output", + 'o', + true, + "Path to output file"); + } + + void parseArguments(const openzl::arg::ParsedArgs& parser) + { + train_ = parser.chosenCmd() == int(Commands::Train); + if (!train_) { + return; + } + inputPaths_ = parser.cmdPositionals(int(Commands::Train), "input"); + + auto compressorFlag = + parser.cmdFlag(int(Commands::Train), "compressor"); + compressor_ = loadJsonFromFlag(compressorFlag.value()); + + auto outputFlag = parser.cmdFlag(int(Commands::Train), "output"); + if (!outputFlag.has_value()) { + throw std::runtime_error("--output must be provided"); + } + outputPath_ = *outputFlag; + } + + void run() const + { + if (!train_) { + return; + } + + auto compressor = bench::makeCompressor(compressor_); + auto inputs = buildInputSet(inputPaths_, /* static */ true); + std::vector samples; + for (const auto& input : *inputs) { + samples.push_back(input->contents()); + } + auto config = compressor->train(samples); + + tools::io::OutputFile out(outputPath_); + out.write(config.dump(2)); + } + + ~TrainCommand() override = default; + + private: + bool train_{ false }; + std::vector inputPaths_; + nlohmann::json compressor_; + std::string outputPath_; +}; + +} // namespace +} // namespace openzl + +int main(int argc, char** argv) +{ + using openzl::tools::logger::Logger; + using openzl::tools::logger::LogLevel; + + std::vector> commands; + commands.emplace_back(std::make_unique()); + commands.emplace_back(std::make_unique()); + commands.emplace_back(std::make_unique()); + commands.emplace_back(std::make_unique()); + + openzl::arg::ArgParser parser; + for (const auto& command : commands) { + command->addArguments(parser); + } + + try { + auto parsedArgs = parser.parse(argc, argv); + for (auto& command : commands) { + command->parseArguments(parsedArgs); + } + } catch (const std::exception& e) { + Logger::log_c(LogLevel::INFO, "%s", parser.help().c_str()); + Logger::log_c( + LogLevel::ERRORS, "Argument Parsing Error:\n\t %s", e.what()); + return 1; + } + + try { + for (auto& command : commands) { + command->run(); + } + } catch (const std::exception& e) { + Logger::log_c( + LogLevel::ERRORS, "Unhandled Exception:\n\t %s", e.what()); + return 1; + } + + return 0; +} diff --git a/contrib/lz-research/codecs/Bucket.cpp b/contrib/lz-research/codecs/Bucket.cpp new file mode 100644 index 000000000..c10ed09d5 --- /dev/null +++ b/contrib/lz-research/codecs/Bucket.cpp @@ -0,0 +1,809 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "Bucket.hpp" + +#include +#include +#include +#include + +#include "CodecIDs.hpp" +#include "utils/Portability.hpp" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/data_stats.h" +#include "openzl/shared/histogram.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" +#include "openzl/shared/utils.h" +#include "utils/Partition.hpp" + +#if ZL_ARCH_X86_64 +# include +#endif + +namespace openzl::lz { +namespace { + +SimpleCodecDescription bucketCodecDescription() +{ + return SimpleCodecDescription{ + .id = unsigned(CustomCodecIDs::Bucket), + .name = "!lz_research.bucket", + .inputType = Type::Serial, + .outputTypes = { Type::Serial, Type::Serial }, + }; +} + +class BucketEncoderState { + public: + BucketEncoderState(poly::span bases, int maxSymbolValue) + : bases_(bases), numSymbols_(maxSymbolValue + 1) + { + if (bases.empty()) { + throw std::runtime_error("bases is empty"); + } + for (size_t i = 1; i < bases.size(); ++i) { + if (bases[i - 1] >= bases[i]) { + throw std::runtime_error("bases not strictly increasing"); + } + } + + fixedBits_ = ZL_nextPow2(bases_.size()); + + size_t nextBaseIdx = 0; + size_t bits = 0; + maxVarBits_ = 0; + for (size_t byte = 0; byte < 256; ++byte) { + const auto end = + nextBaseIdx == bases_.size() ? 256 : bases_[nextBaseIdx]; + if (byte >= end) { + bits = ZL_nextPow2(getBucketSize(nextBaseIdx)); + maxVarBits_ = std::max(maxVarBits_, bits); + ++nextBaseIdx; + } + byteToVarBits_[byte] = bits; + byteToBucket_[byte] = nextBaseIdx - 1; + byteToBase_[byte] = bases_[nextBaseIdx - 1]; + } + } + + size_t fixedBits() const + { + return fixedBits_; + } + + size_t maxVarBits() const + { + return maxVarBits_; + } + + poly::span bases() const + { + return bases_; + } + + size_t fixedStreamSize(size_t numElts) const + { + return (fixedBits() * numElts + 7) / 8; + } + + size_t varStreamBound(size_t numElts) const + { + return (maxVarBits() * numElts + 7) / 8; + } + + size_t encode(poly::span input, uint8_t* fixed, uint8_t* var) + const + { + ZS_BitCStreamFF fixedBitstream = + ZS_BitCStreamFF_init(fixed, fixedStreamSize(input.size())); + ZS_BitCStreamFF varBitstream = + ZS_BitCStreamFF_init(var, varStreamBound(input.size())); + + for (const auto x : input) { + const auto varBits = byteToVarBits_[x]; + if (x - byteToBase_[x] >= (1u << varBits)) { + throw std::runtime_error("Invalid bases for input"); + } + assert(x >= byteToBase_[x]); + assert(x - byteToBase_[x] < (1u << varBits)); + ZS_BitCStreamFF_write( + &fixedBitstream, byteToBucket_[x], fixedBits_); + ZS_BitCStreamFF_flush(&fixedBitstream); + ZS_BitCStreamFF_write(&varBitstream, x - byteToBase_[x], varBits); + ZS_BitCStreamFF_flush(&varBitstream); + } + + unwrap(ZS_BitCStreamFF_finish(&fixedBitstream)); + return unwrap(ZS_BitCStreamFF_finish(&varBitstream)); + } + + private: + size_t getBucketSize(size_t baseIdx) const + { + if (baseIdx >= bases_.size()) { + return 1; + } + size_t base = bases_[baseIdx]; + assert(base < numSymbols_); + auto end = baseIdx + 1 == bases_.size() ? numSymbols_ + : size_t(bases_[baseIdx + 1]); + assert(end > base); + return end - base; + } + + poly::span bases_; + size_t numSymbols_; + size_t fixedBits_; + std::array byteToBucket_; + std::array byteToBase_; + std::array byteToVarBits_; + size_t maxVarBits_; +}; + +class BucketDecoderState { + public: + BucketDecoderState(poly::span header) + { + if (header.size() < 2) { + throw std::runtime_error("header is empty"); + } + unusedFixedBits_ = header[0] % 8; + size_t maxSymbolValue = header[1]; + numSymbols_ = maxSymbolValue + 1; + const auto bases = header.subspan(2); + if (bases.empty()) { + throw std::runtime_error("bases is empty"); + } + if (bases.size() > bases_.size()) { + throw std::runtime_error("bases is > 256"); + } + if (bases.back() > maxSymbolValue) { + throw std::runtime_error("bases[-1] is > maxSymbolValue"); + } + for (size_t i = 1; i < bases.size(); ++i) { + if (bases[i - 1] >= bases[i]) { + throw std::runtime_error("bases not strictly increasing"); + } + } + memcpy(bases_.data(), bases.data(), bases.size()); + numBases_ = bases.size(); + + maxVarBits_ = 0; + for (size_t i = 0; i < bases.size(); ++i) { + varBits_[i] = ZL_nextPow2(getBucketSize(i)); + maxVarBits_ = std::max(maxVarBits_, varBits_[i]); + assert(varBits_[i] <= 8); + } + + fixedBits_ = ZL_nextPow2(bases.size()); + assert(fixedBits_ <= 8); + } + + size_t fixedBits() const + { + return fixedBits_; + } + + poly::span bases() const + { + return { bases_.data(), numBases_ }; + } + + size_t numElts(size_t fixedSize) const + { + const auto totalFixedBits = fixedSize * 8; + if (totalFixedBits < unusedFixedBits_) { + throw std::runtime_error("bad number of bits"); + } + if ((totalFixedBits - unusedFixedBits_) % fixedBits_ != 0) { + throw std::runtime_error("leftover bits"); + } + return (totalFixedBits - unusedFixedBits_) / fixedBits_; + } + + static std::array expandLUT(poly::span lut) + { + std::array expanded; + for (size_t byte = 0; byte < 256; ++byte) { + const size_t lo = byte & 0xF; + const size_t hi = byte >> 4; + expanded[byte] = uint16_t(lut[lo]) | (uint16_t(lut[hi]) << 8); + } + return expanded; + } + + std::array makeBaseLUT() const + { + std::array lut{}; + memcpy(lut.data(), bases_.data(), numBases_); + return lut; + } + + std::array makeMaskLUT() const + { + std::array lut; + for (size_t i = 0; i < 16; ++i) { + if (i < numBases_) { + lut[i] = (1u << varBits_[i]) - 1; + if (0) + fprintf(stderr, + "npartitions = %zu, varbits[%zu] = %u, base = %u\n", + numBases_, + i, + (unsigned)varBits_[i], + (unsigned)bases_[i]); + assert(varBits_[i] <= 7); + } else { + lut[i] = 0; + } + } + return lut; + } + + void decode4( + poly::span fixed, + poly::span var, + uint8_t* out) const + { + const auto baseLUT = expandLUT(makeBaseLUT()); + const auto maskLUT = expandLUT(makeMaskLUT()); + const auto size = numElts(fixed.size()); + + uint8_t* o = out; + const uint8_t* f = fixed.data(); + const uint8_t* v = var.data(); + const uint8_t* const vEnd = v + var.size(); + + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + const auto computeLimit = [&] { + if (size < kEltsPerIter) { + return i; + } + assert(v <= vEnd); + const size_t vSafeNumIters = (8 * (vEnd - v) - 7) / maxVarBits_; + if (vSafeNumIters < kEltsPerIter) { + return i; + } + const auto limit = std::min( + size - kEltsPerIter, i + vSafeNumIters - kEltsPerIter); + return limit; + }; + + size_t bitsConsumed = 0; + size_t limit = computeLimit(); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 8 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 8) { + const uint64_t base = uint64_t(baseLUT[f[0]]) + | (uint64_t(baseLUT[f[1]]) << 16) + | (uint64_t(baseLUT[f[2]]) << 32) + | (uint64_t(baseLUT[f[3]]) << 48); + const uint64_t mask = uint64_t(maskLUT[f[0]]) + | (uint64_t(maskLUT[f[1]]) << 16) + | (uint64_t(maskLUT[f[2]]) << 32) + | (uint64_t(maskLUT[f[3]]) << 48); + f += 4; + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = utils::bitDeposit(vData, mask); + + ZL_writeLE64(o, base + offset); + o += 8; + + bitsConsumed += __builtin_popcountll(mask); + assert(bitsConsumed <= 64); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } + } + + assert(v <= vEnd); + auto varBitstream = ZS_BitDStreamFF_init(v, vEnd - v); + ZS_BitDStreamFF_skip(&varBitstream, bitsConsumed); + for (; i < size; ++i) { + size_t bucket = fixed[i / 2]; + if (i % 2 == 0) { + bucket &= 0xF; + } else { + bucket >>= 4; + } + + auto base = bases_[bucket]; + auto bits = varBits_[bucket]; + + auto offset = ZS_BitDStreamFF_read(&varBitstream, bits); + ZS_BitDStreamFF_reload(&varBitstream); + out[i] = base + offset; + } + auto report = ZS_BitDStreamFF_finish(&varBitstream); + if (ZL_isError(report)) { + throw std::runtime_error("read too many varbits"); + } + } + + void decode( + poly::span fixed, + poly::span var, + uint8_t* output) const + { + if (fixedBits_ == 4) { + decode4(fixed, var, output); + return; + } + auto fixedBitstream = ZS_BitDStreamFF_init(fixed.data(), fixed.size()); + auto varBitstream = ZS_BitDStreamFF_init(var.data(), var.size()); + const auto size = numElts(fixed.size()); + + for (size_t i = 0; i < size; ++i) { + const auto bucket = + ZS_BitDStreamFF_read(&fixedBitstream, fixedBits_); + assert(bucket < 256); + const auto base = bases_[bucket]; + const auto offset = + ZS_BitDStreamFF_read(&varBitstream, varBits_[bucket]); + output[i] = base + offset; + + ZS_BitDStreamFF_reload(&fixedBitstream); + ZS_BitDStreamFF_reload(&varBitstream); + } + } + + private: + size_t getBucketSize(size_t baseIdx) const + { + if (baseIdx >= numBases_) { + return 1; + } + size_t base = bases_[baseIdx]; + assert(base < numSymbols_); + auto end = baseIdx + 1 == numBases_ ? numSymbols_ + : size_t(bases_[baseIdx + 1]); + assert(end > base); + return end - base; + } + + std::array bases_{}; + std::array varBits_{}; + size_t unusedFixedBits_; + size_t fixedBits_; + size_t numBases_; + size_t maxVarBits_; + size_t numSymbols_; +}; +} // namespace + +SimpleCodecDescription BucketEncoder::simpleCodecDescription() const +{ + return bucketCodecDescription(); +} + +void BucketEncoder::encode(EncoderState& encoder) const +{ + auto bases = encoder.getLocalParam(0); + if (!bases.has_value()) { + throw std::runtime_error("bases not present"); + } + auto maxSymbolValue = encoder.getLocalIntParam(1); + if (!maxSymbolValue.has_value()) { + throw std::runtime_error("maxSymbolValue not present"); + } + BucketEncoderState state(*bases, *maxSymbolValue); + + const auto& input = encoder.inputs()[0]; + const size_t numElts = input.numElts(); + + uint8_t header[258]; + // first byte is the # of unused bits in the bitstream + header[0] = (8 - ((state.fixedBits() * numElts) % 8)) % 8; + header[1] = (uint8_t)*maxSymbolValue; + memcpy(header + 2, state.bases().data(), state.bases().size()); + + encoder.sendCodecHeader(header, 2 + state.bases().size()); + + auto fixedStream = + encoder.createOutput(0, state.fixedStreamSize(numElts), 1); + auto varStream = encoder.createOutput(1, state.varStreamBound(numElts), 1); + + auto varStreamSize = state.encode( + { (const uint8_t*)input.ptr(), input.numElts() }, + (uint8_t*)fixedStream.ptr(), + (uint8_t*)varStream.ptr()); + + fixedStream.commit(state.fixedStreamSize(numElts)); + varStream.commit(varStreamSize); +} +/* static */ Edge::RunNodeResult BucketEncoder::runNode( + Edge& edge, + NodeID node, + poly::span bases, + uint8_t maxSymbolValue) +{ + NodeParameters params; + params.localParams.emplace(); + params.localParams->addRefParam(0, bases.data(), bases.size()); + params.localParams->addIntParam(1, maxSymbolValue); + auto r = edge.runNode(node, std::move(params)); + return r; +} + +SimpleCodecDescription BucketDecoder::simpleCodecDescription() const +{ + return bucketCodecDescription(); +} + +void BucketDecoder::decode(DecoderState& decoder) const +{ + BucketDecoderState state(decoder.getCodecHeader()); + + const auto& fixedStream = decoder.singletonInputs()[0]; + const auto& varStream = decoder.singletonInputs()[1]; + const auto fixedSize = fixedStream.numElts(); + + auto outStream = decoder.createOutput(0, state.numElts(fixedSize), 1); + + state.decode( + { (const uint8_t*)fixedStream.ptr(), fixedSize }, + { (const uint8_t*)varStream.ptr(), varStream.numElts() }, + (uint8_t*)outStream.ptr()); + + outStream.commit(state.numElts(fixedSize)); +} + +/* static */ GraphID BucketGraph::create( + Compressor& compressor, + bool entropyCompressFixed) +{ + auto graph = compressor.getGraph("lz_research.bucket_graph"); + if (!graph.has_value()) { + graph = compressor.registerFunctionGraph( + std::make_shared()); + } + + auto node = compressor.getNode("lz_research.bucket"); + if (!node.has_value()) { + node = compressor.registerCustomEncoder( + std::make_shared()); + } + + LocalParams params; + params.addIntParam(0, !!entropyCompressFixed); + + return compressor.parameterizeGraph( + *graph, + GraphParameters{ .customNodes = { { *node } }, + .localParams = std::move(params) }); +} + +FunctionGraphDescription BucketGraph::functionGraphDescription() const +{ + return FunctionGraphDescription{ + .name = "!lz_research.bucket_graph", + .inputTypeMasks = { TypeMask::Serial }, + }; +} + +namespace { +constexpr uint32_t kBucketOverheadBits = 40; + +uint32_t entropyCompressedBucketCost( + poly::span bucket, + uint32_t totalCount) +{ + const uint32_t bucketCount = + std::accumulate(bucket.begin(), bucket.end(), 0); + if (bucketCount == 0) { + return kBucketOverheadBits; + } + // TODO(terrelln): Replace log2 with an estimate + const uint32_t bucketCost = double(bucketCount) + * std::log2(double(totalCount) / double(bucketCount)); + const uint32_t offsetBits = ZL_nextPow2(bucket.size()); + const uint32_t offsetCost = bucketCount * offsetBits; + + if (0) + fprintf(stderr, + "totalCount = %u, bucketCount = %u, bucketSize = %zu, bucketCost = %u, offsetCost = %u\n", + totalCount, + bucketCount, + bucket.size(), + bucketCost, + offsetCost); + + return kBucketOverheadBits + bucketCost + offsetCost; +} + +uint32_t entropyCompressedBucketCost( + poly::span histogram, + poly::span partitions) +{ + const uint32_t totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + uint32_t cost = 0; + for (size_t i = 0; i < partitions.size(); ++i) { + const auto b = partitions[i]; + const auto e = i + 1 == partitions.size() ? histogram.size() + : partitions[i + 1]; + assert(b < e); + cost += entropyCompressedBucketCost( + histogram.subspan(b, e - b), totalCount); + } + return cost; +} + +// uint32_t fixedBucketCost( +// poly::span bucket, +// uint32_t totalCount, +// uint32_t bucketBits) +// { +// const uint32_t bucketCount = +// std::accumulate(bucket.begin(), bucket.end(), 0); +// if (bucketCount == 0) { +// return 0; +// } +// const uint32_t entropyCost = +// bucketCount * std::log2(double(totalCount) / +// double(bucketCount)); +// // ZL_calculateEntropy(&bucketCount, 0, totalCount); +// const uint32_t fixedCost = bucketCount * bucketBits; +// const auto cost = fixedCost - entropyCost; +// return cost >= 0 ? cost : -cost; +// } +float fixedBucketCost(poly::span bucket, uint32_t fixedCost) +{ + if (bucket.size() > 128) { + // Reject buckets that are too large + return std::numeric_limits::infinity(); + } + const float bucketCount = std::accumulate(bucket.begin(), bucket.end(), 0); + return bucketCount * (fixedCost + ZL_nextPow2(bucket.size())); +} + +uint32_t fixedBucketCost( + poly::span histogram, + poly::span partitions) +{ + const uint32_t totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + const uint32_t bucketBits = ZL_nextPow2(partitions.size()); + uint32_t cost = totalCount * bucketBits; + for (size_t i = 0; i < partitions.size(); ++i) { + const auto b = partitions[i]; + const auto e = i + 1 == partitions.size() ? histogram.size() + : partitions[i + 1]; + assert(b < e); + const uint32_t bucketCount = std::accumulate( + histogram.begin() + b, histogram.begin() + e, 0); + const uint32_t offsetBits = ZL_nextPow2(e - b); + cost += kBucketOverheadBits + bucketCount * offsetBits; + } + return cost; +} + +std::vector toUint8(const std::vector& v) +{ + std::vector result; + result.reserve(v.size()); + for (auto i : v) { + result.push_back(i); + } + return result; +} + +std::vector entropyPartition(poly::span histogram) +{ + const uint32_t totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + return toUint8(utils::partition(histogram, 16, [totalCount](auto bucket) { + return entropyCompressedBucketCost(bucket, totalCount); + })); +} + +std::vector fixedPartition(poly::span histogram) +{ + const uint32_t totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + std::vector bestPartitions = { 0 }; + uint32_t bestCost = fixedBucketCost(histogram, bestPartitions); + for (size_t bucketBits = 1; bucketBits < 8; ++bucketBits) { + auto partitions = + toUint8(utils::partition( + histogram, + 1u << bucketBits, + [totalCount, bucketBits](auto bucket) { + return fixedBucketCost(bucket, bucketBits); + })); + auto cost = fixedBucketCost(histogram, partitions); + if (cost < bestCost) { + bestCost = cost; + bestPartitions = std::move(partitions); + } + } + return bestPartitions; +} + +class OptimalFixedPartition { + public: + OptimalFixedPartition( + poly::span histogram, + size_t numPartitions) + : hist_(histogram), numPartitions_(numPartitions) + { + auto totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + targetCount_ = totalCount / numPartitions; + } + + std::vector run() + { + assert(partitions_.empty()); + size_t offset = 0; + // TODO: Enable offset > 0 + // while (offset < hist_.size() && hist_[offset] == 0) { + // ++offset; + // } + partitions_.push_back(offset); + go(); + partitions_.pop_back(); + assert(partitions_.empty()); + assert(bestPartitions_.size() <= numPartitions_); + return bestPartitions_; + } + + private: + void go() + { + if (partitions_.back() >= 128) { + auto c = cost(partitions_); + if (c < bestCost_) { + bestCost_ = c; + bestPartitions_ = partitions_; + } + } + if (partitions_.size() < numPartitions_) { + auto smallPartition = getSmallPartition(); + if (smallPartition < hist_.size()) { + partitions_.push_back(smallPartition); + if (smallPartition - partitions_.back() <= 128) { + go(); + } + auto largePartition = getLargePartition(); + if (largePartition < hist_.size() + && largePartition - partitions_.back() <= 128) { + partitions_.back() = getLargePartition(); + go(); + } + partitions_.pop_back(); + } + } + } + + size_t getSmallPartition() const + { + uint32_t count = 0; + size_t end; + for (end = partitions_.back() + 1; end < hist_.size(); ++end) { + count += hist_[end]; + if (count > targetCount_) { + break; + } + } + size_t size = end - partitions_.back(); + while (!ZL_isPow2(size)) { + --size; + } + return partitions_.back() + size; + } + + size_t getLargePartition() const + { + uint32_t count = 0; + size_t end; + for (end = partitions_.back() + 1; end < hist_.size(); ++end) { + count += hist_[end]; + if (count > targetCount_) { + ++end; + break; + } + } + size_t size = end - partitions_.back(); + while (!ZL_isPow2(size)) { + ++size; + } + return partitions_.back() + size; + } + + uint32_t cost(poly::span partitions) const + { + auto cost = fixedBucketCost(hist_, partitions); + return cost; + } + + uint32_t bestCost_{ std::numeric_limits::max() }; + std::vector bestPartitions_ = { 0 }; + std::vector partitions_{}; + poly::span hist_; + size_t numPartitions_; + uint32_t targetCount_; +}; +} // namespace + +void BucketGraph::graph(GraphState& state) const +{ + auto& inputEdge = state.edges()[0]; + const auto& inputStream = inputEdge.getInput(); + const size_t numElts = inputStream.numElts(); + + if (numElts < 10) { + inputEdge.setDestination(graphs::Store{}()); + return; + } + + ZL_Histogram8 histogram; + ZL_Histogram_init(&histogram.base, 255); + ZL_Histogram_build(&histogram.base, inputStream.ptr(), numElts, 1); + + std::vector partitions; + uint32_t bitCost; + + poly::span hist{ histogram.base.count, + histogram.base.maxSymbol + 1 }; + const bool entropyCompressFixed = !!state.getLocalIntParam(0).value_or(0); + if (entropyCompressFixed) { + partitions = entropyPartition(hist); + bitCost = entropyCompressedBucketCost(hist, partitions); + } else { + partitions = fixedPartition(hist); + // TODO: Allow for 1, 2, 4 #buckets + // partitions = OptimalFixedPartition{ hist, 16 }.run(); + bitCost = fixedBucketCost(hist, partitions); + if (0) + for (size_t i = 0; i < partitions.size(); ++i) { + fprintf(stderr, "p[%zu] = %d\n", i, int(partitions[i])); + } + } + if (0) + fprintf(stderr, + "numElts = %zu, usingEntropy = %u, #partitions = %u, cost = %u\n", + numElts, + (unsigned)entropyCompressFixed, + (unsigned)partitions.size(), + bitCost / 8); + + if (bitCost / 8 >= 95 * numElts / 100) { + // Not enough gain => skip + if (0) + fprintf(stderr, "skipping...\n"); + inputEdge.setDestination(graphs::Store{}()); + return; + } + + const auto nodes = state.customNodes(); + if (nodes.size() != 1) { + throw std::runtime_error("CustomNodes must have exactly one node"); + } + + auto outEdges = BucketEncoder::runNode( + inputEdge, nodes[0], partitions, histogram.base.maxSymbol); + assert(outEdges.size() == 2); + + if (entropyCompressFixed) { + outEdges[0].setDestination(graphs::Huffman{}()); + } else { + outEdges[0].setDestination(graphs::Store{}()); + } + outEdges[1].setDestination(graphs::Store{}()); +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/Bucket.hpp b/contrib/lz-research/codecs/Bucket.hpp new file mode 100644 index 000000000..57ff5be20 --- /dev/null +++ b/contrib/lz-research/codecs/Bucket.hpp @@ -0,0 +1,46 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace openzl::lz { + +class BucketEncoder : public CustomEncoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void encode(EncoderState& encoder) const override; + + static Edge::RunNodeResult runNode( + Edge& edge, + NodeID node, + poly::span bases, + uint8_t maxSymbolValue); + + ~BucketEncoder() override = default; +}; + +class BucketDecoder : public CustomDecoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void decode(DecoderState& decoder) const override; + + ~BucketDecoder() override = default; +}; + +class BucketGraph : public FunctionGraph { + public: + BucketGraph() = default; + + static GraphID create(Compressor& compressor, bool entropyCompressFixed); + + FunctionGraphDescription functionGraphDescription() const override; + + void graph(GraphState& state) const override; + + virtual ~BucketGraph() override = default; +}; + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/Bucket16.cpp b/contrib/lz-research/codecs/Bucket16.cpp new file mode 100644 index 000000000..e678f3630 --- /dev/null +++ b/contrib/lz-research/codecs/Bucket16.cpp @@ -0,0 +1,2401 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "Bucket16.hpp" + +#include +#include +#include +#include +#include + +#include "CodecIDs.hpp" +#include "utils/Portability.hpp" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/data_stats.h" +#include "openzl/shared/histogram.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" +#include "openzl/shared/utils.h" +#include "utils/Partition.hpp" + +#if ZL_ARCH_X86_64 +# include +#endif + +namespace openzl::lz { +namespace { + +template +T divUp(T a, T b) +{ + return (a + b - 1) / b; +} + +SimpleCodecDescription bucket16CodecDescription() +{ + return SimpleCodecDescription{ + .id = unsigned(CustomCodecIDs::Bucket16), + .name = "!lz_research.bucket16", + .inputType = Type::Numeric, + .outputTypes = { Type::Serial, Type::Serial }, + }; +} + +class Bucket16EncoderState { + public: + Bucket16EncoderState(poly::span param, int maxSymbolValue) + : numSymbols_(maxSymbolValue + 1) + { + if (param.size() % 2 != 0) { + throw std::runtime_error("Param is not multiple of 2"); + } + bases_ = { (const uint16_t*)param.data(), param.size() / 2 }; + if (bases_.empty()) { + throw std::runtime_error("bases is empty"); + } + if (bases_.size() > 256) { + throw std::runtime_error("bases must be <= 256 entries"); + } + for (size_t i = 1; i < bases_.size(); ++i) { + if (bases_[i - 1] >= bases_[i]) { + throw std::runtime_error("bases not strictly increasing"); + } + } + + fixedBits_ = ZL_nextPow2(bases_.size()); + + // Compute lutShift_: minimum trailing zeros across all non-zero bases. + // Since all bases are multiples of 2^lutShift_, values can be shifted + // right by lutShift_ before LUT lookup, reducing from 65536 entries. + lutShift_ = 16; + for (size_t i = 0; i < bases_.size(); ++i) { + if (bases_[i] != 0) { + lutShift_ = + std::min(lutShift_, size_t(__builtin_ctz(bases_[i]))); + } + } + if (lutShift_ == 16) { + lutShift_ = 0; + } + + const size_t lutSize = size_t(65536) >> lutShift_; + valueToBucket16_.resize(lutSize); + valueToBase_.resize(lutSize); + valueToVarBits_.resize(lutSize); + + size_t nextBaseIdx = 0; + size_t bits = 0; + maxVarBits_ = 0; + for (size_t sv = 0; sv < lutSize; ++sv) { + const size_t byte = sv << lutShift_; + while (nextBaseIdx < bases_.size() && byte >= bases_[nextBaseIdx]) { + bits = ZL_nextPow2(getBucketSize(nextBaseIdx)); + maxVarBits_ = std::max(maxVarBits_, bits); + ++nextBaseIdx; + } + valueToVarBits_[sv] = bits; + valueToBucket16_[sv] = nextBaseIdx - 1; + valueToBase_[sv] = bases_[nextBaseIdx - 1]; + } + } + + size_t fixedBits() const + { + return fixedBits_; + } + + size_t maxVarBits() const + { + return maxVarBits_; + } + + poly::span bases() const + { + return bases_; + } + + size_t fixedStreamSize(size_t numElts) const + { + return (fixedBits() * numElts + 7) / 8; + } + + size_t varStreamBound(size_t numElts) const + { + // Extra 8 bytes ensures the fast-path encoder can safely do + // 8-byte writes (ZL_writeLE64) near the end of the buffer. + return (maxVarBits() * numElts + 7) / 8 + 8; + } + + size_t + encode(poly::span input, uint8_t* fixed, uint8_t* var) const + { + switch (fixedBits_) { + case 3: + return encode3(input, fixed, var); + case 4: + return encode4(input, fixed, var); + case 5: + return encode5(input, fixed, var); + case 6: + return encode6(input, fixed, var); + default: + return encodeGeneric(input, fixed, var); + } + } + + private: + size_t getBucketSize(size_t baseIdx) const + { + if (baseIdx >= bases_.size()) { + return 1; + } + size_t base = bases_[baseIdx]; + assert(base < numSymbols_); + auto end = baseIdx + 1 == bases_.size() ? numSymbols_ + : size_t(bases_[baseIdx + 1]); + assert(end > base); + return end - base; + } + + size_t encodeGeneric( + poly::span input, + uint8_t* fixed, + uint8_t* var) const + { + ZS_BitCStreamFF fixedBitstream = + ZS_BitCStreamFF_init(fixed, fixedStreamSize(input.size())); + ZS_BitCStreamFF varBitstream = + ZS_BitCStreamFF_init(var, varStreamBound(input.size())); + + for (const auto x : input) { + const auto sx = x >> lutShift_; + const auto varBits = valueToVarBits_[sx]; + if (x - valueToBase_[sx] >= (1u << varBits)) { + throw std::runtime_error("Invalid bases for input"); + } + ZS_BitCStreamFF_write( + &fixedBitstream, valueToBucket16_[sx], fixedBits_); + ZS_BitCStreamFF_flush(&fixedBitstream); + ZS_BitCStreamFF_write(&varBitstream, x - valueToBase_[sx], varBits); + ZS_BitCStreamFF_flush(&varBitstream); + } + + unwrap(ZS_BitCStreamFF_finish(&fixedBitstream)); + return unwrap(ZS_BitCStreamFF_finish(&varBitstream)); + } + + size_t encodeTail( + const uint16_t* in, + size_t i, + size_t numElts, + size_t fixedBits, + uint8_t* f, + uint8_t* v, + uint8_t* varBase, + uint64_t varAcc, + size_t varAccBits) const + { + uint64_t fixedAcc = 0; + size_t fixedAccBits = 0; + for (; i < numElts; ++i) { + const auto x = in[i]; + const auto sx = x >> lutShift_; + + fixedAcc |= uint64_t(valueToBucket16_[sx]) << fixedAccBits; + fixedAccBits += fixedBits; + while (fixedAccBits >= 8) { + *f++ = uint8_t(fixedAcc); + fixedAcc >>= 8; + fixedAccBits -= 8; + } + + const uint64_t off = x - valueToBase_[sx]; + const size_t nbits = valueToVarBits_[sx]; + varAcc |= off << varAccBits; + varAccBits += nbits; + while (varAccBits >= 8) { + *v++ = uint8_t(varAcc); + varAcc >>= 8; + varAccBits -= 8; + } + } + if (fixedAccBits > 0) { + *f++ = uint8_t(fixedAcc); + } + if (varAccBits > 0) { + *v++ = uint8_t(varAcc); + } + return v - varBase; + } + + template + struct ExpandedLUT { + static constexpr size_t kRawSize = 1u << N; + static constexpr size_t kExpandedSize = 1u << (2 * N); + std::array base; + std::array mask; + }; + + template + ExpandedLUT buildLUT() const + { + ExpandedLUT lut; + std::array::kRawSize> baseRaw{}; + std::array::kRawSize> maskRaw{}; + for (size_t b = 0; b < bases_.size(); ++b) { + baseRaw[b] = bases_[b]; + maskRaw[b] = (1u << ZL_nextPow2(getBucketSize(b))) - 1; + } + constexpr size_t kMask = ExpandedLUT::kRawSize - 1; + for (size_t idx = 0; idx < ExpandedLUT::kExpandedSize; ++idx) { + const size_t lo = idx & kMask; + const size_t hi = idx >> N; + lut.base[idx] = + uint32_t(baseRaw[lo]) | (uint32_t(baseRaw[hi]) << 16); + lut.mask[idx] = + uint32_t(maskRaw[lo]) | (uint32_t(maskRaw[hi]) << 16); + } + return lut; + } + + size_t computeLimit( + size_t i, + size_t numElts, + size_t kEltsPerIter, + const uint8_t* v, + const uint8_t* vBound) const + { + if (numElts < kEltsPerIter) { + return 0; + } + if (maxVarBits_ == 0) { + return numElts - kEltsPerIter; + } + assert(v <= vBound); + const size_t vRemaining = vBound - v; + if (vRemaining < 8) { + return i; + } + const size_t vSafeElts = (8 * vRemaining - 7) / maxVarBits_; + if (vSafeElts < kEltsPerIter) { + return i; + } + return std::min(numElts - kEltsPerIter, i + vSafeElts - kEltsPerIter); + } + + size_t encode3( + poly::span input, + uint8_t* fixed, + uint8_t* var) const + { + const size_t numElts = input.size(); + const uint16_t* in = input.data(); + uint8_t* f = fixed; + uint8_t* v = var; + const uint8_t* const vBound = var + varStreamBound(numElts); + + const auto lut = buildLUT<3>(); + + uint64_t varAcc = 0; + size_t varAccBits = 0; + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + size_t limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 8 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 8) { + const uint16_t* inp = in + i + u; + + const auto b0 = valueToBucket16_[inp[0] >> lutShift_]; + const auto b1 = valueToBucket16_[inp[1] >> lutShift_]; + const auto b2 = valueToBucket16_[inp[2] >> lutShift_]; + const auto b3 = valueToBucket16_[inp[3] >> lutShift_]; + const auto b4 = valueToBucket16_[inp[4] >> lutShift_]; + const auto b5 = valueToBucket16_[inp[5] >> lutShift_]; + const auto b6 = valueToBucket16_[inp[6] >> lutShift_]; + const auto b7 = valueToBucket16_[inp[7] >> lutShift_]; + + const std::array fs = { + uint32_t(b0 | (b1 << 3)), + uint32_t(b2 | (b3 << 3)), + uint32_t(b4 | (b5 << 3)), + uint32_t(b6 | (b7 << 3)), + }; + const uint32_t F = + fs[0] | (fs[1] << 6) | (fs[2] << 12) | (fs[3] << 18); + f[0] = F & 0xFF; + f[1] = (F >> 8) & 0xFF; + f[2] = (F >> 16) & 0xFF; + f += 3; + + for (size_t k = 0; k < 4; k += 2) { + const uint64_t base = uint64_t(lut.base[fs[k]]) + | (uint64_t(lut.base[fs[k + 1]]) << 32); + const uint64_t mask = uint64_t(lut.mask[fs[k]]) + | (uint64_t(lut.mask[fs[k + 1]]) << 32); + + const uint64_t data = ZL_readLE64(inp + k * 2); + const uint64_t offset = data - base; + const uint64_t varBits = utils::bitExtract(offset, mask); + + varAcc |= varBits << varAccBits; + varAccBits += __builtin_popcountll(mask); + + ZL_writeLE64(v, varAcc); + const size_t flushBytes = varAccBits >> 3; + v += flushBytes; + varAcc >>= (flushBytes << 3); + varAccBits &= 7; + } + } + } + return encodeTail(in, i, numElts, 3, f, v, var, varAcc, varAccBits); + } + + size_t encode4( + poly::span input, + uint8_t* fixed, + uint8_t* var) const + { + const size_t numElts = input.size(); + const uint16_t* in = input.data(); + uint8_t* f = fixed; + uint8_t* v = var; + const uint8_t* const vBound = var + varStreamBound(numElts); + + const auto lut = buildLUT<4>(); + + uint64_t varAcc = 0; + size_t varAccBits = 0; + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + size_t limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 4 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 4) { + const uint16_t* inp = in + i + u; + + const auto b0 = valueToBucket16_[inp[0] >> lutShift_]; + const auto b1 = valueToBucket16_[inp[1] >> lutShift_]; + const auto b2 = valueToBucket16_[inp[2] >> lutShift_]; + const auto b3 = valueToBucket16_[inp[3] >> lutShift_]; + + const uint8_t fb0 = b0 | (b1 << 4); + const uint8_t fb1 = b2 | (b3 << 4); + + const uint64_t base = uint64_t(lut.base[fb0]) + | (uint64_t(lut.base[fb1]) << 32); + const uint64_t mask = uint64_t(lut.mask[fb0]) + | (uint64_t(lut.mask[fb1]) << 32); + + f[0] = fb0; + f[1] = fb1; + f += 2; + + const uint64_t data = ZL_readLE64(inp); + const uint64_t offset = data - base; + const uint64_t varBits = utils::bitExtract(offset, mask); + + varAcc |= varBits << varAccBits; + varAccBits += __builtin_popcountll(mask); + + ZL_writeLE64(v, varAcc); + const size_t flushBytes = varAccBits >> 3; + v += flushBytes; + varAcc >>= (flushBytes << 3); + varAccBits &= 7; + } + } + return encodeTail(in, i, numElts, 4, f, v, var, varAcc, varAccBits); + } + + size_t encode5( + poly::span input, + uint8_t* fixed, + uint8_t* var) const + { + const size_t numElts = input.size(); + const uint16_t* in = input.data(); + uint8_t* f = fixed; + uint8_t* v = var; + const uint8_t* const vBound = var + varStreamBound(numElts); + + const auto lut = buildLUT<5>(); + + uint64_t varAcc = 0; + size_t varAccBits = 0; + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + size_t limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 8 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 8) { + const uint16_t* inp = in + i + u; + + const auto b0 = valueToBucket16_[inp[0] >> lutShift_]; + const auto b1 = valueToBucket16_[inp[1] >> lutShift_]; + const auto b2 = valueToBucket16_[inp[2] >> lutShift_]; + const auto b3 = valueToBucket16_[inp[3] >> lutShift_]; + const auto b4 = valueToBucket16_[inp[4] >> lutShift_]; + const auto b5 = valueToBucket16_[inp[5] >> lutShift_]; + const auto b6 = valueToBucket16_[inp[6] >> lutShift_]; + const auto b7 = valueToBucket16_[inp[7] >> lutShift_]; + + const std::array fs = { + uint64_t(b0 | (b1 << 5)), + uint64_t(b2 | (b3 << 5)), + uint64_t(b4 | (b5 << 5)), + uint64_t(b6 | (b7 << 5)), + }; + const uint64_t F = + fs[0] | (fs[1] << 10) | (fs[2] << 20) | (fs[3] << 30); + f[0] = F & 0xFF; + f[1] = (F >> 8) & 0xFF; + f[2] = (F >> 16) & 0xFF; + f[3] = (F >> 24) & 0xFF; + f[4] = (F >> 32) & 0xFF; + f += 5; + + for (size_t k = 0; k < 4; k += 2) { + const uint64_t base = uint64_t(lut.base[fs[k]]) + | (uint64_t(lut.base[fs[k + 1]]) << 32); + const uint64_t mask = uint64_t(lut.mask[fs[k]]) + | (uint64_t(lut.mask[fs[k + 1]]) << 32); + + const uint64_t data = ZL_readLE64(inp + k * 2); + const uint64_t offset = data - base; + const uint64_t varBits = utils::bitExtract(offset, mask); + + varAcc |= varBits << varAccBits; + varAccBits += __builtin_popcountll(mask); + + ZL_writeLE64(v, varAcc); + const size_t flushBytes = varAccBits >> 3; + v += flushBytes; + varAcc >>= (flushBytes << 3); + varAccBits &= 7; + } + } + } + return encodeTail(in, i, numElts, 5, f, v, var, varAcc, varAccBits); + } + + size_t encode6( + poly::span input, + uint8_t* fixed, + uint8_t* var) const + { + const size_t numElts = input.size(); + const uint16_t* in = input.data(); + uint8_t* f = fixed; + uint8_t* v = var; + const uint8_t* const vBound = var + varStreamBound(numElts); + + const auto lut = buildLUT<6>(); + + uint64_t varAcc = 0; + size_t varAccBits = 0; + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + size_t limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(i, numElts, kEltsPerIter, v, vBound); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 4 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 4) { + const uint16_t* inp = in + i + u; + + const auto b0 = valueToBucket16_[inp[0] >> lutShift_]; + const auto b1 = valueToBucket16_[inp[1] >> lutShift_]; + const auto b2 = valueToBucket16_[inp[2] >> lutShift_]; + const auto b3 = valueToBucket16_[inp[3] >> lutShift_]; + + const uint32_t f0 = b0 | (b1 << 6); + const uint32_t f1 = b2 | (b3 << 6); + const uint32_t F = f0 | (f1 << 12); + f[0] = F & 0xFF; + f[1] = (F >> 8) & 0xFF; + f[2] = (F >> 16) & 0xFF; + f += 3; + + const uint64_t base = + uint64_t(lut.base[f0]) | (uint64_t(lut.base[f1]) << 32); + const uint64_t mask = + uint64_t(lut.mask[f0]) | (uint64_t(lut.mask[f1]) << 32); + + const uint64_t data = ZL_readLE64(inp); + const uint64_t offset = data - base; + const uint64_t varBits = utils::bitExtract(offset, mask); + + varAcc |= varBits << varAccBits; + varAccBits += __builtin_popcountll(mask); + + ZL_writeLE64(v, varAcc); + const size_t flushBytes = varAccBits >> 3; + v += flushBytes; + varAcc >>= (flushBytes << 3); + varAccBits &= 7; + } + } + return encodeTail(in, i, numElts, 6, f, v, var, varAcc, varAccBits); + } + + poly::span bases_; + size_t numSymbols_; + size_t fixedBits_; + size_t lutShift_; + std::vector valueToBucket16_; + std::vector valueToBase_; + std::vector valueToVarBits_; + size_t maxVarBits_; +}; + +class Bucket16DecoderState { + public: + Bucket16DecoderState(poly::span header) + { + if (header.size() < 3) { + throw std::runtime_error("header is empty"); + } + unusedFixedBits_ = header[0] % 8; + size_t maxSymbolValue = ZL_readLE16(header.data() + 1); + numSymbols_ = maxSymbolValue + 1; + header = header.subspan(3); + if (header.empty()) { + throw std::runtime_error("bases is empty"); + } + if (header.size() % 2 != 0) { + throw std::runtime_error("not a multiple of 2"); + } + if (header.size() > 2 * bases_.size()) { + throw std::runtime_error("bases is > 256"); + } + // TODO: Handle big endian + memcpy(bases_.data(), header.data(), header.size()); + numBases_ = header.size() / 2; + if (bases_.back() > maxSymbolValue) { + throw std::runtime_error("bases[-1] is > maxSymbolValue"); + } + for (size_t i = 1; i < numBases_; ++i) { + if (bases_[i - 1] >= bases_[i]) { + throw std::runtime_error("bases not strictly increasing"); + } + } + + maxVarBits_ = 0; + for (size_t i = 0; i < numBases_; ++i) { + varBits_[i] = ZL_nextPow2(getBucketSize(i)); + maxVarBits_ = std::max(maxVarBits_, varBits_[i]); + } + if (maxVarBits_ >= 15) { + // Keeping <= 14 means that we can get away with a single 64-bit + // load + throw std::runtime_error("unsupported varbits >= 15"); + } + + fixedBits_ = ZL_nextPow2(numBases_); + assert(fixedBits_ <= 8); + } + + size_t fixedBits() const + { + return fixedBits_; + } + + poly::span bases() const + { + return { bases_.data(), numBases_ }; + } + + size_t numElts(size_t fixedSize) const + { + const auto totalFixedBits = fixedSize * 8; + if (totalFixedBits < unusedFixedBits_) { + throw std::runtime_error("bad number of bits"); + } + if ((totalFixedBits - unusedFixedBits_) % fixedBits_ != 0) { + throw std::runtime_error("leftover bits"); + } + return (totalFixedBits - unusedFixedBits_) / fixedBits_; + } + + static std::array expandLUT3(poly::span lut) + { + std::array expanded; + for (size_t byte = 0; byte < 64; ++byte) { + const size_t lo = byte & 7; + const size_t hi = byte >> 3; + expanded[byte] = uint32_t(lut[lo]) | (uint32_t(lut[hi]) << 16); + } + return expanded; + } + + std::array makeBaseLUT3() const + { + std::array lut{}; + memcpy(lut.data(), bases_.data(), numBases_ * 2); + return lut; + } + + std::array makeMaskLUT3() const + { + std::array lut; + for (size_t i = 0; i < 8; ++i) { + if (i < numBases_) { + lut[i] = (1u << varBits_[i]) - 1; + assert(varBits_[i] <= 14); + } else { + lut[i] = 0; + } + } + return lut; + } + + void decode3( + poly::span fixed, + poly::span var, + uint16_t* out) const + { + const auto baseLUT = expandLUT3(makeBaseLUT3()); + const auto maskLUT = expandLUT3(makeMaskLUT3()); + const auto size = numElts(fixed.size()); + + uint16_t* o = out; + const uint8_t* f = fixed.data(); + const uint8_t* v = var.data(); + const uint8_t* const vEnd = v + var.size(); + + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + const auto computeLimit = [&] { + if (size < kEltsPerIter) { + return i; + } + assert(v <= vEnd); + const size_t vSafeNumIters = (8 * (vEnd - v) - 7) / maxVarBits_; + if (vSafeNumIters < kEltsPerIter) { + return i; + } + const auto limit = std::min( + size - kEltsPerIter, i + vSafeNumIters - kEltsPerIter); + return limit; + }; + + size_t bitsConsumed = 0; + size_t limit = computeLimit(); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 8 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 8) { + uint32_t const F = ZL_readLE32(f); + const std::array fs = { + (F >> 0) & 63, + (F >> 6) & 63, + (F >> 12) & 63, + (F >> 18) & 63, + }; + f += 3; + for (size_t k = 0; k < 4; k += 2) { + const uint64_t base = uint64_t(baseLUT[fs[k + 0]]) + | (uint64_t(baseLUT[fs[k + 1]]) << 32); + const uint64_t mask = uint64_t(maskLUT[fs[k + 0]]) + | (uint64_t(maskLUT[fs[k + 1]]) << 32); + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = utils::bitDeposit(vData, mask); + + ZL_writeLE64(o, base + offset); + o += 4; + + bitsConsumed += __builtin_popcountll(mask); + assert(bitsConsumed <= 64); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } + } + } + + assert(v <= vEnd); + auto fixedBitstream = + ZS_BitDStreamFF_init(f, (fixed.data() + fixed.size()) - f); + auto varBitstream = ZS_BitDStreamFF_init(v, vEnd - v); + ZS_BitDStreamFF_skip(&varBitstream, bitsConsumed); + for (; i < size; ++i) { + auto bucket = ZS_BitDStreamFF_read(&fixedBitstream, 3); + ZS_BitDStreamFF_reload(&fixedBitstream); + + auto base = bases_[bucket]; + auto bits = varBits_[bucket]; + + auto offset = ZS_BitDStreamFF_read(&varBitstream, bits); + ZS_BitDStreamFF_reload(&varBitstream); + out[i] = base + offset; + } + auto report = ZS_BitDStreamFF_finish(&varBitstream); + if (ZL_isError(report)) { + throw std::runtime_error("read too many varbits"); + } + } + + static std::array expandLUT(poly::span lut) + { + std::array expanded; + for (size_t byte = 0; byte < 256; ++byte) { + const size_t lo = byte & 0xF; + const size_t hi = byte >> 4; + expanded[byte] = uint32_t(lut[lo]) | (uint32_t(lut[hi]) << 16); + } + return expanded; + } + + std::array makeBaseLUT() const + { + std::array lut{}; + memcpy(lut.data(), bases_.data(), numBases_ * 2); + return lut; + } + + std::array makeMaskLUT() const + { + std::array lut; + for (size_t i = 0; i < 16; ++i) { + if (i < numBases_) { + lut[i] = (1u << varBits_[i]) - 1; + assert(varBits_[i] <= 14); + } else { + lut[i] = 0; + } + } + return lut; + } + + void decode4( + poly::span fixed, + poly::span var, + uint16_t* out) const + { + const auto baseLUT = expandLUT(makeBaseLUT()); + const auto maskLUT = expandLUT(makeMaskLUT()); + const auto size = numElts(fixed.size()); + + uint16_t* o = out; + const uint8_t* f = fixed.data(); + const uint8_t* v = var.data(); + const uint8_t* const vEnd = v + var.size(); + + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + const auto computeLimit = [&] { + if (size < kEltsPerIter) { + return i; + } + assert(v <= vEnd); + const size_t vSafeNumIters = (8 * (vEnd - v) - 7) / maxVarBits_; + if (vSafeNumIters < kEltsPerIter) { + return i; + } + const auto limit = std::min( + size - kEltsPerIter, i + vSafeNumIters - kEltsPerIter); + return limit; + }; + + size_t bitsConsumed = 0; + size_t limit = computeLimit(); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 4 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 4) { + const uint64_t base = uint64_t(baseLUT[f[0]]) + | (uint64_t(baseLUT[f[1]]) << 32); + const uint64_t mask = uint64_t(maskLUT[f[0]]) + | (uint64_t(maskLUT[f[1]]) << 32); + f += 2; + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = utils::bitDeposit(vData, mask); + + ZL_writeLE64(o, base + offset); + o += 4; + + bitsConsumed += __builtin_popcountll(mask); + assert(bitsConsumed <= 64); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } + } + + assert(v <= vEnd); + auto varBitstream = ZS_BitDStreamFF_init(v, vEnd - v); + ZS_BitDStreamFF_skip(&varBitstream, bitsConsumed); + for (; i < size; ++i) { + size_t bucket = fixed[i / 2]; + if (i % 2 == 0) { + bucket &= 0xF; + } else { + bucket >>= 4; + } + + auto base = bases_[bucket]; + auto bits = varBits_[bucket]; + + auto offset = ZS_BitDStreamFF_read(&varBitstream, bits); + ZS_BitDStreamFF_reload(&varBitstream); + out[i] = base + offset; + } + auto report = ZS_BitDStreamFF_finish(&varBitstream); + if (ZL_isError(report)) { + throw std::runtime_error("read too many varbits"); + } + } + + static std::array expandLUT5(poly::span lut) + { + std::array expanded; + for (size_t byte = 0; byte < 1024; ++byte) { + const size_t lo = byte & 31; + const size_t hi = byte >> 5; + expanded[byte] = uint32_t(lut[lo]) | (uint32_t(lut[hi]) << 16); + } + return expanded; + } + + std::array makeBaseLUT5() const + { + std::array lut{}; + memcpy(lut.data(), bases_.data(), numBases_ * 2); + return lut; + } + + std::array makeMaskLUT5() const + { + std::array lut; + for (size_t i = 0; i < 32; ++i) { + if (i < numBases_) { + lut[i] = (1u << varBits_[i]) - 1; + assert(varBits_[i] <= 14); + } else { + lut[i] = 0; + } + } + return lut; + } + + void decode5( + poly::span fixed, + poly::span var, + uint16_t* out) const + { + const auto baseLUT = expandLUT5(makeBaseLUT5()); + const auto maskLUT = expandLUT5(makeMaskLUT5()); + const auto size = numElts(fixed.size()); + + uint16_t* o = out; + const uint8_t* f = fixed.data(); + const uint8_t* v = var.data(); + const uint8_t* const vEnd = v + var.size(); + + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + const auto computeLimit = [&] { + if (size < kEltsPerIter) { + return i; + } + assert(v <= vEnd); + const size_t vSafeNumIters = (8 * (vEnd - v) - 7) / maxVarBits_; + if (vSafeNumIters < kEltsPerIter) { + return i; + } + const auto limit = std::min( + size - kEltsPerIter, i + vSafeNumIters - kEltsPerIter); + return limit; + }; + + size_t bitsConsumed = 0; + size_t limit = computeLimit(); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 8 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 8) { + auto const F = ZL_readLE64(f); + const std::array fs = { + (F >> 00) & 1023, + (F >> 10) & 1023, + (F >> 20) & 1023, + (F >> 30) & 1023, + }; + f += 5; + for (size_t k = 0; k < 4; k += 2) { + const uint64_t base = uint64_t(baseLUT[fs[k + 0]]) + | (uint64_t(baseLUT[fs[k + 1]]) << 32); + const uint64_t mask = uint64_t(maskLUT[fs[k + 0]]) + | (uint64_t(maskLUT[fs[k + 1]]) << 32); + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = utils::bitDeposit(vData, mask); + + ZL_writeLE64(o, base + offset); + o += 4; + + bitsConsumed += __builtin_popcountll(mask); + assert(bitsConsumed <= 64); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } + } + } + + assert(v <= vEnd); + auto fixedBitstream = + ZS_BitDStreamFF_init(f, (fixed.data() + fixed.size()) - f); + auto varBitstream = ZS_BitDStreamFF_init(v, vEnd - v); + ZS_BitDStreamFF_skip(&varBitstream, bitsConsumed); + for (; i < size; ++i) { + auto bucket = ZS_BitDStreamFF_read(&fixedBitstream, 5); + ZS_BitDStreamFF_reload(&fixedBitstream); + + auto base = bases_[bucket]; + auto bits = varBits_[bucket]; + + auto offset = ZS_BitDStreamFF_read(&varBitstream, bits); + ZS_BitDStreamFF_reload(&varBitstream); + out[i] = base + offset; + } + auto report = ZS_BitDStreamFF_finish(&varBitstream); + if (ZL_isError(report)) { + throw std::runtime_error("read too many varbits"); + } + } + + static std::array expandLUT6(poly::span lut) + { + std::array expanded; + for (size_t byte = 0; byte < 4096; ++byte) { + const size_t lo = byte & 63; + const size_t hi = byte >> 6; + expanded[byte] = uint32_t(lut[lo]) | (uint32_t(lut[hi]) << 16); + } + return expanded; + } + + std::array makeBaseLUT6() const + { + std::array lut{}; + memcpy(lut.data(), bases_.data(), numBases_ * 2); + return lut; + } + + std::array makeMaskLUT6() const + { + std::array lut; + for (size_t i = 0; i < 64; ++i) { + if (i < numBases_) { + lut[i] = (1u << varBits_[i]) - 1; + assert(varBits_[i] <= 14); + } else { + lut[i] = 0; + } + } + return lut; + } + + void decode6( + poly::span fixed, + poly::span var, + uint16_t* out) const + { + const auto baseLUT = expandLUT6(makeBaseLUT6()); + const auto maskLUT = expandLUT6(makeMaskLUT6()); + const auto size = numElts(fixed.size()); + + uint16_t* o = out; + const uint8_t* f = fixed.data(); + const uint8_t* v = var.data(); + const uint8_t* const vEnd = v + var.size(); + + constexpr size_t kEltsPerIter = 16; + size_t i = 0; + + const auto computeLimit = [&] { + if (size < kEltsPerIter) { + return i; + } + assert(v <= vEnd); + const size_t vSafeNumIters = (8 * (vEnd - v) - 7) / maxVarBits_; + if (vSafeNumIters < kEltsPerIter) { + return i; + } + const auto limit = std::min( + size - kEltsPerIter, i + vSafeNumIters - kEltsPerIter); + return limit; + }; + + size_t bitsConsumed = 0; + size_t limit = computeLimit(); + for (;; i += kEltsPerIter) { + if (i >= limit) { + limit = computeLimit(); + if (i >= limit) { + break; + } + } + static_assert(kEltsPerIter % 4 == 0); + for (size_t u = 0; u < kEltsPerIter; u += 4) { + uint32_t const F = ZL_readLE32(f); + const auto f0 = F & 4095; + const auto f1 = (F >> 12) & 4095; + f += 3; + { + const uint64_t base = uint64_t(baseLUT[f0]) + | (uint64_t(baseLUT[f1]) << 32); + const uint64_t mask = uint64_t(maskLUT[f0]) + | (uint64_t(maskLUT[f1]) << 32); + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = utils::bitDeposit(vData, mask); + + ZL_writeLE64(o, base + offset); + o += 4; + + bitsConsumed += __builtin_popcountll(mask); + assert(bitsConsumed <= 64); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } + } + } + + assert(v <= vEnd); + auto fixedBitstream = + ZS_BitDStreamFF_init(f, (fixed.data() + fixed.size()) - f); + auto varBitstream = ZS_BitDStreamFF_init(v, vEnd - v); + ZS_BitDStreamFF_skip(&varBitstream, bitsConsumed); + for (; i < size; ++i) { + auto bucket = ZS_BitDStreamFF_read(&fixedBitstream, 6); + ZS_BitDStreamFF_reload(&fixedBitstream); + + auto base = bases_[bucket]; + auto bits = varBits_[bucket]; + + auto offset = ZS_BitDStreamFF_read(&varBitstream, bits); + ZS_BitDStreamFF_reload(&varBitstream); + out[i] = base + offset; + } + auto report = ZS_BitDStreamFF_finish(&varBitstream); + if (ZL_isError(report)) { + throw std::runtime_error("read too many varbits"); + } + } + + void decode( + poly::span fixed, + poly::span var, + uint16_t* output) const + { + if (fixedBits_ == 3) { + decode3(fixed, var, output); + return; + } + if (fixedBits_ == 4) { + decode4(fixed, var, output); + return; + } + if (fixedBits_ == 5) { + decode5(fixed, var, output); + return; + } + if (fixedBits_ == 6) { + decode6(fixed, var, output); + return; + } + auto fixedBitstream = ZS_BitDStreamFF_init(fixed.data(), fixed.size()); + auto varBitstream = ZS_BitDStreamFF_init(var.data(), var.size()); + const auto size = numElts(fixed.size()); + + for (size_t i = 0; i < size; ++i) { + const auto bucket = + ZS_BitDStreamFF_read(&fixedBitstream, fixedBits_); + assert(bucket < 256); + const auto base = bases_[bucket]; + const auto offset = + ZS_BitDStreamFF_read(&varBitstream, varBits_[bucket]); + output[i] = base + offset; + + ZS_BitDStreamFF_reload(&fixedBitstream); + ZS_BitDStreamFF_reload(&varBitstream); + } + } + + private: + size_t getBucketSize(size_t baseIdx) const + { + if (baseIdx >= numBases_) { + return 1; + } + size_t base = bases_[baseIdx]; + assert(base < numSymbols_); + auto end = baseIdx + 1 == numBases_ ? numSymbols_ + : size_t(bases_[baseIdx + 1]); + assert(end > base); + return end - base; + } + + std::array bases_{}; + std::array varBits_{}; + size_t unusedFixedBits_; + size_t fixedBits_; + size_t numBases_; + size_t maxVarBits_; + size_t numSymbols_; +}; +} // namespace + +SimpleCodecDescription Bucket16Encoder::simpleCodecDescription() const +{ + return bucket16CodecDescription(); +} + +void Bucket16Encoder::encode(EncoderState& encoder) const +{ + auto bases = encoder.getLocalParam(0); + if (!bases.has_value()) { + throw std::runtime_error("bases not present"); + } + auto maxSymbolValue = encoder.getLocalIntParam(1); + if (!maxSymbolValue.has_value()) { + throw std::runtime_error("maxSymbolValue not present"); + } + Bucket16EncoderState state(*bases, *maxSymbolValue); + + const auto& input = encoder.inputs()[0]; + const size_t numElts = input.numElts(); + + if (input.eltWidth() != 2) { + throw std::runtime_error("Unsupported width != 2"); + } + + uint8_t header[515]; + // first byte is the # of unused bits in the bitstream + header[0] = (8 - ((state.fixedBits() * numElts) % 8)) % 8; + // next 2 bytes are the max symbol value + ZL_writeLE16(header + 1, *maxSymbolValue); + // TODO: Handle big endian + memcpy(header + 3, state.bases().data(), state.bases().size() * 2); + + encoder.sendCodecHeader(header, 3 + state.bases().size() * 2); + + auto fixedStream = + encoder.createOutput(0, state.fixedStreamSize(numElts), 1); + auto varStream = encoder.createOutput(1, state.varStreamBound(numElts), 1); + + auto varStreamSize = state.encode( + { (const uint16_t*)input.ptr(), input.numElts() }, + (uint8_t*)fixedStream.ptr(), + (uint8_t*)varStream.ptr()); + + fixedStream.commit(state.fixedStreamSize(numElts)); + varStream.commit(varStreamSize); +} +/* static */ Edge::RunNodeResult Bucket16Encoder::runNode( + Edge& edge, + NodeID node, + poly::span bases, + uint16_t maxSymbolValue) +{ + NodeParameters params; + params.localParams.emplace(); + params.localParams->addRefParam(0, bases.data(), bases.size_bytes()); + params.localParams->addIntParam(1, maxSymbolValue); + auto r = edge.runNode(node, std::move(params)); + return r; +} + +SimpleCodecDescription Bucket16Decoder::simpleCodecDescription() const +{ + return bucket16CodecDescription(); +} + +void Bucket16Decoder::decode(DecoderState& decoder) const +{ + Bucket16DecoderState state(decoder.getCodecHeader()); + + const auto& fixedStream = decoder.singletonInputs()[0]; + const auto& varStream = decoder.singletonInputs()[1]; + const auto fixedSize = fixedStream.numElts(); + + auto outStream = decoder.createOutput(0, state.numElts(fixedSize), 2); + + state.decode( + { (const uint8_t*)fixedStream.ptr(), fixedSize }, + { (const uint8_t*)varStream.ptr(), varStream.numElts() }, + (uint16_t*)outStream.ptr()); + + outStream.commit(state.numElts(fixedSize)); +} + +/* static */ GraphID Bucket16Graph::create(Compressor& compressor) +{ + auto graph = compressor.getGraph("lz_research.bucket16_graph"); + if (!graph.has_value()) { + graph = compressor.registerFunctionGraph( + std::make_shared()); + } + + auto node = compressor.getNode("lz_research.bucket16"); + if (!node.has_value()) { + node = compressor.registerCustomEncoder( + std::make_shared()); + } + + return compressor.parameterizeGraph( + *graph, GraphParameters{ .customNodes = { { *node } } }); +} + +FunctionGraphDescription Bucket16Graph::functionGraphDescription() const +{ + return FunctionGraphDescription{ + .name = "!lz_research.bucket16_graph", + .inputTypeMasks = { TypeMask::Numeric }, + }; +} + +namespace { +constexpr uint32_t kBucket16OverheadBits = 40; +constexpr size_t kMaxBucketSize = 1u << 14; + +uint32_t fixedBucketCost(poly::span bucket, uint32_t fixedCost) +{ + const uint32_t bucketCount = + std::accumulate(bucket.begin(), bucket.end(), 0); + return bucketCount * (fixedCost + ZL_nextPow2(bucket.size())); +} + +uint32_t fixedBucketCost( + poly::span histogram, + poly::span partitions) +{ + const uint32_t totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + const uint32_t bucketBits = ZL_nextPow2(partitions.size()); + uint32_t cost = totalCount * bucketBits; + for (size_t i = 0; i < partitions.size(); ++i) { + const auto b = partitions[i]; + const auto e = i + 1 == partitions.size() ? histogram.size() + : partitions[i + 1]; + assert(b < e); + const uint32_t bucketCount = std::accumulate( + histogram.begin() + b, histogram.begin() + e, 0); + const uint32_t offsetBits = ZL_nextPow2(e - b); + cost += kBucket16OverheadBits + bucketCount * offsetBits; + } + return cost; +} + +std::vector fixedPartition( + poly::span histogram, + size_t numBuckets) +{ +#if 0 + constexpr size_t kNumBuckets = 766; + std::array bitsOffset = { + 0, + 0 + 4, + 0 + 4 + 6, + 0 + 4 + 6 + 12, + 0 + 4 + 6 + 12 + 24, + 0 + 4 + 6 + 12 + 24 + 48, + 0 + 4 + 6 + 12 + 24 + 48 + 96, + 0 + 4 + 6 + 12 + 24 + 48 + 96 + 192, + }; + std::array bucketsToBits; + for (size_t bucket = 0; bucket < bucketsToBits.size(); ++bucket) { + size_t bits = bitsOffset.size() - 1; + while (bucket < bitsOffset[bits]) { + --bits; + } + bucketsToBits[bucket] = bits; + } + auto bitsToBase = [&](size_t bits) { + return bits == 0 ? 0 : 1u << (bits << 1); + }; + auto bucketToBase = [&](size_t bucket) { + auto bits = bucketsToBits[bucket]; + auto base0 = bitsToBase(bits); + auto base = base0 + ((bucket - bitsOffset[bits]) << bits); + return base; + }; + + auto getBucket = [&](size_t i) { + auto bits = [](size_t val) { return ZL_highbit32(val | 1) >> 1; }; + auto b = bits(i); + auto base = bitsToBase(b); + auto bucket = bitsOffset[b] + ((i - base) >> b); + return bucket; + }; +#else + constexpr size_t kBucketBits = 3; + constexpr size_t kNumBuckets = 1u << (16 - kBucketBits); + + auto getBucket = [kBucketBits](size_t i) { return i >> kBucketBits; }; + auto bucketToBase = [kBucketBits](size_t bucket) { + return bucket << kBucketBits; + }; +#endif + + std::array bucketedCumHist{}; + size_t bucketCount = bucketedCumHist.size(); + + for (size_t i = 0; i < histogram.size(); ++i) { + auto bucket = getBucket(i); + assert(bucket < kNumBuckets); + bucketedCumHist[bucket] += histogram[i]; + } + while (bucketCount > 0 && bucketedCumHist[bucketCount - 1] == 0) { + --bucketCount; + } + for (size_t i = 0, cum = 0; i < bucketedCumHist.size(); ++i) { + const auto count = bucketedCumHist[i]; + bucketedCumHist[i] = cum; + cum += count; + } + + poly::span hist({ bucketedCumHist.data(), bucketCount }); + + auto bucketedPartitions = utils::partition( + hist, + numBuckets, + getBucket(kMaxBucketSize), + [&, fixed = ZL_highbit32(numBuckets)](auto bucket) { + auto beginIdx = bucket.data() - hist.data(); + auto endIdx = beginIdx + bucket.size(); + auto begin = bucketToBase(beginIdx); + auto end = bucketToBase(endIdx); + assert(begin < end); + assert(end - begin <= kMaxBucketSize); + // if (endIdx != hist.size() && !ZL_isPow2(end - begin)) { + // return std::numeric_limits::infinity(); + // } + const uint32_t bucketCount = *bucket.end() - *bucket.begin(); + auto cost = + float(bucketCount * (fixed + ZL_nextPow2(end - begin))); + return cost; + }, + [&](size_t idx) -> size_t { return bucketToBase(idx); }); + std::vector p; + for (const auto bucket : bucketedPartitions) { + auto base = bucketToBase(bucket); + p.push_back(base); + // fprintf(stderr, "%zu -> %u\n", bucket, unsigned(base)); + } + return p; +} + +std::vector fixedPartition(poly::span histogram) +{ + std::vector best; + uint32_t bestCost = std::numeric_limits::max(); + for (const auto numBuckets : { 8, 16, 32, 64 }) { + auto partitions = fixedPartition(histogram, numBuckets); + auto cost = fixedBucketCost(histogram, partitions); + if (cost < 0.99 * bestCost) { + bestCost = cost; + best = std::move(partitions); + } + } + return best; +} +constexpr size_t kPrecisionLoss = 4; +constexpr size_t kCutoff = 1u << 14; + +size_t fixedBucketCostFast( + poly::span cumHist, + poly::span partitions, + size_t numPartitions) +{ + auto bucket2idx = [](size_t bucket) { return bucket << kPrecisionLoss; }; + + const uint32_t totalCount = cumHist.back(); + const uint32_t bucketBits = ZL_nextPow2(numPartitions); + uint32_t cost = totalCount * bucketBits; + for (size_t i = 0; i < partitions.size(); ++i) { + const auto b = partitions[i]; + const auto e = i + 1 == partitions.size() ? cumHist.size() - 1 + : partitions[i + 1]; + assert(b < e); + const uint32_t bucketCount = cumHist[e] - cumHist[b]; + const uint32_t offsetBits = ZL_nextPow2(bucket2idx(e - b)); + cost += kBucket16OverheadBits + bucketCount * offsetBits; + } + return cost; +} + +size_t fixedBucketCostFast( + poly::span cumHist, + poly::span partitions) +{ + return fixedBucketCostFast(cumHist, partitions, partitions.size()); +} + +std::vector suffixPartition( + poly::span hist, + poly::span cumHist, + size_t numPartitions) +{ + auto idx2bucket = [](size_t idx) { return idx >> kPrecisionLoss; }; + + if (hist.empty()) { + return {}; + } + std::vector partitions; + partitions.push_back(0); + + int targetCount = cumHist.back() / numPartitions; + + while (partitions.back() != hist.size()) { + const size_t begin = partitions.back(); + const size_t maxSize = + std::min(idx2bucket(kMaxBucketSize), hist.size() - begin); + + size_t bestSize = 0; + int bestDiff = std::numeric_limits::max(); + + auto testSize = [&](size_t size) { + const size_t end = begin + size; + const int count = cumHist[end] - cumHist[begin]; + const int diff = std::abs(targetCount - count); + if (diff < bestDiff) { + bestSize = size; + bestDiff = diff; + } + }; + + for (size_t size = 1; size <= maxSize; size *= 2) { + testSize(size); + } + if (maxSize == hist.size() - begin && bestSize != maxSize) { + testSize(maxSize); + } + partitions.push_back(begin + bestSize); + } + partitions.pop_back(); + assert(partitions.size() <= numPartitions); + return partitions; +} + +size_t numMaxedBuckets(poly::span cumHist, size_t numPartitions) +{ + auto idx2bucket = [](size_t idx) { return idx >> kPrecisionLoss; }; + + const uint32_t targetCount = cumHist.back() / numPartitions; + size_t numMaxed = 0; + const auto maxBucketSize = idx2bucket(kMaxBucketSize); + const size_t histSize = (cumHist.size() - 1); + const size_t maxMaxed = divUp(histSize, maxBucketSize); + + for (; numMaxed < maxMaxed; ++numMaxed) { + auto begin = histSize - (maxBucketSize + 1) * numMaxed; + auto end = begin + maxBucketSize; + auto count = cumHist[end] - cumHist[begin]; + if (count >= targetCount) { + break; + } + } + return numMaxed; +} + +class GreedyOptimizer { + public: + GreedyOptimizer( + poly::span cumHist, + std::vector prefixPartitions, + size_t numPartitions) + : cumHist_(cumHist), + prefixPartitions_(std::move(prefixPartitions)), + numPartitions_(numPartitions) + { + if (prefixPartitions_.empty()) { + prefixPartitions_.push_back(0); + } + partitions_ = prefixPartitions_; + } + + std::vector run() + { + print("initial"); + while (partitions_.size() < numPartitions_) { + if (!dividePartition()) { + // fprintf(stderr, "cannot divide further\n"); + break; + } + print("divide"); + } + iterativeImprovement(); + return partitions_; + } + + private: + void print(const char* msg) const + { + return; + fprintf(stderr, "%s: cost = %f: ", msg, cost(partitions_)); + for (size_t i = 0; i < partitions_.size(); ++i) { + fprintf(stderr, "%zu, ", partitions_[i]); + } + fprintf(stderr, "\n"); + } + + std::vector growPartitions(size_t i) const + { + if (i + 1 == partitions_.size()) { + return partitions_; + } + auto newPartitions = partitions_; + + auto begin = partitions_[i]; + auto end = partitions_[i + 1]; + auto size = end - begin; + const auto newSize = 1u << (ZL_nextPow2(size) + 1); + newPartitions[i + 1] = begin + newSize; + + for (size_t j = i + 1; j + 1 < partitions_.size(); ++j) { + begin = partitions_[j]; + end = partitions_[j + 1]; + size = end - begin; + // Ensure that sizes are increasing + // Round up to a power of 2 + newPartitions[j + 1] = std::max(newSize, 1u << ZL_nextPow2(size)); + } + return newPartitions; + } + + std::vector shrinkPartitions(size_t i) const + { + if (i + 1 == partitions_.size()) { + return partitions_; + } + auto newPartitions = partitions_; + + auto begin = partitions_[i]; + auto end = i + 1 == partitions_.size() ? cumHist_.size() - 1 + : partitions_[i + 1]; + auto size = end - begin; + if (size == 1) { + return partitions_; + } + + const auto newSize = 1u << (ZL_nextPow2(size) - 1); + newPartitions[i + 1] = begin + newSize; + + for (size_t j = i + 1; j + 1 < partitions_.size(); ++j) { + begin = partitions_[j]; + end = partitions_[j + 1]; + size = end - begin; + // Round down to a power of 2 + if (!ZL_isPow2(size)) { + newPartitions[j + 1] = 1u << (ZL_nextPow2(size) - 1); + } + } + return newPartitions; + } + + void iterativeImprovement() + { + assert(partitions_.size() <= numPartitions_); + for (size_t idx = 0; idx + 1 < partitions_.size();) { + auto partitions = growPartitions(idx); + if (cost(partitions) < cost(partitions_)) { + // fprintf(stderr, "grew idx=%zu\n", idx); + partitions_ = std::move(partitions); + print("iterative"); + continue; + } + partitions = shrinkPartitions(idx); + if (cost(partitions) < cost(partitions_)) { + // fprintf(stderr, "shrunk idx=%zu\n", idx); + partitions_ = std::move(partitions); + print("iterative"); + continue; + } + ++idx; + } + } + + void dividePartition(std::vector& partitions, size_t i) + { + auto begin = partitions_[i]; + auto end = i + 1 == partitions_.size() ? (cumHist_.size() - 1) + : partitions_[i + 1]; + const auto size = end - begin; + const auto newSize = 1u << (ZL_nextPow2(size) - 1); + // fprintf(stderr, "(%zu, %zu) = %zu -> %zu\n", begin, end, size, + // newSize); + partitions.insert(partitions.begin() + i + 1, begin + newSize); + } + + float costWithDivide(size_t idx) + { + auto partitions = partitions_; + dividePartition(partitions, idx); + return cost(partitions); + } + + void dividePartition(size_t i) + { + dividePartition(partitions_, i); + } + + bool dividePartition() + { + float bestCost = std::numeric_limits::max(); + auto bestIdx = size_t(-1); + assert(!prefixPartitions_.empty()); + for (size_t i = prefixPartitions_.size() - 1; i < partitions_.size(); + ++i) { + auto begin = partitions_[i]; + auto end = i + 1 == partitions_.size() ? (cumHist_.size() - 1) + : partitions_[i + 1]; + if (end - begin == 1) { + continue; + } + if (!isLegal(begin, end)) { + // fprintf(stderr, "illegal\n"); + dividePartition(i); + return true; + } + auto cost = costWithDivide(i); + if (cost < bestCost) { + bestCost = cost; + bestIdx = i; + } + } + if (bestIdx == size_t(-1)) { + return false; + } + // fprintf(stderr, "dividing at idx = %zu\n", bestIdx); + dividePartition(bestIdx); + return true; + } + + size_t idx2bucket(size_t idx) const + { + return idx >> kPrecisionLoss; + } + + bool isLegal(size_t begin, size_t end) const + { + return begin < end && end - begin <= idx2bucket(kMaxBucketSize); + } + + bool isLegal(poly::span partitions) const + { + if (partitions.empty()) { + return false; + } + if (partitions.back() >= cumHist_.size() - 1) { + return false; + } + for (size_t i = 0; i < partitions.size(); ++i) { + auto begin = partitions[i]; + auto end = i + 1 == partitions.size() ? (cumHist_.size() - 1) + : partitions[i + 1]; + if (!isLegal(begin, end)) { + return false; + } + } + return true; + } + + float cost(poly::span partitions) const + { + if (!isLegal(partitions)) { + return std::numeric_limits::infinity(); + } + return fixedBucketCostFast(cumHist_, partitions, numPartitions_); + } + + poly::span cumHist_; + std::vector prefixPartitions_; + std::vector partitions_; + size_t numPartitions_; +}; + +std::vector completePartitions( + poly::span cumHist, + std::vector partitions, + size_t numPartitions) +{ + auto idx2bucket = [](size_t idx) { return idx >> kPrecisionLoss; }; + auto startIdx = partitions.size(); + + if (partitions.empty()) { + partitions.push_back(0); + } + assert(partitions.size() <= numPartitions); + + auto begin = partitions.back(); + int targetCount = (cumHist.back() - cumHist[begin]) + / (numPartitions - partitions.size()); + + // fprintf(stderr, "target = %d\n", targetCount); + + size_t histSize = cumHist.size() - 1; + while (partitions.back() != histSize) { + const size_t begin = partitions.back(); + const size_t maxSize = + std::min(idx2bucket(kMaxBucketSize), histSize - begin); + + size_t bestSize = 0; + int bestDiff = std::numeric_limits::max(); + + auto testSize = [&](size_t size) { + const size_t end = begin + size; + const int count = cumHist[end] - cumHist[begin]; + const int diff = std::abs(targetCount - count); + if (diff < bestDiff) { + bestSize = size; + bestDiff = diff; + } + }; + + for (size_t size = 1; size <= maxSize; size *= 2) { + testSize(size); + } + if (maxSize == histSize - begin && bestSize != maxSize) { + testSize(maxSize); + } + partitions.push_back(begin + bestSize); + // fprintf(stderr, + // "add bucket of size = %zu, weight = %zu\n", + // bestSize, + // cumHist[begin + bestSize] - cumHist[begin]); + } + partitions.pop_back(); + // fprintf(stderr, "%zu ?= %zu\n", partitions.size(), numPartitions); + while (partitions.size() < numPartitions) { + size_t worstIdx = 0; + int worstCost = 0; + for (size_t idx = startIdx + 1; idx < partitions.size(); ++idx) { + auto begin = partitions[idx - 1]; + auto end = partitions[idx]; + const int count = cumHist[end] - cumHist[begin]; + const int cost = count - targetCount; + if (end - begin != 1 && cost > worstCost) { + worstIdx = idx; + worstCost = cost; + } + } + assert(worstIdx != 0); + auto begin = partitions[worstIdx - 1]; + auto end = partitions[worstIdx]; + assert(ZL_isPow2(end - begin)); + const auto newSize = (end - begin) / 2; + partitions.insert(partitions.begin() + worstIdx - 1, begin + newSize); + } + // while (partitions.size() > numPartitions) { + // size_t bestIdx = 0; + // int bestCost = 0; + // for (size_t idx = startIdx + 1; idx < partitions.size(); ++idx) { + // auto begin = partitions[idx - 1]; + // auto end = partitions[idx]; + // const int count = cumHist[end] - cumHist[begin]; + // const int cost = count - targetCount; + // if (end - begin != 1 && cost > worstCost) { + // worstIdx = idx; + // worstCost = cost; + // } + // } + // assert(worstIdx != 0); + // auto begin = partitions[worstIdx - 1]; + // auto end = partitions[worstIdx]; + // assert(ZL_isPow2(end - begin)); + // const auto newSize = (end - begin) / 2; + // partitions.insert(partitions.begin() + worstIdx - 1, begin + + // newSize); + // } + + return partitions; +} + +// 1. Take advantage of buckets only getting larger for suffix. +// 2. Compute how many max-sized buckets we are going to have +// Use that when computing the suffix count. +std::vector fixedPartitionFast( + poly::span cumHist, + size_t numPartitions) +{ + auto idx2bucket = [](size_t idx) { return idx >> kPrecisionLoss; }; + auto bucket2idx = [](size_t bucket) { return bucket << kPrecisionLoss; }; + + const size_t histSize = cumHist.size() - 1; + const size_t cutoff = std::min(histSize, idx2bucket(kCutoff)); + auto totalWeight = cumHist.back() - cumHist[cutoff]; + auto numSuffixPartitions = + totalWeight == 0 ? 0 : divUp(cumHist.back(), totalWeight); + numSuffixPartitions = totalWeight == 0 + ? 0 + : std::max( + divUp(histSize, idx2bucket(kMaxBucketSize)), + numSuffixPartitions); + numSuffixPartitions = std::min(numPartitions, numSuffixPartitions); + + // fprintf(stderr, + // "num suffix partitions: %zu of %zu\n", + // numSuffixPartitions, + // numPartitions); + assert(numSuffixPartitions <= numPartitions); + + const auto prefixCumHist = cumHist.subspan(0, cutoff); + const auto numPrefixPartitions = numPartitions - numSuffixPartitions; + std::vector prefixPartitions; + if (numPrefixPartitions > 0) { + prefixPartitions = utils::partition( + prefixCumHist, + numPrefixPartitions, + idx2bucket(kMaxBucketSize), + [&, fixed = ZL_highbit32(numPartitions)](auto bucket) { + assert(!bucket.empty()); + assert(bucket.size() <= kMaxBucketSize); + const uint32_t bucketCount = + *bucket.end() - *bucket.begin(); + auto cost = float( + bucketCount + * (fixed + ZL_nextPow2(bucket2idx(bucket.size())))); + return cost; + }, + [&](size_t idx) -> size_t { return bucket2idx(idx); }); + } + // fprintf(stderr, "prefix partitions: %zu\n", prefixPartitions.size()); + // for (size_t i = 0; i < prefixPartitions.size(); ++i) { + // fprintf(stderr, "%zu, ", prefixPartitions[i]); + // } + // fprintf(stderr, "\n"); + GreedyOptimizer opt(cumHist, prefixPartitions, numPartitions); + auto complete = opt.run(); + // auto complete = completePartitions( + // cumHist, std::move(prefixPartitions), numPartitions); + // fprintf(stderr, "complete partitions: %zu\n", complete.size()); + // for (size_t i = 0; i < complete.size(); ++i) { + // fprintf(stderr, "%zu, ", complete[i]); + // } + // fprintf(stderr, "\n"); + return complete; +} + +std::tuple, size_t, size_t> fixedPartitionFast( + poly::span data) +{ + auto idx2bucket = [](size_t idx) { return idx >> kPrecisionLoss; }; + auto bucket2idx = [](size_t idx) { return idx << kPrecisionLoss; }; + + std::vector hist(1u << (16 - kPrecisionLoss), uint32_t(0)); + for (auto val : data) { + ++hist[idx2bucket(val)]; + } + size_t histSize = hist.size(); + while (histSize > 0 && hist[histSize - 1] == 0) { + --histSize; + } + + std::vector cumHist; + cumHist.reserve(histSize + 1); + uint32_t cum = 0; + for (size_t i = 0; i < histSize; ++i) { + auto count = hist[i]; + cumHist.push_back(cum); + cum += count; + } + cumHist.push_back(cum); + + std::vector best; + uint32_t bestCost = std::numeric_limits::max(); + for (const auto numBuckets : { 16, 32 }) { + auto partitions = fixedPartitionFast(cumHist, numBuckets); + auto cost = fixedBucketCostFast(cumHist, partitions); + if (cost < 0.99 * bestCost) { + bestCost = cost; + best = std::move(partitions); + } else { + break; + } + } + std::vector partitions; + partitions.reserve(best.size()); + for (auto p : best) { + partitions.push_back(bucket2idx(p)); + // fprintf(stderr, "%u\n", unsigned(partitions.back())); + } + // fprintf(stderr, "\n"); + + return std::make_tuple( + std::move(partitions), bestCost, bucket2idx(histSize) - 1); +} + +class OptimalFixedPartition { + public: + OptimalFixedPartition( + poly::span histogram, + size_t numPartitions) + : hist_(histogram), numPartitions_(numPartitions) + { + auto totalCount = + std::accumulate(histogram.begin(), histogram.end(), 0); + targetCount_ = totalCount / numPartitions; + } + + std::vector run() + { + assert(partitions_.empty()); + size_t offset = 0; + // TODO: Enable offset > 0 + // while (offset < hist_.size() && hist_[offset] == 0) { + // ++offset; + // } + partitions_.push_back(offset); + go(); + partitions_.pop_back(); + assert(partitions_.empty()); + assert(bestPartitions_.size() <= numPartitions_); + return bestPartitions_; + } + + private: + void go() + { + if (hist_.size() - size_t(partitions_.back()) <= kMaxBucketSize) { + auto c = cost(partitions_); + if (c < bestCost_) { + bestCost_ = c; + bestPartitions_ = partitions_; + } + } + if (partitions_.size() < numPartitions_) { + auto smallPartition = getSmallPartition(); + if (smallPartition < hist_.size()) { + const auto begin = partitions_.back(); + partitions_.push_back(smallPartition); + if (smallPartition - begin <= kMaxBucketSize) { + go(); + } + auto largePartition = getLargePartition(); + if (largePartition < hist_.size() + && largePartition - begin <= kMaxBucketSize) { + partitions_.back() = largePartition; + go(); + } + partitions_.pop_back(); + } + } + } + + size_t getSmallPartition() const + { + uint32_t count = 0; + size_t end; + for (end = partitions_.back() + 1; end < hist_.size(); ++end) { + count += hist_[end]; + if (count > targetCount_) { + break; + } + } + size_t size = end - partitions_.back(); + while (!ZL_isPow2(size)) { + --size; + } + return partitions_.back() + size; + } + + size_t getLargePartition() const + { + uint32_t count = 0; + size_t end; + for (end = partitions_.back() + 1; end < hist_.size(); ++end) { + count += hist_[end]; + if (count > targetCount_) { + ++end; + break; + } + } + size_t size = end - partitions_.back(); + while (!ZL_isPow2(size)) { + ++size; + } + return partitions_.back() + size; + } + + uint32_t cost(poly::span partitions) const + { + auto cost = fixedBucketCost(hist_, partitions); + return cost; + } + + uint32_t bestCost_{ std::numeric_limits::max() }; + std::vector bestPartitions_ = { 0 }; + std::vector partitions_{}; + poly::span hist_; + size_t numPartitions_; + uint32_t targetCount_; +}; + +void improvePartitions( + poly::span histogram, + std::vector& partitions, + std::vector& bucketWeights) +{ + partitions.push_back(histogram.size()); + auto bucketCost = [fixedCost = ZL_nextPow2(partitions.size())]( + size_t bucketSize, uint32_t bucketWeight) { + auto variableCost = ZL_nextPow2(bucketSize); + return bucketWeight * (fixedCost + variableCost); + }; + + auto tryBoundry = [&](size_t currentCost, + auto prevBucketSize, + auto prevBucketWeight, + auto currBucketSize, + auto currBucketWeight, + auto idx, + auto newIdx) { + // When moving right, the element at idx transfers from curr to prev. + // When moving left, the element at newIdx transfers from prev to curr. + auto weight = newIdx > idx ? histogram[idx] : histogram[newIdx]; + if (newIdx == idx + 1) { + ++prevBucketSize; + prevBucketWeight += weight; + --currBucketSize; + currBucketWeight -= weight; + } else { + assert(newIdx == idx - 1); + --prevBucketSize; + prevBucketWeight -= weight; + ++currBucketSize; + currBucketWeight += weight; + } + return bucketCost(prevBucketSize, prevBucketWeight) + + bucketCost(currBucketSize, currBucketWeight); + }; + + for (size_t boundry = 1; boundry < partitions.size() - 1; ++boundry) { + auto prevBucketSize = partitions[boundry] - partitions[boundry - 1]; + auto prevBucketWeight = bucketWeights[boundry - 1]; + + auto prevBucketCost = + bucketCost(prevBucketSize, bucketWeights[boundry - 1]); + + auto currBucketSize = partitions[boundry + 1] - partitions[boundry]; + auto currBucketWeight = bucketWeights[boundry]; + auto currBucketCost = bucketCost(currBucketSize, currBucketWeight); + + auto bucketCost = prevBucketCost + currBucketCost; + + while (currBucketSize < kMaxBucketSize + && partitions[boundry] > partitions[boundry - 1] + 1) { + auto idx = partitions[boundry]; + auto newBucketCost = tryBoundry( + bucketCost, + prevBucketSize, + prevBucketWeight, + currBucketSize, + currBucketWeight, + idx, + idx - 1); + if (newBucketCost < bucketCost) { + --prevBucketSize; + prevBucketWeight -= histogram[idx - 1]; + ++currBucketSize; + currBucketWeight += histogram[idx - 1]; + --partitions[boundry]; + bucketCost = newBucketCost; + } else { + break; + } + } + while (prevBucketSize < kMaxBucketSize + && partitions[boundry] + 1 < partitions[boundry + 1]) { + auto idx = partitions[boundry]; + auto newBucketCost = tryBoundry( + bucketCost, + prevBucketSize, + prevBucketWeight, + currBucketSize, + currBucketWeight, + idx, + idx + 1); + if (newBucketCost < bucketCost) { + ++prevBucketSize; + prevBucketWeight += histogram[idx]; + --currBucketSize; + currBucketWeight -= histogram[idx]; + ++partitions[boundry]; + bucketCost = newBucketCost; + } else { + break; + } + } + } + partitions.pop_back(); +} + +std::vector greedyPartition( + poly::span histogram, + size_t totalCount, + size_t numBuckets) +{ + std::vector partitions; + partitions.reserve(numBuckets); + std::vector bucketWeights; + bucketWeights.reserve(numBuckets); + // fprintf(stderr, "begin\n"); + { + auto targetWeight = + std::max((totalCount + numBuckets - 1) / numBuckets, 1); + size_t remainingWeight = totalCount; + size_t currentWeight = 0; + size_t partitionEnd = histogram.size(); + for (size_t idx = histogram.size(); idx-- > 0;) { + currentWeight += histogram[idx]; + remainingWeight -= histogram[idx]; + + const bool shouldPartition = currentWeight >= targetWeight; + const bool mustPartition = ((partitionEnd - idx) >= (1u << 14)) + || (partitions.size() + idx + 1 == numBuckets); + + if (shouldPartition || mustPartition) { + partitionEnd = idx; + partitions.push_back(idx); + bucketWeights.push_back(currentWeight); + currentWeight = 0; + + size_t remainingBuckets = numBuckets - partitions.size(); + if (remainingBuckets == 0) { + break; + } + targetWeight = std::max( + (remainingWeight + remainingBuckets - 1) + / remainingBuckets, + 1); + } + } + assert(remainingWeight == 0); + if (partitions.back() != 0) { + partitions.back() = 0; + bucketWeights.back() += currentWeight; + } + (void)remainingWeight; + if (partitions.size() > numBuckets) { + throw std::runtime_error("impossible"); + } + if (partitions.size() < numBuckets) { + throw std::runtime_error("fix my code"); + } + std::reverse(partitions.begin(), partitions.end()); + } + // fprintf(stderr, + // "initial, %zu vs %zu: %zu\n", + // numBuckets, + // partitions.size(), + // histogram.size()); + // for (size_t i = 0; i < partitions.size(); ++i) { + // fprintf(stderr, "%d, ", (int)partitions[i]); + // } + // fprintf(stderr, "\n"); + // auto initialCost = fixedBucketCost(histogram, partitions); + improvePartitions(histogram, partitions, bucketWeights); + // auto improvedCost = fixedBucketCost(histogram, partitions); + // fprintf(stderr, "%zu -> %zu\n", initialCost, improvedCost); + + // fprintf(stderr, + // "finished, %zu vs %zu: %zu\n", + // numBuckets, + // partitions.size(), + // histogram.size()); + // for (size_t i = 0; i < partitions.size(); ++i) { + // fprintf(stderr, "%d, ", (int)partitions[i]); + // } + // fprintf(stderr, "\n"); + + return partitions; +} + +std::vector greedyPartition( + poly::span histogram, + size_t totalCount) +{ + std::vector best; + uint32_t bestCost = std::numeric_limits::max(); + for (const auto numBuckets : { 4, 8, 16, 32, 64 }) { + auto partitions = greedyPartition(histogram, totalCount, numBuckets); + auto cost = fixedBucketCost(histogram, partitions); + if (cost < 0.99 * bestCost) { + bestCost = cost; + best = std::move(partitions); + } + } + return best; +} +} // namespace + +void Bucket16Graph::graph(GraphState& state) const +{ + auto& inputEdge = state.edges()[0]; + const auto& inputStream = inputEdge.getInput(); + const size_t numElts = inputStream.numElts(); + + if (numElts < 10) { + inputEdge.setDestination(graphs::Store{}()); + return; + } + + // ZL_Histogram16 histogram; + // ZL_Histogram_init(&histogram.base, 65535); + // ZL_Histogram_build(&histogram.base, inputStream.ptr(), numElts, 2); + + // poly::span hist{ histogram.base.count, + // histogram.base.maxSymbol + 1 }; + // partitions = fixedPartition(hist); + // TODO: Allow for 1, 2, 4, 8, 32, 64, 128, 256 #buckets + // const auto partitions = OptimalFixedPartition{ hist, 16 }.run(); + const auto [partitions, bitCost, maxSymbolValue] = + fixedPartitionFast({ (const uint16_t*)inputStream.ptr(), numElts }); + // const auto partitions = fixedPartition(hist); + + if (partitions.size() == 1) { + inputEdge.setDestination(graphs::Bitpack{}()); + return; + } + bool allOne = true; + for (size_t i = 0; i < partitions.size(); ++i) { + // TODO: Fix the decoder to handle this case... + auto begin = partitions[i]; + auto end = i + 1 == partitions.size() ? maxSymbolValue + 1 + : partitions[i + 1]; + if (begin + 1 != end) { + allOne = false; + break; + } + } + if (allOne) { + inputEdge.setDestination(graphs::Bitpack{}()); + return; + } + // const auto partitions = greedyPartition(hist, numElts); + // const auto bitCost = fixedBucketCost(hist, partitions); +#if 0 + if (1) { + std::vector partitionSizes; + bool print = false; + for (size_t i = 0; i < partitions.size(); ++i) { + auto begin = partitions[i]; + auto end = i == partitions.size() - 1 ? hist.size() + : partitions[i + 1]; + auto size = end - begin; + if (i != 0 && i != partitions.size() - 1 + && size < partitionSizes.back()) { + // print = true; + } + if (i != partitions.size() - 1 && !ZL_isPow2(size)) { + // print = true; + } + partitionSizes.push_back(end - begin); + } + if (print) { + for (size_t i = 0; i < partitions.size(); ++i) { + fprintf(stderr, "%d, ", (int)partitionSizes[i]); + } + fprintf(stderr, "\n"); + } + } + if (0) + for (size_t i = 0; i < partitions.size(); ++i) { + const size_t size = + (i + 1 == partitions.size() ? 65536 : partitions[i + 1]) + - partitions[i]; + fprintf(stderr, + "p[%zu] = %d | size = %zu\n", + i, + int(partitions[i]), + size); + } + if (0) + fprintf(stderr, + "numElts = %zu, #partitions = %u, cost = %u\n", + numElts, + (unsigned)partitions.size(), + bitCost / 8); +#endif + + if (bitCost / 8 >= 2 * 99 * numElts / 100) { + // Not enough gain => skip + if (0) + fprintf(stderr, "skipping...\n"); + inputEdge.setDestination(graphs::Store{}()); + return; + } + + const auto nodes = state.customNodes(); + if (nodes.size() != 1) { + throw std::runtime_error("CustomNodes must have exactly one node"); + } + + auto outEdges = Bucket16Encoder::runNode( + inputEdge, nodes[0], partitions, maxSymbolValue); + assert(outEdges.size() == 2); + + if (0) + fprintf(stderr, + "actual = %zu: %zu, %zu\n", + outEdges[0].getInput().numElts() + + outEdges[1].getInput().numElts(), + outEdges[0].getInput().numElts(), + outEdges[1].getInput().numElts()); + + outEdges[0].setDestination(graphs::Store{}()); + outEdges[1].setDestination(graphs::Store{}()); +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/Bucket16.hpp b/contrib/lz-research/codecs/Bucket16.hpp new file mode 100644 index 000000000..60e867972 --- /dev/null +++ b/contrib/lz-research/codecs/Bucket16.hpp @@ -0,0 +1,46 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace openzl::lz { + +class Bucket16Encoder : public CustomEncoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void encode(EncoderState& encoder) const override; + + static Edge::RunNodeResult runNode( + Edge& edge, + NodeID node, + poly::span bases, + uint16_t maxSymbolValue); + + ~Bucket16Encoder() override = default; +}; + +class Bucket16Decoder : public CustomDecoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void decode(DecoderState& decoder) const override; + + ~Bucket16Decoder() override = default; +}; + +class Bucket16Graph : public FunctionGraph { + public: + Bucket16Graph() = default; + + static GraphID create(Compressor& compressor); + + FunctionGraphDescription functionGraphDescription() const override; + + void graph(GraphState& state) const override; + + virtual ~Bucket16Graph() override = default; +}; + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/CodecIDs.hpp b/contrib/lz-research/codecs/CodecIDs.hpp new file mode 100644 index 000000000..57ac502da --- /dev/null +++ b/contrib/lz-research/codecs/CodecIDs.hpp @@ -0,0 +1,14 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +namespace openzl::lz { +enum class CustomCodecIDs { + LZ = 0x1337, + SmallInt = 0x1338, + VarByte = 0x1339, + IsoByte = 0x133A, + Bucket = 0x133B, + Bucket16 = 0x133C, +}; +} diff --git a/contrib/lz-research/codecs/IsoByte.cpp b/contrib/lz-research/codecs/IsoByte.cpp new file mode 100644 index 000000000..1b9fce968 --- /dev/null +++ b/contrib/lz-research/codecs/IsoByte.cpp @@ -0,0 +1,439 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "IsoByte.hpp" + +#include + +#include "CodecIDs.hpp" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" + +#if ZL_ARCH_X86_64 +# include +#endif + +namespace openzl::lz { +namespace { +VariableOutputCodecDescription isoByteCodecDescription() +{ + return VariableOutputCodecDescription{ + .id = unsigned(CustomCodecIDs::IsoByte), + .name = "!lz_research.iso_byte", + .inputType = Type::Numeric, + .singletonOutputTypes = { Type::Serial, Type::Serial }, + .variableOutputTypes = { Type::Serial }, + }; +} + +void setBit(uint8_t* bitmap, size_t idx) +{ + bitmap[idx / 8] |= (1 << (idx % 8)); +} + +bool getBit(const uint8_t* bitmap, size_t idx) +{ + return (bitmap[idx / 8] & (1 << (idx % 8))) != 0; +} + +void isoByteDecodeNaive( + std::span dst, + std::span bits, + std::span lo, + std::span hi8, + std::span hi16) +{ + size_t idx8 = 0; + size_t idx16 = 0; + for (size_t i = 0; i < dst.size(); ++i) { + if (getBit(bits.data(), i)) { + dst[i] = (uint16_t(hi16[idx16]) << 8) | lo[idx16]; + ++idx16; + } else { + dst[i] = hi8[idx8++]; + } + } +} + +#if ZL_ARCH_X86_64 +template +class IsoByteDecode { + public: + static_assert(sizeof(UInt) == 2); + static void print32(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + static void print16(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + static void print8(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + static void decode( + std::span dst, + std::span bits, + std::span lo, + std::span hi8, + std::span hi16) + { + const uint8_t* l = lo.data(); + const uint8_t* h8 = hi8.data(); + const uint8_t* const h8Limit = h8 + hi8.size() - 16; + const uint8_t* h16 = hi16.data(); + const uint8_t* const h16Limit = h16 + hi16.size() - 16; + + size_t i; + // for (i = 0; h8 < h8Limit && h16 < h16Limit; i += 8) { + // // TODO: Can half the number of data loads + // // Reuse the data by adding a constant to the shuffles + + // const int bitmask = bits[i / 8]; + // auto lV = _mm_loadu_si128((const __m128i_u*)l); + // auto lShuffleV = + // _mm_load_si128((const __m128i*)&kLoShuffleLUT_[bitmask]); + // lV = _mm_shuffle_epi8(lV, lShuffleV); + + // auto h8V = _mm_loadu_si128((const __m128i_u*)h8); + // auto h8ShuffleV = _mm_load_si128( + // (const __m128i*)&kLoShuffleLUT_[~bitmask & 0xFF]); + // h8V = _mm_shuffle_epi8(h8V, h8ShuffleV); + + // auto h16V = _mm_loadu_si128((const __m128i_u*)h16); + // auto h16ShuffleV = + // _mm_load_si128((const __m128i*)&kHiShuffleLUT_[bitmask]); + // h16V = _mm_shuffle_epi8(h16V, h16ShuffleV); + + // auto out = _mm_or_si128(h8V, _mm_or_si128(lV, h16V)); + // _mm_storeu_si128((__m128i_u*)&dst[i], out); + + // const auto count16 = __builtin_popcount(bitmask); + // const auto count8 = 8 - count16; + + // h16 += count16; + // l += count16; + // h8 += count8; + // } + for (i = 0; h8 < h8Limit && h16 < h16Limit; i += 16) { + // TODO: Could combine the high bits to reduce loads & shuffles by + // 33% + // auto lV = _mm_loadu_si128((const __m128i_u*)l); + // auto h16V = _mm_loadu_si128((const __m128i_u*)h16); + auto lV = _mm_set_epi64x(0, ZL_readLE64(l)); + auto h16V = _mm_set_epi64x(0, ZL_readLE64(h16)); + // auto lV = _mm_loadu_si128((const __m128i_u*)l); + // auto h16V = _mm_loadu_si128((const __m128i_u*)h16); + auto h8V = _mm_set_epi64x(0, ZL_readLE64(h8)); + // auto h8V = _mm_loadu_si128((const __m128i_u*)h8); + + int bitmask = bits[i / 8]; + auto count16 = __builtin_popcount(bitmask); + auto count8 = 8 - count16; + // const auto count16V = _mm_set1_epi8(count16); + // const auto count8V = _mm_set1_epi8(count8); + + h16 += count16; + l += count16; + h8 += count8; + + // if 8-bit: + // - high byte should start with 0x80 + // - low byte should be <= 0xF + + // if 16-bit: + // - high byte should be <= 0xF + // - low byte should be < 0xF + + // at most 8 bytes + auto lhV = _mm_unpacklo_epi8(lV, h16V); + lV = _mm_set_epi64x(0, ZL_readLE64(l)); + h16V = _mm_set_epi64x(0, ZL_readLE64(h16)); + + auto h8ShuffleV = _mm_load_si128( + (const __m128i*)&kLoShuffleLUT_[~bitmask & 0xFF]); + auto outH8V = _mm_shuffle_epi8(h8V, h8ShuffleV); + h8V = _mm_set_epi64x(0, ZL_readLE64(h8)); + + auto lhShuffleV = + _mm_load_si128((const __m128i*)&kLoHiShuffleLUT_[bitmask]); + auto outLHV = _mm_shuffle_epi8(lhV, lhShuffleV); + // auto lShuffleV = + // _mm_load_si128((const __m128i*)&kLoShuffleLUT_[bitmask]); + // auto outLV = _mm_shuffle_epi8(lV, lShuffleV); + + // at most 16 + + auto out = _mm_or_si128(outLHV, outH8V); + + // at most 8 bytes + // auto h16ShuffleV = + // _mm_load_si128((const __m128i*)&kHiShuffleLUT_[bitmask]); + // auto outH16V = _mm_shuffle_epi8(h16V, h16ShuffleV); + + // out = _mm_or_si128(out, outH16V); + _mm_storeu_si128((__m128i_u*)&dst[i], out); + + bitmask = bits[i / 8 + 1]; + count16 = __builtin_popcount(bitmask); + count8 = 8 - count16; + + lhV = _mm_unpacklo_epi8(lV, h16V); + lhShuffleV = + _mm_load_si128((const __m128i*)&kLoHiShuffleLUT_[bitmask]); + outLHV = _mm_shuffle_epi8(lhV, lhShuffleV); + // auto lShuffleV = + // _mm_load_si128((const __m128i*)&kLoShuffleLUT_[bitmask]); + // auto outLV = _mm_shuffle_epi8(lV, lShuffleV); + + // at most 16 + h8ShuffleV = _mm_load_si128( + (const __m128i*)&kLoShuffleLUT_[~bitmask & 0xFF]); + outH8V = _mm_shuffle_epi8(h8V, h8ShuffleV); + + out = _mm_or_si128(outLHV, outH8V); + + // at most 8 bytes + // auto h16ShuffleV = + // _mm_load_si128((const __m128i*)&kHiShuffleLUT_[bitmask]); + // auto outH16V = _mm_shuffle_epi8(h16V, h16ShuffleV); + + // out = _mm_or_si128(out, outH16V); + _mm_storeu_si128((__m128i_u*)&dst[i + 8], out); + + h16 += count16; + l += count16; + h8 += count8; + + // lShuffleV = + // _mm_load_si128((const __m128i*)&kLoShuffleLUT_[bitmask]); + // lShuffleV = _mm_add_epi8(lShuffleV, count16V); + // outLV = _mm_shuffle_epi8(lV, lShuffleV); + + // h8ShuffleV = _mm_load_si128( + // (const __m128i*)&kLoShuffleLUT_[~bitmask & 0xFF]); + // h8ShuffleV = _mm_add_epi8(h8ShuffleV, count8V); + // outH8V = _mm_shuffle_epi8(h8V, h8ShuffleV); + + // out = _mm_or_si128(outLV, outH8V); + + // h16ShuffleV = + // _mm_load_si128((const __m128i*)&kHiShuffleLUT_[bitmask]); + // h16ShuffleV = _mm_add_epi8(h16ShuffleV, count16V); + // outH16V = _mm_shuffle_epi8(h16V, h16ShuffleV); + + // out = _mm_or_si128(out, outH16V); + // _mm_storeu_si128((__m128i_u*)&dst[i + 8], out); + + // h16 += count16; + // l += count16; + // h8 += count8; + } + + for (; i < dst.size(); ++i) { + if (getBit(bits.data(), i)) { + dst[i] = (uint16_t(*h16++) << 8) | *l++; + } else { + dst[i] = *h8++; + } + } + } + + private: + static std::tuple<__m128i, __m128i, __m128i> getShuffles(uint8_t bitmap) + { + auto lV = _mm_load_si128((const __m128i*)&kLoShuffleLUT_[bitmap]); + auto h8V = + _mm_load_si128((const __m128i*)&kLoShuffleLUT_[~bitmap & 0xFF]); + auto h16V = _mm_load_si128((const __m128i*)&kHiShuffleLUT_[bitmap]); + return { lV, h8V, h16V }; + } + + static constexpr std::array, 256> makeShuffleLUT( + bool lo) + { + std::array, 256> lut{}; + for (size_t byte = 0; byte < 256; ++byte) { + size_t offset = 0; + for (size_t bit = 0; bit < 8; ++bit) { + if ((byte & (1 << bit)) != 0) { + if (lo) { + lut[byte][2 * bit + 0] = offset; + lut[byte][2 * bit + 1] = 0x80; + } else { + lut[byte][2 * bit + 0] = 0x80; + lut[byte][2 * bit + 1] = offset; + } + ++offset; + } else { + lut[byte][2 * bit + 0] = 0x80; + lut[byte][2 * bit + 1] = 0x80; + } + } + } + return lut; + } + + static constexpr std::array, 256> + makeLoHiShuffleLUT() + { + std::array, 256> lut{}; + for (size_t byte = 0; byte < 256; ++byte) { + size_t offset = 0; + for (size_t bit = 0; bit < 8; ++bit) { + if ((byte & (1 << bit)) != 0) { + lut[byte][2 * bit + 0] = offset + 0; + lut[byte][2 * bit + 1] = offset + 1; + offset += 2; + } else { + lut[byte][2 * bit + 0] = 0x80; + lut[byte][2 * bit + 1] = 0x80; + } + } + } + return lut; + } + + static constexpr std::array, 256> makeIs16LUT() + { + std::array, 256> lut{}; + for (size_t byte = 0; byte < 256; ++byte) { + for (size_t bit = 0; bit < 8; ++bit) { + lut[byte][bit] = ((byte & (1 << bit)) != 0) ? 0xFFFF : 0; + } + } + return lut; + } + + alignas(16) static constexpr std:: + array, 256> kIs16LUT_{ makeIs16LUT() }; + alignas(16) static constexpr std:: + array, 256> kLoShuffleLUT_{ + makeShuffleLUT(true) + }; + alignas(16) static constexpr std:: + array, 256> kHiShuffleLUT_{ + makeShuffleLUT(false) + }; + alignas(16) static constexpr std:: + array, 256> kLoHiShuffleLUT_{ + makeLoHiShuffleLUT() + }; +}; +#endif // ZL_ARCH_X86_64 + +} // namespace + +VariableOutputCodecDescription IsoByteEncoder::variableOutputDescription() const +{ + return isoByteCodecDescription(); +} + +void IsoByteEncoder::encode(EncoderState& encoder) const +{ + auto& input = encoder.inputs()[0]; + + uint8_t header = input.eltWidth(); + encoder.sendCodecHeader(&header, 1); + + if (input.eltWidth() != 2) { + throw std::runtime_error("todo"); + } + + auto bitmap = encoder.createOutput(0, (input.numElts() + 7) / 8, 1); + auto lowBytes = encoder.createOutput(1, input.numElts(), 1); + auto highBytes8 = encoder.createOutput(2, input.numElts(), 1); + auto highBytes16 = encoder.createOutput(2, input.numElts(), 1); + + const uint16_t* const src = (uint16_t*)input.ptr(); + const size_t srcSize = input.numElts(); + + uint8_t* bits = (uint8_t*)bitmap.ptr(); + uint8_t* hi8 = (uint8_t*)highBytes8.ptr(); + uint8_t* hi16 = (uint8_t*)highBytes16.ptr(); + uint8_t* lo = (uint8_t*)lowBytes.ptr(); + + memset(bits, 0, (srcSize + 7) / 8); + + for (size_t i = 0; i < srcSize; ++i) { + if (src[i] < 256) { + *hi8++ = src[i]; + } else { + setBit(bits, i); + *hi16++ = src[i] >> 8; + *lo++ = src[i] & 0xFF; + } + } + bitmap.commit((srcSize + 7) / 8); + highBytes8.commit(hi8 - (uint8_t*)highBytes8.ptr()); + highBytes16.commit(hi16 - (uint8_t*)highBytes16.ptr()); + lowBytes.commit(lo - (uint8_t*)lowBytes.ptr()); +} + +VariableOutputCodecDescription IsoByteDecoder::variableOutputDescription() const +{ + return isoByteCodecDescription(); +} + +void IsoByteDecoder::decode(DecoderState& decoder) const +{ + auto header = decoder.getCodecHeader(); + if (header.size() != 1 || header[0] != 2) { + throw std::runtime_error("todo"); + } + if (decoder.variableInputs().size() != 2) { + throw std::runtime_error("corruption"); + } + + auto& bitmap = decoder.singletonInputs()[0]; + auto& lowBytes = decoder.singletonInputs()[1]; + auto& highBytes8 = decoder.variableInputs()[0]; + auto& highBytes16 = decoder.variableInputs()[1]; + + const size_t srcSize = highBytes8.numElts() + highBytes16.numElts(); + auto output = decoder.createOutput(0, srcSize, 2); + +#if ZL_ARCH_X86_64 + IsoByteDecode::decode( + { (uint16_t*)output.ptr(), srcSize }, + { (const uint8_t*)bitmap.ptr(), bitmap.numElts() }, + { (const uint8_t*)lowBytes.ptr(), lowBytes.numElts() }, + { (const uint8_t*)highBytes8.ptr(), highBytes8.numElts() }, + { (const uint8_t*)highBytes16.ptr(), highBytes16.numElts() }); +#else + isoByteDecodeNaive( + { (uint16_t*)output.ptr(), srcSize }, + { (const uint8_t*)bitmap.ptr(), bitmap.numElts() }, + { (const uint8_t*)lowBytes.ptr(), lowBytes.numElts() }, + { (const uint8_t*)highBytes8.ptr(), highBytes8.numElts() }, + { (const uint8_t*)highBytes16.ptr(), highBytes16.numElts() }); +#endif + + output.commit(srcSize); +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/IsoByte.hpp b/contrib/lz-research/codecs/IsoByte.hpp new file mode 100644 index 000000000..edc088ef0 --- /dev/null +++ b/contrib/lz-research/codecs/IsoByte.hpp @@ -0,0 +1,27 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace openzl::lz { + +class IsoByteEncoder : public CustomEncoder { + public: + VariableOutputCodecDescription variableOutputDescription() const override; + + void encode(EncoderState& encoder) const override; + + ~IsoByteEncoder() override = default; +}; + +class IsoByteDecoder : public CustomDecoder { + public: + VariableOutputCodecDescription variableOutputDescription() const override; + + void decode(DecoderState& decoder) const override; + + ~IsoByteDecoder() override = default; +}; + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/Lz.cpp b/contrib/lz-research/codecs/Lz.cpp new file mode 100644 index 000000000..76095e92c --- /dev/null +++ b/contrib/lz-research/codecs/Lz.cpp @@ -0,0 +1,3109 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "Lz.hpp" + +#include +#include +#include + +#include "openzl/codecs/common/copy.h" +#include "openzl/codecs/common/count.h" +#include "openzl/codecs/common/fast_table.h" +#include "openzl/codecs/common/fast_table16.h" +#include "openzl/codecs/common/fast_tag_table.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/portability.h" +#include "openzl/shared/simd_wrapper.h" +#include "openzl/shared/utils.h" +#include "openzl/shared/varint.h" +#include "openzl/zl_errors.h" + +#include "CodecIDs.hpp" +#include "SmallInt.hpp" + +#if ZL_ARCH_X86_64 +# include +# include +#endif + +#define USE_LLVM_MCA 0 + +// TODO: Restrict lengths to uint16_t +// The loss in efficiency should be tiny, +// and we should gain a good amount of speed. + +namespace openzl::lz { + +namespace { +constexpr bool kQuartet = false; +constexpr size_t kQuartetNum = 4; +constexpr size_t kQuartetLength = 16; + +template +class FastVector { + public: + static_assert(std::is_pod::value, "T must be POD"); + static_assert( + std::is_trivially_destructible::value, + "T must be trivially destructible"); + + FastVector() = default; + + void resize(size_t size) + { + if (size > capacity_) { + reserve(size); + } + size_ = size; + } + + void wrap(T* data, size_t size) + { + if (data_ != nullptr) { + throw std::runtime_error("can't wrap() if already wrapped!"); + } + data_ = data; + size_ = size; + capacity_ = size; + } + + void reserve(size_t capacity) + { + if (data_ != nullptr) { + throw std::runtime_error("can only reserve once!"); + } + mem_ = std::make_unique_for_overwrite(capacity); + data_ = mem_.get(); + capacity_ = capacity; + } + + const T* data() const + { + return data_; + } + + T* data() + { + return data_; + } + + size_t size() const + { + return size_; + } + + const T& operator[](size_t i) const + { + assert(i < capacity_); + return data_[i]; + } + + T& operator[](size_t i) + { + assert(i < capacity_); + return data_[i]; + } + + void push_back(const T& value) + { + if (size_ == capacity_) { + throw std::runtime_error("can't push_back() if full!"); + } + data_[size_++] = value; + } + + const T* begin() const + { + return data(); + } + + const T* end() const + { + return begin() + size(); + } + + void insert(const T* ptr, const T* b, const T* e) + { + if (ptr != end()) { + throw std::runtime_error("can't insert() if not at end!"); + } + if (b == e) { + return; + } + size_t const size = e - b; + if (size_ + size > capacity_) { + throw std::runtime_error("can't insert() if full!"); + } + memcpy(data() + size_, b, size * sizeof(T)); + size_ += size; + } + + private: + T* data_{ nullptr }; + std::unique_ptr mem_{ nullptr }; + size_t size_{ 0 }; + size_t capacity_{ 0 }; +}; + +template +using Vector = FastVector; + +#if ZL_ARCH_X86_64 +// Lookup table for pshufb-based packing of uint16_t elements. +// Given an 8-bit mask indicating which of 8 uint16_t elements are valid, +// returns a shuffle control vector to pack valid elements to the front. +constexpr std::array, 256> buildShuffleLUT() +{ + std::array, 256> lut{}; + for (size_t mask = 0; mask < 256; ++mask) { + size_t outPos = 0; + for (size_t i = 0; i < 8; ++i) { + if (mask & (1 << i)) { + lut[mask][outPos * 2] = i * 2; + lut[mask][outPos * 2 + 1] = i * 2 + 1; + ++outPos; + } + } + for (size_t j = outPos * 2; j < 16; ++j) { + lut[mask][j] = 0x80; + } + } + return lut; +} + +static constexpr auto kShuffleLUT = buildShuffleLUT(); + +constexpr std::array, 256> buildDecodeShuffleLUT() +{ + std::array, 256> lut{}; + for (size_t mask = 0; mask < 256; ++mask) { + size_t inPos = 0; + for (size_t i = 0; i < 8; ++i) { + if (mask & (1 << i)) { + lut[mask][i * 2] = inPos * 2; + lut[mask][i * 2 + 1] = inPos * 2 + 1; + ++inPos; + } else { + lut[mask][i * 2] = 0x80; + lut[mask][i * 2 + 1] = 0x80; + } + } + } + return lut; +} + +static constexpr auto kDecodeShuffleLUT = buildDecodeShuffleLUT(); +#endif + +} // namespace + +size_t constexpr kMinMatch = 7; +size_t constexpr kTableLog = 14; +size_t constexpr kSmallMatch = 5; +size_t constexpr kLargeMatch = 8; +size_t constexpr kNoOpOffset = 16; + +inline length_t boundML(uint32_t ml) +{ + return length_t( + std::min(ml, std::numeric_limits::max())); +} + +inline length_t matchLength(ZS_FastTagTable_Entry entry, uint8_t const* ip) +{ + if constexpr (ZS_FastTagTable_kMaxMatchLen >= 12) { + const ZL_Vec128 matchVec = ZL_Vec128_read(&entry); + const ZL_Vec128 ipVec = ZL_Vec128_read(ip); + const ZL_Vec128 maskVec = ZL_Vec128_cmp8(matchVec, ipVec); + const uint32_t mask = ZL_Vec128_mask8(maskVec); + const uint32_t len = ZL_ctz32(~mask); + return len; + } else { + assert(ZS_FastTagTable_kMaxMatchLen == 8); + const auto m = ZL_read64(&entry); + const auto i = ZL_read64(ip); + const auto x = m ^ i; + if (x == 0) { + return ZS_FastTagTable_kMaxMatchLen; + } else { + return ZS_nbCommonBytes(x); + } + } +} + +inline bool valueFits(uint32_t val, uint32_t bytes) +{ + if (bytes == 4) { + return true; + } else if (bytes == 2) { + return val < 65536; + } else { + return false; + } +} + +inline length_t +matchLength(uint8_t const* match, uint8_t const* ip, uint8_t const* iend) +{ + if (0) { + return ZS_count(ip, match, iend); + } + const size_t offset = 0; + if (0) { + const uint64_t x = ZL_readLE64(match); + const uint64_t y = ZL_readLE64(ip); + const uint64_t z = x ^ y; + if (ZL_LIKELY(z != 0)) { + return ZL_ctz64(z) >> 3; + } + } + { + ZL_ASSERT_LE(ip + 16, iend); + const ZL_Vec128 matchVec = ZL_Vec128_read(match + offset); + const ZL_Vec128 ipVec = ZL_Vec128_read(ip + offset); + const ZL_Vec128 maskVec = ZL_Vec128_cmp8(matchVec, ipVec); + const uint32_t mask = ZL_Vec128_mask8(maskVec); + const uint32_t len = ZL_ctz32(~mask); + if (ZL_LIKELY(len < 16)) { + return offset + len; + } + } + + uint32_t totalLength = offset + 16; + const uint8_t* const ilimit = iend - 16; + while (ip + totalLength < ilimit) { + const ZL_Vec128 matchVec = ZL_Vec128_read(match + totalLength); + const ZL_Vec128 ipVec = ZL_Vec128_read(ip + totalLength); + const ZL_Vec128 maskVec = ZL_Vec128_cmp8(matchVec, ipVec); + const uint32_t mask = ZL_Vec128_mask8(maskVec); + const uint32_t length = ZL_ctz32(~mask); + if (length < 16) { + return totalLength + length; + } + totalLength += 16; + if (ZL_UNLIKELY(!valueFits(totalLength, sizeof(length_t)))) { + return std::numeric_limits::max(); + } + } + + while (ip + totalLength < iend && ip[totalLength] == match[totalLength]) { + ++totalLength; + } + return totalLength; +} + +template +class Transform { + static uint8_t constexpr kLLMask = ((1 << kLLBits) - 1); + static uint8_t constexpr kMLMask = ((1 << kMLBits) - 1); + + static_assert(!kIsIndex, "Currently unsupported"); + + template + static ZL_Report + writeStream(ZL_Encoder* eictx, size_t idx, Vector const& data) + { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + + auto stream = ZL_Encoder_createTypedStream( + eictx, idx, data.size(), sizeof(T)); + ZL_ERR_IF_NULL(stream, allocation); + if (data.size() > 0) { + memcpy(ZL_Output_ptr(stream), data.data(), data.size() * sizeof(T)); + } + ZL_ERR_IF_ERR(ZL_Output_commit(stream, data.size())); + return ZL_returnSuccess(); + } + + template + static ZL_Report reserveStream( + ZL_Encoder* eictx, + size_t idx, + size_t capacity, + Vector* data, + ZL_Output** stream) + { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + + *stream = ZL_Encoder_createTypedStream(eictx, idx, capacity, sizeof(T)); + ZL_ERR_IF_NULL(*stream, allocation); + data->wrap((T*)ZL_Output_ptr(*stream), capacity); + + return ZL_returnSuccess(); + } + + ZL_Encoder* encoder_; + std::vector streams_; + + virtual void* reserveStream(size_t idx, size_t eltCapacity, size_t eltWidth) + { + auto stream = ZL_Encoder_createTypedStream( + encoder_, idx, eltCapacity, eltWidth); + if (stream == NULL) { + return NULL; + } + streams_.resize(std::max(idx + 1, streams_.size())); + streams_[idx] = stream; + return ZL_Output_ptr(stream); + } + + template + ZL_Report reserveStream(size_t idx, size_t eltCapacity, Vector* data) + { + ZL_RESULT_DECLARE_SCOPE_REPORT(encoder_); + auto ptr = reserveStream(idx, eltCapacity, sizeof(T)); + ZL_ERR_IF_NULL(ptr, allocation); + data->wrap((T*)ptr, eltCapacity); + return ZL_returnSuccess(); + } + + virtual ZL_Report commitStream(size_t idx, size_t eltCount) + { + return ZL_Output_commit(streams_[idx], eltCount); + } + + virtual void writeHeader(poly::string_view header) + { + ZL_Encoder_sendCodecHeader(encoder_, header.data(), header.size()); + } + + public: + Transform(ZL_Encoder* encoder) : encoder_(encoder) {} + + virtual ~Transform() = default; + + static void encode1v4( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + auto mem = std::make_unique_for_overwrite( + ZS_FastTagTable_tableSize(kTableLog)); + ZS_FastTagTable table{}; + ZS_FastTagTable_init(&table, mem.get(), kTableLog, kMinMatch); + uint8_t const* anchor = istart; + uint8_t const* ip = istart + 1; + uint8_t const* const ilimit = + iend - std::max(kMinMatch + 1, 16 + 16); + + lits.resize(iend - istart + 16); + litLens.resize((iend - istart + kMinMatch) / kMinMatch); + offsets.resize((iend - istart + kMinMatch) / kMinMatch); + matchLens.resize((iend - istart + kMinMatch) / kMinMatch); + + uint8_t* litsPtr = lits.data(); + size_t seq = 0; + + while (ip < ilimit) { + auto entry = ZS_FastTagTable_getAndUpdateT( + &table, ip, ip - istart, kMinMatch); + auto ml = boundML(matchLength(entry, ip)); + auto* match = istart + entry.pos; + const auto distance = ip - match; + if (ml >= kMinMatch && valueFits(distance, sizeof(offset_t)) + && entry.pos != 0) { + if (ZL_UNLIKELY(ml >= ZS_FastTagTable_kMaxMatchLen)) { + ZL_ASSERT_EQ( + memcmp(match, ip, ZS_FastTagTable_kMaxMatchLen), 0); + ml = boundML( + ZS_FastTagTable_kMaxMatchLen + + matchLength( + match + ZS_FastTagTable_kMaxMatchLen, + ip + ZS_FastTagTable_kMaxMatchLen, + iend)); + } else { + ZL_ASSERT_EQ(memcmp(match, ip, ml), 0, "ml = %u", ml); + } + while (match > istart && ip > anchor && match[-1] == ip[-1]) { + --match; + --ip; + ++ml; + } + ZL_ASSERT_EQ(memcmp(match, ip, ml), 0); + size_t ll = ip - anchor; + offset_t const offset = + kIsIndex ? (match - istart) : (ip - match); + + memcpy(litsPtr, anchor, 16); + if (ZL_UNLIKELY(ll > 16)) { + ZS_wildcopy(litsPtr, anchor, ll, ZS_wo_no_overlap); + } + litsPtr += ll; + + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + litLens[seq] = ll; + } else { + while (!valueFits(ll, sizeof(length_t))) { + litLens[seq] = std::numeric_limits::max(); + matchLens[seq] = 0; + offsets[seq] = kNoOpOffset; + ++seq; + ll -= std::numeric_limits::max(); + } + litLens[seq] = ll; + } + matchLens[seq] = ml; + offsets[seq] = offset; + ++seq; + ZS_FastTagTable_putT( + &table, ip + 2, ip + 2 - istart, kMinMatch); + ip += ml; + if (ip < ilimit) { + ZS_FastTagTable_putT( + &table, ip - 2, ip - 2 - istart, kMinMatch); + } + anchor = ip; + } else { + ip += 1; + } + } + memcpy(litsPtr, anchor, (iend - anchor)); + litsPtr += (iend - anchor); + + lits.resize(litsPtr - lits.data()); + litLens.resize(seq); + matchLens.resize(seq); + offsets.resize(seq); + } + + static void encode1v3( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + auto mem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(kTableLog) * 4); + + constexpr size_t kNumStates = 3; + + lits.resize(iend - istart + 16 + kNumStates); + litLens.resize((iend - istart + kMinMatch) / kMinMatch + kNumStates); + offsets.resize((iend - istart + kMinMatch) / kMinMatch + kNumStates); + matchLens.resize((iend - istart + kMinMatch) / kMinMatch + kNumStates); + + struct State { + State() {} + State(size_t idx, + uint8_t* mem, + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + const uint8_t* istart_, + const uint8_t* iend_) + { + const size_t segmentSize = + (iend_ - istart_ + kNumStates - 1) / kNumStates; + const size_t segmentSeqs = + (segmentSize + kMinMatch - 1) / kMinMatch; + const size_t tableSize = ZS_FastTable_tableSize(kTableLog); + ZS_FastTable_init( + &table, mem + tableSize * idx, kTableLog, kMinMatch); + istart = ip = anchor = istart_ + idx * segmentSize; + if (idx + 1 == kNumStates) { + iend = iend_; + ilimit = iend_ - 20; + } else { + iend = ip + segmentSize; + ilimit = iend - 20; + } + litsBegin = litsPtr = lits.data() + idx * segmentSize; + llPtr = litLens.data() + idx * segmentSeqs; + mlPtr = matchLens.data() + idx * segmentSeqs; + offPtr = offsets.data() + idx * segmentSeqs; + + *litsPtr++ = *ip++; + } + + ZS_FastTable table{}; + uint8_t* litsBegin; + uint8_t* litsPtr; + length_t* llPtr; + length_t* mlPtr; + offset_t* offPtr; + + const uint8_t* anchor; + const uint8_t* istart; + const uint8_t* ip; + const uint8_t* ilimit; + const uint8_t* iend; + size_t lastLiterals; + + size_t seq{ 0 }; + + bool finished() const + { + return ip >= ilimit; + } + + void step() + { + ZL_ASSERT(!finished()); + uint8_t const* match = + istart + + ZS_FastTable_getAndUpdateT( + &table, ip, ip - istart, kMinMatch); + uint32_t distance = ip - match; + match = distance >= 65536 ? ip - 1 : match; + distance = distance >= 65536 ? 1 : distance; + length_t ml = boundML(matchLength(match, ip, iend)); + ml = ml == 0 ? 1 : ml; + const bool isMatch = (ml >= kMinMatch); + + // ZS_FastTable_conditionalPutT( + // &table, ip + 2, ip + 2 - istart, kMinMatch, isMatch); + size_t ll = ip - anchor; + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + llPtr[seq] = ll; + } else { + while (!valueFits(ll, sizeof(length_t))) { + llPtr[seq] = std::numeric_limits::max(); + mlPtr[seq] = 0; + offPtr[seq] = kNoOpOffset; + ++seq; + ll -= std::numeric_limits::max(); + } + llPtr[seq] = ll; + } + offPtr[seq] = distance; + mlPtr[seq] = ml; + + seq += isMatch ? 1 : 0; + + static_assert(kMinMatch <= 8); + memcpy(litsPtr, ip, 8); + litsPtr += isMatch ? 0 : ml; + + ip += ml; + anchor = isMatch ? ip : anchor; + } + + void writeLastLiterals() + { + ZL_ASSERT_LE(ilimit, iend); + ZL_ASSERT_LE(ip, iend); + memcpy(litsPtr, ip, (iend - ip)); + litsPtr += (iend - ip); + lastLiterals = iend - anchor; + } + + void appendTo(State& out) const + { + const size_t numLits = litsPtr - litsBegin; + memmove(out.litsPtr, litsBegin, numLits); + out.litsPtr += numLits; + + memmove(out.llPtr + out.seq, llPtr, seq * sizeof(out.llPtr[0])); + memmove(out.mlPtr + out.seq, mlPtr, seq * sizeof(out.mlPtr[0])); + memmove(out.offPtr + out.seq, + offPtr, + seq * sizeof(out.offPtr[0])); + + if (seq > 0) { + out.llPtr[out.seq] += out.lastLiterals; + out.lastLiterals = lastLiterals; + } else { + out.lastLiterals += lastLiterals; + } + out.seq += seq; + } + void validate(const uint8_t* istart_, const uint8_t* iend_) + { + const size_t segmentSize = + (iend_ - istart_ + kNumStates - 1) / kNumStates; + const size_t segmentSeqs = + (segmentSize + kMinMatch - 1) / kMinMatch; + ZL_ASSERT_LE(litsPtr, litsBegin + segmentSize); + ZL_ASSERT_LE(seq, segmentSeqs); + } + }; + + std::array states; + for (size_t i = 0; i < states.size(); ++i) { + states[i] = + State(i, + mem.get(), + lits, + litLens, + offsets, + matchLens, + istart, + iend); + } + + for (;;) { + bool anyRan = false; +#pragma clang loop unroll(full) + for (auto& state : states) { + if (!state.finished()) { + state.step(); + anyRan = true; + } + } + if (!anyRan) { + break; + } + } + + for (auto& state : states) { + state.writeLastLiterals(); + state.validate(istart, iend); + } + + for (size_t idx = 1; idx < states.size(); ++idx) { + states[idx].appendTo(states[0]); + } + + lits.resize(states[0].litsPtr - lits.data()); + litLens.resize(states[0].seq); + offsets.resize(states[0].seq); + matchLens.resize(states[0].seq); + } + + static void encode1v2( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + auto mem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(kTableLog)); + ZS_FastTable table{}; + ZS_FastTable_init(&table, mem.get(), kTableLog, kMinMatch); + uint8_t const* anchor = istart; + uint8_t const* ip = istart + 1; + uint8_t const* const ilimit = + iend - std::max(kMinMatch + 1, 20); + + lits.resize(iend - istart + 16); + litLens.resize((iend - istart + kMinMatch) / kMinMatch); + offsets.resize((iend - istart + kMinMatch) / kMinMatch); + matchLens.resize((iend - istart + kMinMatch) / kMinMatch); + + uint8_t* litsPtr = lits.data(); + uint32_t* llPtr = (uint32_t*)litLens.data(); + offset_t* offPtr = (offset_t*)offsets.data(); + uint32_t* mlPtr = (uint32_t*)matchLens.data(); + + *litsPtr++ = *anchor; + + size_t seq = 0; + + // The branch-free algorithm is slower... + // But, it is running at 1.3 instructions / cycle + // That would allow us to run 2-3 more copies of the same loop in + // parallel. Call it 3, because we'd have a larger resident memory + // footprint. We could divide the input in 4, and run 4 copies of the + // loop at a time. + while (ip < ilimit) { + uint8_t const* match = istart + + ZS_FastTable_getAndUpdateT( + &table, ip, ip - istart, kMinMatch); + uint32_t distance = ip - match; + match = distance >= 65536 ? ip - 1 : match; + distance = distance >= 65536 ? 1 : distance; + length_t ml = boundML(matchLength(match, ip, iend)); + ml = ml == 0 ? 1 : ml; + const bool isMatch = (ml >= kMinMatch); + + size_t ll = ip - anchor; + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + llPtr[seq] = ll; + } else { + while (!valueFits(ll, sizeof(length_t))) { + llPtr[seq] = std::numeric_limits::max(); + mlPtr[seq] = 0; + offPtr[seq] = kNoOpOffset; + ++seq; + ll -= std::numeric_limits::max(); + } + litLens[seq] = ll; + } + offPtr[seq] = distance; + mlPtr[seq] = ml; + + seq += isMatch ? 1 : 0; + + static_assert(kMinMatch <= 8); + memcpy(litsPtr, ip, 8); + litsPtr += isMatch ? 0 : ml; + + ip += ml; + anchor = isMatch ? ip : anchor; + } + memcpy(litsPtr, ip, (iend - ip)); + litsPtr += (iend - ip); + + lits.resize(litsPtr - lits.data()); + litLens.resize(seq); + offsets.resize(seq); + matchLens.resize(seq); + } + + static __attribute__((noinline)) void encode1Trailing( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + constexpr size_t kTrail = 16; + + auto mem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(kTableLog)); + ZS_FastTable table{}; + ZS_FastTable_init(&table, mem.get(), kTableLog, kMinMatch); + uint8_t const* anchor = istart; + uint8_t const* ip = istart + 1; + uint8_t const* const ilimit = + iend - std::max(kMinMatch + 1, 20); + + lits.resize(iend - istart + 16); + litLens.resize((iend - istart + kMinMatch) / kMinMatch); + offsets.resize((iend - istart + kMinMatch) / kMinMatch); + matchLens.resize((iend - istart + kMinMatch) / kMinMatch); + + auto* litsPtr = lits.data(); + size_t seq = 0; + + std::queue insertQueue; + auto insert = + [&table, &istart, &insertQueue, kTrail](uint8_t const* ptr) { + assert(kTrail >= 1); + insertQueue.push(ptr); + while (insertQueue.front() + kTrail <= ptr) { + auto p = insertQueue.front(); + ZS_FastTable_putT(&table, p, p - istart, kMinMatch); + insertQueue.pop(); + } + assert(!insertQueue.empty()); + }; + + auto getAndUpdate = + [&insert, &table, &istart, kTrail](uint8_t const* ptr) { + insert(ptr); + return istart + ZS_FastTable_getT(&table, ptr, kMinMatch); + }; + + while (ip < ilimit) { + uint8_t const* match = getAndUpdate(ip); + uint32_t const distance = ip - match; + if (ZL_read32(match) == ZL_read32(ip) + && valueFits(distance, sizeof(offset_t))) { + uint32_t ml = 4 + matchLength(match + 4, ip + 4, iend); + while (match > istart && ip > anchor && match[-1] == ip[-1]) { + --match; + --ip; + ++ml; + } + ml = boundML(ml); + size_t ll = ip - anchor; + offset_t const offset = + kIsIndex ? (match - istart) : (ip - match); + + memcpy(litsPtr, anchor, 16); + if (ZL_UNLIKELY(ll > 16)) { + ZS_wildcopy(litsPtr, anchor, ll, ZS_wo_no_overlap); + } + litsPtr += ll; + + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + litLens[seq] = ll; + } else { + while (!valueFits(ll, sizeof(length_t))) { + litLens[seq] = std::numeric_limits::max(); + matchLens[seq] = 0; + offsets[seq] = kNoOpOffset; + ++seq; + ll -= std::numeric_limits::max(); + } + litLens[seq] = ll; + } + matchLens[seq] = ml; + offsets[seq] = offset; + ++seq; + + insert(ip + 2); + ip += ml; + if (ip < ilimit) { + insert(ip - 2); + } + anchor = ip; + } else { + ip += 1; + } + } + memcpy(litsPtr, anchor, (iend - anchor)); + litsPtr += (iend - anchor); + + lits.resize(litsPtr - lits.data()); + litLens.resize(seq); + matchLens.resize(seq); + offsets.resize(seq); + } + + static __attribute__((noinline)) void encode1Quartet( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + constexpr size_t kTrail = kQuartetLength; + + auto mem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(kTableLog)); + ZS_FastTable table{}; + ZS_FastTable_init(&table, mem.get(), kTableLog, kMinMatch); + uint8_t const* anchor = istart; + uint8_t const* ip = istart + kTrail; + uint8_t const* const ilimit = + iend - std::max(kMinMatch + 1, 20); + + lits.resize(iend - istart + 16); + litLens.resize((iend - istart + kMinMatch) / kMinMatch); + offsets.resize((iend - istart + kMinMatch) / kMinMatch); + matchLens.resize((iend - istart + kMinMatch) / kMinMatch); + + auto* litsPtr = lits.data(); + size_t seq = 0; + + // Quartets must all be below the checkpoint + const uint8_t* checkpoint = anchor; + + std::queue insertQueue; + auto insert = + [&table, &istart, &insertQueue, &checkpoint, &seq, kTrail]( + uint8_t const* ptr) { + assert(kTrail >= 1); + insertQueue.push(ptr); + while (insertQueue.front() + kTrail <= ptr + && (seq % kQuartetNum == 0 + || insertQueue.front() + kTrail <= checkpoint)) { + auto p = insertQueue.front(); + ZS_FastTable_putT(&table, p, p - istart, kMinMatch); + insertQueue.pop(); + } + assert(!insertQueue.empty()); + }; + + auto getAndUpdate = + [&insert, &table, &istart, kTrail](uint8_t const* ptr) { + insert(ptr); + return istart + ZS_FastTable_getT(&table, ptr, kMinMatch); + }; + + while (ip < ilimit) { + uint8_t const* match = getAndUpdate(ip); + if (seq % kQuartetNum == 0) { + assert(match + kTrail <= ip); + } else { + assert(match + kTrail <= checkpoint); + } + uint32_t const distance = ip - match; + if (ZL_read32(match) == ZL_read32(ip) + && valueFits(distance, sizeof(offset_t))) { + uint32_t ml = 4 + matchLength(match + 4, ip + 4, iend); + while (match > istart && ip > anchor && match[-1] == ip[-1] + && seq % kQuartetNum != 0) { + --match; + --ip; + ++ml; + } + ml = boundML(ml); + size_t ll = ip - anchor; + offset_t const offset = + kIsIndex ? (match - istart) : (ip - match); + + memcpy(litsPtr, anchor, 16); + if (ZL_UNLIKELY(ll > 16)) { + ZS_wildcopy(litsPtr, anchor, ll, ZS_wo_no_overlap); + } + litsPtr += ll; + + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + litLens[seq] = ll; + } else { + while (!valueFits(ll, sizeof(length_t))) { + litLens[seq] = std::numeric_limits::max(); + matchLens[seq] = 0; + offsets[seq] = kNoOpOffset; + ll -= std::numeric_limits::max(); + if (seq % kQuartetNum == 0) { + checkpoint = ip - ll; + } + ++seq; + } + litLens[seq] = ll; + } + matchLens[seq] = ml; + offsets[seq] = offset; + if (seq % kQuartetNum == 0) { + checkpoint = ip; + } + ++seq; + + insert(ip + 2); + ip += ml; + if (ip < ilimit) { + insert(ip - 2); + } + anchor = ip; + } else { + ip += 1; + } + } + memcpy(litsPtr, anchor, (iend - anchor)); + litsPtr += (iend - anchor); + + lits.resize(litsPtr - lits.data()); + litLens.resize(seq); + matchLens.resize(seq); + offsets.resize(seq); + } + + static __attribute__((noinline)) void encode1( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + if (0) { + return encode1v4(lits, litLens, offsets, matchLens, istart, iend); + } else if (0) { + return encode1v3(lits, litLens, offsets, matchLens, istart, iend); + } else if (0) { + return encode1v2(lits, litLens, offsets, matchLens, istart, iend); + } else if (0) { + return encode1Trailing( + lits, litLens, offsets, matchLens, istart, iend); + } + auto mem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(kTableLog)); + ZS_FastTable table{}; + ZS_FastTable_init(&table, mem.get(), kTableLog, kMinMatch); + uint8_t const* anchor = istart; + uint8_t const* ip = istart + 1; + uint8_t const* const ilimit = + iend - std::max(kMinMatch + 1, 20); + + lits.resize(iend - istart + 16); + litLens.resize((iend - istart + kMinMatch) / kMinMatch); + offsets.resize((iend - istart + kMinMatch) / kMinMatch); + matchLens.resize((iend - istart + kMinMatch) / kMinMatch); + + auto* litsPtr = lits.data(); + size_t seq = 0; + + while (ip < ilimit) { + uint8_t const* match = istart + + ZS_FastTable_getAndUpdateT( + &table, ip, ip - istart, kMinMatch); + uint32_t const distance = ip - match; + if (ZL_read32(match) == ZL_read32(ip) + && valueFits(distance, sizeof(offset_t))) { + uint32_t ml = 4 + matchLength(match + 4, ip + 4, iend); + while (match > istart && ip > anchor && match[-1] == ip[-1]) { + --match; + --ip; + ++ml; + } + ml = boundML(ml); + size_t ll = ip - anchor; + offset_t const offset = + kIsIndex ? (match - istart) : (ip - match); + + memcpy(litsPtr, anchor, 16); + if (ZL_UNLIKELY(ll > 16)) { + ZS_wildcopy(litsPtr, anchor, ll, ZS_wo_no_overlap); + } + litsPtr += ll; + + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + litLens[seq] = ll; + } else { + while (!valueFits(ll, sizeof(length_t))) { + litLens[seq] = std::numeric_limits::max(); + matchLens[seq] = 0; + offsets[seq] = kNoOpOffset; + ++seq; + ll -= std::numeric_limits::max(); + } + litLens[seq] = ll; + } + matchLens[seq] = ml; + offsets[seq] = offset; + ++seq; + + ZS_FastTable_putT(&table, ip + 2, ip + 2 - istart, kMinMatch); + ip += ml; + if (ip < ilimit) { + ZS_FastTable_putT( + &table, ip - 2, ip - 2 - istart, kMinMatch); + } + anchor = ip; + } else { + ip += 1; + } + } + memcpy(litsPtr, anchor, (iend - anchor)); + litsPtr += (iend - anchor); + + lits.resize(litsPtr - lits.data()); + litLens.resize(seq); + matchLens.resize(seq); + offsets.resize(seq); + } + + static void encode2( + Vector& lits, + Vector& litLens, + Vector& offsets, + Vector& matchLens, + uint8_t const* const istart, + uint8_t const* const iend) + { + auto smallMem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(16)); + auto largeMem = std::make_unique_for_overwrite( + ZS_FastTable_tableSize(17)); + ZS_FastTable smallT{}; + ZS_FastTable_init(&smallT, smallMem.get(), 16, kSmallMatch); + ZS_FastTable largeT{}; + ZS_FastTable_init(&largeT, largeMem.get(), 17, kLargeMatch); + uint8_t const* anchor = istart; + uint8_t const* ip = istart + 1; + uint8_t const* const ilimit = iend - std::max(kLargeMatch, 16); + + const size_t numElts = iend - istart; + lits.resize(0); + offsets.resize(0); + litLens.reserve((numElts + kMinMatch) / kMinMatch); + matchLens.reserve((numElts + kMinMatch) / kMinMatch); + + auto emitMatch = [&](uint8_t const* match, uint8_t const* ptr) { + uint32_t ml = matchLength(match, ptr, iend); + if (ml < 4) { + ZL_REQUIRE(false); + ++ip; + return; + } + ZL_ASSERT_GE( + ml, + 4, + "%u to %u", + unsigned(match - istart), + unsigned(ptr - istart)); + while (match > istart && ptr > anchor && match[-1] == ptr[-1]) { + --match; + --ptr; + ++ml; + } + ml = boundML(ml); + size_t ll = ptr - anchor; + offset_t const offset = kIsIndex ? (match - istart) : (ptr - match); + + lits.insert(lits.end(), anchor, ptr); + if (ZL_LIKELY(valueFits(ll, sizeof(length_t)))) { + litLens.push_back(ll); + } else { + while (!valueFits(ll, sizeof(length_t))) { + litLens.push_back(std::numeric_limits::max()); + matchLens.push_back(0); + offsets.push_back(kNoOpOffset); + ll -= std::numeric_limits::max(); + } + litLens.push_back(ll); + } + offsets.push_back(offset); + matchLens.push_back(ml); + // ZS_FastTable_putT(&largeT, ip + 1, ip + 1 - istart, + // kLargeMatch); + + ZS_FastTable_putT(&smallT, ip + 2, ip + 2 - istart, kSmallMatch); + ZS_FastTable_putT(&largeT, ip + 2, ip + 2 - istart, kLargeMatch); + + ip = ptr + ml; + anchor = ip; + + if (ip <= ilimit) { + ZS_FastTable_putT( + &smallT, ip - 1, ip - 1 - istart, kSmallMatch); + ZS_FastTable_putT( + &largeT, ip - 2, ip - 2 - istart, kLargeMatch); + } + }; + while (ip < ilimit) { + uint8_t const* matchL = + istart + + ZS_FastTable_getAndUpdateT( + &largeT, ip, ip - istart, kLargeMatch); + uint8_t const* matchS = + istart + + ZS_FastTable_getAndUpdateT( + &smallT, ip, ip - istart, kSmallMatch); + if (ZL_read64(matchL) == ZL_read64(ip) + && valueFits(ip - matchL, sizeof(offset_t))) { + ZS_FastTable_putT( + &largeT, ip + 1, ip + 1 - istart, kLargeMatch); + emitMatch(matchL, ip); + } else if ( + ZL_read32(matchS) == ZL_read32(ip) + && valueFits(ip - matchS, sizeof(offset_t))) { + uint8_t const* matchL1 = + istart + + ZS_FastTable_getAndUpdateT( + &largeT, ip + 1, ip + 1 - istart, kLargeMatch); + if (ZL_read64(matchL1) == ZL_read64(ip + 1) + && valueFits(ip + 1 - matchL1, sizeof(offset_t))) { + emitMatch(matchL1, ip + 1); + } else { + emitMatch(matchS, ip); + } + } else { + ip += 1; + } + } + + lits.insert(lits.end(), anchor, iend); + } + + template + __attribute__((noinline)) ZL_Report + tokenize(const Vector& litLens, const Vector& matchLens) + { + ZL_RESULT_DECLARE_SCOPE_REPORT(encoder_); + + Vector tokens; + Vector extraLens; + ZL_ERR_IF_ERR(reserveStream(1, litLens.size(), &tokens)); + // Extra padding for SIMD stores (8 elements max overshoot per store) + ZL_ERR_IF_ERR(reserveStream(3, 2 * litLens.size() + 8, &extraLens)); + + const uint32_t llMask = (1u << kLocalLLBits) - 1; + const uint32_t mlMask = (1u << kLocalMLBits) - 1; + + size_t extraLenIdx = 0; + size_t i = 0; + +#if ZL_ARCH_X86_64 + if constexpr (sizeof(length_t) == 2) { + // Vectorized loop: process 8 uint16_t values at a time + // using 128-bit SSE registers. + const size_t kVecSize = 8; // 8 x uint16_t = 128 bits + const size_t vecEnd = litLens.size() & ~(kVecSize - 1); + + const __m128i llMaskVec = + _mm_set1_epi16(static_cast(llMask)); + const __m128i mlMaskVec = + _mm_set1_epi16(static_cast(mlMask)); + + for (; i < vecEnd; i += kVecSize) { + // Load 8 litLens and 8 matchLens (each uint16_t) + __m128i llVec = _mm_loadu_si128( + reinterpret_cast(&litLens[i])); + __m128i mlVec = _mm_loadu_si128( + reinterpret_cast(&matchLens[i])); + + // Compute llToken = min(ll, llMask) and mlToken = min(ml, + // mlMask) + __m128i llTokenVec = _mm_min_epu16(llVec, llMaskVec); + __m128i mlTokenVec = _mm_min_epu16(mlVec, mlMaskVec); + + // Shift mlToken left by kLocalLLBits + __m128i mlShifted = _mm_slli_epi16(mlTokenVec, kLocalLLBits); + + // Combine: token = llToken | (mlToken << kLocalLLBits) + __m128i tokenVec16 = _mm_or_si128(llTokenVec, mlShifted); + + // Pack 16-bit tokens to 8-bit (we know they fit in 8 bits) + __m128i tokenVec8 = _mm_packus_epi16(tokenVec16, tokenVec16); + + // Store 8 bytes of tokens + _mm_storel_epi64( + reinterpret_cast<__m128i*>(&tokens[i]), tokenVec8); + + // Compute extra values: extraLL = ll - llMask, extraML = ml - + // mlMask + __m128i extraLLVec = _mm_sub_epi16(llVec, llMaskVec); + __m128i extraMLVec = _mm_sub_epi16(mlVec, mlMaskVec); + + // Interleave extra values: [ll0,ml0,ll1,ml1,ll2,ml2,ll3,ml3] + __m128i loInterleaved = + _mm_unpacklo_epi16(extraLLVec, extraMLVec); + // [ll4,ml4,ll5,ml5,ll6,ml6,ll7,ml7] + __m128i hiInterleaved = + _mm_unpackhi_epi16(extraLLVec, extraMLVec); + + // Check for extraLens: compare tokens with masks + // Use equality with the min result to handle unsigned values + // correctly. If ll >= llMask, then min(ll, llMask) == llMask. + // Note: _mm_cmpgt_epi16 is signed, which fails for uint16_t >= + // 32768. + __m128i llEqMask = _mm_cmpeq_epi16(llTokenVec, llMaskVec); + __m128i mlEqMask = _mm_cmpeq_epi16(mlTokenVec, mlMaskVec); + + // Interleave the 16-bit comparison masks, then pack to 8-bit + // This gives us the masks already in the correct interleaved + // order [ll0,ml0,ll1,ml1,ll2,ml2,ll3,ml3] and + // [ll4,ml4,ll5,ml5,ll6,ml6,ll7,ml7] + __m128i loEqInterleaved = + _mm_unpacklo_epi16(llEqMask, mlEqMask); + __m128i hiEqInterleaved = + _mm_unpackhi_epi16(llEqMask, mlEqMask); + + // Pack to 8-bit: _mm_packs_epi16 saturates signed 16-bit to + // signed 8-bit 0x0000 -> 0x00, 0xFFFF (-1) -> 0xFF + __m128i eqPacked = + _mm_packs_epi16(loEqInterleaved, hiEqInterleaved); + + // Get 16-bit mask: low 8 bits for loMask, high 8 bits for + // hiMask + uint32_t combinedMask = + static_cast(_mm_movemask_epi8(eqPacked)); + uint8_t loMask = combinedMask & 0xFF; + uint8_t hiMask = (combinedMask >> 8) & 0xFF; + + // Use LUT to get shuffle patterns for pshufb + __m128i loShuf = _mm_loadu_si128( + reinterpret_cast( + kShuffleLUT[loMask].data())); + __m128i hiShuf = _mm_loadu_si128( + reinterpret_cast( + kShuffleLUT[hiMask].data())); + + // Shuffle to pack valid elements to the front + __m128i loPacked = _mm_shuffle_epi8(loInterleaved, loShuf); + __m128i hiPacked = _mm_shuffle_epi8(hiInterleaved, hiShuf); + + // Count valid elements and store + size_t loCount = __builtin_popcount(loMask); + size_t hiCount = __builtin_popcount(hiMask); + + // Store packed valid elements (may overwrite beyond valid + // count, but we have padding in extraLens) + _mm_storeu_si128( + reinterpret_cast<__m128i*>(&extraLens[extraLenIdx]), + loPacked); + extraLenIdx += loCount; + _mm_storeu_si128( + reinterpret_cast<__m128i*>(&extraLens[extraLenIdx]), + hiPacked); + extraLenIdx += hiCount; + } + } +#endif + + // Scalar tail loop for remaining elements + for (; i < litLens.size(); ++i) { + const uint32_t ll = litLens[i]; + const uint32_t ml = matchLens[i]; + uint8_t const llToken = ll < llMask ? ll : llMask; + uint8_t const mlToken = ml < mlMask ? ml : mlMask; + uint8_t const token = llToken | (mlToken << kLocalLLBits); + + tokens[i] = token; + if (llToken == llMask) { + extraLens[extraLenIdx++] = ll - llMask; + } + if (mlToken == mlMask) { + extraLens[extraLenIdx++] = ml - mlMask; + } + } + + extraLens.resize(extraLenIdx); + + ZL_ERR_IF_ERR(commitStream(1, tokens.size())); + ZL_ERR_IF_ERR(commitStream(3, extraLens.size())); + + return ZL_returnSuccess(); + } + + static ZL_Report encode(ZL_Encoder* encoder, ZL_Input const* input) noexcept + { + Transform tr(encoder); + auto level = ZL_Encoder_getCParam(encoder, ZL_CParam_compressionLevel); + size_t llParam = ZL_Encoder_getLocalIntParam(encoder, 0).paramValue; + return tr.encode( + { (const char*)ZL_Input_ptr(input), ZL_Input_numElts(input) }, + level, + llParam); + } + + ZL_Report + encode(poly::string_view input, int level, size_t llParam) noexcept + { + ZL_RESULT_DECLARE_SCOPE_REPORT(encoder_); + if (kIsIndex && input.size() >= 65536) { + ZL_ERR(GENERIC, "Input too large for index mode"); + } + + Vector lits; + Vector litLens; + Vector matchLens; + Vector offsets; + + const size_t numElts = input.size(); + ZL_ERR_IF_ERR(reserveStream(0, numElts + 4 * 16 + 16, &lits)); + ZL_ERR_IF_ERR(reserveStream(2, numElts / kMinMatch + 16, &offsets)); + + uint8_t const* const istart = (uint8_t const*)input.data(); + uint8_t const* const iend = istart + numElts; + + if (kQuartet) { + encode1Quartet(lits, litLens, offsets, matchLens, istart, iend); + } else if (level == 1) { + encode1(lits, litLens, offsets, matchLens, istart, iend); + } else { + encode2(lits, litLens, offsets, matchLens, istart, iend); + } + + if (llParam == 0) { + std::array llStats{ 0 }; + std::array mlStats{ 0 }; + for (size_t i = 0; i < litLens.size(); ++i) { + ++llStats[std::min(litLens[i], 255)]; + ++mlStats[std::min(matchLens[i], 255)]; + } + size_t bestLLBits = 0; + size_t bestExtraLens = 2 * litLens.size() + 1; + for (size_t llBits = 1; llBits < 8; ++llBits) { + const size_t mlBits = 8 - llBits; + const size_t llMask = (1u << llBits) - 1; + const size_t mlMask = (1u << mlBits) - 1; + + size_t numExtraLL = 0; + for (size_t i = llMask; i < llStats.size(); ++i) { + numExtraLL += llStats[i]; + } + size_t numExtraML = 0; + for (size_t i = mlMask; i < mlStats.size(); ++i) { + numExtraML += mlStats[i]; + } + size_t numExtraLens = numExtraLL + numExtraML; + + // Need some way to take branch predictibility into account. + // Weigh in favor of predictable branches when it is relatively + // close. + // const size_t predictableCutoff = litLens.size() / 64; + // if (numExtraLL < predictableCutoff) { + // numExtraLens -= numExtraLens / 16; + // } + // if (numExtraML < predictableCutoff) { + // numExtraLens -= numExtraLens / 16; + // } + + // fprintf(stderr, + // "%zu: %zu -> %zu = %zu + %zu (%zu)\n", + // litLens.size(), + // llBits, + // numExtraLens, + // numExtraLL, + // numExtraML, + // bestExtraLens); + if (numExtraLens < bestExtraLens) { + bestExtraLens = numExtraLens; + bestLLBits = llBits; + } + } + llParam = bestLLBits; + } + + size_t llBits = llParam; + size_t mlBits = 8 - llBits; + // fprintf(stderr, "Selected llbits = %zu\n", llBits); + + ZL_Report report; + if (llBits == 1) { + report = tokenize<1, 8 - 1>(litLens, matchLens); + } else if (llBits == 2) { + report = tokenize<2, 8 - 2>(litLens, matchLens); + } else if (llBits == 3) { + report = tokenize<3, 8 - 3>(litLens, matchLens); + } else if (llBits == 4) { + report = tokenize<4, 8 - 4>(litLens, matchLens); + } else if (llBits == 5) { + report = tokenize<5, 8 - 5>(litLens, matchLens); + } else if (llBits == 6) { + report = tokenize<6, 8 - 6>(litLens, matchLens); + } else if (llBits == 7) { + report = tokenize<7, 8 - 7>(litLens, matchLens); + } else { + ZL_ERR(GENERIC, "Bad LLBits %zu", llBits); + } + ZL_ERR_IF_ERR(report); + + uint8_t header[ZL_VARINT_LENGTH_64 + 1]; + header[0] = llBits | (mlBits << 4); + uint32_t const srcSize = input.size(); + const size_t headerSize = 1 + ZL_varintEncode(srcSize, header + 1); + writeHeader({ (const char*)header, headerSize }); + + // ZL_ERR_IF_ERR(writeStream(eictx, 0, lits)); + // ZL_ERR_IF_ERR(writeStream(eictx, 2, offsets)); + ZL_ERR_IF_ERR(commitStream(0, lits.size())); + ZL_ERR_IF_ERR(commitStream(2, offsets.size())); + + return ZL_returnSuccess(); + } + + template + static void copy(void* dst, void const* src) + { +#if defined(__AVX2__) + if constexpr (kLen == 16) { + auto v = _mm_lddqu_si128((const __m128i_u*)src); + _mm_storeu_si128((__m128i_u*)dst, v); + return; + } + if constexpr (kLen == 32) { + auto v = _mm256_lddqu_si256((const __m256i_u*)src); + _mm256_storeu_si256((__m256i_u*)dst, v); + return; + } +#endif + + char tmp[kLen]; + memcpy(tmp, src, kLen); + memcpy(dst, tmp, kLen); + } + + public: + static size_t decodeImpl2( + uint8_t const* __restrict lits, + size_t numLits, + uint8_t const* __restrict tokens, + offset_t const* __restrict offsets, + size_t numSeqs, + length_t const* __restrict extraLens, + size_t numExtraLens, + uint8_t* __restrict out, + size_t outCapacity) + { + ZL_REQUIRE(kIsIndex); + static_assert(kLLBits + kMLBits == 8, ""); + uint8_t* const base = out; + auto litEnd = lits + numLits; + uint8_t const* const outLimit = out + outCapacity + - 4 * std::max(16, 1 << std::max(kLLBits, kMLBits)); + uint8_t const* const litLimit = + lits + numLits - 4 * std::max(16, 1 << kLLBits); + size_t i = 0; + for (;;) { + if (i + 4 > numSeqs) { + break; + } + if (out > outLimit) { + break; + } + if (lits > litLimit) { + break; + } + std::array, 4> matches; +#pragma clang loop unroll(full) + for (size_t u = 0; u < 4; ++u) { + memcpy(matches[u].data(), base + offsets[i + u], 1 << kMLBits); + } + + // TODO: If I control this loop carefully with intrinsics, can it be + // faster? +#pragma clang loop unroll(full) + for (size_t u = 0; u < 4; ++u) { + size_t ll = tokens[i] & kLLMask; + size_t ml = (tokens[i] >> kLLBits) & kMLMask; + memcpy(out, lits, 1 << kLLBits); + if (ZL_UNLIKELY(ll == kLLMask)) { + memcpy(out + kLLMask, lits + kLLMask, *extraLens); + ll += *extraLens++; + if (ZL_UNLIKELY( + out + ll > outLimit || lits + ll > litLimit)) { + out += ll; + lits += ll; + if (ZL_UNLIKELY(ml == kMLMask)) { + ml += *extraLens++; + } + memcpy(out, base + offsets[i], ml); + out += ml; + ++i; + break; + } + } + out += ll; + lits += ll; + + memcpy(out, matches[u].data(), 1 << kMLBits); + if (ZL_UNLIKELY(ml == kMLMask)) { + memcpy(out + kMLMask, + base + offsets[i] + kMLMask, + *extraLens); + ml += *extraLens++; + if (ZL_UNLIKELY(out + ml > outLimit)) { + out += ml; + ++i; + break; + } + } + out += ml; + ++i; + } + } + while (i < numSeqs) { + size_t ll = tokens[i] & kLLMask; + size_t ml = (tokens[i] >> kLLBits) & kMLMask; + if (ll == kLLMask) { + ll += *extraLens++; + } + if (ml == kMLMask) { + ml += *extraLens++; + } + memcpy(out, lits, ll); + out += ll; + lits += ll; + uint8_t const* const match = + kIsIndex ? base + offsets[i] : out - offsets[i]; + memcpy(out, match, ml); + out += ml; + ++i; + } + memcpy(out, lits, (litEnd - lits)); + out += litEnd - lits; + return out - base; + } + +#if ZL_ARCH_X86_64 + static void print16(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + static void print8(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } +#endif // ZL_ARCH_X86_64 + + static size_t detokenize4Fallback( + uint32_t tokens, + length_t const* __restrict extraLens, + length_t lens[8]) + { + size_t needed = 0; + for (size_t i = 0; i < 4; ++i) { + const uint8_t token = tokens >> (i * 8); + size_t ll = token & kLLMask; + size_t ml = (token >> kLLBits) & kMLMask; + if (ll == kLLMask) { + ll += extraLens[needed++]; + } + if (ml == kMLMask) { + ml += extraLens[needed++]; + } + lens[i * 2 + 0] = ll; + lens[i * 2 + 1] = ml; + } + return needed; + } + +#if ZL_ARCH_X86_64 + static int detokenize4( + uint32_t tokens, + length_t const* __restrict extraLens, + length_t lens[8]) + { + // return detokenize4Fallback(tokens, extraLens, lens); + // Load tokens in [0, 4), and (tokens >> kLLBits) in [8, 12) + // TODO: Are there more efficient ways to load the tokens? + const __m128i kTokensShuffleV = _mm_setr_epi8( + 0x00, + 0x08, + 0x01, + 0x09, + 0x02, + 0x0A, + 0x03, + 0x0B, + 0x80, + 0x80, + 0x80, + 0x80, + 0x80, + 0x80, + 0x80, + 0x80); + const __m128i kTokensSpreadV = _mm_setr_epi8( + 0x00, + 0x80, + 0x01, + 0x80, + 0x02, + 0x80, + 0x03, + 0x80, + 0x04, + 0x80, + 0x05, + 0x80, + 0x06, + 0x80, + 0x07, + 0x80); + // fprintf(stderr, "kLLBits = %d, kMLBits = %d\n", kLLBits, kMLBits); + // Load 8 extra lengths + __m128i extraLengthsV = _mm_loadu_si128((const __m128i_u*)extraLens); + // fprintf(stderr, + // "tokens: [0x%x, 0x%x, 0x%x, 0x%x]\n", + // tokens & 0xFF, + // (tokens >> 8) & 0xFF, + // (tokens >> 16) & 0xFF, + // (tokens >> 24) & 0xFF); + __m128i lengthsV = _mm_set_epi64x(tokens >> kLLBits, tokens); + + // Interleave the lls & mls into uint8_t + // [ll0][ml0][ll1][ml1][ll2][ml2][ll3][ml3] 8x[0] + lengthsV = _mm_shuffle_epi8(lengthsV, kTokensShuffleV); + // print8("lengthsV", lengthsV); + + // Mask the lls & mls to only the bits needed + const __m128i kMaskV = + _mm_set1_epi16(uint16_t(kLLMask) | (uint16_t(kMLMask) << 8)); + lengthsV = _mm_and_si128(lengthsV, kMaskV); + // print8("lengthsV & kMaskV", lengthsV); + + // Determine how many lengths we need + const __m128i needsExtraV = _mm_cmpeq_epi8(lengthsV, kMaskV); + const int needsExtra = _mm_movemask_epi8(needsExtraV); + assert(needsExtra < 256); + // print8("needsExtraV", needsExtraV); + + // Unpack the lengthsV into uint16_t + lengthsV = _mm_shuffle_epi8(lengthsV, kTokensSpreadV); + // lengthsV = _mm_unpacklo_epi8(lengthsV, _mm_setzero_si128()); + // print16("lengthsV", lengthsV); + + // print16("extraLengthsV", extraLengthsV); + + // Shuffle the extra lengths into the correct positions + const __m128i kExtraShuffleV = _mm_loadu_si128( + (const __m128i_u*)&kDecodeShuffleLUT[needsExtra]); + // print8("kExtraShuffleV", kExtraShuffleV); + extraLengthsV = _mm_shuffle_epi8(extraLengthsV, kExtraShuffleV); + // print16("extraLengthsV", extraLengthsV); + + // Add the extra lengths to the lengths + lengthsV = _mm_add_epi16(lengthsV, extraLengthsV); + // print16("lengthsV", lengthsV); + + // Store the result + _mm_storeu_si128((__m128i_u*)lens, lengthsV); + +# ifndef NDEBUG + { + const size_t needed = _mm_popcnt_u32(needsExtra); + uint16_t fbLens[8]; + assert(needed == detokenize4Fallback(tokens, extraLens, fbLens)); + assert(memcmp(lens, fbLens, sizeof(fbLens)) == 0); + } +# endif + return needsExtra; + } + + static size_t decodeImplV( + uint8_t const* __restrict lits, + size_t numLits, + uint8_t const* __restrict tokens, + offset_t const* __restrict offsets, + size_t numSeqs, + length_t const* __restrict extraLens, + size_t numExtraLens, + uint8_t* __restrict out, + size_t outCapacity) + { + static_assert(kLLBits + kMLBits == 8, ""); + uint8_t* const base = out; + auto litEnd = lits + numLits; + uint8_t const* const outLimit = out + outCapacity + - std::max(ZS_WILDCOPY_OVERLENGTH, + 1 << std::max(kLLBits, kMLBits)) + - 16; + uint8_t const* const litLimit = + lits + numLits - std::max(ZS_WILDCOPY_OVERLENGTH, 1 << kLLBits); + + size_t i = 0; + if (numSeqs >= 4) { + size_t limitSeq = numSeqs; + for (size_t numExtra = 0; limitSeq > 0 && numExtra <= 8;) { + --limitSeq; + size_t ll = tokens[limitSeq] & kLLMask; + size_t ml = (tokens[limitSeq] >> kLLBits) & kMLMask; + numExtra += ll == kLLMask; + numExtra += ml == kMLMask; + } + assert(numSeqs - limitSeq >= 4); + // TODO: This is bad when there aren't sequences near the end that + // have extra lengths Improve this to instead copy the extra lens to + // a separate buffer when near the end, and read from that + // alternative buffer instead + for (; i < limitSeq; i += 4) { + length_t lens[8]; + const int needsExtra = + detokenize4(ZL_read32(tokens + i), extraLens, lens); + const size_t extrasNeeded = _mm_popcnt_u32(needsExtra); + const size_t litSum = lens[0] + lens[2] + lens[4] + lens[6]; + const size_t outSum = + litSum + lens[1] + lens[3] + lens[5] + lens[7]; + if (lits + litSum > litLimit || out + outSum > outLimit) { + break; + } + extraLens += extrasNeeded; + for (size_t u = 0; u < 4; ++u) { + size_t ll = lens[2 * u + 0]; + size_t ml = lens[2 * u + 1]; + assert(out + ll <= outLimit && lits + ll <= litLimit); + + constexpr size_t kLLCopy = 1 << kLLBits; + copy(out, lits); + if (ZL_UNLIKELY(ll > kLLCopy)) { + ZS_wildcopy( + out + kLLCopy, + lits + kLLCopy, + ll - kLLCopy, + ZS_wo_no_overlap); + } + lits += ll; + out += ll; + + const size_t off = offsets[i + u]; + uint8_t const* const match = out - off; + assert(out + ml <= outLimit); + const size_t kMLCopy = 1 << kMLBits; + if (ZL_LIKELY(off >= 16)) { + for (size_t i_2 = 0; i_2 < kMLCopy; i_2 += 16) { + memcpy(out + i_2, match + i_2, 16); + } + } else { + ZS_wildcopy(out, match, kMLCopy, ZS_wo_src_before_dst); + } + if (ml > kMLCopy) { + ZS_wildcopy( + out + kMLCopy, + match + kMLCopy, + ml - kMLCopy, + ZS_wo_src_before_dst); + } + out += ml; + } + } + } + for (; i < numSeqs; ++i) { + size_t ll = tokens[i] & kLLMask; + size_t ml = (tokens[i] >> kLLBits) & kMLMask; + if (ll == kLLMask) { + ll += *extraLens++; + } + if (ml == kMLMask) { + ml += *extraLens++; + } + memcpy(out, lits, ll); + out += ll; + lits += ll; + uint8_t const* const match = out - offsets[i]; + ZS_safecopy(out, match, ml, ZS_wo_src_before_dst); + out += ml; + } + memcpy(out, lits, (litEnd - lits)); + out += litEnd - lits; + return out - base; + } +#endif // ZL_ARCH_X86_64 + + // TODO: Lost speed here when fixing it + static size_t decodeImpl( + uint8_t const* __restrict lits, + size_t numLits, + uint8_t const* __restrict tokens, + offset_t const* __restrict offsets, + size_t numSeqs, + length_t const* __restrict extraLens, + size_t numExtraLens, + uint8_t* __restrict out, + size_t outCapacity) + { + static_assert(kLLBits + kMLBits == 8, ""); + uint8_t* const base = out; + auto litEnd = lits + numLits; + uint8_t const* const outLimit = out + outCapacity + - std::max(ZS_WILDCOPY_OVERLENGTH, + 1 << std::max(kLLBits, kMLBits)) + - 16; + uint8_t const* const litLimit = + lits + numLits - std::max(ZS_WILDCOPY_OVERLENGTH, 1 << kLLBits); + for (size_t i = 0; i < numSeqs; ++i) { + size_t ll = tokens[i] & kLLMask; + size_t ml = (tokens[i] >> kLLBits) & kMLMask; + if (ZL_LIKELY(out < outLimit && lits < litLimit)) { + copy<1 << kLLBits>(out, lits); + } else { + ZS_safecopy(out, lits, ll, ZS_wo_no_overlap); + } + if (ZL_UNLIKELY(ll == kLLMask)) { + ll += *extraLens; + if (ZL_LIKELY(out + ll <= outLimit && lits + ll <= litLimit)) { + ZS_wildcopy( + out + kLLMask, + lits + kLLMask, + *extraLens, + ZS_wo_no_overlap); + } else { + ZS_safecopy( + out + kLLMask, + lits + kLLMask, + *extraLens, + ZS_wo_no_overlap); + } + ++extraLens; + } + lits += ll; + out += ll; + uint8_t const* const match = + kIsIndex ? base + offsets[i] : out - offsets[i]; + if (ZL_LIKELY(out < outLimit)) { + // copy<1 << kMLBits>(out, match); + if (ZL_LIKELY(offsets[i] >= ml)) { + // TODO: This is legal now + copy<1 << kMLBits>(out, match); + // for (size_t i_2 = 0; i_2 < (1 << kMLBits); i_2 += 16) { + // memcpy(out + i_2, match + i_2, 16); + // } + } else { + ZS_wildcopy(out, match, 1 << kMLBits, ZS_wo_src_before_dst); + } + } else { + ZS_safecopy(out, match, ml, ZS_wo_src_before_dst); + } + if (ZL_UNLIKELY(ml == kMLMask)) { + ml += *extraLens; + if (ZL_LIKELY(out + ml <= outLimit)) { + ZS_wildcopy( + out + kMLMask, + match + kMLMask, + *extraLens, + ZS_wo_src_before_dst); + } else { + ZS_safecopy( + out + kMLMask, + match + kMLMask, + *extraLens, + ZS_wo_src_before_dst); + } + ++extraLens; + } + out += ml; + } + memcpy(out, lits, (litEnd - lits)); + out += litEnd - lits; + return out - base; + } + + static size_t decodeImplQuartet( + uint8_t const* __restrict lits, + size_t numLits, + uint8_t const* __restrict tokens, + offset_t const* __restrict offsets, + size_t numSeqs, + length_t const* __restrict extraLens, + size_t numExtraLens, + uint8_t* __restrict out, + size_t outCapacity) + { + static_assert(kLLBits + kMLBits == 8, ""); + uint8_t* const base = out; + auto litEnd = lits + numLits; + uint8_t const* const outLimit = out + outCapacity + - std::max(ZS_WILDCOPY_OVERLENGTH, + 1 << std::max(kLLBits, kMLBits)) + - 16; + uint8_t const* const litLimit = + lits + numLits - std::max(ZS_WILDCOPY_OVERLENGTH, 1 << kLLBits); + + auto copyLiterals = [&out, outLimit, &lits, litLimit](size_t ll) { + if (ZL_LIKELY(ll <= (1 << kLLBits))) { + if (ZL_LIKELY(out < outLimit && lits < litLimit)) { + copy<1 << kLLBits>(out, lits); + } else { + ZS_safecopy(out, lits, ll, ZS_wo_no_overlap); + } + } else { + if (ZL_LIKELY(out + ll <= outLimit && lits + ll <= litLimit)) { + ZS_wildcopy(out, lits, ll, ZS_wo_no_overlap); + } else { + ZS_safecopy(out, lits, ll, ZS_wo_no_overlap); + } + } + }; + + size_t i = 0; + if (numSeqs >= kQuartetNum) { + for (; i < numSeqs - kQuartetNum; i += kQuartetNum) { + size_t lls[kQuartetNum]; + size_t mls[kQuartetNum]; + constexpr size_t kFirstCopyLength = kQuartetLength; + constexpr size_t kFirstCopyLengthU64 = kFirstCopyLength / 8; + static_assert(kFirstCopyLength % sizeof(uint64_t) == 0); + uint64_t data[kFirstCopyLengthU64 * kQuartetNum]; + +#pragma clang loop unroll(full) + for (size_t u = 0, pos = 0; u < kQuartetNum; ++u) { + size_t ll = tokens[i + u] & kLLMask; + size_t ml = (tokens[i + u] >> kLLBits) & kMLMask; + if (ZL_UNLIKELY(ll == kLLMask)) { + ll += *extraLens++; + } + if (ZL_UNLIKELY(ml == kMLMask)) { + ml += *extraLens++; + } + if (u == 0) { + // Copy the first literals of the quartet so we can + // match into it + copyLiterals(ll); + } + lls[u] = ll; + mls[u] = ml; + pos += ll; + assert(offsets[i + u] >= (pos - lls[0]) + kFirstCopyLength); + memcpy(data + kFirstCopyLengthU64 * u, + out + pos - offsets[i + u], + kFirstCopyLength); + pos += ml; + } +#pragma clang loop unroll(full) + for (size_t u = 0; u < kQuartetNum; ++u) { + const size_t ll = lls[u]; + const size_t ml = mls[u]; + const size_t off = offsets[i + u]; + if (u != 0) { + copyLiterals(ll); + } + lits += ll; + out += ll; + + if (ZL_LIKELY(out < outLimit)) { + memcpy(out, + data + kFirstCopyLengthU64 * u, + kFirstCopyLength); + } else { + memcpy(out, + data + kFirstCopyLengthU64 * u, + ZL_MIN(kFirstCopyLength, ml)); + } + if (ZL_UNLIKELY(ml > kFirstCopyLength)) { + uint8_t const* const match = out - off; + if (ZL_LIKELY(out + ml <= outLimit)) { + assert(out < outLimit); + ZS_wildcopy( + out + kFirstCopyLength, + match + kFirstCopyLength, + ml - kFirstCopyLength, + ZS_wo_src_before_dst); + } else { + ZS_safecopy(out, match, ml, ZS_wo_src_before_dst); + } + } + out += ml; + } + } + } + + for (; i < numSeqs; ++i) { + size_t ll = tokens[i] & kLLMask; + size_t ml = (tokens[i] >> kLLBits) & kMLMask; + if (ll == kLLMask) { + ll += *extraLens++; + } + if (ml == kMLMask) { + ml += *extraLens++; + } + memcpy(out, lits, ll); + out += ll; + lits += ll; + uint8_t const* const match = out - offsets[i]; + memcpy(out, match, ml); + out += ml; + } + memcpy(out, lits, (litEnd - lits)); + out += litEnd - lits; + return out - base; + } + + struct DecodeState { + const uint8_t* lits; + const uint8_t* litsLimit; + const uint8_t* litsEnd; + + ptrdiff_t seq; + + const length_t* extraLens; + const length_t* extraLensLimit; + const length_t* extraLensEnd; + + ptrdiff_t out; + }; + + struct DecodeInfo { + const uint8_t* tokens; + const offset_t* offsets; + ptrdiff_t numSeqs; + ptrdiff_t outCapacity; + uint8_t* outBase; + }; + + static constexpr std::array kMaxLLs = { 0, 16, 16, 16, + 32, 32, 64, 128 }; + static constexpr std::array kMaxMLs = { 0, 32, 32, 32, + 32, 32, 64, 128 }; + + static constexpr ptrdiff_t kMaxLitLen = kMaxLLs[kLLBits]; + static constexpr ptrdiff_t kMaxMatchLen = kMaxMLs[kMLBits]; + // std::max(32, 1u << kMLBits); + static constexpr ptrdiff_t kIters = 4; + + static constexpr ptrdiff_t kExtraLensSlop = 8; + static constexpr ptrdiff_t kLitsSlop = kIters * kMaxLitLen; + static constexpr ptrdiff_t kSeqSlop = kIters; + static constexpr ptrdiff_t kOutSlop = kIters * (kMaxLitLen + kMaxMatchLen); + + template + __attribute__((always_inline)) static bool copyWithSunkenBoundsCheck( + ptrdiff_t len, + CopyN&& copyN, + BoundsCheck&& boundsCheck) + { + copyN(0); + if (ZL_UNLIKELY(len > N)) { +#if USE_LLVM_MCA + return false; +#endif + if (!boundsCheck()) { + return false; + } + // Signed so the compiler can assume no overflow + ptrdiff_t copied = N; + do { + copyN(copied); + copied += N; + } while (copied < len); + } + return true; + } + + template + __attribute__((always_inline)) static bool copyWithSunkenBoundsCheck( + uint8_t* out, + const uint8_t* in, + size_t len, + BoundsCheck&& boundsCheck) + { + return copyWithSunkenBoundsCheck( + len, + [out, in](size_t offset) { + copy(out + offset, in + offset); + }, + boundsCheck); + } + + static constexpr std::array, 17> makePatternLUT( + size_t startPos) + { + std::array, 17> lut; + for (size_t offset = 0; offset < lut.size(); ++offset) { + for (size_t pos = 0; pos < 16; ++pos) { + if (offset == 0) { + lut[offset][pos] = 0x80; + } else { + lut[offset][pos] = (startPos + pos) % offset; + } + } + } + return lut; + } + + alignas(16) static constexpr std:: + array, 17> kPatternGeneration{ + makePatternLUT(0) + }; + + alignas(16) static constexpr std:: + array, 17> kPatternReshuffle{ + makePatternLUT(16) + }; + +#if ZL_ARCH_X86_64 + static __m128i loadPattern(const uint8_t* src, offset_t offset) + { + assert(offset <= 16); + auto pattern = _mm_load_si128( + (const __m128i*)kPatternGeneration[offset].data()); + auto data = _mm_lddqu_si128((const __m128i_u*)src); + return _mm_shuffle_epi8(data, pattern); + } +#endif // ZL_ARCH_X86_64 + +#if ZL_ARCH_X86_64 + template + __attribute__((always_inline)) + __attribute__((flatten)) static bool copyOverlappingWithSunkenBoundsCheck( + uint8_t* out, + offset_t offset, + size_t len, + BoundsCheck&& boundsCheck) + { +# if USE_LLVM_MCA + return false; +# endif + // TODO: < or <= + // TODO: Always copy 64, or copy 32 + if (ZL_LIKELY(offset <= 16)) { + switch (offset) { + case 1: { + auto pattern = _mm256_set1_epi8(out[-1]); + return copyWithSunkenBoundsCheck( + len, + [out, pattern](size_t offset) { + static_assert(N % 32 == 0); + for (size_t o = 0; o < N; o += 32) { + _mm256_storeu_si256( + (__m256i_u*)(out + offset + o), + pattern); + } + }, + boundsCheck); + } + case 2: + case 4: + case 8: + case 16: { + auto pattern = loadPattern(out - offset, offset); + return copyWithSunkenBoundsCheck( + len, + [out, pattern](size_t offset) { + static_assert(N % 16 == 0); + for (size_t o = 0; o < N; o += 16) { + _mm_storeu_si128( + (__m128i_u*)(out + offset + o), + pattern); + } + }, + boundsCheck); + } + default: { + auto pattern = loadPattern(out - offset, offset); + auto reshuffle = _mm_load_si128( + (const __m128i*)kPatternReshuffle[offset].data()); + return copyWithSunkenBoundsCheck( + len, + [out, pattern, reshuffle](size_t offset) mutable { + static_assert(N % 16 == 0); + for (size_t o = 0; o < N; o += 16) { + if (offset != 0 || o != 0) { + pattern = _mm_shuffle_epi8( + pattern, reshuffle); + } + _mm_storeu_si128( + (__m128i_u*)(out + offset + o), + pattern); + } + }, + boundsCheck); + } + } + } else { + return copyWithSunkenBoundsCheck( + len, + [out, in = out - offset](size_t offset) { + static_assert(N % 16 == 0); + for (size_t o = 0; o < N; o += 16) { + copy<16>(out + offset + o, in + offset + o); + } + }, + boundsCheck); + } + } +#endif // ZL_ARCH_X86_64 + +#if ZL_ARCH_X86_64 + __attribute__((flatten)) static bool decodeFastInner( + DecodeState* state, + const DecodeInfo* info) + { + const ptrdiff_t seqLimit = info->numSeqs - kSeqSlop + 1; + + const ptrdiff_t outLimit = info->outCapacity - kOutSlop + 1; + + auto seq = state->seq; + auto out = state->out; + + if (seq >= seqLimit || out >= outLimit) { + return true; + } + + const length_t* const extraLensLimit = state->extraLensLimit; + const auto litsLimit = state->litsLimit; + + const auto outBase = info->outBase; + auto extraLens = state->extraLens; + const auto tokens = info->tokens; + const auto offsets = info->offsets; + auto lits = state->lits; + + assert(extraLens < extraLensLimit); + assert(lits < litsLimit); + do { +# define USE_DETOKENIZE 1 +# if USE_DETOKENIZE + length_t lens[8]; + const int needsExtraMask = + detokenize4(ZL_readLE32(tokens + seq), extraLens, lens); +// # pragma clang loop unroll(full) +# if USE_LLVM_MCA +# pragma clang loop unroll(disable) +# endif + // __builtin_prefetch(lits + 128); + // __builtin_prefetch(tokens + 64); + // __builtin_prefetch(offsets + 64); + // __builtin_prefetch(extraLens + 64); + for (size_t i = 0; i < 4; ++i) { +# if USE_LLVM_MCA + __asm volatile("# LLVM-MCA-BEGIN decodeFastInner" ::: "memory"); +# endif + const ptrdiff_t ll = lens[2 * i + 0]; + const ptrdiff_t ml = lens[2 * i + 1]; + const ptrdiff_t offset = offsets[seq + i]; +# else +# pragma clang loop unroll(full) + for (size_t i = 0; i < 1; ++i) { + auto ll = tokens[seq] & kLLMask; + auto ml = (tokens[seq] >> kLLBits) & kMLMask; + + auto nextExtraLens = extraLens; + + if (ZL_UNLIKELY(ll == kLLMask)) { + ll += *nextExtraLens++; + } + if (ZL_UNLIKELY(ml == kMLMask)) { + ml += *nextExtraLens++; + } + const auto offset = offsets[seq]; +# endif + + // match starts at: 0 + ll - offset + // match ends at: 0 + ll - offset + ml - 1 + // lits start at : 0 + // : (ll - offset + ml - 1) < 0 + // safe if : ll + ml - 1 < offset + // safe if : ll + ml <= offset + // unsafe if : ll + ml > offset + + const auto outMatch = out + ll; + const auto outNext = outMatch + ml; + const auto litsNext = lits + ll; + + if (ZL_UNLIKELY(!copyWithSunkenBoundsCheck( + outBase + out, lits, ll, [=] { + return outMatch < outLimit + && litsNext < litsLimit; + }))) { + loop_break: +# if USE_DETOKENIZE + seq += i; + extraLens += _mm_popcnt_u32( + needsExtraMask & ((1u << (2 * i)) - 1)); +# endif + goto exit; + } + + const auto match = outMatch - offset; + if (ZL_UNLIKELY(match < 0)) { + return false; + } + + if (ZL_UNLIKELY(offset < ml)) { + if (ZL_UNLIKELY(!copyOverlappingWithSunkenBoundsCheck< + kMaxMatchLen>( + outBase + outMatch, offset, ml, [=] { + return outNext < outLimit; + }))) { + goto loop_break; + } + } else { + if (ZL_UNLIKELY(!copyWithSunkenBoundsCheck( + outBase + outMatch, outBase + match, ml, [=] { + return outNext < outLimit; + }))) { + goto loop_break; + } + } + + out = outNext; + lits = litsNext; +# if !USE_DETOKENIZE + extraLens = nextExtraLens; + ++seq; + } +# else +# if USE_LLVM_MCA + __asm volatile("# LLVM-MCA-END decodeFastInner" ::: "memory"); +# endif + } + + extraLens += _mm_popcnt_u32(needsExtraMask); + seq += 4; +# endif + } while (seq < seqLimit && out < outLimit && extraLens < extraLensLimit + && lits < litsLimit); + exit: + assert(seq <= info->numSeqs); + assert(out <= info->outCapacity); + assert(extraLens <= state->extraLensEnd); + assert(lits <= state->litsEnd); + + state->lits = lits; + state->out = out; + state->seq = seq; + state->extraLens = extraLens; + + return true; + } +#endif // ZL_ARCH_X86_64 + + static void copyLiterals(void* out, const void* lits, size_t len) + { + memcpy(out, lits, len); + } + + static void copyMatch(uint8_t* out, ptrdiff_t offset, ptrdiff_t len) + { + if (offset >= len) { + memcpy(out, out - offset, len); + } else { + for (ptrdiff_t i = 0; i < len; ++i) { + out[i] = out[i - offset]; + } + } + } + +#if ZL_ARCH_X86_64 + static bool bufferExtraLens( + DecodeState* state, + length_t extraLensBuffer[2 * kExtraLensSlop]) + { + if (ZL_UNLIKELY(state->extraLens >= state->extraLensLimit)) { + if (state->extraLens >= extraLensBuffer + && state->extraLens < extraLensBuffer + 2 * kExtraLensSlop) { + return false; + } + const size_t extraLensLeft = state->extraLensEnd - state->extraLens; + assert(extraLensLeft <= kExtraLensSlop); + if (state->extraLens != NULL) { + memcpy(extraLensBuffer, + state->extraLens, + sizeof(state->extraLens[0]) * extraLensLeft); + } + state->extraLens = extraLensBuffer; + state->extraLensEnd = extraLensBuffer + extraLensLeft; + state->extraLensLimit = state->extraLensEnd + 1; + } + return true; + } + + static bool bufferLits( + DecodeState* state, + uint8_t litsBuffer[2 * kLitsSlop]) + { + if (ZL_UNLIKELY(state->lits >= state->litsLimit)) { + if (state->lits >= litsBuffer + && state->lits < litsBuffer + 2 * kLitsSlop) { + return false; + } + const size_t litsLeft = state->litsEnd - state->lits; + assert(litsLeft <= kLitsSlop); + if (state->lits != NULL) { + memcpy(litsBuffer, state->lits, litsLeft); + } + state->lits = litsBuffer; + state->litsEnd = litsBuffer + litsLeft; + state->litsLimit = state->litsEnd + 1; + } + return true; + } + + static bool decodeFast(DecodeState* state, const DecodeInfo* info) + { + length_t extraLensBuffer[2 * kExtraLensSlop] = {}; + uint8_t litsBuffer[2 * kLitsSlop] = {}; + while (state->seq < info->numSeqs) { + if (!bufferExtraLens(state, extraLensBuffer)) { + return false; + } + if (!bufferLits(state, litsBuffer)) { + return false; + } + if (!decodeFastInner(state, info)) { + return false; + } + if (state->seq == info->numSeqs) { + break; + } + + const auto token = info->tokens[state->seq]; + auto ll = token & kLLMask; + auto ml = (token >> kLLBits) & kMLMask; + + auto out = state->out; + auto extraLens = state->extraLens; + + if (ll == kLLMask) { + if (state->extraLens == state->extraLensEnd) { + return false; + } + ll += *extraLens++; + } + + if (ml == kMLMask) { + if (state->extraLens == state->extraLensEnd) { + return false; + } + ml += *extraLens++; + } + + if (ll > (state->litsEnd - state->lits)) { + return false; + } + if (ll > (info->outCapacity - out)) { + return false; + } + copyLiterals(info->outBase + out, state->lits, ll); + out += ll; + + const auto offset = info->offsets[state->seq]; + + if (offset > out) { + return false; + } + if (ml > (info->outCapacity - out)) { + return false; + } + copyMatch(info->outBase + out, offset, ml); + + state->lits += ll; + state->out = out + ml; + state->extraLens = extraLens; + ++state->seq; + } + + if (state->extraLens != state->extraLensEnd) { + return false; + } + if (state->lits > state->litsEnd) { + // can happen when using buffered literals + return false; + } + + const size_t ll = state->litsEnd - state->lits; + if (ll > 0) { + if (ll > (info->outCapacity - state->out)) { + return false; + } + copyLiterals(info->outBase + state->out, state->lits, ll); + state->out += ll; + } + return true; + } +#endif // ZL_ARCH_X86_64 + +#if ZL_ARCH_X86_64 + static size_t decodeImplFast( + uint8_t const* __restrict lits, + size_t numLits, + uint8_t const* __restrict tokens, + offset_t const* __restrict offsets, + size_t numSeqs, + length_t const* __restrict extraLens, + size_t numExtraLens, + uint8_t* __restrict out, + size_t outCapacity) + { + const auto extraLensEnd = extraLens + numExtraLens; + const auto litsEnd = lits + numLits; + + DecodeState state = { + .lits = lits, + .litsLimit = litsEnd - std::min(numLits, kLitsSlop), + .litsEnd = litsEnd, + .seq = 0, + .extraLens = extraLens, + .extraLensLimit = extraLensEnd + - std::min(numExtraLens, kExtraLensSlop), + .extraLensEnd = extraLensEnd, + .out = 0, + }; + const DecodeInfo info = { + .tokens = tokens, + .offsets = offsets, + .numSeqs = (ptrdiff_t)numSeqs, + .outCapacity = (ptrdiff_t)outCapacity, + .outBase = out, + }; + if (!decodeFast(&state, &info)) { + return 0; + } + return state.out; + } +#endif // ZL_ARCH_X86_64 + + public: + static ZL_Report decode( + ZL_Decoder* dictx, + uint8_t const* __restrict lits, + size_t numLits, + uint8_t const* __restrict tokens, + offset_t const* __restrict offsets, + size_t numSeqs, + length_t const* __restrict extraLens, + size_t numExtraLens, + uint8_t* __restrict out, + size_t outCapacity, + size_t llBits) + { + // fprintf(stderr, "numLits = %zu, numSeqs = %zu\n", numLits, numSeqs); + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + auto impl = decodeImpl; +#if ZL_ARCH_X86_64 + if (llBits == 1) { + impl = kQuartet ? Transform::decodeImplQuartet + : Transform::decodeImplFast; + } else if (llBits == 2) { + impl = kQuartet ? Transform::decodeImplQuartet + : Transform::decodeImplFast; + } else if (llBits == 3) { + impl = kQuartet ? Transform::decodeImplQuartet + : Transform::decodeImplFast; + } else if (llBits == 4) { + impl = kQuartet ? Transform::decodeImplQuartet + : Transform::decodeImplFast; + } else if (llBits == 5) { + impl = kQuartet ? Transform::decodeImplQuartet + : Transform::decodeImplFast; + } else { + ZL_ERR(GENERIC, "Unsupported LLBits %u", llBits); + } +#else + (void)llBits; +#endif // ZL_ARCH_X86_64 + size_t const size = + impl(lits, + numLits, + tokens, + offsets, + numSeqs, + extraLens, + numExtraLens, + out, + outCapacity); + return ZL_returnValue(size); + } + + static ZL_Report decode( + ZL_Decoder* dictx, + ZL_Input const* inputs[]) noexcept + { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + + auto lits = inputs[0]; + auto tokens = inputs[1]; + auto offsets = inputs[2]; + auto extraLens = inputs[3]; + + auto header = ZL_Decoder_getCodecHeader(dictx); + const uint8_t* h = (const uint8_t*)header.start; + ZL_ERR_IF_LT(header.size, 2, corruption); + auto llBits = *h & 0xf; + ++h; + ZL_TRY_LET_CONST( + uint64_t, srcSize, ZL_varintDecode(&h, h + header.size - 1)); + + ZL_Output* out = ZL_Decoder_create1OutStream(dictx, srcSize, 1); + // auto impl = kIsIndex ? decodeImpl2 : decodeImpl; + + // #define decodeImplFast decodeImpl + + ZL_TRY_LET_CONST( + size_t, + size, + decode(dictx, + (uint8_t const*)ZL_Input_ptr(lits), + ZL_Input_numElts(lits), + (uint8_t const*)ZL_Input_ptr(tokens), + (offset_t const*)ZL_Input_ptr(offsets), + ZL_Input_numElts(tokens), + (length_t const*)ZL_Input_ptr(extraLens), + ZL_Input_numElts(extraLens), + (uint8_t*)ZL_Output_ptr(out), + srcSize, + llBits)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, srcSize)); + ZL_ERR_IF_NE(size, srcSize, corruption); + + return ZL_returnSuccess(); + } + + static std::array constexpr kOutTypes = { + ZL_Type_serial, + ZL_Type_serial, + ZL_Type_numeric, + ZL_Type_numeric, + }; + + static ZL_TypedGraphDesc gd() + { + ZL_TypedGraphDesc desc = { .CTid = int(CustomCodecIDs::LZ) + | (kIsIndex ? 1 : 0), + .inStreamType = ZL_Type_serial, + .outStreamTypes = kOutTypes.data(), + .nbOutStreams = kOutTypes.size() }; + return desc; + } + + public: + static ZL_NodeID create(ZL_Compressor* cgraph, LzParameters params) + { + ZL_NodeID node = ZL_Compressor_getNode(cgraph, "lz_research.lz"); + if (node == ZL_NODE_ILLEGAL) { + ZL_TypedEncoderDesc desc = { + .gd = gd(), + .transform_f = encode, + .name = "!lz_research.lz", + }; + node = ZL_Compressor_registerTypedEncoder(cgraph, &desc); + } + LocalParams lp; + lp.addIntParam(0, params.llBits); + const ZL_ParameterizedNodeDesc desc = { + .node = node, + .localParams = lp.get(), + }; + return ZL_Compressor_registerParameterizedNode(cgraph, &desc); + } + + // static ZL_GraphID storeGraph(ZL_Compressor* cgraph) + // { + // auto node = create(cgraph); + // std::array out = { + // ZL_GRAPH_STORE, ZL_GRAPH_STORE, ZL_GRAPH_STORE, + // ZL_GRAPH_STORE + // }; + // return ZL_Compressor_registerStaticGraph_fromNode( + // cgraph, node, out.data(), out.size()); + // } + + // static ZL_GraphID compressGraph(ZL_Compressor* cgraph, bool fast) + // { + // std::array q = { ZL_GRAPH_FSE, ZL_GRAPH_STORE }; + // ZL_GraphID const quantize = + // ZL_Compressor_registerStaticGraph_fromNode( + // cgraph, ZL_NODE_QUANTIZE_LENGTHS, q.data(), q.size()); + // auto node = create(cgraph); + // // std::array out = { + // // ZL_GRAPH_HUFFMAN, ZL_GRAPH_HUFFMAN, ZL_GRAPH_STORE, + // quantize}; std::array out = { + // ZL_GRAPH_HUFFMAN, + // ZL_GRAPH_HUFFMAN, + // fast ? ZL_GRAPH_STORE : varByteGraph(cgraph), + // smallIntGraph( + // cgraph, fast ? ZL_GRAPH_STORE : ZL_GRAPH_HUFFMAN, + // quantize) + // }; + // return ZL_Compressor_registerStaticGraph_fromNode( + // cgraph, node, out.data(), out.size()); + // } + + // static ZL_GraphID lz4Graph(ZL_Compressor* cgraph, bool huff) + // { + // std::array q = { ZL_GRAPH_FSE, ZL_GRAPH_STORE }; + // ZL_Compressor_registerStaticGraph_fromNode( + // cgraph, ZL_NODE_QUANTIZE_LENGTHS, q.data(), q.size()); + // auto node = create(cgraph); + // auto rangePack = ZL_Compressor_registerStaticGraph_fromNode1o( + // cgraph, ZL_NODE_RANGE_PACK, ZL_GRAPH_STORE); + // // std::array out = { + // // ZL_GRAPH_STORE, ZL_GRAPH_STORE, ZL_GRAPH_STORE, quantize}; + // std::array out = { + // huff ? ZL_GRAPH_HUFFMAN : ZL_GRAPH_STORE, + // ZL_GRAPH_STORE, + // ZL_GRAPH_STORE, + // smallIntGraph(cgraph, ZL_GRAPH_STORE, rangePack) + // }; + // return ZL_Compressor_registerStaticGraph_fromNode( + // cgraph, node, out.data(), out.size()); + // } + + public: + static void registerDecoder(ZL_DCtx* dctx) + { + ZL_TypedDecoderDesc desc = { + .gd = gd(), + .transform_f = decode, + .name = "!zl_research.lz", + }; + ZL_REQUIRE_SUCCESS(ZL_DCtx_registerTypedDecoder(dctx, &desc)); + } + + // static char const* str(Mode mode) + // { + // switch (mode) { + // case Mode::kStore: + // return "store"; + // break; + // case Mode::kLz4: + // return "lz4"; + // break; + // case Mode::kLz4Huf: + // return "lz4-huf"; + // break; + // case Mode::kZstdFast: + // return "zstd-fast"; + // break; + // case Mode::kZstdSlow: + // return "zstd-slow"; + // break; + // }; + // } + + // static std::vector + // compress(uint8_t const* src, size_t srcSize, Mode mode, int level) + // { + // std::vector compressed(srcSize * 4); + // auto cgraph = ZL_Compressor_create(); + // ZL_GraphID graph; + // switch (mode) { + // case Mode::kStore: + // graph = storeGraph(cgraph); + // break; + // case Mode::kLz4: + // graph = lz4Graph(cgraph, false); + // break; + // case Mode::kLz4Huf: + // graph = lz4Graph(cgraph, true); + // break; + // case Mode::kZstdFast: + // graph = compressGraph(cgraph, true); + // break; + // case Mode::kZstdSlow: + // graph = compressGraph(cgraph, false); + // break; + // }; + // // auto graph = store ? storeGraph(cgraph) : lz4Graph(cgraph); + // ZL_REQUIRE_SUCCESS(ZL_Compressor_selectStartingGraphID(cgraph, + // graph)); ZL_REQUIRE_SUCCESS(ZL_Compressor_setParameter( + // cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION)); + // ZL_REQUIRE_SUCCESS(ZL_Compressor_setParameter( + // cgraph, ZL_CParam_compressedChecksum, + // ZL_TernaryParam_disable)); + // ZL_REQUIRE_SUCCESS(ZL_Compressor_setParameter( + // cgraph, ZL_CParam_contentChecksum, + // ZL_TernaryParam_disable)); + // ZL_REQUIRE_SUCCESS(ZL_Compressor_setParameter( + // cgraph, ZL_CParam_compressionLevel, level)); + // auto ret = ZL_compress_usingCompressor( + // compressed.data(), compressed.size(), src, srcSize, + // cgraph); + // ZL_REQUIRE_SUCCESS(ret); + // ZL_Compressor_free(cgraph); + // compressed.resize(ZL_validResult(ret)); + // return compressed; + // } + + // static void + // benchmark(uint8_t const* src, size_t srcSize, Mode mode, int level) + // { + // auto compressed = compress(src, srcSize, mode, level); + // std::vector decompressed(srcSize); + // ZL_DCtx* dctx = ZL_DCtx_create(); + // ZL_REQUIRE_SUCCESS( + // ZL_DCtx_setStreamArena(dctx, ZL_DataArenaType_stack)); + // registerCustomTransforms(dctx); + // auto start = std::chrono::steady_clock::now(); + // for (size_t i = 0; i < kIters; ++i) { + // ZL_REQUIRE_SUCCESS(ZL_DCtx_decompress( + // dctx, + // decompressed.data(), + // decompressed.size(), + // compressed.data(), + // compressed.size())); + // } + // auto stop = + // std::chrono::steady_clock::now(); std::chrono::nanoseconds + // duration = stop - start; double const mbps = (srcSize * kIters * + // 1000.0) / duration.count(); double const ratio = double(srcSize) + // / compressed.size(); ZL_REQUIRE(!memcmp(src, decompressed.data(), + // srcSize)); fprintf(stderr, + // "llbits = %zu, mlbits = %zu, index = %u, mode = %9s, + // level = %d, ratio = %.2f, MB/s = %.2f\n", kLLBits, + // kMLBits, unsigned(kIsIndex ? 1 : 0), str(mode), level, + // ratio, + // mbps); + // ZL_DCtx_free(dctx); + // } + + // static void write( + // char const* prefix, + // uint8_t const* src, + // size_t srcSize, + // Mode mode, + // int level) + // { + // auto name = fmt::format( + // "{}.{}.{}.{}.{}.{}.zs", + // prefix, + // str(mode), + // level, + // kIsIndex ? 1 : 0, + // kLLBits, + // kMLBits); + // auto compressed = compress(src, srcSize, mode, level); + // ZL_REQUIRE(folly::writeFile(compressed, name.c_str())); + // } +}; + +NodeID registerLz(Compressor& compressor, LzParameters params) +{ + return Transform::create(compressor.get(), params); +} + +void registerLz(DCtx& dctx) +{ + Transform::registerDecoder(dctx.get()); +} + +class StandaloneTransform : public Transform { + public: + StandaloneTransform() : Transform(nullptr) {} + + struct PtrSize { + std::unique_ptr ptr; + size_t size; + size_t width; + }; + + std::vector ptrs_; + std::string header_; + + private: + virtual void* reserveStream(size_t idx, size_t eltCapacity, size_t eltWidth) + { + ptrs_.resize(std::max(ptrs_.size(), idx + 1)); + ptrs_[idx] = PtrSize{ std::make_unique_for_overwrite( + eltCapacity * eltWidth), + 0, + eltWidth }; + return ptrs_[idx].ptr.get(); + } + + virtual ZL_Report commitStream(size_t idx, size_t eltCount) + { + assert(ptrs_[idx].size == 0); + ptrs_[idx].size = eltCount; + return ZL_returnSuccess(); + } + + virtual void writeHeader(poly::string_view header) + { + header_ = header; + } +}; + +/* static */ size_t Lz4Like::compressBound(size_t srcSize) +{ + return 2 * srcSize; +} + +/* static */ size_t Lz4Like::decompressedSize(poly::string_view src) +{ + if (src.size() < 4) { + throw std::runtime_error("bad 1"); + } + return ZL_readLE32(src.data()); +} + +static constexpr bool kEncodeExtraLens = true; + +/* static */ size_t Lz4Like::compress( + poly::span dst, + poly::string_view src) +{ + auto dstCapacity = dst.size(); + if (dst.size() < 4) { + throw std::runtime_error("bad 2"); + } + ZL_writeLE32(dst.data(), src.size()); + dst = dst.subspan(4); + + StandaloneTransform tr; + if (ZL_isError(tr.encode(src, 1, 0))) { + throw std::runtime_error("encoding failed"); + } + + if (dst.size() < 1 || tr.header_.size() < 1) { + throw std::runtime_error("bad 3"); + } + dst[0] = tr.header_[0]; + dst = dst.subspan(1); + + auto writeStream = [&dst](const auto& stream) { + if (dst.size() < 4 + stream.size * stream.width) { + throw std::runtime_error("bad 4"); + } + ZL_writeLE32(dst.data(), stream.size); + memcpy(dst.data() + 4, stream.ptr.get(), stream.size * stream.width); + dst = dst.subspan(4 + stream.size * stream.width); + }; + + if (tr.ptrs_.size() != 4) { + throw std::runtime_error("error 2949"); + } + + if (kEncodeExtraLens) { + auto extraLens = std::move(tr.ptrs_.back()); + tr.ptrs_.pop_back(); + + StandaloneTransform::PtrSize largeExtraLens; + largeExtraLens.ptr = std::make_unique_for_overwrite( + extraLens.size * sizeof(length_t)); + + StandaloneTransform::PtrSize smallExtraLens; + smallExtraLens.ptr = + std::make_unique_for_overwrite(extraLens.size); + + auto numLarge = SmallInt::encode( + smallExtraLens.ptr.get(), + (uint16_t*)largeExtraLens.ptr.get(), + (const length_t*)extraLens.ptr.get(), + extraLens.size); + + smallExtraLens.size = extraLens.size; + smallExtraLens.width = 1; + + largeExtraLens.size = numLarge; + largeExtraLens.width = sizeof(length_t); + + tr.ptrs_.push_back(std::move(smallExtraLens)); + tr.ptrs_.push_back(std::move(largeExtraLens)); + } + + for (const auto& stream : tr.ptrs_) { + writeStream(stream); + } + + return dstCapacity - dst.size(); +} + +/* static */ size_t Lz4Like::decompress( + poly::span dst, + poly::string_view src) +{ + auto length = decompressedSize(src); + if (dst.size() < length) { + throw std::runtime_error("bad 5"); + } + src = src.substr(4); + if (src.empty()) { + throw std::runtime_error("bad 6"); + } + const auto llBits = src[0] & 0xF; + src = src.substr(1); + + struct Stream { + const char* ptr; + size_t size; + }; + + auto readStream = [&src](size_t width) { + if (src.size() < 4) { + throw std::runtime_error("bad 7"); + } + auto size = ZL_readLE32(src.data()); + src = src.substr(4); + if (src.size() < width * size) { + throw std::runtime_error("bad 8"); + } + auto ptr = src.data(); + src = src.substr(width * size); + return Stream{ ptr, size }; + }; + + auto lits = readStream(1); + auto tokens = readStream(1); + auto offsets = readStream(sizeof(offset_t)); + + Stream extraLens; + std::unique_ptr extraLensBuffer; + if constexpr (!kEncodeExtraLens) { + extraLens = readStream(sizeof(length_t)); + } else { + auto smallExtraLens = readStream(1); + auto largeExtraLens = readStream(sizeof(length_t)); + + extraLensBuffer = + std::make_unique_for_overwrite(smallExtraLens.size); + SmallInt::decode( + extraLensBuffer.get(), + (const uint8_t*)smallExtraLens.ptr, + smallExtraLens.size, + (const length_t*)largeExtraLens.ptr, + largeExtraLens.size); + + extraLens = Stream{ (const char*)extraLensBuffer.get(), + smallExtraLens.size }; + } + + auto report = StandaloneTransform::decode( + nullptr, + (const uint8_t*)lits.ptr, + lits.size, + (const uint8_t*)tokens.ptr, + (const offset_t*)offsets.ptr, + tokens.size, + (const length_t*)extraLens.ptr, + extraLens.size, + (uint8_t*)dst.data(), + dst.size(), + llBits); + if (ZL_isError(report) || ZL_validResult(report) != length) { + throw std::runtime_error("bad 9"); + } + return length; +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/Lz.hpp b/contrib/lz-research/codecs/Lz.hpp new file mode 100644 index 000000000..7f714e3f6 --- /dev/null +++ b/contrib/lz-research/codecs/Lz.hpp @@ -0,0 +1,27 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace openzl::lz { + +struct Lz4Like { + static size_t compressBound(size_t srcSize); + static size_t decompressedSize(poly::string_view src); + static size_t compress(poly::span dst, poly::string_view src); + static size_t decompress(poly::span dst, poly::string_view src); +}; + +struct LzParameters { + int llBits{ 3 }; +}; + +NodeID registerLz(Compressor& compressor, LzParameters params); + +void registerLz(DCtx& dctx); + +using offset_t = uint16_t; +using length_t = uint16_t; + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/SmallInt.cpp b/contrib/lz-research/codecs/SmallInt.cpp new file mode 100644 index 000000000..b53c5392f --- /dev/null +++ b/contrib/lz-research/codecs/SmallInt.cpp @@ -0,0 +1,246 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "SmallInt.hpp" +#include "CodecIDs.hpp" + +#include "openzl/common/assertion.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" +#include "openzl/shared/simd_wrapper.h" + +#if ZL_ARCH_X86_64 +# include +#endif + +namespace openzl::lz { +namespace { +SimpleCodecDescription smallIntCodecDescription() +{ + return SimpleCodecDescription{ + .id = unsigned(CustomCodecIDs::SmallInt), + .name = "!lz_research.small_int", + .inputType = Type::Numeric, + .outputTypes = { Type::Serial, Type::Numeric }, + }; +} +} // namespace + +SimpleCodecDescription SmallIntEncoder::simpleCodecDescription() const +{ + return smallIntCodecDescription(); +} + +template +size_t encodeImpl( + uint8_t* __restrict smallOut, + Int* __restrict largeOut, + Int const* __restrict in, + size_t nbElts) +{ + size_t nbLarge = 0; + + const size_t kUnroll = 16 / sizeof(*in); + + const size_t prefix = nbElts % kUnroll; + for (size_t i = 0; i < prefix; ++i) { + if (ZL_LIKELY(in[i] < 255)) { + smallOut[i] = in[i]; + } else { + smallOut[i] = 255; + largeOut[nbLarge++] = in[i] - 255; + } + } + + // TODO: This could be fully vectorized + for (size_t i = prefix; i < nbElts; i += kUnroll) { +#if ZL_ARCH_X86_64 + if (sizeof(*in) == 2) { + __m128i const v = _mm_loadu_si128((__m128i const*)(in + i)); + __m128i const clamped = _mm_min_epu16(v, _mm_set1_epi16(254)); + __m128i const c = _mm_cmpeq_epi16(clamped, v); + if (_mm_movemask_epi8(c) == 0xffff) { + __m128i const p = _mm_packus_epi16(v, v); + _mm_storel_epi64((__m128i*)(smallOut + i), p); + continue; + } + } +#endif + + for (size_t u = 0; u < kUnroll; ++u) { + if (ZL_LIKELY(in[i + u] < 255)) { + smallOut[i + u] = in[i + u]; + } else { + smallOut[i + u] = 255; + largeOut[nbLarge++] = in[i + u] - 255; + } + } + } + return nbLarge; +} + +void SmallIntEncoder::encode(EncoderState& encoder) const +{ + auto& input = encoder.inputs()[0]; + auto const nbElts = input.numElts(); + auto const eltWidth = input.eltWidth(); + auto smallStream = encoder.createOutput(0, nbElts, 1); + auto largeStream = encoder.createOutput(1, nbElts, eltWidth); + + uint8_t* const smallOut = (uint8_t*)smallStream.ptr(); + + size_t nbLarge; + void* largePtr = largeStream.ptr(); + void const* inPtr = input.ptr(); + switch (eltWidth) { + case 1: + memcpy(smallOut, inPtr, nbElts); + nbLarge = 0; + break; + case 2: + nbLarge = encodeImpl( + smallOut, + (uint16_t*)largePtr, + (uint16_t const*)inPtr, + nbElts); + break; + case 4: + nbLarge = encodeImpl( + smallOut, + (uint32_t*)largePtr, + (uint32_t const*)inPtr, + nbElts); + break; + case 8: + nbLarge = encodeImpl( + smallOut, + (uint64_t*)largePtr, + (uint64_t const*)inPtr, + nbElts); + break; + }; + + smallStream.commit(nbElts); + largeStream.commit(nbLarge); +} + +SimpleCodecDescription SmallIntDecoder::simpleCodecDescription() const +{ + return smallIntCodecDescription(); +} + +template +void decodeImpl( + Int* __restrict out, + uint8_t const* __restrict smallIn, + size_t nbElts, + Int const* __restrict largeIn, + size_t nbLarge) +{ + size_t const nbLargeNeeded = std::count_if( + smallIn, smallIn + nbElts, [](uint8_t val) { return val == 255; }); + if (nbLarge != nbLargeNeeded) { + throw std::runtime_error("nbLarge != nbLargeNeeded"); + } + + size_t const prefix = nbElts & 15; + + size_t largeIdx = 0; + for (size_t i = 0; i < prefix; ++i) { + if (ZL_LIKELY(smallIn[i] != 255)) { + out[i] = smallIn[i]; + } else { + out[i] = 255 + largeIn[largeIdx++]; + } + } + + const ZL_Vec128 v255 = ZL_Vec128_set8(255); + + // TODO: This could be fully vectorized + ZL_ASSERT_EQ((nbElts - prefix) % 16, 0); + for (size_t i = prefix; i < nbElts; i += 16) { + const int anyLarge = ZL_Vec128_mask8( + ZL_Vec128_cmp8(ZL_Vec128_read(smallIn + i), v255)); + if (ZL_LIKELY(anyLarge == 0)) { + for (size_t j = 0; j < 16; ++j) { + out[i + j] = smallIn[i + j]; + } + } else { + for (size_t j = 0; j < 16; ++j) { + if (smallIn[i + j] != 255) { + out[i + j] = smallIn[i + j]; + } else { + out[i + j] = 255 + largeIn[largeIdx++]; + } + } + } + } +} + +void SmallIntDecoder::decode(DecoderState& decoder) const +{ + auto& smallStream = decoder.singletonInputs()[0]; + auto& largeStream = decoder.singletonInputs()[1]; + + size_t const nbElts = smallStream.numElts(); + size_t const eltWidth = largeStream.eltWidth(); + size_t const nbLarge = largeStream.numElts(); + + auto outStream = decoder.createOutput(0, nbElts, eltWidth); + + uint8_t const* const smallIn = (uint8_t const*)smallStream.ptr(); + + void* const outPtr = outStream.ptr(); + void const* const largePtr = largeStream.ptr(); + switch (eltWidth) { + case 1: + if (nbLarge != 0) { + throw std::runtime_error("nbLarge != 0"); + } + memcpy(outPtr, smallIn, nbElts); + break; + case 2: + decodeImpl( + (uint16_t*)outPtr, + smallIn, + nbElts, + (uint16_t const*)largePtr, + nbLarge); + break; + case 4: + decodeImpl( + (uint32_t*)outPtr, + smallIn, + nbElts, + (uint32_t const*)largePtr, + nbLarge); + break; + case 8: + decodeImpl( + (uint64_t*)outPtr, + smallIn, + nbElts, + (uint64_t const*)largePtr, + nbLarge); + break; + } + + outStream.commit(nbElts); +} + +size_t +SmallInt::encode(uint8_t* small, uint16_t* large, const uint16_t* src, size_t n) +{ + return encodeImpl(small, large, src, n); +} + +void SmallInt::decode( + uint16_t* dst, + const uint8_t* small, + size_t numSmall, + const uint16_t* large, + size_t numLarge) +{ + decodeImpl(dst, small, numSmall, large, numLarge); +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/SmallInt.hpp b/contrib/lz-research/codecs/SmallInt.hpp new file mode 100644 index 000000000..a8f1ccf1e --- /dev/null +++ b/contrib/lz-research/codecs/SmallInt.hpp @@ -0,0 +1,38 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace openzl::lz { + +struct SmallInt { + static size_t + encode(uint8_t* small, uint16_t* large, const uint16_t* src, size_t n); + static void decode( + uint16_t* dst, + const uint8_t* small, + size_t numSmall, + const uint16_t* large, + size_t numLarge); +}; + +class SmallIntEncoder : public CustomEncoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void encode(EncoderState& encoder) const override; + + ~SmallIntEncoder() override = default; +}; + +class SmallIntDecoder : public CustomDecoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void decode(DecoderState& decoder) const override; + + ~SmallIntDecoder() override = default; +}; + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/VarByte.cpp b/contrib/lz-research/codecs/VarByte.cpp new file mode 100644 index 000000000..53875786c --- /dev/null +++ b/contrib/lz-research/codecs/VarByte.cpp @@ -0,0 +1,727 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "VarByte.hpp" +#include "CodecIDs.hpp" +#include "utils/Portability.hpp" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" + +#if ZL_ARCH_X86_64 +# include +#endif +#ifdef __ARM_FEATURE_SVE +# include +#endif /* __ARM_FEATURE_SVE */ +#ifdef __aarch64__ +# include +#endif /* __aarch64__ */ + +namespace openzl::lz { +namespace { +SimpleCodecDescription varByteCodecDescription() +{ + return SimpleCodecDescription{ + .id = unsigned(CustomCodecIDs::VarByte), + .name = "!lz_research.var_byte", + .inputType = Type::Numeric, + .outputTypes = { Type::Serial, Type::Serial }, + }; +} + +// using LUT = std::array, 256>; +// using LUTx2 = std::pair; + +// using DualLUT = std::array; + +// using LUT = std::span; +// using MutLUT = std::span; + +// std::pair getLUTs(DualLUT const& lut) { +// return std::pair{LUT{lut.data() + 2, 4 * 256}, LUT{lut.data(), 4 * 256}}; +// } + +// std::pair getLUTs(DualLUT& lut) { +// return std::pair{ +// MutLUT{lut.data() + 2, 4 * 256}, MutLUT{lut.data(), 4 * 256}}; +// } + +#if ZL_ARCH_X86_64 + +class alignas(16) DualLUT { + public: + constexpr explicit DualLUT( + std::array, 256> const& lo) + { + for (size_t i = 0; i < lo.size(); ++i) { + for (size_t j = 0; j < lo[i].size(); ++j) { + for (size_t k = 0; k < 4; ++k) { + data_[16 * i + 4 * j + k] = lo[i][j] >> (8 * k); + } + } + } + } + + constexpr explicit DualLUT( + std::array, 256> const& lo) + { + for (size_t i = 0; i < lo.size(); ++i) { + for (size_t j = 0; j < lo[i].size(); ++j) { + data_[16 * i + j] = lo[i][j]; + } + } + } + + __m128i at(size_t loIdx, size_t hiIdx) const + { + auto lo = loAt(loIdx); + auto hi = hiAt(hiIdx); + return _mm_add_epi8(lo, hi); + } + + __m128i loAt(size_t idx) const + { + assert(idx < 256); + return load(16 * idx); + } + + __m128i hiAt(size_t idx) const + { + assert(idx < 256); + // auto const mask = _mm_set_epi64x(-1, 0); + // return _mm_and_si128(load(16 * idx), mask); + return _mm_bslli_si128(loAt(idx), 8); + } + + private: + __m128i load(size_t idx) const + { + return _mm_load_si128((__m128i const*)&data_[idx]); + } + + std::array data_; +}; +#endif + +template < + uint32_t B0, + uint32_t B1, + uint32_t B2, + uint32_t B3, + uint32_t B4, + uint32_t B5, + uint32_t B6, + uint32_t B7, + uint32_t B8, + uint32_t B9, + uint32_t B10, + uint32_t B11, + uint32_t B12, + uint32_t B13, + uint32_t B14, + uint32_t B15> +class VarByteCoder { + public: + constexpr VarByteCoder() {} + +#if ZL_ARCH_X86_64 + static void print32(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + static void print16(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + static void print8(char const* name, __m128i vec) + { + std::array array; + _mm_storeu_si128((__m128i_u*)array.data(), vec); + fprintf(stderr, "%s: ", name); + for (auto const& val : array) { + fprintf(stderr, "0x%x\t", val); + } + fprintf(stderr, "\n"); + } + + __m128i decode4( + uint8_t control0, + uint8_t control1, + __m128i data, + size_t& bitsConsumed) const + { + auto const [shuffle, shift] = + getShuffleAndShift(control0, control1, bitsConsumed); + auto const mask = getMask(control0, control1); + auto const base = getBase(control0, control1); + auto const shuffled = _mm_shuffle_epi8(data, shuffle); + auto const shifted = _mm_srlv_epi32(shuffled, shift); + auto const masked = _mm_and_si128(shifted, mask); + auto const based = _mm_add_epi32(masked, base); + // static size_t idx = 0; + // if (idx++ < 2) { + // fprintf( + // stderr, + // "consumed = %zu | control0 = 0x%x | control1 = 0x%x\n", + // bitsConsumed, + // control0, + // control1); + // print8("shuffleLO", shuffleShiftLUT_.loAt(control0)); + // print8("shuffleHI", shuffleShiftLUT_.hiAt(control1)); + // print8("shuffle", shuffle); + // print32("shift", shift); + // print32("mask", mask); + // print32("shuffled", shuffled); + // print32("shifted", shifted); + // print32("masked", masked); + // fprintf(stderr, "bitsConsumed0 = %u\n", + // bitsConsumedLUT_[control0]); fprintf(stderr, "bitsConsumed1 = + // %u\n", bitsConsumedLUT_[control1]); + // } + bitsConsumed += bitsConsumedLUT_[control0]; + bitsConsumed += bitsConsumedLUT_[control1]; + return based; + } +#endif + + uint32_t decode1(uint8_t control, uint32_t data, size_t& bitsConsumed) const + { + assert(control < 16); + auto const bits = bits_[control]; + auto const value = (data >> (bitsConsumed % 8)) & ((1u << bits) - 1); + bitsConsumed += bits; + return baseLUT_[control] + value; + } + + void decode8xU16( + uint16_t* out, + const uint8_t* control, + const uint8_t* bytes, + size_t& bitsConsumed) const + { + for (size_t i = 0; i < 2; ++i) { + const size_t bytesOffset = bitsConsumed / 8; + const size_t bitsOffset = bitsConsumed % 8; + + uint64_t data = ZL_readLE64(bytes + bytesOffset) >> bitsOffset; + + const uint8_t c0 = control[2 * i + 0]; + const uint8_t c1 = control[2 * i + 1]; + const uint64_t mask = uint64_t(mask2xLUTU16_[c0]) + | (uint64_t(mask2xLUTU16_[c1]) << 32); + const uint64_t base = uint64_t(base2xLUTU16_[c0]) + | (uint64_t(base2xLUTU16_[c1]) << 32); + + const int bitsNeeded = __builtin_popcountll(mask); + if (ZL_LIKELY(bitsNeeded <= 56) || bitsOffset == 0) { + ZL_writeLE64(out + 4 * i, base + utils::bitDeposit(data, mask)); + } else { + data |= uint64_t(bytes[bytesOffset + 8]) << (64 - bitsOffset); + ZL_writeLE64(out + 4 * i, base + utils::bitDeposit(data, mask)); + } + bitsConsumed += bitsNeeded; + } + } + + template + void decode( + std::span out, + std::span control, + std::span bytes) const + { + // fprintf( + // stderr, + // "nbElts = %zu, control = %zu, bytes = %zu\n", + // out.size(), + // control.size(), + // bytes.size()); + static_assert(sizeof(UInt) > 1); + static_assert(sizeof(UInt) <= 4); + assert((out.size() + 1) / 2 == control.size()); + size_t bitsConsumed = 0; + size_t outIdx = 0; + size_t constexpr kLimit = 16 + (sizeof(UInt) == 2 ? 8 : 16); + if (bytes.size() >= kLimit) { + size_t const bitsLimit = 8 * (bytes.size() - kLimit); + size_t const outLimit = out.size() - 8; + while (bitsConsumed < bitsLimit && outIdx < outLimit) { + size_t const controlIdx = outIdx / 2; + // fprintf( + // stderr, + // "bitsConsumed = %zu | limit = %zu | outIdx = %zu | + // ctrlIdx = %zu\n", bitsConsumed, bitsLimit, outIdx, + // controlIdx); + if constexpr (1 && sizeof(UInt) == 2) { + decode8xU16( + &out[outIdx], + control.data() + controlIdx, + bytes.data(), + bitsConsumed); + } else { +#if ZL_ARCH_X86_64 + auto outVec0 = decode4( + control[controlIdx + 0], + control[controlIdx + 1], + _mm_loadu_si128( + (__m128i_u const*)&bytes[bitsConsumed / 8]), + bitsConsumed); + auto outVec1 = decode4( + control[controlIdx + 2], + control[controlIdx + 3], + _mm_loadu_si128( + (__m128i_u const*)&bytes[bitsConsumed / 8]), + bitsConsumed); + if constexpr (sizeof(UInt) == 4) { + _mm_storeu_si128((__m128i_u*)&out[outIdx + 0], outVec0); + _mm_storeu_si128((__m128i_u*)&out[outIdx + 4], outVec1); + } else { + auto const outVec = _mm_packus_epi32(outVec0, outVec1); + _mm_storeu_si128((__m128i_u*)&out[outIdx], outVec); + } +#else + for (size_t i = 0; i < 8; ++i) { + uint8_t const ctrl = + (control[outIdx / 2] >> (i % 2 == 0 ? 0 : 4)) + % 16; + out[outIdx + i] = decode1( + ctrl, + safeRead(bytes.subspan(bitsConsumed / 8)), + bitsConsumed); + } +#endif + } + outIdx += 8; + } + } + for (; outIdx < out.size(); ++outIdx) { + uint8_t const ctrl = + (control[outIdx / 2] >> (outIdx % 2 == 0 ? 0 : 4)) % 16; + out[outIdx] = + decode1(ctrl, + safeRead(bytes.subspan(bitsConsumed / 8)), + bitsConsumed); + } + ZL_REQUIRE_EQ((bitsConsumed + 7) / 8, bytes.size()); + } + + template + size_t encode( + std::span control, + std::span bytes, + std::span data) const + { + assert(control.size() == (data.size() + 1) / 2); + assert(bytes.size() >= data.size() * sizeof(UInt)); + static_assert(sizeof(UInt) <= 4); + auto const clzLUT = makeClzLUT(); + auto const clzShiftedLut = shift4(makeClzLUT()); + auto const baseLUT = toClzLUT(clzLUT, baseLUT_); + auto const bitsLUT = toClzLUT(clzLUT, bits_); + + // static bool printed = false; + // if (!printed) { + // for (size_t i = 0; i < 16; ++i) { + // fprintf(stderr, "base[%zu] = %u\n", i, baseLUT_[i]); + // } + // printed = true; + // } + + ZS_BitCStreamFF bytesStream = + ZS_BitCStreamFF_init(bytes.data(), bytes.size()); + + // size_t idx = 0; + const size_t kUnroll = 6; + const size_t limit = data.size() - data.size() % kUnroll; + + size_t i = 0; + size_t controlIdx = 0; + + for (; i < limit; i += kUnroll) { + const auto values = data.subspan(i, kUnroll); + std::array clz; + for (size_t j = 0; j < kUnroll; ++j) { + ZL_ASSERT_LT(values[j], (1u << 24)); + clz[j] = __builtin_clz(uint32_t(values[j])); + } + for (size_t j = 0; j < kUnroll; j += 2) { + control[controlIdx++] = + clzLUT[clz[j]] | clzShiftedLut[clz[j + 1]]; + } + for (size_t j = 0; j < kUnroll; j += 3) { + for (size_t k = 0; k < 3; ++k) { + const auto val = values[j + k]; + const auto base = baseLUT[clz[j + k]]; + const auto bits = bitsLUT[clz[j + k]]; + ZS_BitCStreamFF_write(&bytesStream, val - base, bits); + } + ZS_BitCStreamFF_flush(&bytesStream); + } + } + + ZS_BitCStreamFF controlStream = ZS_BitCStreamFF_init( + control.data() + controlIdx, control.size() - controlIdx); + + for (; i < data.size(); ++i) { + const auto val = data[i]; + ZL_ASSERT_LT(val, (1u << 24)); + auto const ctrl = clzLUT[__builtin_clz(uint32_t(val))]; + assert(ctrl < 16); + auto const bits = bits_[ctrl]; + assert(bits <= 32); + ZS_BitCStreamFF_write(&controlStream, ctrl, 4); + ZS_BitCStreamFF_write(&bytesStream, val - baseLUT_[ctrl], bits); + ZS_BitCStreamFF_flush(&controlStream); + ZS_BitCStreamFF_flush(&bytesStream); + } + + // shuffle needs bits for adding + // shuffle + shift + // mask + + auto const controlResult = ZS_BitCStreamFF_finish(&controlStream); + auto const bytesResult = ZS_BitCStreamFF_finish(&bytesStream); + ZL_REQUIRE_SUCCESS(controlResult); + ZL_REQUIRE_SUCCESS(bytesResult); + assert(controlIdx + ZL_validResult(controlResult) == control.size()); + assert(ZL_validResult(bytesResult) <= bytes.size()); + + // std::vector out; + // out.resize(data.size()); + // decode(std::span{ out }, + // control, + // bytes.subspan(0, ZL_validResult(bytesResult))); + // for (size_t i = 0; i < data.size(); ++i) { + // ZL_REQUIRE_EQ(data[i], out[i], "error at idx %zu", i); + // } + + return ZL_validResult(bytesResult); + } + + private: +#if ZL_ARCH_X86_64 + std::pair<__m128i, __m128i> getShuffleAndShift( + uint8_t control0, + uint8_t control1, + size_t bitsConsumed) const + { + auto const entry = shuffleShiftLUT_.at(control0, control1); + auto const shuffleShift = + _mm_add_epi8(entry, _mm_set1_epi8(bitsConsumed % 8)); + auto const shuffle = _mm_and_si128( + _mm_srli_epi16(shuffleShift, 3), _mm_set1_epi8(0xF)); + auto const shift = _mm_and_si128(shuffleShift, _mm_set1_epi32(0x7)); + return { shuffle, shift }; + } + + __m128i getMask(uint8_t control0, uint8_t control1) const + { + return _mm_set_epi64x(maskLUT_[control1], maskLUT_[control0]); + } + + __m128i getBase(uint8_t control0, uint8_t control1) const + { + return _mm_set_epi64x(base2xLUT_[control1], base2xLUT_[control0]); + } +#endif + + constexpr std::array makeClzLUT() const + { + std::array clzLUT{}; + for (size_t clz = 1; clz < clzLUT.size(); ++clz) { + size_t const numBits = 32 - clz; + size_t const maxVal = (1u << numBits) - 1; + for (size_t i = 0; i < bits_.size(); ++i) { +#ifndef NDEBUG + auto const exclusiveEnd = baseLUT_[i] + (1u << bits_[i]); + assert((exclusiveEnd & (exclusiveEnd - 1)) == 0); +#endif + if (maxVal < baseLUT_[i] + (1u << bits_[i])) { + clzLUT[clz] = i; + break; + } + } + } + return clzLUT; + } + + template + constexpr std::array toClzLUT( + const std::array& clzLUT, + const std::array& lut) const + { + std::array outLUT; + for (size_t i = 0; i < 32; ++i) { + outLUT[i] = lut[clzLUT[i]]; + } + return outLUT; + } + + constexpr std::array shift4(std::array lut) const + { + for (size_t i = 0; i < lut.size(); ++i) { + lut[i] <<= 4; + } + return lut; + } + + static uint32_t safeRead(std::span bytes) + { + uint32_t value = 0; + size_t const toRead = std::min(bytes.size(), 4); + for (size_t i = 0; i < toRead; ++i) { + value |= bytes[i] << (8 * i); + } + return value; + } + + static constexpr std::array makeBitsConsumedLUT() + { + std::array constexpr kBits = { B0, B1, B2, B3, B4, B5, + B6, B7, B8, B9, B10, B11, + B12, B13, B14, B15 }; + std::array lut; + for (int byte = 0; byte < 256; ++byte) { + uint32_t const bits0 = kBits[byte & 0xF]; + uint32_t const bits1 = kBits[byte >> 4]; + lut[byte] = (bits0 + bits1); + } + + return lut; + } + +#if ZL_ARCH_X86_64 + static constexpr DualLUT makeShuffleShiftLUT() + { + std::array constexpr kBits = { B0, B1, B2, B3, B4, B5, + B6, B7, B8, B9, B10, B11, + B12, B13, B14, B15 }; + std::array, 256> lo; + for (int byte = 0; byte < 256; ++byte) { + uint32_t const bits0 = kBits[byte & 0xF]; + uint32_t const bits1 = kBits[byte >> 4]; + uint32_t const bitsTotal = bits0 + bits1; + + auto fillU32 = [&lo, byte](size_t idx, size_t bitOffset, bool add) { + for (size_t i = 0; i < 4; ++i) { + lo[byte][4 * idx + i] = bitOffset + (add ? 8 * i : 0); + } + }; + + fillU32(0, 0, true); + fillU32(1, bits0, true); + fillU32(2, bitsTotal, false); + fillU32(3, bitsTotal, false); + } + return DualLUT{ lo }; + } + + constexpr static DualLUT makeShiftMaskLUT() + { + std::array constexpr kBits = { + B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15 + }; + std::array, 256> lo; + for (int byte = 0; byte < 256; ++byte) { + uint32_t const bits0 = kBits[byte & 0xF]; + uint32_t const bits1 = kBits[byte >> 4]; + uint32_t const bitsTotal = bits0 + bits1; + + auto const toEntry = [](uint32_t bitOffset, uint32_t mask) { + assert((mask >> 24) == 0); + assert(bitOffset < 128); + return bitOffset | (mask << 8); + }; + + lo[byte][0] = toEntry(0, (1u << bits0) - 1); + lo[byte][1] = toEntry(bits0, (1u << bits1) - 1); + lo[byte][2] = toEntry(bitsTotal, 0); + lo[byte][3] = toEntry(bitsTotal, 0); + } + return DualLUT{ lo }; + } +#endif + + constexpr static std::array expandLUT( + std::array const& lut) + { + std::array expanded; + for (int byte = 0; byte < 256; ++byte) { + uint64_t const val0 = lut[byte & 0xF]; + uint64_t const val1 = lut[byte >> 4]; + + expanded[byte] = val0 | (val1 << 32); + } + return expanded; + } + + constexpr static std::array expandLUTU16( + std::array const& lut) + { + std::array expanded; + for (int byte = 0; byte < 256; ++byte) { + uint64_t const val0 = lut[byte & 0xF]; + uint64_t const val1 = lut[byte >> 4]; + + expanded[byte] = (val0 & 0xFFFF) | (val1 << 16); + } + return expanded; + } + + constexpr static std::array makeMaskLUT() + { + std::array constexpr kBits = { + B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15 + }; + std::array lut; + for (int nibble = 0; nibble < 16; ++nibble) { + uint32_t const bits = kBits[nibble]; + lut[nibble] = (1u << bits) - 1; + } + return lut; + } + + constexpr static std::array makeBaseLUT() + { + std::array lut; + lut[0] = 0; + for (int nibble = 1; nibble < 16; ++nibble) { + lut[nibble] = lut[nibble - 1] + (1u << bits_[nibble - 1]); + if (lut[nibble] != (1u << bits_[nibble])) { + lut[nibble] = 0; + } + } + return lut; + } + +#if ZL_ARCH_X86_64 + static constexpr DualLUT shuffleShiftLUT_{ makeShuffleShiftLUT() }; +#endif + static constexpr std::array base2xLUT_{ expandLUT( + makeBaseLUT()) }; + static constexpr std::array maskLUT_{ expandLUT( + makeMaskLUT()) }; + static constexpr std::array const bitsConsumedLUT_{ + makeBitsConsumedLUT() + }; + static constexpr std::array baseLUT_{ makeBaseLUT() }; + static constexpr std::array bits_{ B0, B1, B2, B3, B4, B5, + B6, B7, B8, B9, B10, B11, + B12, B13, B14, B15 }; + + static constexpr std::array base2xLUTU16_{ expandLUTU16( + makeBaseLUT()) }; + static constexpr std::array mask2xLUTU16_{ expandLUTU16( + makeMaskLUT()) }; +}; + +using VarByteCoder16 = + VarByteCoder<1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>; +using VarByteCoder32 = + VarByteCoder<5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22, 24>; + +} // namespace + +SimpleCodecDescription VarByteEncoder::simpleCodecDescription() const +{ + return varByteCodecDescription(); +} + +void VarByteEncoder::encode(EncoderState& encoder) const +{ + auto& inputStream = encoder.inputs()[0]; + auto const nbElts = inputStream.numElts(); + auto const eltWidth = inputStream.eltWidth(); + size_t const controlSize = (nbElts + 1) / 2; + size_t const packedCapacity = nbElts * eltWidth; + auto controlStream = encoder.createOutput(0, controlSize, 1); + auto packedStream = encoder.createOutput(1, packedCapacity, 1); + if (eltWidth <= 1 || eltWidth > 4) { + throw std::runtime_error("eltWidth must be in [2, 4]"); + } + + uint8_t* const control = (uint8_t*)controlStream.ptr(); + uint8_t* const packed = (uint8_t*)packedStream.ptr(); + void const* const input = inputStream.ptr(); + + size_t packedSize; + if (eltWidth == 2) { + packedSize = VarByteCoder16().encode( + std::span{ control, controlSize }, + std::span{ packed, packedCapacity }, + std::span{ (uint16_t const*)input, nbElts }); + } else { + assert(eltWidth == 4); + packedSize = VarByteCoder32().encode( + std::span{ control, controlSize }, + std::span{ packed, packedCapacity }, + std::span{ (uint32_t const*)input, nbElts }); + } + + uint8_t unfilledElts = nbElts % 2; + uint8_t header[2] = { unfilledElts, (uint8_t)eltWidth }; + encoder.sendCodecHeader(header, sizeof(header)); + + controlStream.commit(controlSize); + packedStream.commit(packedSize); +} + +SimpleCodecDescription VarByteDecoder::simpleCodecDescription() const +{ + return varByteCodecDescription(); +} + +void VarByteDecoder::decode(DecoderState& decoder) const +{ + auto& controlStream = decoder.singletonInputs()[0]; + auto& packedStream = decoder.singletonInputs()[1]; + + auto const controlSize = controlStream.numElts(); + auto const packedSize = packedStream.numElts(); + + auto header = decoder.getCodecHeader(); + if (header.size() != 2) { + throw std::runtime_error("header size must be 2"); + } + + size_t const nbElts = 2 * controlSize - header[0]; + size_t const eltWidth = header[1]; + + auto outStream = decoder.createOutput(0, nbElts, eltWidth); + + uint8_t const* control = (uint8_t const*)controlStream.ptr(); + uint8_t const* packed = (uint8_t const*)packedStream.ptr(); + void* out = outStream.ptr(); + + if (eltWidth == 2) { + VarByteCoder16().decode( + std::span{ (uint16_t*)out, nbElts }, + std::span{ control, controlSize }, + std::span{ packed, packedSize }); + } else { + assert(eltWidth == 4); + VarByteCoder32().decode( + std::span{ (uint32_t*)out, nbElts }, + std::span{ control, controlSize }, + std::span{ packed, packedSize }); + } + + outStream.commit(nbElts); +} + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/VarByte.hpp b/contrib/lz-research/codecs/VarByte.hpp new file mode 100644 index 000000000..aa42133a4 --- /dev/null +++ b/contrib/lz-research/codecs/VarByte.hpp @@ -0,0 +1,27 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace openzl::lz { + +class VarByteEncoder : public CustomEncoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void encode(EncoderState& encoder) const override; + + ~VarByteEncoder() override = default; +}; + +class VarByteDecoder : public CustomDecoder { + public: + SimpleCodecDescription simpleCodecDescription() const override; + + void decode(DecoderState& decoder) const override; + + ~VarByteDecoder() override = default; +}; + +} // namespace openzl::lz diff --git a/contrib/lz-research/codecs/utils/Partition.hpp b/contrib/lz-research/codecs/utils/Partition.hpp new file mode 100644 index 000000000..878c44ea9 --- /dev/null +++ b/contrib/lz-research/codecs/utils/Partition.hpp @@ -0,0 +1,172 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +namespace openzl::lz::utils { + +/** + * Compute the optimal partition of data to minimize costFn. + * + * This algorithm is O(histogram.size()^2) in the worst case, and uses + * O(histogram.size()) memory. + * + * @returns The beginning of each partition. The last partition implicitly + * ends at data.size(). The first partition will start at 0. + */ +template +std::vector partition(poly::span histogram, CostFn&& costFn) +{ + const size_t N = histogram.size(); + const size_t N1 = N + 1; + // opt[e] = The optimal cost to partion [1, e) + std::vector opt(N1, 0); + // begin[e] = map from bucket end index to the optimal begin index + std::vector begin(N1, 0); + // numBuckets[e] = number of buckets in the optimal partion of [0, e) + // NOTE: This does not include a bucket for the remaining indices [e, N). + std::vector numBuckets(N1, 0); + + // NOTE: opt[0] = 0 + // NOTE: numBuckets[0] = 0 + for (size_t e = 1; e < N1; ++e) { + for (size_t b = 0; b < e; ++b) { + const float endCost = costFn(histogram.subspan(b, e - b)); + const float cost = opt[b] + endCost; + if (b == 0 || cost < opt[e]) { + opt[e] = cost; + begin[e] = b; + } + } + numBuckets[e] = numBuckets[begin[e]] + 1; + } + + std::vector partitions(numBuckets[N]); + for (size_t e = N, pos = partitions.size(); e > 0; e = begin[e]) { + partitions[--pos] = begin[e]; + } + return partitions; +} + +/** + * Optimally partition a histogram into at most numBuckets buckets so that + * `costFn()` is minimized. The cost of each bucket must depend only on the + * histogram values in that bucket. + * + * This algorithm is O(histogram.size()^3) in the worst case, and uses + * O(histogram.size() * numBuckets) memory. + + * @returns The beginning of each partition. The last partition implicitly + * ends at histogram.size(). The first partition will start at 0. + */ +template +std::vector +partition(poly::span histogram, size_t numBuckets, CostFn&& costFn) +{ + const size_t B = std::min(numBuckets, histogram.size()); + const size_t B1 = B + 1; + const size_t N = histogram.size(); + const size_t N1 = N + 1; + // opt[N1 * k + e] = The optimal cost to partion [0, e) with k buckets + std::vector opt(N1 * B1, std::numeric_limits::infinity()); + // begin[N1 * k + e] = The beginning index for e with k buckets + std::vector begin(N1 * B1, std::numeric_limits::max()); + + opt[N1 * 0 + 0] = 0; + begin[N1 * 0 + 0] = 0; + for (size_t e = 1; e < N1; ++e) { + const size_t maxPossibleBuckets = std::min(e, B); + for (size_t k = 1; k <= maxPossibleBuckets; ++k) { + for (size_t b = e; b-- > k - 1;) { + const float oldCost = opt[N1 * k + e]; + const float endCost = costFn(histogram.subspan(b, e - b)); + if (endCost > oldCost) { + // break; + } + const float newCost = opt[N1 * (k - 1) + b] + endCost; + if (newCost < oldCost) { + opt[N1 * k + e] = newCost; + begin[N1 * k + e] = b; + } + } + } + } + + std::vector partitions(B, 0); + for (size_t e = N, pos = partitions.size(); e > 0;) { + auto b = begin[N1 * pos-- + e]; + assert(b < e); + partitions[pos] = b; + e = b; + } + return partitions; +} + +/** + * Optimally partition a histogram into at most numBuckets buckets so that + * `costFn()` is minimized. The cost of each bucket must depend only on the + * histogram values in that bucket. + * + * This algorithm is O(histogram.size()^3) in the worst case, and uses + * O(histogram.size() * numBuckets) memory. + + * @returns The beginning of each partition. The last partition implicitly + * ends at histogram.size(). The first partition will start at 0. + */ +template +std::vector partition( + poly::span histogram, + size_t numBuckets, + size_t maxBucketSize, + CostFn&& costFn, + SizeFn&& idxFn) +{ + const size_t B = std::min(numBuckets, histogram.size()); + const size_t B1 = B + 1; + const size_t N = histogram.size(); + const size_t N1 = N + 1; + // opt[N1 * k + e] = The optimal cost to partion [0, e) with k buckets + std::vector opt(N1 * B1, std::numeric_limits::infinity()); + // begin[N1 * k + e] = The beginning index for e with k buckets + std::vector begin(N1 * B1, std::numeric_limits::max()); + + opt[N1 * 0 + 0] = 0; + begin[N1 * 0 + 0] = 0; + for (size_t e = 1; e < N1; ++e) { + const size_t maxPossibleBuckets = std::min(e, B); + for (size_t k = 1; k <= maxPossibleBuckets; ++k) { + const auto maxSize = std::min(maxBucketSize, e - (k - 1)); + for (size_t size = 1; size <= maxSize; + size = (e == N ? size + 1 : size * 2)) { + const auto b = e - size; + const float oldCost = opt[N1 * k + e]; + const float endCost = costFn(histogram.subspan(b, e - b)); + const float newCost = opt[N1 * (k - 1) + b] + endCost; + if (newCost < oldCost) { + if (0 && e != N && k != 1) { + assert(b != 0); + const auto bb = begin[N1 * (k - 1) + b]; + assert(bb < b); + const auto bI = idxFn(b); + const auto bucketSize = idxFn(e) - bI; + const auto prevBucketSize = bI - idxFn(bb); + if (bucketSize < prevBucketSize) { + continue; + } + } + opt[N1 * k + e] = newCost; + begin[N1 * k + e] = b; + } + } + } + } + + std::vector partitions(B, 0); + for (size_t e = N, pos = partitions.size(); e > 0;) { + auto b = begin[N1 * pos-- + e]; + assert(b < e); + partitions[pos] = b; + e = b; + } + return partitions; +} +} // namespace openzl::lz::utils diff --git a/contrib/lz-research/codecs/utils/Portability.hpp b/contrib/lz-research/codecs/utils/Portability.hpp new file mode 100644 index 000000000..5e54f1608 --- /dev/null +++ b/contrib/lz-research/codecs/utils/Portability.hpp @@ -0,0 +1,62 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +#include "openzl/shared/portability.h" + +#if ZL_ARCH_X86_64 +# include +#endif + +namespace openzl::lz::utils { + +inline uint64_t bitDeposit(uint64_t src, uint64_t mask) +{ +#if ZL_ARCH_X86_64 + return _pdep_u64(src, mask); +#else + uint64_t result = 0; + uint64_t srcBit = 1; + while (mask != 0) { + uint64_t lowestBit = mask & (-int64_t(mask)); + if (src & srcBit) { + result |= lowestBit; + } + mask &= ~lowestBit; + srcBit <<= 1; + } + return result; +#endif +} + +inline uint32_t bitDeposit(uint32_t src, uint32_t mask) +{ +#if ZL_ARCH_X86_64 + return _pdep_u32(src, mask); +#else + return uint32_t(bitDeposit(uint64_t(src), uint64_t(mask))); +#endif +} + +inline uint64_t bitExtract(uint64_t src, uint64_t mask) +{ +#if ZL_ARCH_X86_64 + return _pext_u64(src, mask); +#else + uint64_t result = 0; + uint64_t dstBit = 1; + while (mask != 0) { + uint64_t lowestBit = mask & (-int64_t(mask)); + if (src & lowestBit) { + result |= dstBit; + } + mask &= ~lowestBit; + dstBit <<= 1; + } + return result; +#endif +} + +} // namespace openzl::lz::utils diff --git a/contrib/lz-research/compressors.json b/contrib/lz-research/compressors.json new file mode 100644 index 000000000..45a8e87b8 --- /dev/null +++ b/contrib/lz-research/compressors.json @@ -0,0 +1,35 @@ +[ + { + "algorithm": "zstd", + "level": 1 + }, + { + "algorithm": "zstd", + "level": 1, + "params": { + "windowLog": 16, + "hashLog": 12 + } + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-slow" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-fast" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-std-slow" + } +] diff --git a/contrib/lz-research/long-compressors.json b/contrib/lz-research/long-compressors.json new file mode 100644 index 000000000..ed288bfc3 --- /dev/null +++ b/contrib/lz-research/long-compressors.json @@ -0,0 +1,116 @@ +[ + { + "algorithm": "lz4", + "level": 1 + }, + { + "algorithm": "zstd", + "level": 1 + }, + { + "algorithm": "zstd", + "level": 1, + "params": { + "windowLog": 16, + "hashLog": 14 + } + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-lz4" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-lz4-huf" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-iso" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-buc" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-slow" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-fast" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-iso[llbits=4]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-buc[llbits=4]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-slow[llbits=4]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-fast[llbits=4]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-iso[llbits=3]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-buc[llbits=3]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-slow[llbits=3]" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-fast[llbits=3]" + } +] diff --git a/contrib/lz-research/trace-compressors.json b/contrib/lz-research/trace-compressors.json new file mode 100644 index 000000000..024205a3d --- /dev/null +++ b/contrib/lz-research/trace-compressors.json @@ -0,0 +1,62 @@ +[ + { + "algorithm": "lz4", + "level": 1 + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-lz4" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-lz4-huf" + }, + { + "algorithm": "zstd", + "level": 1 + }, + { + "algorithm": "zstd", + "level": 1, + "params": { + "windowLog": 16, + "hashLog": 12 + } + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-slow", + "trace": "/tmp/trace.cbor", + "trace_streams": "/tmp/trace-streams" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-fast" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-iso" + }, + { + "algorithm": "openzl", + "params": { + "CompressionLevel": 1 + }, + "compressor_name": "lz-zstd-buc" + } +] diff --git a/contrib/openzl-demo/CMakeLists.txt b/contrib/openzl-demo/CMakeLists.txt new file mode 100644 index 000000000..6b1748ab1 --- /dev/null +++ b/contrib/openzl-demo/CMakeLists.txt @@ -0,0 +1,53 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +find_package(Python 3.8 COMPONENTS Interpreter Development.Module REQUIRED) + +# Import nanobind through CMake's find_package mechanism +if (SKBUILD) + # Must be found via config lookup in scikit-build-core builds driven by pip + find_package(nanobind CONFIG REQUIRED) +else() + # Also allow for fetching Nanobind for development. + # This won't work as expected for real builds of the Python package, but it + # makes editor integrations work + + # Download the dependencies of Nanobind. The alternative is to download using + # a git tag, because it is included as a submodule. But that uses ssh to clone, + # which can require the user to enter their private key password, which is a pain. + set(TSL_ROBIN_MAP_ENABLE_INSTALL OFF) + FetchContent_Declare( + tsl-robin-map # v1.4.0 + URL https://github.com/Tessil/robin-map/archive/refs/tags/v1.4.0.zip + URL_HASH SHA256=6e0ca21b68f4b029aab12e41428c450a412ab426ed73c59c7ccb360c8392e266 + OVERRIDE_FIND_PACKAGE + ) + FetchContent_MakeAvailable(tsl-robin-map) + + # Download Nanobind + set(NB_CREATE_INSTALL_RULES OFF) + set(NB_USE_SUBMODULE_DEPS OFF) + FetchContent_Declare( + nanobind + URL https://github.com/wjakob/nanobind/archive/refs/tags/v2.7.0.zip + URL_HASH SHA256=3cadbd08fdf07101d70467adbf9e9a203287519869af6bce1f2ab65df3caafc7 + OVERRIDE_FIND_PACKAGE + ) + FetchContent_MakeAvailable(nanobind) +endif() + +nanobind_add_module( + _openzl_demo + ext/openzl_demo.cpp +) +target_link_libraries( + _openzl_demo + PRIVATE + openzl + openzl_cpp + tools_training +) + +install( + TARGETS _openzl_demo + DESTINATION ${Python_SITEARCH} +) diff --git a/contrib/openzl-demo/ext/openzl_demo.cpp b/contrib/openzl-demo/ext/openzl_demo.cpp new file mode 100644 index 000000000..336960315 --- /dev/null +++ b/contrib/openzl-demo/ext/openzl_demo.cpp @@ -0,0 +1,77 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include + +#include +#include +#include +#include + +#include "openzl/openzl.hpp" +#include "tools/training/train.h" +#include "tools/training/utils/utils.h" + +namespace { +namespace nb = nanobind; + +std::unique_ptr createCompressor() +{ + auto compressor = std::make_unique(); + compressor->selectStartingGraph(openzl::graphs::ACE()(*compressor)); + return compressor; +} + +std::vector train( + const std::vector& inputs, + std::optional numThreads, + std::optional maxTimeSecs) +{ + std::vector multiInputs; + multiInputs.reserve(inputs.size()); + for (const auto& input : inputs) { + std::vector inputsVec; + inputsVec.push_back( + openzl::Input::refSerial(input.data(), input.size())); + multiInputs.emplace_back(std::move(inputsVec)); + } + openzl::Compressor compressor; + compressor.selectStartingGraph(openzl::graphs::ACE()(compressor)); + compressor.setParameter( + openzl::CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + openzl::training::TrainParams trainParams = { + .compressorGenFunc = + [](std::string_view serialized) { + auto compressor = std::make_unique(); + compressor->deserialize(serialized); + return compressor; + }, + .threads = numThreads, + .maxTimeSecs = maxTimeSecs, + .paretoFrontier = true, + }; + + auto trainedCompressors = + openzl::training::train(multiInputs, compressor, trainParams); + + std::vector result; + result.reserve(trainedCompressors.size()); + for (const auto& trainedCompressor : trainedCompressors) { + result.emplace_back( + (const uint8_t*)trainedCompressor->data(), + trainedCompressor->size()); + } + return result; +} + +} // namespace + +NB_MODULE(_openzl_demo, m) +{ + m.def("train", + &train, + nanobind::arg("inputs"), + nanobind::arg("num_threads") = std::nullopt, + nanobind::arg("max_time_secs") = std::nullopt, + "Train a compressor on the given inputs and return a Pareto frontier of trained compressors."); +} diff --git a/contrib/openzl-demo/pyproject.toml b/contrib/openzl-demo/pyproject.toml new file mode 100644 index 000000000..bf9a7aa17 --- /dev/null +++ b/contrib/openzl-demo/pyproject.toml @@ -0,0 +1,77 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +[build-system] +requires = ["scikit-build-core >=0.11.5", "nanobind >=2.7.0"] +build-backend = "scikit_build_core.build" + +# TODO: Figure out how to get the version from zl_version.h +[project] +name = "openzl-demo" +version = "0.1.0" +requires-python = ">=3.8" +dependencies = [ + "kaleido >=1.0.0", + "numpy >=2.0.0", + "openzl >=0.1.0", + "pandas >=2.0.0", + "plotly >=6.0.0", +] + +[project.urls] +Homepage = "https://openzl.org/pytorch-demo" + +[tool.scikit-build] +# Protect the configuration against future changes in scikit-build-core +minimum-version = "0.11.5" + +# Setuptools-style build caching in a local directory +build-dir = "build-py/{wheel_tag}" + +# Build stable ABI wheels for CPython 3.12+ +wheel.py-api = "cp312" + +# Point it at the project build directory +cmake.source-dir = "../.." + +[tool.scikit-build.cmake.define] +# Build the Python extension, but don't install OpenZL. +# We only want to install the Python extension itself. +OPENZL_BUILD_PYTHON_DEMO = "ON" +OPENZL_INSTALL = "OFF" +# Ensure we're building statically +OPENZL_BUILD_SHARED_LIBS = "OFF" +# Disable the builds of unneeded components +OPENZL_BUILD_TESTS = "OFF" +OPENZL_BUILD_BENCHMARKS = "OFF" +OPENZL_BUILD_EXAMPLES = "OFF" + + +# Tell Zstd to build statically & hide its symbols. +ZSTD_BUILD_STATIC = "ON" +ZSTDLIB_VISIBLE = "hidden" +ZSTDERRORLIB_VISIBLE = "hidden" +ZDICTLIB_VISIBLE = "hidden" + +# Ensure that all libraries hide their symbols by default. +# The Python extension packages its own version of OpenZL and Zstd, +# so we need to ensure that if it is linked with another library that +# doesn't hide its version of OpenZL and Zstd, we don't get duplicate +# symbols. +# The only symbol that should be present is `_PyInit___openzl_demo`. +CMAKE_C_FLAGS = [ + "-fvisibility=hidden", +] +CMAKE_CXX_FLAGS = [ + "-fvisibility=hidden" +] + +[tool.cibuildwheel] +# Necessary to see build output from the actual compilation +build-verbosity = 1 + +# Only run 64-bit builds until 32-bit builds are supported +archs = ["auto64"] + +# Needed for full C++17 support on macOS +[tool.cibuildwheel.macos.environment] +MACOSX_DEPLOYMENT_TARGET = "10.14" diff --git a/contrib/openzl-demo/src/openzl_demo/__init__.py b/contrib/openzl-demo/src/openzl_demo/__init__.py new file mode 100644 index 000000000..9740b500b --- /dev/null +++ b/contrib/openzl-demo/src/openzl_demo/__init__.py @@ -0,0 +1,299 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import time +from typing import Any + +import _openzl_demo +import numpy as np +import openzl.ext as zl +import pandas as pd +import plotly.express as px +import plotly.graph_objs as go + + +class TrainerResults: + """ + A set of trained OpenZL compressors with benchmarks that can be visualized. + """ + + def __init__(self, compressors: list[bytes], inputs: list[bytes]) -> None: + self._compressors = compressors + self._inputs = inputs + self._benchmarks = [benchmark(compressor, inputs) for compressor in compressors] + self._prune() + + def _strictly_dominates(self, a: dict[str, float], b: dict[str, float]) -> bool: + better_in_all = ( + a["compression_ratio"] >= b["compression_ratio"] + and a["compression_speed_MBps"] >= b["compression_speed_MBps"] + and a["decompression_speed_MBps"] >= b["decompression_speed_MBps"] + ) + better_in_at_least_one = ( + a["compression_ratio"] > b["compression_ratio"] + or a["compression_speed_MBps"] > b["compression_speed_MBps"] + or a["decompression_speed_MBps"] > b["decompression_speed_MBps"] + ) + return better_in_all and better_in_at_least_one + + def _is_non_dominated(self, index: int) -> bool: + a = self._benchmarks[index] + for b in self._benchmarks: + if self._strictly_dominates(b, a): + return False + return True + + def _should_keep(self, index: int) -> bool: + # Skip dominated points + if not self._is_non_dominated(index): + return False + + # Skip points that are very close to others + for other in range(len(self._benchmarks)): + if other == index: + continue + o = self._benchmarks[other] + i = self._benchmarks[index] + + # Only consider pruning when the ratio is +-5% and compression speed is +-20% + if o["compression_ratio"] < 0.95 * i["compression_ratio"]: + continue + if o["compression_ratio"] >= 1.05 * i["compression_ratio"]: + continue + if o["compression_speed_MBps"] < 0.8 * i["compression_speed_MBps"]: + continue + if o["compression_speed_MBps"] >= 1.2 * i["compression_speed_MBps"]: + continue + + has_better_ratio = i["compression_ratio"] > o["compression_ratio"] + has_much_better_dspeed = ( + i["decompression_speed_MBps"] > 1.2 * o["decompression_speed_MBps"] + ) + has_much_worse_dspeed = ( + 1.2 * i["decompression_speed_MBps"] < o["decompression_speed_MBps"] + ) + + if has_much_better_dspeed: + # Keep if decompression speed is significantly better + continue + + if has_better_ratio and not has_much_worse_dspeed: + # Keep if compression ratio is better and decompression speed isn't significantly worse + continue + + # Either the ratio is worse, or the decompression speed is significantly worse + # Skip this point so as to not clutter the plot + return False + + # Skip points that don't compress at all + if self._benchmarks[index]["compression_ratio"] < 1.0: + return False + + return True + + def _prune(self) -> None: + """ + Prune the compressors to produce a cleaner Pareto frontier. + 1. Prune dominated points + 2. Prune points that are very close to others + 3. Prune points that don't compress at all + """ + keep = [self._should_keep(i) for i in range(len(self._benchmarks))] + self._compressors = [ + comp for i, comp in enumerate(self._compressors) if keep[i] + ] + self._benchmarks = [ + bench for i, bench in enumerate(self._benchmarks) if keep[i] + ] + + def plot(self, **kwargs) -> go.Figure: + """ + Plot the tradeoffs offered by the different compressors. + + Args: + **kwargs: Additional args passed to `px.scatter()` + + Returns: + A Plotly figure of the tradeoffs. + """ + df = self.dataframe + df["compressor"] = df.index + fig = px.scatter( + df, + title="Trained Compressor Performance", + x="compression_speed_MBps", + y="compression_ratio", + color="decompression_speed_MBps", + text="compressor", + hover_data=[ + "uncompressed_size", + "compressed_size", + "compression_time_sec", + "decompression_time_sec", + ], + labels={ + "compression_speed_MBps": "Compression Speed (MB/s)", + "compression_ratio": "Compression Ratio", + "decompression_speed_MBps": "D. Speed (MB/s)", + "uncompressed_size": "Uncompressed Size (bytes)", + "compressed_size": "Compressed Size (bytes)", + "compression_time_sec": "Compression Time (sec)", + "decompression_time_sec": "Decompression Time (sec)", + }, + color_continuous_scale=[ + (0, "rgb(52,50,168)"), + (0.5, "rgb(141,46,155)"), + (1, "rgb(238,59,37)"), + ], + **kwargs, + ) + fig.update_traces(textposition="middle left", textfont_size=16, marker_size=12) + fig.update_layout( + title=dict(x=0.5, font_size=30), + xaxis=dict(type="log", dtick=0.30102999566), + font_family="Avenir", + xaxis_title_font_size=20, + yaxis_title_font_size=20, + coloraxis_colorbar_title_font_size=20, + ) + + return fig + + @property + def dataframe(self) -> pd.DataFrame: + """ + A Pandas dataframe containing the benchmark results. + """ + return pd.DataFrame(self._benchmarks) + + @property + def compressors(self) -> list[bytes]: + """ + The set of compressors. See the `dataframe` or `plot()` to select which compressor to use. + """ + return self._compressors + + +def train( + inputs: list[bytes], + num_threads: int | None = None, + max_time_seconds: float | None = None, +) -> TrainerResults: + """ + Trains a set of OpenZL compressors on `inputs` that offer a Pareto frontier + of compression ratio, compression speed, and decompression speed tradeoffs. + + Note: + Try training on 1-10 MB of input data. Training on more than that can + take a long time. This data should be raw numeric data like int64 or floats. + + Args: + inputs: The list of inputs to train on. + num_threads: Optionally the number of threads to use. Defaults to half the number of available cores. + max_time_seconds: The maximum time to train for. Defaults to unlimited. + + Returns: + The trained OpenZL compressors. + """ + compressors = _openzl_demo.train(inputs, num_threads, max_time_seconds) + return TrainerResults(compressors, inputs) + + +def compress(compressor: bytes, input: bytes) -> bytes: + """ + Compresses `input` using `compressor`. + + Note: + If `input` was not part of the training set, compression may fail. + + Args: + compressor: A serialized compressor produced from `train()`. + input: The data to compress. + + Returns: + The OpenZL compressed data. + """ + comp = zl.Compressor() + comp.deserialize(compressor) + + cctx = zl.CCtx() + cctx.ref_compressor(comp) + compressed = cctx.compress( + [zl.Input(zl.Type.Serial, np.frombuffer(input, dtype=np.uint8))] + ) + return compressed + + +def decompress(compressed: bytes) -> bytes: + """ + Decompresses data produced by `compress()`, no matter which compressor was used. + + Args: + compressed: The OpenZL compressed data. + + Returns: + The decompressed data. + """ + dctx = zl.DCtx() + decompressed = dctx.decompress(compressed) + if len(decompressed) != 1: + raise RuntimeError("Corruption!") + return decompressed[0].content.as_bytes() + + +def benchmark(compressor: bytes, inputs: list[bytes]) -> dict[str, float]: + """ + Benchmarks the `compressor` on the `inputs`. + + Args: + compressor: A serialized compressor produced from `train()`. + inputs: A list of inputs to benchmark on. + + Returns: + The benchmark results detailing the compression ratio, + compression speed, and decompression speed. + """ + comp = zl.Compressor() + comp.deserialize(compressor) + + cctx = zl.CCtx() + dctx = zl.DCtx() + + results = { + "uncompressed_size": float(sum(len(input) for input in inputs)), + "compressed_size": 0.0, + "compression_time_sec": 0.0, + "decompression_time_sec": 0.0, + } + + for input in inputs: + cstart = time.perf_counter() + cctx.ref_compressor(comp) + compressed = cctx.compress( + [zl.Input(zl.Type.Serial, np.frombuffer(input, dtype=np.uint8))] + ) + cstop = time.perf_counter() + + dstart = time.perf_counter() + decompressed = dctx.decompress(compressed) + dstop = time.perf_counter() + + if len(decompressed) != 1: + raise RuntimeError("Corruption!") + if decompressed[0].content.as_bytes() != input: + raise RuntimeError("Corruption!") + + results["compressed_size"] += len(compressed) + results["compression_time_sec"] += cstop - cstart + results["decompression_time_sec"] += dstop - dstart + + results["compression_ratio"] = ( + results["uncompressed_size"] / results["compressed_size"] + ) + results["compression_speed_MBps"] = ( + results["uncompressed_size"] / 1_000_000 + ) / results["compression_time_sec"] + results["decompression_speed_MBps"] = ( + results["uncompressed_size"] / 1_000_000 + ) / results["decompression_time_sec"] + + return results diff --git a/contrib/reproducibility/dataset_manager/README.md b/contrib/reproducibility/dataset_manager/README.md new file mode 100644 index 000000000..ff9dfdd27 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/README.md @@ -0,0 +1,47 @@ +# Dataset Manager + +## Setup +For `era5` and `rea6` datasets, make sure GDAL is installed using the instructions [here](https://mothergeo-py.readthedocs.io/en/latest/development/how-to/gdal-ubuntu-pkg.html#install-gdal-for-python). If you don't need these datasets, you can skip this step. + +For the `ppmf` dataset, ensure `awk` is installed on your system for better chunking performance. Without `awk`, the system will fall back to pandas chunking, which is significantly slower. If you don't need the `ppmf` dataset, you can skip this step. + +For `.parquet` files (`binance` and `tlc` datasets), run the following commands to compile binary files: + +```bash +mkdir -p cmakebuild +cmake -S . -B cmakebuild -DOPENZL_BUILD_PARQUET_TOOLS=ON +cmake --build cmakebuild +``` +If you choose to compile binary files in separate location, please pass in the path to the `make_canonical_parquet` binary with the `--binary-path` command + +Run the following command inside the `dataset_manager` directory to install required packages: +```bash +pip install -r requirements.txt +``` + +Some datasets require API keys for access. Set up the following keys as needed: + +**For Kaggle datasets:** +- Follow the instructions under `Authentication`: https://www.kaggle.com/docs/api + +**For Climate Data Store datasets:** +- Follow the instructions under `Setup the CDS API personal token`: https://cds.climate.copernicus.eu/how-to-api + + +## Usage +Navigate to the `reproducibility` directory and use the following sample command to download all available datasets: +```bash +python -m dataset_manager.dataset_manager download -o /tmp/datasets/ -a +``` + +A specific dataset can be downloaded with `-d` and parquet binary can be passed in with `--binary-path`. Below is a sample command: +```bash +python -m dataset_manager.dataset_manager download -o /tmp/datasets -d binance --binary-path=$HOME/openzl/cmakebuild/tools/parquet/make_canonical_parquet +``` + +The following command lets you view all available datasets: +```bash +python -m dataset_manager.dataset_manager list +``` + +Use `-h` to explore all command options. diff --git a/contrib/reproducibility/dataset_manager/base_dataset_builder.py b/contrib/reproducibility/dataset_manager/base_dataset_builder.py new file mode 100644 index 000000000..66086ad16 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/base_dataset_builder.py @@ -0,0 +1,41 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +import json +import os +from abc import ABC, abstractmethod + +from .dataset_utils import DownloadUtils + + +class BaseDatasetBuilder(ABC): + """Base class for all dataset builders""" + + def __init__(self, manifest_path: str | None = None) -> None: + self.download_utils = DownloadUtils() + self.name = "" + self.manifest_data = {} + + if manifest_path: + self._parse_manifest(manifest_path) + + def _parse_manifest(self, manifest_path: str | None = None) -> None: + """Parse the manifest file and set dataset metadata""" + if not os.path.exists(manifest_path): + raise FileNotFoundError(f"Dataset manifest file not found: {manifest_path}") + + with open(manifest_path, "r") as f: + self.manifest_data = json.load(f) + + self.name = self.manifest_data["name"] + + @abstractmethod + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download dataset to specified directory""" + pass + + def post_download_processing(self, download_dir: str, kwargs: dict) -> bool: + """Override this for custom post-processing""" + return True diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/__init__.py new file mode 100644 index 000000000..944f7ff30 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/__init__.py @@ -0,0 +1,17 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .binance import BinanceDatasetBuilder +from .era5 import ERA5DatasetBuilder +from .ppmf import PPMFDatasetBuilder +from .psam import PSAMDatasetBuilder +from .rea6 import REA6DatasetBuilder +from .tlc import TLCDatasetBuilder + + +__all__ = [ + "BinanceDatasetBuilder", + "ERA5DatasetBuilder", + "PPMFDatasetBuilder", + "PSAMDatasetBuilder", + "REA6DatasetBuilder", + "TLCDatasetBuilder", +] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/binance/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/binance/__init__.py new file mode 100644 index 000000000..fbf3a12c0 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/binance/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .binance_dataset_builder import BinanceDatasetBuilder + +__all__ = ["BinanceDatasetBuilder"] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/binance/binance_dataset_builder.py b/contrib/reproducibility/dataset_manager/dataset_builders/binance/binance_dataset_builder.py new file mode 100644 index 000000000..19ef390c1 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/binance/binance_dataset_builder.py @@ -0,0 +1,64 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import os + +from ...base_dataset_builder import BaseDatasetBuilder + + +class BinanceDatasetBuilder(BaseDatasetBuilder): + """Dataset builder for cryptocurrency pairs data on Binance.com""" + + def __init__(self) -> None: + current_dir = os.path.dirname(os.path.abspath(__file__)) + manifest_path = os.path.join(current_dir, "binance_manifest.json") + super().__init__(manifest_path) + + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download Binance dataset to specified directory + + Args: + download_dir: Directory to download files to + **kwargs: Additional arguments + + Returns: + bool: True if download successful, False otherwise + """ + if not self.download_utils.download_file_from_kaggle( + self.manifest_data["download_config"]["kaggle_slug"], + self.manifest_data["download_config"]["kaggle_files"], + download_dir, + self.name, + ): + print("Failed to download Binance dataset") + return False + + if not self.post_download_processing(download_dir, kwargs): + print("Failed to post-process Binance dataset") + return False + + print("Binance dataset downloaded and post processed successfully") + return True + + def post_download_processing(self, download_dir: str, kwargs: dict) -> bool: + """Verify parquet files are "canonical" (i.e no compression, no encoding) + + Args: + download_dir: Directory where files were downloaded + **kwargs: Additional arguments + + Returns: + bool: True if post-processing successful, False otherwise + """ + if self.download_utils.verify_parquet_canonical( + os.path.join(download_dir, self.name), + os.path.join(download_dir, f"{self.name}_canonical"), + kwargs.get("binary_path"), + ): + print("Binance dataset post-processing successful") + return True + else: + return False diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/binance/binance_manifest.json b/contrib/reproducibility/dataset_manager/dataset_builders/binance/binance_manifest.json new file mode 100644 index 000000000..574c7a90d --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/binance/binance_manifest.json @@ -0,0 +1,31 @@ +{ + "name": "binance", + "description": "cryptocurrency pairs data from Binance.com", + "format": "parquet", + "source_url": "https://www.kaggle.com/datasets/jorijnsmit/binance-full-history", + "download_method": "kaggle", + "download_config": { + "kaggle_slug": "jorijnsmit/binance-full-history", + "kaggle_files": [ + "BTC-AUD.parquet", + "BTC-BIDR.parquet", + "BTC-BRL.parquet", + "BTC-BUSD.parquet", + "BTC-DAI.parquet", + "BTC-EUR.parquet", + "BTC-GBP.parquet", + "BTC-NGN.parquet", + "BTC-PAX.parquet", + "BTC-RUB.parquet", + "BTC-TRY.parquet", + "BTC-TUSD.parquet", + "BTC-UAH.parquet", + "BTC-USDC.parquet", + "BTC-USDT.parquet" + ] + }, + "tags": [ + "crypto", + "parquet" + ] +} diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/era5/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/era5/__init__.py new file mode 100644 index 000000000..5bee8c745 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/era5/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .era5_dataset_builder import ERA5DatasetBuilder + +__all__ = ["ERA5DatasetBuilder"] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/era5/era5_dataset_builder.py b/contrib/reproducibility/dataset_manager/dataset_builders/era5/era5_dataset_builder.py new file mode 100644 index 000000000..68b21a043 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/era5/era5_dataset_builder.py @@ -0,0 +1,49 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import os + +from ...base_dataset_builder import BaseDatasetBuilder + +data_variable_to_name = { + "10m_u_component_of_wind": "ERA5_wind", + "mean_sea_level_pressure": "ERA5_pressure", + "total_precipitation": "ERA5_precip", + "downward_uv_radiation_at_the_surface": "ERA5_flux", + "snow_density": "ERA5_snow", +} + + +class ERA5DatasetBuilder(BaseDatasetBuilder): + """Dataset builder for ERA5 climate data""" + + def __init__(self) -> None: + current_dir = os.path.dirname(os.path.abspath(__file__)) + manifest_path = os.path.join(current_dir, "era5_manifest.json") + super().__init__(manifest_path) + + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download ERA5 dataset to specified directory + + Args: + download_dir: Directory to download files to + **kwargs: Additional arguments + + Returns: + bool: True if download successful, False otherwise + """ + if self.download_utils.download_file_from_cds( + self.manifest_data["download_config"]["dataset"], + self.manifest_data["download_config"]["request"], + download_dir, + list(data_variable_to_name.values()), + self.manifest_data["download_config"]["max_bands"], + ): + print("ERA5 dataset downloaded successfully") + return True + else: + print("Failed to download ERA5 dataset") + return False diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/era5/era5_manifest.json b/contrib/reproducibility/dataset_manager/dataset_builders/era5/era5_manifest.json new file mode 100644 index 000000000..3c3555e16 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/era5/era5_manifest.json @@ -0,0 +1,40 @@ +{ + "name": "era5", + "description": "Atmospheric reanalysis of global climate data", + "format": "grib", + "source_url": "https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels?tab=overview", + "download_method": "cds", + "download_config": { + "dataset": "reanalysis-era5-single-levels", + "request": { + "product_type": ["reanalysis"], + "variable": [ + "10m_u_component_of_wind", + "mean_sea_level_pressure", + "total_precipitation", + "downward_uv_radiation_at_the_surface", + "snow_density" + ], + "year": ["1987"], + "month": ["10"], + "day": [ + "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" + ], + "time": [ + "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", + "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", + "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", + "18:00", "19:00", "20:00", "21:00", "22:00", "23:00" + ], + "data_format": "grib", + "download_format": "unarchived" + }, + "max_bands": 3600 + }, + "tags": [ + "climate", + "bin" + ] +} diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/__init__.py new file mode 100644 index 000000000..043b386a7 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .ppmf_dataset_builder import PPMFDatasetBuilder + +__all__ = ["PPMFDatasetBuilder"] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/ppmf_dataset_builder.py b/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/ppmf_dataset_builder.py new file mode 100644 index 000000000..8e9001722 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/ppmf_dataset_builder.py @@ -0,0 +1,86 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import os + +from ...base_dataset_builder import BaseDatasetBuilder + + +class PPMFDatasetBuilder(BaseDatasetBuilder): + """Dataset builder for census data on individual people and housing units (Successor to PSAM (PUMS) dataset)""" + + def __init__(self) -> None: + current_dir = os.path.dirname(os.path.abspath(__file__)) + manifest_path = os.path.join(current_dir, "ppmf_manifest.json") + super().__init__(manifest_path) + + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download PPMF dataset to specified directory + + Args: + download_dir: Directory to download files to + **kwargs: Additional arguments + + Returns: + bool: True if download successful, False otherwise + """ + + if not self.download_utils.download_files( + self.manifest_data["download_config"]["urls"], + os.path.join(download_dir, self.name), + ): + print("Failed to download PPMF dataset") + return False + + if not self.post_download_processing(download_dir, kwargs): + print("Failed to post-process PPMF dataset") + return False + + print("Successfully downloaded and post-processed PPMF dataset") + return True + + def post_download_processing(self, parent_dir: str, kwargs: dict) -> bool: + """Chunk files + + Args: + download_dir: Directory where files were downloaded + **kwargs: Additional arguments + + Returns: + bool: True if post-processing successful, False otherwise + """ + download_dir = os.path.join(parent_dir, self.name) + for file in os.listdir(download_dir): + print(f"Beginning post processing for file: {file}") + if not file.endswith(".csv"): + continue + + base_name = os.path.splitext(file)[0] + if base_name not in self.manifest_data["download_config"]["chunk_size"]: + print(f"Chunk size not found for file: {file}") + continue + + new_download_dir = os.path.join( + parent_dir, file.replace(".csv", "").replace("2020_", "") + ) + + os.makedirs( + new_download_dir, + exist_ok=True, + ) + + os.rename( + os.path.join(download_dir, file), + os.path.join(new_download_dir, file.replace("2020_ppmf_", "")), + ) + + chunk_size = self.manifest_data["download_config"]["chunk_size"][base_name] + if not self.download_utils.chunk_csv_file( + file.replace("2020_ppmf_", ""), new_download_dir, chunk_size + ): + return False + os.rmdir(download_dir) + return True diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/ppmf_manifest.json b/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/ppmf_manifest.json new file mode 100644 index 000000000..2568bc146 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/ppmf/ppmf_manifest.json @@ -0,0 +1,20 @@ +{ + "name": "ppmf", + "description": "Census data on individual people and housing units (successor to PSAM or PUMS data)", + "format": "csv", + "source_url": "https://www.census.gov/data/tables/2024/dec/2020-census-ppmf.html", + "download_method": "url", + "download_config": { + "urls": [ + "https://www2.census.gov/programs-surveys/decennial/2020/data/privacy-protected-microdata-file/2020_ppmf.zip" + ], + "chunk_size": { + "2020_ppmf_person": 266666, + "2020_ppmf_unit": 260000 + } + }, + "tags": [ + "census", + "csv" + ] +} diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/psam/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/psam/__init__.py new file mode 100644 index 000000000..9bab17eb6 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/psam/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .psam_dataset_builder import PSAMDatasetBuilder + +__all__ = ["PSAMDatasetBuilder"] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/psam/psam_dataset_builder.py b/contrib/reproducibility/dataset_manager/dataset_builders/psam/psam_dataset_builder.py new file mode 100644 index 000000000..9ec565148 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/psam/psam_dataset_builder.py @@ -0,0 +1,74 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import glob +import os + +from ...base_dataset_builder import BaseDatasetBuilder + + +class PSAMDatasetBuilder(BaseDatasetBuilder): + """Dataset builder for census data on individual people and housing units""" + + def __init__(self) -> None: + current_dir = os.path.dirname(os.path.abspath(__file__)) + manifest_path = os.path.join(current_dir, "psam_manifest.json") + super().__init__(manifest_path) + + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download PSAM dataset to specified directory + + Args: + download_dir: Directory to download files to + **kwargs: Additional arguments + + Returns: + bool: True if download successful, False otherwise + """ + urls = self.manifest_data["download_config"]["urls"] + csv_h_urls = [url for url in urls if "csv_h" in url] + csv_p_urls = [url for url in urls if "csv_h" not in url] + + _h_folder = os.path.join(download_dir, f"{self.name}_h") + _p_folder = os.path.join(download_dir, f"{self.name}_p") + + if not self.download_utils.download_files( + csv_h_urls, + _h_folder, + ): + print("Failed to download PSAM housing dataset") + return False + if not self.download_utils.download_files( + csv_p_urls, + _p_folder, + ): + print("Failed to download PSAM people dataset") + return False + + self.post_download_processing(_h_folder, kwargs) + self.post_download_processing(_p_folder, kwargs) + + print("Successfully downloaded PSAM dataset") + return True + + def post_download_processing(self, download_dir: str, kwargs: dict) -> bool: + """Remove psam readme pdf + + Args: + download_dir: Directory where files were downloaded + **kwargs: Additional arguments + + Returns: + bool: True if post-processing successful, False otherwise + """ + pdf_files = glob.glob(os.path.join(download_dir, "*.pdf")) + + # Delete each PDF file + for pdf_file in pdf_files: + os.remove(pdf_file) + print(f"Remove extra PSAM pdf file: {pdf_file}") + + return True diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/psam/psam_manifest.json b/contrib/reproducibility/dataset_manager/dataset_builders/psam/psam_manifest.json new file mode 100644 index 000000000..db1fdab9b --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/psam/psam_manifest.json @@ -0,0 +1,121 @@ +{ + "name": "psam", + "description": "Public Use Microdata Sample (PUMS) data from the Census data", + "format": "csv", + "source_url": "https://www.census.gov/programs-surveys/acs/microdata/access.html", + "download_method": "url", + "download_config": { + "urls": [ + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hak.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hal.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_har.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_haz.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hca.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hco.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hct.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hdc.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hde.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hfl.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hga.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hhi.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hia.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hid.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hil.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hin.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hks.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hky.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hla.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hma.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hmd.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hme.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hmi.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hmn.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hmo.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hms.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hmt.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hnc.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hnd.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hne.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hnh.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hnj.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hnm.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hnv.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hny.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hoh.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hok.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hor.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hpa.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hpr.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hri.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hsc.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hsd.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_htn.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_htx.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hus.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hut.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hva.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hvt.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hwa.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hwi.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hwv.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_hwy.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pak.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pal.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_par.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_paz.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pca.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pco.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pct.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pdc.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pde.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pfl.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pga.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_phi.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pia.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pid.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pil.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pin.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pks.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pky.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pla.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pma.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pmd.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pme.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pmi.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pmn.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pmo.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pms.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pmt.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pnc.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pnd.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pne.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pnh.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pnj.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pnm.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pnv.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pny.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_poh.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pok.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_por.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_ppa.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_ppr.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pri.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_psc.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_psd.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_ptn.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_ptx.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pus.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_put.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pva.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pvt.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pwa.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pwi.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pwv.zip", + "https://www2.census.gov/programs-surveys/acs/data/pums/2023/5-Year/csv_pwy.zip" + ] + }, + "tags": [ + "census", + "csv" + ] +} diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/rea6/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/rea6/__init__.py new file mode 100644 index 000000000..045f27d60 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/rea6/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .rea6_dataset_builder import REA6DatasetBuilder + +__all__ = ["REA6DatasetBuilder"] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/rea6/rea6_dataset_builder.py b/contrib/reproducibility/dataset_manager/dataset_builders/rea6/rea6_dataset_builder.py new file mode 100644 index 000000000..051ca4116 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/rea6/rea6_dataset_builder.py @@ -0,0 +1,41 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import os + +from ...base_dataset_builder import BaseDatasetBuilder + + +class REA6DatasetBuilder(BaseDatasetBuilder): + """Dataset builder for data on regional climate change in the European continent""" + + def __init__(self) -> None: + current_dir = os.path.dirname(os.path.abspath(__file__)) + manifest_path = os.path.join(current_dir, "rea6_manifest.json") + super().__init__(manifest_path) + + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download REA6 dataset to specified directory + + Args: + download_dir: Directory to download files to + **kwargs: Additional arguments + + Returns: + bool: True if download successful, False otherwise + """ + if self.download_utils.download_files( + self.manifest_data["download_config"]["urls"], + os.path.join(download_dir, self.name), + [ + self.name + ".grb.bz2" + ], # providing alternate name since original file name has . in it + ): + print("REA6 dataset downloaded successfully") + return True + else: + print("Failed to download REA6 dataset") + return False diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/rea6/rea6_manifest.json b/contrib/reproducibility/dataset_manager/dataset_builders/rea6/rea6_manifest.json new file mode 100644 index 000000000..eab74ca85 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/rea6/rea6_manifest.json @@ -0,0 +1,16 @@ +{ + "name": "REA6_precip", + "description": "Data on regional climate change in the European continent", + "format": "bin", + "source_url": "https://reanalysis.meteo.uni-bonn.de/?COSMO-REA6", + "download_method": "url", + "download_config": { + "urls": [ + "https://opendata.dwd.de/climate_environment/REA/COSMO_REA6/hourly/2D/TOT_PRECIP/TOT_PRECIP.2D.201512.grb.bz2" + ] + }, + "tags": [ + "climate", + "bin" + ] +} diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/tlc/__init__.py b/contrib/reproducibility/dataset_manager/dataset_builders/tlc/__init__.py new file mode 100644 index 000000000..9059e54cc --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/tlc/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +from .tlc_dataset_builder import TLCDatasetBuilder + +__all__ = ["TLCDatasetBuilder"] diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/tlc/tlc_dataset_builder.py b/contrib/reproducibility/dataset_manager/dataset_builders/tlc/tlc_dataset_builder.py new file mode 100644 index 000000000..79a7e371f --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/tlc/tlc_dataset_builder.py @@ -0,0 +1,60 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +import os + +from ...base_dataset_builder import BaseDatasetBuilder + + +class TLCDatasetBuilder(BaseDatasetBuilder): + """Dataset builder for NYC Taxi and Limousine Commission (TLC) data""" + + def __init__(self) -> None: + current_dir = os.path.dirname(os.path.abspath(__file__)) + manifest_path = os.path.join(current_dir, "tlc_manifest.json") + super().__init__(manifest_path) + + def download( + self, + download_dir: str, + **kwargs, + ) -> bool: + """Download TLC dataset to specified directory + + Args: + download_dir: Directory to download files to + **kwargs: Additional arguments + + Returns: + bool: True if download successful, False otherwise + """ + if not self.download_utils.download_files( + self.manifest_data["download_config"]["urls"], + os.path.join(download_dir, self.name), + ): + print("Failed to download TLC dataset") + return False + if not self.post_download_processing(download_dir, kwargs): + print("Failed to post-process TLC dataset") + return False + print("Successfully downloaded and post-processed TLC dataset") + return True + + def post_download_processing(self, download_dir: str, kwargs: dict) -> bool: + """Verify parquet files are "canonical" (i.e no compression, no encoding) + + Args: + download_dir: Directory where files were downloaded + kwargs: Additional arguments + + Returns: + bool: True if post-processing successful, False otherwise + """ + if self.download_utils.verify_parquet_canonical( + os.path.join(download_dir, self.name), + os.path.join(download_dir, f"{self.name}_canonical"), + kwargs.get("binary_path"), + ): + print("TLC dataset post-processing successful") + return True + else: + return False diff --git a/contrib/reproducibility/dataset_manager/dataset_builders/tlc/tlc_manifest.json b/contrib/reproducibility/dataset_manager/dataset_builders/tlc/tlc_manifest.json new file mode 100644 index 000000000..688a5ce04 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_builders/tlc/tlc_manifest.json @@ -0,0 +1,22 @@ +{ + "name": "tlc", + "description": "NYC Taxi and Limousine Commission trip yellow and green taxi data", + "format": "parquet", + "source_url": "https://www.nyc.gov/site/tlc/about/tlc-trip-record-data.page", + "download_method": "url", + "download_config": { + "urls": [ + "https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2025-01.parquet", + "https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2025-02.parquet", + "https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2025-03.parquet", + "https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2025-01.parquet", + "https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2025-02.parquet", + "https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2025-03.parquet" + ] + }, + "tags": [ + "taxi", + "nyc", + "parquet" + ] +} diff --git a/contrib/reproducibility/dataset_manager/dataset_manager.py b/contrib/reproducibility/dataset_manager/dataset_manager.py new file mode 100644 index 000000000..2721e15ce --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_manager.py @@ -0,0 +1,139 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# pyre-strict + +import argparse +import sys +from typing import Dict + +from .base_dataset_builder import BaseDatasetBuilder +from .dataset_builders import ( + BinanceDatasetBuilder, + ERA5DatasetBuilder, + PPMFDatasetBuilder, + PSAMDatasetBuilder, + REA6DatasetBuilder, + TLCDatasetBuilder, +) + + +class DatasetManager: + """Central manager for dataset downloading and catalog generation""" + + def __init__(self) -> None: + self.available_datasets: Dict[str, BaseDatasetBuilder] = { + "binance": BinanceDatasetBuilder(), + "era5": ERA5DatasetBuilder(), + "ppmf": PPMFDatasetBuilder(), + "psam": PSAMDatasetBuilder(), + "rea6": REA6DatasetBuilder(), + "tlc": TLCDatasetBuilder(), + } + + def list_datasets(self) -> None: + """List all available datasets""" + print("Available datasets:") + for k, v in self.available_datasets.items(): + print(f" {k:<10} - {v.manifest_data['description']}") + + def generate_catalog( + self, output_file: str = "catalog.yaml", include_stats: bool = True + ) -> None: + """Generate a comprehensive catalog of all available datasets""" + # todo + pass + + def download_all_datasets(self, output_dir: str, binary_path: str) -> None: + """Download all datasets to output_dir""" + failed_downloads = [] + for name, dataset in self.available_datasets.items(): + if not dataset.download(output_dir, binary_path=binary_path): + failed_downloads.append(name) + print("Summary of downloads:") + for fd in failed_downloads: + print(f"Failed to download {fd}") + if len(failed_downloads) == 0: + print("All datasets downloaded successfully") + + def download_dataset( + self, output_dir: str, dataset_name: str, binary_path: str + ) -> None: + """Download a single dataset to output_dir""" + if dataset_name in self.available_datasets: + self.available_datasets[dataset_name].download( + output_dir, + binary_path=binary_path, + ) + else: + print( + f"Dataset {dataset_name} not found. Use 'list' to see available datasets." + ) + + +def create_argParser() -> argparse.ArgumentParser: + """Create and configure argument parser""" + + parser = argparse.ArgumentParser( + description="Download datasets", + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + + # Create subcommands + subparsers = parser.add_subparsers(dest="command", help="Available commands") + + # List command - no arguments needed + subparsers.add_parser("list", help="List available datasets") + + # Download command - requires dataset_name and output_dir + download_parser = subparsers.add_parser( + "download", help="Download one or more datasets" + ) + download_parser.add_argument( + "-o", "--output-dir", dest="output_dir", required=True, help="Output directory" + ) + + group_parser = download_parser.add_mutually_exclusive_group(required=True) + group_parser.add_argument( + "-a", "--all", action="store_true", help="Download all datasets" + ) + group_parser.add_argument( + "-d", "--dataset", dest="dataset_name", help="Name of dataset to download" + ) + + download_parser.add_argument( + "--binary-path", + dest="binary_path", + help="Path for binary file needed to convert parquet datasets to canonical", + required=False, + ) + return parser + + +def main() -> None: + parser = create_argParser() + args = parser.parse_args() + + # Show help if no command provided + if not args.command: + parser.print_help() + sys.exit(1) + + manager = DatasetManager() + + try: + if args.command == "download": + if args.all: + manager.download_all_datasets(args.output_dir, args.binary_path) + else: + manager.download_dataset( + args.output_dir, args.dataset_name, args.binary_path + ) + else: + manager.list_datasets() + + except Exception as e: + print(f"Error: {e}") + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/contrib/reproducibility/dataset_manager/dataset_utils.py b/contrib/reproducibility/dataset_manager/dataset_utils.py new file mode 100644 index 000000000..28aa97359 --- /dev/null +++ b/contrib/reproducibility/dataset_manager/dataset_utils.py @@ -0,0 +1,463 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +import bz2 +import os +import shutil +import subprocess +import zipfile +from pathlib import Path +from typing import Any, Dict, List, Optional +from urllib.parse import urlparse + +import cdsapi +import pandas as pd +import requests +from kaggle.api.kaggle_api_extended import KaggleApi + + +# Doing this since gdal has extra installation steps +gdal_installed = True +try: + from osgeo import gdal +except ImportError: + gdal_installed = False + + +class DownloadUtils: + """Shared download utilities for all datasets""" + + def __init__(self) -> None: + pass + + @staticmethod + def download_file_from_cds( + dataset: str, + request: Dict[str, Any], + output_dir: str, + simplified_names: Optional[List[str]] = None, + max_bands: Optional[int] = None, + ) -> bool: + """Download a single file from Climate Data Store (CDS)""" + try: + output_path = os.path.join( + output_dir, dataset + "." + request["data_format"] + ) + client = cdsapi.Client() + client.retrieve(dataset, request, target=output_path) + + if output_path.endswith("grib"): + if DownloadUtils.grib_to_bin( + output_path, + ( + simplified_names + if simplified_names is not None + else request["variable"] + ), + max_bands, + ): + os.remove(output_path) + else: + return False + except Exception as e: + if "incomplete configuration file" in str(e): + print(f"Please make sure to set up CDS api key - {e}") + else: + print(f"Unexpected Error: {e}") + print( + "Error most likely from Climate Data Store, please try again or download directly from CDS" + ) + + return False + + return True + + @staticmethod + def download_file_from_kaggle( + kaggle_slug: str, + files: List[str], + output_path: str, + dataset_name: str = None, + ) -> bool: + """Download a single file from Kaggle""" + try: + dataset_dir = os.path.join(output_path, kaggle_slug.split("/")[-1]) + api = KaggleApi() + api.authenticate() + + for file in files: + print(f"Downloading {kaggle_slug} - {file}") + + api.dataset_download_file(kaggle_slug, file, path=dataset_dir) + + if DownloadUtils.extract_data( + os.path.join(dataset_dir, file), + os.path.join(output_path, dataset_name), + ): + os.remove(os.path.join(dataset_dir, file)) + else: + os.remove(os.path.join(dataset_dir, file)) + os.rmdir(dataset_dir) + return False + + os.rmdir(dataset_dir) + print(f"Finished Downloading: {os.path.basename(dataset_dir)}") + return True + except Exception as e: + if "Unauthorized" in str(e): + print(e) + print("kaggle.json API key is not set up correctly") + return False + print(f"Unexpected error: {e}") + return False + + @staticmethod + def download_file_from_url( + url: str, + output_path: str, + chunk_size: int = 8192, + ) -> bool: + """Download a single file from URL""" + try: + response = requests.get(url, stream=True) + response.raise_for_status() + + # Get total file size from headers + total_size = int(response.headers.get("content-length", 0)) + + with open(output_path, "wb") as f: + downloaded = 0 + + for chunk in response.iter_content(chunk_size=chunk_size): + if chunk: + f.write(chunk) + downloaded += len(chunk) + + # Print progress + if total_size > 0: + percent = (downloaded / total_size) * 100 + print( + f"\rDownloading {os.path.basename(output_path)}: {percent:.1f}% " + f"({downloaded:,} / {total_size:,} bytes)", + end="", + flush=True, + ) + else: + print( + f"\rDownloading {os.path.basename(output_path)}: {downloaded:,} bytes", + end="", + flush=True, + ) + + print(" - Finished Downloading") + return True + + except Exception as e: + print(f"Failed to download {url}: {e}") + return False + + @staticmethod + def download_files( + file_urls: List[str], + output_dir: str, + alt_file_names: Optional[List[str]] = None, + ) -> bool: + """Download multiple files + Args: + file_urls: List of file names + download_dir: Directory to download files to + alt_file_names: Optional list of alternative file names to use for each file. + """ + success = True + + # Make sure directory exists + os.makedirs(output_dir, exist_ok=True) + for ind, url in enumerate(file_urls): + # Extract filename from URL and create output path + parsed_url = urlparse(url) + alt_file_name = ( + alt_file_names[ind] + if (alt_file_names is not None and ind < len(alt_file_names)) + else None + ) + filename = ( + os.path.basename(parsed_url.path) + if alt_file_name is None + else alt_file_name + ) + output_path = os.path.join(output_dir, filename) + + # Download the file + if not DownloadUtils.download_file_from_url( + url, + output_path, + ): + success = False + + if not zipfile.is_zipfile(output_path) and output_path.endswith(".zip"): + print("Zip file is malformed - most likely issue with download link") + success = False + + if DownloadUtils.extract_data(output_path, output_dir): + os.remove(output_path) + else: + success = False + + return success + + @staticmethod + def find_openzl_root(max_levels: int = 5) -> Optional[Path]: + """Get the path to the binary file""" + current_dir = Path(__file__).parent + for _ in range(max_levels): + if current_dir.name == "openzl": + openzl_root = current_dir + return openzl_root + + # Go up one level + parent = current_dir.parent + if parent == current_dir: + # Hit filesystem root - stop searching + break + current_dir = parent + return None + + @staticmethod + def verify_parquet_canonical( + input_dir: str, output_dir: str, binary_path: Optional[str] = None + ) -> bool: + try: + files = os.listdir(input_dir) + os.makedirs(output_dir, exist_ok=True) + + for file in files: + if file.endswith(".parquet"): + print(f"Verifying and converting {os.path.join(input_dir, file)}") + + input_file_path = os.path.join(input_dir, file) + output_file_path = os.path.join(output_dir, file) + + openzl_root = DownloadUtils.find_openzl_root() + if openzl_root is None and binary_path is None: + print("make_canonical_parquet binary not found") + return False + + bin_path = ( + Path(binary_path) + if binary_path is not None + else os.path.join( + openzl_root, + "cmakebuild/tools/parquet/make_canonical_parquet", + ) + ) + + # Temporarily copy original parquet file to output dir + shutil.copy2(input_file_path, output_file_path) + + # Turn parquet file canonical + subprocess.run( + [ + str( + bin_path, + ), + "--input", + output_file_path, + ], + capture_output=False, + text=True, + ) + + # Remove non canonical parquet file (canonical version is saved with .canonical) + os.remove(output_file_path) + + return True + except Exception as e: + print(f"Failed to verify and convert parquet file to canonical: {e}") + return False + + @staticmethod + def extract_data(filepath: str, output_dir: str) -> bool: + """Extract data from archive formats""" + try: + if zipfile.is_zipfile(filepath): + print(f"Unzipping {os.path.basename(filepath)}") + + with zipfile.ZipFile(filepath, "r") as zip_ref: + zip_ref.extractall(output_dir) + elif filepath.endswith(".grb.bz2"): + print(f"Extracting bin from {os.path.basename(filepath)}") + + # decompress to .grb + temp_grb_file = os.path.join( + # Move two files up since grib_to_bin creates nested folders + os.path.dirname(os.path.dirname(filepath)), + os.path.basename(filepath).replace(".bz2", ""), + ) + + with ( + bz2.open(filepath, "rb") as f_in, + open(temp_grb_file, "wb") as f_out, + ): + f_out.write(f_in.read()) + + # convert to .bin + result = DownloadUtils.grib_to_bin( + temp_grb_file, [os.path.basename(filepath.replace(".grb.bz2", ""))] + ) + + os.remove(temp_grb_file) + + if not result: + return False + else: + return False + + print(f"Extracted: {os.path.basename(filepath)}") + return True + + except Exception as e: + print(f"Failed to extract {filepath}: {e}") + return False + + @staticmethod + def grib_to_bin( + grib_file_path: str, + file_names: List[str], + max_bands: Optional[int] = None, + ) -> bool: + """Convert GRIB file to binary format.""" + if not gdal_installed: + print("Please install gdal in order to convert grib into bin file") + return False + try: + dataset = gdal.Open(grib_file_path) + num_bands = dataset.RasterCount + xsize = dataset.RasterXSize + ysize = dataset.RasterYSize + + gdal.UseExceptions() + + # Create directories + base_dir = os.path.dirname(grib_file_path) + dir_paths = [os.path.join(base_dir, kind) for kind in file_names] + for dir_path in dir_paths: + os.makedirs(dir_path, exist_ok=True) + + num_bands_to_process = ( + num_bands if max_bands is None else min(max_bands, num_bands) + 1 + ) + for i in range(1, num_bands_to_process): + band = dataset.GetRasterBand(i) + + # Validate data type + dt = band.DataType + if dt != gdal.GDT_Float64: + print( + f"Warning: Band {i} data type is {gdal.GetDataTypeName(dt)}, expected Float64" + ) + + # Validate dimensions + if band.XSize != xsize or band.YSize != ysize: + print(f"Error: Band {i} dimensions don't match dataset") + return False + + raster_data = band.ReadRaster( + 0, + 0, # x_offset, y_offset + xsize, + ysize, # x_size, y_size + xsize, + ysize, # buf_x_size, buf_y_size + gdal.GDT_Float64, # data_type + 0, + 0, + ) + + if raster_data is None: + return False + + # Round-robin distribution + which_kind_idx = (i - 1) % len(file_names) + dir_path = dir_paths[which_kind_idx] + out_path = os.path.join( + dir_path, f"{file_names[which_kind_idx]}_{i}.bin" + ) + + print( + f"\rWriting to {out_path}", + end="", + flush=True, + ) + with open(out_path, "wb") as f: + f.write(raster_data) + + return True + except Exception as e: + print(f"Failed to convert GRIB to binary: {e}") + return False + + @staticmethod + def chunk_csv_file(file: str, download_dir: str, chunk_size: int) -> bool: + """Chunk csv file and saves chunks into `download_dir`""" + file_path = os.path.join(download_dir, file) + base_name = os.path.splitext(file)[0] + + if not shutil.which("awk"): + print( + "awk not found. Using pandas to chunk CSV file - this may take a while" + ) + chunk_num = 0 + for chunk in pd.read_csv(file_path, chunksize=chunk_size): + output_file = os.path.join(download_dir, f"{base_name}_{chunk_num}.csv") + chunk.to_csv(output_file, index=False) + print( + f"\rProcessed chunk {chunk_num}", + end="", + flush=True, + ) + chunk_num += 1 + return True + + try: + print(f"Chunking {file} with awk...") + # Using awk for fast CSV chunking + awk_cmd = f""" + cd "{download_dir}" && + awk -v chunk_size="{chunk_size}" -v base_name="{base_name}" -v output_dir="{download_dir}" ' + # Save the header line for the very first line + NR == 1 {{ + header = $0; + next + }} + # If we hit the file line of a new chunk create a new file, + # add header and print out update + (NR - 1) % chunk_size == 1 {{ + chunk_num = int((NR - 2) / chunk_size) + filename = output_dir "/" base_name "_" chunk_num ".csv" + print header > filename + printf "\\rProcessing chunk %d...", chunk_num + fflush() + }} + # Save the current line to the current file + {{ + chunk_num = int((NR - 2) / chunk_size) + filename = output_dir "/" base_name "_" chunk_num ".csv" + print $0 >> filename + }} + END {{ + print "Chunking complete! Created " chunk_num + 1 " chunks" + }} + ' "{file_path}" + """ + + result = subprocess.run( + awk_cmd, shell=True, capture_output=False, text=True + ) + + if result.returncode != 0: + print(f"Awk command failed with return code: {result.returncode}") + return False + + return True + + except Exception as e: + print(f"Chunking error: {e}") + return False diff --git a/contrib/reproducibility/dataset_manager/requirements.txt b/contrib/reproducibility/dataset_manager/requirements.txt new file mode 100644 index 000000000..472f4136d --- /dev/null +++ b/contrib/reproducibility/dataset_manager/requirements.txt @@ -0,0 +1,7 @@ +requests +kaggle +cdsapi>=0.7.4 +numpy +pyarrow~=18.0.0 +pandas +zstandard diff --git a/contrib/reproducibility/figures/BUCK b/contrib/reproducibility/figures/BUCK index 714cb1399..39116204b 100644 --- a/contrib/reproducibility/figures/BUCK +++ b/contrib/reproducibility/figures/BUCK @@ -8,8 +8,9 @@ oncall("data_compression") python_binary( name = "tradeoff-plots", srcs = ["tradeoff-plots.py"], + base_module = "", labels = ["autodeps2_generated"], - main_function = "data_compression.experimental.zstrong.contrib.reproducibility.figures.tradeoff-plots.main", + main_function = "tradeoff-plots.main", deps = [ "fbsource//third-party/pypi/kaleido:kaleido", # @manual "fbsource//third-party/pypi/pandas:pandas", diff --git a/contrib/reproducibility/watermark/runner.cpp b/contrib/reproducibility/watermark/runner.cpp index d8b042c32..c16dfcd55 100644 --- a/contrib/reproducibility/watermark/runner.cpp +++ b/contrib/reproducibility/watermark/runner.cpp @@ -8,11 +8,15 @@ #include #include +namespace { + struct Corpus { std::string name; std::string profile; }; +} // namespace + std::string getHgRoot() { std::string hgRoot; diff --git a/contrib/sddl-syntax-highlighting/README.md b/contrib/sddl-syntax-highlighting/README.md new file mode 100644 index 000000000..d3ff72728 --- /dev/null +++ b/contrib/sddl-syntax-highlighting/README.md @@ -0,0 +1,26 @@ +# SDDL Syntax Highlighting (VS Code) + +A minimal VS Code extension providing TextMate syntax highlighting for OpenZL +SDDL2 (`.sddl`) files. + +## Install (development) + +Symlink this directory into your user extensions folder: + +```bash +ln -s "$(pwd)" ~/.vscode/extensions/openzl.sddl-syntax-0.1.0 +``` + +> **Meta internal users:** Use +> `~/.vscode-fb-stable/extensions/` instead + +Reload VS Code (`Cmd/Ctrl+Shift+P` → "Developer: Reload Window"). Open any +`.sddl` file to verify — the status bar should show "SDDL". + +## Maintenance + +The token set must stay in sync with the SDDL2 tokenizer. The single source of +truth is `tools/sddl2/compiler/Syntax.cpp` (the `strs_to_syms` table) plus the +lexer rules in `tools/sddl2/compiler/tokenizer/Tokenizer.cpp`. When new +keywords or types are added there, add matching patterns to +`syntaxes/sddl.tmLanguage.json`. diff --git a/contrib/sddl-syntax-highlighting/language-configuration.json b/contrib/sddl-syntax-highlighting/language-configuration.json new file mode 100644 index 000000000..3d8826361 --- /dev/null +++ b/contrib/sddl-syntax-highlighting/language-configuration.json @@ -0,0 +1,20 @@ +{ + "comments": { + "lineComment": "#" + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + { "open": "{", "close": "}" }, + { "open": "[", "close": "]" }, + { "open": "(", "close": ")" } + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ] +} diff --git a/contrib/sddl-syntax-highlighting/package.json b/contrib/sddl-syntax-highlighting/package.json new file mode 100644 index 000000000..e0f789342 --- /dev/null +++ b/contrib/sddl-syntax-highlighting/package.json @@ -0,0 +1,35 @@ +{ + "name": "sddl-syntax", + "displayName": "SDDL Syntax Highlighting", + "description": "Syntax highlighting for OpenZL SDDL2 (Simple Data Description Language) files.", + "version": "0.1.0", + "publisher": "openzl", + "engines": { + "vscode": "^1.60.0" + }, + "categories": [ + "Programming Languages" + ], + "contributes": { + "languages": [ + { + "id": "sddl", + "aliases": [ + "SDDL", + "sddl" + ], + "extensions": [ + ".sddl" + ], + "configuration": "./language-configuration.json" + } + ], + "grammars": [ + { + "language": "sddl", + "scopeName": "source.sddl", + "path": "./syntaxes/sddl.tmLanguage.json" + } + ] + } +} diff --git a/contrib/sddl-syntax-highlighting/syntaxes/sddl.tmLanguage.json b/contrib/sddl-syntax-highlighting/syntaxes/sddl.tmLanguage.json new file mode 100644 index 000000000..0b87f3280 --- /dev/null +++ b/contrib/sddl-syntax-highlighting/syntaxes/sddl.tmLanguage.json @@ -0,0 +1,147 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "SDDL", + "scopeName": "source.sddl", + "fileTypes": ["sddl"], + "patterns": [ + { "include": "#comments" }, + { "include": "#numbers" }, + { "include": "#keywords" }, + { "include": "#builtin-functions" }, + { "include": "#builtin-types" }, + { "include": "#operators" }, + { "include": "#punctuation" }, + { "include": "#user-types" }, + { "include": "#identifiers" } + ], + "repository": { + "comments": { + "patterns": [ + { + "name": "comment.line.number-sign.sddl", + "begin": "#", + "end": "$", + "beginCaptures": { + "0": { "name": "punctuation.definition.comment.sddl" } + } + } + ] + }, + "numbers": { + "patterns": [ + { + "name": "constant.numeric.hex.sddl", + "match": "\\b0[xX][0-9a-fA-F]+\\b" + }, + { + "name": "constant.numeric.octal.sddl", + "match": "\\b0[0-7]+\\b" + }, + { + "name": "constant.numeric.decimal.sddl", + "match": "\\b(0|[1-9][0-9]*)\\b" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "storage.type.record.sddl", + "match": "\\brecord\\b" + }, + { + "name": "keyword.control.conditional.sddl", + "match": "\\bwhen\\b" + }, + { + "name": "keyword.control.sddl", + "match": "\\bexpect\\b" + } + ] + }, + "builtin-functions": { + "patterns": [ + { + "name": "support.function.builtin.sddl", + "match": "\\b(sizeof|abs)\\b" + } + ] + }, + "builtin-types": { + "patterns": [ + { + "name": "support.type.builtin.sddl", + "match": "\\b(Byte|Bytes|Int8|UInt8|Int16LE|Int16BE|UInt16LE|UInt16BE|Int32LE|Int32BE|UInt32LE|UInt32BE|Int64LE|Int64BE|UInt64LE|UInt64BE|Float16LE|Float16BE|Float32LE|Float32BE|Float64LE|Float64BE|BFloat16LE|BFloat16BE)\\b" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.comparison.sddl", + "match": "==|!=|<=|>=|<|>" + }, + { + "name": "keyword.operator.logical.sddl", + "match": "&&|\\|\\||!(?!=)" + }, + { + "name": "keyword.operator.bitwise.sddl", + "match": "(?'" - popd || return -} - -upload_corpus $1 $2 diff --git a/cpp/BUCK b/cpp/BUCK index 90e09e566..cbd628551 100644 --- a/cpp/BUCK +++ b/cpp/BUCK @@ -3,7 +3,7 @@ # @noautodeps load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") -load("//data_compression/experimental/zstrong:defs.bzl", "private_headers", "public_headers") +load("../defs.bzl", "private_headers", "public_headers") oncall("data_compression") @@ -20,6 +20,6 @@ cpp_library( "src/**/*.hpp", ])), exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "..:zstronglib", ], ) diff --git a/cpp/include/openzl/cpp/CCtx.hpp b/cpp/include/openzl/cpp/CCtx.hpp index b0e3dc0b4..c11651dd3 100644 --- a/cpp/include/openzl/cpp/CCtx.hpp +++ b/cpp/include/openzl/cpp/CCtx.hpp @@ -4,6 +4,7 @@ #include #include "openzl/cpp/CParam.hpp" +#include "openzl/cpp/CompressIntrospectionHooks.hpp" #include "openzl/cpp/Compressor.hpp" #include "openzl/cpp/Exception.hpp" #include "openzl/cpp/Input.hpp" @@ -21,7 +22,7 @@ namespace visualizer { class CompressionTraceHooks; // forward declaration -}; // namespace visualizer +} // namespace visualizer class CCtx { public: @@ -95,11 +96,18 @@ class CCtx { GraphID graph, const poly::optional& params = poly::nullopt); - void writeTraces(bool enabled); + void writeTraces(bool enabled, bool streamPreview = true); + /** + * @returns a pair of the latest trace, and a map from internal stream IDs + * to a pair of the raw stream buffer, and a buffer to the string lengths of + * the corresponding stream if it is a string stream, otherwise "". + */ std::pair< poly::string_view, - std::map>> + std::map< + std::string, + std::pair>> getLatestTrace(); protected: @@ -107,7 +115,7 @@ class CCtx { private: detail::NonNullUniqueCPtr cctx_; - std::unique_ptr hooks_{ nullptr }; + std::unique_ptr visHooks_{ nullptr }; }; class CCtxRef : public CCtx { diff --git a/cpp/include/openzl/cpp/CParam.hpp b/cpp/include/openzl/cpp/CParam.hpp index 2c9c503d5..2f1c517b5 100644 --- a/cpp/include/openzl/cpp/CParam.hpp +++ b/cpp/include/openzl/cpp/CParam.hpp @@ -13,6 +13,7 @@ enum class CParam { PermissiveCompression = ZL_CParam_permissiveCompression, CompressedChecksum = ZL_CParam_compressedChecksum, ContentChecksum = ZL_CParam_contentChecksum, + StoreOnExpansion = ZL_CParam_storeOnExpansion, MinStreamSize = ZL_CParam_minStreamSize, }; } diff --git a/cpp/include/openzl/cpp/Codecs.hpp b/cpp/include/openzl/cpp/Codecs.hpp index 5ab3cba58..c52959b04 100644 --- a/cpp/include/openzl/cpp/Codecs.hpp +++ b/cpp/include/openzl/cpp/Codecs.hpp @@ -4,6 +4,7 @@ #include "openzl/cpp/codecs/ACE.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Bitpack.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/Bitsplit.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Bitunpack.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/BruteForce.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Compress.hpp" // IWYU pragma: export @@ -19,12 +20,19 @@ #include "openzl/cpp/codecs/Flatpack.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/FloatDeconstruct.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Illegal.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/Lz.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/Lz4.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/MergeSorted.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/MuxLengths.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/ParseInt.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/Partition.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Prefix.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Quantize.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/RangePack.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/SDDL.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/SDDL2.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/SegmentSerial.hpp" // IWYU pragma: export +#include "openzl/cpp/codecs/Sentinel.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Split.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/SplitByStruct.hpp" // IWYU pragma: export #include "openzl/cpp/codecs/Store.hpp" // IWYU pragma: export diff --git a/cpp/include/openzl/cpp/CompressIntrospectionHooks.hpp b/cpp/include/openzl/cpp/CompressIntrospectionHooks.hpp index 5f0220290..739e5faa6 100644 --- a/cpp/include/openzl/cpp/CompressIntrospectionHooks.hpp +++ b/cpp/include/openzl/cpp/CompressIntrospectionHooks.hpp @@ -16,12 +16,49 @@ class CompressIntrospectionHooks { return &rawHooks_; } - virtual void on_ZL_Encoder_getScratchSpace(ZL_Encoder* ei, size_t size) {} + virtual void on_segmenterEncode_start(ZL_Segmenter* segCtx) + { + (void)segCtx; + } + virtual void on_segmenterEncode_end(ZL_Segmenter* segCtx, ZL_Report r) + { + (void)segCtx; + (void)r; + } + virtual void on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams) + { + (void)segCtx; + (void)numElts; + (void)numInputs; + (void)startingGraphID; + (void)rGraphParams; + } + virtual void on_ZL_Segmenter_processChunk_end( + ZL_Segmenter* segCtx, + ZL_Report r) + { + (void)segCtx; + (void)r; + } + + virtual void on_ZL_Encoder_getScratchSpace(ZL_Encoder* ei, size_t size) + { + (void)ei; + (void)size; + } virtual void on_ZL_Encoder_sendCodecHeader( ZL_Encoder* eictx, const void* trh, size_t trhSize) { + (void)eictx; + (void)trh; + (void)trhSize; } virtual void on_ZL_Encoder_createTypedStream( ZL_Encoder* eic, @@ -30,9 +67,18 @@ class CompressIntrospectionHooks { size_t eltWidth, ZL_Output* createdStream) { + (void)eic; + (void)outStreamIndex; + (void)eltsCapacity; + (void)eltWidth; + (void)createdStream; } - virtual void on_ZL_Graph_getScratchSpace(ZL_Graph* gctx, size_t size) {} + virtual void on_ZL_Graph_getScratchSpace(ZL_Graph* gctx, size_t size) + { + (void)gctx; + (void)size; + } virtual void on_ZL_Edge_setMultiInputDestination_wParams( ZL_Graph* gctx, ZL_Edge* inputs[], @@ -40,6 +86,11 @@ class CompressIntrospectionHooks { ZL_GraphID gid, const ZL_LocalParams* lparams) { + (void)gctx; + (void)inputs; + (void)nbInputs; + (void)gid; + (void)lparams; } virtual void on_migraphEncode_start( @@ -49,6 +100,11 @@ class CompressIntrospectionHooks { ZL_Edge* inputs[], size_t nbInputs) { + (void)gctx; + (void)compressor; + (void)gid; + (void)inputs; + (void)nbInputs; } virtual void on_migraphEncode_end( ZL_Graph*, @@ -56,6 +112,9 @@ class CompressIntrospectionHooks { size_t nbSuccessors, ZL_Report graphExecResult) { + (void)successorGraphs; + (void)nbSuccessors; + (void)graphExecResult; } virtual void on_codecEncode_start( ZL_Encoder* eictx, @@ -64,6 +123,11 @@ class CompressIntrospectionHooks { const ZL_Input* inStreams[], size_t nbInStreams) { + (void)eictx; + (void)compressor; + (void)nid; + (void)inStreams; + (void)nbInStreams; } virtual void on_codecEncode_end( ZL_Encoder*, @@ -71,6 +135,9 @@ class CompressIntrospectionHooks { size_t nbOutputs, ZL_Report codecExecResult) { + (void)outStreams; + (void)nbOutputs; + (void)codecExecResult; } virtual void on_cctx_convertOneInput( const ZL_CCtx* const cctx, @@ -79,20 +146,31 @@ class CompressIntrospectionHooks { const ZL_Type portTypeMask, const ZL_Report conversionResult) { + (void)cctx; + (void)inType; + (void)portTypeMask; + (void)conversionResult; } virtual void on_ZL_CCtx_compressMultiTypedRef_start( - ZL_CCtx const* const cctx, + ZL_CCtx* cctx, void const* const dst, size_t const dstCapacity, ZL_TypedRef const* const inputs[], size_t const nbInputs) { + (void)cctx; + (void)dst; + (void)dstCapacity; + (void)inputs; + (void)nbInputs; } virtual void on_ZL_CCtx_compressMultiTypedRef_end( ZL_CCtx const* const cctx, ZL_Report const result) { + (void)cctx; + (void)result; } private: diff --git a/cpp/include/openzl/cpp/Compressor.hpp b/cpp/include/openzl/cpp/Compressor.hpp index ddeb0416b..8acebdd00 100644 --- a/cpp/include/openzl/cpp/Compressor.hpp +++ b/cpp/include/openzl/cpp/Compressor.hpp @@ -127,6 +127,8 @@ class Compressor { void selectStartingGraph(GraphID graph); + GraphID getStartingGraph() const; + /// @returns a serialized representation of this compressor. /// /// @note consult zl_compressor_serialization.h for discussion of the diff --git a/cpp/include/openzl/cpp/CustomDecoder.hpp b/cpp/include/openzl/cpp/CustomDecoder.hpp index 7900be7e3..6edce9353 100644 --- a/cpp/include/openzl/cpp/CustomDecoder.hpp +++ b/cpp/include/openzl/cpp/CustomDecoder.hpp @@ -20,6 +20,9 @@ class DecoderState { poly::span singletonInputs, poly::span variableInputs); + DecoderState(const DecoderState&) = delete; + DecoderState& operator=(const DecoderState&) = delete; + poly::span singletonInputs() const { return singletonInputs_; @@ -62,7 +65,7 @@ class CustomDecoder { static void registerCustomDecoder( DCtx& dctx, - std::shared_ptr decoder); + std::shared_ptr decoder); }; } // namespace openzl diff --git a/cpp/include/openzl/cpp/CustomEncoder.hpp b/cpp/include/openzl/cpp/CustomEncoder.hpp index f98a51884..35334d24f 100644 --- a/cpp/include/openzl/cpp/CustomEncoder.hpp +++ b/cpp/include/openzl/cpp/CustomEncoder.hpp @@ -19,6 +19,9 @@ class EncoderState { public: EncoderState(ZL_Encoder* encoder, poly::span inputs); + EncoderState(const EncoderState&) = delete; + EncoderState& operator=(const EncoderState&) = delete; + ZL_Encoder* get() { return encoder_; @@ -83,7 +86,7 @@ class CustomEncoder { static NodeID registerCustomEncoder( Compressor& compressor, - std::shared_ptr encoder); + std::shared_ptr encoder); }; } // namespace openzl diff --git a/cpp/include/openzl/cpp/DCtx.hpp b/cpp/include/openzl/cpp/DCtx.hpp index a069b86b5..1aa14af90 100644 --- a/cpp/include/openzl/cpp/DCtx.hpp +++ b/cpp/include/openzl/cpp/DCtx.hpp @@ -2,8 +2,12 @@ #pragma once +#include +#include +#include #include +#include "openzl/cpp/DecompressIntrospectionHooks.hpp" #include "openzl/cpp/Output.hpp" #include "openzl/cpp/detail/NonNullUniqueCPtr.hpp" #include "openzl/cpp/poly/Span.hpp" @@ -15,6 +19,10 @@ namespace openzl { class CustomDecoder; +namespace visualizer { +class DecompressionTraceHooks; // forward declaration +} // namespace visualizer + enum class DParam { StickyParameters = ZL_DParam_stickyParameters, CheckCompressedChecksum = ZL_DParam_checkCompressedChecksum, @@ -30,12 +38,14 @@ class DCtx { DCtx(); DCtx(const DCtx&) = delete; - DCtx(DCtx&&) = default; + // Can't be declared default in the header because the forward-declared + // DecompressionTraceHooks is an incomplete type here. + DCtx(DCtx&&) noexcept; /* = default; */ DCtx& operator=(const DCtx&) = delete; - DCtx& operator=(DCtx&&) = default; + DCtx& operator=(DCtx&&) noexcept; /* = default; */ - ~DCtx() = default; + ~DCtx(); /* = default; */ /// @returns pointer to the underlying ZL_DCtx* object. ZL_DCtx* get() @@ -64,6 +74,20 @@ class DCtx { void registerCustomDecoder(const ZL_MIDecoderDesc& desc); void registerCustomDecoder(std::shared_ptr decoder); + void writeTraces(bool enabled, bool streamPreview = true); + + /** + * @returns a pair of the latest trace, and a map from internal stream IDs + * to a pair of the raw stream buffer, and a buffer to the string lengths of + * the corresponding stream if it is a string stream, otherwise "". + */ + std::pair< + poly::string_view, + std::map< + std::string, + std::pair>> + getLatestTrace(); + poly::string_view getErrorContextString(ZL_Error error) const; template @@ -91,6 +115,7 @@ class DCtx { private: detail::NonNullUniqueCPtr dctx_; + std::unique_ptr visHooks_{ nullptr }; }; class DCtxRef : public DCtx { diff --git a/cpp/include/openzl/cpp/DecompressIntrospectionHooks.hpp b/cpp/include/openzl/cpp/DecompressIntrospectionHooks.hpp new file mode 100644 index 000000000..05ed97209 --- /dev/null +++ b/cpp/include/openzl/cpp/DecompressIntrospectionHooks.hpp @@ -0,0 +1,91 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/zl_introspection.h" + +namespace openzl { + +class DecompressIntrospectionHooks { + public: + DecompressIntrospectionHooks(); + virtual ~DecompressIntrospectionHooks() = default; + + DecompressIntrospectionHooks(const DecompressIntrospectionHooks&) = delete; + DecompressIntrospectionHooks& operator=( + const DecompressIntrospectionHooks&) = delete; + DecompressIntrospectionHooks(DecompressIntrospectionHooks&&) = delete; + DecompressIntrospectionHooks& operator=(DecompressIntrospectionHooks&&) = + delete; + + ZL_DecompressIntrospectionHooks* getRawHooks() + { + return &rawHooks_; + } + + virtual void on_ZL_DCtx_decompressMultiTBuffer_start( + ZL_DCtx* dctx, + size_t nbOutputs, + const void* framePtr, + size_t frameSize) + { + (void)dctx; + (void)nbOutputs; + (void)framePtr; + (void)frameSize; + } + virtual void on_ZL_DCtx_decompressMultiTBuffer_end( + ZL_DCtx* dctx, + ZL_Report result) + { + (void)dctx; + (void)result; + } + + virtual void on_decompressChunk_start(ZL_DCtx* dctx, size_t chunkIndex) + { + (void)dctx; + (void)chunkIndex; + } + virtual void on_decompressChunk_end(ZL_DCtx* dctx, ZL_Report result) + { + (void)dctx; + (void)result; + } + + virtual void on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize) + { + (void)dictx; + (void)trh; + (void)trhSize; + } + + virtual void on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) + { + (void)dictx; + (void)inStreams; + (void)nbInStreams; + } + virtual void on_codecDecode_end( + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) + { + (void)dictx; + (void)outStreams; + (void)nbOutStreams; + (void)result; + } + + private: + ZL_DecompressIntrospectionHooks rawHooks_{}; +}; + +} // namespace openzl diff --git a/cpp/include/openzl/cpp/Exception.hpp b/cpp/include/openzl/cpp/Exception.hpp index a89bd0128..058260693 100644 --- a/cpp/include/openzl/cpp/Exception.hpp +++ b/cpp/include/openzl/cpp/Exception.hpp @@ -105,7 +105,7 @@ class ExceptionBuilder { // ExceptionBuilder should only be called with one call to one of // withResult() or withErrorCode(). assert(!error_); - error_ = (ZL_Error){ ._code = code }; + error_ = (ZL_Error){ ._code = code, ._info = {} }; return std::move(*this); } @@ -145,6 +145,10 @@ template <> ExceptionBuilder&& ExceptionBuilder::addErrorContext( const ZL_CompressorDeserializer* deserializer) && noexcept; +template <> +ExceptionBuilder&& ExceptionBuilder::addErrorContext( + const ZL_Graph* graph) && noexcept; + /** * Helper free function to (possibly) convert a result into an exception and * throw it. diff --git a/cpp/include/openzl/cpp/FrameInfo.hpp b/cpp/include/openzl/cpp/FrameInfo.hpp index 56c7ba95c..cf8beaf8b 100644 --- a/cpp/include/openzl/cpp/FrameInfo.hpp +++ b/cpp/include/openzl/cpp/FrameInfo.hpp @@ -26,18 +26,21 @@ class FrameInfo { return info_.get(); } + size_t formatVersion() const; size_t numOutputs() const; Type outputType(size_t index) const; size_t outputContentSize(size_t index) const; + poly::string_view comment() const; - size_t unwrap( - ZL_Report report, + template + typename ResultType::ValueType unwrap( + ResultType result, poly::string_view msg = {}, poly::source_location location = poly::source_location::current()) const { return openzl::unwrap( - report, std::move(msg), nullptr, std::move(location)); + result, std::move(msg), nullptr, std::move(location)); } private: diff --git a/cpp/include/openzl/cpp/FunctionGraph.hpp b/cpp/include/openzl/cpp/FunctionGraph.hpp index 99dfef6a4..b7b38d435 100644 --- a/cpp/include/openzl/cpp/FunctionGraph.hpp +++ b/cpp/include/openzl/cpp/FunctionGraph.hpp @@ -119,6 +119,25 @@ class GraphState { const poly::optional& params = poly::nullopt) const; + poly::string_view getErrorContextString(ZL_Error error) const; + + template + poly::string_view getErrorContextString(ResultType result) const + { + return getErrorContextString(ZL_RES_error(result)); + } + + template + typename ResultType::ValueType unwrap( + ResultType result, + poly::string_view msg = {}, + poly::source_location location = + poly::source_location::current()) const + { + return openzl::unwrap( + result, std::move(msg), this, std::move(location)); + } + private: ZL_Graph* graph_; std::vector edges_; @@ -143,6 +162,6 @@ class FunctionGraph { static GraphID registerFunctionGraph( Compressor& compressor, - std::shared_ptr functionGraph); + std::shared_ptr functionGraph); }; } // namespace openzl diff --git a/cpp/include/openzl/cpp/LocalParams.hpp b/cpp/include/openzl/cpp/LocalParams.hpp index 8919d6781..85b57eb50 100644 --- a/cpp/include/openzl/cpp/LocalParams.hpp +++ b/cpp/include/openzl/cpp/LocalParams.hpp @@ -67,7 +67,7 @@ class LocalParams { } void addRefParam(ZL_RefParam param); - void addRefParam(int key, const void* ref); + void addRefParam(int key, const void* ref, size_t size = 0); poly::span getIntParams() const { diff --git a/cpp/include/openzl/cpp/Selector.hpp b/cpp/include/openzl/cpp/Selector.hpp index 5a84f1efd..8674eb04f 100644 --- a/cpp/include/openzl/cpp/Selector.hpp +++ b/cpp/include/openzl/cpp/Selector.hpp @@ -20,6 +20,16 @@ class SelectorState { public: explicit SelectorState(GraphState& state) : state_(&state) {} + ZL_Graph* get() + { + return state_->get(); + } + + const ZL_Graph* get() const + { + return state_->get(); + } + poly::span customGraphs() const { return state_->customGraphs(); @@ -82,7 +92,7 @@ class Selector : private FunctionGraph { static GraphID registerSelector( Compressor& compressor, - std::shared_ptr selector); + std::shared_ptr selector); private: void graph(GraphState& state) const override; diff --git a/cpp/include/openzl/cpp/codecs/Bitsplit.hpp b/cpp/include/openzl/cpp/codecs/Bitsplit.hpp new file mode 100644 index 000000000..bd4a76752 --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/Bitsplit.hpp @@ -0,0 +1,48 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_bitsplit.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" +#include "openzl/cpp/codecs/Node.hpp" + +namespace openzl { +namespace nodes { +struct BitsplitTop8 : public SimplePipeNode { + public: + static constexpr NodeID node = ZL_NODE_BITSPLIT_TOP8; + + static constexpr NodeMetadata<1, 0, 1> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .variableOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "bit_ranges" } }, + .description = "Split numeric into top 8 significant bits and remainder" + }; +}; + +struct BitsplitFP : public SimplePipeNode { + public: + static constexpr NodeID node = ZL_NODE_BITSPLIT_FP; + + static constexpr NodeMetadata<1, 0, 1> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .variableOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "bit_ranges" } }, + .description = "Split IEEE 754 floats into mantissa, exponent, and sign" + }; +}; + +struct BitsplitBF16 : public SimplePipeNode { + public: + static constexpr NodeID node = ZL_NODE_BITSPLIT_BF16; + + static constexpr NodeMetadata<1, 0, 1> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .variableOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "bit_ranges" } }, + .description = "Split bfloat16 into mantissa, exponent, and sign" + }; +}; +} // namespace nodes +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/Lz.hpp b/cpp/include/openzl/cpp/codecs/Lz.hpp new file mode 100644 index 000000000..6179071bc --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/Lz.hpp @@ -0,0 +1,39 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_lz.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" +#include "openzl/cpp/codecs/Node.hpp" + +namespace openzl { +namespace nodes { +struct Lz : public Node { + public: + static constexpr NodeID node = ZL_NODE_LZ; + + static constexpr NodeMetadata<1, 4> metadata = { + .inputs = { InputMetadata{ .type = Type::Serial } }, + .singletonOutputs = { OutputMetadata{ .type = Type::Serial, + .name = "literals" }, + OutputMetadata{ .type = Type::Numeric, + .name = "offsets" }, + OutputMetadata{ .type = Type::Numeric, + .name = "literal lengths" }, + OutputMetadata{ .type = Type::Numeric, + .name = "match lengths" } }, + .description = "LZ77 compress a serial byte stream", + }; + + Lz() {} + + NodeID baseNode() const override + { + return node; + } + + ~Lz() override = default; +}; +} // namespace nodes +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/Lz4.hpp b/cpp/include/openzl/cpp/codecs/Lz4.hpp new file mode 100644 index 000000000..ba151628b --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/Lz4.hpp @@ -0,0 +1,46 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_lz4.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Graph.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" + +namespace openzl { +namespace graphs { +struct Lz4 : public Graph { + public: + static constexpr GraphID graph = ZL_GRAPH_LZ4; + + static constexpr GraphMetadata<1> metadata = { + .inputs = { InputMetadata{ .typeMask = TypeMask::Serial } }, + .description = "Lz4 compress the input data", + }; + + Lz4() {} + explicit Lz4(int compressionLevel) : compressionLevel_(compressionLevel) {} + + GraphID baseGraph() const override + { + return graph; + } + + poly::optional parameters() const override + { + LocalParams lp; + if (compressionLevel_.has_value()) { + lp.addIntParam( + ZL_LZ4_COMPRESSION_LEVEL_OVERRIDE_PID, + compressionLevel_.value()); + } + return GraphParameters{ .localParams = std::move(lp) }; + } + + ~Lz4() override = default; + + private: + poly::optional compressionLevel_; +}; +} // namespace graphs +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/MuxLengths.hpp b/cpp/include/openzl/cpp/codecs/MuxLengths.hpp new file mode 100644 index 000000000..6fc696ee9 --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/MuxLengths.hpp @@ -0,0 +1,74 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_mux_lengths.h" +#include "openzl/codecs/zl_store.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" +#include "openzl/cpp/codecs/Node.hpp" + +namespace openzl { +namespace nodes { + +class MuxLengths : public Node { + public: + static constexpr NodeID node = ZL_NODE_MUX_LENGTHS; + + static constexpr NodeMetadata<2, 2> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric, + .name = "literal_lengths" }, + InputMetadata{ .type = Type::Numeric, + .name = "match_lengths" } }, + .singletonOutputs = { OutputMetadata{ .type = Type::Serial, + .name = "muxed_lengths" }, + OutputMetadata{ .type = Type::Numeric, + .name = "long_lengths" } }, + .description = + "Multiplex literal and match lengths into a single byte stream with overflow", + }; + + explicit MuxLengths( + poly::optional splitPoint = poly::nullopt, + poly::optional matchLengthBias = poly::nullopt) + : splitPoint_(splitPoint), matchLengthBias_(matchLengthBias) + { + } + + NodeID baseNode() const override + { + return node; + } + + poly::optional parameters() const override + { + LocalParams params; + if (splitPoint_.has_value()) { + params.addIntParam(ZL_MUX_LENGTHS_SPLIT_POINT_PID, *splitPoint_); + } + if (matchLengthBias_.has_value()) { + params.addIntParam( + ZL_MUX_LENGTHS_MATCH_LENGTH_BIAS_PID, *matchLengthBias_); + } + return NodeParameters{ .localParams = std::move(params) }; + } + + GraphID operator()( + Compressor& compressor, + GraphID muxedLengths, + GraphID longLengths = ZL_GRAPH_STORE) const + { + return buildGraph( + compressor, + std::initializer_list{ muxedLengths, longLengths }); + } + + ~MuxLengths() override = default; + + private: + poly::optional splitPoint_; + poly::optional matchLengthBias_; +}; + +} // namespace nodes +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/Partition.hpp b/cpp/include/openzl/cpp/codecs/Partition.hpp new file mode 100644 index 000000000..e50074ec2 --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/Partition.hpp @@ -0,0 +1,80 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_partition.h" +#include "openzl/codecs/zl_store.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" +#include "openzl/cpp/codecs/Node.hpp" + +#include + +namespace openzl { +namespace nodes { + +class Partition : public Node { + public: + static constexpr NodeID node = ZL_NODE_PARTITION; + + static constexpr NodeMetadata<1, 2> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .singletonOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "partitions" }, + OutputMetadata{ .type = Type::Serial, + .name = "offsets" } }, + .description = + "Partition unsigned integer values into buckets and extra bits using configurable partition boundaries", + }; + + /// Construct with a preset ID (1-4). + explicit Partition(ZL_PartitionParamsPreset preset) : preset_(preset) {} + + explicit Partition( + uint64_t startValue, + std::vector partitionSizes) + : preset_(ZL_PartitionParamsPreset_custom) + { + copyParam_.push_back(startValue); + copyParam_.insert( + copyParam_.end(), partitionSizes.begin(), partitionSizes.end()); + } + + NodeID baseNode() const override + { + return node; + } + + poly::optional parameters() const override + { + LocalParams params; + if (preset_ == ZL_PartitionParamsPreset_custom) { + params.addCopyParam( + ZL_PARTITION_CUSTOM_PID, + copyParam_.data(), + copyParam_.size() * sizeof(uint64_t)); + } else { + params.addIntParam(ZL_PARTITION_PRESET_PID, preset_); + } + return NodeParameters{ .localParams = std::move(params) }; + } + + GraphID operator()( + Compressor& compressor, + GraphID partitions, + GraphID offsets = ZL_GRAPH_STORE) const + { + return buildGraph( + compressor, + std::initializer_list{ partitions, offsets }); + } + + ~Partition() override = default; + + private: + ZL_PartitionParamsPreset preset_; + std::vector copyParam_; +}; + +} // namespace nodes +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/SDDL2.hpp b/cpp/include/openzl/cpp/codecs/SDDL2.hpp new file mode 100644 index 000000000..ccd78aef2 --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/SDDL2.hpp @@ -0,0 +1,78 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include +#include + +#include "openzl/codecs/zl_sddl2.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/Exception.hpp" +#include "openzl/cpp/codecs/Graph.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" +#include "openzl/cpp/poly/StringView.hpp" + +namespace openzl { +namespace graphs { + +class SDDL2 : public Graph { + public: + static constexpr GraphID graph = ZL_GRAPH_SDDL2; + + static constexpr GraphMetadata<1> metadata = { + .inputs = { InputMetadata{ .typeMask = TypeMask::Serial } }, + .description = + "Auto-segmenting graph that runs the Simple Data Description Language v2 over the input. Must be given bytecode and successor; defaults to 16 MiB chunking when no chunk-size hint is provided, and also treats a 0 hint as the default chunk size. Refer to the SDDL documentation for usage instructions.", + }; + + explicit SDDL2( + poly::string_view bytecode, + GraphID successor, + size_t chunkByteSize = 0) + : bytecode_(bytecode), + successor_(successor), + chunkByteSize_(validateChunkByteSize(chunkByteSize)) + { + } + + ~SDDL2() override = default; + + SDDL2(const SDDL2&) = default; + SDDL2& operator=(const SDDL2&) = default; + SDDL2(SDDL2&&) = default; + SDDL2& operator=(SDDL2&&) = default; + + GraphID baseGraph() const override + { + return graph; + } + + poly::optional parameters() const override + { + LocalParams lp; + lp.addCopyParam( + SDDL2_BYTECODE_PARAM, bytecode_.data(), bytecode_.size()); + if (chunkByteSize_ != 0) { + lp.addIntParam(SDDL2_CHUNK_BYTE_SIZE_PARAM, chunkByteSize_); + } + return GraphParameters{ .customGraphs = { { successor_ } }, + .localParams = std::move(lp) }; + } + + private: + static int validateChunkByteSize(size_t chunkByteSize) + { + if (chunkByteSize > static_cast(INT_MAX)) { + throw Exception( + "Bad SDDL2 chunk size: " + std::to_string(chunkByteSize)); + } + return static_cast(chunkByteSize); + } + + poly::string_view bytecode_; + GraphID successor_; + int chunkByteSize_; +}; + +} // namespace graphs +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/SegmentSerial.hpp b/cpp/include/openzl/cpp/codecs/SegmentSerial.hpp new file mode 100644 index 000000000..160752bab --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/SegmentSerial.hpp @@ -0,0 +1,74 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_segmenters.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Graph.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" + +namespace openzl { +namespace graphs { + +class SegmentSerial : public Graph { + public: + static constexpr GraphID graph = ZL_SEGMENT_SERIAL; + + static constexpr GraphMetadata<1> metadata = { + .inputs = { InputMetadata{ .typeMask = TypeMask::Serial } }, + .description = + "Auto-segmenting graph for serial inputs. Chunks the input into " + "independently compressed segments and forwards each chunk to a " + "successor graph (defaults to ZL_GRAPH_COMPRESS_GENERIC). " + "Defaults to 16 MiB chunking when no chunk-size hint is provided; " + "treats a 0 hint as the default chunk size.", + }; + + explicit SegmentSerial(GraphID successor, size_t chunkByteSize = 0) + : successor_(successor), chunkByteSize_(chunkByteSize) + { + } + + ~SegmentSerial() override = default; + + SegmentSerial(const SegmentSerial&) = default; + SegmentSerial& operator=(const SegmentSerial&) = default; + SegmentSerial(SegmentSerial&&) = default; + SegmentSerial& operator=(SegmentSerial&&) = default; + + GraphID baseGraph() const override + { + return graph; + } + + /// Delegates to ZL_Compressor_buildSerialSegmenter2 so the C builder + /// is the single source of truth for chunkByteSize validation, default + /// substitution, and the resulting parameter_invalid error code. + GraphID parameterize(Compressor& compressor) const override + { + return compressor.unwrap(ZL_Compressor_buildSerialSegmenter2( + compressor.get(), chunkByteSize_, successor_)); + } + + /// Used by setMultiInputDestination in FunctionGraph contexts. Mirrors + /// the C builder's wire-level parameterization but without validation — + /// callers in that path must pass a chunkByteSize that fits in int. + poly::optional parameters() const override + { + LocalParams lp; + if (chunkByteSize_ != 0) { + lp.addIntParam( + ZL_SEGMENT_SERIAL_CHUNK_BYTE_SIZE_PARAM, + static_cast(chunkByteSize_)); + } + return GraphParameters{ .customGraphs = { { successor_ } }, + .localParams = std::move(lp) }; + } + + private: + GraphID successor_; + size_t chunkByteSize_; +}; + +} // namespace graphs +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/Sentinel.hpp b/cpp/include/openzl/cpp/codecs/Sentinel.hpp new file mode 100644 index 000000000..11102e7da --- /dev/null +++ b/cpp/include/openzl/cpp/codecs/Sentinel.hpp @@ -0,0 +1,122 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include "openzl/codecs/zl_sentinel.h" +#include "openzl/codecs/zl_store.h" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/codecs/Metadata.hpp" +#include "openzl/cpp/codecs/Node.hpp" + +#include + +namespace openzl { +namespace nodes { + +/** + * Sentinel-byte node: narrows values < 255 to 1 byte, stores values >= 255 + * in a full-width exceptions stream with sentinel marker 255. + */ +struct SentinelByte : public Node { + static constexpr NodeID node = ZL_NODE_SENTINEL_BYTE; + + static constexpr NodeMetadata<1, 2> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .singletonOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "values" }, + OutputMetadata{ .type = Type::Numeric, + .name = "exceptions" } }, + .description = + "Narrow values < 255 to 1 byte, route exceptions at full width", + }; + + NodeID baseNode() const override + { + return node; + } + + GraphID + operator()(Compressor& compressor, GraphID values, GraphID exceptions) const + { + return buildGraph( + compressor, + std::initializer_list{ values, exceptions }); + } + + ~SentinelByte() override = default; +}; + +/** + * General sentinel node: marks designated exception positions with a sentinel + * value and routes original values to an exceptions stream. + * + * This node requires local params (exception indices + sentinel value) and + * is intended to be invoked via run() within a function graph. + */ +class Sentinel : public Node { + public: + explicit Sentinel( + poly::span exceptionIndices, + poly::optional sentinel = poly::nullopt) + : exceptionIndices_(exceptionIndices), sentinel_(sentinel) + { + } + + static constexpr NodeID node = ZL_NODE_SENTINEL_NUM; + + static constexpr NodeMetadata<1, 2> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .singletonOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "values" }, + OutputMetadata{ .type = Type::Numeric, + .name = "exceptions" } }, + .description = + "Replace values at exception indices with a sentinel marker", + }; + + NodeID baseNode() const override + { + return node; + } + + poly::optional parameters() const override + { + // Use copy params instead of ref params. When using in runNode copy + // params aren't actually copied, but when using this at graph + // construction time they are (and have to be). + LocalParams params; + params.addCopyParam( + ZL_SENTINEL_INDICES_PID, + exceptionIndices_.data(), + exceptionIndices_.size_bytes()); + if (sentinel_.has_value()) { + params.addCopyParam( + ZL_SENTINEL_VALUE_PID, + &sentinel_.value(), + sizeof(uint64_t)); + } + return NodeParameters{ .localParams = std::move(params) }; + } + + Edge::RunNodeResult run(Edge& edge) const override + { + return edge.runNode(baseNode(), parameters()); + } + + GraphID + operator()(Compressor& compressor, GraphID values, GraphID exceptions) const + { + return buildGraph( + compressor, + std::initializer_list{ values, exceptions }); + } + + ~Sentinel() override = default; + + private: + poly::span exceptionIndices_; + poly::optional sentinel_; +}; + +} // namespace nodes +} // namespace openzl diff --git a/cpp/include/openzl/cpp/codecs/Split.hpp b/cpp/include/openzl/cpp/codecs/Split.hpp index c09bd9150..8d55313e3 100644 --- a/cpp/include/openzl/cpp/codecs/Split.hpp +++ b/cpp/include/openzl/cpp/codecs/Split.hpp @@ -79,6 +79,41 @@ class SplitString : public Split { using Split::Split; }; +class SplitByRange : public SimplePipeNode { + public: + static constexpr NodeID node = ZL_NODE_SPLIT_BYRANGE; + + static constexpr NodeMetadata<1, 0, 1> metadata = { + .inputs = { InputMetadata{ .type = Type::Numeric } }, + .variableOutputs = { OutputMetadata{ .type = Type::Numeric, + .name = "range_segments" } }, + .description = + "Split numeric input into segments at detected range boundaries" + }; + + SplitByRange() = default; + explicit SplitByRange(int minSegmentSize) : minSegmentSize_(minSegmentSize) + { + } + + poly::optional parameters() const override + { + if (minSegmentSize_.has_value()) { + LocalParams params; + params.addIntParam( + ZL_SPLIT_BYRANGE_MIN_SEGMENT_SIZE_PID, + minSegmentSize_.value()); + return NodeParameters{ .localParams = std::move(params) }; + } + return poly::nullopt; + } + + ~SplitByRange() override = default; + + private: + poly::optional minSegmentSize_; +}; + } // namespace nodes namespace graphs { struct Split { diff --git a/cpp/include/openzl/cpp/poly/Iterator.hpp b/cpp/include/openzl/cpp/poly/Iterator.hpp index 718a9f194..faf089351 100644 --- a/cpp/include/openzl/cpp/poly/Iterator.hpp +++ b/cpp/include/openzl/cpp/poly/Iterator.hpp @@ -45,6 +45,7 @@ std::size_t size(const C& c) template constexpr std::size_t size(T (&array)[N]) noexcept { + (void)array; return N; } diff --git a/cpp/src/openzl/cpp/CCtx.cpp b/cpp/src/openzl/cpp/CCtx.cpp index 3f5fca3d7..584586a40 100644 --- a/cpp/src/openzl/cpp/CCtx.cpp +++ b/cpp/src/openzl/cpp/CCtx.cpp @@ -67,15 +67,16 @@ size_t CCtx::compress(poly::span output, poly::span inputs) std::string CCtx::compress(poly::span inputs) { - size_t inputSize = 0; + size_t bound = 0; for (auto const& input : inputs) { - inputSize += input.contentSize(); + size_t inputSize = input.contentSize(); if (input.type() == Type::String) { inputSize += input.numElts() * sizeof(uint32_t); } + bound += compressBound(inputSize); } std::string output; - output.resize(compressBound(inputSize), '\0'); + output.resize(bound, '\0'); output.resize(compress(output, inputs)); return output; } @@ -149,29 +150,32 @@ void CCtx::selectStartingGraph( selectStartingGraphImpl(*this, compressor.get(), graph, params); } -void CCtx::writeTraces(bool enabled) +void CCtx::writeTraces(bool enabled, bool streamPreview) { - if ((bool)hooks_ == enabled) { + if ((bool)visHooks_ == enabled) { return; // no need to re-create or re-destroy the hooks } if (enabled) { - hooks_ = std::make_unique(); - unwrap(ZL_CCtx_attachIntrospectionHooks(get(), hooks_->getRawHooks())); + visHooks_ = std::make_unique( + streamPreview); + unwrap(ZL_CCtx_attachIntrospectionHooks( + get(), visHooks_->getRawHooks())); } else { unwrap(ZL_CCtx_detachAllIntrospectionHooks(get())); - hooks_.reset(); + visHooks_.reset(); } } std::pair< poly::string_view, - std::map>> + std::map>> CCtx::getLatestTrace() { - if (!hooks_) { + if (!visHooks_) { throw Exception("Tracing is not enabled"); } - return hooks_->getLatestTrace(); + return (static_cast(visHooks_.get())) + ->getLatestTrace(); } } // namespace openzl diff --git a/cpp/src/openzl/cpp/CompressIntrospectionHooks.cpp b/cpp/src/openzl/cpp/CompressIntrospectionHooks.cpp index e3e9b7285..09941c97b 100644 --- a/cpp/src/openzl/cpp/CompressIntrospectionHooks.cpp +++ b/cpp/src/openzl/cpp/CompressIntrospectionHooks.cpp @@ -6,7 +6,40 @@ namespace openzl { CompressIntrospectionHooks::CompressIntrospectionHooks() { - rawHooks_.opaque = this; + rawHooks_.opaque = this; + + rawHooks_.on_segmenterEncode_start = + [](void* this_ptr, ZL_Segmenter* segCtx, void*) noexcept { + ((CompressIntrospectionHooks*)this_ptr) + ->on_segmenterEncode_start(segCtx); + }; + rawHooks_.on_segmenterEncode_end = + [](void* this_ptr, ZL_Segmenter* segCtx, ZL_Report r) noexcept { + ((CompressIntrospectionHooks*)this_ptr) + ->on_segmenterEncode_end(segCtx, r); + }; + rawHooks_.on_ZL_Segmenter_processChunk_start = + [](void* this_ptr, + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams) noexcept { + ((CompressIntrospectionHooks*)this_ptr) + ->on_ZL_Segmenter_processChunk_start( + segCtx, + numElts, + numInputs, + startingGraphID, + rGraphParams); + }; + + rawHooks_.on_ZL_Segmenter_processChunk_end = + [](void* this_ptr, ZL_Segmenter* segCtx, ZL_Report r) noexcept { + ((CompressIntrospectionHooks*)this_ptr) + ->on_ZL_Segmenter_processChunk_end(segCtx, r); + }; + rawHooks_.on_codecEncode_start = [](void* this_ptr, ZL_Encoder* eictx, const ZL_Compressor* compressor, @@ -104,7 +137,7 @@ CompressIntrospectionHooks::CompressIntrospectionHooks() rawHooks_.on_ZL_CCtx_compressMultiTypedRef_start = [](void* this_ptr, - ZL_CCtx const* const cctx, + ZL_CCtx* cctx, void const* const dst, size_t const dstCapacity, ZL_TypedRef const* const inputs[], diff --git a/cpp/src/openzl/cpp/Compressor.cpp b/cpp/src/openzl/cpp/Compressor.cpp index 548652291..3a53e9d4a 100644 --- a/cpp/src/openzl/cpp/Compressor.cpp +++ b/cpp/src/openzl/cpp/Compressor.cpp @@ -5,6 +5,7 @@ #include "openzl/zl_compressor.h" #include "openzl/zl_compressor_serialization.h" #include "openzl/zl_ctransform.h" +#include "openzl/zl_reflection.h" #include "openzl/cpp/CustomEncoder.hpp" #include "openzl/cpp/FunctionGraph.hpp" @@ -164,6 +165,13 @@ void Compressor::selectStartingGraph(GraphID graph) unwrap(ZL_Compressor_selectStartingGraphID(get(), graph)); } +GraphID Compressor::getStartingGraph() const +{ + GraphID gid; + ZL_Compressor_getStartingGraphID(get(), &gid); + return gid; +} + std::string Compressor::serialize() const { const auto serializer = make_serializer(); diff --git a/cpp/src/openzl/cpp/CustomDecoder.cpp b/cpp/src/openzl/cpp/CustomDecoder.cpp index 34deab94a..eb307cf6e 100644 --- a/cpp/src/openzl/cpp/CustomDecoder.cpp +++ b/cpp/src/openzl/cpp/CustomDecoder.cpp @@ -69,7 +69,7 @@ static ZL_Report decodeFn( (const CustomDecoder*)ZL_Decoder_getOpaquePtr(decoder); customDecoder->decode(state); } catch (const Exception& e) { - // TODO(terrelln): Beter wrap the error + // TODO(terrelln): Better wrap the error ZL_ERR(GENERIC, "C++ openzl::Exception: %s", e.what()); } catch (const std::exception& e) { ZL_ERR(GENERIC, "C++ std::exception: %s", e.what()); @@ -81,7 +81,7 @@ static ZL_Report decodeFn( /* static */ void CustomDecoder::registerCustomDecoder( DCtx& dctx, - std::shared_ptr decoder) + std::shared_ptr decoder) { const auto& desc = decoder->multiInputDescription(); auto inputTypes = typesToCTypes(desc.inputTypes); diff --git a/cpp/src/openzl/cpp/CustomEncoder.cpp b/cpp/src/openzl/cpp/CustomEncoder.cpp index 3664bde9e..e0a1b38c8 100644 --- a/cpp/src/openzl/cpp/CustomEncoder.cpp +++ b/cpp/src/openzl/cpp/CustomEncoder.cpp @@ -83,7 +83,7 @@ static ZL_Report encodeFn( (const CustomEncoder*)ZL_Encoder_getOpaquePtr(encoder); customEncoder->encode(state); } catch (const Exception& e) { - // TODO(terrelln): Beter wrap the error + // TODO(terrelln): Better wrap the error ZL_ERR(GENERIC, "C++ openzl::Exception: %s", e.what()); } catch (const std::exception& e) { ZL_ERR(GENERIC, "C++ std::exception: %s", e.what()); @@ -95,7 +95,7 @@ static ZL_Report encodeFn( /* static */ NodeID CustomEncoder::registerCustomEncoder( Compressor& compressor, - std::shared_ptr encoder) + std::shared_ptr encoder) { const auto& desc = encoder->multiInputDescription(); auto inputTypes = typesToCTypes(desc.inputTypes); diff --git a/cpp/src/openzl/cpp/DCtx.cpp b/cpp/src/openzl/cpp/DCtx.cpp index 04590e37f..e159826e3 100644 --- a/cpp/src/openzl/cpp/DCtx.cpp +++ b/cpp/src/openzl/cpp/DCtx.cpp @@ -3,12 +3,17 @@ #include "openzl/cpp/DCtx.hpp" #include "openzl/cpp/CustomDecoder.hpp" +#include "openzl/cpp/Exception.hpp" #include "openzl/cpp/FrameInfo.hpp" #include "openzl/cpp/Output.hpp" +#include "openzl/cpp/experimental/trace/DecompressionTraceHooks.hpp" #include "openzl/zl_decompress.h" namespace openzl { DCtx::DCtx() : DCtx(ZL_DCtx_create(), ZL_DCtx_free) {} +DCtx::DCtx(DCtx&&) noexcept = default; +DCtx& DCtx::operator=(DCtx&&) noexcept = default; +DCtx::~DCtx() = default; void DCtx::setParameter(DParam param, int value) { @@ -95,4 +100,33 @@ poly::string_view DCtx::getErrorContextString(ZL_Error error) const { return ZL_DCtx_getErrorContextString_fromError(get(), error); } + +void DCtx::writeTraces(bool enabled, bool streamPreview) +{ + if ((bool)visHooks_ == enabled) { + return; // no need to re-create or re-destroy the hooks + } + if (enabled) { + visHooks_ = std::make_unique( + streamPreview); + unwrap(ZL_DCtx_attachDecompressIntrospectionHooks( + get(), visHooks_->getRawHooks())); + } else { + unwrap(ZL_DCtx_detachAllDecompressIntrospectionHooks(get())); + visHooks_.reset(); + } +} + +std::pair< + poly::string_view, + std::map>> +DCtx::getLatestTrace() +{ + if (!visHooks_) { + throw Exception("Tracing is not enabled"); + } + return (static_cast(visHooks_.get())) + ->getLatestTrace(); +} + } // namespace openzl diff --git a/cpp/src/openzl/cpp/DecompressIntrospectionHooks.cpp b/cpp/src/openzl/cpp/DecompressIntrospectionHooks.cpp new file mode 100644 index 000000000..028fb9cfd --- /dev/null +++ b/cpp/src/openzl/cpp/DecompressIntrospectionHooks.cpp @@ -0,0 +1,63 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/cpp/DecompressIntrospectionHooks.hpp" + +namespace openzl { + +DecompressIntrospectionHooks::DecompressIntrospectionHooks() +{ + rawHooks_.opaque = this; + + rawHooks_.on_ZL_DCtx_decompressMultiTBuffer_start = + [](void* this_ptr, + ZL_DCtx* dctx, + size_t nbOutputs, + const void* framePtr, + size_t frameSize) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_ZL_DCtx_decompressMultiTBuffer_start( + dctx, nbOutputs, framePtr, frameSize); + }; + rawHooks_.on_ZL_DCtx_decompressMultiTBuffer_end = + [](void* this_ptr, ZL_DCtx* dctx, ZL_Report result) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_ZL_DCtx_decompressMultiTBuffer_end(dctx, result); + }; + + rawHooks_.on_decompressChunk_start = + [](void* this_ptr, ZL_DCtx* dctx, size_t chunkIndex) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_decompressChunk_start(dctx, chunkIndex); + }; + rawHooks_.on_decompressChunk_end = + [](void* this_ptr, ZL_DCtx* dctx, ZL_Report result) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_decompressChunk_end(dctx, result); + }; + + rawHooks_.on_ZL_Decoder_getCodecHeader = [](void* this_ptr, + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_ZL_Decoder_getCodecHeader(dictx, trh, trhSize); + }; + + rawHooks_.on_codecDecode_start = [](void* this_ptr, + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_codecDecode_start(dictx, inStreams, nbInStreams); + }; + rawHooks_.on_codecDecode_end = [](void* this_ptr, + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) noexcept { + ((DecompressIntrospectionHooks*)this_ptr) + ->on_codecDecode_end(dictx, outStreams, nbOutStreams, result); + }; +} + +} // namespace openzl diff --git a/cpp/src/openzl/cpp/Exception.cpp b/cpp/src/openzl/cpp/Exception.cpp index 4d31e185e..9e5e48055 100644 --- a/cpp/src/openzl/cpp/Exception.cpp +++ b/cpp/src/openzl/cpp/Exception.cpp @@ -8,7 +8,7 @@ namespace openzl { namespace { -std::string format( +std::string formatMsg( std::string_view msg, const poly::optional& code, poly::string_view errorContext, @@ -63,7 +63,7 @@ Exception::Exception( poly::optional code, poly::string_view errorContext, poly::source_location location) - : std::runtime_error(format(msg, code, errorContext, location)), + : std::runtime_error(formatMsg(msg, code, errorContext, location)), msg_(msg), code_(std::move(code)), errorContext_(errorContext), @@ -134,12 +134,23 @@ ExceptionBuilder&& ExceptionBuilder::addErrorContext( } } +template <> +ExceptionBuilder&& ExceptionBuilder::addErrorContext( + ZL_Graph const* const ctx) && noexcept +{ + if (ctx != nullptr && error_.has_value()) { + return std::move(*this).withErrorContext( + ZL_Graph_getErrorContextString_fromError(ctx, error_.value())); + } else { + return std::move(*this); + } +} + Exception ExceptionBuilder::build() && noexcept { poly::optional code; if (error_.has_value()) { - // TODO: when ZL_E_code() is public, use that. - code.emplace(ZL_RES_code(ZL_RESULT_WRAP_ERROR(size_t, error_.value()))); + code.emplace(ZL_E_code(error_.value())); } return Exception(msg_, code, errorContext_, std::move(location_)); } diff --git a/cpp/src/openzl/cpp/FrameInfo.cpp b/cpp/src/openzl/cpp/FrameInfo.cpp index af5df3f78..135b18a11 100644 --- a/cpp/src/openzl/cpp/FrameInfo.cpp +++ b/cpp/src/openzl/cpp/FrameInfo.cpp @@ -21,6 +21,11 @@ FrameInfo::FrameInfo(poly::string_view compressed) { } +size_t FrameInfo::formatVersion() const +{ + return unwrap(ZL_FrameInfo_getFormatVersion(get())); +} + size_t FrameInfo::numOutputs() const { return unwrap(ZL_FrameInfo_getNumOutputs(get())); @@ -36,4 +41,11 @@ size_t FrameInfo::outputContentSize(size_t index) const return unwrap(ZL_FrameInfo_getDecompressedSize(get(), (int)index)); } +poly::string_view FrameInfo::comment() const +{ + const auto raw_comment = unwrap(ZL_FrameInfo_getComment(get())); + return poly::string_view{ static_cast(raw_comment.data), + raw_comment.size }; +} + } // namespace openzl diff --git a/cpp/src/openzl/cpp/FunctionGraph.cpp b/cpp/src/openzl/cpp/FunctionGraph.cpp index b49e9b019..24762441d 100644 --- a/cpp/src/openzl/cpp/FunctionGraph.cpp +++ b/cpp/src/openzl/cpp/FunctionGraph.cpp @@ -192,7 +192,7 @@ graphFn(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges) noexcept (const FunctionGraph*)ZL_Graph_getOpaquePtr(graph); functionGraph->graph(state); } catch (const Exception& e) { - // TODO(terrelln): Beter wrap the error + // TODO(terrelln): Better wrap the error ZL_ERR(GENERIC, "C++ openzl::Exception: %s", e.what()); } catch (const std::exception& e) { ZL_ERR(GENERIC, "C++ std::exception: %s", e.what()); @@ -204,7 +204,7 @@ graphFn(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges) noexcept /* static */ GraphID FunctionGraph::registerFunctionGraph( Compressor& compressor, - std::shared_ptr functionGraph) + std::shared_ptr functionGraph) { const auto& desc = functionGraph->functionGraphDescription(); auto inputTypeMasks = typesMasksToCTypes(desc.inputTypeMasks); @@ -226,4 +226,9 @@ graphFn(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges) noexcept return compressor.registerFunctionGraph(graphDesc); } +poly::string_view GraphState::getErrorContextString(ZL_Error error) const +{ + return ZL_Graph_getErrorContextString_fromError(get(), error); +} + } // namespace openzl diff --git a/cpp/src/openzl/cpp/LocalParams.cpp b/cpp/src/openzl/cpp/LocalParams.cpp index bde59792e..80851e2c3 100644 --- a/cpp/src/openzl/cpp/LocalParams.cpp +++ b/cpp/src/openzl/cpp/LocalParams.cpp @@ -87,8 +87,8 @@ void LocalParams::addRefParam(ZL_RefParam param) params_.refParams.nbRefParams = refParams_.size(); } -void LocalParams::addRefParam(int key, const void* ref) +void LocalParams::addRefParam(int key, const void* ref, size_t size) { - return addRefParam(ZL_RefParam{ key, ref }); + return addRefParam(ZL_RefParam{ key, ref, size }); } } // namespace openzl diff --git a/cpp/src/openzl/cpp/Opaque.hpp b/cpp/src/openzl/cpp/Opaque.hpp index 659e9f092..c384494be 100644 --- a/cpp/src/openzl/cpp/Opaque.hpp +++ b/cpp/src/openzl/cpp/Opaque.hpp @@ -10,17 +10,18 @@ namespace openzl { template -ZL_OpaquePtr moveToOpaquePtr(std::shared_ptr ptr) +ZL_OpaquePtr moveToOpaquePtr(std::shared_ptr ptr) { auto raw = ptr.get(); - return ZL_OpaquePtr{ .ptr = raw, + return ZL_OpaquePtr{ .ptr = const_cast((const void*)raw), .freeOpaquePtr = - new std::shared_ptr(std::move(ptr)), + new std::shared_ptr(std::move(ptr)), .freeFn = [](void* freeOpaquePtr, void* opaquePtr) noexcept { assert(freeOpaquePtr != nullptr); - auto sharedPtr = static_cast*>( - freeOpaquePtr); + auto sharedPtr = + static_cast*>( + freeOpaquePtr); assert(sharedPtr->get() == opaquePtr); sharedPtr->reset(); delete sharedPtr; diff --git a/cpp/src/openzl/cpp/Selector.cpp b/cpp/src/openzl/cpp/Selector.cpp index 32dd84d6d..2c1ebd16f 100644 --- a/cpp/src/openzl/cpp/Selector.cpp +++ b/cpp/src/openzl/cpp/Selector.cpp @@ -10,12 +10,13 @@ namespace openzl { /* static */ GraphID Selector::registerSelector( Compressor& compressor, - std::shared_ptr selector) + std::shared_ptr selector) { return FunctionGraph::registerFunctionGraph( compressor, - std::shared_ptr( - selector, static_cast(selector.get()))); + std::shared_ptr( + selector, + static_cast(selector.get()))); } void Selector::graph(GraphState& state) const diff --git a/cpp/src/openzl/cpp/experimental/trace/CborHelpers.cpp b/cpp/src/openzl/cpp/experimental/trace/CborHelpers.cpp index e0c0a229d..2b8db2b00 100644 --- a/cpp/src/openzl/cpp/experimental/trace/CborHelpers.cpp +++ b/cpp/src/openzl/cpp/experimental/trace/CborHelpers.cpp @@ -8,81 +8,168 @@ namespace openzl::visualizer { -ZL_Report addIntValue(A1C_MapBuilder& builder, const char* key, size_t val) +ZL_Report addIntValue( + A1C_MapBuilder& builder, + const char* key, + size_t val, + ZL_OperationContext* opCtx) { - A1C_MAP_TRY_ADD_R(pair, builder); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); A1C_Item_string_refCStr(&pair->key, key); A1C_Item_int64(&pair->val, val); return ZL_returnSuccess(); }; -ZL_Report addFloatValue(A1C_MapBuilder& builder, const char* key, double val) +ZL_Report addFloatValue( + A1C_MapBuilder& builder, + const char* key, + double val, + ZL_OperationContext* opCtx) { - A1C_MAP_TRY_ADD_R(pair, builder); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); A1C_Item_string_refCStr(&pair->key, key); A1C_Item_float64(&pair->val, val); return ZL_returnSuccess(); } -ZL_Report -addStringValue(A1C_MapBuilder& builder, const char* key, const char* val) +ZL_Report addStringValue( + A1C_MapBuilder& builder, + const char* key, + const char* val, + ZL_OperationContext* opCtx) { - A1C_MAP_TRY_ADD_R(pair, builder); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); A1C_Item_string_refCStr(&pair->key, key); A1C_Item_string_refCStr(&pair->val, val); return ZL_returnSuccess(); } -ZL_Report addBooleanValue(A1C_MapBuilder& builder, const char* key, bool val) +ZL_Report addBooleanValue( + A1C_MapBuilder& builder, + const char* key, + bool val, + ZL_OperationContext* opCtx) { - A1C_MAP_TRY_ADD_R(pair, builder); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); A1C_Item_string_refCStr(&pair->key, key); A1C_Item_boolean(&pair->val, val); return ZL_returnSuccess(); } +ZL_Report addBytesArray( + A1C_Arena* a1c_arena, + A1C_MapBuilder& builder, + const char* key, + const std::vector& bytes, + ZL_OperationContext* opCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); + A1C_Item_string_refCStr(&pair->key, key); + + if (!bytes.empty()) { + bool success = A1C_Item_bytes_copy( + &pair->val, bytes.data(), bytes.size(), a1c_arena); + ZL_ERR_IF(!success, allocation, "Failed to copy bytes data."); + } else { + A1C_Item_bytes_ref(&pair->val, nullptr, 0); + } + + return ZL_returnSuccess(); +} + +ZL_Report addNumArray( + A1C_Arena* a1c_arena, + A1C_MapBuilder& builder, + const char* key, + const std::vector& numbers, + ZL_OperationContext* opCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); + A1C_Item_string_refCStr(&pair->key, key); + + A1C_ArrayBuilder arrayBuilder = + A1C_Item_array_builder(&pair->val, numbers.size(), a1c_arena); + ZL_ERR_IF_NULL(arrayBuilder.array, allocation); + + for (const int64_t val : numbers) { + A1C_ARRAY_TRY_ADD(item, arrayBuilder); + A1C_Item_int64(item, val); + } + return ZL_returnSuccess(); +} + +ZL_Report addStrArray( + A1C_Arena* a1c_arena, + A1C_MapBuilder& builder, + const char* key, + const std::vector& strs, + ZL_OperationContext* opCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MAP_TRY_ADD(pair, builder); + A1C_Item_string_refCStr(&pair->key, key); + + A1C_ArrayBuilder arrayBuilder = + A1C_Item_array_builder(&pair->val, strs.size(), a1c_arena); + ZL_ERR_IF_NULL(arrayBuilder.array, allocation); + + for (const std::string& str : strs) { + A1C_ARRAY_TRY_ADD(item, arrayBuilder); + A1C_Item_string_refCStr(item, str.c_str()); + } + return ZL_returnSuccess(); +} + ZL_Report serializeLocalParams( A1C_Arena* a1c_arena, A1C_Item* a1c_localParamsParent, - const LocalParams& lpi) + const LocalParams& lpi, + ZL_OperationContext* opCtx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); A1C_MapBuilder localParamsBuilder = A1C_Item_map_builder(a1c_localParamsParent, 3, a1c_arena); - ZL_RET_R_IF_NULL(allocation, localParamsBuilder.map); + ZL_ERR_IF_NULL(localParamsBuilder.map, allocation); // local params: IntParams - A1C_MAP_TRY_ADD_R(a1c_intParams, localParamsBuilder); + A1C_MAP_TRY_ADD(a1c_intParams, localParamsBuilder); A1C_Item_string_refCStr(&a1c_intParams->key, "intParams"); A1C_ArrayBuilder intParamsBuilder = A1C_Item_array_builder( &a1c_intParams->val, lpi.getIntParams().size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, intParamsBuilder.array); + ZL_ERR_IF_NULL(intParamsBuilder.array, allocation); for (const auto& intParam : lpi.getIntParams()) { - A1C_ARRAY_TRY_ADD_R(a1c_intParam, intParamsBuilder); + A1C_ARRAY_TRY_ADD(a1c_intParam, intParamsBuilder); A1C_MapBuilder currIntParamBuilder = A1C_Item_map_builder(a1c_intParam, 2, a1c_arena); - ZL_RET_R_IF_NULL(allocation, currIntParamBuilder.map); - ZL_RET_R_IF_ERR( - addIntValue(currIntParamBuilder, "paramId", intParam.paramId)); - ZL_RET_R_IF_ERR(addIntValue( - currIntParamBuilder, "paramValue", intParam.paramValue)); + ZL_ERR_IF_NULL(currIntParamBuilder.map, allocation); + ZL_ERR_IF_ERR(addIntValue( + currIntParamBuilder, "paramId", intParam.paramId, opCtx)); + ZL_ERR_IF_ERR(addIntValue( + currIntParamBuilder, "paramValue", intParam.paramValue, opCtx)); } // local params: CopyParams - A1C_MAP_TRY_ADD_R(a1c_copyParams, localParamsBuilder); + A1C_MAP_TRY_ADD(a1c_copyParams, localParamsBuilder); A1C_Item_string_refCStr(&a1c_copyParams->key, "copyParams"); A1C_ArrayBuilder copyParamsBuilder = A1C_Item_array_builder( &a1c_copyParams->val, lpi.getCopyParams().size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, copyParamsBuilder.array); + ZL_ERR_IF_NULL(copyParamsBuilder.array, allocation); for (const auto& copyParam : lpi.getCopyParams()) { - A1C_ARRAY_TRY_ADD_R(a1c_copyParam, copyParamsBuilder); + A1C_ARRAY_TRY_ADD(a1c_copyParam, copyParamsBuilder); A1C_MapBuilder currCopyParamBuilder = A1C_Item_map_builder(a1c_copyParam, 3, a1c_arena); - ZL_RET_R_IF_NULL(allocation, currCopyParamBuilder.map); - ZL_RET_R_IF_ERR(addIntValue( - currCopyParamBuilder, "paramId", copyParam.paramId)); - ZL_RET_R_IF_ERR(addIntValue( - currCopyParamBuilder, "paramSize", copyParam.paramSize)); - A1C_MAP_TRY_ADD_R(a1c_copyParam_paramData, currCopyParamBuilder); + ZL_ERR_IF_NULL(currCopyParamBuilder.map, allocation); + ZL_ERR_IF_ERR(addIntValue( + currCopyParamBuilder, "paramId", copyParam.paramId, opCtx)); + ZL_ERR_IF_ERR(addIntValue( + currCopyParamBuilder, "paramSize", copyParam.paramSize, opCtx)); + A1C_MAP_TRY_ADD(a1c_copyParam_paramData, currCopyParamBuilder); A1C_Item_string_refCStr(&a1c_copyParam_paramData->key, "paramData"); // copy if the paramPtr is not null, and its size is greater than 0 if (copyParam.paramPtr != nullptr && copyParam.paramSize > 0) { @@ -91,9 +178,9 @@ ZL_Report serializeLocalParams( static_cast(copyParam.paramPtr), copyParam.paramSize, a1c_arena); - ZL_RET_R_IF( - allocation, + ZL_ERR_IF( !success, + allocation, "Failed to copy CopyParam data from pointer."); } else { A1C_Item_bytes_ref(&a1c_copyParam_paramData->val, nullptr, 0); @@ -101,18 +188,18 @@ ZL_Report serializeLocalParams( } // local params: refParams - A1C_MAP_TRY_ADD_R(a1c_refParams, localParamsBuilder); + A1C_MAP_TRY_ADD(a1c_refParams, localParamsBuilder); A1C_Item_string_refCStr(&a1c_refParams->key, "refParams"); A1C_ArrayBuilder refParamsBuilder = A1C_Item_array_builder( &a1c_refParams->val, lpi.getRefParams().size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, refParamsBuilder.array); + ZL_ERR_IF_NULL(refParamsBuilder.array, allocation); for (const auto& refParam : lpi.getRefParams()) { - A1C_ARRAY_TRY_ADD_R(a1c_refParam, refParamsBuilder); + A1C_ARRAY_TRY_ADD(a1c_refParam, refParamsBuilder); A1C_MapBuilder currRefParamBuilder = A1C_Item_map_builder(a1c_refParam, 1, a1c_arena); - ZL_RET_R_IF_NULL(allocation, currRefParamBuilder.map); - ZL_RET_R_IF_ERR( - addIntValue(currRefParamBuilder, "paramId", refParam.paramId)); + ZL_ERR_IF_NULL(currRefParamBuilder.map, allocation); + ZL_ERR_IF_ERR(addIntValue( + currRefParamBuilder, "paramId", refParam.paramId, opCtx)); } return ZL_returnSuccess(); diff --git a/cpp/src/openzl/cpp/experimental/trace/CborHelpers.hpp b/cpp/src/openzl/cpp/experimental/trace/CborHelpers.hpp index 04a9afbb4..b48ecf676 100644 --- a/cpp/src/openzl/cpp/experimental/trace/CborHelpers.hpp +++ b/cpp/src/openzl/cpp/experimental/trace/CborHelpers.hpp @@ -1,23 +1,63 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. #pragma once +#include +#include + #include "openzl/cpp/LocalParams.hpp" #include "openzl/shared/a1cbor.h" #include "openzl/zl_errors.h" namespace openzl::visualizer { -ZL_Report addIntValue(A1C_MapBuilder& builder, const char* key, size_t val); +ZL_Report addIntValue( + A1C_MapBuilder& builder, + const char* key, + size_t val, + ZL_OperationContext* opCtx); + +ZL_Report addFloatValue( + A1C_MapBuilder& builder, + const char* key, + double val, + ZL_OperationContext* opCtx); -ZL_Report addFloatValue(A1C_MapBuilder& builder, const char* key, double val); +ZL_Report addStringValue( + A1C_MapBuilder& builder, + const char* key, + const char* val, + ZL_OperationContext* opCtx); -ZL_Report -addStringValue(A1C_MapBuilder& builder, const char* key, const char* val); +ZL_Report addBooleanValue( + A1C_MapBuilder& builder, + const char* key, + bool val, + ZL_OperationContext* opCtx); + +ZL_Report addStrArray( + A1C_Arena* a1c_arena, + A1C_MapBuilder& builder, + const char* key, + const std::vector& strs, + ZL_OperationContext* opCtx); -ZL_Report addBooleanValue(A1C_MapBuilder& builder, const char* key, bool val); +ZL_Report addNumArray( + A1C_Arena* a1c_arena, + A1C_MapBuilder& builder, + const char* key, + const std::vector& numbers, + ZL_OperationContext* opCtx); + +ZL_Report addBytesArray( + A1C_Arena* a1c_arena, + A1C_MapBuilder& builder, + const char* key, + const std::vector& bytes, + ZL_OperationContext* opCtx); ZL_Report serializeLocalParams( A1C_Arena* a1c_arena, A1C_Item* a1c_localParamsParent, - const LocalParams& lpi); + const LocalParams& lpi, + ZL_OperationContext* opCtx); } // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/ChunkTraceCore.cpp b/cpp/src/openzl/cpp/experimental/trace/ChunkTraceCore.cpp new file mode 100644 index 000000000..418918ae9 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/ChunkTraceCore.cpp @@ -0,0 +1,350 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/cpp/experimental/trace/ChunkTraceCore.hpp" + +#include "openzl/common/a1cbor_helpers.h" +#include "openzl/cpp/experimental/trace/CborHelpers.hpp" + +#include +#include + +namespace openzl::visualizer { + +namespace { + +// Preview limits: save only enough data for the frontend to display ~4 lines. +static constexpr size_t MAX_PREVIEW_BYTES = 32; +static constexpr size_t MAX_PREVIEW_NUMERIC_ELTS = 100; +static constexpr size_t MAX_PREVIEW_STRINGS_LINES = 4; + +static int64_t readNumericData(size_t eltWidth, const uint8_t* bytes, size_t i) +{ + int64_t val = 0; + switch (eltWidth) { + case 1: + val = reinterpret_cast(bytes)[i]; + break; + case 2: + val = reinterpret_cast(bytes)[i]; + break; + case 4: + val = reinterpret_cast(bytes)[i]; + break; + case 8: + val = reinterpret_cast(bytes)[i]; + break; + default: + throw std::runtime_error("Unexpected numeric eltWidth!"); + } + return val; +} +std::vector +getNumericData(const void* data, size_t eltWidth, size_t numElts) +{ + if (data == nullptr || numElts == 0) { + return {}; + } + const auto* bytes = reinterpret_cast(data); + const size_t previewElts = std::min(numElts, MAX_PREVIEW_NUMERIC_ELTS); + std::vector numericData; + numericData.reserve(previewElts); + + for (size_t i = 0; i < previewElts; ++i) { + numericData.push_back(readNumericData(eltWidth, bytes, i)); + } + + return numericData; +} + +std::vector +getStringData(const void* data, size_t numStrings, const uint32_t* stringLens) +{ + if (data == nullptr || stringLens == nullptr || numStrings == 0) { + return {}; + } + + std::vector strings; + strings.reserve(numStrings); + + const auto* bytes = reinterpret_cast(data); + size_t offset = 0; + + const size_t previewStrings = + std::min(numStrings, MAX_PREVIEW_STRINGS_LINES); + for (size_t i = 0; i < previewStrings; ++i) { + uint32_t len = stringLens[i]; + std::string rawStr = std::string(bytes + offset, len); + std::string parsedStr = ""; + if (rawStr.find('\n') != std::string::npos + || rawStr.find('\t') != std::string::npos + || rawStr.find('\r') != std::string::npos) { + for (char c : rawStr) { + switch (c) { + case '\n': + parsedStr += "\\n"; + break; + case '\t': + parsedStr += "\\t"; + break; + case '\r': + parsedStr += "\\r"; + break; + default: + parsedStr += c; + break; + } + } + } else { + parsedStr = std::move(rawStr); + } + + strings.push_back(std::move(parsedStr)); + offset += len; + } + + return strings; +} + +std::vector getSerialData(const void* data, size_t numBytes) +{ + if (data == nullptr || numBytes == 0) { + return {}; + } + + const size_t previewBytes = std::min(numBytes, MAX_PREVIEW_BYTES); + std::vector bytes; + const auto* rawBytes = reinterpret_cast(data); + bytes.assign(rawBytes, rawBytes + previewBytes); + + return bytes; +} + +} // namespace + +void ChunkTraceCore::createSourceForStream( + const char* sourceCodecName, + const StreamID& streamID, + Stream& stream, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId) +{ + Codec source = { + .name = sourceCodecName, + .cType = true, // standard + .cID = 0, + .cHeaderSize = 0, + .cLocalParams = {}, + .chunkId = chunkId, + }; + source.codecNum = currCodecNum; + codecInfo.push_back(std::move(source)); + codecInfo[currCodecNum].outEdges.push_back(streamID); + stream.producerCodec = currCodecNum; + ++currCodecNum; +} + +void ChunkTraceCore::createSinkForStream( + const char* sinkCodecName, + const StreamID& streamID, + Stream& stream, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId) +{ + Codec sink = { + .name = sinkCodecName, + .cType = true, // standard + .cID = 0, + .cHeaderSize = 0, + .cLocalParams = {}, + .chunkId = chunkId, + }; + sink.codecNum = currCodecNum; + codecInfo.push_back(std::move(sink)); + codecInfo[currCodecNum].inEdges.push_back(streamID); + stream.consumerCodec = currCodecNum; + ++currCodecNum; +} + +void ChunkTraceCore::finalizeUnsourcedStreams( + const char* sourceCodecName, + std::map& streamInfo, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId) +{ + for (auto& [streamID, stream] : streamInfo) { + if (!stream.producerCodec.has_value()) { + createSourceForStream( + sourceCodecName, + streamID, + stream, + codecInfo, + currCodecNum, + chunkId); + } + } +} + +void ChunkTraceCore::finalizeUnconsumedStreams( + const char* terminalCodecName, + std::map& streamInfo, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId) +{ + for (auto& [streamID, stream] : streamInfo) { + if (!stream.consumerCodec.has_value()) { + createSinkForStream( + terminalCodecName, + streamID, + stream, + codecInfo, + currCodecNum, + chunkId); + } + } +} + +StreamPreview ChunkTraceCore::emptyPreview(ZL_Type type) +{ + switch (type) { + case ZL_Type_string: + return std::vector{}; + case ZL_Type_numeric: + return std::vector{}; + case ZL_Type_serial: + case ZL_Type_struct: + default: + return std::vector{}; + } +} + +StreamPreview ChunkTraceCore::getStreamPreview( + const void* data, + ZL_Type type, + size_t eltWidth, + size_t numElts, + const uint32_t* stringLens) +{ + switch (type) { + case ZL_Type_numeric: + return getNumericData(data, eltWidth, numElts); + case ZL_Type_string: + return getStringData(data, numElts, stringLens); + case ZL_Type_struct: + case ZL_Type_serial: + return getSerialData(data, numElts); + default: + throw std::runtime_error("Unsupported stream preview type!"); + } +} + +size_t ChunkTraceCore::fillCSize( + const StreamID& streamID, + std::map& streamInfo, + const std::vector& codecInfo, + size_t totalSize) +{ + Stream& stream = streamInfo.at(streamID); + + // Already computed + if (stream.cSize != 0) { + return stream.cSize; + } + + // Base case: stream has no successors + if (stream.successors.empty()) { + stream.cSize = stream.contentSize; + stream.share = totalSize > 0 ? static_cast(stream.cSize) + / static_cast(totalSize) * 100 + : 0; + return stream.cSize; + } + + // Start with the header size from the consumer codec + if (stream.consumerCodec.has_value()) { + stream.cSize = codecInfo[stream.consumerCodec.value()].cHeaderSize; + } + + // Recursively sum the cSize of successor streams + for (const auto& successor : stream.successors) { + stream.cSize += fillCSize(successor, streamInfo, codecInfo, totalSize); + } + + // If the consumer codec has multiple inputs, assume each input + // provides equal contribution + if (stream.consumerCodec.has_value()) { + stream.cSize /= codecInfo[stream.consumerCodec.value()].inEdges.size(); + } + + stream.share = totalSize > 0 ? static_cast(stream.cSize) + / static_cast(totalSize) * 100 + : 0; + return stream.cSize; +} + +ZL_Report ChunkTraceCore::serializeChunkDataToCBOR( + A1C_Arena* a1c_arena, + A1C_ArrayBuilder* chunkArrayBuilder, + size_t chunkId, + std::map& streamInfo, + std::vector& codecInfo, + std::vector& graphInfo, + ZL_OperationContext* opCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_ARRAY_TRY_ADD(chunkItem, *chunkArrayBuilder); + A1C_MapBuilder chunkBuilder = A1C_Item_map_builder(chunkItem, 4, a1c_arena); + ZL_ERR_IF_NULL(chunkBuilder.map, allocation); + + ZL_ERR_IF_ERR(addIntValue(chunkBuilder, "chunkId", chunkId, opCtx)); + + // Streams + A1C_MAP_TRY_ADD(streamsPair, chunkBuilder); + A1C_Item_string_refCStr(&streamsPair->key, "streams"); + A1C_ArrayBuilder streamsBuilder = A1C_Item_array_builder( + &streamsPair->val, streamInfo.size(), a1c_arena); + ZL_ERR_IF_NULL(streamsBuilder.array, allocation); + for (auto& stream : streamInfo) { + A1C_ARRAY_TRY_ADD(a1c_stream, streamsBuilder); + ZL_ERR_IF_ERR( + stream.second.serializeStream(a1c_arena, a1c_stream, opCtx)); + } + + // Codecs + A1C_MAP_TRY_ADD(codecsPair, chunkBuilder); + A1C_Item_string_refCStr(&codecsPair->key, "codecs"); + A1C_ArrayBuilder codecsBuilder = A1C_Item_array_builder( + &codecsPair->val, codecInfo.size(), a1c_arena); + ZL_ERR_IF_NULL(codecsBuilder.array, allocation); + for (size_t codecNum = 0; codecNum < codecInfo.size(); ++codecNum) { + Codec& codec = codecInfo[codecNum]; + A1C_ARRAY_TRY_ADD(a1c_codec, codecsBuilder); + ZL_ERR_IF_ERR(codec.serializeCodec(a1c_arena, a1c_codec, opCtx)); + } + + // Graphs (empty array for decompress) + A1C_MAP_TRY_ADD(graphsPair, chunkBuilder); + A1C_Item_string_refCStr(&graphsPair->key, "graphs"); + A1C_ArrayBuilder graphsBuilder = A1C_Item_array_builder( + &graphsPair->val, graphInfo.size(), a1c_arena); + ZL_ERR_IF_NULL(graphsBuilder.array, allocation); + for (auto& graph : graphInfo) { + A1C_ARRAY_TRY_ADD(a1c_graph, graphsBuilder); + ZL_ERR_IF_ERR(graph.serializeGraph(a1c_arena, a1c_graph, opCtx)); + } + + return ZL_returnSuccess(); +} + +ZL_Report ChunkTraceCore::writeSerializedStreamdump( + std::vector& buffer, + std::string& outTrace) +{ + outTrace = std::string(buffer.begin(), buffer.end()); + return ZL_returnSuccess(); +} + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/ChunkTraceCore.hpp b/cpp/src/openzl/cpp/experimental/trace/ChunkTraceCore.hpp new file mode 100644 index 000000000..d650ca8d4 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/ChunkTraceCore.hpp @@ -0,0 +1,133 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include +#include + +#include "openzl/cpp/experimental/trace/Codec.hpp" +#include "openzl/cpp/experimental/trace/Graph.hpp" +#include "openzl/cpp/experimental/trace/StreamVisualizer.hpp" + +namespace openzl::visualizer { + +struct StreamdumpEntry { + size_t streamId; + std::string content; + std::string strLens; +}; + +struct TraceResult { + std::string trace; + std::vector> streamdump; +}; + +/** + * Static-only helper class for shared ChunkTrace logic between + * CompressChunkTrace and DecompressChunkTrace. + * Owns no data — all state is passed in by the caller. + */ +class ChunkTraceCore { + public: + ChunkTraceCore() = delete; // non-instantiable + + /** + * Creates a source codec with the given name for a single stream. + * Wires the stream into the source codec's outEdges, sets producerCodec, + * and increments currCodecNum. + */ + static void createSourceForStream( + const char* sourceCodecName, + const StreamID& streamID, + Stream& stream, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId); + + /** + * Creates a sink codec with the given name for a single stream. + * Wires the stream into the sink codec's inEdges, sets consumerCodec, + * and increments currCodecNum. + */ + static void createSinkForStream( + const char* sinkCodecName, + const StreamID& streamID, + Stream& stream, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId); + + /** + * For each unsourced stream (no producerCodec), creates a source codec + * with the given name via createSourceForStream. + */ + static void finalizeUnsourcedStreams( + const char* sourceCodecName, + std::map& streamInfo, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId); + + /** + * For each unconsumed stream (no consumerCodec), creates a terminal codec + * with the given name via createSinkForStream. + */ + static void finalizeUnconsumedStreams( + const char* terminalCodecName, + std::map& streamInfo, + std::vector& codecInfo, + size_t& currCodecNum, + size_t chunkId); + + /** + * Builds a StreamPreview from raw stream data, dispatching by ZL_Type. + * stringLens is only used for ZL_Type_string streams. + */ + static StreamPreview getStreamPreview( + const void* data, + ZL_Type type, + size_t eltWidth, + size_t numElts, + const uint32_t* stringLens = nullptr); + + /** + * Returns a type-correct empty StreamPreview for the given ZL_Type. + * Used when stream preview is disabled to avoid variant type mismatches + * during serialization. + */ + static StreamPreview emptyPreview(ZL_Type type); + + /** + * Recursively computes the compressed size (cSize) of a stream by + * summing the cSize of its successors. Uses Stream::cSize directly + * for memoization (0 means not yet computed). + */ + static size_t fillCSize( + const StreamID& streamID, + std::map& streamInfo, + const std::vector& codecInfo, + size_t totalSize); + + /** + * Serializes chunkId, streams, codecs, and optionally graphs into + * a CBOR chunk item appended to chunkArrayBuilder. + * graphInfo may be empty (decompress side has no graphs). + */ + static ZL_Report serializeChunkDataToCBOR( + A1C_Arena* a1c_arena, + A1C_ArrayBuilder* chunkArrayBuilder, + size_t chunkId, + std::map& streamInfo, + std::vector& codecInfo, + std::vector& graphInfo, + ZL_OperationContext* opCtx); + + /** + * Encodes CBOR buffer bytes into a string (for trace output). + */ + static ZL_Report writeSerializedStreamdump( + std::vector& buffer, + std::string& outTrace); +}; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/Codec.cpp b/cpp/src/openzl/cpp/experimental/trace/Codec.cpp index a162dfb9c..bbffbdd40 100644 --- a/cpp/src/openzl/cpp/experimental/trace/Codec.cpp +++ b/cpp/src/openzl/cpp/experimental/trace/Codec.cpp @@ -5,7 +5,6 @@ #include "openzl/common/a1cbor_helpers.h" #include "openzl/cpp/experimental/trace/CborHelpers.hpp" #include "openzl/shared/a1cbor.h" -#include "openzl/zl_compress.h" #include "openzl/zl_errors.h" namespace openzl::visualizer { @@ -13,14 +12,16 @@ namespace openzl::visualizer { static ZL_Report serializeCodecEdges( A1C_Arena* a1c_arena, A1C_Item* a1c_edgesParent, - const std::vector& edges) + const std::vector& edges, + ZL_OperationContext* opCtx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); A1C_ArrayBuilder inEdgesBuilder = A1C_Item_array_builder(a1c_edgesParent, edges.size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, inEdgesBuilder.array); - for (const auto& streamID : edges) { - A1C_ARRAY_TRY_ADD_R(a1c_streamID, inEdgesBuilder); - A1C_Item_int64(a1c_streamID, streamID.sid); + ZL_ERR_IF_NULL(inEdgesBuilder.array, allocation); + for (const auto& streamId : edges) { + A1C_ARRAY_TRY_ADD(a1c_streamID, inEdgesBuilder); + A1C_Item_int64(a1c_streamID, streamId.sid); } return ZL_returnSuccess(); @@ -29,40 +30,39 @@ static ZL_Report serializeCodecEdges( const ZL_Report Codec::serializeCodec( A1C_Arena* a1c_arena, A1C_Item* arrayItem, - const ZL_CCtx* const cctx, - const std::vector& inEdges, - const std::vector& outEdges) + ZL_OperationContext* opCtx) { - A1C_MapBuilder builder = A1C_Item_map_builder(arrayItem, 8, a1c_arena); - ZL_RET_R_IF_NULL(allocation, builder.map); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MapBuilder builder = A1C_Item_map_builder(arrayItem, 9, a1c_arena); + ZL_ERR_IF_NULL(builder.map, allocation); - ZL_RET_R_IF_ERR(addStringValue(builder, "name", name.c_str())); - ZL_RET_R_IF_ERR(addBooleanValue(builder, "cType", cType)); - ZL_RET_R_IF_ERR(addIntValue(builder, "cID", cID)); - ZL_RET_R_IF_ERR(addIntValue(builder, "cHeaderSize", cHeaderSize)); - if (ZL_isError(cFailure)) { - ZL_RET_R_IF_ERR(addStringValue( - builder, - "cFailureString", - ZL_CCtx_getErrorContextString(cctx, cFailure))); + ZL_ERR_IF_ERR(addIntValue(builder, "chunkId", this->chunkId, opCtx)); + ZL_ERR_IF_ERR(addStringValue(builder, "name", name.c_str(), opCtx)); + ZL_ERR_IF_ERR(addBooleanValue(builder, "cType", cType, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "cID", cID, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "cHeaderSize", cHeaderSize, opCtx)); + if (!cFailureString.empty()) { + ZL_ERR_IF_ERR(addStringValue( + builder, "cFailureString", cFailureString.c_str(), opCtx)); } // local params - A1C_MAP_TRY_ADD_R(a1c_cLocalParams, builder); + A1C_MAP_TRY_ADD(a1c_cLocalParams, builder); A1C_Item_string_refCStr(&a1c_cLocalParams->key, "cLocalParams"); - ZL_RET_R_IF_ERR(serializeLocalParams( - a1c_arena, &a1c_cLocalParams->val, cLocalParams)); + ZL_ERR_IF_ERR(serializeLocalParams( + a1c_arena, &a1c_cLocalParams->val, cLocalParams, opCtx)); // codec in-edges - A1C_MAP_TRY_ADD_R(a1c_inEdges, builder); + A1C_MAP_TRY_ADD(a1c_inEdges, builder); A1C_Item_string_refCStr(&a1c_inEdges->key, "inputStreams"); - ZL_RET_R_IF_ERR(serializeCodecEdges(a1c_arena, &a1c_inEdges->val, inEdges)); + ZL_ERR_IF_ERR(serializeCodecEdges( + a1c_arena, &a1c_inEdges->val, this->inEdges, opCtx)); // codec out-edges - A1C_MAP_TRY_ADD_R(a1c_outEdges, builder); + A1C_MAP_TRY_ADD(a1c_outEdges, builder); A1C_Item_string_refCStr(&a1c_outEdges->key, "outputStreams"); - ZL_RET_R_IF_ERR( - serializeCodecEdges(a1c_arena, &a1c_outEdges->val, outEdges)); + ZL_ERR_IF_ERR(serializeCodecEdges( + a1c_arena, &a1c_outEdges->val, this->outEdges, opCtx)); return ZL_returnSuccess(); } diff --git a/cpp/src/openzl/cpp/experimental/trace/Codec.hpp b/cpp/src/openzl/cpp/experimental/trace/Codec.hpp index 1fd941c0f..2ced41182 100644 --- a/cpp/src/openzl/cpp/experimental/trace/Codec.hpp +++ b/cpp/src/openzl/cpp/experimental/trace/Codec.hpp @@ -3,11 +3,13 @@ #pragma once #include "openzl/cpp/LocalParams.hpp" +#include "openzl/cpp/experimental/trace/types.hpp" #include "openzl/shared/a1cbor.h" #include "openzl/zl_errors.h" #include "openzl/zl_opaque_types.h" #include +#include namespace openzl::visualizer { @@ -17,14 +19,17 @@ struct Codec { ZL_IDType cID{}; size_t cHeaderSize{}; ZL_Report cFailure = ZL_returnSuccess(); + std::string cFailureString; LocalParams cLocalParams{}; + size_t chunkId{}; + size_t codecNum{}; + std::vector inEdges; + std::vector outEdges; const ZL_Report serializeCodec( A1C_Arena* a1c_arena, A1C_Item* arrayItem, - const ZL_CCtx* const cctx, - const std::vector& inEdges, - const std::vector& outEdges); + ZL_OperationContext* opCtx); }; } // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/CompressChunkTrace.cpp b/cpp/src/openzl/cpp/experimental/trace/CompressChunkTrace.cpp new file mode 100644 index 000000000..3a9f5a857 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/CompressChunkTrace.cpp @@ -0,0 +1,579 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/cpp/experimental/trace/CompressChunkTrace.hpp" + +#include "openzl/common/a1cbor_helpers.h" +#include "openzl/compress/dyngraph_interface.h" +#include "openzl/cpp/Exception.hpp" +#include "openzl/cpp/experimental/trace/CborHelpers.hpp" +#include "openzl/zl_compress.h" +#include "openzl/zl_input.h" +#include "openzl/zl_output.h" +#include "openzl/zl_reflection.h" +#include "openzl/zl_segmenter.h" + +#include +#include +#include +#include +#include + +namespace openzl::visualizer { + +void CompressChunkTrace::recordStartStreams( + const ZL_Input* inStreams[], + size_t numInStreams) +{ + for (size_t i = 0; i < numInStreams; ++i) { + StreamID streamID = ZL_Input_id(inStreams[i]); + if (streamInfo_.find(streamID) == streamInfo_.end()) { + ZL_Type type = ZL_Input_type(inStreams[i]); + size_t eltWidth = ZL_Input_eltWidth(inStreams[i]); + size_t numElts = ZL_Input_numElts(inStreams[i]); + size_t contentSize = ZL_Input_contentSize(inStreams[i]); + + StreamPreview preview = showStreamPreview_ + ? ChunkTraceCore::getStreamPreview( + ZL_Input_ptr(inStreams[i]), + type, + eltWidth, + numElts, + ZL_Input_stringLens(inStreams[i])) + : ChunkTraceCore::emptyPreview(type); + + streamInfo_[streamID] = Stream{ + .id = streamID, + .type = type, + .outputIdx = i, + .eltWidth = eltWidth, + .numElts = numElts, + .contentSize = contentSize, + .chunkId = chunkId_, + .streamPreview = std::move(preview), + }; + ChunkTraceCore::createSourceForStream( + "zl.#start", + streamID, + streamInfo_[streamID], + codecInfo_, + currCodecNum_, + chunkId_); + } + } +} + +void CompressChunkTrace::finalizeTrace(ZL_Report const result) +{ + if (ZL_isError(result)) { + ZL_LOG(ALWAYS, "Compression not successful!"); + std::cerr << "Compression not successful!" << std::endl; + ChunkTraceCore::finalizeUnconsumedStreams( + "zl.#in_progress", + streamInfo_, + codecInfo_, + currCodecNum_, + chunkId_); + // Apply conversion error to the relevant terminal codec + if (maybeConversionError_.has_value()) { + auto it = streamInfo_.find(maybeConversionError_->streamId); + if (it != streamInfo_.end() + && it->second.consumerCodec.has_value()) { + codecInfo_[it->second.consumerCodec.value()].cFailure = + maybeConversionError_->failureReport; + } + } + } else { + compressedSize_ = ZL_validResult(result); + ChunkTraceCore::finalizeUnconsumedStreams( + "zl.store", streamInfo_, codecInfo_, currCodecNum_, chunkId_); + } + + printStreamMetadata(); + printCodecMetadata(); +} + +void CompressChunkTrace::resolveErrorStrings(const ZL_CCtx* cctx) +{ + for (auto& codec : codecInfo_) { + if (ZL_isError(codec.cFailure)) { + const char* str = + ZL_CCtx_getErrorContextString(cctx, codec.cFailure); + codec.cFailureString = str ? str : ""; + } + } + for (auto& graph : graphInfo_) { + if (ZL_isError(graph.gFailure)) { + const char* str = + ZL_CCtx_getErrorContextString(cctx, graph.gFailure); + graph.gFailureString = str ? str : ""; + } + } +} + +ZL_Report CompressChunkTrace::serializeToCBOR( + A1C_Arena* a1c_arena, + A1C_ArrayBuilder* chunkArrayBuilder, + ZL_OperationContext* opCtx) +{ + return ChunkTraceCore::serializeChunkDataToCBOR( + a1c_arena, + chunkArrayBuilder, + chunkId_, + streamInfo_, + codecInfo_, + graphInfo_, + opCtx); +} + +size_t CompressChunkTrace::getCompressedSize() +{ + return compressedSize_; +} + +inline std::string streamTypeToStr(ZL_Type stype) +{ + switch (stype) { + case ZL_Type_serial: + return "Serialized"; + case ZL_Type_struct: + return "Fixed_Width"; + case ZL_Type_numeric: + return "Numeric"; + case ZL_Type_string: + return "Variable_Size"; + default: + return "default"; + } +} + +void CompressChunkTrace::printStreamMetadata() +{ + std::cout << "digraph stream_topo {" << std::endl; + for (auto& s : streamInfo_) { + const StreamID streamID = s.first; + ZL_IDType sid = streamID.sid; + ChunkTraceCore::fillCSize( + streamID, streamInfo_, codecInfo_, compressedSize_); + + Stream metadata = s.second; + std::cout << 'S' << sid << " [shape=record, label=\"Stream: " << sid + << "\\nType: " << streamTypeToStr(metadata.type) + << "\\nOutputIdx: " << metadata.outputIdx + << "\\nEltWidth: " << metadata.eltWidth + << "\\n#Elts: " << metadata.numElts + << "\\nCSize: " << metadata.cSize << "\\nShare: "; + { + std::cout << std::fixed << std::setprecision(2) << metadata.share + << "%\"];" << std::endl; + } + } + std::cout << std::endl; // 1 line space between following text +} + +// helper function to print out local params +static void printLocalParams(const LocalParams& lpi) +{ + const auto ips = lpi.getIntParams(); + if (ips.size() > 0) { + std::cout << "\\nIntParams (paramId, paramValue): "; + std::cout << '(' << ips[0].paramId << ", " << ips[0].paramValue << ')'; + for (size_t i = 1; i < ips.size(); ++i) { + std::cout << ", "; + std::cout << '(' << ips[i].paramId << ", " << ips[i].paramValue + << ')'; + } + } + const auto cps = lpi.getCopyParams(); + if (cps.size() > 0) { + std::cout << "\\nCopyParams (paramId, paramSize): "; + std::cout << '(' << cps[0].paramId << ", " << cps[0].paramSize << ')'; + for (size_t i = 1; i < cps.size(); ++i) { + std::cout << ", "; + std::cout << '(' << cps[i].paramId << ", " << cps[i].paramSize + << ')'; + } + } + const auto rps = lpi.getRefParams(); + if (rps.size() > 0) { + std::cout << "\\nRefParams (paramId): "; + std::cout << '(' << rps[0].paramId << ')'; + for (size_t i = 1; i < rps.size(); ++i) { + std::cout << ", "; + std::cout << '(' << rps[i].paramId << ')'; + } + } +} + +inline std::string graphTypeToStr(ZL_GraphType gtype) +{ + switch (gtype) { + case ZL_GraphType_standard: + return "Standard"; + case ZL_GraphType_static: + return "Static"; + case ZL_GraphType_selector: + return "Selector"; + case ZL_GraphType_function: + return "Function"; + case ZL_GraphType_multiInput: + return "Multiple_Input"; + case ZL_GraphType_parameterized: + return "Parameterized"; + case ZL_GraphType_segmenter: + return "Segmenter"; + default: + throw std::runtime_error("Unsupported ZL_GraphType value!"); + } +} + +void CompressChunkTrace::printCodecMetadata() +{ + size_t graphInfoIdx = 0; + for (size_t codecNum = 0; codecNum < codecInfo_.size(); ++codecNum) { + // identify the start of a graph within our compression tree, if + // identified, print text required to group codecs and streams + // together in this graph + if (graphInfoIdx < graphInfo_.size() + && codecNum == graphInfo_[graphInfoIdx].codecs.front()) { + Graph& graph = graphInfo_[graphInfoIdx]; + std::cout << "subgraph cluster_" << graphInfoIdx << '{' << std::endl + << "label=\"" << graph.gName + << "\\ntype=" << graphTypeToStr(graph.gType); + if (!graph.gFailureString.empty()) { + std::cout << "\\nFailure: " << graph.gFailureString; + } + printLocalParams(graph.gLocalParams); + std::cout << "\";" << std::endl << "color=maroon" << std::endl; + } + // print general codec metadata + Codec& metadata = codecInfo_[codecNum]; + std::string codecName = metadata.cType ? "Standard" : "Custom"; + std::cout << "T" << codecNum << " [shape=Mrecord, label=\"" + << metadata.name << "(ID: " << metadata.cID << ")\\n " + << codecName << " transform " << codecNum + << "\\n Header size: " << metadata.cHeaderSize; + if (!metadata.cFailureString.empty()) { + std::cout << "\\n Failure: " << metadata.cFailureString; + } + printLocalParams(metadata.cLocalParams); + std::cout << "\"];" << std::endl; + + // Output the edges from transform to streams + auto customStreamSort = [](const StreamID& a, const StreamID& b) { + return a.sid < b.sid; + }; + std::vector trChildStreams = codecInfo_[codecNum].outEdges; + std::sort( + trChildStreams.begin(), trChildStreams.end(), customStreamSort); + size_t labelNum = trChildStreams.size() - 1; + for (const auto& stream : trChildStreams) { + std::cout << "T" << codecNum << " -> S" << stream.sid + << "[label=\"#" << labelNum << "\"];" << std::endl; + --labelNum; + } + + // Output the stream(s) that are the input for the transform + std::vector trParentStreams = codecInfo_[codecNum].inEdges; + labelNum = 0; + std::sort( + trParentStreams.begin(), + trParentStreams.end(), + customStreamSort); + for (const auto& stream : trParentStreams) { + std::cout << "S" << stream.sid << " -> T" << codecNum + << "[label=\"#" << labelNum << "\"];" << std::endl; + ++labelNum; + } + // last codec in the current graph reached, so move to next one + if (graphInfoIdx < graphInfo_.size() + && codecNum == graphInfo_[graphInfoIdx].codecs.back()) { + std::cout << '}' << std::endl; + ++graphInfoIdx; + } + } + + std::cout << "}" << std::endl; +} + +void CompressChunkTrace::on_codecEncode_start( + ZL_Encoder* encoder, + const ZL_Compressor* compressor, + ZL_NodeID nid, + const ZL_Input* inStreams[], + size_t nbInStreams) +{ + recordStartStreams(inStreams, nbInStreams); + // set codec metadata + Codec newCodec{ .name = ZL_Compressor_Node_getName(compressor, nid), + .cType = ZL_Compressor_Node_isStandard(compressor, nid), + .cID = ZL_Compressor_Node_getCodecID(compressor, nid), + .cHeaderSize = 0, + .cLocalParams = + LocalParams(*ZL_Encoder_getLocalParams(encoder)), + .chunkId = chunkId_ }; + newCodec.codecNum = currCodecNum_; + codecInfo_.push_back(std::move(newCodec)); + for (size_t i = 0; i < nbInStreams; ++i) { + StreamID streamID = ZL_Input_id(inStreams[i]); + codecInfo_[currCodecNum_].inEdges.push_back( + streamID); // set input streams of this codec + streamInfo_[streamID].consumerCodec = + currCodecNum_; // set consumer codec of this + // stream to retrieve header + // in cSize calculation + } + // add codec to associated graph if applicable + if (currEncompassingGraph_) { + graphInfo_.back().codecs.push_back(currCodecNum_); + } +} + +void CompressChunkTrace::on_codecEncode_end( + ZL_Encoder*, + const ZL_Output* outStreams[], + size_t nbOutputs, + ZL_Report codecExecResult) +{ + if (ZL_isError(codecExecResult)) { + codecInfo_[currCodecNum_].cFailure = codecExecResult; + } + // Note: if the codec failed, we have 0 output streams, so this will be a + // no-op + for (size_t i = 0; i < nbOutputs; ++i) { + // set stream ELT values + const ZL_Output* createdStream = outStreams[i]; + StreamID streamID = ZL_Output_id(createdStream); + ZL_Type type = ZL_Output_type(createdStream); + size_t eltWidth = openzl::unwrap(ZL_Output_eltWidth(createdStream)); + size_t numElts = openzl::unwrap(ZL_Output_numElts(createdStream)); + size_t contentSize = + openzl::unwrap(ZL_Output_contentSize(createdStream)); + + StreamPreview preview = showStreamPreview_ + ? ChunkTraceCore::getStreamPreview( + ZL_Output_constPtr(createdStream), + type, + eltWidth, + numElts, + ZL_Output_constStringLens(createdStream)) + : ChunkTraceCore::emptyPreview(type); + + streamInfo_[streamID] = { + .id = streamID, + .type = type, + .outputIdx = i, + .eltWidth = eltWidth, + .numElts = numElts, + .contentSize = contentSize, + .chunkId = chunkId_, + .streamPreview = std::move(preview), + }; + + streamInfo_[streamID].producerCodec = currCodecNum_; + codecInfo_[currCodecNum_].outEdges.push_back(streamID); + streamdump(outStreams[i]); + } + + // connect stream successors for cSize calculation + for (const auto& inStreamID : codecInfo_[currCodecNum_].inEdges) { + streamInfo_[inStreamID].successors = codecInfo_[currCodecNum_].outEdges; + } + + ++currCodecNum_; +} + +void CompressChunkTrace::on_ZL_Encoder_getScratchSpace( + ZL_Encoder* /*ei*/, + size_t /*size*/) +{ +} + +void CompressChunkTrace::on_ZL_Encoder_sendCodecHeader( + ZL_Encoder* /*encoder*/, + const void* /*trh*/, + size_t trhSize) +{ + codecInfo_[currCodecNum_].cHeaderSize = trhSize; +} + +void CompressChunkTrace::on_ZL_Encoder_createTypedStream( + ZL_Encoder* /*encoder*/, + int /*outStreamIndex*/, + size_t /*eltsCapacity*/, + size_t /*eltWidth*/, + ZL_Output* /*createdStream*/) +{ +} + +void CompressChunkTrace::on_migraphEncode_start( + ZL_Graph* graph, + const ZL_Compressor* compressor, + ZL_GraphID gid, + ZL_Edge* edges[], + size_t nbEdges) +{ + currEncompassingGraph_ = true; + std::vector inEdges; + inEdges.reserve(nbEdges); + for (size_t i = 0; i < nbEdges; ++i) { + inEdges.push_back(edges[i]); + } + Graph currGraph = + Graph{ .gType = ZL_Compressor_getGraphType(compressor, gid), + .gName = ZL_Compressor_Graph_getName(compressor, gid), + .gFailure = ZL_returnSuccess(), + .gLocalParams = LocalParams(*GCTX_getAllLocalParams(graph)), + .chunkId = chunkId_, + .inEdges = std::move(inEdges) }; + graphInfo_.push_back(std::move(currGraph)); +} + +void CompressChunkTrace::on_migraphEncode_end( + ZL_Graph*, + ZL_GraphID[], + size_t, + ZL_Report graphExecResult) +{ + if (ZL_isError(graphExecResult)) { + bool codecsHaveErrors = std::accumulate( + graphInfo_.back().codecs.begin(), + graphInfo_.back().codecs.end(), + false, + [this](bool acc, CodecID codecId) { + return acc || ZL_isError(codecInfo_[codecId].cFailure); + }); + if (!codecsHaveErrors) { + // Only report failures that occur outside individual codec + // executions + graphInfo_.back().gFailure = graphExecResult; + // also add an "in-progress" placeholder if there are no codecs + if (graphInfo_.back().codecs.size() == 0) { + Codec inProgress = { + .name = "zl.#in_progress", + .cType = true, // standard + .cID = 0, + .cHeaderSize = 0, + .cLocalParams = {}, + .chunkId = chunkId_, + }; + inProgress.codecNum = currCodecNum_; + codecInfo_.push_back(std::move(inProgress)); + graphInfo_.back().codecs.push_back(currCodecNum_); + for (auto edge : graphInfo_.back().inEdges) { + auto data = ZL_Edge_getData(edge); + auto id = ZL_Input_id(data); + streamInfo_[id].consumerCodec = currCodecNum_; + codecInfo_[currCodecNum_].inEdges.push_back(id); + } + ++currCodecNum_; + } + } + currEncompassingGraph_ = false; + return; + } + // If the graph didn't have any codecs between it, we don't want to + // report it + if (graphInfo_.size() > 0 && graphInfo_.back().codecs.size() == 0) { + graphInfo_.pop_back(); + } + currEncompassingGraph_ = false; +} + +void CompressChunkTrace::on_cctx_convertOneInput( + const ZL_CCtx* const /*cctx*/, + const ZL_Data* const input, + const ZL_Type /*inType*/, + const ZL_Type /*portTypeMask*/, + const ZL_Report conversionResult) +{ + if (ZL_isError(conversionResult)) { + maybeConversionError_ = { + .streamId = ZL_Data_id(input), + .failureReport = conversionResult, + }; + } +} + +void CompressChunkTrace::on_segmenterEncode_start(ZL_Segmenter* segCtx) +{ + const auto nbInStreams = ZL_Segmenter_numInputs(segCtx); + + // This is necessary because the cctx multiInput start doesn't use real + // stream IDs, so these aren't recorded anywhere + if (ZL_Input_id(ZL_Segmenter_getInput(segCtx, 0)).sid == 0) { + std::vector streams; + for (size_t i = 0; i < nbInStreams; ++i) { + streams.push_back(ZL_Segmenter_getInput(segCtx, i)); + } + recordStartStreams(streams.data(), nbInStreams); + } + + // A segmenter is technically a graph. + // However, they behave more like a dispatch codec in the trace because they + // ingest the in streams and send them to a successor graph. + Codec newCodec{ .name = "segmenter", // TODO(segm): expose segmenter name + .cType = false, + .cID = 0, // eh? + .cHeaderSize = 0, + .cLocalParams = + LocalParams(*ZL_Segmenter_getLocalParams(segCtx)), + .chunkId = chunkId_ }; + newCodec.codecNum = currCodecNum_; + codecInfo_.push_back(std::move(newCodec)); + for (size_t i = 0; i < nbInStreams; ++i) { + StreamID streamID = ZL_Input_id(ZL_Segmenter_getInput(segCtx, i)); + codecInfo_[currCodecNum_].inEdges.push_back( + streamID); // set input streams of this codec + streamInfo_[streamID].consumerCodec = + currCodecNum_; // set consumer codec of + // this stream to retrieve header + // in cSize calculation + } +} + +void CompressChunkTrace::on_segmenterEncode_end( + ZL_Segmenter* /*segCtx*/, + ZL_Report r) +{ + if (ZL_isError(r)) { + codecInfo_[currCodecNum_].cFailure = r; + } +} + +void CompressChunkTrace::on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* /*segCtx*/, + const size_t /*numElts*/[], + size_t /*numInputs*/, + ZL_GraphID /*startingGraphID*/, + const ZL_RuntimeGraphParameters* /*rGraphParams*/) +{ +} + +void CompressChunkTrace::on_ZL_Segmenter_processChunk_end( + ZL_Segmenter* /*segCtx*/, + ZL_Report r) +{ + finalizeTrace(r); +} + +void CompressChunkTrace::streamdump(const ZL_Output* createdStream) +{ + auto content = std::string( + (const char*)ZL_Output_constPtr(createdStream), + ZL_validResult(ZL_Output_contentSize(createdStream))); + std::string strLens = ""; + if (ZL_Output_type(createdStream) == ZL_Type_string) { + auto ptr = ZL_Output_constStringLens(createdStream); + strLens = std::string( + (const char*)ptr, + ZL_validResult(ZL_Output_numElts(createdStream)) + * sizeof(ptr[0])); + } + streamdump_[ZL_Output_id(createdStream).sid] = { content, strLens }; +} +std::map>&& +CompressChunkTrace::getStreamdump() +{ + return std::move(streamdump_); +} +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/CompressChunkTrace.hpp b/cpp/src/openzl/cpp/experimental/trace/CompressChunkTrace.hpp new file mode 100644 index 000000000..607f98789 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/CompressChunkTrace.hpp @@ -0,0 +1,139 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include +#include +#include + +#include "openzl/cpp/experimental/trace/ChunkTraceCore.hpp" +#include "openzl/cpp/experimental/trace/Codec.hpp" +#include "openzl/cpp/experimental/trace/Graph.hpp" +#include "openzl/cpp/experimental/trace/StreamVisualizer.hpp" + +namespace openzl::visualizer { + +/** + * The structures to take one trace of one top-level graph run (aka one that + * ingests stream 0). A chunked compression will have multiple such top-level + * invocations. + */ +class CompressChunkTrace { + public: + CompressChunkTrace() = delete; + explicit CompressChunkTrace(size_t chunkId, bool showStreamPreview) + : chunkId_(chunkId), showStreamPreview_(showStreamPreview) + { + } + + /** + * Callback to record the first streams (aka user-input). They are never + * surfaced to the hooks (properly) until either a codec or segmenter takes + * them in as input. + */ + void recordStartStreams(const ZL_Input* inStreams[], size_t numInStreams); + + /** + * Callback function to clean up the trace. + * - Unconsumed streams go to store or in-progress + * - CSize is calculated + * - Metadata is printed + */ + void finalizeTrace(ZL_Report const result); + + /** + * Resolve error context strings for all codecs and graphs. + * Must be called while the CCtx is still alive. + */ + void resolveErrorStrings(const ZL_CCtx* cctx); + + ZL_Report serializeToCBOR( + A1C_Arena* a1c_arena, + A1C_ArrayBuilder* chunkArrayBuilder, + ZL_OperationContext* opCtx); + + size_t getCompressedSize(); + + /* ************** Trampolined hook calls ************** */ + void on_codecEncode_start( + ZL_Encoder* encoder, + const ZL_Compressor* compressor, + ZL_NodeID nid, + const ZL_Input* inStreams[], + size_t nbInStreams); + + void on_codecEncode_end( + ZL_Encoder*, + const ZL_Output* outStreams[], + size_t nbOutputs, + ZL_Report codecExecResult); + + void on_ZL_Encoder_getScratchSpace(ZL_Encoder* ei, size_t size); + + void on_ZL_Encoder_sendCodecHeader( + ZL_Encoder* encoder, + const void* trh, + size_t trhSize); + + void on_ZL_Encoder_createTypedStream( + ZL_Encoder* encoder, + int outStreamIndex, + size_t eltsCapacity, + size_t eltWidth, + ZL_Output* createdStream); + + void on_migraphEncode_start( + ZL_Graph* graph, + const ZL_Compressor* compressor, + ZL_GraphID gid, + ZL_Edge* inputs[], + size_t nbInputs); + + void on_migraphEncode_end( + ZL_Graph*, + ZL_GraphID successorGraphs[], + size_t nbSuccessors, + ZL_Report graphExecResult); + + void on_cctx_convertOneInput( + const ZL_CCtx* const cctx, + const ZL_Data* const input, + const ZL_Type inType, + const ZL_Type portTypeMask, + const ZL_Report conversionResult); + + void on_segmenterEncode_start(ZL_Segmenter* segCtx); + void on_segmenterEncode_end(ZL_Segmenter* segCtx, ZL_Report r); + void on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams); + void on_ZL_Segmenter_processChunk_end(ZL_Segmenter* segCtx, ZL_Report r); + + struct ConversionError { + ZL_DataID streamId; + ZL_Report failureReport; + }; + + std::map>&& getStreamdump(); + + private: + void printStreamMetadata(); + void printCodecMetadata(); + + const size_t chunkId_; // chunk ID for this specific chunk trace + size_t compressedSize_{}; // compressed size for this specific chunk + size_t currCodecNum_ = 0; + std::map streamInfo_; + std::map> streamdump_; + std::vector codecInfo_; + std::vector graphInfo_; + bool showStreamPreview_ = true; // show stream preview data from trace + bool currEncompassingGraph_ = false; // if codecs are running within a graph + std::optional maybeConversionError_ = std::nullopt; + void streamdump(const ZL_Output* createdStream); +}; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/CompressTracer.cpp b/cpp/src/openzl/cpp/experimental/trace/CompressTracer.cpp new file mode 100644 index 000000000..0cf6f314f --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/CompressTracer.cpp @@ -0,0 +1,274 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/cpp/experimental/trace/CompressTracer.hpp" + +#include "openzl/common/a1cbor_helpers.h" +#include "openzl/common/logging.h" +#include "openzl/cpp/experimental/trace/CborHelpers.hpp" +#include "openzl/zl_compress.h" +#include "openzl/zl_data.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_opaque_types.h" + +#include +#include +#include +#include +#include + +namespace openzl::visualizer { + +static constexpr size_t MAIN_TRACE_IDX = 0; + +TraceResult CompressTracer::extractTrace() +{ + // Aggregate streamdump from all chunks + trace.streamdump.reserve(graphRuns.size()); + for (auto& chunk : graphRuns) { + auto streamdump = chunk.getStreamdump(); + std::vector tmp = {}; + tmp.reserve(streamdump.size()); + for (auto& [k, v] : streamdump) { + tmp.push_back( + StreamdumpEntry{ + k, std::move(v.first), std::move(v.second) }); + } + trace.streamdump.push_back(std::move(tmp)); + } + return std::move(trace); +} + +void CompressTracer::on_segmenterEncode_start(ZL_Segmenter* segCtx) +{ + if (graphRuns.size() != 1) { + throw std::runtime_error( + "Compression tracing does not support multiple segmenters within the same compression"); + } + segmented = true; + graphRuns[MAIN_TRACE_IDX].on_segmenterEncode_start(segCtx); +} + +void CompressTracer::on_segmenterEncode_end(ZL_Segmenter* segCtx, ZL_Report r) +{ + currChunk = &graphRuns[MAIN_TRACE_IDX]; + currChunk->on_segmenterEncode_end(segCtx, r); +} + +void CompressTracer::on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams) +{ + auto chunkNum = graphRuns.size(); + graphRuns.emplace_back(chunkNum, showStreamPreview_); + currChunk = &(graphRuns[chunkNum]); + currChunk->on_ZL_Segmenter_processChunk_start( + segCtx, numElts, numInputs, startingGraphID, rGraphParams); +} + +void CompressTracer::on_ZL_Segmenter_processChunk_end( + ZL_Segmenter* segCtx, + ZL_Report r) +{ + currChunk->on_ZL_Segmenter_processChunk_end(segCtx, r); +} + +void CompressTracer::on_codecEncode_start( + ZL_Encoder* encoder, + const ZL_Compressor* compressor, + ZL_NodeID nid, + const ZL_Input* inStreams[], + size_t nbInStreams) +{ + currChunk->on_codecEncode_start( + encoder, compressor, nid, inStreams, nbInStreams); +} + +void CompressTracer::on_codecEncode_end( + ZL_Encoder* encoder, + const ZL_Output* outStreams[], + size_t nbOutputs, + ZL_Report codecExecResult) +{ + currChunk->on_codecEncode_end( + encoder, outStreams, nbOutputs, codecExecResult); +} + +void CompressTracer::on_ZL_Encoder_getScratchSpace(ZL_Encoder* ei, size_t size) +{ + currChunk->on_ZL_Encoder_getScratchSpace(ei, size); +} + +void CompressTracer::on_ZL_Encoder_sendCodecHeader( + ZL_Encoder* encoder, + const void* trh, + size_t trhSize) +{ + currChunk->on_ZL_Encoder_sendCodecHeader(encoder, trh, trhSize); +} + +void CompressTracer::on_ZL_Encoder_createTypedStream( + ZL_Encoder*, + int, + size_t, + size_t, + ZL_Output*) +{ +} + +void CompressTracer::on_migraphEncode_start( + ZL_Graph* graph, + const ZL_Compressor* compressor, + ZL_GraphID gid, + ZL_Edge* edges[], + size_t nbEdges) +{ + currChunk->on_migraphEncode_start(graph, compressor, gid, edges, nbEdges); +} + +void CompressTracer::on_migraphEncode_end( + ZL_Graph* graph, + ZL_GraphID successorGraphs[], + size_t nbSuccessors, + ZL_Report graphExecResult) +{ + currChunk->on_migraphEncode_end( + graph, successorGraphs, nbSuccessors, graphExecResult); +} + +void CompressTracer::on_cctx_convertOneInput( + const ZL_CCtx* const cctx, + const ZL_Data* const input, + const ZL_Type inType, + const ZL_Type portTypeMask, + const ZL_Report conversionResult) +{ + currChunk->on_cctx_convertOneInput( + cctx, input, inType, portTypeMask, conversionResult); +} + +void CompressTracer::on_ZL_Graph_getScratchSpace(ZL_Graph*, size_t) {} + +void CompressTracer::on_ZL_Edge_setMultiInputDestination_wParams( + ZL_Graph*, + ZL_Edge*[], + size_t, + ZL_GraphID, + const ZL_LocalParams*) +{ +} + +void CompressTracer::on_ZL_CCtx_compressMultiTypedRef_start( + ZL_CCtx* cctx, + void const* const, + size_t const, + ZL_TypedRef const* const[], + size_t const) +{ + frameVersion = ZL_CCtx_getParameter(cctx, ZL_CParam_formatVersion); + opCtx_ = ZL_GET_OPERATION_CONTEXT(cctx); + // The "main" trace is located at idx 0 of graphRuns + graphRuns.emplace_back(MAIN_TRACE_IDX, showStreamPreview_); + currChunk = &graphRuns[MAIN_TRACE_IDX]; +} + +void CompressTracer::on_ZL_CCtx_compressMultiTypedRef_end( + ZL_CCtx const* const cctx, + ZL_Report const result) +{ + // If the compression is successful, we can assume all the streams + // without targets go to STORE + graphRuns[MAIN_TRACE_IDX].finalizeTrace(result); + + // Resolve error strings while the CCtx is still alive + for (auto& graphRun : graphRuns) { + graphRun.resolveErrorStrings(cctx); + } + + // convert compression data into a1c_items to write to a CBOR file + Arena* arena = ALLOC_HeapArena_create(); + A1C_Arena a1c_arena = A1C_Arena_wrap(arena); + std::vector buffer; + // Serialize the streamdump content in CBOR format + auto res = serializeStreamdumpToCbor(&a1c_arena, buffer); + if (ZL_isError(res)) { + ZL_LOG(ERROR, "Failed to serialize streamdump content!"); + throw std::runtime_error("Failed to serialize streamdump content."); + } + ALLOC_Arena_freeArena(arena); + // Write the serialized streamdump content to a string + if (ZL_isError( + ChunkTraceCore::writeSerializedStreamdump( + buffer, trace.trace))) { + ZL_LOG(ERROR, + "Failed to write serialized streamdump content to a file!"); + throw std::runtime_error( + "Failed to write serialize streamdump content into a CBOR file."); + } +} + +void CompressTracer::setCompressedSize(size_t compressionResultSize) +{ + compressedSize_ = compressionResultSize; +} + +ZL_Report CompressTracer::serializeStreamdumpToCbor( + A1C_Arena* a1c_arena, + std::vector& buffer) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx_); + A1C_Item* root = A1C_Item_root(a1c_arena); + ZL_ERR_IF_NULL(root, allocation); + /* want 3 inner maps: + * 1. streams and their associated metadata + * 2. codecs and their associated metadata, and their in/out edges + * 3. graph info, specifically, which codecs and edges are within a + * graph + */ + A1C_MapBuilder rootBuilder = A1C_Item_map_builder(root, 5, a1c_arena); + + ZL_ERR_IF_NULL(rootBuilder.map, allocation); + + ZL_ERR_IF_ERR( + addIntValue(rootBuilder, "libraryVersion", libraryVersion, opCtx_)); + ZL_ERR_IF_ERR( + addIntValue(rootBuilder, "frameVersion", frameVersion, opCtx_)); + ZL_ERR_IF_ERR( + addIntValue(rootBuilder, "traceVersion", traceVersion, opCtx_)); + ZL_ERR_IF_ERR(addIntValue(rootBuilder, "operationType", 0, opCtx_)); + + // Wrap streams, codecs, and graphs in a "chunks" array + // Non-segmented runs will have 1 chunk in idx 0. + // Segmented runs will contain the "main" trace in idx 0 and individual + // chunks in idx 1+. By the "main" trace we mean the trace that includes the + // start of the compression, up to the segmenter but not including child + // chunk traces. + A1C_MAP_TRY_ADD(chunksPair, rootBuilder); + A1C_Item_string_refCStr(&chunksPair->key, "chunks"); + A1C_ArrayBuilder chunksBuilder = A1C_Item_array_builder( + &chunksPair->val, 1 + graphRuns.size(), a1c_arena); + ZL_ERR_IF_NULL(chunksBuilder.array, allocation); + + // Add additional chunks from graphRuns + for (auto& graphRun : graphRuns) { + ZL_ERR_IF_ERR( + graphRun.serializeToCBOR(a1c_arena, &chunksBuilder, opCtx_)); + } + + // encode + write data to a buffer + size_t encodedSize = A1C_Item_encodedSize(root); + buffer.resize(encodedSize); + A1C_Error error; + size_t bytesWritten = + A1C_Item_encode(root, buffer.data(), encodedSize, &error); + if (bytesWritten == 0) { + return ZL_WRAP_ERROR(A1C_Error_convert(NULL, error)); + } + ZL_ERR_IF_NE(bytesWritten, encodedSize, allocation); + + return ZL_returnSuccess(); +} + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/CompressTracer.hpp b/cpp/src/openzl/cpp/experimental/trace/CompressTracer.hpp new file mode 100644 index 000000000..86094e50b --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/CompressTracer.hpp @@ -0,0 +1,133 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include +#include + +#include "openzl/cpp/experimental/trace/Codec.hpp" +#include "openzl/cpp/experimental/trace/CompressChunkTrace.hpp" +#include "openzl/cpp/experimental/trace/Graph.hpp" +#include "openzl/cpp/experimental/trace/StreamVisualizer.hpp" + +namespace openzl::visualizer { + +class CompressTracer { + public: + CompressTracer() = default; + explicit CompressTracer(bool showStreamPreview) + : showStreamPreview_(showStreamPreview) + { + } + + TraceResult extractTrace(); + + void on_segmenterEncode_start(ZL_Segmenter* segCtx); + void on_segmenterEncode_end(ZL_Segmenter* segCtx, ZL_Report r); + void on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams); + void on_ZL_Segmenter_processChunk_end(ZL_Segmenter* segCtx, ZL_Report r); + + // Trampolined functions from CompressionTraceHooks + void on_codecEncode_start( + ZL_Encoder* encoder, + const ZL_Compressor* compressor, + ZL_NodeID nid, + const ZL_Input* inStreams[], + size_t nbInStreams); + + void on_codecEncode_end( + ZL_Encoder*, + const ZL_Output* outStreams[], + size_t nbOutputs, + ZL_Report codecExecResult); + + void on_ZL_Encoder_getScratchSpace(ZL_Encoder* ei, size_t size); + + void on_ZL_Encoder_sendCodecHeader( + ZL_Encoder* encoder, + const void* trh, + size_t trhSize); + + void on_ZL_Encoder_createTypedStream( + ZL_Encoder* encoder, + int outStreamIndex, + size_t eltsCapacity, + size_t eltWidth, + ZL_Output* createdStream); + + void on_migraphEncode_start( + ZL_Graph* graph, + const ZL_Compressor* compressor, + ZL_GraphID gid, + ZL_Edge* inputs[], + size_t nbInputs); + + void on_migraphEncode_end( + ZL_Graph*, + ZL_GraphID successorGraphs[], + size_t nbSuccessors, + ZL_Report graphExecResult); + + void on_cctx_convertOneInput( + const ZL_CCtx* const cctx, + const ZL_Data* const, + const ZL_Type inType, + const ZL_Type portTypeMask, + const ZL_Report conversionResult); + + void on_ZL_Graph_getScratchSpace(ZL_Graph* graph, size_t size); + + void on_ZL_Edge_setMultiInputDestination_wParams( + ZL_Graph* graph, + ZL_Edge* inputs[], + size_t nbInputs, + ZL_GraphID gid, + const ZL_LocalParams* lparams); + + void on_ZL_CCtx_compressMultiTypedRef_start( + ZL_CCtx* cctx, + void const* const dst, + size_t const dstCapacity, + ZL_TypedRef const* const inputs[], + size_t const nbInputs); + void on_ZL_CCtx_compressMultiTypedRef_end( + ZL_CCtx const* const cctx, + ZL_Report const result); + + private: + void printStreamMetadata(); + void printCodecMetadata(); + + ZL_Report serializeStreamdumpToCbor( + A1C_Arena* a1c_arena, + std::vector& buffer); + + void setCompressedSize(size_t compressionResultSize); + size_t fillCSize(std::vector& cSize, const ZL_DataID streamID); + + struct ConversionError { + ZL_DataID streamId; + ZL_Report failureReport; + }; + + static constexpr uint32_t libraryVersion = ZL_LIBRARY_VERSION_NUMBER; + uint32_t frameVersion; + static constexpr uint32_t traceVersion = 1; + size_t compressedSize_{}; + + std::vector graphRuns; + CompressChunkTrace* currChunk = + nullptr; // convenience pointer to the current chunk trace + bool segmented = false; + ZL_OperationContext* opCtx_ = nullptr; + bool showStreamPreview_ = true; // show stream preview data from trace + + TraceResult trace; +}; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.cpp b/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.cpp index 336fe1d68..f7975aa62 100644 --- a/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.cpp +++ b/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.cpp @@ -1,30 +1,14 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. #include "openzl/cpp/experimental/trace/CompressionTraceHooks.hpp" -#include "openzl/common/a1cbor_helpers.h" -#include "openzl/common/logging.h" -#include "openzl/compress/dyngraph_interface.h" -#include "openzl/cpp/Exception.hpp" -#include "openzl/cpp/experimental/trace/Codec.hpp" -#include "openzl/cpp/experimental/trace/StreamVisualizer.hpp" #include "openzl/zl_data.h" #include "openzl/zl_errors.h" -#include "openzl/zl_input.h" #include "openzl/zl_opaque_types.h" -#include "openzl/zl_output.h" #include "openzl/zl_reflection.h" -#include #include -#include -#include -#include -#include #include -#include -#include #include -#include namespace openzl::visualizer { @@ -66,6 +50,38 @@ inline std::string graphTypeToStr(ZL_GraphType gtype) } } +void CompressionTraceHooks::on_segmenterEncode_start(ZL_Segmenter* segCtx) +{ + // Trampoline to CompressTracer + tracer_->on_segmenterEncode_start(segCtx); +} +void CompressionTraceHooks::on_segmenterEncode_end( + ZL_Segmenter* segCtx, + ZL_Report r) +{ + // Trampoline to CompressTracer + tracer_->on_segmenterEncode_end(segCtx, r); +} +void CompressionTraceHooks::on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams) +{ + // Trampoline to CompressTracer + tracer_->on_ZL_Segmenter_processChunk_start( + segCtx, numElts, numInputs, startingGraphID, rGraphParams); +} + +void CompressionTraceHooks::on_ZL_Segmenter_processChunk_end( + ZL_Segmenter* segCtx, + ZL_Report r) +{ + // Trampoline to CompressTracer + tracer_->on_ZL_Segmenter_processChunk_end(segCtx, r); +} + void CompressionTraceHooks::on_codecEncode_start( ZL_Encoder* encoder, const ZL_Compressor* compressor, @@ -73,93 +89,42 @@ void CompressionTraceHooks::on_codecEncode_start( const ZL_Input* inStreams[], size_t nbInStreams) { - // for root streams to a compression tree that are not called as output to - // any codec - for (size_t i = 0; i < nbInStreams; ++i) { - ZL_DataID streamID = ZL_Input_id(inStreams[i]); - if (streamInfo_.find(streamID) == streamInfo_.end()) { - const ZL_Type stype = ZL_Input_type(inStreams[i]); - streamInfo_[streamID].type = stype; - } - } - // set codec metadata - Codec newCodec{ .name = ZL_Compressor_Node_getName(compressor, nid), - .cType = ZL_Compressor_Node_isStandard(compressor, nid), - .cID = ZL_Compressor_Node_getCodecID(compressor, nid), - .cHeaderSize = 0, - .cLocalParams = - LocalParams(*ZL_Encoder_getLocalParams(encoder)) }; - codecInfo_.push_back(newCodec); - for (size_t i = 0; i < nbInStreams; ++i) { - ZL_DataID streamID = ZL_Input_id(inStreams[i]); - codecInEdges_[currCodecNum_].push_back( - streamID); // set input streams of this codec - streamConsumerCodec_[streamID] = - currCodecNum_; // set consumer codec number of this streams to - // retrieve header number in cSize calculation - } - // add codec to associated graph if applicable - if (currEncompassingGraph_) { - graphInfo_.back().second.push_back(currCodecNum_); - } + // Trampoline to CompressTracer + tracer_->on_codecEncode_start( + encoder, compressor, nid, inStreams, nbInStreams); } void CompressionTraceHooks::on_codecEncode_end( - ZL_Encoder*, + ZL_Encoder* eictx, const ZL_Output* outStreams[], size_t nbOutputs, ZL_Report codecExecResult) { - if (ZL_isError(codecExecResult)) { - codecInfo_[currCodecNum_].cFailure = codecExecResult; - } - // Note: if the codec failed, we have 0 output streams, so this will be a - // no-op - for (size_t i = 0; i < nbOutputs; ++i) { - // set stream ELT values - const ZL_Output* createdStream = outStreams[i]; - ZL_DataID streamID = ZL_Output_id(createdStream); - streamInfo_[streamID] = { - .type = ZL_Output_type(createdStream), - .outputIdx = i, - .eltWidth = openzl::unwrap(ZL_Output_eltWidth(createdStream)), - .numElts = openzl::unwrap(ZL_Output_numElts(createdStream)), - .contentSize = openzl::unwrap(ZL_Output_contentSize(createdStream)), - }; - streamdump(createdStream); - - codecOutEdges_[currCodecNum_].push_back(streamID); - } - - // connect stream successors for cSize calculation - for (auto streamID : codecInEdges_[currCodecNum_]) { - streamSuccessors_[streamID] = codecOutEdges_[currCodecNum_]; - } - - ++currCodecNum_; + // Trampoline to CompressTracer + tracer_->on_codecEncode_end(eictx, outStreams, nbOutputs, codecExecResult); } -void CompressionTraceHooks::on_ZL_Encoder_getScratchSpace(ZL_Encoder*, size_t) +void CompressionTraceHooks::on_ZL_Encoder_getScratchSpace( + ZL_Encoder* /*ei*/, + size_t /*size*/) { - // std::cout << "function on_ZL_Encoder_getScratchSpace successfully - // called!" - // << std::endl; } void CompressionTraceHooks::on_ZL_Encoder_sendCodecHeader( - ZL_Encoder*, - const void*, + ZL_Encoder* eictx, + const void* trh, size_t trhSize) { - codecInfo_[currCodecNum_].cHeaderSize = trhSize; + // Trampoline to CompressTracer + tracer_->on_ZL_Encoder_sendCodecHeader(eictx, trh, trhSize); } void CompressionTraceHooks::on_ZL_Encoder_createTypedStream( - ZL_Encoder*, - int, - size_t eltsCapacity, - size_t eltWidth, - ZL_Output* createdStream) + ZL_Encoder* /*encoder*/, + int /*outStreamIndex*/, + size_t /*eltsCapacity*/, + size_t /*eltWidth*/, + ZL_Output* /*createdStream*/) { } @@ -170,506 +135,99 @@ void CompressionTraceHooks::on_migraphEncode_start( ZL_Edge* edges[], size_t nbEdges) { - currEncompassingGraph_ = true; - std::vector inEdges; - inEdges.reserve(nbEdges); - for (size_t i = 0; i < nbEdges; ++i) { - inEdges.push_back(edges[i]); - } - Graph currGraph = Graph{ ZL_Compressor_getGraphType(compressor, gid), - ZL_Compressor_Graph_getName(compressor, gid), - ZL_returnSuccess(), - LocalParams(*GCTX_getAllLocalParams(graph)), - std::move(inEdges) }; - graphInfo_.emplace_back(currGraph, std::vector()); + // Trampoline to CompressTracer + tracer_->on_migraphEncode_start(graph, compressor, gid, edges, nbEdges); } void CompressionTraceHooks::on_migraphEncode_end( - ZL_Graph*, - ZL_GraphID[], - size_t, + ZL_Graph* gctx, + ZL_GraphID ssuccesorGraphs[], + size_t nbSuccessors, ZL_Report graphExecResult) { - if (ZL_isError(graphExecResult)) { - bool codecsHaveErrors = std::accumulate( - graphInfo_.back().second.begin(), - graphInfo_.back().second.end(), - false, - [this](bool acc, size_t codecNum) { - return acc || ZL_isError(codecInfo_[codecNum].cFailure); - }); - if (!codecsHaveErrors) { - // Only report failures that occur outside individual codec - // executions - graphInfo_.back().first.gFailure = graphExecResult; - // also add an "in-progress" placeholder if there are no codecs - if (graphInfo_.back().second.size() == 0) { - graphInfo_.back().second.push_back(currCodecNum_); - Codec inProgress = { - .name = "zl.#in_progress", - .cType = true, // standard - .cID = 0, - .cHeaderSize = 0, - .cLocalParams = {}, - }; - codecInfo_.push_back(std::move(inProgress)); - codecOutEdges_[currCodecNum_] = {}; - for (auto edge : graphInfo_.back().first.inEdges) { - auto data = ZL_Edge_getData(edge); - auto id = ZL_Input_id(data); - streamConsumerCodec_[id] = currCodecNum_; - codecInEdges_[currCodecNum_].push_back(id); - } - ++currCodecNum_; - } - } - currEncompassingGraph_ = false; - return; - } - // If the graph didn't have any codecs between it, we don't want to - // report it - if (graphInfo_.size() > 0 && graphInfo_.back().second.size() == 0) { - graphInfo_.pop_back(); - } - currEncompassingGraph_ = false; + // Trampoline to CompressTracer + tracer_->on_migraphEncode_end( + gctx, ssuccesorGraphs, nbSuccessors, graphExecResult); } void CompressionTraceHooks::on_cctx_convertOneInput( - const ZL_CCtx* const, + const ZL_CCtx* const cctx, const ZL_Data* const input, - const ZL_Type, - const ZL_Type, + const ZL_Type inType, + const ZL_Type portTypeMask, const ZL_Report conversionResult) { - if (ZL_isError(conversionResult)) { - this->maybeConversionError_ = { - .streamId = ZL_Data_id(input), - .failureReport = conversionResult, - }; - } + // Trampoline to CompressTracer + tracer_->on_cctx_convertOneInput( + cctx, input, inType, portTypeMask, conversionResult); } -void CompressionTraceHooks::on_ZL_Graph_getScratchSpace(ZL_Graph*, size_t) {} +void CompressionTraceHooks::on_ZL_Graph_getScratchSpace( + ZL_Graph* /*graph*/, + size_t /*size*/) +{ +} void CompressionTraceHooks::on_ZL_Edge_setMultiInputDestination_wParams( - ZL_Graph*, - ZL_Edge*[], - size_t, - ZL_GraphID, - const ZL_LocalParams*) + ZL_Graph* /*graph*/, + ZL_Edge*[] /*inputs*/, + size_t /*nbInputs*/, + ZL_GraphID /*gid*/, + const ZL_LocalParams* /*lparams*/) { } void CompressionTraceHooks::on_ZL_CCtx_compressMultiTypedRef_start( - ZL_CCtx const* const cctx, - void const* const, - size_t const, - ZL_TypedRef const* const[], - size_t const) + ZL_CCtx* cctx, + void const* const dst, + size_t const dstCapacity, + ZL_TypedRef const* const inputs[], + size_t const nbInputs) { // Reset the output stream outStream_.str(""); outStream_.clear(); - latestStreamdumpCache_ = - std::map>(); - - // Reset structures - // TODO(T233578553): Refactor into a single data struct so we don't need - // to reset a bunch of things - cctx_ = cctx; - compressedSize_ = 0; - currCodecNum_ = 0; - streamInfo_.clear(); - codecInfo_.clear(); - codecInEdges_.clear(); - codecOutEdges_.clear(); - streamSuccessors_.clear(); - streamConsumerCodec_.clear(); - graphInfo_.clear(); - currEncompassingGraph_ = false; -} - -void CompressionTraceHooks::on_ZL_CCtx_compressMultiTypedRef_end( - ZL_CCtx const* const, - ZL_Report const result) -{ - // If the compression is successful, we can assume all the streams - // without targets go to STORE - if (ZL_isError(result)) { - ZL_LOG(ALWAYS, "Compression not successful!"); - std::cerr << "Compression not successful!" << std::endl; - // temp: in-flight streams go to an "in-progress" node - for (unsigned i = 0; i < streamInfo_.size(); ++i) { - const ZL_DataID streamID = { .sid = i }; - if (streamConsumerCodec_.find(streamID) - == streamConsumerCodec_.end()) { - Codec inProgress = { - .name = "zl.#in_progress", - .cType = true, // standard - .cID = 0, - .cHeaderSize = 0, - .cLocalParams = {}, - }; - if (this->maybeConversionError_.has_value() - && this->maybeConversionError_->streamId.sid - == streamID.sid) { - inProgress.cFailure = maybeConversionError_->failureReport; - } - codecInfo_.push_back(std::move(inProgress)); - codecInEdges_[currCodecNum_].push_back(streamID); - codecOutEdges_[currCodecNum_] = {}; - streamConsumerCodec_[streamID] = currCodecNum_; - ++currCodecNum_; - } - } - } else { - setCompressedSize(ZL_validResult(result)); - for (unsigned i = 0; i < streamInfo_.size(); ++i) { - const ZL_DataID streamID = { .sid = i }; - if (streamConsumerCodec_.find(streamID) - == streamConsumerCodec_.end()) { - Codec store = { - .name = "zl.store", - .cType = true, // standard - .cID = 0, - .cHeaderSize = 0, - .cLocalParams = {}, - }; - codecInfo_.push_back(std::move(store)); - codecInEdges_[currCodecNum_].push_back(streamID); - codecOutEdges_[currCodecNum_] = {}; - streamConsumerCodec_[streamID] = currCodecNum_; - ++currCodecNum_; - } - } - } - - printStreamMetadata(); - printCodecMetadata(); + latestStreamdumpCache_ = {}; - // convert compression data into a1c_items to write to a CBOR file - Arena* arena = ALLOC_HeapArena_create(); - A1C_Arena a1c_arena = A1C_Arena_wrap(arena); - std::vector buffer; - // Serialize the streamdump content in CBOR format - auto res = serializeStreamdumpToCbor(&a1c_arena, buffer); - if (ZL_isError(res)) { - ZL_LOG(ERROR, "Failed to serialize streamdump content!"); - throw std::runtime_error("Failed to serialize streamdump content."); - } - ALLOC_Arena_freeArena(arena); - // Write the serialized streamdump content to a file - if (ZL_isError(writeSerializedStreamdump(buffer))) { - ZL_LOG(ERROR, - "Failed to write serialized streamdump content to a file!"); + if (tracer_) { throw std::runtime_error( - "Failed to write serialize streamdump content into a CBOR file."); + "Corrupted state. Trace context already exists!"); } - latestTraceCache_ = outStream_.str(); + tracer_ = std::make_unique(showStreamPreview_); + tracer_->on_ZL_CCtx_compressMultiTypedRef_start( + cctx, dst, dstCapacity, inputs, nbInputs); } -size_t CompressionTraceHooks::fillCSize( - std::vector& cSize, - const ZL_DataID streamID) -{ - size_t cSize_idx = streamID.sid; - // already filled up - if (cSize.size() != 0 && cSize[cSize_idx] != SIZE_MAX) { - return cSize[cSize_idx]; - } - // base case: stream has no successors, and is input to the frame - if (streamSuccessors_.find(streamID) == streamSuccessors_.end() - || streamSuccessors_.at(streamID).size() == 0) { - cSize[cSize_idx] = streamInfo_.at(streamID).contentSize; - return cSize[cSize_idx]; - } - - // Get the header size - if (streamConsumerCodec_.find(streamID) != streamConsumerCodec_.end()) { - size_t codecNum = streamConsumerCodec_.at(streamID); - cSize[cSize_idx] = codecInfo_.at(codecNum).cHeaderSize; - } else { - cSize[cSize_idx] = 0; - } - - size_t nbSuccessors = streamSuccessors_.at(streamID).size(); - // recursively fill cSize of this stream by summing the cSize of its - // successor streams - for (size_t i = 0; i < nbSuccessors; ++i) { - ZL_DataID successorStreamID = streamSuccessors_.at(streamID)[i]; - cSize[cSize_idx] += fillCSize(cSize, successorStreamID); - } - - // if the consumer codec has multiple inputs, assume each input provides - // equal contribution - cSize[cSize_idx] /= codecInEdges_[streamConsumerCodec_.at(streamID)].size(); - return cSize[cSize_idx]; -} - -void CompressionTraceHooks::setCompressedSize(size_t compressionResultSize) -{ - compressedSize_ = compressionResultSize; -} - -void CompressionTraceHooks::printStreamMetadata() -{ - std::vector cSize(streamInfo_.size(), SIZE_MAX); - std::cout << "digraph stream_topo {" << std::endl; - for (auto& s : streamInfo_) { - const ZL_DataID streamID = s.first; - ZL_IDType sid = streamID.sid; - streamInfo_[streamID].cSize = fillCSize(cSize, streamID); - streamInfo_[streamID].share = - static_cast(streamInfo_[streamID].cSize) - / static_cast(compressedSize_) * 100; - - Stream metadata = s.second; - std::cout << 'S' << sid << " [shape=record, label=\"Stream: " << sid - << "\\nType: " << streamTypeToStr(metadata.type) - << "\\nOutputIdx: " << metadata.outputIdx - << "\\nEltWidth: " << metadata.eltWidth - << "\\n#Elts: " << metadata.numElts - << "\\nCSize: " << metadata.cSize << "\\nShare: "; - { - std::cout << std::fixed << std::setprecision(2) << metadata.share - << "%\"];" << std::endl; - } - } - std::cout << std::endl; // 1 line space between following text -} - -// helper function to print out local params -static void printLocalParams(const LocalParams& lpi) -{ - const auto ips = lpi.getIntParams(); - if (ips.size() > 0) { - std::cout << "\\nIntParams (paramId, paramValue): "; - std::cout << '(' << ips[0].paramId << ", " << ips[0].paramValue << ')'; - for (size_t i = 1; i < ips.size(); ++i) { - std::cout << ", "; - std::cout << '(' << ips[i].paramId << ", " << ips[i].paramValue - << ')'; - } - } - const auto cps = lpi.getCopyParams(); - if (cps.size() > 0) { - std::cout << "\\nCopyParams (paramId, paramSize): "; - std::cout << '(' << cps[0].paramId << ", " << cps[0].paramSize << ')'; - for (size_t i = 1; i < cps.size(); ++i) { - std::cout << ", "; - std::cout << '(' << cps[i].paramId << ", " << cps[i].paramSize - << ')'; - } - } - const auto rps = lpi.getRefParams(); - if (rps.size() > 0) { - std::cout << "\\nRefParams (paramId): "; - std::cout << '(' << rps[0].paramId << ')'; - for (size_t i = 1; i < rps.size(); ++i) { - std::cout << ", "; - std::cout << '(' << rps[i].paramId << ')'; - } - } -} - -void CompressionTraceHooks::printCodecMetadata() -{ - size_t graphInfoIdx = 0; - for (size_t codecNum = 0; codecNum < codecInfo_.size(); ++codecNum) { - // identify the start of a graph within our compression tree, if - // identified, print text required to group codecs and streams - // together in this graph - if (graphInfoIdx < graphInfo_.size() - && codecNum == graphInfo_[graphInfoIdx].second.front()) { - Graph& graph = graphInfo_[graphInfoIdx].first; - std::cout << "subgraph cluster_" << graphInfoIdx << '{' << std::endl - << "label=\"" << graph.gName - << "\\ntype=" << graphTypeToStr(graph.gType); - if (ZL_isError(graph.gFailure)) { - std::cout << "\\nFailure: " - << ZL_CCtx_getErrorContextString( - cctx_, graph.gFailure); - } - printLocalParams(graph.gLocalParams); - std::cout << "\";" << std::endl << "color=maroon" << std::endl; - } - // print general codec metadata - Codec& metadata = codecInfo_[codecNum]; - std::string codecName = metadata.cType ? "Standard" : "Custom"; - std::cout << "T" << codecNum << " [shape=Mrecord, label=\"" - << metadata.name << "(ID: " << metadata.cID << ")\\n " - << codecName << " transform " << codecNum - << "\\n Header size: " << metadata.cHeaderSize; - if (ZL_isError(metadata.cFailure)) { - std::cout << "\\n Failure: " - << ZL_CCtx_getErrorContextString( - cctx_, metadata.cFailure); - } - printLocalParams(metadata.cLocalParams); - std::cout << "\"];" << std::endl; - - // Output the edges from transform to streams - auto customStreamSort = [](const ZL_DataID& a, const ZL_DataID& b) { - return a.sid < b.sid; - }; - std::vector trChildStreams = codecOutEdges_[codecNum]; - std::sort( - trChildStreams.begin(), trChildStreams.end(), customStreamSort); - size_t labelNum = trChildStreams.size() - 1; - for (ZL_DataID strID : trChildStreams) { - std::cout << "T" << codecNum << " -> S" << strID.sid << "[label=\"#" - << labelNum << "\"];" << std::endl; - --labelNum; - } - - // Output the stream(s) that are the input for the transform - std::vector trParentStreams = codecInEdges_[codecNum]; - labelNum = 0; - std::sort( - trParentStreams.begin(), - trParentStreams.end(), - customStreamSort); - for (ZL_DataID strID : trParentStreams) { - std::cout << "S" << strID.sid << " -> T" << codecNum << "[label=\"#" - << labelNum << "\"];" << std::endl; - ++labelNum; - } - // last codec in the current graph reached, so move to next one - if (graphInfoIdx < graphInfo_.size() - && codecNum == graphInfo_[graphInfoIdx].second.back()) { - std::cout << '}' << std::endl; - ++graphInfoIdx; - } - } - - std::cout << "}" << std::endl; -} - -static bool writeToFile(const std::vector& buffer, std::ostream& out) -{ - if (!out.good()) { - return false; - } - std::string bufferString(buffer.begin(), buffer.end()); - out.write(bufferString.c_str(), bufferString.size()); - out.flush(); - if (out.fail()) { - return false; - } - - return true; -} - -ZL_Report CompressionTraceHooks::serializeStreamdumpToCbor( - A1C_Arena* a1c_arena, - std::vector& buffer) -{ - A1C_Item* root = A1C_Item_root(a1c_arena); - ZL_RET_R_IF_NULL(allocation, root); - /* want 3 inner maps: - * 1. streams and their associated metadata - * 2. codecs and their associated metadata, and their in/out edges - * 3. graph info, specifically, which codecs and edges are within a - * graph - */ - A1C_MapBuilder rootBuilder = A1C_Item_map_builder(root, 3, a1c_arena); - ZL_RET_R_IF_NULL(allocation, rootBuilder.map); - - // 1. Make the streams map - A1C_MAP_TRY_ADD_R(streamsPair, rootBuilder); - A1C_Item_string_refCStr(&streamsPair->key, "streams"); - A1C_ArrayBuilder streamsBuilder = A1C_Item_array_builder( - &streamsPair->val, streamInfo_.size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, streamsBuilder.array); - for (auto& stream : streamInfo_) { - A1C_ARRAY_TRY_ADD_R(a1c_stream, streamsBuilder); - ZL_RET_R_IF_ERR(stream.second.serializeStream(a1c_arena, a1c_stream)); - } - - // 2. Make the codecs map + their in and out edges as part of metadata - A1C_MAP_TRY_ADD_R(codecsPair, rootBuilder); - A1C_Item_string_refCStr(&codecsPair->key, "codecs"); - A1C_ArrayBuilder codecsBuilder = A1C_Item_array_builder( - &codecsPair->val, codecInfo_.size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, codecsBuilder.array); - for (size_t codecNum = 0; codecNum < codecInfo_.size(); ++codecNum) { - Codec& codec = codecInfo_[codecNum]; - A1C_ARRAY_TRY_ADD_R(a1c_codec, codecsBuilder); - ZL_RET_R_IF_ERR(codec.serializeCodec( - a1c_arena, - a1c_codec, - cctx_, - codecInEdges_[codecNum], - codecOutEdges_[codecNum])); - } - - // 3. graph info map - A1C_MAP_TRY_ADD_R(graphsPair, rootBuilder); - A1C_Item_string_refCStr(&graphsPair->key, "graphs"); - A1C_ArrayBuilder graphsBuilder = A1C_Item_array_builder( - &graphsPair->val, graphInfo_.size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, graphsBuilder.array); - for (auto& [graph, codecIDs] : graphInfo_) { - A1C_ARRAY_TRY_ADD_R(a1c_graph, graphsBuilder); - ZL_RET_R_IF_ERR( - graph.serializeGraph(a1c_arena, a1c_graph, cctx_, codecIDs)); - } - - // encode + write data to a buffer - size_t encodedSize = A1C_Item_encodedSize(root); - buffer.resize(encodedSize); - A1C_Error error; - size_t bytesWritten = - A1C_Item_encode(root, buffer.data(), encodedSize, &error); - if (bytesWritten == 0) { - ZL_RET_R_WRAP_ERR(A1C_Error_convert(NULL, error)); - } - ZL_RET_R_IF_NE(allocation, bytesWritten, encodedSize); - - return ZL_returnSuccess(); -} - -ZL_Report CompressionTraceHooks::writeSerializedStreamdump( - std::vector& buffer) +void CompressionTraceHooks::on_ZL_CCtx_compressMultiTypedRef_end( + ZL_CCtx const* const cctx, + ZL_Report const result) { - bool successfulWrite = writeToFile(buffer, outStream_); - if (!successfulWrite) { - ZL_RET_R_ERR(GENERIC, "Failed to write to streamdump CBOR file"); - } - ZL_LOG(ALWAYS, "Successfully wrote streamdump CBOR"); + tracer_->on_ZL_CCtx_compressMultiTypedRef_end(cctx, result); - return ZL_returnSuccess(); + auto trace = tracer_->extractTrace(); + latestTraceCache_ = std::move(trace.trace); + latestStreamdumpCache_ = std::move(trace.streamdump); + tracer_ = nullptr; } std::pair< poly::string_view, - std::map>> + std::map>> CompressionTraceHooks::getLatestTrace() { - std::map> + std::map> streamdumps; - for (auto& [k, v] : latestStreamdumpCache_) { - streamdumps[k] = { poly::string_view(v.first), - poly::string_view(v.second) }; + for (size_t chunkId = 0; chunkId < latestStreamdumpCache_.size(); + chunkId++) { + for (const auto& streamdump : latestStreamdumpCache_[chunkId]) { + std::string key = "chunk_" + std::to_string(chunkId) + "_stream_" + + std::to_string(streamdump.streamId); + streamdumps[key] = { poly::string_view(streamdump.content), + poly::string_view(streamdump.strLens) }; + } } - return { latestTraceCache_, std::move(streamdumps) }; -} -void CompressionTraceHooks::streamdump(const ZL_Output* createdStream) -{ - auto content = std::string( - (const char*)ZL_Output_constPtr(createdStream), - ZL_validResult(ZL_Output_contentSize(createdStream))); - std::string strLens = ""; - if (ZL_Output_type(createdStream) == ZL_Type_string) { - auto ptr = ZL_Output_constStringLens(createdStream); - strLens = std::string( - (const char*)ptr, - ZL_validResult(ZL_Output_numElts(createdStream)) - * sizeof(ptr[0])); - } - latestStreamdumpCache_[ZL_Output_id(createdStream).sid] = { content, - strLens }; + return { latestTraceCache_, std::move(streamdumps) }; } } // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.hpp b/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.hpp index c405b3a21..066e44c27 100644 --- a/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.hpp +++ b/cpp/src/openzl/cpp/experimental/trace/CompressionTraceHooks.hpp @@ -3,9 +3,7 @@ #pragma once #include "openzl/cpp/CompressIntrospectionHooks.hpp" -#include "openzl/cpp/experimental/trace/Codec.hpp" -#include "openzl/cpp/experimental/trace/Graph.hpp" -#include "openzl/cpp/experimental/trace/StreamVisualizer.hpp" +#include "openzl/cpp/experimental/trace/CompressTracer.hpp" #include "openzl/cpp/poly/StringView.hpp" #include "openzl/shared/a1cbor.h" #include "openzl/zl_opaque_types.h" @@ -19,30 +17,34 @@ namespace openzl::visualizer { class CompressionTraceHooks : public openzl::CompressIntrospectionHooks { public: - CompressionTraceHooks() = default; + explicit CompressionTraceHooks(bool showStreamPreview) + : showStreamPreview_(showStreamPreview) + { + } ~CompressionTraceHooks() override = default; - void printStreamMetadata(); - - void printCodecMetadata(); - - ZL_Report serializeStreamdumpToCbor( - A1C_Arena* a1c_arena, - std::vector& buffer); - - ZL_Report writeSerializedStreamdump(std::vector& buffer); - - void setCompressedSize(size_t compressionResultSize); - size_t fillCSize(std::vector& cSize, const ZL_DataID streamID); - std::pair< poly::string_view, - std::map>> + std::map< + std::string, + std::pair>> getLatestTrace(); // *************************************************** // Overridden functions from CompressIntrospectionHooks // *************************************************** + void on_segmenterEncode_start(ZL_Segmenter* segCtx) override; + void on_segmenterEncode_end(ZL_Segmenter* segCtx, ZL_Report r) override; + void on_ZL_Segmenter_processChunk_start( + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams) override; + + void on_ZL_Segmenter_processChunk_end(ZL_Segmenter* segCtx, ZL_Report r) + override; + void on_codecEncode_start( ZL_Encoder* encoder, const ZL_Compressor* compressor, @@ -100,7 +102,7 @@ class CompressionTraceHooks : public openzl::CompressIntrospectionHooks { const ZL_LocalParams* lparams) override; void on_ZL_CCtx_compressMultiTypedRef_start( - ZL_CCtx const* const cctx, + ZL_CCtx* cctx, void const* const dst, size_t const dstCapacity, ZL_TypedRef const* const inputs[], @@ -110,37 +112,16 @@ class CompressionTraceHooks : public openzl::CompressIntrospectionHooks { ZL_Report const result) override; private: - void streamdump(const ZL_Output* stream); - std::stringstream outStream_; // output stream to write to - std::map> - latestStreamdumpCache_; // cache for latest streamdumps. Key is the - // stream ID, value is a pair of strings - // (content, string lengths (or "")) + std::vector> + latestStreamdumpCache_; // cache for latest streamdumps. Key + // is the stream ID, value is a pair + // of strings (content, string + // lengths (or "")) std::string latestTraceCache_; // cache for latest trace - const ZL_CCtx* cctx_{}; - size_t compressedSize_{}; - size_t currCodecNum_ = 0; - std::map streamInfo_; - std::vector codecInfo_; - std::unordered_map> codecInEdges_; - std::unordered_map> codecOutEdges_; - std::unordered_map< - ZL_DataID, - std::vector, - ZL_DataIDHash, - ZL_DataIDEquality> - streamSuccessors_; - std::unordered_map - streamConsumerCodec_; - std::vector>> graphInfo_; - bool currEncompassingGraph_ = false; // if codecs are running within a graph - - struct ConversionError { - ZL_DataID streamId; - ZL_Report failureReport; - }; - std::optional maybeConversionError_ = std::nullopt; + bool showStreamPreview_ = true; + std::unique_ptr + tracer_; // pointer to the actual class that does a trace }; } // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/DecompressChunkTrace.cpp b/cpp/src/openzl/cpp/experimental/trace/DecompressChunkTrace.cpp new file mode 100644 index 000000000..c93a240a9 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/DecompressChunkTrace.cpp @@ -0,0 +1,229 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/cpp/experimental/trace/DecompressChunkTrace.hpp" + +#include "openzl/common/a1cbor_helpers.h" +#include "openzl/cpp/Exception.hpp" +#include "openzl/cpp/experimental/trace/CborHelpers.hpp" +#include "openzl/decompress/dictx.h" +#include "openzl/zl_data.h" +#include "openzl/zl_decompress.h" +#include "openzl/zl_errors.h" + +#include + +namespace openzl::visualizer { + +DecompressChunkTrace DecompressChunkTrace::makeSegmenterChunk( + size_t chunkId, + bool showStreamPreview) +{ + auto ret = DecompressChunkTrace(chunkId, showStreamPreview); + Codec newCodec{ .name = "segmenter", // TODO(segm): expose segmenter name + .cType = false, + .cID = 0, // eh? + .cHeaderSize = 0, + .chunkId = chunkId }; + newCodec.codecNum = 0; + ret.codecInfo_.push_back(std::move(newCodec)); + return ret; +} + +void DecompressChunkTrace::finalizeTrace(ZL_Report result) +{ + if (ZL_isError(result)) { + ChunkTraceCore::finalizeUnsourcedStreams( + "zl.#in_progress", + streamInfo_, + codecInfo_, + currCodecNum_, + chunkId_); + } else { + ChunkTraceCore::finalizeUnsourcedStreams( + "zl.#regen", streamInfo_, codecInfo_, currCodecNum_, chunkId_); + } + + // Fill cSize and share for all streams + for (auto& [streamID, stream] : streamInfo_) { + ChunkTraceCore::fillCSize( + streamID, streamInfo_, codecInfo_, totalCompressedSize_); + } +} + +void DecompressChunkTrace::resolveErrorStrings(const ZL_DCtx* dctx) +{ + for (auto& codec : codecInfo_) { + if (ZL_isError(codec.cFailure)) { + const char* str = + ZL_DCtx_getErrorContextString(dctx, codec.cFailure); + codec.cFailureString = str ? str : ""; + } + } +} + +ZL_Report DecompressChunkTrace::serializeToCBOR( + A1C_Arena* a1c_arena, + A1C_ArrayBuilder* chunkArrayBuilder, + ZL_OperationContext* opCtx) +{ + std::vector noGraphs; + return ChunkTraceCore::serializeChunkDataToCBOR( + a1c_arena, + chunkArrayBuilder, + chunkId_, + streamInfo_, + codecInfo_, + noGraphs, + opCtx); +} + +void DecompressChunkTrace::on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) +{ + // Discover new streams and create sink placeholders before pushing the + // decode codec, so that currCodecNum_ remains valid for the decode codec. + for (size_t i = 0; i < nbInStreams; ++i) { + StreamID streamID = ZL_Data_id(inStreams[i]); + if (streamInfo_.find(streamID) == streamInfo_.end()) { + ZL_Type type = ZL_Data_type(inStreams[i]); + size_t eltWidth = ZL_Data_eltWidth(inStreams[i]); + size_t numElts = ZL_Data_numElts(inStreams[i]); + + StreamPreview preview = showStreamPreview_ + ? ChunkTraceCore::getStreamPreview( + ZL_Data_rPtr(inStreams[i]), + type, + eltWidth, + numElts, + ZL_Data_rStringLens(inStreams[i])) + : ChunkTraceCore::emptyPreview(type); + + streamInfo_[streamID] = Stream{ + .id = streamID, + .type = type, + .outputIdx = i, + .eltWidth = eltWidth, + .numElts = numElts, + .contentSize = ZL_Data_contentSize(inStreams[i]), + .chunkId = chunkId_, + .streamPreview = std::move(preview), + }; + ChunkTraceCore::createSinkForStream( + "zl.store", + streamID, + streamInfo_[streamID], + codecInfo_, + currCodecNum_, + chunkId_); + // NB: this does not account for the various non-codec header costs + totalCompressedSize_ += streamInfo_[streamID].contentSize; + } + } + + // Extract transform info from ZL_Decoder + const char* transformName = DT_getTransformName(dictx->dt); + + Codec newCodec{ + .name = transformName ? transformName : "", + .cType = true, + .cID = dictx->dt->miGraphDesc.CTid, + .cHeaderSize = 0, + .cLocalParams = {}, + .chunkId = chunkId_, + }; + newCodec.codecNum = currCodecNum_; + codecInfo_.push_back(std::move(newCodec)); + + for (size_t i = 0; i < nbInStreams; ++i) { + codecInfo_[currCodecNum_].outEdges.push_back(ZL_Data_id(inStreams[i])); + streamInfo_[ZL_Data_id(inStreams[i])].producerCodec = currCodecNum_; + } +} + +void DecompressChunkTrace::on_codecDecode_end( + ZL_Decoder* /* dictx */, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) +{ + if (ZL_isError(result)) { + codecInfo_[currCodecNum_].cFailure = result; + } + + // Record output streams with full metadata from ZL_Data objects + for (size_t i = 0; i < nbOutStreams; ++i) { + StreamID streamID = ZL_Data_id(outStreams[i]); + if (streamInfo_.find(streamID) == streamInfo_.end()) { + ZL_Type type = ZL_Data_type(outStreams[i]); + size_t eltWidth = ZL_Data_eltWidth(outStreams[i]); + size_t numElts = ZL_Data_numElts(outStreams[i]); + + StreamPreview preview = showStreamPreview_ + ? ChunkTraceCore::getStreamPreview( + ZL_Data_rPtr(outStreams[i]), + type, + eltWidth, + numElts, + ZL_Data_rStringLens(outStreams[i])) + : ChunkTraceCore::emptyPreview(type); + + streamInfo_[streamID] = Stream{ + .id = streamID, + .type = type, + .outputIdx = i, + .eltWidth = eltWidth, + .numElts = numElts, + .contentSize = ZL_Data_contentSize(outStreams[i]), + .chunkId = chunkId_, + .streamPreview = std::move(preview), + }; + } + codecInfo_[currCodecNum_].inEdges.push_back(streamID); + streamInfo_[streamID].consumerCodec = currCodecNum_; + } + + // Capture streamdump for each output stream + for (size_t i = 0; i < nbOutStreams; ++i) { + streamdump(outStreams[i]); + } + + // Connect stream successors for cSize calculation + for (const auto& inStreamID : codecInfo_[currCodecNum_].inEdges) { + streamInfo_[inStreamID].successors = codecInfo_[currCodecNum_].outEdges; + } + + ++currCodecNum_; +} + +void DecompressChunkTrace::streamdump(const ZL_Data* data) +{ + auto content = std::string( + (const char*)ZL_Data_rPtr(data), ZL_Data_contentSize(data)); + std::string strLens = ""; + if (ZL_Data_type(data) == ZL_Type_string) { + auto ptr = ZL_Data_rStringLens(data); + strLens = std::string( + (const char*)ptr, ZL_Data_numElts(data) * sizeof(ptr[0])); + } + streamdump_[ZL_Data_id(data).sid] = { content, strLens }; +} + +std::map>&& +DecompressChunkTrace::getStreamdump() +{ + return std::move(streamdump_); +} + +void DecompressChunkTrace::on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* /* dictx */, + const void* /* trh */, + size_t trhSize) +{ + // The header read happens between codecDecode_start and codecDecode_end, + // so currCodecNum_ points to the current codec being decoded. + codecInfo_[currCodecNum_].cHeaderSize = trhSize; +} + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/DecompressChunkTrace.hpp b/cpp/src/openzl/cpp/experimental/trace/DecompressChunkTrace.hpp new file mode 100644 index 000000000..45f8687ec --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/DecompressChunkTrace.hpp @@ -0,0 +1,84 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include +#include + +#include "openzl/cpp/experimental/trace/ChunkTraceCore.hpp" +#include "openzl/cpp/experimental/trace/Codec.hpp" +#include "openzl/cpp/experimental/trace/StreamVisualizer.hpp" + +namespace openzl::visualizer { + +/** + * Per-chunk data collection for decompression tracing. + * Analogous to CompressChunkTrace on the compression side, but without graph + * info (no graphs at decompress time). + */ +class DecompressChunkTrace { + public: + DecompressChunkTrace() = delete; + explicit DecompressChunkTrace(size_t chunkId, bool showStreamPreview) + : chunkId_(chunkId), showStreamPreview_(showStreamPreview) + { + } + + /** + * Helper function to create a dummy chunk that just contains a segmenter + * node, in cases where the trace is a multi-chunk run. + */ + static DecompressChunkTrace makeSegmenterChunk( + size_t chunkId, + bool showStreamPreview); + /** + * Finalize the trace. + * - On success, unsourced streams (decoded outputs) go to "zl.regen". + * - On failure, unsourced streams go to "zl.#in_progress". + */ + void finalizeTrace(ZL_Report result); + + /** + * Resolve error context strings for all codecs. + * Must be called while the DCtx is still alive. + */ + void resolveErrorStrings(const ZL_DCtx* dctx); + + ZL_Report serializeToCBOR( + A1C_Arena* a1c_arena, + A1C_ArrayBuilder* chunkArrayBuilder, + ZL_OperationContext* opCtx); + + /* ************** Trampolined hook calls ************** */ + void on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize); + + void on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams); + + void on_codecDecode_end( + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result); + + std::map>&& getStreamdump(); + + private: + void streamdump(const ZL_Data* data); + + const size_t chunkId_; + bool showStreamPreview_ = true; // show stream preview data from trace + size_t totalCompressedSize_ = 0; + size_t currCodecNum_ = 0; + std::map streamInfo_; + std::map> streamdump_; + std::vector codecInfo_; + // No graphInfo_ — decompression has no graphs +}; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/DecompressTracer.cpp b/cpp/src/openzl/cpp/experimental/trace/DecompressTracer.cpp new file mode 100644 index 000000000..0e6d0a24d --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/DecompressTracer.cpp @@ -0,0 +1,182 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/cpp/experimental/trace/DecompressTracer.hpp" + +#include "openzl/common/a1cbor_helpers.h" +#include "openzl/common/logging.h" +#include "openzl/cpp/Exception.hpp" +#include "openzl/cpp/experimental/trace/CborHelpers.hpp" +#include "openzl/zl_decompress.h" +#include "openzl/zl_errors.h" + +#include +#include + +namespace openzl::visualizer { + +static constexpr size_t MAIN_CHUNK_IDX = 0; + +TraceResult DecompressTracer::extractTrace() +{ + // Aggregate streamdump from all chunks + trace_.streamdump.reserve(chunks_.size()); + for (auto& chunk : chunks_) { + auto streamdump = chunk.getStreamdump(); + std::vector tmp = {}; + tmp.reserve(streamdump.size()); + for (auto& [k, v] : streamdump) { + tmp.push_back( + StreamdumpEntry{ + k, std::move(v.first), std::move(v.second) }); + } + trace_.streamdump.push_back(std::move(tmp)); + } + return std::move(trace_); +} + +void DecompressTracer::on_ZL_DCtx_decompressMultiTBuffer_start( + ZL_DCtx* dctx, + size_t /* nbOutputs */, + const void* framePtr, + size_t frameSize) +{ + frameVersion_ = static_cast( + ZL_validResult(ZL_getFormatVersionFromFrame(framePtr, frameSize))); + + // Create the main chunk at index 0 + chunks_.emplace_back(MAIN_CHUNK_IDX, showStreamPreview_); + currChunk_ = &chunks_[MAIN_CHUNK_IDX]; + opCtx_ = ZL_GET_OPERATION_CONTEXT(dctx); +} + +void DecompressTracer::on_ZL_DCtx_decompressMultiTBuffer_end( + ZL_DCtx* dctx, + ZL_Report /* result */) +{ + // Resolve error strings while the DCtx is still alive + for (auto& chunk : chunks_) { + chunk.resolveErrorStrings(dctx); + } + + // Create a dummy "main" chunk, if necessary + if (chunks_.size() > 1) { + auto dummyChunk = DecompressChunkTrace::makeSegmenterChunk( + chunks_.size(), showStreamPreview_); + std::vector newChunks = { std::move(dummyChunk) }; + for (auto& chunk : chunks_) { + newChunks.push_back(std::move(chunk)); + } + this->chunks_ = std::move(newChunks); + } + + // Serialize the trace to CBOR + Arena* arena = ALLOC_HeapArena_create(); + A1C_Arena a1c_arena = A1C_Arena_wrap(arena); + std::vector buffer; + auto res = serializeStreamdumpToCbor(&a1c_arena, buffer); + if (ZL_isError(res)) { + ZL_LOG(ERROR, "Failed to serialize decompression trace!"); + ALLOC_Arena_freeArena(arena); + throw std::runtime_error("Failed to serialize decompression trace."); + } + ALLOC_Arena_freeArena(arena); + if (ZL_isError( + ChunkTraceCore::writeSerializedStreamdump( + buffer, trace_.trace))) { + ZL_LOG(ERROR, "Failed to write serialized decompression trace!"); + throw std::runtime_error( + "Failed to write serialized decompression trace."); + } +} + +void DecompressTracer::on_decompressChunk_start( + ZL_DCtx* /* dctx */, + size_t chunkIndex) +{ + if (chunkIndex > 0) { + // Multi-chunk frame: create additional chunk traces + chunks_.emplace_back(chunkIndex, showStreamPreview_); + currChunk_ = &chunks_.back(); + } +} + +void DecompressTracer::on_decompressChunk_end( + ZL_DCtx* /* dctx */, + ZL_Report result) +{ + currChunk_->finalizeTrace(result); + // The main chunk is finalized in decompressMultiTBuffer_end +} + +void DecompressTracer::on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize) +{ + currChunk_->on_ZL_Decoder_getCodecHeader(dictx, trh, trhSize); +} + +void DecompressTracer::on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) +{ + currChunk_->on_codecDecode_start(dictx, inStreams, nbInStreams); +} + +void DecompressTracer::on_codecDecode_end( + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) +{ + currChunk_->on_codecDecode_end(dictx, outStreams, nbOutStreams, result); +} + +ZL_Report DecompressTracer::serializeStreamdumpToCbor( + A1C_Arena* a1c_arena, + std::vector& buffer) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx_); + A1C_Item* root = A1C_Item_root(a1c_arena); + ZL_ERR_IF_NULL(root, allocation); + + // 5 top-level fields: libraryVersion, frameVersion, traceVersion, + // operationType, chunks + A1C_MapBuilder rootBuilder = A1C_Item_map_builder(root, 5, a1c_arena); + ZL_ERR_IF_NULL(rootBuilder.map, allocation); + + ZL_ERR_IF_ERR( + addIntValue(rootBuilder, "libraryVersion", libraryVersion, opCtx_)); + ZL_ERR_IF_ERR( + addIntValue(rootBuilder, "frameVersion", frameVersion_, opCtx_)); + ZL_ERR_IF_ERR( + addIntValue(rootBuilder, "traceVersion", traceVersion, opCtx_)); + ZL_ERR_IF_ERR(addIntValue(rootBuilder, "operationType", 1, opCtx_)); + + // Wrap chunks in a "chunks" array + A1C_MAP_TRY_ADD(chunksPair, rootBuilder); + A1C_Item_string_refCStr(&chunksPair->key, "chunks"); + A1C_ArrayBuilder chunksBuilder = + A1C_Item_array_builder(&chunksPair->val, chunks_.size(), a1c_arena); + ZL_ERR_IF_NULL(chunksBuilder.array, allocation); + + for (auto& chunk : chunks_) { + ZL_ERR_IF_ERR(chunk.serializeToCBOR(a1c_arena, &chunksBuilder, opCtx_)); + } + + // Encode to buffer + size_t encodedSize = A1C_Item_encodedSize(root); + buffer.resize(encodedSize); + A1C_Error error; + size_t bytesWritten = + A1C_Item_encode(root, buffer.data(), encodedSize, &error); + if (bytesWritten == 0) { + return ZL_WRAP_ERROR(A1C_Error_convert(NULL, error)); + } + ZL_ERR_IF_NE(bytesWritten, encodedSize, allocation); + + return ZL_returnSuccess(); +} + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/DecompressTracer.hpp b/cpp/src/openzl/cpp/experimental/trace/DecompressTracer.hpp new file mode 100644 index 000000000..482ccbf0e --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/DecompressTracer.hpp @@ -0,0 +1,68 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include +#include +#include + +#include "openzl/cpp/experimental/trace/DecompressChunkTrace.hpp" +#include "openzl/zl_version.h" + +namespace openzl::visualizer { + +class DecompressTracer { + public: + DecompressTracer() = default; + explicit DecompressTracer(bool showStreamPreview) + : showStreamPreview_(showStreamPreview) + { + } + + TraceResult extractTrace(); + + // Trampolined functions from DecompressionTraceHooks + void on_ZL_DCtx_decompressMultiTBuffer_start( + ZL_DCtx* dctx, + size_t nbOutputs, + const void* framePtr, + size_t frameSize); + void on_ZL_DCtx_decompressMultiTBuffer_end(ZL_DCtx* dctx, ZL_Report result); + + void on_decompressChunk_start(ZL_DCtx* dctx, size_t chunkIndex); + void on_decompressChunk_end(ZL_DCtx* dctx, ZL_Report result); + + void on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize); + + void on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams); + void on_codecDecode_end( + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result); + + private: + ZL_Report serializeStreamdumpToCbor( + A1C_Arena* a1c_arena, + std::vector& buffer); + + static constexpr uint32_t libraryVersion = ZL_LIBRARY_VERSION_NUMBER; + static constexpr uint32_t traceVersion = 1; + uint32_t frameVersion_{}; + + std::vector chunks_; + DecompressChunkTrace* currChunk_ = + nullptr; // convenience pointer to the current chunk trace + ZL_OperationContext* opCtx_ = nullptr; + bool showStreamPreview_ = true; // show stream preview data from trace + + TraceResult trace_; +}; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/DecompressionTraceHooks.cpp b/cpp/src/openzl/cpp/experimental/trace/DecompressionTraceHooks.cpp new file mode 100644 index 000000000..ee866cabe --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/DecompressionTraceHooks.cpp @@ -0,0 +1,99 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/cpp/experimental/trace/DecompressionTraceHooks.hpp" + +#include +#include +#include + +namespace openzl::visualizer { + +void DecompressionTraceHooks::on_ZL_DCtx_decompressMultiTBuffer_start( + ZL_DCtx* dctx, + size_t nbOutputs, + const void* framePtr, + size_t frameSize) +{ + // Reset cached data + latestStreamdumpCache_ = {}; + + if (tracer_) { + throw std::runtime_error( + "Corrupted state. Trace context already exists!"); + } + tracer_ = std::make_unique(showStreamPreview_); + tracer_->on_ZL_DCtx_decompressMultiTBuffer_start( + dctx, nbOutputs, framePtr, frameSize); +} + +void DecompressionTraceHooks::on_ZL_DCtx_decompressMultiTBuffer_end( + ZL_DCtx* dctx, + ZL_Report result) +{ + tracer_->on_ZL_DCtx_decompressMultiTBuffer_end(dctx, result); + + auto trace = tracer_->extractTrace(); + latestTraceCache_ = std::move(trace.trace); + latestStreamdumpCache_ = std::move(trace.streamdump); + tracer_ = nullptr; +} + +void DecompressionTraceHooks::on_decompressChunk_start( + ZL_DCtx* dctx, + size_t chunkIndex) +{ + tracer_->on_decompressChunk_start(dctx, chunkIndex); +} + +void DecompressionTraceHooks::on_decompressChunk_end( + ZL_DCtx* dctx, + ZL_Report result) +{ + tracer_->on_decompressChunk_end(dctx, result); +} + +void DecompressionTraceHooks::on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize) +{ + tracer_->on_ZL_Decoder_getCodecHeader(dictx, trh, trhSize); +} + +void DecompressionTraceHooks::on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) +{ + tracer_->on_codecDecode_start(dictx, inStreams, nbInStreams); +} + +void DecompressionTraceHooks::on_codecDecode_end( + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) +{ + tracer_->on_codecDecode_end(dictx, outStreams, nbOutStreams, result); +} + +std::pair< + poly::string_view, + std::map>> +DecompressionTraceHooks::getLatestTrace() +{ + std::map> + streamdumps; + for (size_t chunkId = 0; chunkId < latestStreamdumpCache_.size(); + chunkId++) { + for (const auto& entry : latestStreamdumpCache_[chunkId]) { + std::string key = "chunk_" + std::to_string(chunkId) + "_stream_" + + std::to_string(entry.streamId); + streamdumps[key] = { poly::string_view(entry.content), + poly::string_view(entry.strLens) }; + } + } + return { latestTraceCache_, std::move(streamdumps) }; +} + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/DecompressionTraceHooks.hpp b/cpp/src/openzl/cpp/experimental/trace/DecompressionTraceHooks.hpp new file mode 100644 index 000000000..b4ea83fe0 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/DecompressionTraceHooks.hpp @@ -0,0 +1,68 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include "openzl/cpp/DecompressIntrospectionHooks.hpp" +#include "openzl/cpp/experimental/trace/DecompressTracer.hpp" +#include "openzl/cpp/poly/StringView.hpp" +#include "openzl/zl_opaque_types.h" + +#include +#include +#include + +namespace openzl::visualizer { + +class DecompressionTraceHooks : public openzl::DecompressIntrospectionHooks { + public: + explicit DecompressionTraceHooks(bool showStreamPreview) + : showStreamPreview_(showStreamPreview) + { + } + ~DecompressionTraceHooks() override = default; + + std::pair< + poly::string_view, + std::map< + std::string, + std::pair>> + getLatestTrace(); + + // *************************************************** + // Overridden functions from DecompressIntrospectionHooks + // *************************************************** + void on_ZL_DCtx_decompressMultiTBuffer_start( + ZL_DCtx* dctx, + size_t nbOutputs, + const void* framePtr, + size_t frameSize) override; + void on_ZL_DCtx_decompressMultiTBuffer_end(ZL_DCtx* dctx, ZL_Report result) + override; + + void on_decompressChunk_start(ZL_DCtx* dctx, size_t chunkIndex) override; + void on_decompressChunk_end(ZL_DCtx* dctx, ZL_Report result) override; + + void on_ZL_Decoder_getCodecHeader( + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize) override; + + void on_codecDecode_start( + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) override; + void on_codecDecode_end( + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) override; + + private: + std::vector> latestStreamdumpCache_; + std::string latestTraceCache_; + + bool showStreamPreview_ = true; + std::unique_ptr tracer_; +}; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/Graph.cpp b/cpp/src/openzl/cpp/experimental/trace/Graph.cpp index c38af0e43..6c10d0379 100644 --- a/cpp/src/openzl/cpp/experimental/trace/Graph.cpp +++ b/cpp/src/openzl/cpp/experimental/trace/Graph.cpp @@ -12,38 +12,37 @@ namespace openzl::visualizer { const ZL_Report Graph::serializeGraph( A1C_Arena* a1c_arena, A1C_Item* arrayItem, - const ZL_CCtx* const cctx, - const std::vector& graphCodecs) + ZL_OperationContext* opCtx) { - A1C_MapBuilder builder = A1C_Item_map_builder(arrayItem, 5, a1c_arena); - ZL_RET_R_IF_NULL(allocation, builder.map); - - ZL_RET_R_IF_ERR(addIntValue(builder, "gType", gType)); - ZL_RET_R_IF_ERR(addStringValue(builder, "gName", gName)); - if (ZL_isError(gFailure)) { - ZL_RET_R_IF_ERR(addStringValue( - builder, - "gFailureString", - ZL_CCtx_getErrorContextString(cctx, gFailure))); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MapBuilder builder = A1C_Item_map_builder(arrayItem, 6, a1c_arena); + ZL_ERR_IF_NULL(builder.map, allocation); + + ZL_ERR_IF_ERR(addIntValue(builder, "chunkId", this->chunkId, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "gType", gType, opCtx)); + ZL_ERR_IF_ERR(addStringValue(builder, "gName", gName, opCtx)); + if (!gFailureString.empty()) { + ZL_ERR_IF_ERR(addStringValue( + builder, "gFailureString", gFailureString.c_str(), opCtx)); } // local params - A1C_MAP_TRY_ADD_R(a1c_gLocalParams, builder); + A1C_MAP_TRY_ADD(a1c_gLocalParams, builder); A1C_Item_string_refCStr(&a1c_gLocalParams->key, "gLocalParams"); ZL_Report serializeLocalParamsReport = serializeLocalParams( - a1c_arena, &a1c_gLocalParams->val, gLocalParams); - ZL_RET_R_IF_ERR(serializeLocalParamsReport); + a1c_arena, &a1c_gLocalParams->val, gLocalParams, opCtx); + ZL_ERR_IF_ERR(serializeLocalParamsReport); // codec in graph - A1C_MAP_TRY_ADD_R(a1c_codecIDs, builder); + A1C_MAP_TRY_ADD(a1c_codecIDs, builder); A1C_Item_string_refCStr(&a1c_codecIDs->key, "codecIDs"); A1C_ArrayBuilder codecIDsBuilder = A1C_Item_array_builder( - &a1c_codecIDs->val, graphCodecs.size(), a1c_arena); - ZL_RET_R_IF_NULL(allocation, codecIDsBuilder.array); - for (const auto& codecID : graphCodecs) { - A1C_ARRAY_TRY_ADD_R(a1c_codecID, codecIDsBuilder); - A1C_Item_int64(a1c_codecID, codecID); + &a1c_codecIDs->val, this->codecs.size(), a1c_arena); + ZL_ERR_IF_NULL(codecIDsBuilder.array, allocation); + for (const auto& codecId : this->codecs) { + A1C_ARRAY_TRY_ADD(a1c_codecID, codecIDsBuilder); + A1C_Item_int64(a1c_codecID, codecId); } return ZL_returnSuccess(); diff --git a/cpp/src/openzl/cpp/experimental/trace/Graph.hpp b/cpp/src/openzl/cpp/experimental/trace/Graph.hpp index a9f0a9a52..43ceec06a 100644 --- a/cpp/src/openzl/cpp/experimental/trace/Graph.hpp +++ b/cpp/src/openzl/cpp/experimental/trace/Graph.hpp @@ -3,28 +3,34 @@ #pragma once #include "openzl/cpp/LocalParams.hpp" +#include "openzl/cpp/experimental/trace/types.hpp" #include "openzl/shared/a1cbor.h" #include "openzl/zl_errors.h" #include "openzl/zl_reflection.h" +#include +#include + namespace openzl::visualizer { struct Graph { ZL_GraphType gType{}; const char* gName{}; ZL_Report gFailure = ZL_returnSuccess(); + std::string gFailureString; LocalParams gLocalParams{}; + size_t chunkId{}; // temporary hack to report failed graphs that have no codecs // ultimately, the idea is that edges will go to graphs and not codecs so // there's no need to store this info std::vector inEdges; + std::vector codecs; const ZL_Report serializeGraph( A1C_Arena* a1c_arena, A1C_Item* arrayItem, - const ZL_CCtx* const cctx, - const std::vector& graphCodecs); + ZL_OperationContext* opCtx); }; } // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.cpp b/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.cpp index 7748f7afe..7e8fc04dc 100644 --- a/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.cpp +++ b/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.cpp @@ -9,18 +9,44 @@ namespace openzl::visualizer { const ZL_Report Stream::serializeStream( A1C_Arena* a1c_arena, - A1C_Item* arrayItem) + A1C_Item* arrayItem, + ZL_OperationContext* opCtx) { - A1C_MapBuilder builder = A1C_Item_map_builder(arrayItem, 7, a1c_arena); - ZL_RET_R_IF_NULL(allocation, builder.map); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + A1C_MapBuilder builder = A1C_Item_map_builder(arrayItem, 9, a1c_arena); + ZL_ERR_IF_NULL(builder.map, allocation); - ZL_RET_R_IF_ERR(addIntValue(builder, "type", type)); - ZL_RET_R_IF_ERR(addIntValue(builder, "outputIdx", outputIdx)); - ZL_RET_R_IF_ERR(addIntValue(builder, "eltWidth", eltWidth)); - ZL_RET_R_IF_ERR(addIntValue(builder, "numElts", numElts)); - ZL_RET_R_IF_ERR(addIntValue(builder, "cSize", cSize)); - ZL_RET_R_IF_ERR(addFloatValue(builder, "share", share)); - ZL_RET_R_IF_ERR(addIntValue(builder, "contentSize", contentSize)); + ZL_ERR_IF_ERR(addIntValue(builder, "chunkId", this->chunkId, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "type", type, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "outputIdx", outputIdx, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "eltWidth", eltWidth, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "numElts", numElts, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "cSize", cSize, opCtx)); + ZL_ERR_IF_ERR(addFloatValue(builder, "share", share, opCtx)); + ZL_ERR_IF_ERR(addIntValue(builder, "contentSize", contentSize, opCtx)); + + if (type == ZL_Type_string) { + ZL_ERR_IF_ERR(addStrArray( + a1c_arena, + builder, + "streamPreview", + std::get>(streamPreview), + opCtx)); + } else if (type == ZL_Type_numeric) { + ZL_ERR_IF_ERR(addNumArray( + a1c_arena, + builder, + "streamPreview", + std::get>(streamPreview), + opCtx)); + } else { + ZL_ERR_IF_ERR(addBytesArray( + a1c_arena, + builder, + "streamPreview", + std::get>(streamPreview), + opCtx)); + } return ZL_returnSuccess(); } diff --git a/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.hpp b/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.hpp index ef5106a50..732f57d2f 100644 --- a/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.hpp +++ b/cpp/src/openzl/cpp/experimental/trace/StreamVisualizer.hpp @@ -2,15 +2,19 @@ #pragma once +#include "openzl/cpp/experimental/trace/types.hpp" #include "openzl/shared/a1cbor.h" #include "openzl/zl_data.h" #include "openzl/zl_opaque_types.h" #include +#include +#include namespace openzl::visualizer { struct Stream { + StreamID id{}; ZL_Type type{}; size_t outputIdx{}; size_t eltWidth{}; @@ -18,8 +22,16 @@ struct Stream { size_t cSize{}; double share{}; size_t contentSize{}; - - const ZL_Report serializeStream(A1C_Arena* a1c_arena, A1C_Item* arrayItem); + size_t chunkId{}; + std::vector successors; + std::optional consumerCodec; + std::optional producerCodec; + StreamPreview streamPreview; + + const ZL_Report serializeStream( + A1C_Arena* a1c_arena, + A1C_Item* arrayItem, + ZL_OperationContext* opCtx); }; // custom operators for maps using ZL_DataID as a key to identify streams diff --git a/cpp/src/openzl/cpp/experimental/trace/types.hpp b/cpp/src/openzl/cpp/experimental/trace/types.hpp new file mode 100644 index 000000000..231a63c63 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/types.hpp @@ -0,0 +1,31 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include "openzl/zl_opaque_types.h" + +#include +#include +#include +#include +#include + +namespace openzl::visualizer { + +/** + * NOTE: These are *unrelated* to the codec/graph IDs generated at compressor + * registration time. They are closer to the CNode IDs used internally, but are + * also unrelated. These IDs are solely to number these objects within the + * trace. + */ + +using StreamID = ZL_DataID; +using CodecID = size_t; +using GraphID = size_t; + +using StreamPreview = std::variant< + std::vector, // default + std::vector, + std::vector>; + +} // namespace openzl::visualizer diff --git a/cpp/src/openzl/cpp/experimental/trace/wire_format.md b/cpp/src/openzl/cpp/experimental/trace/wire_format.md new file mode 100644 index 000000000..861577165 --- /dev/null +++ b/cpp/src/openzl/cpp/experimental/trace/wire_format.md @@ -0,0 +1,70 @@ +# Trace CBOR Wire Format +!!! WARNING + The format is evolving and the following description is liable to be out of date if not maintained. + This is provided as a convenience, not a prescription. + +## Version 1 (dev) +The wire format of the CBOR file is as follows: +``` +Trace = { + libraryVersion: Int32LE; # ZL_LIBRARY_VERSION_NUMBER from zl_version.h + frameVersion: Int32LE; # The frame version used for the trace + traceVersion: Int32LE; # A specific version number for the trace CBOR + streams: StreamVisualizer[]; + codecs: Codec[]; + graphs: Graph[]; +} + +StreamVisualizer = { + type: Int64LE; # ZL_Type + outputIdx: Int64LE; + eltWidth: Int64LE; + numElts: Int64LE; + cSize: Int64LE; + share: Float64LE; + contentSize: Int64LE; +} + +Codec = { + name: String; + cType: Boolean; # Standard vs Custom + cID: Int64LE; + cHeaderSize: Int64LE; + cFailureString: String | null; + cLocalParams: LocalParamInfo; + inputStreams: Int64LE[]; + outputStreams: Int64LE[]; +} + +Graph = { + gType: Int64LE; # ZL_GraphType + gName: String; + gFailureString: String | null; + gLocalParams: LocalParamInfo; + codecIDs: Int64LE[]; +} + +LocalParamInfo = { + intParams: IntParamInfo[]; + copyParams: CopyParamInfo[]; + refParams: RefParamInfo[]; +} + +IntParamInfo = { + paramId: Int64LE; + paramValue: Int64LE; +} + +CopyParamInfo = { + paramId: Int64LE; + paramSize: Int64LE; + paramData: Bytes | null; +} + +RefParamInfo = { + paramId: Int64LE; +} +``` + +## Unversioned (v0.1.0) +The same as version 1, but without the `libraryVersion`, `frameVersion`, or `traceVersion` fields. diff --git a/cpp/tests/BUCK b/cpp/tests/BUCK index b4a5b0d46..7b08861e7 100644 --- a/cpp/tests/BUCK +++ b/cpp/tests/BUCK @@ -2,6 +2,7 @@ # @noautodeps load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") +load("../../defs.bzl", "cross_platform_labels", "relative_headers") oncall("data_compression") @@ -10,10 +11,13 @@ cpp_unittest( srcs = glob([ "**/*.cpp", ]), - headers = glob([ + headers = relative_headers(glob([ "**/*.hpp", - ]), + ])), + header_namespace = "", + labels = cross_platform_labels(), deps = [ - "//data_compression/experimental/zstrong/cpp:openzl_cpp", + "..:openzl_cpp", + "../../tests/datagen:datagen", ], ) diff --git a/cpp/tests/CMakeLists.txt b/cpp/tests/CMakeLists.txt index be7a192fe..3f7919ebe 100644 --- a/cpp/tests/CMakeLists.txt +++ b/cpp/tests/CMakeLists.txt @@ -10,6 +10,7 @@ if (OPENZL_BUILD_TESTS) test_openzl_cpp PRIVATE openzl_cpp + datagen GTest::gtest_main ) apply_openzl_compile_options_to_target(test_openzl_cpp) diff --git a/cpp/tests/TestCCtx.cpp b/cpp/tests/TestCCtx.cpp index ca8b3ffbb..5d06b4741 100644 --- a/cpp/tests/TestCCtx.cpp +++ b/cpp/tests/TestCCtx.cpp @@ -71,8 +71,9 @@ TEST_F(TestCCtx, compress) data[50] = 50; inputs.push_back(Input::refStruct(poly::span(data))); inputs.push_back(Input::refNumeric(poly::span(data))); - inputs.push_back(Input::refSerial( - "hello world this is some test input hello hello hello world hello test input")); + inputs.push_back( + Input::refSerial( + "hello world this is some test input hello hello hello world hello test input")); std::array lengths = { 1, 3, 2, 1, 2 }; inputs.push_back(Input::refString("133322122", lengths)); auto compressed = cctx.compress(inputs); @@ -163,7 +164,7 @@ TEST_F(TestCCtx, writeMultipleTraces) auto numeric = Input::refNumeric(poly::span(data)); std::vector>>> + std::map>>> traces; // convenience function to copy the trace internals, since we get returned // string_views @@ -171,12 +172,14 @@ TEST_F(TestCCtx, writeMultipleTraces) [](const std::pair< poly::string_view, std::map< - size_t, + std::string, std::pair>>& trace) { std::pair< std::string, - std::map>> + std::map< + std::string, + std::pair>> copy; copy.first = trace.first; for (const auto& [k, v] : trace.second) { diff --git a/cpp/tests/TestCodecs.cpp b/cpp/tests/TestCodecs.cpp index 3b7c2601b..07206b93b 100644 --- a/cpp/tests/TestCodecs.cpp +++ b/cpp/tests/TestCodecs.cpp @@ -1,5 +1,7 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +#include + #include #include "cpp/tests/TestUtils.hpp" @@ -29,4 +31,51 @@ TEST_F(TestCodecs, bitpack) compressor_, Input::refNumeric(poly::span{ data })); EXPECT_LE(compressed.size(), bound); } + +TEST_F(TestCodecs, lz4) +{ + std::string data(10000, 'a'); + auto graph = graphs::Lz4().parameterize(compressor_); + compressor_.selectStartingGraph(graph); + auto compressed = testRoundTrip(compressor_, Input::refSerial(data)); +} + +TEST_F(TestCodecs, lz4_hc) +{ + std::string data(10000, 'a'); + auto graph = graphs::Lz4(9).parameterize(compressor_); + compressor_.selectStartingGraph(graph); + auto compressed = testRoundTrip(compressor_, Input::refSerial(data)); +} + +TEST_F(TestCodecs, segmentSerial_defaultChunkSize) +{ + /* chunkByteSize = 0 sentinel: use the segmenter's built-in default. */ + std::string data(4096, 'a'); + auto graph = graphs::SegmentSerial(ZL_GRAPH_COMPRESS_GENERIC) + .parameterize(compressor_); + compressor_.selectStartingGraph(graph); + auto compressed = testRoundTrip(compressor_, Input::refSerial(data)); +} + +TEST_F(TestCodecs, segmentSerial_explicitChunkSize) +{ + /* Explicit chunk size at the minimum threshold must round-trip. */ + std::string data(ZL_MIN_CHUNK_SIZE * 2, 'a'); + auto graph = + graphs::SegmentSerial(ZL_GRAPH_COMPRESS_GENERIC, ZL_MIN_CHUNK_SIZE) + .parameterize(compressor_); + compressor_.selectStartingGraph(graph); + auto compressed = testRoundTrip(compressor_, Input::refSerial(data)); +} + +TEST_F(TestCodecs, segmentSerial_chunkSizeOverflowThrows) +{ + /* The C builder rejects chunk sizes that would not fit in int; the C++ + * wrapper surfaces that rejection as a typed Exception at parameterize + * time (construction itself does not validate). */ + graphs::SegmentSerial wrapper( + ZL_GRAPH_COMPRESS_GENERIC, static_cast(INT_MAX) + 1); + EXPECT_THROW(wrapper.parameterize(compressor_), Exception); +} } // namespace openzl diff --git a/cpp/tests/TestCompressor.cpp b/cpp/tests/TestCompressor.cpp index acbc65ca6..7e626911b 100644 --- a/cpp/tests/TestCompressor.cpp +++ b/cpp/tests/TestCompressor.cpp @@ -106,6 +106,7 @@ TEST_F(TestCompressor, buildStaticGraph) auto graph = compressor_.buildStaticGraph( ZL_NODE_DELTA_INT, { ZL_GRAPH_CONSTANT }); compressor_.selectStartingGraph(graph); + ASSERT_EQ(compressor_.getStartingGraph(), graph); auto compressed = testRoundTrip( compressor_, Input::refNumeric(poly::span(data))); diff --git a/cpp/tests/TestDCtx.cpp b/cpp/tests/TestDCtx.cpp index daa50915e..8c5f2db4f 100644 --- a/cpp/tests/TestDCtx.cpp +++ b/cpp/tests/TestDCtx.cpp @@ -69,8 +69,10 @@ class TestDCtx : public testing::Test { Input::refNumeric(poly::span(numericInput_))); inputs_.push_back( Input::refStruct(poly::span(numericInput_))); - inputs_.push_back(Input::refString( - poly::string_view(serialInput_).substr(0, 2222), lengths_)); + inputs_.push_back( + Input::refString( + poly::string_view(serialInput_).substr(0, 2222), + lengths_)); } std::string serialInput_; @@ -153,9 +155,10 @@ TEST_F(TestDCtx, decoderFailureHasCodecName) .nbSOs = 1, }, .transform_f = [](ZL_Encoder* encoder, const ZL_Input** inputs, size_t numInputs) noexcept -> ZL_Report { + ZL_RESULT_DECLARE_SCOPE_REPORT(encoder); auto input = inputs[0]; auto output = ZL_Encoder_createTypedStream(encoder, 0, ZL_Input_numElts(input), ZL_Input_eltWidth(input)); - ZL_RET_R_IF_NULL(allocation, output); + ZL_ERR_IF_NULL(output, allocation); memcpy(ZL_Output_ptr(output), ZL_Input_ptr(input), ZL_Input_contentSize(input)); return ZL_Output_commit(output, ZL_Input_numElts(input)); }, @@ -183,8 +186,9 @@ TEST_F(TestDCtx, decoderFailureHasCodecName) .soTypes = &type, .nbSOs = 1, }, - .transform_f = [](ZL_Decoder* , const ZL_Input**, size_t, const ZL_Input**, size_t) noexcept -> ZL_Report { - ZL_RET_R_ERR(GENERIC, "my codec failed for some reason"); + .transform_f = [](ZL_Decoder*, const ZL_Input**, size_t, const ZL_Input**, size_t) noexcept -> ZL_Report { + ZL_RESULT_DECLARE_SCOPE_REPORT(nullptr); + return ZL_REPORT_ERROR(GENERIC, "my codec failed for some reason"); }, .name = name.get(), }; diff --git a/cpp/tests/TestException.cpp b/cpp/tests/TestException.cpp index b36b4ec17..5637b446f 100644 --- a/cpp/tests/TestException.cpp +++ b/cpp/tests/TestException.cpp @@ -18,6 +18,26 @@ ZL_RESULT_DECLARE_TYPE(Foo); class TestException : public testing::Test { public: }; + +class ExceptionFunctionGraph : public FunctionGraph { + public: + FunctionGraphDescription functionGraphDescription() const override + { + return { + .name = "unwrap_function_graph", + .inputTypeMasks = { TypeMask::Serial }, + }; + } + + void graph(GraphState& state) const override + { + ZL_RESULT_DECLARE_SCOPE_REPORT(state.get()); + + const char* bar = "bar"; + auto result = ZL_REPORT_ERROR(GENERIC, "foo%s", bar); + state.unwrap(result); + } +}; } // namespace TEST_F(TestException, unwrapSuccess) @@ -45,6 +65,7 @@ TEST_F(TestException, unwrapFoo) TEST_F(TestException, unwrapErrorNullCtx) { try { + ZL_RESULT_DECLARE_SCOPE(Foo, nullptr); unwrap(ZL_RESULT_MAKE_ERROR(Foo, corruption, "Beep boop!"), "Should throw!", nullptr); @@ -92,6 +113,25 @@ TEST_F(TestException, unwrapErrorCCtx) } } +TEST_F(TestException, unwrapForGraphState) +{ + Compressor compressor; + compressor.selectStartingGraph(compressor.registerFunctionGraph( + std::make_shared())); + compressor.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + try { + CCtx cctx; + cctx.refCompressor(compressor); + cctx.compressSerial("hello world hello hello hello hello"); + EXPECT_TRUE(false) << "should be unreachable"; + } catch (const Exception& ex) { + const std::string what{ ex.what() }; + EXPECT_NE(what.find("foobar"), std::string::npos) << what; + } catch (...) { + EXPECT_TRUE(false) << "shouldn't throw anything else!"; + } +} + TEST_F(TestException, unwrapWithAllCtxTypes) { CCtx const* const cctx = nullptr; @@ -102,6 +142,7 @@ TEST_F(TestException, unwrapWithAllCtxTypes) ZL_Compressor const* const zl_compressor = nullptr; ZL_CompressorSerializer const* const zl_serializer = nullptr; ZL_CompressorDeserializer const* const zl_deserializer = nullptr; + ZL_Graph const* const zl_graph = nullptr; const auto result = ZL_RESULT_WRAP_VALUE(Foo, kFoo); @@ -113,5 +154,6 @@ TEST_F(TestException, unwrapWithAllCtxTypes) unwrap(result, "", zl_compressor); unwrap(result, "", zl_serializer); unwrap(result, "", zl_deserializer); + unwrap(result, "", zl_graph); } } // namespace openzl::tests diff --git a/cpp/tests/TestFrameInfo.cpp b/cpp/tests/TestFrameInfo.cpp index d30d2ade4..6b4baf3f2 100644 --- a/cpp/tests/TestFrameInfo.cpp +++ b/cpp/tests/TestFrameInfo.cpp @@ -22,18 +22,21 @@ TEST(TestFrameInfo, basic) data[50] = 50; inputs.push_back(Input::refStruct(poly::span(data))); inputs.push_back(Input::refNumeric(poly::span(data))); - inputs.push_back(Input::refSerial( - "hello world this is some test input hello hello hello world hello test input")); + inputs.push_back( + Input::refSerial( + "hello world this is some test input hello hello hello world hello test input")); std::array lengths = { 1, 3, 2, 1, 2 }; inputs.push_back(Input::refString("133322122", lengths)); auto compressed = cctx.compress(inputs); FrameInfo info(compressed); + ASSERT_EQ(info.formatVersion(), ZL_MAX_FORMAT_VERSION); ASSERT_EQ(info.numOutputs(), inputs.size()); for (size_t i = 0; i < inputs.size(); ++i) { ASSERT_EQ(info.outputType(i), inputs[i].type()); ASSERT_EQ(info.outputContentSize(i), inputs[i].contentSize()); } + ASSERT_EQ(info.comment(), ""); } TEST(TestFrameInfo, HelpfulExceptionOnCorruption) @@ -45,4 +48,23 @@ TEST(TestFrameInfo, HelpfulExceptionOnCorruption) ASSERT_NE(e.msg().find("Corrupt"), poly::string_view::npos); } } + +TEST(TestFrameInfo, comment) +{ + Compressor compressor; + compressor.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + compressor.unwrap(ZL_Compressor_selectStartingGraphID( + compressor.get(), ZL_GRAPH_COMPRESS_GENERIC)); + std::vector inputs; + CCtx cctx; + cctx.refCompressor(compressor); + const std::string_view comment{ "fo\0o", 4 }; + cctx.unwrap(ZL_CCtx_addHeaderComment( + cctx.get(), comment.data(), comment.size())); + auto compressed = cctx.compressSerial( + "hello world this is some test input hello hello hello world hello test input"); + + FrameInfo info(compressed); + ASSERT_EQ(info.comment(), comment); +} } // namespace openzl::tests diff --git a/cpp/tests/TestFunctionGraph.cpp b/cpp/tests/TestFunctionGraph.cpp index 2dfec23e0..a3bf276ea 100644 --- a/cpp/tests/TestFunctionGraph.cpp +++ b/cpp/tests/TestFunctionGraph.cpp @@ -130,17 +130,19 @@ TEST_F(TestFunctionGraph, BruteForceFunctionGraph) std::iota(rhs.begin(), rhs.end(), 0); cctx_.refCompressor(compressor_); - auto compressed = testRoundTrip(std::initializer_list{ - Input::refNumeric(poly::span(lhs)), - Input::refNumeric(poly::span(rhs)) }); + auto compressed = testRoundTrip( + std::initializer_list{ + Input::refNumeric(poly::span(lhs)), + Input::refNumeric(poly::span(rhs)) }); std::iota(lhs.begin(), lhs.end(), 0); std::iota(rhs.begin(), rhs.end(), 1); cctx_.refCompressor(compressor_); - auto compressed2 = testRoundTrip(std::initializer_list{ - Input::refNumeric(poly::span(lhs)), - Input::refNumeric(poly::span(rhs)) }); + auto compressed2 = testRoundTrip( + std::initializer_list{ + Input::refNumeric(poly::span(lhs)), + Input::refNumeric(poly::span(rhs)) }); // first can dedup, second cannot ASSERT_GT(compressed2.size(), 1.75 * compressed.size()); diff --git a/cpp/tests/TestLocalParams.cpp b/cpp/tests/TestLocalParams.cpp index cca5fb6ea..35558b267 100644 --- a/cpp/tests/TestLocalParams.cpp +++ b/cpp/tests/TestLocalParams.cpp @@ -84,6 +84,26 @@ TEST(TestLocalParams, addRefParam) ASSERT_THROW(params.addCopyParam({ 0, &x, sizeof(x) }), Exception); } +TEST(TestLocalParams, addRefParamWithSize) +{ + LocalParams params; + int x = 42; + int64_t y = 350; + params.addRefParam(0, &x, sizeof(x)); + params.addRefParam(1, &y, sizeof(y)); + + auto p = params.getRefParams(); + ASSERT_EQ(p.size(), 2); + + ASSERT_EQ(p[0].paramId, 0); + ASSERT_EQ(p[0].paramRef, &x); + ASSERT_EQ(p[0].paramSize, sizeof(x)); + + ASSERT_EQ(p[1].paramId, 1); + ASSERT_EQ(p[1].paramRef, &y); + ASSERT_EQ(p[1].paramSize, sizeof(y)); +} + TEST(TestLocalParams, move) { auto params = std::make_unique(); diff --git a/cpp/tests/experimental/trace/CompressIntrospectionHooksTest.cpp b/cpp/tests/experimental/trace/CompressIntrospectionHooksTest.cpp index 2602ad1fe..8f96c5792 100644 --- a/cpp/tests/experimental/trace/CompressIntrospectionHooksTest.cpp +++ b/cpp/tests/experimental/trace/CompressIntrospectionHooksTest.cpp @@ -36,7 +36,7 @@ TEST(CompressIntrospectionHooksTest, writeTestFile) cctx.writeTraces(true); auto str = cctx.compressOne(input); const auto trace = cctx.getLatestTrace(); - if (0) { + if ((0)) { std::ofstream out("/tmp/streamdump.cbor", std::ios::binary); ASSERT_TRUE(out); out << trace.first; diff --git a/cpp/tests/experimental/trace/CompressTraceErrorTest.cpp b/cpp/tests/experimental/trace/CompressTraceErrorTest.cpp new file mode 100644 index 000000000..576a220dd --- /dev/null +++ b/cpp/tests/experimental/trace/CompressTraceErrorTest.cpp @@ -0,0 +1,733 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "openzl/zl_config.h" + +#if ZL_ALLOW_INTROSPECTION + +# include + +# include +# include +# include + +# include "cpp/tests/experimental/trace/TraceTestHelpers.hpp" +# include "openzl/cpp/CCtx.hpp" +# include "openzl/cpp/Compressor.hpp" +# include "openzl/cpp/CustomEncoder.hpp" +# include "openzl/cpp/Exception.hpp" +# include "openzl/cpp/FunctionGraph.hpp" +# include "openzl/cpp/codecs/Conversion.hpp" +# include "openzl/zl_errors.h" +# include "openzl/zl_segmenter.h" + +using namespace ::testing; + +namespace openzl { +namespace { + +// --------------------------------------------------------------------------- +// Reusable custom encoders / graphs +// --------------------------------------------------------------------------- + +// A custom encoder that copies input to output unchanged (always succeeds). +class NoOpEncoder : public CustomEncoder { + SimpleCodecDescription simpleCodecDescription() const override + { + return SimpleCodecDescription{ + .id = 9998, + .name = "NoOpEncoder", + .inputType = Type::Numeric, + .outputTypes = { Type::Numeric }, + }; + } + + void encode(EncoderState& encoder) const override + { + auto& input = encoder.inputs()[0]; + auto output = + encoder.createOutput(0, input.numElts(), input.eltWidth()); + memcpy(output.ptr(), input.ptr(), input.contentSize()); + output.commit(input.numElts()); + } +}; + +// A custom encoder that always fails with a known error message. +// Accepts serial input so it can be chained after SeparateStringComponents. +class FailingEncoder : public CustomEncoder { + SimpleCodecDescription simpleCodecDescription() const override + { + return SimpleCodecDescription{ + .id = 9999, + .name = "FailingEncoder", + .inputType = Type::Serial, + .outputTypes = { Type::Serial }, + }; + } + + void encode(EncoderState& /* encoder */) const override + { + throw std::runtime_error("deliberate codec failure"); + } +}; + +// FunctionGraph that splits string input via SeparateStringComponents, then +// sends the content (serial) stream to a failing codec. The lengths (numeric) +// stream is left unconsumed and should become "zl.#in_progress" on failure. +class SplitThenFailGraph : public FunctionGraph { + public: + explicit SplitThenFailGraph(NodeID failingNode) : failingNode_(failingNode) + { + } + + FunctionGraphDescription functionGraphDescription() const override + { + return { + .name = "SplitThenFail", + .inputTypeMasks = { TypeMask::String }, + .customNodes = { nodes::SeparateStringComponents::node, + failingNode_ }, + }; + } + + void graph(GraphState& state) const override + { + auto& edge = state.edges()[0]; + // SeparateStringComponents: string -> [serial content, numeric lengths] + auto outputs = edge.runNode(nodes::SeparateStringComponents::node); + // Send content (output 0) to the failing encoder + outputs[0].runNode(failingNode_); + // Leave lengths (output 1) unconsumed + } + + private: + NodeID failingNode_; +}; + +// --------------------------------------------------------------------------- +// Test fixture +// --------------------------------------------------------------------------- + +class CompressTraceErrorTest : public Test { + protected: + Compressor compressor_; + CCtx cctx_; + std::string rawTrace_; + + void SetUp() override + { + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + } + + void TearDown() override + { + if (rawTrace_.empty()) { + return; + } + // Write the raw CBOR trace to /tmp for manual visualizer testing. + // Enable by changing `if (0)` to `if (1)`. + if ((0)) { + std::filesystem::create_directories("/tmp/openzl_trace"); + auto* info = UnitTest::GetInstance()->current_test_info(); + std::string path = std::string("/tmp/openzl_trace/") + + info->test_suite_name() + "_" + info->name() + ".cbor"; + std::ofstream out(path, std::ios::binary); + if (out) { + out.write(rawTrace_.data(), rawTrace_.size()); + } + out.close(); + } + } + + // Compress with tracing, store the raw trace, and return the parsed result. + // Expects compression to succeed. + test::ParsedTrace compressAndParse(Input& input) + { + cctx_.refCompressor(compressor_); + cctx_.writeTraces(true); + + cctx_.compressOne(input); + return extractTrace(); + } + + // Compress with tracing, expecting compression to throw. + // Stores the raw trace and returns the parsed result. + test::ParsedTrace compressExpectFailAndParse(Input& input) + { + cctx_.refCompressor(compressor_); + cctx_.writeTraces(true); + + EXPECT_THROW(cctx_.compressOne(input), Exception); + return extractTrace(); + } + + // Look up a codec by (substring) name in a chunk. Returns nullptr if not + // found. + static const test::ParsedCodec* findCodec( + const test::ParsedChunk& chunk, + const std::string& name) + { + for (const auto& codec : chunk.codecs) { + if (codec.name.find(name) != std::string::npos) { + return &codec; + } + } + return nullptr; + } + + // Look up a graph by (substring) name in a chunk. + static const test::ParsedGraph* findGraph( + const test::ParsedChunk& chunk, + const std::string& name) + { + for (const auto& g : chunk.graphs) { + if (g.gName.find(name) != std::string::npos) { + return &g; + } + } + return nullptr; + } + + private: + test::ParsedTrace extractTrace() + { + auto traceResult = cctx_.getLatestTrace(); + rawTrace_ = + std::string(traceResult.first.data(), traceResult.first.size()); + EXPECT_FALSE(rawTrace_.empty()) << "Trace should be non-empty"; + + auto parsed = test::parseTrace(traceResult.first); + EXPECT_TRUE(parsed.has_value()) << "Failed to parse trace CBOR"; + EXPECT_FALSE(parsed->chunks.empty()) << "Trace should have chunks"; + return parsed.value(); + } +}; + +// Helper to build string input from a list of strings. +Input makeStringInput( + const std::vector& strings, + std::string& contentBuf, + std::vector& lengthsBuf) +{ + contentBuf.clear(); + lengthsBuf.clear(); + for (const auto& s : strings) { + contentBuf += s; + lengthsBuf.push_back(static_cast(s.size())); + } + return Input::refString( + contentBuf.data(), + contentBuf.size(), + lengthsBuf.data(), + lengthsBuf.size()); +} + +} // namespace + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +// Smoke test: verify TraceTestHelpers can parse a successful compression trace. +TEST_F(CompressTraceErrorTest, ParseHelperSmokeTest) +{ + compressor_.selectStartingGraph(ZL_GRAPH_COMPRESS_GENERIC); + + std::vector data(1000, 42); + auto input = Input::refNumeric(data.data(), sizeof(int64_t), data.size()); + + auto parsed = compressAndParse(input); + + EXPECT_EQ(parsed.operationType, 0) << "Should be compression"; + + bool foundCodecs = false; + for (const auto& chunk : parsed.chunks) { + if (!chunk.codecs.empty()) { + foundCodecs = true; + } + } + EXPECT_TRUE(foundCodecs) << "Should have codecs in at least one chunk"; +} + +// Step 1: Verify that a codec encode failure is captured in the trace. +// Uses SeparateStringComponents to produce two outputs: the content stream +// goes to the FailingEncoder (which fails), and the lengths stream goes to +// STORE but remains unconsumed due to the failure (becomes zl.#in_progress). +TEST_F(CompressTraceErrorTest, CodecEncodeFailure) +{ + auto failingNode = CustomEncoder::registerCustomEncoder( + compressor_, std::make_shared()); + auto failGraph = + compressor_.buildStaticGraph(failingNode, { ZL_GRAPH_STORE }); + // SeparateStringComponents: string -> [serial content, numeric lengths] + // content (output 0) -> failGraph, lengths (output 1) -> STORE + auto graph = nodes::SeparateStringComponents{}( + compressor_, failGraph, ZL_GRAPH_STORE); + compressor_.selectStartingGraph(graph); + + std::string content; + std::vector lengths; + auto input = + makeStringInput({ "hello", "world", "test" }, content, lengths); + + auto parsed = compressExpectFailAndParse(input); + EXPECT_EQ(parsed.operationType, 0) << "Should be compression"; + + const auto& chunk = parsed.chunks[0]; + + // Find the failing codec by name (name may have a suffix like "#0") + auto* failingCodec = findCodec(chunk, "FailingEncoder"); + ASSERT_NE(failingCodec, nullptr) << "Should find FailingEncoder in trace"; + + // The codec should have a failure string + EXPECT_FALSE(failingCodec->cFailureString.empty()) + << "Failed codec should have a non-empty cFailureString"; + EXPECT_NE( + failingCodec->cFailureString.find("deliberate codec failure"), + std::string::npos) + << "cFailureString should contain the error message, got: " + << failingCodec->cFailureString; + + // Failed codec should have inputs but no outputs + EXPECT_FALSE(failingCodec->inputStreams.empty()) + << "Failed codec should still have input streams"; + EXPECT_TRUE(failingCodec->outputStreams.empty()) + << "Failed codec should have no output streams"; + + // The unconsumed lengths stream should get a "zl.#in_progress" terminal + bool hasInProgress = false; + for (const auto& codec : chunk.codecs) { + if (codec.name == "zl.#in_progress") { + hasInProgress = true; + } + EXPECT_NE(codec.name, "zl.store") + << "Failed compression should not have zl.store terminals"; + } + EXPECT_TRUE(hasInProgress) + << "Failed compression should have zl.#in_progress terminals"; +} + +// Step 2a: Verify that a graph failure (with no codec errors) is captured in +// the trace. When a FunctionGraph::graph() throws before running any codecs, +// the graph gets gFailure set and a synthetic "zl.#in_progress" placeholder +// codec is injected. +TEST_F(CompressTraceErrorTest, GraphFailureNoCodecErrors) +{ + // A FunctionGraph that immediately throws without running any codecs. + class AlwaysFailGraph : public FunctionGraph { + FunctionGraphDescription functionGraphDescription() const override + { + return { + .name = "AlwaysFailGraph", + .inputTypeMasks = { TypeMask::Numeric }, + }; + } + + void graph(GraphState& /* state */) const override + { + throw std::runtime_error("deliberate graph failure"); + } + }; + + auto graph = FunctionGraph::registerFunctionGraph( + compressor_, std::make_shared()); + compressor_.selectStartingGraph(graph); + + std::vector data(100, 42); + auto input = Input::refNumeric(data.data(), sizeof(int64_t), data.size()); + + auto parsed = compressExpectFailAndParse(input); + const auto& chunk = parsed.chunks[0]; + + // The trace should contain a graph with gFailureString + auto* failedGraph = findGraph(chunk, "AlwaysFailGraph"); + ASSERT_NE(failedGraph, nullptr) + << "Should find AlwaysFailGraph in trace graphs"; + + EXPECT_FALSE(failedGraph->gFailureString.empty()) + << "Failed graph should have a non-empty gFailureString"; + EXPECT_NE( + failedGraph->gFailureString.find("deliberate graph failure"), + std::string::npos) + << "gFailureString should contain the error message, got: " + << failedGraph->gFailureString; + + // Since the graph failed before running any codecs, a synthetic + // "zl.#in_progress" placeholder codec should be injected into the graph. + ASSERT_FALSE(failedGraph->codecIDs.empty()) + << "Failed graph should have a placeholder codec in codecIDs"; + + // Find the placeholder codec and verify it + bool foundPlaceholder = false; + for (int64_t codecID : failedGraph->codecIDs) { + for (const auto& codec : chunk.codecs) { + if (static_cast(codec.cID) == codecID + && codec.name == "zl.#in_progress") { + foundPlaceholder = true; + // The placeholder should consume the graph's input streams + EXPECT_FALSE(codec.inputStreams.empty()) + << "Placeholder codec should have input streams from " + "the graph's edges"; + } + } + } + EXPECT_TRUE(foundPlaceholder) + << "Should find a zl.#in_progress placeholder codec in the " + "failed graph's codecIDs"; +} + +// Step 2b: Verify that a graph failure is captured even when some codecs ran +// successfully. The graph throws *after* a codec completes (not inside a +// codec), so codecs.size() > 0 but codecsHaveErrors == false. The trace +// should set gFailureString on the graph without injecting a placeholder +// codec. +TEST_F(CompressTraceErrorTest, GraphFailureAfterSuccessfulCodec) +{ + // A FunctionGraph that runs a NoOpEncoder successfully, then throws. + class FailAfterCodecGraph : public FunctionGraph { + public: + explicit FailAfterCodecGraph(NodeID noopNode) : noopNode_(noopNode) {} + + FunctionGraphDescription functionGraphDescription() const override + { + return { + .name = "FailAfterCodecGraph", + .inputTypeMasks = { TypeMask::Numeric }, + .customNodes = { noopNode_ }, + }; + } + + void graph(GraphState& state) const override + { + auto& edge = state.edges()[0]; + // Run the NoOpEncoder -- this succeeds + edge.runNode(noopNode_); + // Then fail outside of any codec + throw std::runtime_error("graph failure after codec"); + } + + private: + NodeID noopNode_; + }; + + auto noopNode = CustomEncoder::registerCustomEncoder( + compressor_, std::make_shared()); + auto graph = FunctionGraph::registerFunctionGraph( + compressor_, std::make_shared(noopNode)); + compressor_.selectStartingGraph(graph); + + std::vector data(100, 42); + auto input = Input::refNumeric(data.data(), sizeof(int64_t), data.size()); + + auto parsed = compressExpectFailAndParse(input); + const auto& chunk = parsed.chunks[0]; + + // Find the failed graph + auto* failedGraph = findGraph(chunk, "FailAfterCodecGraph"); + ASSERT_NE(failedGraph, nullptr) + << "Should find FailAfterCodecGraph in trace graphs"; + + // The graph should have gFailureString set + EXPECT_FALSE(failedGraph->gFailureString.empty()) + << "Failed graph should have a non-empty gFailureString"; + EXPECT_NE( + failedGraph->gFailureString.find("graph failure after codec"), + std::string::npos) + << "gFailureString should contain the error message, got: " + << failedGraph->gFailureString; + + // The graph should have codec(s) from the successful NoOpEncoder run + EXPECT_FALSE(failedGraph->codecIDs.empty()) + << "Graph should have codecs from the successful NoOpEncoder"; + + // Find the NoOpEncoder codec -- it should have no cFailureString + auto* noopCodec = findCodec(chunk, "NoOpEncoder"); + ASSERT_NE(noopCodec, nullptr) << "Should find NoOpEncoder in trace codecs"; + EXPECT_TRUE(noopCodec->cFailureString.empty()) + << "NoOpEncoder should have no failure (it succeeded), got: " + << noopCodec->cFailureString; + + // No placeholder codec should be injected since codecs.size() > 0 + bool foundPlaceholder = false; + for (int64_t codecID : failedGraph->codecIDs) { + for (const auto& codec : chunk.codecs) { + if (static_cast(codec.cID) == codecID + && codec.name == "zl.#in_progress") { + foundPlaceholder = true; + } + } + } + EXPECT_FALSE(foundPlaceholder) + << "Graph with successful codecs should NOT have a placeholder " + "codec injected"; +} + +// Step 3: Verify error deduplication -- when a codec inside a graph fails, +// the graph-level gFailureString should be suppressed (empty) because the +// codec already reported the error via cFailureString. +TEST_F(CompressTraceErrorTest, GraphFailureWithCodecErrorDeduplication) +{ + auto failingNode = CustomEncoder::registerCustomEncoder( + compressor_, std::make_shared()); + auto graph = FunctionGraph::registerFunctionGraph( + compressor_, std::make_shared(failingNode)); + compressor_.selectStartingGraph(graph); + + // String input for SeparateStringComponents + std::string content; + std::vector lengths; + auto input = + makeStringInput({ "hello", "world", "test" }, content, lengths); + + auto parsed = compressExpectFailAndParse(input); + const auto& chunk = parsed.chunks[0]; + + // The FailingEncoder codec should have cFailureString + auto* failingCodec = findCodec(chunk, "FailingEncoder"); + ASSERT_NE(failingCodec, nullptr) + << "Should find FailingEncoder in trace codecs"; + EXPECT_FALSE(failingCodec->cFailureString.empty()) + << "FailingEncoder should have a cFailureString"; + EXPECT_NE( + failingCodec->cFailureString.find("deliberate codec failure"), + std::string::npos) + << "cFailureString should contain the error message, got: " + << failingCodec->cFailureString; + + // The SplitThenFail graph should exist but its gFailureString should be + // empty -- the error is already reported by the codec, so the graph-level + // error is suppressed (deduplication). + auto* splitGraph = findGraph(chunk, "SplitThenFail"); + ASSERT_NE(splitGraph, nullptr) + << "Should find SplitThenFail graph in trace"; + EXPECT_TRUE(splitGraph->gFailureString.empty()) + << "Graph gFailureString should be suppressed when a child codec " + "already has the error, got: " + << splitGraph->gFailureString; +} + +// Step 4: Verify that a type conversion failure is captured in the trace. +// When the CCtx tries to convert input data to match a subgraph's expected +// type and the conversion fails, the error is attributed to the codec that +// would have consumed the mistyped stream. +// +// The conversion check happens in CCTX_runSupervisedGraphID_internal *before* +// the subgraph's on_migraphEncode_start hook fires. To get trace content, we +// use a FunctionGraph that accepts any type and runs a codec (NoOpEncoder for +// serial input), then routes one output to a numeric-only subgraph. The parent +// graph's hooks fire and record trace data; the subgraph's conversion failure +// is then captured. +TEST_F(CompressTraceErrorTest, TypeConversionFailure) +{ + // A custom encoder that accepts serial and outputs serial (succeeds). + class SerialNoOpEncoder : public CustomEncoder { + SimpleCodecDescription simpleCodecDescription() const override + { + return SimpleCodecDescription{ + .id = 9997, + .name = "SerialNoOpEncoder", + .inputType = Type::Serial, + .outputTypes = { Type::Serial }, + }; + } + + void encode(EncoderState& encoder) const override + { + auto& input = encoder.inputs()[0]; + auto output = + encoder.createOutput(0, input.numElts(), input.eltWidth()); + memcpy(output.ptr(), input.ptr(), input.contentSize()); + output.commit(input.numElts()); + } + }; + + // A FunctionGraph that runs a serial codec, then routes its output to a + // numeric-only subgraph (which will fail type conversion). + class SerialThenNumericGraph : public FunctionGraph { + public: + SerialThenNumericGraph(NodeID serialNode, GraphID numericSubgraph) + : serialNode_(serialNode), numericSubgraph_(numericSubgraph) + { + } + + FunctionGraphDescription functionGraphDescription() const override + { + return { + .name = "SerialThenNumericGraph", + .inputTypeMasks = { TypeMask::Serial }, + .customNodes = { serialNode_ }, + }; + } + + void graph(GraphState& state) const override + { + auto& edge = state.edges()[0]; + auto outputs = edge.runNode(serialNode_); + // Route the serial output to a numeric-only subgraph — this will + // trigger a conversion error since serial → numeric is unsupported + outputs[0].setDestination(numericSubgraph_); + } + + private: + NodeID serialNode_; + GraphID numericSubgraph_; + }; + + // Build the numeric-only subgraph: NoOpEncoder (numeric) → STORE + auto noopNode = CustomEncoder::registerCustomEncoder( + compressor_, std::make_shared()); + auto numericSubgraph = + compressor_.buildStaticGraph(noopNode, { ZL_GRAPH_STORE }); + + // Build the parent graph that runs serial codec then routes to numeric + auto serialNode = CustomEncoder::registerCustomEncoder( + compressor_, std::make_shared()); + auto parentGraph = FunctionGraph::registerFunctionGraph( + compressor_, + std::make_shared( + serialNode, numericSubgraph)); + compressor_.selectStartingGraph(parentGraph); + + // Supply serial data + std::vector serialData(1000, 0x42); + auto input = Input::refSerial(serialData.data(), serialData.size()); + + auto parsed = compressExpectFailAndParse(input); + const auto& chunk = parsed.chunks[0]; + + // Some codec should have a cFailureString from the conversion error + const test::ParsedCodec* failedCodec = nullptr; + for (const auto& codec : chunk.codecs) { + if (!codec.cFailureString.empty()) { + failedCodec = &codec; + break; + } + } + ASSERT_NE(failedCodec, nullptr) + << "Should find a codec with cFailureString from conversion error"; + + // Graphs should not have gFailureString -- the error is a conversion + // failure attributed to a codec, not a graph-level error. + for (const auto& g : chunk.graphs) { + EXPECT_TRUE(g.gFailureString.empty()) + << "Graph '" << g.gName + << "' should not have gFailureString for a conversion error, " + "got: " + << g.gFailureString; + } + + // Terminal streams should be "zl.#in_progress" (compression failed) + bool hasInProgress = false; + for (const auto& codec : chunk.codecs) { + if (codec.name == "zl.#in_progress") { + hasInProgress = true; + } + EXPECT_NE(codec.name, "zl.store") + << "Failed compression should not have zl.store terminals"; + } + EXPECT_TRUE(hasInProgress) + << "Failed compression should have zl.#in_progress terminals"; +} + +// Step 5: Baseline negative test — successful compression should have no +// error strings and terminal streams should end at "zl.store". +TEST_F(CompressTraceErrorTest, SuccessfulCompressionNoErrors) +{ + compressor_.selectStartingGraph(ZL_GRAPH_COMPRESS_GENERIC); + + std::vector data(1000, 42); + auto input = Input::refNumeric(data.data(), sizeof(int64_t), data.size()); + + auto parsed = compressAndParse(input); + + EXPECT_EQ(parsed.operationType, 0) << "Should be compression"; + + for (const auto& chunk : parsed.chunks) { + // No codec should have cFailureString + for (const auto& codec : chunk.codecs) { + EXPECT_TRUE(codec.cFailureString.empty()) + << "Codec '" << codec.name + << "' should not have cFailureString in successful " + "compression, got: " + << codec.cFailureString; + // No "zl.#in_progress" terminals in successful compression + EXPECT_NE(codec.name, "zl.#in_progress") + << "Successful compression should not have " + "zl.#in_progress terminals"; + } + + // No graph should have gFailureString + for (const auto& g : chunk.graphs) { + EXPECT_TRUE(g.gFailureString.empty()) + << "Graph '" << g.gName + << "' should not have gFailureString in successful " + "compression, got: " + << g.gFailureString; + } + + // Should have "zl.store" terminal codecs + bool hasStore = false; + for (const auto& codec : chunk.codecs) { + if (codec.name == "zl.store") { + hasStore = true; + } + } + EXPECT_TRUE(hasStore) + << "Successful compression should have zl.store terminals"; + } +} + +// Step 6: Verify that a segmenter failure is captured in the trace. +// The segmenter is represented as a pseudo-codec named "segmenter" in the +// trace. When the segmenter function returns an error, on_segmenterEncode_end +// sets cFailure on that pseudo-codec. +TEST_F(CompressTraceErrorTest, SegmenterFailure) +{ + // A segmenter that immediately fails without processing any chunks. + static auto failingSegmenterFn = [](ZL_Segmenter* sctx) -> ZL_Report { + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + ZL_ERR(transform_executionFailure, "deliberate segmenter failure"); + }; + + static const ZL_Type segInputTypes[] = { ZL_Type_numeric }; + static const ZL_SegmenterDesc failingSegmenterDesc = { + .name = "FailingSegmenter", + .segmenterFn = failingSegmenterFn, + .inputTypeMasks = segInputTypes, + .numInputs = 1, + .lastInputIsVariable = false, + }; + + ZL_GraphID segId = ZL_Compressor_registerSegmenter( + compressor_.get(), &failingSegmenterDesc); + ASSERT_TRUE(ZL_GraphID_isValid(segId)); + compressor_.selectStartingGraph(segId); + + std::vector data(1000, 42); + auto input = Input::refNumeric(data.data(), sizeof(int64_t), data.size()); + + auto parsed = compressExpectFailAndParse(input); + const auto& chunk = parsed.chunks[0]; + + // Find the segmenter pseudo-codec + auto* segmenterCodec = findCodec(chunk, "segmenter"); + ASSERT_NE(segmenterCodec, nullptr) + << "Should find a 'segmenter' pseudo-codec in the trace"; + + EXPECT_FALSE(segmenterCodec->cFailureString.empty()) + << "Failed segmenter should have a non-empty cFailureString"; + EXPECT_NE( + segmenterCodec->cFailureString.find("deliberate segmenter failure"), + std::string::npos) + << "cFailureString should contain the error message, got: " + << segmenterCodec->cFailureString; + + // No "zl.store" terminals — compression failed + for (const auto& codec : chunk.codecs) { + EXPECT_NE(codec.name, "zl.store") + << "Failed compression should not have zl.store terminals"; + } +} + +} // namespace openzl + +#endif // ZL_ALLOW_INTROSPECTION diff --git a/cpp/tests/experimental/trace/StreamdumpTest.cpp b/cpp/tests/experimental/trace/StreamdumpTest.cpp new file mode 100644 index 000000000..f950b9e89 --- /dev/null +++ b/cpp/tests/experimental/trace/StreamdumpTest.cpp @@ -0,0 +1,176 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/zl_config.h" + +#if ZL_ALLOW_INTROSPECTION +# include + +# include "openzl/cpp/CCtx.hpp" +# include "openzl/cpp/Compressor.hpp" +# include "openzl/zl_compressor.h" +# include "openzl/zl_input.h" +# include "openzl/zl_segmenter.h" +# include "tests/datagen/DataGen.h" +using namespace ::testing; + +namespace openzl { +constexpr size_t SMALL_CHUNK_SIZE = 200; + +// Segmenter function for numeric input +static ZL_Report numericChunkSegmenterFn(ZL_Segmenter* sctx) +{ + assert(ZL_Segmenter_numInputs(sctx) == 1); + const ZL_Input* input = ZL_Segmenter_getInput(sctx, 0); + assert(ZL_Input_type(input) == ZL_Type_numeric); + + size_t eltWidth = ZL_Input_eltWidth(input); + + while (ZL_Input_numElts(input) > 0) { + size_t inElts = ZL_Input_numElts(input); + size_t maxChunkElts = SMALL_CHUNK_SIZE / eltWidth; + size_t chunkNumElts = (inElts < maxChunkElts) ? inElts : maxChunkElts; + + // Using flatpack since it is static and has two outputs. + ZL_Report processR = ZL_Segmenter_processChunk( + sctx, &chunkNumElts, 1, ZL_GRAPH_FLATPACK, NULL); + if (ZL_isError(processR)) { + return processR; + } + // Update input pointer for next iteration + input = ZL_Segmenter_getInput(sctx, 0); + } + + return ZL_returnSuccess(); +} + +// Segmenter descriptor for numeric input +static ZL_SegmenterDesc const numericChunkSegmenter = { + .name = "NumericChunkSegmenter", + .segmenterFn = numericChunkSegmenterFn, + .inputTypeMasks = (const ZL_Type[]){ ZL_Type_numeric }, + .numInputs = 1, +}; + +// Helper to register the numeric chunk segmenter +static ZL_GraphID registerNumericChunkSegmenter( + ZL_Compressor* compressor) noexcept +{ + ZL_Report const r = ZL_Compressor_setParameter( + compressor, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION); + if (ZL_isError(r)) { + abort(); + } + return ZL_Compressor_registerSegmenter(compressor, &numericChunkSegmenter); +} + +class StreamdumpTest : public ::testing::Test { + protected: + void SetUp() override + { + compressor.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + compressor.selectStartingGraph(ZL_GRAPH_COMPRESS_GENERIC); + } + + void generateAndCompressData(size_t sz = 1000, bool force_size = false) + { + auto dg = openzl::tests::datagen::DataGen(); + data = dg.template randVector("randVec", 0, 100, sz); + if (force_size) { + data.resize(sz); + } + auto input = + Input::refNumeric(data.data(), sizeof(int64_t), data.size()); + + compressData(input); + } + + void compressData(Input& input) + { + cctx.refCompressor(compressor); + cctx.writeTraces(true, true); + + auto compressed = cctx.compressOne(input); + auto traceResult = cctx.getLatestTrace(); + + trace = traceResult.first; + streamdump = traceResult.second; + + EXPECT_FALSE(trace.empty()); + EXPECT_FALSE(streamdump.empty()); + } + + std::string trace; + std::map> + streamdump; + std::vector data; + + Compressor compressor; + CCtx cctx; +}; + +TEST_F(StreamdumpTest, VerifyStreamdump) +{ + generateAndCompressData(); + EXPECT_FALSE(trace.empty()); + EXPECT_FALSE(streamdump.empty()); + + // Verify all streams are from chunk 0 (single chunk compression) + // All streams are unique since streamdump is a map + for (const auto& [key, value] : streamdump) { + EXPECT_TRUE(key.find("chunk_0_") == 0); + } +} + +TEST_F(StreamdumpTest, VerifyMultiChunkStreamdump) +{ + ZL_GraphID segmenterId = registerNumericChunkSegmenter(compressor.get()); + compressor.selectStartingGraph(segmenterId); + generateAndCompressData(1000, true); + int chunkSize = SMALL_CHUNK_SIZE / sizeof(int64_t); + int numDataChunks = + (data.size() + chunkSize - 1) / chunkSize; // ceiling division + int numChunks = + numDataChunks + 1; // +1 for the main/wrapper chunk at index 0 + std::map streamsPerChunk; + + // Verify streams are from chunks between 0 and numChunks + for (const auto& [key, value] : streamdump) { + // Extract chunk ID from key format + // "chunk_{chunkId}_stream{streamId}" + size_t chunkStart = key.find("chunk_") + 6; + size_t chunkEnd = key.find("_stream"); + ASSERT_NE(chunkEnd, std::string::npos) << "Invalid key format: " << key; + int chunkId = std::stoi(key.substr(chunkStart, chunkEnd - chunkStart)); + streamsPerChunk[chunkId]++; + + EXPECT_GE(chunkId, 0) << "Chunk ID should be >= 0, got: " << chunkId; + EXPECT_LT(chunkId, numChunks) + << "Chunk ID should be < " << numChunks << ", got: " << chunkId; + } + + // Check that all data chunks have the same number of streams + ASSERT_FALSE(streamsPerChunk.empty()) << "No streams found in streamdump"; + int expectedNumStreams = streamsPerChunk.begin()->second; + for (const auto& [chunkId, numStreams] : streamsPerChunk) { + std::cout << "Chunk " << chunkId << ": " << numStreams << " streams" + << std::endl; + EXPECT_EQ(numStreams, expectedNumStreams) + << "Chunk " << chunkId << " has " << numStreams + << " streams, expected: " << expectedNumStreams; + } +} + +TEST_F(StreamdumpTest, TruncateStreamPreview) +{ + std::vector basicData(100000, 10); + auto input = Input::refNumeric( + basicData.data(), sizeof(int64_t), basicData.size()); + + compressData(input); + + EXPECT_FALSE(trace.empty()); + EXPECT_LE(trace.size(), 5000); +} + +} // namespace openzl +#endif // ZL_ALLOW_INTROSPECTION diff --git a/cpp/tests/experimental/trace/TraceTestHelpers.hpp b/cpp/tests/experimental/trace/TraceTestHelpers.hpp new file mode 100644 index 000000000..9d3c4557b --- /dev/null +++ b/cpp/tests/experimental/trace/TraceTestHelpers.hpp @@ -0,0 +1,231 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#pragma once + +#include "openzl/cpp/poly/StringView.hpp" +#include "openzl/shared/a1cbor.h" + +#include +#include +#include +#include +#include + +namespace openzl::test { + +// Simple parsed representations of trace CBOR data for test assertions. + +struct ParsedCodec { + size_t chunkId{}; + std::string name; + bool cType{}; + int64_t cID{}; + int64_t cHeaderSize{}; + std::string cFailureString; // empty if not present + std::vector inputStreams; + std::vector outputStreams; +}; + +struct ParsedGraph { + size_t chunkId{}; + int64_t gType{}; + std::string gName; + std::string gFailureString; // empty if not present + std::vector codecIDs; +}; + +struct ParsedChunk { + size_t chunkId{}; + std::vector codecs; + std::vector graphs; +}; + +struct ParsedTrace { + int64_t libraryVersion{}; + int64_t frameVersion{}; + int64_t traceVersion{}; + int64_t operationType{}; + std::vector chunks; +}; + +namespace detail { + +// Arena allocator backed by a vector of unique_ptrs, matching the pattern +// used in test_a1cbor.cpp. +using Ptrs = std::vector>; + +inline void* testCalloc(void* opaque, size_t bytes) noexcept +{ + if (bytes == 0) { + return nullptr; + } + // Use nothrow new to avoid throwing in a noexcept function. + // The () value-initializes (zeros) the array, matching calloc semantics. + auto* raw = new (std::nothrow) uint8_t[bytes](); + if (raw == nullptr) { + return nullptr; + } + auto* ptrs = static_cast(opaque); + ptrs->push_back(std::unique_ptr(raw)); + return raw; +} + +inline std::string extractString(const A1C_Item* item) +{ + if (item == nullptr || item->type != A1C_ItemType_string) { + return ""; + } + return std::string(item->string.data, item->string.size); +} + +inline int64_t extractInt(const A1C_Item* item, int64_t defaultVal = 0) +{ + if (item == nullptr || item->type != A1C_ItemType_int64) { + return defaultVal; + } + return item->int64; +} + +inline bool extractBool(const A1C_Item* item, bool defaultVal = false) +{ + if (item == nullptr || item->type != A1C_ItemType_boolean) { + return defaultVal; + } + return item->boolean; +} + +inline std::vector extractIntArray(const A1C_Item* item) +{ + std::vector result; + if (item == nullptr || item->type != A1C_ItemType_array) { + return result; + } + for (size_t i = 0; i < item->array.size; ++i) { + A1C_Item* elem = A1C_Array_get(&item->array, i); + if (elem != nullptr && elem->type == A1C_ItemType_int64) { + result.push_back(elem->int64); + } + } + return result; +} + +inline ParsedCodec parseCodec(const A1C_Item* item) +{ + ParsedCodec codec; + if (item == nullptr || item->type != A1C_ItemType_map) { + return codec; + } + const A1C_Map* m = &item->map; + codec.chunkId = + static_cast(extractInt(A1C_Map_get_cstr(m, "chunkId"))); + codec.name = extractString(A1C_Map_get_cstr(m, "name")); + codec.cType = extractBool(A1C_Map_get_cstr(m, "cType")); + codec.cID = extractInt(A1C_Map_get_cstr(m, "cID")); + codec.cHeaderSize = extractInt(A1C_Map_get_cstr(m, "cHeaderSize")); + codec.cFailureString = extractString(A1C_Map_get_cstr(m, "cFailureString")); + codec.inputStreams = extractIntArray(A1C_Map_get_cstr(m, "inputStreams")); + codec.outputStreams = extractIntArray(A1C_Map_get_cstr(m, "outputStreams")); + return codec; +} + +inline ParsedGraph parseGraph(const A1C_Item* item) +{ + ParsedGraph graph; + if (item == nullptr || item->type != A1C_ItemType_map) { + return graph; + } + const A1C_Map* m = &item->map; + graph.chunkId = + static_cast(extractInt(A1C_Map_get_cstr(m, "chunkId"))); + graph.gType = extractInt(A1C_Map_get_cstr(m, "gType")); + graph.gName = extractString(A1C_Map_get_cstr(m, "gName")); + graph.gFailureString = extractString(A1C_Map_get_cstr(m, "gFailureString")); + graph.codecIDs = extractIntArray(A1C_Map_get_cstr(m, "codecIDs")); + return graph; +} + +inline ParsedChunk parseChunk(const A1C_Item* item) +{ + ParsedChunk chunk; + if (item == nullptr || item->type != A1C_ItemType_map) { + return chunk; + } + const A1C_Map* m = &item->map; + chunk.chunkId = + static_cast(extractInt(A1C_Map_get_cstr(m, "chunkId"))); + + const A1C_Item* codecsItem = A1C_Map_get_cstr(m, "codecs"); + if (codecsItem != nullptr && codecsItem->type == A1C_ItemType_array) { + for (size_t i = 0; i < codecsItem->array.size; ++i) { + chunk.codecs.push_back( + parseCodec(A1C_Array_get(&codecsItem->array, i))); + } + } + + const A1C_Item* graphsItem = A1C_Map_get_cstr(m, "graphs"); + if (graphsItem != nullptr && graphsItem->type == A1C_ItemType_array) { + for (size_t i = 0; i < graphsItem->array.size; ++i) { + chunk.graphs.push_back( + parseGraph(A1C_Array_get(&graphsItem->array, i))); + } + } + + return chunk; +} + +} // namespace detail + +/** + * Decodes a CBOR trace (as returned by CCtx::getLatestTrace().first) into a + * ParsedTrace struct for easy assertion in tests. + * + * Returns std::nullopt if decoding fails. + */ +inline std::optional parseTrace(poly::string_view traceData) +{ + if (traceData.empty()) { + return std::nullopt; + } + + detail::Ptrs ptrs; + A1C_Arena arena; + arena.calloc = detail::testCalloc; + arena.opaque = &ptrs; + + A1C_DecoderConfig config{}; + config.referenceSource = true; + + A1C_Decoder decoder; + A1C_Decoder_init(&decoder, arena, config); + + const A1C_Item* root = A1C_Decoder_decode( + &decoder, + reinterpret_cast(traceData.data()), + traceData.size()); + if (root == nullptr || root->type != A1C_ItemType_map) { + return std::nullopt; + } + + ParsedTrace trace; + const A1C_Map* m = &root->map; + trace.libraryVersion = + detail::extractInt(A1C_Map_get_cstr(m, "libraryVersion")); + trace.frameVersion = + detail::extractInt(A1C_Map_get_cstr(m, "frameVersion")); + trace.traceVersion = + detail::extractInt(A1C_Map_get_cstr(m, "traceVersion")); + trace.operationType = + detail::extractInt(A1C_Map_get_cstr(m, "operationType")); + + const A1C_Item* chunksItem = A1C_Map_get_cstr(m, "chunks"); + if (chunksItem != nullptr && chunksItem->type == A1C_ItemType_array) { + for (size_t i = 0; i < chunksItem->array.size; ++i) { + trace.chunks.push_back( + detail::parseChunk(A1C_Array_get(&chunksItem->array, i))); + } + } + + return trace; +} + +} // namespace openzl::test diff --git a/custom_parsers/BUCK b/custom_parsers/BUCK index 1d43c9495..4c0bb460b 100644 --- a/custom_parsers/BUCK +++ b/custom_parsers/BUCK @@ -2,7 +2,7 @@ load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary") load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_library") +load("../defs.bzl", "relative_headers", "zs_library") oncall("data_compression") @@ -15,11 +15,11 @@ zs_library( "dependency_registration.h", ], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers/csv:csv_parser", - "//data_compression/experimental/zstrong/custom_parsers/parquet:parquet_graph", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:clustering", + "..:zstronglib", + "../cpp:openzl_cpp", + "csv:csv_parser", + "parquet:parquet_graph", + "shared_components:clustering", ], ) @@ -27,9 +27,10 @@ cpp_library( # @autodeps-skip name = "zip_lexer", srcs = ["zip_lexer.c"], - headers = ["zip_lexer.h"], + headers = relative_headers(["zip_lexer.h"]), + header_namespace = "", deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "..:zstronglib", ], ) @@ -37,10 +38,11 @@ cpp_library( # @autodeps-skip name = "pytorch_model_parser", srcs = ["pytorch_model_parser.c"], - headers = ["pytorch_model_parser.h"], + headers = relative_headers(["pytorch_model_parser.h"]), + header_namespace = "", deps = [ + "..:zstronglib", ":zip_lexer", - "//data_compression/experimental/zstrong:zstronglib", ], ) @@ -51,9 +53,9 @@ cpp_binary( "pytorch_model_compressor.cpp", ], deps = [ + "..:zstronglib", + "../tools:zstrong_cpp", ":pytorch_model_parser", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", "//folly:file_util", "//folly/init:init", ], diff --git a/custom_parsers/CMakeLists.txt b/custom_parsers/CMakeLists.txt index 3ef598c43..aa35fdc40 100644 --- a/custom_parsers/CMakeLists.txt +++ b/custom_parsers/CMakeLists.txt @@ -44,10 +44,11 @@ target_link_libraries(custom_parsers openzl openzl_cpp csv_parser + ml_selector parquet_graph shared_components ) -add_dependencies(custom_parsers openzl openzl_cpp) +add_dependencies(custom_parsers openzl openzl_cpp xgboost_external) apply_openzl_compile_options_to_target(custom_parsers csv_parser parquet_graph diff --git a/custom_parsers/csv/BUCK b/custom_parsers/csv/BUCK index 923dda1ce..bbf790de5 100644 --- a/custom_parsers/csv/BUCK +++ b/custom_parsers/csv/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_library") +load("../../defs.bzl", "zs_library") oncall("data_compression") @@ -17,8 +17,8 @@ zs_library( ["*.h"], ), exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:numeric_graphs", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:string_graphs", + "../..:zstronglib", + "../shared_components:numeric_graphs", + "../shared_components:string_graphs", ], ) diff --git a/custom_parsers/csv/CMakeLists.txt b/custom_parsers/csv/CMakeLists.txt index 951488b0d..31f91d561 100644 --- a/custom_parsers/csv/CMakeLists.txt +++ b/custom_parsers/csv/CMakeLists.txt @@ -17,7 +17,8 @@ target_include_directories(csv_parser PRIVATE ${PROJECT_SOURCE_DIR}) target_link_libraries(csv_parser openzl + shared_components ) -add_dependencies(csv_parser openzl) +add_dependencies(csv_parser openzl shared_components) apply_openzl_compile_options_to_target(csv_parser) diff --git a/custom_parsers/csv/csv_lexer.c b/custom_parsers/csv/csv_lexer.c index 86a0427a0..f4f1d1bc9 100644 --- a/custom_parsers/csv/csv_lexer.c +++ b/custom_parsers/csv/csv_lexer.c @@ -4,370 +4,167 @@ #include -#include "openzl/codecs/zl_dispatch.h" -#include "openzl/common/logging.h" -#include "openzl/zl_graph_api.h" - -// Parses the CSV file to get the number of columns, separated by @p sep, and -// the length of the first row, including the ending `\n`. -static ZL_Report parseFirstRow( - const char* content, - const size_t length, +#include "openzl/shared/utils.h" +#include "openzl/zl_errors.h" + +void ZL_CSV_Lexer_init( + ZL_CSV_Lexer* lexer, + ZL_OperationContext* opCtx, + const char* src, + size_t srcSize, char sep, - size_t* nbColumns, - size_t* firstRowLen) + bool isNullAware) { - *nbColumns = 0; - for (size_t i = 0; i < length; i++) { - if (content[i] == '"') { - do { - i++; - } while (i < length && content[i] != '"'); - if (i >= length) { - ZL_RET_R_ERR( - node_invalid_input, - "CSV file is not well formed. Open quote is not closed"); - } - i++; - if (i >= length) { - ZL_RET_R_ERR( - node_invalid_input, - "CSV file is not well formed. No newline character found anywhere in the file"); - } - } - if (content[i] == '\n') { - *firstRowLen = i + 1; - (*nbColumns)++; - ZL_RET_R_IF_GT( - node_invalid_input, - *nbColumns, - ZL_DispatchString_maxDispatches() - 2, - "CSV file has more columns than supported by dispatchString"); - return ZL_returnSuccess(); - } - if (content[i] == sep) { - (*nbColumns)++; - } - } - ZL_RET_R_ERR( - node_invalid_input, - "CSV file not well formed. No newline character found anywhere in the file"); + lexer->opCtx = opCtx; + lexer->start = src; + lexer->src = src; + lexer->end = src + srcSize; + lexer->isNullAware = isNullAware; + lexer->sep = sep; + + lexer->numCols = 0; + lexer->col = 0; + lexer->row = 0; + lexer->isFieldNext = true; } -static size_t countNbNewlines(const char* content, const size_t length) +ZL_Report ZL_CSV_Lexer_lex( + ZL_CSV_Lexer* lexer, + ZL_CSV_TokenType* types, + uint32_t* sizes, + uint32_t* cols, + size_t maxNumTokens, + size_t srcSizeLimit) { - size_t nbNewlines = 0; - for (uint32_t i = 0; i < length; i++) { - nbNewlines += (content[i] == '\n'); + ZL_RESULT_DECLARE_SCOPE_REPORT(lexer->opCtx); + + const char* const limit = lexer->src + + ZL_MIN((size_t)(lexer->end - lexer->src), srcSizeLimit); + size_t out = 0; + + // Local lexer constants + const char sep = lexer->sep; + const bool isNullAware = lexer->isNullAware; + const char* const end = lexer->end; + + // Local lexer state + // Keep in local variables for two reasons: + // 1. When an error occurs, guarantee the state is unmodified + // 2. Make the compilers job easier + const char* src = lexer->src; + size_t row = lexer->row; + uint32_t col = lexer->col; + uint32_t numCols = lexer->numCols; + + if (!lexer->isFieldNext || isNullAware) { + // If we expect a separator or newline next, skip the field parsing + // Null aware parsing always goes here, because if it is a field it will + // just go back to the top of the loop. + goto _lexSeparator; } - return nbNewlines; -} -/** - * Creates dispatch indices for each string. - * Given N columns, there are N + 2 dispatches: - * - Columns 0 through N - 1 to to dispatches 0 through N - 1 - * - Delimiters, whitespace, and newlines to dispatch N - * - Header to dispatch N + 1 - */ -// TODO: refactor this and the parsing fn to return an error if the assumption -// of equal-sized rows is violated -static ZL_Report createCsvDispatchIndices( - uint16_t* dispatchIndices, - size_t nbContentRows, - size_t nbColumns, - const uint32_t* stringLens) -{ - (void)stringLens; - size_t maxDispatches = ZL_DispatchString_maxDispatches(); - ZL_RET_R_IF_GT( - temporaryLibraryLimitation, - nbColumns, - maxDispatches - 2, - "Dispatch only supports up to %i dispatches - 2 aux outputs = %i columns", - maxDispatches, - maxDispatches - 2); - // We separate strings to follow the pattern of 'header', - // 'content', 'separator', 'content', ..., therefore even indices are - // separators. - if (nbContentRows != 0) { - size_t columnNumber = 0; - for (size_t i = 0; i < 2 * nbColumns; i += 2) { - dispatchIndices[i] = (uint16_t)nbColumns; - dispatchIndices[i + 1] = (uint16_t)columnNumber++; - } - dispatchIndices[2 * nbColumns] = (uint16_t)nbColumns; - // memcpy in a loop! memcpy in a loop! memcpy in a loop! - // (this can probably be faster) - for (size_t row = 1; row < nbContentRows; ++row) { - memcpy(dispatchIndices + 1 + row * (2 * nbColumns), - dispatchIndices + 1, - 2 * nbColumns * sizeof(dispatchIndices[0])); - } - } - // Header goes to a separate cluster - dispatchIndices[0] = (uint16_t)(nbColumns + 1); - return ZL_returnSuccess(); -} - -static ZL_Report createParsedCsv( - uint32_t* stringLens, - const char* content, - const size_t length, - char sep, - size_t nbColumns) -{ - uint32_t fieldStart = 0; - size_t nbStrs = 0; - size_t col = 1; - - for (uint32_t i = 0; i < length; ++i) { - // skip past all quoted strings - if (content[i] == '"') { + while (src < end && out < maxNumTokens) { + // Lex field + // This always creates a token, even if the field is empty. + { + size_t size = 0; do { - ++i; - } while (i < length && content[i] != '"'); - if (i >= length) { - ZL_RET_R_ERR( - node_invalid_input, - "CSV file is not well formed. Open quote is not closed"); - } - ++i; - if (i >= length) { - ZL_RET_R_ERR( - node_invalid_input, - "CSV file is not well formed. No newline character at the end of the last line"); - } - } - if (content[i] == sep || content[i] == '\n') { - // check for unexpected or missing columns - if (content[i] == sep) { - if (col >= nbColumns) { - ZL_RET_R_ERR( - node_invalid_input, - "CSV file is not well formed. Header expects %i columns, but found %i (or more) columns", - nbColumns, - col); - } - ++col; - } else { // content[i] == '\n' - if (col != nbColumns) { - ZL_RET_R_ERR( + const char c = src[size]; + if (c == '"') { + // Handle quotes + do { + ++size; + } while (src + size < end && src[size] != '"'); + ZL_ERR_IF_GE( + src + size, + end, node_invalid_input, - "CSV file is not well formed. Header expects %i columns, but only found %i columns", - nbColumns, - col); + "CSV file is not well formed: Unterminated quoted string"); + ++size; + } else if (c == '\n' || c == sep) { + break; + } else { + ++size; } - col = 1; - } - - stringLens[nbStrs] = i - fieldStart; - ++nbStrs; - stringLens[nbStrs] = 1; - ++nbStrs; - fieldStart = i + 1; - } - } - ZL_RET_R_IF_NE( - node_invalid_input, - col, - 1, - "CSV file may be truncated. Header expects %i columns, but only found %i columns in the last line", - nbColumns, - col - 1); - ZL_RET_R_IF_NE( - node_invalid_input, - fieldStart, - length, - "CSV file not well formed. No newline character at the end of the last line"); - ZL_LOG(V, "createParsedCsv nbStrs: %zu", nbStrs); - return ZL_returnValue(nbStrs); -} - -// returns number of strings processed -ZL_Report createNullAwareLexAndDispatch( - uint32_t* stringLens, - uint16_t* dispatchIndices, - const char* content, - const size_t length, - uint8_t nbColumns, - char sep) -{ - uint32_t fieldStart = 0; - uint8_t colIdx = 0; - size_t nbStrs = 0; + } while (src + size < end); - for (uint32_t i = 0; i < length;) { - // skip past all quoted strings - if (content[i] == '"') { - do { - ++i; - } while (i < length && content[i] != '"'); - if (i >= length) { - ZL_RET_R_ERR( - node_invalid_input, - "CSV file is not well formed. Open quote is not closed"); - } - ++i; - } - if (content[i] == sep) { - stringLens[nbStrs] = i - fieldStart; - dispatchIndices[nbStrs] = colIdx; - ++nbStrs; - fieldStart = i; - // coalesce all contiguous separators, e.g. ',,,,,,' - while (i < length && content[i] == sep) { - ++colIdx; - ++i; - } - stringLens[nbStrs] = i - fieldStart; - dispatchIndices[nbStrs] = nbColumns; - ++nbStrs; - fieldStart = i; - continue; - } - if (content[i] == '\n') { - stringLens[nbStrs] = i - fieldStart; - dispatchIndices[nbStrs] = colIdx; - ++nbStrs; - stringLens[nbStrs] = 1; - dispatchIndices[nbStrs] = nbColumns; - ++nbStrs; - fieldStart = i + 1; - colIdx = 0; - } - ++i; - } - ZL_RET_R_IF_NE( - node_invalid_input, - fieldStart, - length, - "CSV file not well formed. No newline character at the end of the last line"); - ZL_LOG(V, "createParsedCsv nbStrs: %zu", nbStrs); - return ZL_returnValue(nbStrs); -} + types[out] = ZL_CSV_TokenType_Field; + sizes[out] = (uint32_t)size; + cols[out] = col; -ZL_Report ZL_CSV_lex( - ZL_Graph* gctx, - const char* const content, - size_t byteSize, - bool hasHeader, - char sep, - ZL_CSV_lexResult* retLexResult) -{ - // TODO: can we use a vector to avoid this double iteration? would it be - // faster? - // pre-processing for rows, columns before parsing - const char* rowsStart; - size_t rowsByteSize; - size_t nbColumns; - { - size_t firstRowLen = - 0; // dummy initialization, to avoid -Wmaybe-uninitialized - ZL_RET_R_IF_ERR(parseFirstRow( - content, byteSize, sep, &nbColumns, &firstRowLen)); - if (hasHeader) { - rowsStart = content + firstRowLen; - rowsByteSize = byteSize - firstRowLen; - } else { - rowsStart = content; - rowsByteSize = byteSize; + src += size; + ++out; } - } - const size_t maxNbRows = countNbNewlines(rowsStart, rowsByteSize); - - // Given 'n' columns, there are 'n' content strings and 'n' separator - // strings per row. This is because we count the newline separator as well - // as all the column separators. We add 1 for the header. Overcounting - // extraneous quoted newlines is possible. - const size_t maxNbStrings = 2 * nbColumns * maxNbRows + 1; - uint32_t* stringLens = - ZL_Graph_getScratchSpace(gctx, maxNbStrings * sizeof(uint32_t)); - ZL_RET_R_IF_NULL(allocation, stringLens); - stringLens[0] = (uint32_t)(rowsStart - content); // 0 if there is no header - ZL_Report rep = createParsedCsv( - stringLens + 1, rowsStart, rowsByteSize, sep, nbColumns); - ZL_RET_R_IF_ERR(rep); - size_t actualNbStrs = ZL_validResult(rep); - size_t actualNbRows = actualNbStrs / (2 * nbColumns); - actualNbStrs += 1; // +1 for header + _lexSeparator: + // If present, lex a separator or newline + if (src < end && out < maxNumTokens) { + const char c = *src; + if (c == '\n') { + if (row == 0) { + numCols = col + 1; + } + // Check that the number of columns is consistent + ZL_ERR_IF_NE( + col + 1, + numCols, + node_invalid_input, + "CSV file is not well formed: Uneven number of columns"); - uint16_t* dispatchIndices = - ZL_Graph_getScratchSpace(gctx, actualNbStrs * sizeof(uint16_t)); - ZL_RET_R_IF_NULL(allocation, dispatchIndices); - ZL_RET_R_IF_ERR(createCsvDispatchIndices( - dispatchIndices, actualNbRows, nbColumns, stringLens)); + types[out] = ZL_CSV_TokenType_Newline; + sizes[out] = 1; + cols[out] = 0; - // return - retLexResult->stringLens = stringLens; - retLexResult->dispatchIndices = dispatchIndices; - retLexResult->nbStrs = actualNbStrs; - retLexResult->nbColumns = nbColumns; + col = 0; + ++row; + ++src; + ++out; - return ZL_returnSuccess(); -} + if (src >= limit) { + // Stop on the first newline at or after the limit + break; + } -ZL_Report ZL_CSV_lexNullAware( - ZL_Graph* gctx, - const char* const content, - size_t byteSize, - bool hasHeader, - char sep, - ZL_CSV_lexResult* retLexResult) -{ - // TODO: can we use a vector to avoid this double iteration? would it be - // faster? - // pre-processing for rows, columns before parsing - const char* rowsStart; - size_t rowsByteSize; - size_t nbColumns; - { - size_t firstRowLen = - 0; // dummy initialization, to avoid -Wmaybe-uninitialized - ZL_RET_R_IF_ERR(parseFirstRow( - content, byteSize, sep, &nbColumns, &firstRowLen)); - if (hasHeader) { - rowsStart = content + firstRowLen; - rowsByteSize = byteSize - firstRowLen; - } else { - rowsStart = content; - rowsByteSize = byteSize; + if (isNullAware) { + // If the first field is null we need to skip it rather than + // create an empty token. If it is non-null, this will just + // push us back to the top of the loop. + goto _lexSeparator; + } + } else if (c == sep) { + types[out] = ZL_CSV_TokenType_Sep; + cols[out] = 0; + + size_t size = 1; + if (isNullAware) { + // Handle multiple null fields + while (src + size < end && src[size] == sep) { + ++size; + } + } + sizes[out] = (uint32_t)size; + col += (uint32_t)size; + src += size; + ++out; + } } } - const size_t maxNbRows = countNbNewlines(rowsStart, rowsByteSize); - - // Given 'n' columns, there are up to 'n' content strings and 'n' separator - // strings per row. This is because we count the newline separator as well - // as all the column separators. We add 1 for the header. Overcounting - // extraneous quoted newlines is possible. - const size_t maxNbStrings = 2 * nbColumns * maxNbRows + 1; - - uint32_t* stringLens = - ZL_Graph_getScratchSpace(gctx, maxNbStrings * sizeof(uint32_t)); - ZL_RET_R_IF_NULL(allocation, stringLens); - uint16_t* dispatchIndices = - ZL_Graph_getScratchSpace(gctx, maxNbStrings * sizeof(uint16_t)); - ZL_RET_R_IF_NULL(allocation, dispatchIndices); - stringLens[0] = (uint32_t)(rowsStart - content); // 0 if there is no header - - ZL_Report rep = createNullAwareLexAndDispatch( - stringLens + 1, - dispatchIndices + 1, - rowsStart, - rowsByteSize, - (uint8_t)nbColumns, - sep); - ZL_RET_R_IF_ERR(rep); - size_t actualNbStrs = ZL_validResult(rep); - actualNbStrs += 1; // +1 for header - dispatchIndices[0] = (uint16_t)nbColumns + 1; // header + ZL_ASSERT_LE(src, end); + ZL_ASSERT_LE(out, maxNumTokens); + + // Update lexer state + lexer->src = src; + lexer->row = row; + lexer->col = col; + lexer->numCols = numCols; + if (out > 0) { + lexer->isFieldNext = (types[out - 1] != ZL_CSV_TokenType_Field); + } - // return - retLexResult->stringLens = stringLens; - retLexResult->dispatchIndices = dispatchIndices; - retLexResult->nbStrs = actualNbStrs; - retLexResult->nbColumns = nbColumns; + return ZL_returnValue(out); +} - return ZL_returnSuccess(); +bool ZL_CSV_Lexer_finished(const ZL_CSV_Lexer* lexer) +{ + return lexer->src == lexer->end; } diff --git a/custom_parsers/csv/csv_lexer.h b/custom_parsers/csv/csv_lexer.h index 60cf68e78..80b871b05 100644 --- a/custom_parsers/csv/csv_lexer.h +++ b/custom_parsers/csv/csv_lexer.h @@ -7,45 +7,82 @@ #include #include "openzl/zl_errors.h" -#include "openzl/zl_opaque_types.h" #if defined(__cplusplus) extern "C" { #endif +typedef enum { + ZL_CSV_TokenType_Field, + ZL_CSV_TokenType_Sep, + ZL_CSV_TokenType_Newline, +} ZL_CSV_TokenType; + typedef struct { - size_t nbStrs; - size_t nbColumns; - uint32_t* stringLens; - uint16_t* dispatchIndices; -} ZL_CSV_lexResult; - -ZL_Report ZL_CSV_lex( - ZL_Graph* gctx, - const char* const content, - size_t byteSize, - bool hasHeader, - char sep, - ZL_CSV_lexResult* retLexResult); - -// Instead of doing a full columnar dispatch, we skip the dispatch if the column -// is empty and coalesce the separators together. So we have a result with -// uneven columns, depending on how many empty values are in each column. -ZL_Report ZL_CSV_lexNullAware( - ZL_Graph* gctx, - const char* const content, - size_t byteSize, - bool hasHeader, + ZL_CSV_TokenType type; + uint32_t size; + uint32_t col; +} ZL_CSV_Token; + +typedef struct { + ZL_OperationContext* opCtx; + const char* start; + const char* src; + const char* end; + char sep; + bool isNullAware; + /// If row == 0, then 0, else number of columns + uint32_t numCols; + /// Current column + uint32_t col; + /// Current row + size_t row; + bool isFieldNext; +} ZL_CSV_Lexer; + +/** + * Initializes a CSV lexer. + * + * @param src The source to lex (streaming not yet supported). + * @param srcSize The size of the source. + * @param sep The separator character. Typically ',', '|' or '\t'. + * @param isNullAware Whether to use the null-aware parser, which coalesces + * consecutive separators into a single token. + */ +void ZL_CSV_Lexer_init( + ZL_CSV_Lexer* lexer, + ZL_OperationContext* opCtx, + const char* src, + size_t srcSize, char sep, - ZL_CSV_lexResult* retLexResult); - -ZL_Report createNullAwareLexAndDispatch( - uint32_t* stringLens, - uint16_t* dispatchIndices, - const char* content, - const size_t length, - uint8_t nbColumns, - char sep); + bool isNullAware); + +/** + * Lexes tokens from the source. + * + * @param lexer The lexer state. + * @param types The array of types to fill of size @p maxNumTokens. + * @param sizes The array of sizes to fill of size @p maxNumTokens. + * @param cols The array of cols to fill of size @p maxNumTokens. Set to 0 for + * non-field tokens. + * @param maxNumTokens The maximum number of tokens to lex. + * @param srcSizeLimit Once this limit is reached, the lexer will stop lexing + * after completing the CSV row. + * + * @returns The number of tokens lexed, or an error. + */ +ZL_Report ZL_CSV_Lexer_lex( + ZL_CSV_Lexer* lexer, + ZL_CSV_TokenType* types, + uint32_t* sizes, + uint32_t* cols, + size_t maxNumTokens, + size_t srcSizeLimit); + +/** + * @returns Whether the lexer has reached the end of the source. + */ +bool ZL_CSV_Lexer_finished(const ZL_CSV_Lexer* lexer); #if defined(__cplusplus) } // extern "C" diff --git a/custom_parsers/csv/csv_parser.c b/custom_parsers/csv/csv_parser.c index 70c9a9d44..6adfc6f9f 100644 --- a/custom_parsers/csv/csv_parser.c +++ b/custom_parsers/csv/csv_parser.c @@ -4,14 +4,17 @@ #include #include -#include #include "custom_parsers/csv/csv_lexer.h" -#include "openzl/common/logging.h" -#include "openzl/compress/graphs/generic_clustering_graph.h" +#include "openzl/codecs/zl_clustering.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/overflow.h" #include "openzl/zl_data.h" #include "openzl/zl_errors.h" #include "openzl/zl_graph_api.h" +#include "openzl/zl_selector.h" + +ZL_RESULT_DECLARE_TYPE(ZL_RefParam); static void print(const void* ptr, size_t size, char* name) { @@ -26,17 +29,75 @@ static void print(const void* ptr, size_t size, char* name) fclose(f); } +static ZL_RESULT_OF(ZL_RefParam) + tryGetRefParam(ZL_Graph* gctx, int key, size_t structSize) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_RefParam, gctx); + ZL_RefParam refParam = ZL_Graph_getLocalRefParam(gctx, key); + ZL_ERR_IF_EQ(refParam.paramId, ZL_LP_INVALID_PARAMID, node_invalid_input); + ZL_ERR_IF_NE(refParam.paramSize % structSize, 0, node_invalid_input); + return ZL_RESULT_WRAP_VALUE(ZL_RefParam, refParam); +} + +static ZL_Report tryGetIntParam(ZL_Graph* gctx, int key) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_IntParam intParam = ZL_Graph_getLocalIntParam(gctx, key); + ZL_ERR_IF_EQ(intParam.paramId, ZL_LP_INVALID_PARAMID, node_invalid_input); + return ZL_returnValue((size_t)intParam.paramValue); +} + +/** + * Create dispatch indices for each token. Each field is sent to the output + * corresponding to its column number. Each delimiter, whitespace, and newline + * is sent to the `numCols` output. If @p hasHeader is true, the first line is + * sent to the `numCols + 1` output. + */ +static const uint16_t* createDispatchIndices( + ZL_Graph* gctx, + const ZL_CSV_TokenType* types, + const uint32_t* cols, + size_t numTokens, + size_t numCols, + bool hasHeader) +{ + size_t tokensSize; + if (ZL_overflowMulST(numTokens, sizeof(uint16_t), &tokensSize)) { + return NULL; + } + uint16_t* dispatchIndices = ZL_Graph_getScratchSpace(gctx, tokensSize); + if (dispatchIndices == NULL) { + return NULL; + } + + size_t i = 0; + if (hasHeader && i < numTokens) { + do { + dispatchIndices[i] = (uint16_t)(numCols + 1); + ++i; + } while (i < numTokens && types[i] != ZL_CSV_TokenType_Newline); + } + + for (; i < numTokens; ++i) { + dispatchIndices[i] = + (uint16_t)(types[i] == ZL_CSV_TokenType_Field ? cols[i] + : numCols); + } + return dispatchIndices; +} + static ZL_Report -csvParserGraphFn(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) +csvParserGraphFn(ZL_Graph* gctx, ZL_Edge* inputs[], size_t numInputs) { - ZL_RET_R_IF_NE(node_invalid_input, nbInputs, 1); - ZL_RET_R_IF_NULL(node_invalid_input, inputs[0]); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + + ZL_ASSERT_EQ(numInputs, 1); + ZL_ASSERT_NN(inputs[0]); + /* TODO: The line end token is assumed to be '\n'. We should allow * multiple types of line end characters. */ const ZL_Input* input = ZL_Edge_getData(inputs[0]); - ZL_RET_R_IF_NE(node_invalid_input, ZL_Input_type(input), ZL_Type_serial); - const size_t byteSize = ZL_Input_contentSize(input); - const char* const content = (const char* const)ZL_Input_ptr(input); + ZL_ASSERT_EQ(ZL_Input_type(input), ZL_Type_serial); // Clustering graph is registered inside as a custom graph // Expecting 3 custom graphs right now: clustering, delimiters, header @@ -44,105 +105,92 @@ csvParserGraphFn(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) // Delimiters - ZL_GRAPH_COMPRESS_GENERIC // Header - ZL_GRAPH_COMPRESS_GENERIC ZL_GraphIDList customGraphs = ZL_Graph_getCustomGraphs(gctx); - ZL_RET_R_IF_NE(node_invalid_input, customGraphs.nbGraphIDs, 3); - - int hasHeader = ZL_Graph_getLocalIntParam(gctx, ZL_PARSER_HAS_HEADER_PID) - .paramValue; - int intSep = - ZL_Graph_getLocalIntParam(gctx, ZL_PARSER_SEPARATOR_PID).paramValue; - ZL_RET_R_IF( - node_invalid_input, - (intSep > 255) || (intSep < 0), - "Separator must be a char value"); - char sep = (char)intSep; - int useNullAwareParse = - ZL_Graph_getLocalIntParam(gctx, ZL_PARSER_USE_NULL_AWARE_PID) - .paramValue; - ZL_RET_R_IF( - node_invalid_input, - (useNullAwareParse != 0) && (useNullAwareParse != 1), - "UseNullAware must be 0 or 1"); - - ZL_CSV_lexResult lexed = {}; - ZL_Report lexRes = (useNullAwareParse) - ? ZL_CSV_lexNullAware( - gctx, content, byteSize, hasHeader, sep, &lexed) - : ZL_CSV_lex(gctx, content, byteSize, hasHeader, sep, &lexed); - ZL_RET_R_IF_ERR(lexRes); + ZL_ERR_IF_NE(customGraphs.nbGraphIDs, 3, node_invalid_input); + + ZL_TRY_LET( + ZL_RefParam, + refParam, + tryGetRefParam( + gctx, ZL_CSV_CHUNKED_TYPES_ID, sizeof(ZL_CSV_TokenType))); + const ZL_CSV_TokenType* tokens = (const ZL_CSV_TokenType*)refParam.paramRef; + const size_t numTokens = refParam.paramSize / sizeof(ZL_CSV_TokenType); + + ZL_TRY_SET( + ZL_RefParam, + refParam, + tryGetRefParam(gctx, ZL_CSV_CHUNKED_SIZES_ID, sizeof(uint32_t))); + const uint32_t* sizes = (const uint32_t*)refParam.paramRef; + ZL_ERR_IF_NE( + refParam.paramSize / sizeof(uint32_t), + numTokens, + node_invalid_input); + + ZL_TRY_SET( + ZL_RefParam, + refParam, + tryGetRefParam(gctx, ZL_CSV_CHUNKED_COLS_ID, sizeof(uint32_t))); + const uint32_t* cols = (const uint32_t*)refParam.paramRef; + ZL_ERR_IF_NE( + refParam.paramSize / sizeof(uint32_t), + numTokens, + node_invalid_input); + + ZL_TRY_LET( + size_t, + hasHeader, + tryGetIntParam(gctx, ZL_CSV_CHUNKED_HAS_HEADER_ID)); + ZL_TRY_LET( + size_t, numCols, tryGetIntParam(gctx, ZL_CSV_CHUNKED_NUM_COLS_ID)); + // +1 for delimiters and newlines; +1 for header - size_t nbOutputs = lexed.nbColumns + 2; + const size_t numOutputs = numCols + 1 + (hasHeader ? 1 : 0); // Run newly created Node, collect outputs at intermediate output - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, io, - ZL_Edge_runConvertSerialToStringNode( - inputs[0], lexed.stringLens, lexed.nbStrs)); - - if (0) { // dump these streams for debugging - const ZL_Input* data = ZL_Edge_getData(io.edges[0]); - print(ZL_Input_ptr(data), - ZL_Input_contentSize(data), - "/tmp/sdd/psam.streans.txt"); - print(ZL_Input_stringLens(data), - ZL_Input_numElts(data), - "/tmp/sdd/psam.streams.strLens"); - print(lexed.dispatchIndices, - lexed.nbStrs, - "/tmp/sdd/psam.streams.dispatchIndices"); - } - ZL_TRY_LET_T( + ZL_Edge_runConvertSerialToStringNode(inputs[0], sizes, numTokens)); + + const uint16_t* dispatchIndices = createDispatchIndices( + gctx, tokens, cols, numTokens, numCols, hasHeader); + ZL_ERR_IF_NULL(dispatchIndices, allocation); + + ZL_TRY_LET( ZL_EdgeList, so, ZL_Edge_runDispatchStringNode( - io.edges[0], (int)nbOutputs, lexed.dispatchIndices)); + io.edges[0], (int)numOutputs, dispatchIndices)); + ZL_ASSERT_EQ(so.nbEdges, numOutputs + 1); // Set edge tag metadata for identification for clustering to the column - for (size_t n = 0; n < lexed.nbColumns; n++) { - ZL_RET_R_IF_ERR(ZL_Edge_setIntMetadata( + for (size_t n = 0; n < numCols; n++) { + ZL_ERR_IF_ERR(ZL_Edge_setIntMetadata( so.edges[n + 1], ZL_CLUSTERING_TAG_METADATA_ID, (int)n)); } // Successor for dispatch indices - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(so.edges[0], ZL_GRAPH_COMPRESS_GENERIC)); // columns go to clustering - ZL_RET_R_IF_ERR(ZL_Edge_setParameterizedDestination( - so.edges + 1, lexed.nbColumns, customGraphs.graphids[0], NULL)); + ZL_ERR_IF_ERR(ZL_Edge_setParameterizedDestination( + so.edges + 1, numCols, customGraphs.graphids[0], NULL)); // Successor for delimiters, whitespace, and newlines - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( - so.edges[lexed.nbColumns + 1], customGraphs.graphids[1])); + ZL_ERR_IF_ERR(ZL_Edge_setDestination( + so.edges[numCols + 1], customGraphs.graphids[1])); // Successor for header - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( - so.edges[lexed.nbColumns + 2], customGraphs.graphids[2])); + if (hasHeader) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination( + so.edges[numCols + 2], customGraphs.graphids[2])); + } return ZL_returnSuccess(); } ZL_GraphID ZL_CsvParser_registerGraph( ZL_Compressor* compressor, - bool hasHeader, - char sep, - bool useNullAware, const ZL_GraphID clusteringGraph) { ZL_GraphID* successors = (ZL_GraphID[]){ clusteringGraph, ZL_GRAPH_COMPRESS_GENERIC, ZL_GRAPH_COMPRESS_GENERIC }; - ZL_IntParam* intParams = - (ZL_IntParam[]){ { - .paramId = ZL_PARSER_HAS_HEADER_PID, - .paramValue = hasHeader, - }, - { - .paramId = ZL_PARSER_SEPARATOR_PID, - .paramValue = sep, - }, - { - .paramId = ZL_PARSER_USE_NULL_AWARE_PID, - .paramValue = useNullAware, - } }; - ZL_LocalParams csvParams = (ZL_LocalParams){ - .intParams = { .intParams = intParams, .nbIntParams = 3 }, - }; ZL_GraphID csvParserGraph = ZL_Compressor_getGraph(compressor, "CSV Parser"); @@ -164,7 +212,6 @@ ZL_GraphID ZL_CsvParser_registerGraph( .graph = csvParserGraph, .customGraphs = successors, .nbCustomGraphs = 3, - .localParams = &csvParams, }; return ZL_Compressor_registerParameterizedGraph( compressor, &csvParserGraphDesc); diff --git a/custom_parsers/csv/csv_parser.h b/custom_parsers/csv/csv_parser.h index 76dd4bf17..dd847ab32 100644 --- a/custom_parsers/csv/csv_parser.h +++ b/custom_parsers/csv/csv_parser.h @@ -10,13 +10,11 @@ extern "C" { #endif -// Parameters for ZL_CsvParser_registerGraph: -// Set to 1 if the first line is a header line, 0 otherwise -#define ZL_PARSER_HAS_HEADER_PID 225 -// The character separator between columns. e.g. `,` for comma `|` for pipe -#define ZL_PARSER_SEPARATOR_PID 226 -// Whether to use the null-aware parser (1) or not (0) -#define ZL_PARSER_USE_NULL_AWARE_PID 227 +#define ZL_CSV_CHUNKED_HAS_HEADER_ID 101 +#define ZL_CSV_CHUNKED_NUM_COLS_ID 102 +#define ZL_CSV_CHUNKED_TYPES_ID 103 +#define ZL_CSV_CHUNKED_SIZES_ID 104 +#define ZL_CSV_CHUNKED_COLS_ID 105 /** * @brief Registers the csv parser graph. This graph takes a serialized input @@ -41,9 +39,6 @@ extern "C" { */ ZL_GraphID ZL_CsvParser_registerGraph( ZL_Compressor* compressor, - bool hasHeader, - char sep, - bool useNullAware, const ZL_GraphID clusteringGraph); #if defined(__cplusplus) diff --git a/custom_parsers/csv/csv_profile.cpp b/custom_parsers/csv/csv_profile.cpp index aa8a88998..9a00b3ee3 100644 --- a/custom_parsers/csv/csv_profile.cpp +++ b/custom_parsers/csv/csv_profile.cpp @@ -1,7 +1,7 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. #include "custom_parsers/csv/csv_profile.h" -#include "custom_parsers/csv/csv_parser.h" +#include "custom_parsers/csv/csv_segmenter.h" #include "custom_parsers/shared_components/numeric_graphs.h" #include "custom_parsers/shared_components/string_graphs.h" #include "openzl/codecs/zl_clustering.h" @@ -25,11 +25,12 @@ ZL_GraphID ZL_createGraph_genericCSVCompressor( ZL_Compressor* compressor) noexcept { return ZL_createGraph_genericCSVCompressorWithOptions( - compressor, true, ',', false); + compressor, kDefaultChunkSize, true, ',', false); } ZL_GraphID ZL_createGraph_genericCSVCompressorWithOptions( ZL_Compressor* compressor, + size_t chunkByteSizeMax, bool hasHeader, char separator, bool useNullAware) noexcept @@ -115,8 +116,13 @@ ZL_GraphID ZL_createGraph_genericCSVCompressorWithOptions( clusteringCodecs.size()); // TODO support non-comma separators - return ZL_CsvParser_registerGraph( - compressor, hasHeader, separator, useNullAware, clusteringGraph); + return ZL_RES_value(ZL_CsvSegmenter_registerSegmenter( + compressor, + chunkByteSizeMax, + hasHeader, + separator, + useNullAware, + clusteringGraph)); } } // namespace openzl::custom_parsers diff --git a/custom_parsers/csv/csv_profile.h b/custom_parsers/csv/csv_profile.h index 5dc8443eb..2067d70c9 100644 --- a/custom_parsers/csv/csv_profile.h +++ b/custom_parsers/csv/csv_profile.h @@ -7,6 +7,8 @@ namespace openzl::custom_parsers { +const size_t kDefaultChunkSize = 20 * 1000 * 1000; + /** * @brief Registers a generic CSV graph where the clustering of the columns is * still unconfigured. @@ -31,6 +33,7 @@ ZL_GraphID ZL_createGraph_genericCSVCompressor( */ ZL_GraphID ZL_createGraph_genericCSVCompressorWithOptions( ZL_Compressor* compressor, + size_t chunkByteSizeMax, bool hasHeader, char separator, bool useNullAware) noexcept; diff --git a/custom_parsers/csv/csv_segmenter.c b/custom_parsers/csv/csv_segmenter.c new file mode 100644 index 000000000..5f4c676be --- /dev/null +++ b/custom_parsers/csv/csv_segmenter.c @@ -0,0 +1,269 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "custom_parsers/csv/csv_segmenter.h" +#include "custom_parsers/csv/csv_lexer.h" +#include "custom_parsers/csv/csv_parser.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/utils.h" +#include "openzl/zl_selector.h" + +// Parameter to set the chunk size desired during chunking +#define ZL_CSV_CHUNK_BYTE_SIZE_MAX_ID 100 +// Parameters for ZL_CsvParser_registerGraph: +// Set to 1 if the first line is a header line, 0 otherwise +#define ZL_PARSER_HAS_HEADER_PID 225 +// The character separator between columns. e.g. `,` for comma `|` for pipe +#define ZL_PARSER_SEPARATOR_PID 226 +// Whether to use the null-aware parser (1) or not (0) +#define ZL_PARSER_USE_NULL_AWARE_PID 227 + +static ZL_Report SEGM_csvProcessChunk( + ZL_Segmenter* sctx, + ZL_GraphID headGraph, + size_t chunkSizeBytes, + const ZL_CSV_TokenType* types, + const uint32_t* sizes, + const uint32_t* cols, + size_t numTokens, + size_t numCols, + bool hasHeader) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + const ZL_IntParam intParams[2] = { + { + ZL_CSV_CHUNKED_HAS_HEADER_ID, + (int)hasHeader, + }, + { + ZL_CSV_CHUNKED_NUM_COLS_ID, + (int)numCols, + }, + }; + const ZL_RefParam refParams[3] = { + { + ZL_CSV_CHUNKED_TYPES_ID, + types, + numTokens * sizeof(types[0]), + }, + { + ZL_CSV_CHUNKED_SIZES_ID, + sizes, + numTokens * sizeof(sizes[0]), + }, + { + ZL_CSV_CHUNKED_COLS_ID, + cols, + numTokens * sizeof(cols[0]), + }, + }; + const ZL_LocalParams chunkParams = { + .intParams = { intParams, 2 }, + .refParams = { refParams, 3 }, + }; + const ZL_RuntimeGraphParameters gparams = { + .localParams = &chunkParams, + }; + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &chunkSizeBytes, 1, headGraph, &gparams)); + return ZL_returnSuccess(); +} + +static ZL_Report tryGetIntParam(ZL_Segmenter* segmenter, int key) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(segmenter); + ZL_IntParam intParam = ZL_Segmenter_getLocalIntParam(segmenter, key); + ZL_ERR_IF_EQ(intParam.paramId, ZL_LP_INVALID_PARAMID, node_invalid_input); + return ZL_returnValue((size_t)intParam.paramValue); +} + +static ZL_Report SEGM_csv(ZL_Segmenter* sctx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + size_t const numInputs = ZL_Segmenter_numInputs(sctx); + ZL_ERR_IF_NE(numInputs, 1, node_invalid_input); + const ZL_Input* const input = ZL_Segmenter_getInput(sctx, 0); + ZL_ASSERT_NN(input); + ZL_ERR_IF_NE(ZL_Input_type(input), ZL_Type_serial, node_invalid_input); + const size_t byteSize = ZL_Input_contentSize(input); + const char* const content = (const char* const)ZL_Input_ptr(input); + + if (byteSize == 0) { + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &byteSize, 1, ZL_GRAPH_STORE, NULL)); + return ZL_returnSuccess(); + } + + ZL_GraphIDList const customGraphs = ZL_Segmenter_getCustomGraphs(sctx); + ZL_ASSERT_EQ(customGraphs.nbGraphIDs, 1); + ZL_GraphID const headGraph = customGraphs.graphids[0]; + // Note: assumes a positive chunkByteSizeMax is passed in. + ZL_TRY_LET_CONST( + size_t, + chunkByteSizeMax, + tryGetIntParam(sctx, ZL_CSV_CHUNK_BYTE_SIZE_MAX_ID)); + ZL_TRY_LET( + size_t, hasHeader, tryGetIntParam(sctx, ZL_PARSER_HAS_HEADER_PID)); + ZL_TRY_LET_CONST( + size_t, intSep, tryGetIntParam(sctx, ZL_PARSER_SEPARATOR_PID)); + ZL_ERR_IF( + intSep > 127, node_invalid_input, "Separator must be a char value"); + char sep = (char)intSep; + ZL_TRY_LET_CONST( + size_t, + useNullAwareParse, + tryGetIntParam(sctx, ZL_PARSER_USE_NULL_AWARE_PID)); + + const size_t chunkSize = ZL_MIN(byteSize, chunkByteSizeMax); + ZL_ERR_IF_GE(chunkSize, 1u << 30, node_invalid_input, "chunk size too big"); + // Each byte can produce up to 2 tokens (empty field + separator/newline). + const size_t maxNumTokens = 2 * chunkSize + 1; + ZL_CSV_TokenType* types = ZL_Segmenter_getScratchSpace( + sctx, maxNumTokens * sizeof(ZL_CSV_TokenType)); + ZL_ERR_IF_NULL(types, allocation); + uint32_t* sizes = + ZL_Segmenter_getScratchSpace(sctx, maxNumTokens * sizeof(uint32_t)); + ZL_ERR_IF_NULL(sizes, allocation); + uint32_t* cols = + ZL_Segmenter_getScratchSpace(sctx, maxNumTokens * sizeof(uint32_t)); + ZL_ERR_IF_NULL(cols, allocation); + + ZL_CSV_Lexer lexer; + ZL_CSV_Lexer_init( + &lexer, + ZL_Segmenter_getOperationContext(sctx), + content, + byteSize, + sep, + useNullAwareParse); + + while (!ZL_CSV_Lexer_finished(&lexer)) { + const char* const begin = lexer.src; + ZL_TRY_LET_CONST( + size_t, + numTokens, + ZL_CSV_Lexer_lex( + &lexer, + types, + sizes, + cols, + maxNumTokens, + chunkByteSizeMax)); + ZL_ERR_IF_EQ( + lexer.row, + 0, + node_invalid_input, + "CSV is not well formed: No newline found"); + const char* const end = lexer.src; + ZL_ERR_IF_EQ(numTokens, 0, logicError, "CSV lexer produced no tokens"); + if (end != lexer.end) { + ZL_ERR_IF_LT( + (size_t)(end - begin), + chunkByteSizeMax, + logicError, + "CSV chunk consumed fewer bytes than expected"); + // CSV lexer did not find a newline after maxNumTokens tokens have + // been parsed in a single chunk. We therefore judge this as a bad + // input and do not handle this case. + ZL_ERR_IF_NE( + types[numTokens - 1], + ZL_CSV_TokenType_Newline, + graph_parser_unhandledInput, + "CSV input cannot be chunked to the targeted chunk size"); + } + ZL_ERR_IF_ERR(SEGM_csvProcessChunk( + sctx, + headGraph, + (size_t)(end - begin), + types, + sizes, + cols, + numTokens, + lexer.numCols, + hasHeader)); + // Subsequent chunks have no header + hasHeader = false; + } + return ZL_returnSuccess(); +} + +ZL_RESULT_OF(ZL_GraphID) +ZL_CsvSegmenter_registerSegmenter( + ZL_Compressor* compressor, + size_t chunkByteSizeMax, + bool hasHeader, + char sep, + bool useNullAware, + const ZL_GraphID clusteringGraph) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor); + ZL_GraphID csvGraph = + ZL_CsvParser_registerGraph(compressor, clusteringGraph); + + ZL_IntParam intParams[] = { { + .paramId = ZL_PARSER_HAS_HEADER_PID, + .paramValue = hasHeader, + }, + { + .paramId = ZL_PARSER_SEPARATOR_PID, + .paramValue = sep, + }, + { + .paramId = ZL_PARSER_USE_NULL_AWARE_PID, + .paramValue = useNullAware, + }, + { + .paramId = + ZL_CSV_CHUNK_BYTE_SIZE_MAX_ID, + .paramValue = (int)chunkByteSizeMax, + } }; + ZL_LocalParams csvParams = (ZL_LocalParams){ + .intParams = { .intParams = intParams, .nbIntParams = 4 }, + }; + ZL_Type inputType = ZL_Type_serial; + ZL_GraphID segmenterBase = + ZL_Compressor_getGraph(compressor, "CSV Segmenter"); + if (segmenterBase.gid == ZL_GRAPH_ILLEGAL.gid) { + ZL_SegmenterDesc desc = { + .name = "!CSV Segmenter", + .segmenterFn = SEGM_csv, + .inputTypeMasks = &inputType, + .numInputs = 1, + .lastInputIsVariable = false, + .customGraphs = NULL, + .numCustomGraphs = 0, + .localParams = {}, + }; + segmenterBase = ZL_Compressor_registerSegmenter(compressor, &desc); + } + ZL_ParameterizedGraphDesc const csvGraphDesc = { + .graph = segmenterBase, + .localParams = &csvParams, + .customGraphs = &csvGraph, + .nbCustomGraphs = 1, + }; + ZL_GraphID segmenter = + ZL_Compressor_registerParameterizedGraph(compressor, &csvGraphDesc); + ZL_ERR_IF_EQ( + segmenter.gid, + ZL_GRAPH_ILLEGAL.gid, + GENERIC, + "Graph parameterization failed"); + return ZL_RESULT_WRAP_VALUE(ZL_GraphID, segmenter); +} + +ZL_RESULT_OF(ZL_GraphID) +ZL_CsvSegmenter_registerSegmenterNoChunks( + ZL_Compressor* compressor, + bool hasHeader, + char sep, + bool useNullAware, + const ZL_GraphID clusteringGraph) +{ + return ZL_CsvSegmenter_registerSegmenter( + compressor, + SIZE_MAX, + hasHeader, + sep, + useNullAware, + clusteringGraph); +} diff --git a/custom_parsers/csv/csv_segmenter.h b/custom_parsers/csv/csv_segmenter.h new file mode 100644 index 000000000..6483b4fd4 --- /dev/null +++ b/custom_parsers/csv/csv_segmenter.h @@ -0,0 +1,37 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_COMPRESS_SEGMENTERS_CSV_H +#define ZSTRONG_COMPRESS_SEGMENTERS_CSV_H + +#include "openzl/shared/portability.h" +#include "openzl/zl_segmenter.h" + +ZL_BEGIN_C_DECLS + +/** + * Registers the csv graph with a segmenter and returns the graph ID or error if + * failed. + * + * @param chunkByteSizeMax The maximum size of a chunk in bytes requested. + * @param clusterGraph The graph ID of the clustering graph to use. + */ +ZL_RESULT_OF(ZL_GraphID) +ZL_CsvSegmenter_registerSegmenter( + ZL_Compressor* compressor, + size_t chunkByteSizeMax, + bool hasHeader, + char sep, + bool useNullAware, + const ZL_GraphID clusteringGraph); + +ZL_RESULT_OF(ZL_GraphID) +ZL_CsvSegmenter_registerSegmenterNoChunks( + ZL_Compressor* compressor, + bool hasHeader, + char sep, + bool useNullAware, + const ZL_GraphID clusteringGraph); + +ZL_END_C_DECLS + +#endif // ZSTRONG_COMPRESS_SEGMENTERS_CSV_H diff --git a/custom_parsers/csv/tests/BUCK b/custom_parsers/csv/tests/BUCK index 138e3da03..009549f4c 100644 --- a/custom_parsers/csv/tests/BUCK +++ b/custom_parsers/csv/tests/BUCK @@ -1,14 +1,19 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_fuzzers", "zs_unittest") +load("../../../defs.bzl", "zs_fuzzers", "zs_unittest") oncall("data_compression") zs_unittest( name = "test", - srcs = ["lex_test.cpp"], + srcs = [ + "lex_test.cpp", + "segmenter_test.cpp", + ], deps = [ - "//data_compression/experimental/zstrong/custom_parsers/csv:csv_parser", + "..:csv_parser", + "../../../cpp:openzl_cpp", + "../../../tests:utils", ], ) @@ -20,9 +25,24 @@ zs_fuzzers( ("CsvLexerTest", "RandomInputFuzzer"), ], deps = [ + "..:csv_parser", + "../../../cpp:openzl_cpp", + "../../../tests/datagen:datagen", + "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", + ], +) + +zs_fuzzers( + srcs = [ + "CsvSegmenterFuzzer.cpp", + ], + ftest_names = [ + ("CsvSegmenterTest", "RandomInputFuzzer"), + ], + deps = [ + "..:csv_parser", + "../../../cpp:openzl_cpp", + "../../../tests/datagen:datagen", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers/csv:csv_parser", - "//data_compression/experimental/zstrong/tests/datagen:datagen", ], ) diff --git a/custom_parsers/csv/tests/CsvLexerFuzzer.cpp b/custom_parsers/csv/tests/CsvLexerFuzzer.cpp index 482efde70..205bf40c7 100644 --- a/custom_parsers/csv/tests/CsvLexerFuzzer.cpp +++ b/custom_parsers/csv/tests/CsvLexerFuzzer.cpp @@ -10,7 +10,7 @@ using namespace ::testing; using namespace facebook::security::lionhead::fdp; -using zstrong::tests::datagen::LionheadFDPWrapper; +using openzl::tests::datagen::LionheadFDPWrapper; namespace openzl::custom_parsers { diff --git a/custom_parsers/csv/tests/CsvSegmenterFuzzer.cpp b/custom_parsers/csv/tests/CsvSegmenterFuzzer.cpp new file mode 100644 index 000000000..73646a2e3 --- /dev/null +++ b/custom_parsers/csv/tests/CsvSegmenterFuzzer.cpp @@ -0,0 +1,56 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include "security/lionhead/utils/lib_ftest/fdp/fdp/fdp_impl.h" +#include "security/lionhead/utils/lib_ftest/ftest.h" + +#include "custom_parsers/csv/csv_profile.h" +#include "openzl/openzl.hpp" +#include "tests/datagen/random_producer/LionheadFDPWrapper.h" + +using namespace ::testing; +using namespace facebook::security::lionhead::fdp; +using openzl::tests::datagen::LionheadFDPWrapper; + +namespace openzl::custom_parsers { + +class CsvSegmenterTest : public ::testing::Test { + protected: + void roundtrip(std::string_view input) + { + std::string compressed; + try { + compressed = cctx_.compressSerial(input); + } catch (openzl::Exception&) { + return; + } + auto regen = dctx_.decompressSerial(compressed); + ASSERT_EQ(regen, input); + } + + CCtx cctx_{}; + DCtx dctx_{}; + Compressor compressor_{}; +}; + +template +LionheadFDPWrapper> rwFromFDP( + StructuredFDP& fdp) +{ + return LionheadFDPWrapper>(fdp); +} + +FUZZ_F(CsvSegmenterTest, RandomInputFuzzer) +{ + auto rw = rwFromFDP(f); + auto chunkSize = rw.u32_range("chunkSize", 200, 50000); + auto input = rw.all_remaining_bytes(); + auto gid = ZL_createGraph_genericCSVCompressorWithOptions( + compressor_.get(), chunkSize, false, ',', false); + compressor_.selectStartingGraph(gid); + cctx_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + cctx_.refCompressor(compressor_); + roundtrip(std::string_view((const char*)input.data(), input.size())); +} + +} // namespace openzl::custom_parsers diff --git a/custom_parsers/csv/tests/lex_test.cpp b/custom_parsers/csv/tests/lex_test.cpp index c03d0768f..02b4befa9 100644 --- a/custom_parsers/csv/tests/lex_test.cpp +++ b/custom_parsers/csv/tests/lex_test.cpp @@ -4,89 +4,350 @@ #include "custom_parsers/csv/csv_lexer.h" #include "openzl/zl_errors.h" +#include "tests/utils.h" using namespace ::testing; -TEST(LexTest, test) -{ - constexpr std::string_view str = - R"(H,2019GQ0000088,6,02600,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -H,2019GQ0000096,6,00700,3,01,1195583,1207712,0,1,2,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -H,2019GQ0000153,6,00800,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -)"; - - // clang-format off - constexpr std::array expectedStrLens = { - // row 1 - 1, 1, 13, 1, 1, 1, 5, 1, 1, 1, 2, 1, 7, 1, 7, 1, 1, 1, 1, 1, 1, 13, 1, 91, 1, 43, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - // row 2 - 1, 1, 13, 1, 1, 1, 5, 1, 1, 1, 2, 1, 7, 1, 7, 1, 1, 1, 1, 1, 1, 13, 1, 91, 1, 43, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - // row 3 - 1, 1, 13, 1, 1, 1, 5, 1, 1, 1, 2, 1, 7, 1, 7, 1, 1, 1, 1, 1, 1, 13, 1, 91, 1, 43, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }; - - constexpr std::array expectedDispatchIndices = { - 0, 237, 1, 237, 2, 237, 3, 237, 4, 237, 5, 237, 6, 237, 7, 237, 8, 237, 9, 237, 10, 237, 23, 237, 114, 237, 157, 237, 158, 237, 159, 237, 160, 237, 161, 237, 162, 237, 163, 237, 164, 237, 165, 237, 166, 237, 167, 237, 168, 237, 169, 237, 170, 237, 171, 237, 172, 237, 173, 237, 174, 237, 175, 237, 176, 237, 177, 237, 178, 237, 179, 237, 180, 237, 181, 237, 182, 237, 183, 237, 184, 237, 185, 237, 186, 237, 187, 237, 188, 237, 189, 237, 190, 237, 191, 237, 192, 237, 193, 237, 194, 237, 195, 237, 196, 237, 197, 237, 198, 237, 199, 237, 200, 237, 201, 237, 202, 237, 203, 237, 204, 237, 205, 237, 206, 237, 207, 237, 208, 237, 209, 237, 210, 237, 211, 237, 212, 237, 213, 237, 214, 237, 215, 237, 216, 237, 217, 237, 218, 237, 219, 237, 220, 237, 221, 237, 222, 237, 223, 237, 224, 237, 225, 237, 226, 237, 227, 237, 228, 237, 229, 237, 230, 237, 231, 237, 232, 237, 233, 237, 234, 237, 235, 237, 236, 237, - 0, 237, 1, 237, 2, 237, 3, 237, 4, 237, 5, 237, 6, 237, 7, 237, 8, 237, 9, 237, 10, 237, 23, 237, 114, 237, 157, 237, 158, 237, 159, 237, 160, 237, 161, 237, 162, 237, 163, 237, 164, 237, 165, 237, 166, 237, 167, 237, 168, 237, 169, 237, 170, 237, 171, 237, 172, 237, 173, 237, 174, 237, 175, 237, 176, 237, 177, 237, 178, 237, 179, 237, 180, 237, 181, 237, 182, 237, 183, 237, 184, 237, 185, 237, 186, 237, 187, 237, 188, 237, 189, 237, 190, 237, 191, 237, 192, 237, 193, 237, 194, 237, 195, 237, 196, 237, 197, 237, 198, 237, 199, 237, 200, 237, 201, 237, 202, 237, 203, 237, 204, 237, 205, 237, 206, 237, 207, 237, 208, 237, 209, 237, 210, 237, 211, 237, 212, 237, 213, 237, 214, 237, 215, 237, 216, 237, 217, 237, 218, 237, 219, 237, 220, 237, 221, 237, 222, 237, 223, 237, 224, 237, 225, 237, 226, 237, 227, 237, 228, 237, 229, 237, 230, 237, 231, 237, 232, 237, 233, 237, 234, 237, 235, 237, 236, 237, - 0, 237, 1, 237, 2, 237, 3, 237, 4, 237, 5, 237, 6, 237, 7, 237, 8, 237, 9, 237, 10, 237, 23, 237, 114, 237, 157, 237, 158, 237, 159, 237, 160, 237, 161, 237, 162, 237, 163, 237, 164, 237, 165, 237, 166, 237, 167, 237, 168, 237, 169, 237, 170, 237, 171, 237, 172, 237, 173, 237, 174, 237, 175, 237, 176, 237, 177, 237, 178, 237, 179, 237, 180, 237, 181, 237, 182, 237, 183, 237, 184, 237, 185, 237, 186, 237, 187, 237, 188, 237, 189, 237, 190, 237, 191, 237, 192, 237, 193, 237, 194, 237, 195, 237, 196, 237, 197, 237, 198, 237, 199, 237, 200, 237, 201, 237, 202, 237, 203, 237, 204, 237, 205, 237, 206, 237, 207, 237, 208, 237, 209, 237, 210, 237, 211, 237, 212, 237, 213, 237, 214, 237, 215, 237, 216, 237, 217, 237, 218, 237, 219, 237, 220, 237, 221, 237, 222, 237, 223, 237, 224, 237, 225, 237, 226, 237, 227, 237, 228, 237, 229, 237, 230, 237, 231, 237, 232, 237, 233, 237, 234, 237, 235, 237, 236, 237, - }; - - // clang-format on - std::vector stringLens(1100, 0); - std::vector dispatchIndices(1100, 0); - uint8_t nbColumns = 237; - char sep = ','; - - auto e = createNullAwareLexAndDispatch( - stringLens.data(), - dispatchIndices.data(), - str.data(), - str.length(), - nbColumns, - sep); - EXPECT_FALSE(ZL_isError(e)); - size_t nbStrs = ZL_validResult(e); - EXPECT_EQ(nbStrs, expectedStrLens.size()); - for (size_t i = 0; i < nbStrs; ++i) { - EXPECT_EQ(expectedStrLens[i], stringLens[i]); +class LexTest : public ::testing::Test { + public: + std::vector + lex(std::string_view csv, char sep = ',', bool isNullAware = false) + { + std::vector tokens; + ZL_CSV_Lexer lexer; + ZL_CSV_Lexer_init( + &lexer, NULL, csv.data(), csv.size(), sep, isNullAware); + while (!ZL_CSV_Lexer_finished(&lexer)) { + ZL_CSV_Token tok; + auto report = ZL_CSV_Lexer_lex( + &lexer, &tok.type, &tok.size, &tok.col, 1, 0); + ZL_REQUIRE_SUCCESS(report); + EXPECT_EQ(ZL_validResult(report), 1); + tokens.push_back(tok); + } + + // Validate that lexing in one go produces exactly the same result + { + std::vector types(tokens.size()); + std::vector sizes(tokens.size()); + std::vector cols(tokens.size()); + ZL_CSV_Lexer_init( + &lexer, NULL, csv.data(), csv.size(), sep, isNullAware); + auto report = ZL_CSV_Lexer_lex( + &lexer, + types.data(), + sizes.data(), + cols.data(), + tokens.size(), + size_t(-1)); + ZL_REQUIRE_SUCCESS(report); + EXPECT_EQ(ZL_validResult(report), tokens.size()); + for (size_t i = 0; i < tokens.size(); ++i) { + EXPECT_EQ(tokens[i].type, types[i]); + EXPECT_EQ(tokens[i].size, sizes[i]); + EXPECT_EQ(tokens[i].col, cols[i]); + } + } + + return tokens; } - for (size_t i = 0; i < nbStrs; ++i) { - EXPECT_EQ(expectedDispatchIndices[i], dispatchIndices[i]); + + bool + lexSucceeds(std::string_view csv, char sep = ',', bool isNullAware = false) + { + ZL_CSV_Lexer lexer; + ZL_CSV_Lexer_init( + &lexer, NULL, csv.data(), csv.size(), sep, isNullAware); + while (!ZL_CSV_Lexer_finished(&lexer)) { + ZL_CSV_Token tok; + auto report = ZL_CSV_Lexer_lex( + &lexer, &tok.type, &tok.size, &tok.col, 1, 0); + if (ZL_isError(report)) { + return false; + } + EXPECT_EQ(ZL_validResult(report), 1); + } + return true; } +}; + +TEST_F(LexTest, Empty) +{ + auto tokens = lex(""); + ASSERT_EQ(tokens.size(), 0); } -TEST(LexTest, singleLine) -{ - std::string inputNoNewline = "aaa,bb,c,\"d\""; - std::string input = inputNoNewline + "\n"; - std::vector expectedStringLens = { 3, 1, 2, 1, 1, 1, 3, 1 }; - std::vector expectedDispatchIndicess = { 0, 4, 1, 4, 2, 4, 3, 4 }; - std::vector stringLens(100, 0); - std::vector dispatchIndices(100, 0); - - auto e = createNullAwareLexAndDispatch( - stringLens.data(), - dispatchIndices.data(), - inputNoNewline.data(), - inputNoNewline.size(), - 4, - ','); - EXPECT_TRUE(ZL_isError(e)); - - e = createNullAwareLexAndDispatch( - stringLens.data(), - dispatchIndices.data(), - input.data(), - input.size(), - 4, - ','); - EXPECT_FALSE(ZL_isError(e)); - size_t nbStrs = ZL_validResult(e); - EXPECT_EQ(nbStrs, expectedStringLens.size()); - for (size_t i = 0; i < nbStrs; ++i) { - EXPECT_EQ(expectedStringLens[i], stringLens[i]); - } - for (size_t i = 0; i < nbStrs; ++i) { - EXPECT_EQ(expectedDispatchIndicess[i], dispatchIndices[i]); +TEST_F(LexTest, SingleRowAndCol) +{ + auto tokens = lex("a"); + ASSERT_EQ(tokens.size(), 1); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); +} + +TEST_F(LexTest, SingleRowAndColWithNewline) +{ + auto tokens = lex("a\n"); + ASSERT_EQ(tokens.size(), 2); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); + + tokens = lex("a"); + ASSERT_EQ(tokens.size(), 1); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); +} + +TEST_F(LexTest, SingleColumn) +{ + auto tokens = lex("a\nbb\n"); + ASSERT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 2); + EXPECT_EQ(tokens[2].col, 0); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[3].size, 1); + EXPECT_EQ(tokens[3].col, 0); +} + +TEST_F(LexTest, UnterminatedQuotedString) +{ + EXPECT_FALSE(lexSucceeds("\"a\nbb\n")); +} + +TEST_F(LexTest, QuotedString) +{ + auto tokens = lex("\"field,with,commas\",\"field\nwith\nnewline\"\n"); + ASSERT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 19); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 20); + EXPECT_EQ(tokens[2].col, 1); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[3].size, 1); + EXPECT_EQ(tokens[3].col, 0); +} + +TEST_F(LexTest, ConsecutiveSeparatorsNullAware) +{ + auto tokens = lex("a,,,,b\n", ',', true); + ASSERT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[1].size, 4); + EXPECT_EQ(tokens[1].col, 0); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 1); + EXPECT_EQ(tokens[2].col, 4); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[3].size, 1); + EXPECT_EQ(tokens[3].col, 0); +} + +TEST_F(LexTest, InconsistentColumnCounts) +{ + EXPECT_FALSE(lexSucceeds("a,b,c\nd,e\n")); + EXPECT_FALSE(lexSucceeds("a\nb,c\n")); +} + +TEST_F(LexTest, EmptyFieldsAtVariousPositions) +{ + auto tokens = lex(",b,c\n"); + ASSERT_EQ(tokens.size(), 6); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 0); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 1); + EXPECT_EQ(tokens[2].col, 1); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[4].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[4].size, 1); + EXPECT_EQ(tokens[4].col, 2); + EXPECT_EQ(tokens[5].type, ZL_CSV_TokenType_Newline); + + tokens = lex("a,,c\n"); + ASSERT_EQ(tokens.size(), 6); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 0); + EXPECT_EQ(tokens[2].col, 1); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[4].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[4].size, 1); + EXPECT_EQ(tokens[4].col, 2); + EXPECT_EQ(tokens[5].type, ZL_CSV_TokenType_Newline); + + tokens = lex("a,b,\n"); + ASSERT_EQ(tokens.size(), 6); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 1); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 1); + EXPECT_EQ(tokens[2].col, 1); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[4].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[4].size, 0); + EXPECT_EQ(tokens[4].col, 2); + EXPECT_EQ(tokens[5].type, ZL_CSV_TokenType_Newline); +} + +TEST_F(LexTest, AlternativeSeparators) +{ + auto tokens = lex("a,\t|\"|\"\n", '|'); + ASSERT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 3); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 3); + EXPECT_EQ(tokens[2].col, 1); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[3].size, 1); + EXPECT_EQ(tokens[3].col, 0); + + tokens = lex("a,|\t\"\t\"\n", '\t'); + ASSERT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 3); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 3); + EXPECT_EQ(tokens[2].col, 1); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[3].size, 1); + EXPECT_EQ(tokens[3].col, 0); +} + +TEST_F(LexTest, SrcSizeLimitBoundaryConditions) +{ + std::string_view csv = "a,b\nc,d\ne,f\n"; + + ZL_CSV_Lexer lexer; + ZL_CSV_Lexer_init(&lexer, NULL, csv.data(), csv.size(), ',', false); + + ZL_CSV_TokenType types[10]; + uint32_t sizes[10]; + uint32_t cols[10]; + + auto report = ZL_CSV_Lexer_lex(&lexer, types, sizes, cols, 10, 3); + ZL_REQUIRE_SUCCESS(report); + EXPECT_EQ(ZL_validResult(report), 4); + EXPECT_EQ(types[0], ZL_CSV_TokenType_Field); + EXPECT_EQ(types[1], ZL_CSV_TokenType_Sep); + EXPECT_EQ(types[2], ZL_CSV_TokenType_Field); + EXPECT_EQ(types[3], ZL_CSV_TokenType_Newline); + + EXPECT_FALSE(ZL_CSV_Lexer_finished(&lexer)); + + report = ZL_CSV_Lexer_lex(&lexer, types, sizes, cols, 10, SIZE_MAX); + ZL_REQUIRE_SUCCESS(report); + EXPECT_GT(ZL_validResult(report), 0); + EXPECT_TRUE(ZL_CSV_Lexer_finished(&lexer)); +} + +TEST_F(LexTest, BatchedLexingConsistency) +{ + auto tokens = lex("a,b,c\nd,e,f\n"); + ASSERT_EQ(tokens.size(), 12); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[4].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[5].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[6].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[7].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[8].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[9].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[10].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[11].type, ZL_CSV_TokenType_Newline); +} + +TEST_F(LexTest, FilesWithoutTrailingNewline) +{ + auto tokensWithNewline = lex("a,b,c\n"); + auto tokensWithoutNewline = lex("a,b,c"); + + ASSERT_EQ(tokensWithNewline.size(), 6); + ASSERT_EQ(tokensWithoutNewline.size(), 5); + + for (size_t i = 0; i < tokensWithoutNewline.size(); ++i) { + EXPECT_EQ(tokensWithoutNewline[i].type, tokensWithNewline[i].type); + EXPECT_EQ(tokensWithoutNewline[i].size, tokensWithNewline[i].size); + EXPECT_EQ(tokensWithoutNewline[i].col, tokensWithNewline[i].col); } } + +TEST_F(LexTest, EmptyRowsAndSingleColumnEdgeCases) +{ + auto tokens = lex("\n"); + ASSERT_EQ(tokens.size(), 2); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Newline); + + tokens = lex(",\n"); + ASSERT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Sep); + EXPECT_EQ(tokens[2].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[2].size, 0); + EXPECT_EQ(tokens[3].type, ZL_CSV_TokenType_Newline); +} + +TEST_F(LexTest, EscapedQuotesWithinQuotedFields) +{ + auto tokens = lex("\"He said \"\"Hello\"\" to me\"\n"); + ASSERT_EQ(tokens.size(), 2); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 25); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); +} + +TEST_F(LexTest, EscapedQuotesInMiddleOfUnquotedField) +{ + auto tokens = lex("x\"y\"z\"a\"\"b\"\"c\"d\n"); + ASSERT_EQ(tokens.size(), 2); + EXPECT_EQ(tokens[0].type, ZL_CSV_TokenType_Field); + EXPECT_EQ(tokens[0].size, 15); + EXPECT_EQ(tokens[0].col, 0); + EXPECT_EQ(tokens[1].type, ZL_CSV_TokenType_Newline); + EXPECT_EQ(tokens[1].size, 1); + EXPECT_EQ(tokens[1].col, 0); +} diff --git a/custom_parsers/csv/tests/segmenter_test.cpp b/custom_parsers/csv/tests/segmenter_test.cpp new file mode 100644 index 000000000..0387e4e97 --- /dev/null +++ b/custom_parsers/csv/tests/segmenter_test.cpp @@ -0,0 +1,130 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include + +#include "custom_parsers/csv/csv_profile.h" +#include "openzl/openzl.hpp" +#include "openzl/zl_errors.h" +#include "openzl/zl_reflection.h" + +#include "openzl/cpp/CompressIntrospectionHooks.hpp" + +using namespace ::testing; + +namespace openzl::custom_parsers { +class CsvSegmenterUnitTest : public ::testing::Test { + public: + void SetUp() override + { + auto gid = ZL_createGraph_genericCSVCompressorWithOptions( + compressor_.get(), kChunkSize, true, ',', true); + compressor_.selectStartingGraph(gid); + cctx_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + cctx_.refCompressor(compressor_); + } + + void roundtrip(std::string_view input) + { + std::string compressed(10000, '\0'); + auto csize = cctx_.compressSerial(compressed, input); + compressed.resize(csize); + auto regen = dctx_.decompressSerial(compressed); + ASSERT_EQ(regen, input); + } + + protected: + const size_t kChunkSize = 500; + CCtx cctx_{}; + DCtx dctx_{}; + Compressor compressor_{}; +}; + +class CsvSegmentTestingReaderHook : public CompressIntrospectionHooks { + public: + explicit CsvSegmentTestingReaderHook(std::string_view targetName) + : CompressIntrospectionHooks(), targetName_(targetName) + { + } + + void on_migraphEncode_start( + ZL_Graph* gctx, + const ZL_Compressor* compressor, + ZL_GraphID gid, + ZL_Edge* inputs[], + size_t nbInputs) override + { + std::string graphName = ZL_Compressor_Graph_getName(compressor, gid); + if (graphName.size() == 0 || graphName != targetName_) { + return; + } + EXPECT_EQ(nbInputs, 1); + auto input = ZL_Edge_getData(inputs[0]); + inputs_.emplace_back( + (const char*)ZL_Input_ptr(input), ZL_Input_numElts(input)); + } + + std::vector getInputs() const + { + return inputs_; + } + + private: + std::string_view targetName_; + std::vector inputs_; +}; + +TEST_F(CsvSegmenterUnitTest, EmptyInputRoundTrip) +{ + roundtrip(""); +} + +TEST_F(CsvSegmenterUnitTest, FixedCsvInputRoundTrip) +{ + constexpr std::string_view str = + R"(H,2019GQ0000088,6,02600,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +H,2019GQ0000096,6,00700,3,01,1195583,1207712,0,1,2,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +H,2019GQ0000153,6,00800,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +)"; + roundtrip(str); +} + +TEST_F(CsvSegmenterUnitTest, SegmenterGraphIsSerializable) +{ + auto serialized = compressor_.serialize(); + Compressor newCompressor; + // Make it so that the graph ID is different from originally + newCompressor.parameterizeGraph(ZL_GRAPH_CONSTANT, {}); + ZL_createGraph_genericCSVCompressor(newCompressor.get()); + newCompressor.deserialize(serialized); +} + +TEST_F(CsvSegmenterUnitTest, SegmenterDividesInputAsExpected) +{ + constexpr std::string_view str = + R"(H,2019GQ0000088,6,02600,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +H,2019GQ0000096,6,00700,3,01,1195583,1207712,0,1,2,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +H,2019GQ0000153,6,00800,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +)"; + constexpr std::string_view chunk1 = + R"(H,2019GQ0000088,6,02600,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +H,2019GQ0000096,6,00700,3,01,1195583,1207712,0,1,2,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +)"; + constexpr std::string_view chunk2 = + R"(H,2019GQ0000153,6,00800,3,01,1195583,1207712,0,1,3,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +)"; + // We want to read what is passed in the csv parser. The name happens to + // have suffix #12 based on registration ordering. + CsvSegmentTestingReaderHook hook("CSV Parser#12"); + ZL_CompressIntrospectionHooks* rawHooks = hook.getRawHooks(); + openzl::unwrap( + ZL_CCtx_attachIntrospectionHooks(cctx_.get(), rawHooks), + "Failed to attach introspection hooks", + cctx_.get()); + std::string compressed(10000, '\0'); + cctx_.compressSerial(compressed, str); + auto chunks = hook.getInputs(); + EXPECT_EQ(chunks[0], chunk1); + EXPECT_EQ(chunks[1], chunk2); +} + +} // namespace openzl::custom_parsers diff --git a/custom_parsers/dependency_registration.cpp b/custom_parsers/dependency_registration.cpp index 60db0430e..59d327598 100644 --- a/custom_parsers/dependency_registration.cpp +++ b/custom_parsers/dependency_registration.cpp @@ -1,45 +1,60 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +#include + +#include "openzl/common/logging.h" #include "openzl/cpp/Compressor.hpp" #include "openzl/cpp/poly/StringView.hpp" #include "custom_parsers/csv/csv_profile.h" #include "custom_parsers/dependency_registration.h" #include "custom_parsers/parquet/parquet_graph.h" -#include "custom_parsers/shared_components/clustering.h" namespace openzl::custom_parsers { void processDependencies(Compressor& compressor, poly::string_view serialized) { - const auto deps = compressor.getUnmetDependencies(serialized); - if (deps.graphNames.size() > 0) { - // Generic clustering graph - auto clustering = ZS2_createGraph_genericClustering(compressor.get()); - if (clustering == ZL_GRAPH_ILLEGAL) { - throw std::runtime_error( - "Failed to create generic clustering graph"); - } + std::unordered_set attemptedGraphDeps; - // Parquet graph - auto parquetResult = - ZL_Parquet_registerGraph(compressor.get(), ZL_GRAPH_STORE); - if (parquetResult == ZL_GRAPH_ILLEGAL) { - throw std::runtime_error("Failed to create parquet graph"); - } + while (true) { + const auto deps = compressor.getUnmetDependencies(serialized); + bool madeProgress = false; - // CSV graph - auto csvResult = ZL_createGraph_genericCSVCompressor(compressor.get()); - if (csvResult == ZL_GRAPH_ILLEGAL) { - throw std::runtime_error("Failed to create CSV graph"); - } + for (const auto& graphName : deps.graphNames) { + if (!attemptedGraphDeps.insert(graphName).second) { + continue; + } - // TODO register any additional non-standard graphs that may appear in a - // compressor - } + if (graphName == "Parquet Parser") { + auto parquetResult = ZL_Parquet_registerGraph( + compressor.get(), ZL_GRAPH_STORE); + if (parquetResult == ZL_GRAPH_ILLEGAL) { + throw std::runtime_error("Failed to create parquet graph"); + } + madeProgress = true; + } + + else if (graphName == "CSV Parser") { + auto csvResult = + ZL_createGraph_genericCSVCompressor(compressor.get()); + if (csvResult == ZL_GRAPH_ILLEGAL) { + throw std::runtime_error("Failed to create CSV graph"); + } + madeProgress = true; + } else { + ZL_LOG(WARN, + "processDependencies: unresolved graph dependency '%s'", + graphName.c_str()); + } + } - if (deps.nodeNames.size() > 0) { - // TODO register any non-standard nodes that may appear in a compressor + if (!madeProgress) { + if (deps.nodeNames.size() > 0) { + // TODO register any non-standard nodes that may appear in a + // compressor + } + return; + } } } std::unique_ptr createCompressorFromSerialized( diff --git a/custom_parsers/parquet/BUCK b/custom_parsers/parquet/BUCK index 3b9291d00..969687597 100644 --- a/custom_parsers/parquet/BUCK +++ b/custom_parsers/parquet/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxlibrary") +load("../../defs.bzl", "zs_cxxlibrary") oncall("data_compression") @@ -14,8 +14,8 @@ zs_cxxlibrary( srcs = ["thrift_compact_reader.cpp"], headers = ["thrift_compact_reader.h"], exported_deps = [ + "../..:zstronglib", ":thrift_types", - "//data_compression/experimental/zstrong:zstronglib", ], ) @@ -34,8 +34,8 @@ zs_cxxlibrary( srcs = ["parquet_lexer.cpp"], headers = ["parquet_lexer.h"], deps = [ + "../..:zstronglib", ":parquet_metadata", - "//data_compression/experimental/zstrong:zstronglib", ], ) @@ -44,7 +44,7 @@ zs_cxxlibrary( srcs = ["parquet_graph.c"], headers = ["parquet_graph.h"], deps = [ + "../..:zstronglib", ":parquet_lexer", - "//data_compression/experimental/zstrong:zstronglib", ], ) diff --git a/custom_parsers/parquet/parquet_graph.c b/custom_parsers/parquet/parquet_graph.c index b299b470e..7d13fbfd8 100644 --- a/custom_parsers/parquet/parquet_graph.c +++ b/custom_parsers/parquet/parquet_graph.c @@ -4,11 +4,14 @@ #include "custom_parsers/parquet/parquet_lexer.h" #include "openzl/compress/graphs/generic_clustering_graph.h" -#include "openzl/zl_dyngraph.h" #include "openzl/zl_errors.h" #include "openzl/zl_graph_api.h" +#include "openzl/zl_segmenter.h" -#define ZL_TRY_SET_EL(_var, _expr) ZL_TRY_SET_T(ZL_EdgeList, _var, _expr) +#define ZL_TRY_SET_EL(_var, _expr) ZL_TRY_SET(ZL_EdgeList, _var, _expr) + +#define ZL_PARQUET_TOKENS_PID 1 +#define ZL_PARQUET_CHUNK_SIZE_PID 2 // Run the conversion node for the given type and width. static ZL_Report @@ -50,84 +53,65 @@ runConversion(ZL_Edge* in, ZL_Edge** out, ZL_Type type, size_t width) return ZL_returnSuccess(); } -static ZL_Report parquetGraphInner( - ZL_Graph* graph, - ZL_Edge* ins[], - size_t nbIns, - ZL_ParquetLexer* lexer) +static ZL_Report parquetGraphFn(ZL_Graph* graph, ZL_Edge* ins[], size_t nbIns) { ZL_RESULT_DECLARE_SCOPE_REPORT(graph); - ZL_ERR_IF_NE(nbIns, 1, graph_invalidNumInputs); - ZL_Edge* edge = ins[0]; - ZL_Input const* const input = ZL_Edge_getData(edge); - const size_t size = ZL_Input_numElts(input); - ZL_ErrorContext* errCtx = ZL_GET_DEFAULT_ERROR_CONTEXT(graph); - // Will return an error if the input is not a valid Parquet file. - ZL_ERR_IF_ERR( - ZL_ParquetLexer_init(lexer, ZL_Input_ptr(input), size, errCtx)); + // Get the tokens + ZL_RefParam const tokensParam = + ZL_Graph_getLocalRefParam(graph, ZL_PARQUET_TOKENS_PID); + const ZL_ParquetToken* tokens = tokensParam.paramRef; + ZL_ERR_IF_NE(tokensParam.paramSize % sizeof(ZL_ParquetToken), 0, GENERIC); + size_t const nbTokens = tokensParam.paramSize / sizeof(ZL_ParquetToken); - // Allocate space for segment sizes. - ZL_TRY_LET_R(maxNbSegments, ZL_ParquetLexer_maxNumTokens(lexer, errCtx)); - ZL_ERR_IF_EQ(maxNbSegments, 0, corruption); + // Allocate space for the dispatch instructions size_t* const segmentSizes = - ZL_Graph_getScratchSpace(graph, maxNbSegments * sizeof(size_t)); + ZL_Graph_getScratchSpace(graph, nbTokens * sizeof(size_t)); uint32_t* const dispatchTags = - ZL_Graph_getScratchSpace(graph, maxNbSegments * sizeof(uint32_t)); + ZL_Graph_getScratchSpace(graph, nbTokens * sizeof(uint32_t)); // Allocate space for token metadata. Note: the tag here is different from // the "dispatch tag" above. This tag identifies the schema element that a // given data page belongs to. uint32_t* const tags = - ZL_Graph_getScratchSpace(graph, maxNbSegments * sizeof(uint32_t)); + ZL_Graph_getScratchSpace(graph, nbTokens * sizeof(uint32_t)); ZL_Type* const types = - ZL_Graph_getScratchSpace(graph, maxNbSegments * sizeof(ZL_Type)); + ZL_Graph_getScratchSpace(graph, nbTokens * sizeof(ZL_Type)); size_t* const widths = - ZL_Graph_getScratchSpace(graph, maxNbSegments * sizeof(size_t)); - - ZL_ERR_IF_NULL(segmentSizes, allocation); + ZL_Graph_getScratchSpace(graph, nbTokens * sizeof(size_t)); // Header stream metadata tags[0] = 0; types[0] = ZL_Type_serial; widths[0] = 1; - // Iterate over all the tokens in the Parquet file, and fill out - // segmentSizes and tags. All non-data pages are dispatched to the 0th - // output edge. All data pages are dispatched to their own output edge. - size_t nbSegments = 0; - uint32_t nbTags = 0; - while (!ZL_ParquetLexer_finished(lexer)) { - ZL_ParquetToken tokens[32] = { 0 }; - size_t nbTokens = 0; - ZL_TRY_SET_R(nbTokens, ZL_ParquetLexer_lex(lexer, tokens, 32, errCtx)); - for (size_t i = 0; i < nbTokens; ++i) { - ZL_ERR_IF_GE(nbSegments, maxNbSegments, GENERIC); - const ZL_ParquetToken token = tokens[i]; - bool isDataPage = token.type == ZL_ParquetTokenType_DataPage; - // Fill in dispatch instructions. - segmentSizes[nbSegments] = token.size; - dispatchTags[nbSegments] = isDataPage ? ++nbTags : 0; - - // Fill in token metadata. - if (isDataPage) { - tags[nbTags] = token.tag; - types[nbTags] = token.dataType; - widths[nbTags] = token.dataWidth; - } - ++nbSegments; + uint32_t nbTags = 0; + for (size_t i = 0; i < nbTokens; ++i) { + const ZL_ParquetToken token = tokens[i]; + bool isDataPage = token.type == ZL_ParquetTokenType_DataPage; + // Fill in dispatch instructions. + segmentSizes[i] = token.size; + dispatchTags[i] = isDataPage ? ++nbTags : 0; + + // Fill in token metadata. + if (isDataPage) { + tags[nbTags] = token.tag; + types[nbTags] = token.dataType; + widths[nbTags] = token.dataWidth; } } ZL_DispatchInstructions di = { .segmentSizes = segmentSizes, - .nbSegments = nbSegments, + .nbSegments = nbTokens, .tags = dispatchTags, .nbTags = nbTags + 1, }; // Split the input according to segmentSizes - ZL_TRY_LET_T(ZL_EdgeList, el, ZL_Edge_runDispatchNode(edge, &di)); + ZL_ERR_IF_NE(nbIns, 1, graph_invalidNumInputs); + ZL_Edge* const edge = ins[0]; + ZL_TRY_LET(ZL_EdgeList, el, ZL_Edge_runDispatchNode(edge, &di)); ZL_ERR_IF_NE(el.nbEdges, nbTags + 3, GENERIC); // Set the destination for the tags and segment sizes @@ -162,41 +146,172 @@ static ZL_Report parquetGraphInner( return ZL_returnSuccess(); } +static ZL_Report commitChunk( + ZL_Segmenter* seg, + size_t* size, + const ZL_ParquetToken* tokens, + size_t tokensSize, + ZL_GraphID parquetGraph) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(seg); + ZL_RefParam const tokensRef = { + .paramId = ZL_PARQUET_TOKENS_PID, + .paramRef = tokens, + .paramSize = tokensSize * sizeof(ZL_ParquetToken), + }; + ZL_LocalParams lParams = { .refParams = { .nbRefParams = 1, + .refParams = &tokensRef } }; + ZL_RuntimeGraphParameters const par = { + .localParams = &lParams, + }; + + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk(seg, size, 1, parquetGraph, &par)); + + return ZL_returnSuccess(); +} + +static ZL_Report parquetSegmenterInner( + ZL_Segmenter* seg, + ZL_ParquetLexer* lexer) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(seg); + size_t const nbIns = ZL_Segmenter_numInputs(seg); + ZL_ERR_IF_NE(nbIns, 1, graph_invalidNumInputs); + ZL_Input const* const input = ZL_Segmenter_getInput(seg, 0); + const size_t size = ZL_Input_numElts(input); + ZL_ErrorContext* errCtx = ZL_GET_DEFAULT_ERROR_CONTEXT(seg); + + // Will return an error if the input is not a valid Parquet file. + ZL_ERR_IF_ERR( + ZL_ParquetLexer_init(lexer, ZL_Input_ptr(input), size, errCtx)); + + // Get the custom graph + ZL_GraphIDList graphs = ZL_Segmenter_getCustomGraphs(seg); + ZL_ERR_IF_NE(graphs.nbGraphIDs, 1, GENERIC); + ZL_GraphID const parquetGraph = graphs.graphids[0]; + + // Get the max chunk size + size_t chunkSize = (size_t)ZL_Segmenter_getLocalIntParam( + seg, ZL_PARQUET_CHUNK_SIZE_PID) + .paramValue; + + // Allocate space for token metadata. + ZL_TRY_LET( + size_t, maxNbTokens, ZL_ParquetLexer_maxNumTokens(lexer, errCtx)); + size_t nbTokens = 0; + ZL_ParquetToken* const tokens = ZL_Segmenter_getScratchSpace( + seg, maxNbTokens * sizeof(ZL_ParquetToken)); + + ZL_ParquetToken* currTokensPtr = tokens; + size_t currTokensSize = 0; + size_t currChunkSize = 0; + while (!ZL_ParquetLexer_finished(lexer)) { + ZL_ERR_IF_GE(nbTokens, maxNbTokens, GENERIC); + ZL_ParquetToken* const token = currTokensPtr + currTokensSize; + ZL_ERR_IF_ERR(ZL_ParquetLexer_lex(lexer, token, 1, errCtx)); + + if (chunkSize != 0 && currChunkSize != 0 + && currChunkSize + token->size > chunkSize) { + ZL_ERR_IF_ERR(commitChunk( + seg, + &currChunkSize, + currTokensPtr, + currTokensSize, + parquetGraph)); + currTokensPtr += currTokensSize; + currTokensSize = 0; + currChunkSize = 0; + } + + currChunkSize += token->size; + currTokensSize += 1; + ++nbTokens; + } + + // Commit the last segment + ZL_ERR_IF_ERR(commitChunk( + seg, &currChunkSize, currTokensPtr, currTokensSize, parquetGraph)); + + return ZL_returnSuccess(); +} + // Wrapper around the inner graph function that allocates a lexer -static ZL_Report parquetGraphFn(ZL_Graph* graph, ZL_Edge* sctxs[], size_t nbIns) +static ZL_Report parquetSegmenterFn(ZL_Segmenter* seg) { - ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + ZL_RESULT_DECLARE_SCOPE_REPORT(seg); ZL_ParquetLexer* lexer = ZL_ParquetLexer_create(); ZL_ERR_IF_NULL(lexer, allocation); - ZL_Report ret = parquetGraphInner(graph, sctxs, nbIns, lexer); + ZL_Report ret = parquetSegmenterInner(seg, lexer); ZL_ParquetLexer_free(lexer); return ret; } -ZL_GraphID ZL_Parquet_registerGraph( +ZL_GraphID ZL_Parquet_registerGraph_withChunkSize( ZL_Compressor* compressor, - ZL_GraphID clusteringGraph) + ZL_GraphID clusteringGraph, + int chunkSize) { - ZL_GraphID parser = ZL_Compressor_getGraph(compressor, "Parquet Parser"); + ZL_RESULT_DECLARE_SCOPE_REPORT(compressor); - if (parser.gid == ZL_GRAPH_ILLEGAL.gid) { - // Register the anchor graph + // Register the dispatch graph + ZL_GraphID graph = ZL_Compressor_getGraph(compressor, "Parquet Graph"); + if (graph.gid == ZL_GRAPH_ILLEGAL.gid) { ZL_FunctionGraphDesc desc = { - .name = "!Parquet Parser", + .name = "!Parquet Graph", .graph_f = parquetGraphFn, .inputTypeMasks = (ZL_Type[]){ ZL_Type_serial }, .nbInputs = 1, + .customGraphs = &clusteringGraph, + .nbCustomGraphs = 1, }; - parser = ZL_Compressor_registerFunctionGraph(compressor, &desc); + graph = ZL_Compressor_registerFunctionGraph(compressor, &desc); } // Register the parameterized graph - ZL_ParameterizedGraphDesc const desc = { - .name = "Parquet Parser", - .graph = parser, + ZL_ParameterizedGraphDesc const graphDesc = { + .graph = graph, .customGraphs = &clusteringGraph, .nbCustomGraphs = 1, }; - return ZL_Compressor_registerParameterizedGraph(compressor, &desc); + ZL_GraphID parquetGraph = + ZL_Compressor_registerParameterizedGraph(compressor, &graphDesc); + + // Register the parser/segmenter + ZL_GraphID parser = ZL_Compressor_getGraph(compressor, "Parquet Parser"); + if (parser.gid == ZL_GRAPH_ILLEGAL.gid) { + // Register the anchor graph + ZL_SegmenterDesc desc = { + .name = "!Parquet Parser", + .segmenterFn = parquetSegmenterFn, + .inputTypeMasks = (ZL_Type[]){ ZL_Type_serial }, + .numInputs = 1, + }; + + parser = ZL_Compressor_registerSegmenter(compressor, &desc); + } + + // Register the parameterized graph + ZL_IntParam intParams[] = { { + .paramId = ZL_PARQUET_CHUNK_SIZE_PID, + .paramValue = chunkSize, + } }; + ZL_LocalParams params = (ZL_LocalParams){ + .intParams = { .intParams = intParams, .nbIntParams = 1 }, + }; + ZL_ParameterizedGraphDesc const parserDesc = { + .graph = parser, + .customGraphs = &parquetGraph, + .nbCustomGraphs = 1, + .localParams = ¶ms, + }; + return ZL_Compressor_registerParameterizedGraph(compressor, &parserDesc); +} + +ZL_GraphID ZL_Parquet_registerGraph( + ZL_Compressor* compressor, + ZL_GraphID clusteringGraph) +{ + return ZL_Parquet_registerGraph_withChunkSize( + compressor, clusteringGraph, 0); } diff --git a/custom_parsers/parquet/parquet_graph.h b/custom_parsers/parquet/parquet_graph.h index ecb4703b7..afb8abca8 100644 --- a/custom_parsers/parquet/parquet_graph.h +++ b/custom_parsers/parquet/parquet_graph.h @@ -22,6 +22,19 @@ ZL_GraphID ZL_Parquet_registerGraph( ZL_Compressor* compressor, ZL_GraphID clusteringGraph); +/** + * Registration function for the Parquet graph. + * + * @param compressor The compressor to register the graph with. + * @param clusteringGraph The clustering graph to use as a successor. + * @param chunkSize The size of the chunks to split the input into. The + * default is no chunking (set to 0). + */ +ZL_GraphID ZL_Parquet_registerGraph_withChunkSize( + ZL_Compressor* compressor, + ZL_GraphID clusteringGraph, + int chunkSize); + ZL_END_C_DECLS #endif diff --git a/custom_parsers/parquet/parquet_lexer.cpp b/custom_parsers/parquet/parquet_lexer.cpp index fa3fad88d..14a7dd7ef 100644 --- a/custom_parsers/parquet/parquet_lexer.cpp +++ b/custom_parsers/parquet/parquet_lexer.cpp @@ -95,6 +95,30 @@ lexFooter(ZL_ParquetLexer* lexer, ZL_ParquetToken* out, ZL_ErrorContext* errCtx) return ZL_returnSuccess(); } +/// Consume one RLE-encoded level block (4-byte LE size prefix + data) from the +/// current lexer position and shrink the page's remaining value-byte budget +/// accordingly. +ZL_Report consumeLevelData( + ZL_ParquetLexer* lexer, + ZL_ParquetToken* out, + Encoding encoding, + ZL_ErrorContext* errCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + ZL_ERR_IF_NE((int)encoding, (int)Encoding::RLE, node_invalid_input); + ZL_ERR_IF_LT(getRemaining(lexer), 4, node_invalid_input); + auto size = ZL_readLE32(lexer->currPtr); + lexer->currPtr += 4; + out->size += 4; + ZL_ERR_IF_LT(getRemaining(lexer), size, node_invalid_input); + lexer->currPtr += size; + out->size += size; + ZL_ERR_IF_LT( + (size_t)lexer->pageHeader->numBytes, size + 4, node_invalid_input); + lexer->pageHeader->numBytes -= size + 4; + return ZL_returnSuccess(); +} + ZL_Report lexPageHeader( ZL_ParquetLexer* lexer, ZL_ParquetToken* out, @@ -119,30 +143,20 @@ ZL_Report lexPageHeader( } // If we are in a data page, include the repetition and definition levels in - // the header + // the header (if present). if (lexer->pageHeader->pageType == PageType::DATA_PAGE) { - ZL_ERR_IF_NE( - (int)lexer->pageHeader->rl_encoding, - (int)Encoding::RLE, - node_invalid_input); - ZL_ERR_IF_NE( - (int)lexer->pageHeader->dl_encoding, - (int)Encoding::RLE, - node_invalid_input); - // Repetition and Definition levels - ZL_ERR_IF_LT(getRemaining(lexer), 4, node_invalid_input); - auto size = ZL_readLE32(lexer->currPtr); - advance(4); - ZL_ERR_IF_LT(getRemaining(lexer), size, node_invalid_input); - advance(size); - - // Adjust the expected data page bytes - ZL_ERR_IF_LT( - - (size_t)lexer->pageHeader->numBytes, - size + 4, - node_invalid_input); - lexer->pageHeader->numBytes -= size + 4; + auto& chunkMeta = getChunkMeta(lexer); + auto schemaMeta = getSchemaMeta(lexer, chunkMeta.path_in_schema); + ZL_ERR_IF_NULL(schemaMeta, GENERIC, "Unknown schema path"); + + if (schemaMeta->hasRepetitionLevels) { + ZL_ERR_IF_ERR(consumeLevelData( + lexer, out, lexer->pageHeader->rl_encoding, errCtx)); + } + if (schemaMeta->hasDefinitionLevels) { + ZL_ERR_IF_ERR(consumeLevelData( + lexer, out, lexer->pageHeader->dl_encoding, errCtx)); + } } lexer->chunkLexed += out->size; @@ -258,6 +272,10 @@ lexOne(ZL_ParquetLexer* lexer, ZL_ParquetToken* out, ZL_ErrorContext* errCtx) ZL_ERR_IF_LT(chunkRemaining, 0, node_invalid_input); ZL_ERR_IF_LT( getRemaining(lexer), (size_t)chunkRemaining, node_invalid_input); + ZL_ERR_IF_GE( + lexer->chunkIdx, + lexer->fileMetadata->columnChunks.size(), + node_invalid_input); if (!lexer->pageHeader) { return lexPageHeader(lexer, out, errCtx); diff --git a/custom_parsers/parquet/parquet_lexer.h b/custom_parsers/parquet/parquet_lexer.h index 5f1c19955..b806c5274 100644 --- a/custom_parsers/parquet/parquet_lexer.h +++ b/custom_parsers/parquet/parquet_lexer.h @@ -4,8 +4,8 @@ #define CUSTOM_PARSERS_PARQUET_LEXER_H #include "openzl/shared/portability.h" +#include "openzl/zl_data.h" #include "openzl/zl_errors.h" -#include "openzl/zl_stream.h" ZL_BEGIN_C_DECLS diff --git a/custom_parsers/parquet/parquet_metadata.cpp b/custom_parsers/parquet/parquet_metadata.cpp index db0324615..7db00e618 100644 --- a/custom_parsers/parquet/parquet_metadata.cpp +++ b/custom_parsers/parquet/parquet_metadata.cpp @@ -2,6 +2,7 @@ #include "parquet_metadata.h" +#include #include #include @@ -271,12 +272,35 @@ uint32_t readDataPageHeader(ThriftCompactReader& reader, PageHeader& header) return read; } +enum class RepetitionType : uint32_t { + REQUIRED = 0, + OPTIONAL = 1, + REPEATED = 2, +}; + +RepetitionType getRepetitionType(int32_t val) +{ + switch (val) { + case 0: + return RepetitionType::REQUIRED; + case 1: + return RepetitionType::OPTIONAL; + case 2: + return RepetitionType::REPEATED; + default: + throw std::runtime_error("Invalid Parquet Repetition Type!"); + } +} + struct SchemaElement { std::string name; bool isLeaf = false; /// Populated for leaf nodes DataType type; int32_t typeWidth = 0; + /// Repetition type of this element. Defaults to REQUIRED, which is the + /// default for the root element in the parquet schema. + RepetitionType repetitionType = RepetitionType::REQUIRED; // Populated for non-leaf nodes int32_t numChildren = 0; @@ -309,6 +333,13 @@ uint32_t readSchemaElement(ThriftCompactReader& reader, SchemaElement& e) read += reader.readI32(e.typeWidth); break; } + case 3: /* Repetition Type */ { + throwIfTTypeNE(type, TType::T_I32); + int32_t reptype; + read += reader.readI32(reptype); + e.repetitionType = getRepetitionType(reptype); + break; + } case 4: /* Name */ { throwIfTTypeNE(type, TType::T_STRING); read += reader.readString(e.name); @@ -335,31 +366,40 @@ void populateSchemaMetadata( if (schemaElements.empty()) { return; } - std::stack> paths( - { std::tuple(schemaElements.front().numChildren, SchemaPath()) }); + // Stack tuple: remaining children under this parent, the parent's path, + // and whether any ancestor on this path is OPTIONAL/REPEATED (definition + // levels) or REPEATED (repetition levels). + std::stack> paths; + paths.emplace( + schemaElements.front().numChildren, SchemaPath(), false, false); schemaElements.erase(schemaElements.begin()); for (auto& e : schemaElements) { if (paths.empty()) { throw std::runtime_error("Invalid schema!"); } - auto& [numChildren, parentPath] = paths.top(); - auto path = parentPath; + auto& [numChildren, parentPath, parentHasDef, parentHasRep] = + paths.top(); + auto path = parentPath; path.push_back(e.name); - numChildren -= 1; - - if (numChildren == 0) { - paths.pop(); + bool hasDef = + parentHasDef || (e.repetitionType != RepetitionType::REQUIRED); + bool hasRep = + parentHasRep || (e.repetitionType == RepetitionType::REPEATED); + if (--numChildren == 0) { + paths.pop(); // invalidates parent* references above } if (!e.isLeaf) { - paths.emplace(e.numChildren, path); + paths.emplace(e.numChildren, path, hasDef, hasRep); continue; } SchemaMetadata m = { - .type = e.type, - .typeWidth = (uint32_t)e.typeWidth, + .type = e.type, + .typeWidth = (uint32_t)e.typeWidth, + .hasDefinitionLevels = hasDef, + .hasRepetitionLevels = hasRep, }; auto it = schemaMetadata.emplace(SchemaPath(path), m); diff --git a/custom_parsers/parquet/parquet_metadata.h b/custom_parsers/parquet/parquet_metadata.h index 7b7aed641..b4b26cc0f 100644 --- a/custom_parsers/parquet/parquet_metadata.h +++ b/custom_parsers/parquet/parquet_metadata.h @@ -36,6 +36,12 @@ struct SchemaMetadata { DataType type = (DataType)-1; /// The size of the data type in bytes uint32_t typeWidth = 0; + /// True when this leaf has any OPTIONAL or REPEATED ancestor; data pages + /// for the column then contain a definition-level block. + bool hasDefinitionLevels = false; + /// True when this leaf has any REPEATED ancestor; data pages for the + /// column then contain a repetition-level block. + bool hasRepetitionLevels = false; }; struct FileMetadata { diff --git a/custom_parsers/parquet/tests/BUCK b/custom_parsers/parquet/tests/BUCK index 9c50fd517..674cf060c 100644 --- a/custom_parsers/parquet/tests/BUCK +++ b/custom_parsers/parquet/tests/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxlibrary", "zs_fuzzers", "zs_unittest") +load("../../../defs.bzl", "relative_headers", "zs_cxxlibrary", "zs_fuzzers", "zs_unittest") oncall("data_compression") @@ -19,9 +19,8 @@ zs_cxxlibrary( ], deps = ["fbsource//xplat/security/lionhead/utils/lib_ftest/fdp:lib"], exported_deps = [ + "..:parquet_metadata", "fbsource//third-party/apache-arrow:arrow", - "//data_compression/experimental/zstrong/custom_parsers/parquet:parquet_metadata", - "//data_compression/experimental/zstrong/tests:fuzz_utils", ], ) @@ -36,10 +35,10 @@ zs_unittest( "-Wno-cast-qual", ], deps = [ + "..:parquet_lexer", + "../../..:zstronglib", "fbsource//third-party/apache-arrow:arrow", ":test_utils", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_parsers/parquet:parquet_lexer", ], ) @@ -47,14 +46,18 @@ zs_fuzzers( srcs = [ "fuzz_parquet_lexer.cpp", ], + headers = relative_headers([ + "fuzz_utils.h", + ]), + header_namespace = "", ftest_names = [ ("ParquetLexerTest", "FuzzLexerRandomInput"), ("ParquetLexerTest", "FuzzLexerValidInput"), ], deps = [ - "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", + "..:parquet_lexer", + "../../..:zstronglib", + "../../../tests:fuzz_utils", ":test_utils", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_parsers/parquet:parquet_lexer", ], ) diff --git a/custom_parsers/parquet/tests/fuzz_parquet_lexer.cpp b/custom_parsers/parquet/tests/fuzz_parquet_lexer.cpp index 3e9664866..b52faae43 100644 --- a/custom_parsers/parquet/tests/fuzz_parquet_lexer.cpp +++ b/custom_parsers/parquet/tests/fuzz_parquet_lexer.cpp @@ -1,8 +1,9 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. #include "custom_parsers/parquet/parquet_lexer.h" +#include "custom_parsers/parquet/tests/fuzz_utils.h" #include "custom_parsers/parquet/tests/test_utils.h" #include "openzl/common/errors_internal.h" -#include "security/lionhead/utils/lib_ftest/ftest.h" + namespace zstrong { namespace parquet { namespace testing { diff --git a/custom_parsers/parquet/tests/fuzz_utils.h b/custom_parsers/parquet/tests/fuzz_utils.h new file mode 100644 index 000000000..4de7010f9 --- /dev/null +++ b/custom_parsers/parquet/tests/fuzz_utils.h @@ -0,0 +1,181 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include +#include +#include +#include + +#include "custom_parsers/parquet/tests/test_utils.h" +#include "tests/fuzz_utils.h" + +namespace zstrong { +namespace parquet { +namespace testing { +using namespace facebook::security::lionhead::fdp; + +template +std::shared_ptr gen_arrow_field( + StructuredFDP& f, + size_t maxDepth, + size_t depth, + size_t idx) +{ + bool isLeaf = maxDepth == depth ? true : f.coin("is_leaf"); + // Hack to enforce unique names for the same struct + auto name = openzl::tests::gen_str(f, "field_name", Range(1, 10)); + name += std::to_string(name.size()) + std::to_string(idx); + + std::shared_ptr type; + + if (isLeaf) { + auto fixed = arrow::fixed_size_binary(1); + type = f.choices( + "data_type", + { arrow::boolean(), + arrow::int32(), + arrow::int64(), + arrow::float32(), + arrow::float64(), + arrow::utf8(), + fixed }); + if (type == fixed) { + type = arrow::fixed_size_binary( + f.u16_range("fixed_len_byte_array_width", 1, 32)); + } + } else { + size_t numChildren = f.u16_range("num_children", 1, 5); + std::vector> fields(numChildren); + for (size_t i = 0; i < numChildren; ++i) { + fields[i] = gen_arrow_field(f, maxDepth, depth + 1, i); + } + type = arrow::struct_(fields); + } + + return arrow::field(std::move(name), std::move(type), f.coin("nullable")); +}; + +template +std::shared_ptr gen_arrow_schema( + StructuredFDP& f, + size_t maxDepth = 0) +{ + // Recursively generate children + size_t numChildren = f.u8_range("num_children", 1, 5); + std::vector> fields(numChildren); + for (size_t i = 0; i < numChildren; ++i) { + fields[i] = gen_arrow_field(f, maxDepth, 0, i); + } + return arrow::schema(std::move(fields)); +}; + +template +std::vector> gen_vec( + StructuredFDP& f, + std::string& name, + size_t numElts, + bool nullable) +{ + std::vector> vec(numElts); + for (size_t i = 0; i < numElts; ++i) { + if (!f.has_more_data()) { + vec[i] = nullable ? std::optional{} : std::optional(T{}); + } else if (nullable && f.coin("null")) { + vec[i] = std::nullopt; + } else { + vec[i] = Uniform().gen(name, f); + } + } + return vec; +} + +template +std::vector> gen_str_vec( + StructuredFDP& f, + std::string& name, + size_t numElts, + LenDist lenDist, + bool nullable) +{ + std::vector> vec(numElts); + // Default value for non-nullable elements once the FDP is exhausted. + std::string defaultStr(lenDist.gen(name, f), '\0'); + for (size_t i = 0; i < numElts; ++i) { + if (!f.has_more_data()) { + vec[i] = nullable ? std::optional{} + : std::optional(defaultStr); + } else if (nullable && f.coin("null")) { + vec[i] = std::nullopt; + } else { + vec[i] = openzl::tests::gen_str(f, name, lenDist); + } + } + return vec; +} + +template +std::shared_ptr gen_array_from_field( + StructuredFDP& f, + const std::shared_ptr& field, + size_t numElts) +{ + auto type = field->type(); + auto typeName = type->name(); + bool nullable = field->nullable(); + + if (typeName == "bool") { + return to_arrow_array( + gen_vec(f, typeName, numElts, nullable)); + } else if (typeName == "int32") { + return to_arrow_array( + gen_vec(f, typeName, numElts, nullable)); + } else if (typeName == "int64") { + return to_arrow_array( + gen_vec(f, typeName, numElts, nullable)); + } else if (typeName == "float") { + return to_arrow_array( + gen_vec(f, typeName, numElts, nullable)); + } else if (typeName == "double") { + return to_arrow_array( + gen_vec(f, typeName, numElts, nullable)); + } else if (typeName == "utf8") { + return to_arrow_array(gen_str_vec( + f, typeName, numElts, Range(1, 100), nullable)); + } else if (typeName == "fixed_size_binary") { + auto width = type->byte_width(); + return to_arrow_array( + gen_str_vec( + f, typeName, numElts, Const(width), nullable), + width); + } else if (typeName == "struct") { + std::vector> arrays; + for (const auto& childField : field->type()->fields()) { + arrays.push_back(gen_array_from_field(f, childField, numElts)); + } + return std::make_shared( + arrow::StructArray(type, numElts, arrays, nullptr, 0, 0)); + } else { + throw std::runtime_error("Unsupported type: " + typeName); + } +}; + +template +std::string gen_parquet_from_schema( + StructuredFDP& f, + const std::shared_ptr& schema) +{ + size_t numFields = schema->fields().size(); + std::vector> arrays(numFields); + + size_t numElts = f.u32_range("num_elts", 1, 1000); + + for (size_t i = 0; i < numFields; i++) { + arrays[i] = gen_array_from_field(f, schema->fields()[i], numElts); + } + return to_canonical_parquet(arrow::Table::Make(schema, arrays)); +}; + +} // namespace testing +} // namespace parquet +} // namespace zstrong diff --git a/custom_parsers/parquet/tests/test_parquet_lexer.cpp b/custom_parsers/parquet/tests/test_parquet_lexer.cpp index 8e8a925a3..f0a384635 100644 --- a/custom_parsers/parquet/tests/test_parquet_lexer.cpp +++ b/custom_parsers/parquet/tests/test_parquet_lexer.cpp @@ -19,15 +19,15 @@ namespace parquet { namespace testing { namespace { -std::shared_ptr generate_table() +std::shared_ptr generate_table(bool nullable = true) { auto i64array = to_arrow_array({ 100, 200, 300, 400, 500 }); auto strarray = to_arrow_array( { "hello", "world", "my", "name", "is" }); - std::shared_ptr schema = - arrow::schema({ arrow::field("int", arrow::int64()), - arrow::field("str", arrow::utf8()) }); + std::shared_ptr schema = arrow::schema( + { arrow::field("int", arrow::int64(), nullable), + arrow::field("str", arrow::utf8(), nullable) }); return arrow::Table::Make(schema, { i64array, strarray }); } @@ -43,9 +43,9 @@ std::shared_ptr generate_nested_table() arrow::struct_({ { "int", arrow::int32() }, { "struct", i128 } }); auto level1_t = arrow::struct_({ { "str", arrow::utf8() }, { "2", level2_t } }); - std::shared_ptr schema = - arrow::schema({ arrow::field("int", arrow::int64()), - arrow::field("1", level1_t) }); + std::shared_ptr schema = arrow::schema( + { arrow::field("int", arrow::int64()), + arrow::field("1", level1_t) }); // Fill in level 2 auto i32array = to_arrow_array({ 1, 2, 3, 4, 5 }); @@ -194,6 +194,34 @@ TEST(ParquetLexerTest, TestLexValidParquet) ZL_ParquetLexer_free(lexer); } +TEST(ParquetLexerTest, TestLexRequiredParquet) +{ + auto lexer = ZL_ParquetLexer_create(); + EXPECT_NE(lexer, nullptr); + + auto input = to_canonical_parquet(generate_table(false /* nullable */), 3); + + ZL_REQUIRE_SUCCESS( + ZL_ParquetLexer_init(lexer, input.data(), input.size(), nullptr)); + + auto tokens = std::vector(15); + + auto const res = + ZL_ParquetLexer_lex(lexer, tokens.data(), tokens.size(), nullptr); + EXPECT_FALSE(ZL_isError(res)); + EXPECT_TRUE(ZL_ParquetLexer_finished(lexer)); + auto const numTokens = ZL_validResult(res); + EXPECT_LT(numTokens, tokens.size()); + tokens.resize(numTokens); + + std::vector columns = { { { "int" }, ZL_Type_numeric, 8 }, + { { "str" }, ZL_Type_serial, 1 } }; + + validateTokens(tokens, input, columns, 2); + + ZL_ParquetLexer_free(lexer); +} + TEST(ParquetLexerTest, TestLexNestedParquet) { auto lexer = ZL_ParquetLexer_create(); diff --git a/custom_parsers/parquet/tests/test_utils.cpp b/custom_parsers/parquet/tests/test_utils.cpp index 9201d8b2e..4ae5cda71 100644 --- a/custom_parsers/parquet/tests/test_utils.cpp +++ b/custom_parsers/parquet/tests/test_utils.cpp @@ -22,8 +22,13 @@ std::string to_canonical_parquet( ->disable_write_page_index() ->encoding(::parquet::Encoding::PLAIN) ->build(); - PARQUET_THROW_NOT_OK(::parquet::arrow::WriteTable( - *table, arrow::default_memory_pool(), out, group_size, props)); + PARQUET_THROW_NOT_OK( + ::parquet::arrow::WriteTable( + *table, + arrow::default_memory_pool(), + out, + group_size, + props)); PARQUET_ASSIGN_OR_THROW(auto buffer, out->Finish()); return buffer->ToString(); } diff --git a/custom_parsers/parquet/tests/test_utils.h b/custom_parsers/parquet/tests/test_utils.h index 72718aa19..b6d060a3d 100644 --- a/custom_parsers/parquet/tests/test_utils.h +++ b/custom_parsers/parquet/tests/test_utils.h @@ -6,13 +6,10 @@ #include #include #include -#include "security/lionhead/utils/lib_ftest/fdp/fdp/fdp_impl.h" -#include "tests/fuzz_utils.h" namespace zstrong { namespace parquet { namespace testing { -using namespace facebook::security::lionhead::fdp; std::string to_canonical_parquet( const std::shared_ptr table, @@ -65,148 +62,6 @@ std::shared_ptr to_arrow_array( return result; } -template -std::shared_ptr gen_arrow_field( - StructuredFDP& f, - size_t maxDepth, - size_t depth, - size_t idx) -{ - bool isLeaf = maxDepth == depth ? true : f.coin("is_leaf"); - // Hack to enforce unique names for the same struct - auto name = tests::gen_str(f, "field_name", Range(1, 10)); - name += std::to_string(name.size()) + std::to_string(idx); - - std::shared_ptr type; - - if (isLeaf) { - auto fixed = arrow::fixed_size_binary(1); - type = f.choices( - "data_type", - { arrow::boolean(), - arrow::int32(), - arrow::int64(), - arrow::float32(), - arrow::float64(), - arrow::utf8(), - fixed }); - if (type == fixed) { - type = arrow::fixed_size_binary( - f.u16_range("fixed_len_byte_array_width", 1, 32)); - } - } else { - size_t numChildren = f.u16_range("num_children", 1, 10); - std::vector> fields(numChildren); - for (size_t i = 0; i < numChildren; ++i) { - fields[i] = gen_arrow_field(f, maxDepth, depth + 1, i); - } - type = arrow::struct_(fields); - } - - return arrow::field(std::move(name), std::move(type)); -}; - -template -std::shared_ptr gen_arrow_schema( - StructuredFDP& f, - size_t maxDepth = 0) -{ - // Recursively generate children - size_t numChildren = f.u8_range("num_children", 1, 20); - std::vector> fields(numChildren); - for (size_t i = 0; i < numChildren; ++i) { - fields[i] = gen_arrow_field(f, maxDepth, 0, i); - } - return arrow::schema(std::move(fields)); -}; - -template -std::vector> -gen_vec(StructuredFDP& f, std::string& name, size_t numElts) -{ - std::vector> vec(numElts); - for (size_t i = 0; i < numElts; ++i) { - if (!f.has_more_data() || f.coin("null")) { - vec[i] = std::nullopt; - } else { - vec[i] = Uniform().gen(name, f); - } - } - return vec; -} - -template -std::vector> gen_str_vec( - StructuredFDP& f, - std::string& name, - size_t numElts, - LenDist lenDist) -{ - std::vector> vec(numElts); - for (size_t i = 0; i < numElts; ++i) { - if (!f.has_more_data() || f.coin("null")) { - vec[i] = std::nullopt; - } else { - vec[i] = tests::gen_str(f, name, lenDist); - } - } - return vec; -} - -template -std::shared_ptr gen_array_from_field( - StructuredFDP& f, - const std::shared_ptr& field, - size_t numElts) -{ - auto type = field->type(); - auto typeName = type->name(); - - if (typeName == "bool") { - return to_arrow_array(gen_vec(f, typeName, numElts)); - } else if (typeName == "int32") { - return to_arrow_array(gen_vec(f, typeName, numElts)); - } else if (typeName == "int64") { - return to_arrow_array(gen_vec(f, typeName, numElts)); - } else if (typeName == "float") { - return to_arrow_array(gen_vec(f, typeName, numElts)); - } else if (typeName == "double") { - return to_arrow_array(gen_vec(f, typeName, numElts)); - } else if (typeName == "utf8") { - return to_arrow_array( - gen_str_vec(f, typeName, numElts, Range(1, 100))); - } else if (typeName == "fixed_size_binary") { - auto width = type->byte_width(); - return to_arrow_array( - gen_str_vec(f, typeName, numElts, Const(width)), width); - } else if (typeName == "struct") { - std::vector> arrays; - for (const auto& field : field->type()->fields()) { - arrays.push_back(gen_array_from_field(f, field, numElts)); - } - return std::make_shared( - arrow::StructArray(type, numElts, arrays, nullptr, 0, 0)); - } else { - throw std::runtime_error("Unsupported type: " + typeName); - } -}; - -template -std::string gen_parquet_from_schema( - StructuredFDP& f, - const std::shared_ptr& schema) -{ - size_t numFields = schema->fields().size(); - std::vector> arrays(numFields); - - size_t numElts = f.u32_range("num_elts", 1, 5000); - - for (size_t i = 0; i < numFields; i++) { - arrays[i] = gen_array_from_field(f, schema->fields()[i], numElts); - } - return to_canonical_parquet(arrow::Table::Make(schema, arrays)); -}; - } // namespace testing } // namespace parquet } // namespace zstrong diff --git a/custom_parsers/pytorch_model_compressor.cpp b/custom_parsers/pytorch_model_compressor.cpp index b8d7ba151..b1d1e8584 100644 --- a/custom_parsers/pytorch_model_compressor.cpp +++ b/custom_parsers/pytorch_model_compressor.cpp @@ -16,12 +16,14 @@ constexpr size_t kRepeats = 10; int main(int argc, char** argv) { auto init = folly::Init(&argc, &argv); - if (argc < 2 || argc > 3) { + if (argc < 3 || argc > 4) { return 1; } + const unsigned formatVersion = std::stoul(argv[1]); + std::string src; - if (!folly::readFile(argv[1], src)) { + if (!folly::readFile(argv[2], src)) { fprintf(stderr, "Failed to read input file: %s\n", argv[2]); return 1; } @@ -36,7 +38,7 @@ int main(int argc, char** argv) std::string compressed(ZL_compressBound(src.size()), '\0'); try { cgraph.unwrap(ZL_Compressor_setParameter( - cgraph.get(), ZL_CParam_formatVersion, 14)); + cgraph.get(), ZL_CParam_formatVersion, formatVersion)); cgraph.unwrap( ZL_Compressor_selectStartingGraphID(cgraph.get(), graphID)); cctx.unwrap(ZL_CCtx_refCompressor(cctx.get(), cgraph.get())); @@ -71,7 +73,7 @@ int main(int argc, char** argv) return 1; } - std::string outFile = argc == 3 ? argv[2] : (std::string(argv[1]) + ".zs"); + std::string outFile = argc == 4 ? argv[3] : (std::string(argv[2]) + ".zs"); if (!folly::writeFile(compressed, outFile.c_str())) { fprintf(stderr, "Failed to write output file: %s\n", outFile.c_str()); return 1; diff --git a/custom_parsers/pytorch_model_parser.c b/custom_parsers/pytorch_model_parser.c index 8d6d6614f..2814a29ea 100644 --- a/custom_parsers/pytorch_model_parser.c +++ b/custom_parsers/pytorch_model_parser.c @@ -9,6 +9,16 @@ #include "openzl/shared/estimate.h" #include "openzl/zl_errors.h" #include "openzl/zl_graph_api.h" +#include "openzl/zl_segmenter.h" +#include "openzl/zl_version.h" + +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +static const size_t kMultiplier = 4; +#else +static const size_t kMultiplier = 8 * 1024; +#endif +static const size_t kMaxSegmentSize = 128 * kMultiplier; +static const size_t kMaxChunkSize = 1024 * kMultiplier; typedef enum { PytorchModelSuccessor_U8 = 0, @@ -21,13 +31,13 @@ typedef enum { PytorchModelSuccessor_NumSuccessors = 7, } PytorchModelSuccessor; +#define PYTORCH_SEGMENT_SIZES_PID 0 +#define PYTORCH_SEGMENT_TAGS_PID 1 + static PytorchModelSuccessor selectSuccessor(const char* ptr, size_t size) { const size_t width = ZL_guessFloatWidth(ptr, size); switch (width) { - default: - ZL_ASSERT_FAIL("unreachable"); - ZL_FALLTHROUGH; case 1: return PytorchModelSuccessor_U8; case 2: @@ -36,6 +46,9 @@ static PytorchModelSuccessor selectSuccessor(const char* ptr, size_t size) return PytorchModelSuccessor_F32; case 8: return PytorchModelSuccessor_F64; + default: + ZL_ASSERT_FAIL("unreachable"); + return PytorchModelSuccessor_U8; } } @@ -71,90 +84,203 @@ static bool isDataFile(const char* filename, size_t filenameSize) static ZL_Report pytorchModelDynGraph(ZL_Graph* gctx, ZL_Edge* sctxs[], size_t nbIns) { -#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION - // Allow interesting fuzzing with smaller inputs - const size_t kMultiplier = 4; -#else - const size_t kMultiplier = 1024; -#endif - const size_t kMaxSegmentSize = 1024 * kMultiplier; + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); - ZL_RET_R_IF(graph_invalidNumInputs, nbIns != 1); - ZL_Edge* sctx = sctxs[0]; - ZL_Input const* const input = ZL_Edge_getData(sctx); - const size_t inputSize = ZL_Input_numElts(input); + ZL_ERR_IF(nbIns != 1, graph_invalidNumInputs); + ZL_Edge* sctx = sctxs[0]; - ZS2_ZipLexer lexer; - ZL_RET_R_IF_ERR(ZS2_ZipLexer_init(&lexer, ZL_Input_ptr(input), inputSize)); + const ZL_RefParam sizesParam = + ZL_Graph_getLocalRefParam(gctx, PYTORCH_SEGMENT_SIZES_PID); + ZL_ERR_IF_NE(sizesParam.paramId, PYTORCH_SEGMENT_SIZES_PID, graph_invalid); + const ZL_RefParam tagsParam = + ZL_Graph_getLocalRefParam(gctx, PYTORCH_SEGMENT_TAGS_PID); + ZL_ERR_IF_NE(tagsParam.paramId, PYTORCH_SEGMENT_TAGS_PID, graph_invalid); + + const size_t* const inSizes = (const size_t*)sizesParam.paramRef; + const unsigned* const inTags = (const unsigned*)tagsParam.paramRef; + const size_t inNbSegments = sizesParam.paramSize / sizeof(size_t); + + if (inNbSegments == 0) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(sctx, ZL_GRAPH_STORE)); + return ZL_returnSuccess(); + } - const size_t nbFiles = ZS2_ZipLexer_numFiles(&lexer); + size_t totalBytes = 0; + for (size_t i = 0; i < inNbSegments; ++i) { + totalBytes += inSizes[i]; + } const size_t maxNbSegments = - nbFiles * 4 + 2 + (inputSize / kMaxSegmentSize); + inNbSegments + (totalBytes / kMaxSegmentSize) + 1; size_t* const segmentSizes = ZL_Graph_getScratchSpace(gctx, maxNbSegments * sizeof(size_t)); unsigned* const tags = ZL_Graph_getScratchSpace(gctx, maxNbSegments * sizeof(unsigned)); - ZL_RET_R_IF_NULL(allocation, segmentSizes); - ZL_RET_R_IF_NULL(allocation, tags); + ZL_ERR_IF_NULL(segmentSizes, allocation); + ZL_ERR_IF_NULL(tags, allocation); - // Iterate over all the tokens in the Zip file, and fill out segmentSizes - // and tags. + // Split oversized segments at kMaxSegmentSize for memory locality size_t nbSegments = 0; + for (size_t i = 0; i < inNbSegments; ++i) { + ZL_ERR_IF_GE(nbSegments, maxNbSegments, corruption); + segmentSizes[nbSegments] = inSizes[i]; + tags[nbSegments] = inTags[i]; + ++nbSegments; + while (segmentSizes[nbSegments - 1] > kMaxSegmentSize) { + ZL_ERR_IF_GE(nbSegments, maxNbSegments, corruption); + const size_t segmentSize = segmentSizes[nbSegments - 1]; + segmentSizes[nbSegments - 1] = kMaxSegmentSize; + segmentSizes[nbSegments] = segmentSize - kMaxSegmentSize; + tags[nbSegments] = tags[nbSegments - 1]; + ++nbSegments; + } + } + + // Split the input according to segmentSizes + ZL_TRY_LET( + ZL_EdgeList, + streams, + ZL_Edge_runSplitNode(sctx, segmentSizes, nbSegments)); + const ZL_GraphIDList graphs = ZL_Graph_getCustomGraphs(gctx); + ZL_ASSERT_EQ(streams.nbStreams, nbSegments); + + // Set the destination for every segment + for (size_t i = 0; i < streams.nbStreams; ++i) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination( + streams.streams[i], graphs.graphids[tags[i]])); + } + + return ZL_returnSuccess(); +} + +static ZL_Report pytorchModelSegmenter(ZL_Segmenter* sctx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + const size_t numInputs = ZL_Segmenter_numInputs(sctx); + ZL_ERR_IF_NE(numInputs, 1, node_invalid_input); + const ZL_Input* const input = ZL_Segmenter_getInput(sctx, 0); + ZL_ASSERT_NN(input); + const size_t inputSize = ZL_Input_contentSize(input); + + const unsigned formatVersion = + (unsigned)ZL_Segmenter_getCParam(sctx, ZL_CParam_formatVersion); + const size_t chunkSizeLimit = + (formatVersion < ZL_CHUNK_VERSION_MIN) ? SIZE_MAX : kMaxChunkSize; + + const ZL_GraphIDList customGraphs = ZL_Segmenter_getCustomGraphs(sctx); + ZL_ASSERT_EQ(customGraphs.nbGraphIDs, 1); + const ZL_GraphID functionGraph = customGraphs.graphids[0]; + + ZS2_ZipLexer lexer; + ZL_ERR_IF_ERR(ZS2_ZipLexer_init(&lexer, ZL_Input_ptr(input), inputSize)); + + const size_t nbFiles = ZS2_ZipLexer_numFiles(&lexer); + const size_t maxNbSegs = nbFiles * 4 + 2; + + size_t* const segSizes = + ZL_Segmenter_getScratchSpace(sctx, maxNbSegs * sizeof(size_t)); + unsigned* const segTags = + ZL_Segmenter_getScratchSpace(sctx, maxNbSegs * sizeof(unsigned)); + ZL_ERR_IF_NULL(segSizes, allocation); + ZL_ERR_IF_NULL(segTags, allocation); + + size_t nbChunkSegs = 0; + size_t chunkBytes = 0; + while (!ZS2_ZipLexer_finished(&lexer)) { ZS2_ZipToken tokens[32]; - ZL_TRY_LET_R(nbTokens, ZS2_ZipLexer_lex(&lexer, tokens, 32)); + ZL_TRY_LET(size_t, nbTokens, ZS2_ZipLexer_lex(&lexer, tokens, 32)); for (size_t i = 0; i < nbTokens; ++i) { - ZL_RET_R_IF_GE(corruption, nbSegments, maxNbSegments); const ZS2_ZipToken token = tokens[i]; - // Assign the appropiate tag to the token. + unsigned tag; if (token.type == ZS2_ZipTokenType_CompressedData) { if (token.compressionMethod != 0) { - tags[nbSegments] = PytorchModelSuccessor_Precompressed; + tag = PytorchModelSuccessor_Precompressed; } else if (isDataFile(token.filename, token.filenameSize)) { - tags[nbSegments] = selectSuccessor(token.ptr, token.size); + tag = selectSuccessor(token.ptr, token.size); } else { - tags[nbSegments] = PytorchModelSuccessor_OtherFiles; + tag = PytorchModelSuccessor_OtherFiles; } } else { - tags[nbSegments] = PytorchModelSuccessor_Metadata; + tag = PytorchModelSuccessor_Metadata; } - // Combine consecutive occurrences of the same tag. - if (nbSegments > 0 && tags[nbSegments] == tags[nbSegments - 1] - && segmentSizes[nbSegments - 1] < kMaxSegmentSize) { - segmentSizes[nbSegments - 1] += token.size; + // Merge with previous segment if same tag + if (nbChunkSegs > 0 && segTags[nbChunkSegs - 1] == tag) { + segSizes[nbChunkSegs - 1] += token.size; } else { - segmentSizes[nbSegments] = token.size; - ++nbSegments; + ZL_ERR_IF_GE(nbChunkSegs, maxNbSegs, corruption); + segSizes[nbChunkSegs] = token.size; + segTags[nbChunkSegs] = tag; + ++nbChunkSegs; } + chunkBytes += token.size; + + // Flush chunks that exceed the size limit + while (chunkBytes > chunkSizeLimit) { + const unsigned carryTag = segTags[nbChunkSegs - 1]; + const size_t overflowBytes = chunkBytes - chunkSizeLimit; + ZL_ASSERT_GE(segSizes[nbChunkSegs - 1], overflowBytes); + // Round split point down to a multiple of 8 so we don't + // split a float or double in the middle of a field. + size_t splitSize = segSizes[nbChunkSegs - 1] - overflowBytes; + splitSize &= ~(size_t)7; + + const size_t excess = segSizes[nbChunkSegs - 1] - splitSize; + const size_t flushBytes = chunkBytes - excess; + ZL_ASSERT_GT(excess, 0); + ZL_ASSERT_LE(flushBytes, chunkSizeLimit); + + segSizes[nbChunkSegs - 1] = splitSize; + if (splitSize == 0) { + --nbChunkSegs; + } + + const ZL_RefParam refParams[2] = { + { PYTORCH_SEGMENT_SIZES_PID, + segSizes, + nbChunkSegs * sizeof(size_t) }, + { PYTORCH_SEGMENT_TAGS_PID, + segTags, + nbChunkSegs * sizeof(unsigned) }, + }; + const ZL_LocalParams chunkParams = { + .refParams = { refParams, 2 }, + }; + const ZL_RuntimeGraphParameters gparams = { + .localParams = &chunkParams, + }; + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &flushBytes, 1, functionGraph, &gparams)); - // Split large files into smaller segments to optimize - // (de)compression speed by improving memory locality. - while (segmentSizes[nbSegments - 1] > kMaxSegmentSize) { - ZL_RET_R_IF_GE(corruption, nbSegments, maxNbSegments); - const size_t segmentSize = segmentSizes[nbSegments - 1]; - segmentSizes[nbSegments - 1] = kMaxSegmentSize; - segmentSizes[nbSegments] = segmentSize - kMaxSegmentSize; - tags[nbSegments] = tags[nbSegments - 1]; - ++nbSegments; + segSizes[0] = excess; + segTags[0] = carryTag; + nbChunkSegs = 1; + chunkBytes = excess; } } } - // Split the input according to segmentSizes - ZL_TRY_LET_T( - ZL_EdgeList, - streams, - ZL_Edge_runSplitNode(sctx, segmentSizes, nbSegments)); - const ZL_GraphIDList graphs = ZL_Graph_getCustomGraphs(gctx); - ZL_ASSERT_EQ(streams.nbStreams, nbSegments); - - // Set the destination for every segment - for (size_t i = 0; i < streams.nbStreams; ++i) { - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( - streams.streams[i], graphs.graphids[tags[i]])); + // Flush remaining segments + ZL_ASSERT_LE(chunkBytes, chunkSizeLimit); + if (nbChunkSegs > 0) { + const ZL_RefParam refParams[2] = { + { PYTORCH_SEGMENT_SIZES_PID, + segSizes, + nbChunkSegs * sizeof(size_t) }, + { PYTORCH_SEGMENT_TAGS_PID, + segTags, + nbChunkSegs * sizeof(unsigned) }, + }; + const ZL_LocalParams chunkParams = { + .refParams = { refParams, 2 }, + }; + const ZL_RuntimeGraphParameters gparams = { + .localParams = &chunkParams, + }; + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &chunkBytes, 1, functionGraph, &gparams)); } return ZL_returnSuccess(); @@ -188,9 +314,9 @@ ZL_GraphID ZS2_createGraph_pytorchModelCompressor(ZL_Compressor* cgraph) graphs[PytorchModelSuccessor_Precompressed] = ZL_GRAPH_STORE; graphs[PytorchModelSuccessor_Metadata] = ZL_GRAPH_ZSTD; - ZL_Type const inputTypeMask = ZL_Type_serial; - const ZL_FunctionGraphDesc desc = { - .name = "pytorch model compressor", + ZL_Type const inputTypeMask = ZL_Type_serial; + const ZL_FunctionGraphDesc fgDesc = { + .name = "pytorch model compressor (inner)", .graph_f = pytorchModelDynGraph, .inputTypeMasks = &inputTypeMask, .nbInputs = 1, @@ -198,5 +324,17 @@ ZL_GraphID ZS2_createGraph_pytorchModelCompressor(ZL_Compressor* cgraph) .customGraphs = graphs, .nbCustomGraphs = PytorchModelSuccessor_NumSuccessors, }; - return ZL_Compressor_registerFunctionGraph(cgraph, &desc); + const ZL_GraphID fgraphID = + ZL_Compressor_registerFunctionGraph(cgraph, &fgDesc); + + const ZL_SegmenterDesc segDesc = { + .name = "pytorch model compressor", + .segmenterFn = pytorchModelSegmenter, + .inputTypeMasks = &inputTypeMask, + .numInputs = 1, + .lastInputIsVariable = false, + .customGraphs = &fgraphID, + .numCustomGraphs = 1, + }; + return ZL_Compressor_registerSegmenter(cgraph, &segDesc); } diff --git a/custom_parsers/sddl/BUCK b/custom_parsers/sddl/BUCK index 63fce8e55..60d8676ab 100644 --- a/custom_parsers/sddl/BUCK +++ b/custom_parsers/sddl/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_library") +load("../../defs.bzl", "zs_library") oncall("data_compression") @@ -14,10 +14,10 @@ zs_library( "*.h", ]), deps = [ - "//data_compression/experimental/zstrong/custom_parsers/shared_components:clustering", - "//data_compression/experimental/zstrong/tools/sddl/compiler:lib", + "../../tools/sddl/compiler:lib", + "../shared_components:clustering", ], exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "../..:zstronglib", ], ) diff --git a/custom_parsers/shared_components/BUCK b/custom_parsers/shared_components/BUCK index 4cc5b4246..2b93ab9fc 100644 --- a/custom_parsers/shared_components/BUCK +++ b/custom_parsers/shared_components/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxlibrary") +load("../../defs.bzl", "zs_cxxlibrary") oncall("data_compression") @@ -9,7 +9,7 @@ zs_cxxlibrary( srcs = ["numeric_graphs.cpp"], headers = ["numeric_graphs.h"], exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "../..:zstronglib", ], ) @@ -18,7 +18,7 @@ zs_cxxlibrary( srcs = ["string_graphs.cpp"], headers = ["string_graphs.h"], exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "../..:zstronglib", ], ) @@ -31,8 +31,8 @@ zs_cxxlibrary( "clustering.h", ], exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:numeric_graphs", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:string_graphs", + "../..:zstronglib", + ":numeric_graphs", + ":string_graphs", ], ) diff --git a/custom_parsers/shared_components/numeric_graphs.cpp b/custom_parsers/shared_components/numeric_graphs.cpp index a384e6b7e..c36aa80da 100644 --- a/custom_parsers/shared_components/numeric_graphs.cpp +++ b/custom_parsers/shared_components/numeric_graphs.cpp @@ -2,11 +2,8 @@ #include "custom_parsers/shared_components/numeric_graphs.h" -#include -#include -#include "openzl/zl_stream.h" +#include "openzl/zl_data.h" -#include "openzl/shared/bits.h" #include "openzl/zl_selector_declare_helper.h" namespace openzl::custom_parsers { diff --git a/custom_parsers/shared_components/string_graphs.cpp b/custom_parsers/shared_components/string_graphs.cpp index 3684d603f..1906bf49b 100644 --- a/custom_parsers/shared_components/string_graphs.cpp +++ b/custom_parsers/shared_components/string_graphs.cpp @@ -32,8 +32,9 @@ ZL_GraphID ZL_Compressor_registerStringTokenize(ZL_Compressor* compressor) static ZL_Report nullAwareDispatchGraphFn(ZL_Graph* gctx, ZL_Edge* inputs[], size_t) noexcept { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); const auto successors = ZL_Graph_getCustomGraphs(gctx); - ZL_RET_R_IF_NE(node_invalid_input, successors.nbGraphIDs, 3); + ZL_ERR_IF_NE(successors.nbGraphIDs, 3, node_invalid_input); auto* input = ZL_Edge_getData(inputs[0]); const auto numStrs = ZL_Input_numElts(input); @@ -46,14 +47,14 @@ nullAwareDispatchGraphFn(ZL_Graph* gctx, ZL_Edge* inputs[], size_t) noexcept } auto result = ZL_Edge_runDispatchStringNode(inputs[0], 2, dispatchIdx.data()); - ZL_RET_R_IF_ERR(result); - ZL_RET_R_IF_NE(node_invalid_input, ZL_RES_value(result).nbEdges, 3); + ZL_ERR_IF_ERR(result); + ZL_ERR_IF_NE(ZL_RES_value(result).nbEdges, 3, node_invalid_input); const auto edgeList = ZL_RES_value(result); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(edgeList.edges[0], successors.graphids[0])); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(edgeList.edges[1], successors.graphids[1])); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(edgeList.edges[2], successors.graphids[2])); return ZL_returnSuccess(); } diff --git a/custom_parsers/tests/BUCK b/custom_parsers/tests/BUCK index 52aebd9de..03371c338 100644 --- a/custom_parsers/tests/BUCK +++ b/custom_parsers/tests/BUCK @@ -5,15 +5,16 @@ load("@fbcode_macros//build_defs:custom_unittest.bzl", "custom_unittest") load("@fbcode_macros//build_defs:fbcode_configured_alias.bzl", "fbcode_configured_alias") load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary") load("@fbsource//tools/build_defs:default_platform_defs.bzl", "get_host_target_platform") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxbinary", "zs_fuzzers", "zs_unittest") +load("../../defs.bzl", "zs_cxxbinary", "zs_fuzzers", "zs_unittest") oncall("data_compression") python_binary( name = "pytorch_model_generator", srcs = ["pytorch_model_generator.py"], + base_module = "openzl.custom_parsers.tests", labels = ["autodeps2_generated"], - main_module = "data_compression.experimental.zstrong.custom_parsers.tests.pytorch_model_generator", + main_module = "openzl.custom_parsers.tests.pytorch_model_generator", ) fbcode_configured_alias( @@ -31,11 +32,11 @@ zs_cxxbinary( "DebugIntrospectionHooks.h", ], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers/csv:csv_parser", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:numeric_graphs", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:string_graphs", + "../..:zstronglib", + "../../cpp:openzl_cpp", + "../csv:csv_parser", + "../shared_components:numeric_graphs", + "../shared_components:string_graphs", ], ) @@ -46,17 +47,22 @@ cpp_unittest( "test_zip_lexer.cpp", ], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_parsers:zip_lexer", + "..:zip_lexer", + "../..:zstronglib", ], ) python_binary( + # @autodeps-skip name = "test_pytorch_model_compressor_bin", srcs = [ "test_pytorch_model_compressor.py", ], - main_module = "data_compression.experimental.zstrong.custom_parsers.tests.test_pytorch_model_compressor", + base_module = "openzl.custom_parsers.tests", + main_module = "openzl.custom_parsers.tests.test_pytorch_model_compressor", + deps = [ + "../../py:openzl", + ], ) zs_unittest( @@ -64,12 +70,12 @@ zs_unittest( srcs = ["test_clustering.cpp"], headers = ["DebugIntrospectionHooks.h"], deps = [ - "//data_compression/experimental/zstrong:compress", - "//data_compression/experimental/zstrong:decompress", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers/csv:csv_parser", - "//data_compression/experimental/zstrong/tests:utils", - "//data_compression/experimental/zstrong/tests/datagen:datagen", + "../..:compress", + "../..:decompress", + "../../cpp:openzl_cpp", + "../../tests:utils", + "../../tests/datagen:datagen", + "../csv:csv_parser", ], ) @@ -78,13 +84,13 @@ custom_unittest( command = [ "$(location :test_pytorch_model_compressor_bin)", "$(location :pytorch_model_generator)", - "$(location //data_compression/experimental/zstrong/custom_parsers:pytorch_model_compressor)", + "$(location ..:pytorch_model_compressor)", ], type = "simple", deps = [ + "..:pytorch_model_compressor", ":pytorch_model_generator", ":test_pytorch_model_compressor_bin", - "//data_compression/experimental/zstrong/custom_parsers:pytorch_model_compressor", ], ) @@ -99,9 +105,9 @@ zs_fuzzers( ], generator = ":pytorch_model_generator_host", deps = [ + "..:pytorch_model_parser", + "..:zip_lexer", + "../..:zstronglib", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_parsers:pytorch_model_parser", - "//data_compression/experimental/zstrong/custom_parsers:zip_lexer", ], ) diff --git a/custom_parsers/tests/DebugIntrospectionHooks.h b/custom_parsers/tests/DebugIntrospectionHooks.h index 3fd916beb..720858d1d 100644 --- a/custom_parsers/tests/DebugIntrospectionHooks.h +++ b/custom_parsers/tests/DebugIntrospectionHooks.h @@ -7,7 +7,7 @@ #include "openzl/cpp/CompressIntrospectionHooks.hpp" #include "openzl/zl_reflection.h" -namespace zstrong { +namespace openzl { // until errors are propagated fully all the time, this is an alternative way to // bubble the transform trace to the user @@ -46,4 +46,4 @@ class DebugIntrospectionHooks : public openzl::CompressIntrospectionHooks { } }; -} // namespace zstrong +} // namespace openzl diff --git a/custom_parsers/tests/csv_main.cpp b/custom_parsers/tests/csv_main.cpp index d59bb992c..924fdd719 100644 --- a/custom_parsers/tests/csv_main.cpp +++ b/custom_parsers/tests/csv_main.cpp @@ -6,7 +6,7 @@ #include #include #include -#include "custom_parsers/csv/csv_parser.h" +#include "custom_parsers/csv/csv_segmenter.h" #include "custom_parsers/shared_components/numeric_graphs.h" #include "custom_parsers/shared_components/string_graphs.h" #include "custom_parsers/tests/DebugIntrospectionHooks.h" @@ -16,9 +16,8 @@ #include "openzl/compress/graphs/generic_clustering_graph.h" #include "openzl/compress/private_nodes.h" #include "openzl/zl_compress.h" -#include "openzl/zl_reflection.h" -namespace zstrong::tests { +namespace openzl::tests { namespace { enum CsvSuccessorIdx : size_t { @@ -102,8 +101,8 @@ class TPC_H_lineitem : public Config { &clusteringConfig, successors.data(), successors.size()); - return ZL_CsvParser_registerGraph( - compressor, true, '|', false, clusteringGraph); + return ZL_RES_value(ZL_CsvSegmenter_registerSegmenterNoChunks( + compressor, true, '|', false, clusteringGraph)); } }; @@ -390,8 +389,8 @@ class PsamH01 : public Config { &clusteringConfig, successors.data(), successors.size()); - auto ee = ZL_CsvParser_registerGraph( - compressor, true, ',', UseNullAware, clusteringGraph); + auto ee = ZL_RES_value(ZL_CsvSegmenter_registerSegmenterNoChunks( + compressor, true, ',', UseNullAware, clusteringGraph)); if (ee.gid == ZL_GRAPH_ILLEGAL.gid) { std::cerr << "illegal graph!" << std::endl; exit(1); @@ -530,8 +529,8 @@ class PPMF_Unit : public Config { &clusteringConfig, successors.data(), successors.size()); - auto ee = ZL_CsvParser_registerGraph( - compressor, true, ',', false, clusteringGraph); + auto ee = ZL_RES_value(ZL_CsvSegmenter_registerSegmenterNoChunks( + compressor, true, ',', false, clusteringGraph)); if (ee.gid == ZL_GRAPH_ILLEGAL.gid) { std::cerr << "illegal graph!" << std::endl; exit(1); @@ -662,8 +661,8 @@ class PPMF_Person : public Config { &clusteringConfig, successors.data(), successors.size()); - auto ee = ZL_CsvParser_registerGraph( - compressor, true, ',', false, clusteringGraph); + auto ee = ZL_RES_value(ZL_CsvSegmenter_registerSegmenterNoChunks( + compressor, true, ',', false, clusteringGraph)); if (ee.gid == ZL_GRAPH_ILLEGAL.gid) { std::cerr << "illegal graph!" << std::endl; exit(1); @@ -782,6 +781,7 @@ class TestCsv { ZL_Report TestCsv::run(const std::string& csvFile) { + ZL_RESULT_DECLARE_SCOPE_REPORT(nullptr); SetUp(); ZL_g_logLevel = ZL_LOG_LVL_DEBUG; @@ -816,14 +816,14 @@ ZL_Report TestCsv::run(const std::string& csvFile) for (auto clevel : { 1, 6 }) { for (ZL_GraphID csvParserGid : toTest) { - ZL_RET_R_IF_ERR(ZL_CCtx_setParameter( + ZL_ERR_IF_ERR(ZL_CCtx_setParameter( cctx, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION)); - ZL_RET_R_IF_ERR(ZL_CCtx_refCompressor(cctx, compressor_)); - ZL_RET_R_IF_ERR(ZL_CCtx_setParameter( + ZL_ERR_IF_ERR(ZL_CCtx_refCompressor(cctx, compressor_)); + ZL_ERR_IF_ERR(ZL_CCtx_setParameter( cctx, ZL_CParam_compressionLevel, clevel)); auto gssr = ZL_Compressor_selectStartingGraphID( compressor_, csvParserGid); - ZL_RET_R_IF_ERR(gssr); + ZL_ERR_IF_ERR(gssr); std::string dst(src.size() * 2, 0); auto start = std::chrono::high_resolution_clock::now(); @@ -876,7 +876,7 @@ ZL_Report TestCsv::run(const std::string& csvFile) } } // namespace -} // namespace zstrong::tests +} // namespace openzl::tests int main(int argc, char** argv) { @@ -885,7 +885,7 @@ int main(int argc, char** argv) return 1; } std::string csvFile = argv[1]; - auto report = zstrong::tests::TestCsv().run(csvFile); + auto report = openzl::tests::TestCsv().run(csvFile); if (ZL_isError(report)) { std::cerr << ZL_ErrorCode_toString(ZL_errorCode(report)); } diff --git a/custom_parsers/tests/pytorch_model_generator.py b/custom_parsers/tests/pytorch_model_generator.py index 508902260..261894a3b 100644 --- a/custom_parsers/tests/pytorch_model_generator.py +++ b/custom_parsers/tests/pytorch_model_generator.py @@ -8,7 +8,7 @@ import zipfile -def write_data_file(zf, filename, small): +def write_data_file(zf, filename, max_file_size): path = "" if random.random() < 0.5: @@ -23,44 +23,52 @@ def write_data_file(zf, filename, small): path += "suffix/" path += filename - data = random.randbytes(random.randint(0, 100 if small else 10000)) + data = random.randbytes(random.randint(0, max_file_size)) zf.writestr(path, data) -def write_other_file(zf, filename, small): +def write_other_file(zf, filename, max_file_size): path = "" if random.random() < 0.5: path += "code/" path += filename - data = random.randbytes(random.randint(0, 100 if small else 10000)) + data = random.randbytes(random.randint(0, max_file_size)) zf.writestr(path, data) -def generate_zipfile(small): +def generate_zipfile(max_file_size): with tempfile.NamedTemporaryFile() as f: with zipfile.ZipFile(f.name, "w") as zf: num_files = random.randint(0, 20) for i in range(num_files): if random.random() < 0.5: - write_data_file(zf, str(i), small) + write_data_file(zf, str(i), max_file_size) else: - write_other_file(zf, str(i), small) + write_other_file(zf, str(i), max_file_size) with open(f.name, "rb") as f: return f.read() -def generate_corpus(small): - for _ in range(100): - yield generate_zipfile(small) +def generate_corpus(num_files, max_file_size): + for _ in range(num_files): + yield generate_zipfile(max_file_size) def main(test_suite, test_case, out_dir): if test_suite not in ("PytorchModelParserTest", "ZipLexerTest"): raise ValueError(f"Unknown test suite: {test_suite}") - small = test_suite == "ZipLexerTest" - corpus = generate_corpus(small) + num_files = 100 + if test_suite == "ZipLexerTest": + max_file_size = 100 + elif "Large" in test_case: + max_file_size = 10000000 + num_files = 1 + else: + max_file_size = 10000 + + corpus = generate_corpus(num_files, max_file_size) os.makedirs(out_dir, exist_ok=True) for blob in corpus: diff --git a/custom_parsers/tests/test_clustering.cpp b/custom_parsers/tests/test_clustering.cpp index 41badb84d..8200059b6 100644 --- a/custom_parsers/tests/test_clustering.cpp +++ b/custom_parsers/tests/test_clustering.cpp @@ -2,7 +2,7 @@ #include -#include "custom_parsers/csv/csv_parser.h" +#include "custom_parsers/csv/csv_segmenter.h" #include "custom_parsers/tests/DebugIntrospectionHooks.h" #include "openzl/common/a1cbor_helpers.h" #include "openzl/common/assertion.h" @@ -14,7 +14,7 @@ #include "tests/utils.h" -namespace zstrong::tests { +namespace openzl::tests { namespace { class TestClusteringGraph : public testing::Test { @@ -38,7 +38,7 @@ class TestClusteringGraph : public testing::Test { cctx_ = ZL_CCtx_create(); ZL_REQUIRE_SUCCESS(ZL_CCtx_setParameter( cctx_, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION)); - hooks_ = std::make_unique(); + hooks_ = std::make_unique(); if (0) { ZL_REQUIRE_SUCCESS(ZL_CCtx_attachIntrospectionHooks( cctx_, hooks_->getRawHooks())); @@ -53,8 +53,8 @@ class TestClusteringGraph : public testing::Test { successors_.data(), successors_.size()); - return ZL_CsvParser_registerGraph( - cgraph, true, ',', false, clusteringGraph); + return ZL_RES_value(ZL_CsvSegmenter_registerSegmenterNoChunks( + cgraph, true, ',', false, clusteringGraph)); } size_t compress( @@ -137,7 +137,7 @@ class TestClusteringGraph : public testing::Test { ZL_Compressor* cgraph_{}; ZL_DCtx* dctx_{}; ZL_CCtx* cctx_{}; - std::unique_ptr hooks_; + std::unique_ptr hooks_; std::vector successors_; /* Assume successors are registered in the same cgraph */ std::vector defaultSuccessorTypes_{ ZL_Type_serial, @@ -576,4 +576,4 @@ TEST_F(TestClusteringGraph, TestClusteringValidCodecIndices) } } // namespace -} // namespace zstrong::tests +} // namespace openzl::tests diff --git a/custom_parsers/tests/test_pytorch_model_compressor.py b/custom_parsers/tests/test_pytorch_model_compressor.py index 5bc1ed590..7517c4b30 100644 --- a/custom_parsers/tests/test_pytorch_model_compressor.py +++ b/custom_parsers/tests/test_pytorch_model_compressor.py @@ -8,6 +8,8 @@ import sys import tempfile +import openzl.ext as zl + def main(generator, compressor): try: @@ -15,9 +17,24 @@ def main(generator, compressor): subprocess.check_call( [generator, "PytorchModelParserTest", "TestRoundTrip", tmpdir] ) - for file in os.listdir(tmpdir): + for file in os.listdir(tmpdir)[:10]: + for format_version in range(16, zl.MAX_FORMAT_VERSION + 1): + print(f"Testing format version {format_version} for {file}") + path = os.path.join(tmpdir, file) + subprocess.check_call([compressor, str(format_version), path]) + finally: + shutil.rmtree(tmpdir, ignore_errors=True) + + try: + tmpdir = tempfile.mkdtemp() + subprocess.check_call( + [generator, "PytorchModelParserTest", "TestRoundTripLarge", tmpdir] + ) + file = os.listdir(tmpdir)[0] + for format_version in range(16, zl.MAX_FORMAT_VERSION + 1): + print(f"Testing format version {format_version} for {file}") path = os.path.join(tmpdir, file) - subprocess.check_call([compressor, path]) + subprocess.check_call([compressor, str(format_version), path]) finally: shutil.rmtree(tmpdir, ignore_errors=True) diff --git a/custom_parsers/zip_lexer.c b/custom_parsers/zip_lexer.c index fe2e21b7e..8ef49a4b8 100644 --- a/custom_parsers/zip_lexer.c +++ b/custom_parsers/zip_lexer.c @@ -109,22 +109,18 @@ static ZL_RESULT_OF(uint64_t) readZip64Info( size_t zip64InfoSize, size_t offsetTrusted) { + ZL_RESULT_DECLARE_SCOPE(uint64_t, NULL); const char* const zip64InfoEnd = zip64InfoPtr + zip64InfoSize; ZL_ASSERT_LE(offsetTrusted, 20); for (;;) { - ZL_RET_T_IF_LT(uint64_t, corruption, zip64InfoEnd - zip64InfoPtr, 4); + ZL_ERR_IF_LT(zip64InfoEnd - zip64InfoPtr, 4, corruption); const uint16_t id = ZL_readLE16(zip64InfoPtr); const size_t size = ZL_readLE16(zip64InfoPtr + 2); zip64InfoPtr += 4; - ZL_RET_T_IF_LT( - uint64_t, - corruption, - (size_t)(zip64InfoEnd - zip64InfoPtr), - size); + ZL_ERR_IF_LT((size_t)(zip64InfoEnd - zip64InfoPtr), size, corruption); if (id == kZip64InfoID) { - ZL_RET_T_IF_GT(uint64_t, corruption, offsetTrusted + 8, size); - return ZL_RESULT_WRAP_VALUE( - uint64_t, ZL_readLE64(zip64InfoPtr + offsetTrusted)); + ZL_ERR_IF_GT(offsetTrusted + 8, size, corruption); + return ZL_WRAP_VALUE(ZL_readLE64(zip64InfoPtr + offsetTrusted)); } zip64InfoPtr += size; } @@ -142,25 +138,26 @@ static ZL_Report readCentralDirectoryFileHeader( uint64_t* localFileHeaderOffset, uint64_t* compressedSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // suppress -Wmaybe-uninitialized *localFileHeaderOffset = 0; const size_t remaining = (size_t)(cdfhEnd - cdfhPtr); - ZL_RET_R_IF_LT(corruption, remaining, kMinCentralDirectoryFileHeaderSize); + ZL_ERR_IF_LT(remaining, kMinCentralDirectoryFileHeaderSize, corruption); - ZL_RET_R_IF_NE(corruption, ZL_readLE32(cdfhPtr), 0x02014b50); + ZL_ERR_IF_NE(ZL_readLE32(cdfhPtr), 0x02014b50, corruption); const size_t filenameLength = ZL_readLE16(cdfhPtr + 28); const size_t extraFieldLength = ZL_readLE16(cdfhPtr + 30); const size_t fileCommentLength = ZL_readLE16(cdfhPtr + 32); const size_t cdfhLength = kMinCentralDirectoryFileHeaderSize + filenameLength + extraFieldLength + fileCommentLength; - ZL_RET_R_IF_LT(corruption, remaining, cdfhLength); + ZL_ERR_IF_LT(remaining, cdfhLength, corruption); const char* const extraFieldPtr = cdfhPtr + kMinCentralDirectoryFileHeaderSize + filenameLength; *localFileHeaderOffset = read32OrNeg1(cdfhPtr + 42); if (*localFileHeaderOffset == (uint64_t)-1) { - ZL_TRY_LET_T( + ZL_TRY_LET( uint64_t, offset, readZip64Info(extraFieldPtr, extraFieldLength, 16)); @@ -169,7 +166,7 @@ static ZL_Report readCentralDirectoryFileHeader( *compressedSize = read32OrNeg1(cdfhPtr + 20); if (*compressedSize == (uint64_t)-1) { - ZL_TRY_LET_T( + ZL_TRY_LET( uint64_t, size, readZip64Info(extraFieldPtr, extraFieldLength, 0)); @@ -188,6 +185,7 @@ static ZL_Report readEOCD64( const char* eocd64End, ZS2_ZipLexer_EndOfCentralDirectory* eocd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // suppress -Wmaybe-uninitialized eocd->diskNumber = 0; eocd->centralDirectoryDiskNumber = 0; @@ -196,23 +194,23 @@ static ZL_Report readEOCD64( eocd->centralDirectorySize = 0; eocd->centralDirectoryOffset = 0; - ZL_RET_R_IF_LT( - corruption, + ZL_ERR_IF_LT( (size_t)(eocd64End - eocd64Ptr), - kMinZip64EndOfCentralDirectoryRecordSize); + kMinZip64EndOfCentralDirectoryRecordSize, + corruption); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( ZL_readLE32(eocd64Ptr), 0x06064b50, + corruption, "Zip64 End of Central Directory signature incorrect"); const uint64_t eocd64Size = ZL_readLE64(eocd64Ptr + 4); - ZL_RET_R_IF_GT( - corruption, eocd64Size, (uint64_t)(eocd64End - (eocd64Ptr + 12))); - ZL_RET_R_IF_LT( - corruption, + ZL_ERR_IF_GT( + eocd64Size, (uint64_t)(eocd64End - (eocd64Ptr + 12)), corruption); + ZL_ERR_IF_LT( eocd64Size, - kMinZip64EndOfCentralDirectoryRecordSize - 12); + kMinZip64EndOfCentralDirectoryRecordSize - 12, + corruption); eocd->diskNumber = ZL_readLE32(eocd64Ptr + 16); eocd->centralDirectoryDiskNumber = ZL_readLE32(eocd64Ptr + 20); @@ -299,17 +297,18 @@ static ZL_Report ZS2_ZipLexer_findZipBegin( const char* maxRecordEnd, bool (*validate)(const ZS2_ZipLexer*, const char*, const char*)) { - ZL_RET_R_IF_LT(corruption, minRecordSize, 4); - ZL_RET_R_IF_GT( - corruption, + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_LT(minRecordSize, 4, corruption); + ZL_ERR_IF_GT( minRecordSize, - (size_t)(maxRecordEnd - lexer->zipBegin)); + (size_t)(maxRecordEnd - lexer->zipBegin), + corruption); const char* const maxRecordBegin = maxRecordEnd - minRecordSize; - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( recordOffset, - (size_t)(maxRecordBegin - lexer->zipBegin)); + (size_t)(maxRecordBegin - lexer->zipBegin), + corruption); const char* const minRecordBegin = lexer->zipBegin + recordOffset; // We must search from min to max because the central directory signature @@ -329,7 +328,7 @@ static ZL_Report ZS2_ZipLexer_findZipBegin( break; } } - ZL_RET_R_IF_EQ(corruption, recordBegin, maxRecordBegin); + ZL_ERR_IF_EQ(recordBegin, maxRecordBegin, corruption); ++recordBegin; } ZL_ASSERT_LE(recordOffset, (size_t)(recordBegin - lexer->zipBegin)); @@ -347,37 +346,38 @@ static ZL_Report ZS2_ZipLexer_findEOCD64( const char* eocdPtr, ZS2_ZipLexer_EndOfCentralDirectory* eocd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT(ZS2_ZipLexer_EndOfCentralDirectory_needZip64(eocd)); ZL_ASSERT_GE(eocdPtr, lexer->zipBegin); ZL_ASSERT_LE(eocdPtr, lexer->srcEnd); const size_t eocdOffset = (size_t)(eocdPtr - lexer->zipBegin); - ZL_RET_R_IF_LT( - corruption, eocdOffset, kZip64EndOfCentralDirectoryLocatorSize); + ZL_ERR_IF_LT( + eocdOffset, kZip64EndOfCentralDirectoryLocatorSize, corruption); const char* const locatorPtr = eocdPtr - kZip64EndOfCentralDirectoryLocatorSize; - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( ZL_readLE32(locatorPtr), 0x07064b50, - "Zip64 End of Central Directory Locator signature incorrect"); - ZL_RET_R_IF_NE( corruption, + "Zip64 End of Central Directory Locator signature incorrect"); + ZL_ERR_IF_NE( ZL_readLE32(locatorPtr + 4), 0, - "Only single disk supported"); - ZL_RET_R_IF_NE( corruption, + "Only single disk supported"); + ZL_ERR_IF_NE( ZL_readLE32(locatorPtr + 16), 1, + corruption, "Only single disk supported"); const uint64_t eocd64Offset = ZL_readLE64(locatorPtr + 8); - ZL_RET_R_IF_GT( - corruption, eocd64Offset, (size_t)(locatorPtr - lexer->zipBegin)); + ZL_ERR_IF_GT( + eocd64Offset, (size_t)(locatorPtr - lexer->zipBegin), corruption); - ZL_RET_R_IF_ERR(ZS2_ZipLexer_findZipBegin( + ZL_ERR_IF_ERR(ZS2_ZipLexer_findZipBegin( lexer, 0x06064b50, eocd64Offset, @@ -386,7 +386,7 @@ static ZL_Report ZS2_ZipLexer_findEOCD64( ZS2_ZipLexer_validateEOCD64)); const char* eocd64Ptr = lexer->zipBegin + eocd64Offset; - ZL_TRY_LET_R(eocd64Size, readEOCD64(eocd64Ptr, locatorPtr, eocd)); + ZL_TRY_LET(size_t, eocd64Size, readEOCD64(eocd64Ptr, locatorPtr, eocd)); lexer->zip64EndOfCentralDirectoryRecordPtr = eocd64Ptr; lexer->zip64EndOfCentralDirectoryRecordSize = eocd64Size + 12; @@ -402,14 +402,15 @@ static ZL_Report ZS2_ZipLexer_findEOCD64( */ static ZL_Report ZS2_ZipLexer_parseEOCD(ZS2_ZipLexer* lexer, size_t eocdOffset) { - ZL_RET_R_IF_GT( - corruption, eocdOffset, (size_t)(lexer->srcEnd - lexer->zipBegin)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GT( + eocdOffset, (size_t)(lexer->srcEnd - lexer->zipBegin), corruption); const char* const eocdPtr = lexer->zipBegin + eocdOffset; - ZL_RET_R_IF_LT( - corruption, + ZL_ERR_IF_LT( (size_t)(lexer->srcEnd - eocdPtr), - kMinEndOfCentralDirectoryRecordSize); - ZL_RET_R_IF(corruption, !isEOCD(eocdPtr)); + kMinEndOfCentralDirectoryRecordSize, + corruption); + ZL_ERR_IF(!isEOCD(eocdPtr), corruption); ZS2_ZipLexer_EndOfCentralDirectory eocd; eocd.diskNumber = read16OrNeg1(eocdPtr + 4); @@ -422,19 +423,19 @@ static ZL_Report ZS2_ZipLexer_parseEOCD(ZS2_ZipLexer* lexer, size_t eocdOffset) // Check the comment isn't too long, but allow garbage at the end of the zip // file. const uint32_t commentLength = ZL_readLE16(eocdPtr + 20); - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( commentLength, - lexer->srcEnd - (eocdPtr + kMinEndOfCentralDirectoryRecordSize)); + lexer->srcEnd - (eocdPtr + kMinEndOfCentralDirectoryRecordSize), + corruption); if (ZS2_ZipLexer_EndOfCentralDirectory_needZip64(&eocd)) { - ZL_RET_R_IF_ERR(ZS2_ZipLexer_findEOCD64(lexer, eocdPtr, &eocd)); + ZL_ERR_IF_ERR(ZS2_ZipLexer_findEOCD64(lexer, eocdPtr, &eocd)); } else { if (eocd.centralDirectoryRecordCount > 0) { // If there are any entries in the Central Directory, we need to // adjust the beginning of the zip file in case there is garbage at // the beginning. - ZL_RET_R_IF_ERR(ZS2_ZipLexer_findZipBegin( + ZL_ERR_IF_ERR(ZS2_ZipLexer_findZipBegin( lexer, 0x02014b50, eocd.centralDirectoryOffset, @@ -449,27 +450,26 @@ static ZL_Report ZS2_ZipLexer_parseEOCD(ZS2_ZipLexer* lexer, size_t eocdOffset) // Compute srcSize now that we've adjusted lexer->zipBegin const size_t srcSize = (size_t)(lexer->srcEnd - lexer->zipBegin); - ZL_RET_R_IF_NE( - corruption, eocd.diskNumber, 0, "Only single disk supported"); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE(eocd.diskNumber, 0, corruption, "Only single disk supported"); + ZL_ERR_IF_NE( eocd.centralDirectoryDiskNumber, 0, + corruption, "Only single disk supported"); - ZL_RET_R_IF_GT(corruption, eocd.centralDirectoryOffset, srcSize); - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT(eocd.centralDirectoryOffset, srcSize, corruption); + ZL_ERR_IF_GT( eocd.centralDirectorySize, - srcSize - eocd.centralDirectoryOffset); + srcSize - eocd.centralDirectoryOffset, + corruption); // Sanity check the number of files, so we don't report an // impossible number. const size_t kMinBytesPerFile = kMinLocalHeaderSize + kMinCentralDirectoryFileHeaderSize; const size_t maxNumFilesPossible = srcSize / kMinBytesPerFile; - ZL_RET_R_IF_GT( - corruption, eocd.centralDirectoryRecordCount, maxNumFilesPossible); + ZL_ERR_IF_GT( + eocd.centralDirectoryRecordCount, maxNumFilesPossible, corruption); lexer->cdfhPtr = lexer->zipBegin + eocd.centralDirectoryOffset; lexer->cdfhEnd = lexer->cdfhPtr + eocd.centralDirectorySize; @@ -510,16 +510,17 @@ static bool ZS2_ZipLexer_tryInit( ZL_Report ZS2_ZipLexer_init(ZS2_ZipLexer* lexer, const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const size_t minReverseOffset = kMinEndOfCentralDirectoryRecordSize; // Maximum allowed offset if there is no garbage at the end const size_t maxLegalReverseOffset = ZL_MIN(kMinEndOfCentralDirectoryRecordSize + 65535, srcSize); const size_t maxReverseOffset = srcSize; - ZL_RET_R_IF_LT( - GENERIC, + ZL_ERR_IF_LT( srcSize, kMinEndOfCentralDirectoryRecordSize, + GENERIC, "Zip file too small"); ZL_ASSERT_GE(maxReverseOffset, minReverseOffset); @@ -537,7 +538,7 @@ ZS2_ZipLexer_init(ZS2_ZipLexer* lexer, const void* src, size_t srcSize) break; } } - ZL_RET_R_IF_GE(GENERIC, reverseOffset, maxReverseOffset, "EOCD not found"); + ZL_ERR_IF_GE(reverseOffset, maxReverseOffset, GENERIC, "EOCD not found"); return ZL_returnSuccess(); } @@ -547,18 +548,19 @@ ZL_Report ZS2_ZipLexer_initWithEOCD( size_t srcSize, size_t eocdOffset) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); lexer->zipBegin = src; lexer->srcPtr = src; lexer->srcEnd = lexer->zipBegin + srcSize; memset(&lexer->fileState, 0, sizeof(lexer->fileState)); - ZL_RET_R_IF_ERR(ZS2_ZipLexer_parseEOCD(lexer, eocdOffset)); + ZL_ERR_IF_ERR(ZS2_ZipLexer_parseEOCD(lexer, eocdOffset)); if (lexer->cdfhIdx < lexer->cdfhNum) { // Proactively initialize the file state to catch more invalid zip files // in the init() function. - ZL_RET_R_IF_ERR(ZS2_ZipLexer_setFileState(lexer)); + ZL_ERR_IF_ERR(ZS2_ZipLexer_setFileState(lexer)); } return ZL_returnSuccess(); } @@ -576,6 +578,7 @@ static ZL_Report ZS2_ZipLexer_lexUnknown( ZS2_ZipToken* out, const char* nextPtr) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_GT(nextPtr, lexer->srcPtr); ZL_ASSERT_LE(nextPtr, lexer->srcEnd); @@ -609,11 +612,12 @@ static ZL_Report ZS2_ZipLexer_lexSection( const char** sectionPtrPtr, size_t sectionSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Ensure the srcPtr is at the beginning of the section if (lexer->srcPtr < *sectionPtrPtr) { return ZS2_ZipLexer_lexUnknown(lexer, out, *sectionPtrPtr); } - ZL_RET_R_IF_GT(corruption, lexer->srcPtr, *sectionPtrPtr); + ZL_ERR_IF_GT(lexer->srcPtr, *sectionPtrPtr, corruption); ZL_ASSERT_LE(sectionSize, (size_t)(lexer->srcEnd - *sectionPtrPtr)); @@ -630,7 +634,8 @@ static ZL_Report ZS2_ZipLexer_lexSection( /// Handles emitting tokens for all sections after the files. static ZL_Report ZS2_ZipLexer_lexTail(ZS2_ZipLexer* lexer, ZS2_ZipToken* out) { - ZL_RET_R_IF_NE(corruption, lexer->cdfhPtr, lexer->cdfhEnd); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_NE(lexer->cdfhPtr, lexer->cdfhEnd, corruption); memset(out, 0, sizeof(*out)); @@ -686,8 +691,10 @@ static ZL_Report ZS2_ZipLexer_readNextCentralDirectoryFileHeader( uint64_t* localFileHeaderOffset, uint64_t* compressedSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_LT(lexer->cdfhIdx, lexer->cdfhNum); - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, cdfhLength, readCentralDirectoryFileHeader( lexer->cdfhPtr, @@ -716,25 +723,26 @@ static bool ZS2_ZipLexer_FileState_empty( */ static ZL_Report ZS2_ZipLexer_setFileState(ZS2_ZipLexer* lexer) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT(ZS2_ZipLexer_FileState_empty(&lexer->fileState)); // Read fields from the CDFH. The compressed size is read from the CDFH, // because it may be in the DataDescriptor in the LFH. uint64_t localFileHeaderOffset; uint64_t compressedSize; - ZL_RET_R_IF_ERR(ZS2_ZipLexer_readNextCentralDirectoryFileHeader( + ZL_ERR_IF_ERR(ZS2_ZipLexer_readNextCentralDirectoryFileHeader( lexer, &localFileHeaderOffset, &compressedSize)); ZL_ASSERT_LE(lexer->zipBegin, lexer->srcEnd); - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( localFileHeaderOffset, - (uint64_t)(lexer->srcEnd - lexer->zipBegin)); + (uint64_t)(lexer->srcEnd - lexer->zipBegin), + corruption); const char* const lfhPtr = lexer->zipBegin + localFileHeaderOffset; - ZL_RET_R_IF_LT( - corruption, (size_t)(lexer->srcEnd - lfhPtr), kMinLocalHeaderSize); + ZL_ERR_IF_LT( + (size_t)(lexer->srcEnd - lfhPtr), kMinLocalHeaderSize, corruption); - ZL_RET_R_IF_NE(corruption, ZL_readLE32(lfhPtr), 0x04034b50); + ZL_ERR_IF_NE(ZL_readLE32(lfhPtr), 0x04034b50, corruption); const uint16_t generalPurposeBits = ZL_readLE16(lfhPtr + 6); const uint16_t filenameLength = ZL_readLE16(lfhPtr + 26); const size_t extraFieldLength = ZL_readLE16(lfhPtr + 28); @@ -742,16 +750,16 @@ static ZL_Report ZS2_ZipLexer_setFileState(ZS2_ZipLexer* lexer) kMinLocalHeaderSize + filenameLength + extraFieldLength; const char* const extraFieldPtr = lfhPtr + kMinLocalHeaderSize + filenameLength; - ZL_RET_R_IF_LT(corruption, (size_t)(lexer->srcEnd - lfhPtr), lfhSize); + ZL_ERR_IF_LT((size_t)(lexer->srcEnd - lfhPtr), lfhSize, corruption); const bool hasDataDescriptor = (generalPurposeBits & kDataDescriptorMask) != 0; const char* const compressedDataPtr = lfhPtr + lfhSize; - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( compressedSize, - (size_t)(lexer->srcEnd - compressedDataPtr)); + (size_t)(lexer->srcEnd - compressedDataPtr), + corruption); lexer->fileState.compressionMethod = ZL_readLE16(lfhPtr + 8); lexer->fileState.filename = lfhPtr + kMinLocalHeaderSize; @@ -765,16 +773,16 @@ static ZL_Report ZS2_ZipLexer_setFileState(ZS2_ZipLexer* lexer) if (hasDataDescriptor) { const char* const dataDescriptorPtr = compressedDataPtr + compressedSize; - ZL_RET_R_IF_LT(corruption, lexer->srcEnd - dataDescriptorPtr, 4); + ZL_ERR_IF_LT(lexer->srcEnd - dataDescriptorPtr, 4, corruption); const uint32_t signature = ZL_readLE32(dataDescriptorPtr); const bool hasSignature = signature == 0x08074b50; const bool isZip64 = hasZip64Info(extraFieldPtr, extraFieldLength); const size_t dataDescriptorSize = (hasSignature ? 4u : 0u) + 4u + (isZip64 ? 16u : 8u); - ZL_RET_R_IF_LT( - corruption, + ZL_ERR_IF_LT( (size_t)(lexer->srcEnd - dataDescriptorPtr), - dataDescriptorSize); + dataDescriptorSize, + corruption); lexer->fileState.dataDescriptorPtr = dataDescriptorPtr; lexer->fileState.dataDescriptorSize = dataDescriptorSize; @@ -788,6 +796,7 @@ static ZL_Report ZS2_ZipLexer_setFileState(ZS2_ZipLexer* lexer) static ZL_Report ZS2_ZipLexer_lexFile(ZS2_ZipLexer* lexer, ZS2_ZipToken* out) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_LE(lexer->cdfhIdx, lexer->cdfhNum); ZL_ASSERT_LE(lexer->cdfhPtr, lexer->cdfhEnd); @@ -795,7 +804,7 @@ static ZL_Report ZS2_ZipLexer_lexFile(ZS2_ZipLexer* lexer, ZS2_ZipToken* out) // file. if (ZS2_ZipLexer_FileState_empty(&lexer->fileState)) { ZL_ASSERT_LT(lexer->cdfhIdx, lexer->cdfhNum); - ZL_RET_R_IF_ERR(ZS2_ZipLexer_setFileState(lexer)); + ZL_ERR_IF_ERR(ZS2_ZipLexer_setFileState(lexer)); ZL_ASSERT_NN(lexer->fileState.localFileHeaderPtr); ZL_ASSERT_NN(lexer->fileState.compressedDataPtr); } @@ -832,7 +841,7 @@ static ZL_Report ZS2_ZipLexer_lexFile(ZS2_ZipLexer* lexer, ZS2_ZipToken* out) lexer->fileState.dataDescriptorSize); } - ZL_RET_R_ERR(logicError); + ZL_ERR(logicError); } static ZL_Report ZS2_ZipLexer_lexOne(ZS2_ZipLexer* lexer, ZS2_ZipToken* out) @@ -850,10 +859,11 @@ static ZL_Report ZS2_ZipLexer_lexOne(ZS2_ZipLexer* lexer, ZS2_ZipToken* out) ZL_Report ZS2_ZipLexer_lex(ZS2_ZipLexer* lexer, ZS2_ZipToken* out, size_t outCapacity) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t entries; for (entries = 0; !ZS2_ZipLexer_finished(lexer) && entries < outCapacity; ++entries) { - ZL_RET_R_IF_ERR(ZS2_ZipLexer_lexOne(lexer, out + entries)); + ZL_ERR_IF_ERR(ZS2_ZipLexer_lexOne(lexer, out + entries)); } return ZL_returnValue(entries); } diff --git a/custom_transforms/json_extract/BUCK b/custom_transforms/json_extract/BUCK index 29cab72b1..eccef5153 100644 --- a/custom_transforms/json_extract/BUCK +++ b/custom_transforms/json_extract/BUCK @@ -1,6 +1,7 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") +load("../../defs.bzl", "relative_headers") oncall("data_compression") @@ -11,12 +12,13 @@ cpp_library( "decode_json_extract.cpp", "encode_json_extract.cpp", ], - headers = [ + headers = relative_headers([ "decode_json_extract.h", "encode_json_extract.h", - ], - private_headers = ["common_json_extract.h"], + ]), + header_namespace = "", + private_headers = relative_headers(["common_json_extract.h"]), exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "../..:zstronglib", ], ) diff --git a/custom_transforms/json_extract/decode_json_extract.cpp b/custom_transforms/json_extract/decode_json_extract.cpp index a2064b513..077206db8 100644 --- a/custom_transforms/json_extract/decode_json_extract.cpp +++ b/custom_transforms/json_extract/decode_json_extract.cpp @@ -57,7 +57,7 @@ ZL_FORCE_NOINLINE std::string_view buildBitmask( { std::fill(bitmask, bitmask + kBitmaskSize, 0); size_t blockSize = 0; -#if __AVX2__ +#if defined(__AVX2__) blockSize = alignDown(std::min(src.size(), kBlockSize), 32); uint32_t* bitmask32 = (uint32_t*)bitmask; @@ -139,6 +139,7 @@ ZL_Report replaceTokens( InStream& floats, InStream& strs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); size_t idx = 0; uint64_t mask = bitmask[idx]; uint32_t skipped = 0; @@ -183,13 +184,13 @@ ZL_Report replaceTokens( // Replace the token if (token[0] == char(Token::INT)) { - ZL_RET_R_IF_EQ(corruption, ints.remaining(), 0); + ZL_ERR_IF_EQ(ints.remaining(), 0, corruption); out = ints.read(out); } else if (token[0] == char(Token::FLOAT)) { - ZL_RET_R_IF_EQ(corruption, floats.remaining(), 0); + ZL_ERR_IF_EQ(floats.remaining(), 0, corruption); out = floats.read(out); } else if (token[0] == char(Token::STR)) { - ZL_RET_R_IF_EQ(corruption, strs.remaining(), 0); + ZL_ERR_IF_EQ(strs.remaining(), 0, corruption); out = strs.read(out); } else if (token[0] == char(Token::TRUE)) { memcpy(out, "true", 4); @@ -216,6 +217,7 @@ ZL_Report jsonExtractDecode( ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* jsonStream = inputs[0]; InStream ints{ inputs[1] }; InStream floats{ inputs[2] }; @@ -231,18 +233,18 @@ ZL_Report jsonExtractDecode( + ZL_Input_contentSize(inputs[1]) + ZL_Input_contentSize(inputs[2]) + ZL_Input_contentSize(inputs[3]) + ZS_WILDCOPY_OVERLENGTH; ZL_Output* outStream = ZL_Decoder_create1OutStream(dictx, outBound, 1); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); std::array bitmask; char* out = (char*)ZL_Output_ptr(outStream); while (!json.empty()) { auto const block = buildBitmask(bitmask.data(), json); - ZL_RET_R_IF_ERR(replaceTokens( + ZL_ERR_IF_ERR(replaceTokens( dictx, out, bitmask.data(), block, ints, floats, strs)); } size_t const size = size_t(out - (char*)ZL_Output_ptr(outStream)); - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, size)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, size)); return ZL_returnSuccess(); } diff --git a/custom_transforms/json_extract/encode_json_extract.cpp b/custom_transforms/json_extract/encode_json_extract.cpp index 128efcea4..9fe42c8a7 100644 --- a/custom_transforms/json_extract/encode_json_extract.cpp +++ b/custom_transforms/json_extract/encode_json_extract.cpp @@ -64,15 +64,16 @@ class Buffer { /// Commit a variable size stream ZL_Report commit(std::vector const& fieldSizes) { + ZL_RESULT_DECLARE_SCOPE_REPORT(nullptr); uint32_t* const out = ZL_Output_reserveStringLens(stream_, fieldSizes.size()); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); if (fieldSizes.size() > 0) { memcpy(out, fieldSizes.data(), sizeof(uint32_t) * fieldSizes.size()); } - ZL_RET_R_IF_ERR(ZL_Output_commit(stream_, fieldSizes.size())); + ZL_ERR_IF_ERR(ZL_Output_commit(stream_, fieldSizes.size())); return ZL_returnSuccess(); } @@ -142,10 +143,11 @@ class Extracted { ZL_Report commit() { - ZL_RET_R_IF_ERR(json_.commit()); - ZL_RET_R_IF_ERR(ints_.commit(intLengths_)); - ZL_RET_R_IF_ERR(floats_.commit(floatLengths_)); - ZL_RET_R_IF_ERR(strs_.commit(strLengths_)); + ZL_RESULT_DECLARE_SCOPE_REPORT(nullptr); + ZL_ERR_IF_ERR(json_.commit()); + ZL_ERR_IF_ERR(ints_.commit(intLengths_)); + ZL_ERR_IF_ERR(floats_.commit(floatLengths_)); + ZL_ERR_IF_ERR(strs_.commit(strLengths_)); return ZL_returnSuccess(); } @@ -468,6 +470,7 @@ void validateExtraction(Extracted const& extracted) ZL_Report jsonExtractEncode(ZL_Encoder* eictx, const ZL_Input* input) noexcept { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); std::string_view src{ (char const*)ZL_Input_ptr(input), ZL_Input_numElts(input) }; @@ -480,7 +483,7 @@ ZL_Report jsonExtractEncode(ZL_Encoder* eictx, const ZL_Input* input) noexcept } validateExtraction(extracted); - ZL_RET_R_IF_ERR(extracted.commit()); + ZL_ERR_IF_ERR(extracted.commit()); return ZL_returnSuccess(); } diff --git a/custom_transforms/json_extract/tests/BUCK b/custom_transforms/json_extract/tests/BUCK index 0d33d69df..a02a6fa0b 100644 --- a/custom_transforms/json_extract/tests/BUCK +++ b/custom_transforms/json_extract/tests/BUCK @@ -3,13 +3,14 @@ # @noautodeps load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_fuzzers") +load("../../../defs.bzl", "relative_headers", "zs_fuzzers") oncall("data_compression") cpp_library( name = "json_extract_test_data", - headers = ["json_extract_test_data.h"], + headers = relative_headers(["json_extract_test_data.h"]), + header_namespace = "", exported_deps = [ "//folly:dynamic", "//folly:json", @@ -20,10 +21,10 @@ cpp_unittest( name = "test_json_extract", srcs = ["test_json_extract.cpp"], deps = [ + "..:json_extract", + "../../..:zstronglib", + "../../../tools:zstrong_cpp", ":json_extract_test_data", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_transforms/json_extract:json_extract", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", ], ) @@ -36,10 +37,10 @@ zs_fuzzers( ("JsonExtractTest", "FuzzDecompress"), ], deps = [ + "..:json_extract", + "../../../tests:fuzz_utils", + "../../../tools:zstrong_cpp", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", ":json_extract_test_data", - "//data_compression/experimental/zstrong/custom_transforms/json_extract:json_extract", - "//data_compression/experimental/zstrong/tests:fuzz_utils", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", ], ) diff --git a/custom_transforms/json_extract/tests/fuzz_json_extract.cpp b/custom_transforms/json_extract/tests/fuzz_json_extract.cpp index 84639532a..d5531e4fb 100644 --- a/custom_transforms/json_extract/tests/fuzz_json_extract.cpp +++ b/custom_transforms/json_extract/tests/fuzz_json_extract.cpp @@ -13,20 +13,22 @@ using namespace ::testing; -namespace zstrong::tests { +namespace openzl::tests { +using namespace zstrong; + namespace { std::string compressJson(std::string_view data) { - CGraph cgraph; + zstrong::CGraph cgraph; auto node = ZS2_Compressor_registerJsonExtract(cgraph.get(), 0); std::vector store(4, ZL_GRAPH_STORE); ZL_GraphID graph = ZL_Compressor_registerStaticGraph_fromNode( cgraph.get(), node, store.data(), store.size()); cgraph.unwrap(ZL_Compressor_selectStartingGraphID(cgraph.get(), graph)); - CCtx cctx; + zstrong::CCtx cctx; std::string compressed; compressed.resize(data.size() * 6 + 1024); - compress(cctx, &compressed, data, cgraph); + zstrong::compress(cctx, &compressed, data, cgraph); return compressed; } @@ -34,9 +36,9 @@ std::string decompressJson( std::string_view compressed, std::optional maxDstSize = std::nullopt) { - DCtx dctx; + zstrong::DCtx dctx; dctx.unwrap(ZS2_DCtx_registerJsonExtract(dctx.get(), 0)); - return decompress(dctx, compressed, maxDstSize); + return zstrong::decompress(dctx, compressed, maxDstSize); } std::vector const& compressExamples() @@ -87,4 +89,4 @@ FUZZ(JsonExtractTest, FuzzDecompress) } } -} // namespace zstrong::tests +} // namespace openzl::tests diff --git a/custom_transforms/json_extract/tests/json_extract_test_data.h b/custom_transforms/json_extract/tests/json_extract_test_data.h index f1a105b4d..db0801ddd 100644 --- a/custom_transforms/json_extract/tests/json_extract_test_data.h +++ b/custom_transforms/json_extract/tests/json_extract_test_data.h @@ -7,7 +7,7 @@ #include #include -namespace zstrong::tests { +namespace openzl::tests { template int64_t genInt(Gen& gen) @@ -104,4 +104,4 @@ inline std::string genJsonLikeData(size_t bytes) return genJsonLikeData(gen, bytes); } -} // namespace zstrong::tests +} // namespace openzl::tests diff --git a/custom_transforms/json_extract/tests/test_json_extract.cpp b/custom_transforms/json_extract/tests/test_json_extract.cpp index 5382dff58..6924db466 100644 --- a/custom_transforms/json_extract/tests/test_json_extract.cpp +++ b/custom_transforms/json_extract/tests/test_json_extract.cpp @@ -14,26 +14,26 @@ using namespace ::testing; -namespace zstrong::tests { +namespace openzl::tests { namespace { std::string compressJson(std::string_view data) { - CGraph cgraph; + zstrong::CGraph cgraph; auto node = ZS2_Compressor_registerJsonExtract(cgraph.get(), 0); std::vector store(4, ZL_GRAPH_STORE); ZL_GraphID graph = ZL_Compressor_registerStaticGraph_fromNode( cgraph.get(), node, store.data(), store.size()); cgraph.unwrap(ZL_Compressor_selectStartingGraphID(cgraph.get(), graph)); - CCtx cctx; - return compress(cctx, data, cgraph); + zstrong::CCtx cctx; + return zstrong::compress(cctx, data, cgraph); } std::string decompressJson(std::string_view compressed) { - DCtx dctx; + zstrong::DCtx dctx; dctx.unwrap(ZS2_DCtx_registerJsonExtract(dctx.get(), 0)); - return decompress(dctx, compressed); + return zstrong::decompress(dctx, compressed); } void testRoundTripJson(std::string_view data) @@ -114,4 +114,4 @@ TEST(TestJsonExtract, JsonLikeData) } } // namespace -} // namespace zstrong::tests +} // namespace openzl::tests diff --git a/custom_transforms/parse/BUCK b/custom_transforms/parse/BUCK index 4ab8c82be..1bc2ff339 100644 --- a/custom_transforms/parse/BUCK +++ b/custom_transforms/parse/BUCK @@ -1,6 +1,7 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") +load("../../defs.bzl", "relative_headers") oncall("data_compression") @@ -12,14 +13,15 @@ cpp_library( "decode_parse_int.cpp", "encode_parse.cpp", ], - headers = [ + headers = relative_headers([ "decode_parse.h", "encode_parse.h", - ], + ]), + header_namespace = "", deps = [ "//folly:conv", ], exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "../..:zstronglib", ], ) diff --git a/custom_transforms/parse/decode_parse_float.cpp b/custom_transforms/parse/decode_parse_float.cpp index 75b40b528..78e1ed7dc 100644 --- a/custom_transforms/parse/decode_parse_float.cpp +++ b/custom_transforms/parse/decode_parse_float.cpp @@ -59,21 +59,22 @@ namespace { template ZL_Report parseDecode(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* numbers = inputs[0]; ZL_Input const* exceptionIndices = inputs[1]; ZL_Input const* exceptions = inputs[2]; - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( ZL_Input_numElts(exceptionIndices), - ZL_Input_numElts(exceptions)); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(exceptionIndices), 4); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(numbers), sizeof(T)); + ZL_Input_numElts(exceptions), + corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(exceptionIndices), 4, corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(numbers), sizeof(T), corruption); size_t const outBound = ZL_Input_contentSize(exceptions) + ZL_Input_numElts(numbers) * maxStrLen(T{}); ZL_Output* outStream = ZL_Decoder_create1OutStream(dictx, outBound, 1); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); StreamAppender outAppender{ outStream }; @@ -81,7 +82,7 @@ ZL_Report parseDecode(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept ZL_Input_numElts(numbers) + ZL_Input_numElts(exceptions); uint32_t* fieldSizes = ZL_Output_reserveStringLens(outStream, nbElts); - ZL_RET_R_IF_NULL(allocation, fieldSizes); + ZL_ERR_IF_NULL(fieldSizes, allocation); auto nums = (T const*)ZL_Input_ptr(numbers); auto const numsEnd = nums + ZL_Input_numElts(numbers); @@ -99,16 +100,16 @@ ZL_Report parseDecode(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept outAppender.append(exData, exSize); exData += exSize; } else { - ZL_RET_R_IF_EQ(srcSize_tooSmall, nums, numsEnd); + ZL_ERR_IF_EQ(nums, numsEnd, srcSize_tooSmall); folly::toAppend(*nums++, &outAppender); } fieldSizes[i] = outAppender.commitField(); } - ZL_RET_R_IF_NE(corruption, nums, numsEnd); - ZL_RET_R_IF_NE(corruption, exIdxs, exIdxsEnd); + ZL_ERR_IF_NE(nums, numsEnd, corruption); + ZL_ERR_IF_NE(exIdxs, exIdxsEnd, corruption); - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, nbElts)); return ZL_returnSuccess(); } diff --git a/custom_transforms/parse/decode_parse_int.cpp b/custom_transforms/parse/decode_parse_int.cpp index facac1b0f..02da3b697 100644 --- a/custom_transforms/parse/decode_parse_int.cpp +++ b/custom_transforms/parse/decode_parse_int.cpp @@ -206,6 +206,7 @@ ZL_Report parseDecodeIntFillFieldSizes( uint32_t const* exSizes, uint32_t* fieldSizes) { + ZL_RESULT_DECLARE_SCOPE_REPORT(nullptr); ZL_ASSERT_LE(nbNums, nbElts); auto const numsEnd = nums + nbNums; auto exIdxsEnd = exIdxs + (nbElts - nbNums); @@ -216,14 +217,14 @@ ZL_Report parseDecodeIntFillFieldSizes( ++exIdxs; fieldSize = *exSizes++; } else { - ZL_RET_R_IF_EQ(srcSize_tooSmall, nums, numsEnd); + ZL_ERR_IF_EQ(nums, numsEnd, srcSize_tooSmall); fieldSize = numberStringLength(*(nums++)); } fieldSizes[i] = fieldSize; outSize += fieldSize; } - ZL_RET_R_IF_NE(corruption, nums, numsEnd); - ZL_RET_R_IF_NE(corruption, exIdxs, exIdxsEnd); + ZL_ERR_IF_NE(nums, numsEnd, corruption); + ZL_ERR_IF_NE(exIdxs, exIdxsEnd, corruption); return ZL_returnValue(outSize); } @@ -314,16 +315,17 @@ namespace { template ZL_Report parseDecodeInt(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* numbers = inputs[0]; ZL_Input const* exceptionIndices = inputs[1]; ZL_Input const* exceptions = inputs[2]; - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( ZL_Input_numElts(exceptionIndices), - ZL_Input_numElts(exceptions)); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(exceptionIndices), 4); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(numbers), sizeof(T)); + ZL_Input_numElts(exceptions), + corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(exceptionIndices), 4, corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(numbers), sizeof(T), corruption); // Note: we calculate the maximal outbound and allocate a matching outstream // this is inefficient as before we need the actual out stream we calculate @@ -334,13 +336,13 @@ ZL_Report parseDecodeInt(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept size_t const outBound = ZL_Input_contentSize(exceptions) + ZL_Input_numElts(numbers) * maxStrLen(T{}); ZL_Output* outStream = ZL_Decoder_create1OutStream(dictx, outBound, 1); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); size_t const nbElts = ZL_Input_numElts(numbers) + ZL_Input_numElts(exceptions); uint32_t* fieldSizes = ZL_Output_reserveStringLens(outStream, nbElts); - ZL_RET_R_IF_NULL(allocation, fieldSizes); + ZL_ERR_IF_NULL(fieldSizes, allocation); auto nums = (T const*)ZL_Input_ptr(numbers); auto nbNums = ZL_Input_numElts(numbers); @@ -350,7 +352,8 @@ ZL_Report parseDecodeInt(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept auto exSizes = ZL_Input_stringLens(exceptions); auto exDataSize = ZL_Input_contentSize(exceptions); - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, outSize, parseDecodeIntFillFieldSizes( nbElts, nums, nbNums, exIdxs, exSizes, fieldSizes)); @@ -366,7 +369,7 @@ ZL_Report parseDecodeInt(ZL_Decoder* dictx, ZL_Input const* inputs[]) noexcept fieldSizes, outSize, (uint8_t*)ZL_Output_ptr(outStream)); - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, nbElts)); return ZL_returnSuccess(); } diff --git a/custom_transforms/parse/encode_parse.cpp b/custom_transforms/parse/encode_parse.cpp index fee92e35e..291b50413 100644 --- a/custom_transforms/parse/encode_parse.cpp +++ b/custom_transforms/parse/encode_parse.cpp @@ -29,6 +29,7 @@ ZL_Report fillVSFStream( size_t idx, std::vector const& elts) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); size_t totalSize = 0; for (auto const& elt : elts) { totalSize += elt.size(); @@ -36,10 +37,10 @@ ZL_Report fillVSFStream( ZL_Output* const stream = ZL_Encoder_createTypedStream(eictx, idx, totalSize, 1); - ZL_RET_R_IF_NULL(allocation, stream); + ZL_ERR_IF_NULL(stream, allocation); auto* const sizes = ZL_Output_reserveStringLens(stream, elts.size()); - ZL_RET_R_IF_NULL(allocation, sizes); + ZL_ERR_IF_NULL(sizes, allocation); auto content = (char*)ZL_Output_ptr(stream); @@ -49,7 +50,7 @@ ZL_Report fillVSFStream( sizes[i] = elts[i].size(); } - ZL_RET_R_IF_ERR(ZL_Output_commit(stream, elts.size())); + ZL_ERR_IF_ERR(ZL_Output_commit(stream, elts.size())); return ZL_returnSuccess(); } @@ -315,6 +316,7 @@ size_t parseEncodeKernel( template ZL_Report parseEncode(ZL_Encoder* eictx, ZL_Input const* input) noexcept { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); std::vector exceptions; std::vector exceptionIndices; @@ -324,28 +326,28 @@ ZL_Report parseEncode(ZL_Encoder* eictx, ZL_Input const* input) noexcept ZL_Output* numbers = ZL_Encoder_createTypedStream(eictx, 0, nbElts, sizeof(T)); - ZL_RET_R_IF_NULL(allocation, numbers); + ZL_ERR_IF_NULL(numbers, allocation); T* const nums = (T*)ZL_Output_ptr(numbers); size_t const numNums = parseEncodeKernel( nums, exceptions, exceptionIndices, data, sizes, nbElts); - ZL_RET_R_IF_ERR(ZL_Output_commit(numbers, numNums)); + ZL_ERR_IF_ERR(ZL_Output_commit(numbers, numNums)); ZL_Output* exceptionIndicesStream = ZL_Encoder_createTypedStream(eictx, 1, exceptionIndices.size(), 4); - ZL_RET_R_IF_NULL(allocation, exceptionIndicesStream); + ZL_ERR_IF_NULL(exceptionIndicesStream, allocation); if (exceptionIndices.size() > 0) memcpy(ZL_Output_ptr(exceptionIndicesStream), exceptionIndices.data(), exceptionIndices.size() * 4); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Output_commit(exceptionIndicesStream, exceptionIndices.size())); - ZL_RET_R_IF_ERR(fillVSFStream(eictx, 2, exceptions)); + ZL_ERR_IF_ERR(fillVSFStream(eictx, 2, exceptions)); return ZL_returnSuccess(); } diff --git a/custom_transforms/parse/tests/BUCK b/custom_transforms/parse/tests/BUCK index 392e13c37..405229cf6 100644 --- a/custom_transforms/parse/tests/BUCK +++ b/custom_transforms/parse/tests/BUCK @@ -4,13 +4,14 @@ load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_fuzzers") +load("../../../defs.bzl", "relative_headers", "zs_fuzzers") oncall("data_compression") cpp_library( name = "parse_test_data", - headers = ["parse_test_data.h"], + headers = relative_headers(["parse_test_data.h"]), + header_namespace = "", deps = [ "//folly:conv", ], @@ -20,10 +21,10 @@ cpp_unittest( name = "test_parse", srcs = ["test_parse.cpp"], deps = [ + "..:parse", + "../../..:zstronglib", + "../../../tools:zstrong_cpp", ":parse_test_data", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_transforms/parse:parse", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", "//folly:conv", ], ) @@ -37,10 +38,10 @@ zs_fuzzers( ("ParseTest", "FuzzFloat64Decompress"), ], deps = [ + "..:parse", + "../../../tests:fuzz_utils", + "../../../tools:zstrong_cpp", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", ":parse_test_data", - "//data_compression/experimental/zstrong/custom_transforms/parse:parse", - "//data_compression/experimental/zstrong/tests:fuzz_utils", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", ], ) diff --git a/custom_transforms/parse/tests/fuzz_parse.cpp b/custom_transforms/parse/tests/fuzz_parse.cpp index d9fbd4bc3..3c8526cb7 100644 --- a/custom_transforms/parse/tests/fuzz_parse.cpp +++ b/custom_transforms/parse/tests/fuzz_parse.cpp @@ -11,7 +11,7 @@ using namespace ::testing; -namespace zstrong::tests::parse { +namespace openzl::tests::parse { namespace { template std::vector const& fieldExamples() @@ -102,4 +102,4 @@ FUZZ(ParseTest, FuzzFloat64Decompress) } } -} // namespace zstrong::tests::parse +} // namespace openzl::tests::parse diff --git a/custom_transforms/parse/tests/parse_test_data.h b/custom_transforms/parse/tests/parse_test_data.h index 9c515c674..45e990620 100644 --- a/custom_transforms/parse/tests/parse_test_data.h +++ b/custom_transforms/parse/tests/parse_test_data.h @@ -17,7 +17,7 @@ #include "openzl/zl_public_nodes.h" #include "tools/zstrong_cpp.h" -namespace zstrong::tests::parse { +namespace openzl::tests::parse { inline ZL_SetStringLensInstructions setFieldSizes( ZL_SetStringLensState* state, ZL_Input const*) @@ -54,7 +54,7 @@ inline std::pair> flatten( inline std::string compress(std::vector const& data, Type type) { - CGraph cgraph; + zstrong::CGraph cgraph; auto node = type == Type::Int64 ? ZS2_Compressor_registerParseInt64(cgraph.get(), 0) : ZS2_Compressor_registerParseFloat64(cgraph.get(), 1); @@ -70,7 +70,7 @@ inline std::string compress(std::vector const& data, Type type) auto const content = flatten(data).first; auto const compressBound = data.size() * 5 + content.size() * 2 + 1000; - CCtx cctx; + zstrong::CCtx cctx; cctx.unwrap(ZL_CCtx_setParameter( cctx.get(), ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION)); cctx.unwrap(ZL_CCtx_refCompressor(cctx.get(), cgraph.get())); @@ -91,13 +91,13 @@ inline std::string decompress( Type type, std::optional maxDstSize = std::nullopt) { - DCtx dctx; + zstrong::DCtx dctx; if (type == Type::Int64) { dctx.unwrap(ZS2_DCtx_registerParseInt64(dctx.get(), 0)); } else { dctx.unwrap(ZS2_DCtx_registerParseFloat64(dctx.get(), 1)); } - return decompress(dctx, compressed, maxDstSize); + return zstrong::decompress(dctx, compressed, maxDstSize); } template @@ -143,4 +143,4 @@ inline std::vector genData(size_t bytes, Type type) return genData(gen, bytes, type); } -} // namespace zstrong::tests::parse +} // namespace openzl::tests::parse diff --git a/custom_transforms/parse/tests/test_parse.cpp b/custom_transforms/parse/tests/test_parse.cpp index 60b606ba2..5625a2f23 100644 --- a/custom_transforms/parse/tests/test_parse.cpp +++ b/custom_transforms/parse/tests/test_parse.cpp @@ -12,7 +12,7 @@ using namespace ::testing; -namespace zstrong::tests::parse { +namespace openzl::tests::parse { namespace { void testRoundTrip(std::vector const& data) @@ -35,93 +35,98 @@ TEST(TestParse, Basic) testRoundTrip({ "0.5e-5", "0.5e-6", "0.5e-7", "0.5e-8" }); testRoundTrip({ "0.5E-5", "0.5E-6", "0.5E-7", "0.5E-8" }); testRoundTrip({ "9223372036854775807", "-9223372036854775808" }); - testRoundTrip({ - "1", - "10", - "100", - "1000", - "10000", - "100000", - "1000000", - "10000000", - "100000000", - "1000000000", - "10000000000", - "100000000000", - "1000000000000", - "10000000000000", - "100000000000000", - "1000000000000000", - "10000000000000000", - "100000000000000000", - "1000000000000000000", - "10000000000000000000", - }); - testRoundTrip({ - "-1", - "-10", - "-100", - "-1000", - "-10000", - "-100000", - "-1000000", - "-10000000", - "-100000000", - "-1000000000", - "-10000000000", - "-100000000000", - "-1000000000000", - "-10000000000000", - "-100000000000000", - "-1000000000000000", - "-10000000000000000", - "-100000000000000000", - "-1000000000000000000", - "-100000000000000000000", - }); - testRoundTrip({ "0", - "9", - "99", - "999", - "9999", - "99999", - "999999", - "9999999", - "99999999", - "999999999", - "9999999999", - "99999999999", - "999999999999", - "9999999999999", - "99999999999999", - "999999999999999", - "9999999999999999", - "99999999999999999", - "999999999999999999", - "9999999999999999999" }); - testRoundTrip({ "-9", - "-99", - "-999", - "-9999", - "-99999", - "-999999", - "-9999999", - "-99999999", - "-999999999", - "-9999999999", - "-99999999999", - "-999999999999", - "-9999999999999", - "-99999999999999", - "-999999999999999", - "-9999999999999999", - "-99999999999999999", - "-999999999999999999", - "-9999999999999999999" }); - testRoundTrip({ "37303787483182993275", - "37303787483182993275", - "37303787483182993275", - "37303787483182993275" }); + testRoundTrip( + { + "1", + "10", + "100", + "1000", + "10000", + "100000", + "1000000", + "10000000", + "100000000", + "1000000000", + "10000000000", + "100000000000", + "1000000000000", + "10000000000000", + "100000000000000", + "1000000000000000", + "10000000000000000", + "100000000000000000", + "1000000000000000000", + "10000000000000000000", + }); + testRoundTrip( + { + "-1", + "-10", + "-100", + "-1000", + "-10000", + "-100000", + "-1000000", + "-10000000", + "-100000000", + "-1000000000", + "-10000000000", + "-100000000000", + "-1000000000000", + "-10000000000000", + "-100000000000000", + "-1000000000000000", + "-10000000000000000", + "-100000000000000000", + "-1000000000000000000", + "-100000000000000000000", + }); + testRoundTrip( + { "0", + "9", + "99", + "999", + "9999", + "99999", + "999999", + "9999999", + "99999999", + "999999999", + "9999999999", + "99999999999", + "999999999999", + "9999999999999", + "99999999999999", + "999999999999999", + "9999999999999999", + "99999999999999999", + "999999999999999999", + "9999999999999999999" }); + testRoundTrip( + { "-9", + "-99", + "-999", + "-9999", + "-99999", + "-999999", + "-9999999", + "-99999999", + "-999999999", + "-9999999999", + "-99999999999", + "-999999999999", + "-9999999999999", + "-99999999999999", + "-999999999999999", + "-9999999999999999", + "-99999999999999999", + "-999999999999999999", + "-9999999999999999999" }); + testRoundTrip( + { "37303787483182993275", + "37303787483182993275", + "37303787483182993275", + "37303787483182993275" }); } TEST(TestParse, Generated) @@ -160,4 +165,4 @@ TEST(TestParse, Random) } } // namespace -} // namespace zstrong::tests::parse +} // namespace openzl::tests::parse diff --git a/custom_transforms/thrift/BUCK b/custom_transforms/thrift/BUCK index c5cce9ca7..7285d6842 100644 --- a/custom_transforms/thrift/BUCK +++ b/custom_transforms/thrift/BUCK @@ -4,7 +4,7 @@ load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") load("@fbcode_macros//build_defs:thrift_library.bzl", "thrift_library") -load("//data_compression/experimental/zstrong:defs.bzl", "ZS_HEADER_INCLUDE_PATH") +load("../../defs.bzl", "relative_headers") oncall("data_compression") @@ -14,11 +14,13 @@ cpp_library( "*.cpp", "*.c", ]), - headers = glob(["*.h"]), + headers = relative_headers( + glob(["*.h"]), + ), + header_namespace = "", compiler_flags = [ "-DUSE_FOLLY", "-DUSE_BOOST", - ZS_HEADER_INCLUDE_PATH, "-Werror=switch", ], deps = [ @@ -28,8 +30,8 @@ cpp_library( "//thrift/lib/cpp2/protocol:protocol", ], exported_deps = [ + "../..:zstronglib", ":thrift_parse_config_schema-cpp2-types", - "//data_compression/experimental/zstrong:zstronglib", "//folly:range", "//folly:scope_guard", "//folly/io:iobuf", diff --git a/custom_transforms/thrift/binary_splitter.h b/custom_transforms/thrift/binary_splitter.h index 05654cea2..1a41673bd 100644 --- a/custom_transforms/thrift/binary_splitter.h +++ b/custom_transforms/thrift/binary_splitter.h @@ -6,6 +6,7 @@ #include "custom_transforms/thrift/parse_config.h" // @manual #include "custom_transforms/thrift/split_helpers.h" // @manual #include "custom_transforms/thrift/splitter.h" // @manual +#include "custom_transforms/thrift/thrift_errors.h" // @manual #include "custom_transforms/thrift/thrift_parsers.h" // @manual #include "custom_transforms/thrift/thrift_types.h" // @manual @@ -72,7 +73,7 @@ BinaryParser::parseListHeader(const BinaryParser::PT::Iterator& current) { const auto elemType = (TType)readValue(); if (elemType > TType::T_FLOAT) { - throw std::runtime_error("Illegal list element type!"); + throw ThriftMalformedInputError("Illegal list element type!"); } writeType(elemType); @@ -88,7 +89,7 @@ DBinaryParser::unparseListHeader(const DBinaryParser::PT::Iterator& current) { const auto elemType = readType(); if (elemType > TType::T_FLOAT) { - throw std::runtime_error("Illegal list element type!"); + throw ThriftMalformedInputError("Illegal list element type!"); } writeValue((uint8_t)elemType); @@ -108,10 +109,10 @@ BinaryParser::parseMapHeader(const BinaryParser::PT::Iterator& current) const auto keyType = (TType)readValue(); const auto valueType = (TType)readValue(); if (keyType > TType::T_FLOAT) { - throw std::runtime_error("Illegal map key type!"); + throw ThriftMalformedInputError("Illegal map key type!"); } if (valueType > TType::T_FLOAT) { - throw std::runtime_error("Illegal map value type!"); + throw ThriftMalformedInputError("Illegal map value type!"); } writeType(keyType); writeType(valueType); @@ -134,10 +135,10 @@ DBinaryParser::unparseMapHeader(const DBinaryParser::PT::Iterator& current) const auto keyType = readType(); const auto valueType = readType(); if (keyType > TType::T_FLOAT) { - throw std::runtime_error("Illegal map key type!"); + throw ThriftMalformedInputError("Illegal map key type!"); } if (valueType > TType::T_FLOAT) { - throw std::runtime_error("Illegal map value type!"); + throw ThriftMalformedInputError("Illegal map value type!"); } writeValue((uint8_t)keyType); writeValue((uint8_t)valueType); @@ -158,7 +159,7 @@ ZL_FORCE_INLINE_ATTR BinaryParser::PT::Iterator BinaryParser::parseFieldHeader( { const auto type = (TType)readValue(); if (type > TType::T_FLOAT) { - throw std::runtime_error("Illegal type!"); + throw ThriftMalformedInputError("Illegal type!"); } writeType(type); @@ -188,7 +189,7 @@ DBinaryParser::unparseFieldHeader( // Get the type const auto type = readType(); if (type > TType::T_FLOAT) { - throw std::runtime_error("Illegal type!"); + throw ThriftMalformedInputError("Illegal type!"); } writeValue((uint8_t)type); @@ -291,7 +292,7 @@ void BinaryParser::advance(const BinaryParser::PT::Iterator& current) case TType::T_UTF16: case TType::T_STREAM: default: { - throw std::runtime_error( + throw ThriftMalformedInputError( "Unexpected thrift type: " + thriftTypeToString(type)); } } @@ -378,7 +379,7 @@ void DBinaryParser::advance(const DBinaryParser::PT::Iterator& current) case TType::T_UTF16: case TType::T_STREAM: default: { - throw std::runtime_error( + throw ThriftMalformedInputError( "Unexpected thrift type: " + thriftTypeToString(type)); } } @@ -386,7 +387,7 @@ void DBinaryParser::advance(const DBinaryParser::PT::Iterator& current) void BinaryParser::parseTulipV2Header(const PT::Iterator&) { - throw std::runtime_error{ + throw InvalidConfigError{ "TulipV2 mode is not compatible with binary protocol!" }; } diff --git a/custom_transforms/thrift/compact_splitter.h b/custom_transforms/thrift/compact_splitter.h index 0af622498..6e57771ee 100644 --- a/custom_transforms/thrift/compact_splitter.h +++ b/custom_transforms/thrift/compact_splitter.h @@ -6,6 +6,7 @@ #include "custom_transforms/thrift/parse_config.h" // @manual #include "custom_transforms/thrift/split_helpers.h" // @manual #include "custom_transforms/thrift/splitter.h" // @manual +#include "custom_transforms/thrift/thrift_errors.h" // @manual #include "custom_transforms/thrift/thrift_parsers.h" // @manual #include "custom_transforms/thrift/thrift_types.h" // @manual @@ -87,7 +88,7 @@ ZL_FORCE_INLINE_ATTR constexpr uint8_t CompactParser::parseBool(uint8_t byte) if (byte == trueVal || byte == falseVal) { return byte == trueVal; } - throw std::runtime_error{ "Invalid boolean value!" }; + throw ThriftMalformedInputError{ "Invalid boolean value!" }; } ZL_FORCE_INLINE_ATTR constexpr uint8_t DCompactParser::unparseBool(uint8_t byte) @@ -96,7 +97,7 @@ ZL_FORCE_INLINE_ATTR constexpr uint8_t DCompactParser::unparseBool(uint8_t byte) return (uint8_t)(byte == 1 ? CType::CT_BOOLEAN_TRUE : CType::CT_BOOLEAN_FALSE); } - throw std::runtime_error{ "Invalid boolean value!" }; + throw ThriftMalformedInputError{ "Invalid boolean value!" }; } ZL_FORCE_INLINE_ATTR constexpr TType CompactParser::parseType( @@ -106,13 +107,13 @@ ZL_FORCE_INLINE_ATTR constexpr TType CompactParser::parseType( if (interp == TypeParse::kForCollection && rawType == 2 /* CT_BOOL_FALSE */) { // Reject non-canonical Thrift - throw std::runtime_error{ + throw ThriftUnhandledInputError{ "CT_BOOL_FALSE is not expected in collection headers" }; } TType const type = CTypeToTType.at(rawType); if (type == TType::T_VOID) { - throw std::runtime_error{ "T_VOID is not a valid wire value!" }; + throw ThriftMalformedInputError{ "T_VOID is not a valid wire value!" }; } return type; } @@ -123,7 +124,7 @@ ZL_FORCE_INLINE_ATTR constexpr uint8_t DCompactParser::unparseType(TType type) static_assert(sizeof(CType) == sizeof(uint8_t)); const CType rawType = TTypeToCType.at(static_cast(type)); if (rawType == CType::CT_VOID) { - throw std::runtime_error{ fmt::format( + throw ThriftMalformedInputError{ fmt::format( "Type value {} from the wire doesn't map to CType enum!", static_cast(type)) }; } @@ -178,7 +179,7 @@ CompactParser::parseListHeader(const CompactParser::PT::Iterator& current) size = readValue(); if (size < 15) { // Reject non-canonical Thrift - throw std::runtime_error{ + throw ThriftUnhandledInputError{ "Invalid list header: size < 15 but varint is present" }; } @@ -291,7 +292,7 @@ CompactParser::parseFieldHeader( if (type == TType::T_STOP) { if (byte != 0) { // Reject non-canonical Thrift - throw std::runtime_error{ + throw ThriftUnhandledInputError{ "Invalid field header: non-zero stop byte" }; } @@ -319,7 +320,7 @@ CompactParser::parseFieldHeader( // Reject non-canonical Thrift if (rawIdDelta >= 1 && rawIdDelta <= 15 && deltaNibble == 0) { - throw std::runtime_error{ + throw ThriftUnhandledInputError{ "Invalid field header: delta is small but varint is present" }; } @@ -466,7 +467,7 @@ void CompactParser::advance(const CompactParser::PT::Iterator& current) case TType::T_UTF16: case TType::T_STREAM: default: { - throw std::runtime_error( + throw ThriftMalformedInputError( "Unexpected thrift type: " + thriftTypeToString(type)); } } @@ -543,7 +544,7 @@ bool DCompactParser::advanceIfTrivial( case TType::T_UTF16: case TType::T_STREAM: default: { - throw std::runtime_error( + throw ThriftMalformedInputError( "Unexpected thrift type: " + thriftTypeToString(type)); } } @@ -633,7 +634,7 @@ void CompactParser::parseTulipV2Header(const PT::Iterator& current) headerSize++; if (byte0 != uint8_t(0x80) || byte1 != uint8_t(0x00)) { - throw std::runtime_error("Bad TulipV2 header"); + throw ThriftMalformedInputError("Bad TulipV2 header"); } writeValue(it.lengths(), folly::to(headerSize)); diff --git a/custom_transforms/thrift/directed_selector.c b/custom_transforms/thrift/directed_selector.c index cc039091f..2a38f8bf9 100644 --- a/custom_transforms/thrift/directed_selector.c +++ b/custom_transforms/thrift/directed_selector.c @@ -3,8 +3,9 @@ #include "custom_transforms/thrift/directed_selector.h" // @manual #include "openzl/zl_data.h" +#include "openzl/zl_selector.h" -static ZL_GraphID directed_selector_impl( +ZL_GraphID directed_selector_impl( const ZL_Selector* selCtx, const ZL_Input* inputStream, const ZL_GraphID* customGraphs, @@ -26,18 +27,36 @@ static ZL_GraphID directed_selector_impl( return customGraphs[idx]; } -ZL_SelectorDesc buildDirectedSelectorDesc( - ZL_Type type, +ZL_GraphID registerDirectedSelectorBaseGraph(ZL_Compressor* compressor) +{ + ZL_GraphID baseGraph = + ZL_Compressor_getGraph(compressor, "zl_custom.directed_selector"); + if (baseGraph.gid != ZL_GRAPH_ILLEGAL.gid) { + return baseGraph; + } + + ZL_SelectorDesc const baseDesc = { + .selector_f = directed_selector_impl, + .inStreamType = ZL_Type_any, + .customGraphs = NULL, + .nbCustomGraphs = 0, + .localParams = {}, + .name = "!zl_custom.directed_selector", + }; + return ZL_Compressor_registerSelectorGraph(compressor, &baseDesc); +} + +ZL_GraphID registerDirectedSelectorGraph( + ZL_Compressor* compressor, const ZL_GraphID* successors, size_t nbSuccessors) { - return (ZL_SelectorDesc){ - .selector_f = directed_selector_impl, - .inStreamType = type, + ZL_GraphID baseGraph = registerDirectedSelectorBaseGraph(compressor); + + ZL_ParameterizedGraphDesc const paramDesc = { + .graph = baseGraph, .customGraphs = successors, .nbCustomGraphs = nbSuccessors, - .localParams = { .intParams = { .intParams = NULL, .nbIntParams = 0 }, - .copyParams = { .copyParams = NULL, - .nbCopyParams = 0 } }, }; + return ZL_Compressor_registerParameterizedGraph(compressor, ¶mDesc); } diff --git a/custom_transforms/thrift/directed_selector.h b/custom_transforms/thrift/directed_selector.h index a2f01778b..364554fde 100644 --- a/custom_transforms/thrift/directed_selector.h +++ b/custom_transforms/thrift/directed_selector.h @@ -2,12 +2,13 @@ #pragma once +#include "openzl/zl_compressor.h" +#include "openzl/zl_selector.h" + #ifdef __cplusplus extern "C" { #endif -#include "openzl/zl_selector.h" - /** * The int metadata id / key that should be set with the index of the successor * to use. @@ -15,12 +16,42 @@ extern "C" { static const int kDirectedSelectorMetadataID = 0; /** - * A selector that does what it's told. The selector expects to receive - * direction as to which successor to select in the form of an integer metadata - * on the input stream (at kDirectedSelectorMetadataID). + * The directed selector implementation function. + * Selects a successor graph based on integer metadata at + * kDirectedSelectorMetadataID. + */ +ZL_GraphID directed_selector_impl( + const ZL_Selector* selCtx, + const ZL_Input* inputStream, + const ZL_GraphID* customGraphs, + size_t nbCustomGraphs); + +/** + * Registers the base directed selector graph if not already registered. + * The base graph is serializable and can be parameterized with successors. + * + * @param compressor The compressor to register the graph with. + * @return The base graph ID, or ZL_GRAPH_ILLEGAL on error. + */ +ZL_GraphID registerDirectedSelectorBaseGraph(ZL_Compressor* compressor); + +/** + * A directed selector graph that selects a successor based on integer metadata. + * The selector expects to receive direction as to which successor to select + * in the form of an integer metadata on the input stream (at + * kDirectedSelectorMetadataID). + * + * This function registers a base graph (if not already registered) and returns + * a parameterized graph with the provided successors. The base graph is + * serializable. + * + * @param compressor The compressor to register the graph with. + * @param successors Array of successor graph IDs to select from. + * @param nbSuccessors Number of successors in the array. + * @return The parameterized graph ID, or ZL_GRAPH_ILLEGAL on error. */ -ZL_SelectorDesc buildDirectedSelectorDesc( - ZL_Type type, +ZL_GraphID registerDirectedSelectorGraph( + ZL_Compressor* compressor, const ZL_GraphID* successors, size_t nbSuccessors); diff --git a/custom_transforms/thrift/empty_input_selector.c b/custom_transforms/thrift/empty_input_selector.c index 54ed76ec7..0bc3d4f93 100644 --- a/custom_transforms/thrift/empty_input_selector.c +++ b/custom_transforms/thrift/empty_input_selector.c @@ -4,15 +4,13 @@ #include "openzl/zl_data.h" -static ZL_GraphID empty_input_selector_impl( +ZL_GraphID empty_input_selector_impl( const ZL_Selector* selCtx, const ZL_Input* inputStream, const ZL_GraphID* customGraphs, size_t nbCustomGraphs) { (void)selCtx; - assert(customGraphs != NULL); - assert(nbCustomGraphs == 2); if (customGraphs == NULL || nbCustomGraphs != 2) { return (ZL_GraphID){ 0 @@ -37,3 +35,39 @@ ZL_SelectorDesc buildEmptyInputSelectorDesc( .nbCopyParams = 0 } }, }; } + +ZL_GraphID registerEmptyInputSelectorBaseGraph(ZL_Compressor* compressor) +{ + ZL_GraphID baseGraph = ZL_Compressor_getGraph( + compressor, "zl_custom.empty_input_selector"); + if (baseGraph.gid != ZL_GRAPH_ILLEGAL.gid) { + return baseGraph; + } + + ZL_SelectorDesc const baseDesc = { + .selector_f = empty_input_selector_impl, + .inStreamType = ZL_Type_any, + .customGraphs = NULL, + .nbCustomGraphs = 0, + .localParams = { .intParams = { .intParams = NULL, .nbIntParams = 0 }, + .copyParams = { .copyParams = NULL, + .nbCopyParams = 0 } }, + .name = "!zl_custom.empty_input_selector", + }; + return ZL_Compressor_registerSelectorGraph(compressor, &baseDesc); +} + +ZL_GraphID registerEmptyInputSelectorGraph( + ZL_Compressor* compressor, + const ZL_GraphID* successors, + size_t nbSuccessors) +{ + ZL_GraphID baseGraph = registerEmptyInputSelectorBaseGraph(compressor); + + ZL_ParameterizedGraphDesc const paramDesc = { + .graph = baseGraph, + .customGraphs = successors, + .nbCustomGraphs = nbSuccessors, + }; + return ZL_Compressor_registerParameterizedGraph(compressor, ¶mDesc); +} diff --git a/custom_transforms/thrift/empty_input_selector.h b/custom_transforms/thrift/empty_input_selector.h index 77516092c..691a2f3b5 100644 --- a/custom_transforms/thrift/empty_input_selector.h +++ b/custom_transforms/thrift/empty_input_selector.h @@ -2,11 +2,22 @@ #pragma once +#include "openzl/zl_compressor.h" +#include "openzl/zl_selector.h" + #ifdef __cplusplus extern "C" { #endif -#include "openzl/zl_selector.h" +/** + * The empty input selector implementation function. + * Routes to successors[0] if input is empty, successors[1] otherwise. + */ +ZL_GraphID empty_input_selector_impl( + const ZL_Selector* selCtx, + const ZL_Input* inputStream, + const ZL_GraphID* customGraphs, + size_t nbCustomGraphs); /** * A selector that behaves as follows: @@ -22,6 +33,24 @@ ZL_SelectorDesc buildEmptyInputSelectorDesc( const ZL_GraphID* successors, size_t nbSuccessors); +/** + * Registers the base empty input selector graph if not already registered. + */ +ZL_GraphID registerEmptyInputSelectorBaseGraph(ZL_Compressor* compressor); + +/** + * Registers a serializable empty input selector graph. + * The base graph is registered as a named anchor, and the successors + * are captured in a parameterized graph layer (serializable). + * + * @param successors Array of exactly 2 graph IDs: [empty, non-empty]. + * @param nbSuccessors Must be 2. + */ +ZL_GraphID registerEmptyInputSelectorGraph( + ZL_Compressor* compressor, + const ZL_GraphID* successors, + size_t nbSuccessors); + #ifdef __cplusplus } #endif diff --git a/custom_transforms/thrift/experiments/adlogger/parse_batch_file.cpp b/custom_transforms/thrift/experiments/adlogger/parse_batch_file.cpp index af598560b..de99a8c58 100644 --- a/custom_transforms/thrift/experiments/adlogger/parse_batch_file.cpp +++ b/custom_transforms/thrift/experiments/adlogger/parse_batch_file.cpp @@ -1,5 +1,6 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +#include "admarket/adlogger/parser/if/BatchAdsLogLineData.h" #include "admarket/adlogger/parser/if/gen-cpp2/adlogger_parser_types.h" #include "admarket/training_data/feature_store/common/FeatureStoreSerialization.h" #include "folly/FileUtil.h" @@ -9,6 +10,7 @@ using facebook::adlogger::parser::AdsLogLineData; using facebook::adlogger::parser::AdsLogLineDataBatch; using facebook::adlogger::parser::BatchAdsLogLineData; +using facebook::adlogger::parser::makeBatchAdsLogLineData; using facebook::training_data::feature_store::FeatureStoreSerialization; int main(int argc, char* argv[]) @@ -24,25 +26,25 @@ int main(int argc, char* argv[]) std::vector adsLogLineDataVec = FeatureStoreSerialization::deserializeBatch( folly::IOBuf::wrapBuffer(folly::ByteRange(buffer))); - auto batchData = BatchAdsLogLineData(std::move(adsLogLineDataVec)); + auto batchData = makeBatchAdsLogLineData(std::move(adsLogLineDataVec)); folly::writeFile( - (**batchData.compressedFeatureIds_ref()).moveToFbString(), + (**batchData.compressedFeatureIds()).moveToFbString(), (std::string(filename) + ".featureIds").c_str()); folly::writeFile( - (**batchData.compressedFloats_ref()).moveToFbString(), + (**batchData.compressedFloats()).moveToFbString(), (std::string(filename) + ".floats").c_str()); folly::writeFile( - (**batchData.compressedSparseIds_ref()).moveToFbString(), + (**batchData.compressedSparseIds()).moveToFbString(), (std::string(filename) + ".sparseIds").c_str()); folly::writeFile( - (**batchData.compressedLengths_ref()).moveToFbString(), + (**batchData.compressedLengths()).moveToFbString(), (std::string(filename) + ".lengths").c_str()); folly::writeFile( - (**batchData.compressedMetadata_ref()).moveToFbString(), + (**batchData.compressedMetadata()).moveToFbString(), (std::string(filename) + ".metadata").c_str()); } diff --git a/custom_transforms/thrift/kernels/BUCK b/custom_transforms/thrift/kernels/BUCK index 26ce1041a..dd6e9f946 100644 --- a/custom_transforms/thrift/kernels/BUCK +++ b/custom_transforms/thrift/kernels/BUCK @@ -3,7 +3,7 @@ # @noautodeps load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_library") +load("../../../defs.bzl", "relative_headers", "zs_library") oncall("data_compression") @@ -12,7 +12,7 @@ zs_library( srcs = ["encode_thrift_kernel.c"], headers = ["encode_thrift_kernel.h"], exported_deps = [ - "//data_compression/experimental/zstrong:common", + "../../..:common", ], ) @@ -21,13 +21,14 @@ zs_library( srcs = ["decode_thrift_kernel.c"], headers = ["decode_thrift_kernel.h"], exported_deps = [ - "//data_compression/experimental/zstrong:common", + "../../..:common", ], ) cpp_library( name = "thrift_kernel_utils", - headers = ["thrift_kernel_utils.h"], + headers = relative_headers(["thrift_kernel_utils.h"]), + header_namespace = "", exported_deps = [ ":encode_thrift_kernel", ], @@ -36,11 +37,12 @@ cpp_library( cpp_library( name = "encode_thrift_binding", srcs = ["encode_thrift_binding.cpp"], - headers = ["encode_thrift_binding.h"], + headers = relative_headers(["encode_thrift_binding.h"]), + header_namespace = "", exported_deps = [ + "../../..:compress", ":encode_thrift_kernel", ":thrift_kernel_utils", - "//data_compression/experimental/zstrong:compress", "//folly/memory:uninitialized_memory_hacks", ], ) @@ -48,11 +50,12 @@ cpp_library( cpp_library( name = "decode_thrift_binding", srcs = ["decode_thrift_binding.cpp"], - headers = ["decode_thrift_binding.h"], + headers = relative_headers(["decode_thrift_binding.h"]), + header_namespace = "", exported_deps = [ + "../../..:decompress", ":decode_thrift_kernel", ":thrift_kernel_utils", - "//data_compression/experimental/zstrong:decompress", "//folly/memory:uninitialized_memory_hacks", ], ) diff --git a/custom_transforms/thrift/kernels/decode_thrift_binding.cpp b/custom_transforms/thrift/kernels/decode_thrift_binding.cpp index 2a8199730..f36dce6a5 100644 --- a/custom_transforms/thrift/kernels/decode_thrift_binding.cpp +++ b/custom_transforms/thrift/kernels/decode_thrift_binding.cpp @@ -50,10 +50,11 @@ template ZL_Report typedTransform(ZL_Decoder* dictx, ZL_Input const* src[]) noexcept { using InputStreams = typename Kernel::InputStreams; - ZL_RET_R_IF_LT( - formatVersion_unsupported, + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + ZL_ERR_IF_LT( DI_getFrameFormatVersion(dictx), 9, + formatVersion_unsupported, "Support first added in format version 9"); try { InputStreams inputs; @@ -65,36 +66,35 @@ ZL_Report typedTransform(ZL_Decoder* dictx, ZL_Input const* src[]) noexcept uint8_t const* ip = (uint8_t const*)header.start; uint8_t const* iend = ip + header.size; dstCapacity = unwrap(ZL_varintDecode(&ip, iend)); - ZL_RET_R_IF_NE(corruption, ip, iend); + ZL_ERR_IF_NE(ip, iend, corruption); } ZL_Output* stream = ZL_Decoder_create1OutStream(dictx, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, stream); + ZL_ERR_IF_NULL(stream, allocation); std::span out = { (uint8_t*)ZL_Output_ptr(stream), dstCapacity }; - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(src[0]), 8); + ZL_ERR_IF_NE(ZL_Input_eltWidth(src[0]), 8, corruption); std::span sizes = { (uint64_t const*)ZL_Input_ptr(src[0]), ZL_Input_numElts(src[0]) }; for (auto const& size : sizes) { auto const written = Kernel{}(dictx, out, inputs, size); - ZL_RET_R_IF_ERR(written); + ZL_ERR_IF_ERR(written); assert(ZL_validResult(written) <= out.size()); out = out.subspan(ZL_validResult(written)); } - ZL_RET_R_IF(corruption, !out.empty()); + ZL_ERR_IF(!out.empty(), corruption); - ZL_RET_R_IF_ERR(ZL_Output_commit(stream, dstCapacity)); + ZL_ERR_IF_ERR(ZL_Output_commit(stream, dstCapacity)); return ZL_returnSuccess(); } catch (std::exception const& e) { - ZL_RET_R_ERR( - transform_executionFailure, - "Thrift kernel failure: %s", - e.what()); + ZL_ERR(transform_executionFailure, + "Thrift kernel failure: %s", + e.what()); } } @@ -133,9 +133,10 @@ ZL_Report ZS2_ThriftKernel_registerDTransformMapI32Float( InputStreams& in, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [keys, values] = in; - ZL_RET_R_IF_NE(corruption, keys.size(), values.size()); - ZL_RET_R_IF_LT(corruption, keys.size(), mapSize); + ZL_ERR_IF_NE(keys.size(), values.size(), corruption); + ZL_ERR_IF_LT(keys.size(), mapSize, corruption); auto ret = ZS2_ThriftKernel_serializeMapI32Float( out.data(), out.size(), @@ -167,9 +168,10 @@ ZL_Report ZS2_ThriftKernel_registerDTransformMapI32ArrayFloat( InputStreams& in, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [keys, lengths, innerValues] = in; - ZL_RET_R_IF_NE(corruption, keys.size(), lengths.size()); - ZL_RET_R_IF_LT(corruption, keys.size(), mapSize); + ZL_ERR_IF_NE(keys.size(), lengths.size(), corruption); + ZL_ERR_IF_LT(keys.size(), mapSize, corruption); auto* innerValuesPtr = innerValues.data(); auto* innerValuesEnd = innerValues.data() + innerValues.size(); auto ret = ZS2_ThriftKernel_serializeMapI32ArrayFloat( @@ -207,9 +209,10 @@ ZL_Report ZS2_ThriftKernel_registerDTransformMapI32ArrayI64( InputStreams& in, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [keys, lengths, innerValues] = in; - ZL_RET_R_IF_NE(corruption, keys.size(), lengths.size()); - ZL_RET_R_IF_LT(corruption, keys.size(), mapSize); + ZL_ERR_IF_NE(keys.size(), lengths.size(), corruption); + ZL_ERR_IF_LT(keys.size(), mapSize, corruption); auto* innerValuesPtr = innerValues.data(); auto* innerValuesEnd = innerValues.data() + innerValues.size(); auto ret = ZS2_ThriftKernel_serializeMapI32ArrayI64( @@ -248,9 +251,10 @@ ZL_Report ZS2_ThriftKernel_registerDTransformMapI32ArrayArrayI64( InputStreams& in, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [keys, lengths, innerLengths, innerInnerValues] = in; - ZL_RET_R_IF_NE(corruption, keys.size(), lengths.size()); - ZL_RET_R_IF_LT(corruption, keys.size(), mapSize); + ZL_ERR_IF_NE(keys.size(), lengths.size(), corruption); + ZL_ERR_IF_LT(keys.size(), mapSize, corruption); auto* innerLengthsPtr = innerLengths.data(); auto* innerLengthsEnd = innerLengths.data() + innerLengths.size(); auto* innerInnerValuesPtr = innerInnerValues.data(); @@ -296,9 +300,10 @@ ZL_Report ZS2_ThriftKernel_registerDTransformMapI32MapI64Float( InputStreams& in, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [keys, lengths, innerKeys, innerValues] = in; - ZL_RET_R_IF_NE(corruption, keys.size(), lengths.size()); - ZL_RET_R_IF_LT(corruption, keys.size(), mapSize); + ZL_ERR_IF_NE(keys.size(), lengths.size(), corruption); + ZL_ERR_IF_LT(keys.size(), mapSize, corruption); auto* innerKeysPtr = innerKeys.data(); auto* innerKeysEnd = innerKeys.data() + innerKeys.size(); auto* innerValuesPtr = innerValues.data(); @@ -339,8 +344,9 @@ ZL_Report ZS2_ThriftKernel_registerDTransformArrayI64( InputStreams& in, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [values] = in; - ZL_RET_R_IF_LT(corruption, values.size(), arraySize); + ZL_ERR_IF_LT(values.size(), arraySize, corruption); auto ret = ZS2_ThriftKernel_serializeArrayI64( out.data(), out.size(), values.data(), arraySize); values = values.subspan(arraySize); @@ -364,8 +370,9 @@ ZL_Report ZS2_ThriftKernel_registerDTransformArrayI32( InputStreams& in, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [values] = in; - ZL_RET_R_IF_LT(corruption, values.size(), arraySize); + ZL_ERR_IF_LT(values.size(), arraySize, corruption); auto ret = ZS2_ThriftKernel_serializeArrayI32( out.data(), out.size(), values.data(), arraySize); values = values.subspan(arraySize); @@ -389,8 +396,9 @@ ZL_Report ZS2_ThriftKernel_registerDTransformArrayFloat( InputStreams& in, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); auto& [values] = in; - ZL_RET_R_IF_LT(corruption, values.size(), arraySize); + ZL_ERR_IF_LT(values.size(), arraySize, corruption); auto ret = ZS2_ThriftKernel_serializeArrayFloat( out.data(), out.size(), values.data(), arraySize); values = values.subspan(arraySize); diff --git a/custom_transforms/thrift/kernels/decode_thrift_kernel.c b/custom_transforms/thrift/kernels/decode_thrift_kernel.c index 93acabedb..5b7b2fc89 100644 --- a/custom_transforms/thrift/kernels/decode_thrift_kernel.c +++ b/custom_transforms/thrift/kernels/decode_thrift_kernel.c @@ -21,6 +21,7 @@ ZL_FORCE_INLINE uint32_t ZS2_ThriftKernel_zigzagEncode32(uint32_t value) ZL_FORCE_INLINE ZL_Report ZS2_ThriftKernel_serializeLength(uint32_t val, uint8_t** op, uint8_t* oend) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const capacity = (size_t)(oend - *op); if (capacity >= ZL_VARINT_FAST_OVERWRITE_32) { *op += ZL_varintEncode32Fast(val, *op); @@ -31,13 +32,14 @@ ZS2_ThriftKernel_serializeLength(uint32_t val, uint8_t** op, uint8_t* oend) ZL_ASSERT_LE(*op, oend); return ZL_returnSuccess(); } else { - ZL_RET_R_ERR(internalBuffer_tooSmall); + ZL_ERR(internalBuffer_tooSmall); } } ZL_FORCE_INLINE ZL_Report ZS2_ThriftKernel_serializeI64(uint64_t val, uint8_t** op, uint8_t* oend) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint64_t const zz = ZS2_ThriftKernel_zigzagEncode64(val); size_t const capacity = (size_t)(oend - *op); if (capacity >= ZL_VARINT_FAST_OVERWRITE_64) { @@ -49,7 +51,7 @@ ZS2_ThriftKernel_serializeI64(uint64_t val, uint8_t** op, uint8_t* oend) ZL_ASSERT_LE(*op, oend); return ZL_returnSuccess(); } else { - ZL_RET_R_ERR(internalBuffer_tooSmall); + ZL_ERR(internalBuffer_tooSmall); } } @@ -67,12 +69,13 @@ ZL_FORCE_INLINE ZL_Report ZS2_ThriftKernel_serializeMapHeader( uint8_t valueType, size_t size) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeLength((uint32_t)size, op, oend)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeLength((uint32_t)size, op, oend)); uint8_t const type = (uint8_t)((keyType << 4) | valueType); if (size > 0) { - ZL_RET_R_IF_EQ(internalBuffer_tooSmall, *op, oend); + ZL_ERR_IF_EQ(*op, oend, internalBuffer_tooSmall); **op = type; ++*op; } @@ -86,15 +89,16 @@ ZL_FORCE_INLINE ZL_Report ZS2_ThriftKernel_serializeArrayHeader( uint8_t type, size_t size) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const lengthNibble = (uint8_t)(size >= 0xF ? 0xF : size); uint8_t const lengthType = (uint8_t)(type | (lengthNibble << 4)); - ZL_RET_R_IF_EQ(internalBuffer_tooSmall, *op, oend); + ZL_ERR_IF_EQ(*op, oend, internalBuffer_tooSmall); **op = lengthType; ++*op; if (size >= 0xF) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeLength((uint32_t)size, op, oend)); } return ZL_returnSuccess(); @@ -106,11 +110,12 @@ ZL_FORCE_INLINE ZL_Report ZS2_ThriftKernel_serializeArrayI64_inline( uint64_t const* values, size_t arraySize) { - ZL_RET_R_IF_ERR( + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeArrayHeader(op, oend, 0x6, arraySize)); for (size_t i = 0; i < arraySize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI64(values[i], op, oend)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI64(values[i], op, oend)); } return ZL_returnSuccess(); @@ -123,17 +128,18 @@ ZL_Report ZS2_ThriftKernel_serializeMapI32Float( uint32_t const* floats, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeMapHeader(&op, oend, 0x5, 0xD, mapSize)); // TODO: Unroll to remove bounds checks, speed up varint encoding for (size_t i = 0; i < mapSize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); - ZL_RET_R_IF_GT(internalBuffer_tooSmall, 4, (size_t)(oend - op)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); + ZL_ERR_IF_GT(4, (size_t)(oend - op), internalBuffer_tooSmall); ZL_writeBE32(op, floats[i]); op += 4; } @@ -150,24 +156,25 @@ ZL_Report ZS2_ThriftKernel_serializeMapI32ArrayFloat( uint32_t const** innerValuesPtr, uint32_t const* innerValuesEnd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeMapHeader(&op, oend, 0x5, 0x9, mapSize)); for (size_t i = 0; i < mapSize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); size_t const arraySize = lengths[i]; - ZL_RET_R_IF_GT( - srcSize_tooSmall, + ZL_ERR_IF_GT( arraySize, - (size_t)(innerValuesEnd - *innerValuesPtr)); + (size_t)(innerValuesEnd - *innerValuesPtr), + srcSize_tooSmall); ZL_Report const arrayBytes = ZS2_ThriftKernel_serializeArrayFloat( op, (size_t)(oend - op), *innerValuesPtr, arraySize); - ZL_RET_R_IF_ERR(arrayBytes); + ZL_ERR_IF_ERR(arrayBytes); op += ZL_validResult(arrayBytes); *innerValuesPtr += arraySize; } @@ -185,22 +192,23 @@ ZL_Report ZS2_ThriftKernel_serializeMapI32ArrayI64( uint64_t const** innerValuesPtr, uint64_t const* innerValuesEnd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeMapHeader(&op, oend, 0x5, 0x9, mapSize)); for (size_t i = 0; i < mapSize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); size_t const arraySize = lengths[i]; - ZL_RET_R_IF_GT( - srcSize_tooSmall, + ZL_ERR_IF_GT( arraySize, - (size_t)(innerValuesEnd - *innerValuesPtr)); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeArrayI64_inline( + (size_t)(innerValuesEnd - *innerValuesPtr), + srcSize_tooSmall); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeArrayI64_inline( &op, oend, *innerValuesPtr, arraySize)); *innerValuesPtr += arraySize; } @@ -220,31 +228,32 @@ ZL_Report ZS2_ThriftKernel_serializeMapI32ArrayArrayI64( uint64_t const** innerInnerValuesPtr, uint64_t const* innerInnerValuesEnd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeMapHeader(&op, oend, 0x5, 0x9, mapSize)); for (size_t i = 0; i < mapSize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); size_t const arraySize = lengths[i]; - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeArrayHeader( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeArrayHeader( &op, oend, 0x9, arraySize)); - ZL_RET_R_IF_GT( - srcSize_tooSmall, + ZL_ERR_IF_GT( arraySize, - (size_t)(innerLengthsEnd - *innerLengthsPtr)); + (size_t)(innerLengthsEnd - *innerLengthsPtr), + srcSize_tooSmall); for (size_t j = 0; j < arraySize; ++j) { size_t const innerArraySize = (*innerLengthsPtr)[j]; - ZL_RET_R_IF_GT( - srcSize_tooSmall, + ZL_ERR_IF_GT( innerArraySize, - (size_t)(innerInnerValuesEnd - *innerInnerValuesPtr)); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeArrayI64_inline( + (size_t)(innerInnerValuesEnd - *innerInnerValuesPtr), + srcSize_tooSmall); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeArrayI64_inline( &op, oend, *innerInnerValuesPtr, innerArraySize)); *innerInnerValuesPtr += innerArraySize; } @@ -267,34 +276,35 @@ ZL_Report ZS2_ThriftKernel_serializeMapI32MapI64Float( uint32_t const** innerValuesPtr, uint32_t const* innerValuesEnd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeMapHeader(&op, oend, 0x5, 0xB, mapSize)); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( (size_t)(innerKeysEnd - *innerKeysPtr), (size_t)(innerValuesEnd - *innerValuesPtr), + corruption, "Keys and values must be the same length!"); for (size_t i = 0; i < mapSize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI32(keys[i], &op, oend)); size_t const innerMapSize = lengths[i]; - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeMapHeader( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeMapHeader( &op, oend, 0x6, 0xD, innerMapSize)); - ZL_RET_R_IF_GT( - srcSize_tooSmall, + ZL_ERR_IF_GT( innerMapSize, - (size_t)(innerKeysEnd - *innerKeysPtr)); + (size_t)(innerKeysEnd - *innerKeysPtr), + srcSize_tooSmall); for (size_t j = 0; j < innerMapSize; ++j) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI64( (*innerKeysPtr)[j], &op, oend)); - ZL_RET_R_IF_GT(internalBuffer_tooSmall, 4, (size_t)(oend - op)); + ZL_ERR_IF_GT(4, (size_t)(oend - op), internalBuffer_tooSmall); ZL_writeBE32(op, (*innerValuesPtr)[j]); op += 4; } @@ -313,11 +323,12 @@ ZL_Report ZS2_ThriftKernel_serializeArrayI64( uint64_t const* values, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeArrayI64_inline( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeArrayI64_inline( &op, oend, values, arraySize)); return ZL_returnValue((size_t)(op - ostart)); @@ -329,15 +340,16 @@ ZL_Report ZS2_ThriftKernel_serializeArrayI32( uint32_t const* values, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeArrayHeader(&op, oend, 0x5, arraySize)); for (size_t i = 0; i < arraySize; ++i) { - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_serializeI32(values[i], &op, oend)); + ZL_ERR_IF_ERR(ZS2_ThriftKernel_serializeI32(values[i], &op, oend)); } return ZL_returnValue((size_t)(op - ostart)); @@ -349,14 +361,15 @@ ZL_Report ZS2_ThriftKernel_serializeArrayFloat( uint32_t const* values, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t* const ostart = (uint8_t*)dst; uint8_t* const oend = ostart + dstCapacity; uint8_t* op = ostart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_serializeArrayHeader(&op, oend, 0xD, arraySize)); - ZL_RET_R_IF_GT(internalBuffer_tooSmall, arraySize * 4, (size_t)(oend - op)); + ZL_ERR_IF_GT(arraySize, (size_t)(oend - op) / 4, internalBuffer_tooSmall); for (size_t i = 0; i < arraySize; ++i) { ZL_writeBE32(op + 4 * i, values[i]); } diff --git a/custom_transforms/thrift/kernels/decode_thrift_kernel.h b/custom_transforms/thrift/kernels/decode_thrift_kernel.h index 4053a3f65..a22d69429 100644 --- a/custom_transforms/thrift/kernels/decode_thrift_kernel.h +++ b/custom_transforms/thrift/kernels/decode_thrift_kernel.h @@ -3,15 +3,15 @@ #ifndef ZSTRONG_CUSTOM_TRANSFORMS_THRIFT_KERNELS_DECODE_THRIFT_KERNEL_H #define ZSTRONG_CUSTOM_TRANSFORMS_THRIFT_KERNELS_DECODE_THRIFT_KERNEL_H -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include "openzl/zl_errors.h" +#ifdef __cplusplus +extern "C" { +#endif + /** * All of these functions assume that you have an upper bound on the output * size. This means that the compressor should likely store the original diff --git a/custom_transforms/thrift/kernels/encode_thrift_binding.cpp b/custom_transforms/thrift/kernels/encode_thrift_binding.cpp index ab188f255..2dba67f95 100644 --- a/custom_transforms/thrift/kernels/encode_thrift_binding.cpp +++ b/custom_transforms/thrift/kernels/encode_thrift_binding.cpp @@ -18,6 +18,7 @@ ZL_Report commitOutputStream( size_t idx, std::vector const*> const& vectors) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); size_t size = 0; for (auto const* vector : vectors) { size += vector->size(); @@ -25,7 +26,7 @@ ZL_Report commitOutputStream( ZL_Output* stream = ZL_Encoder_createTypedStream(eictx, idx, size, sizeof(T)); - ZL_RET_R_IF_NULL(allocation, stream); + ZL_ERR_IF_NULL(stream, allocation); uint8_t* op = (uint8_t*)ZL_Output_ptr(stream); for (auto const* vector : vectors) { if (vector->size() > 0) @@ -33,7 +34,7 @@ ZL_Report commitOutputStream( op += vector->size() * sizeof(T); } assert((op - (uint8_t*)ZL_Output_ptr(stream)) == size * sizeof(T)); - ZL_RET_R_IF_ERR(ZL_Output_commit(stream, size)); + ZL_ERR_IF_ERR(ZL_Output_commit(stream, size)); return ZL_returnSuccess(); } @@ -43,20 +44,21 @@ ZL_Report commitOutputStream( size_t idx, std::vector const*> const& outs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); size_t size = 0; for (auto const* out : outs) { size += out->size(); } ZL_Output* stream = ZL_Encoder_createTypedStream(eictx, idx, size, sizeof(T)); - ZL_RET_R_IF_NULL(allocation, stream); + ZL_ERR_IF_NULL(stream, allocation); uint8_t* op = (uint8_t*)ZL_Output_ptr(stream); for (auto const* out : outs) { out->copyToBuffer(op, out->nbytes()); op += out->nbytes(); } assert((op - (uint8_t*)ZL_Output_ptr(stream)) == size * sizeof(T)); - ZL_RET_R_IF_ERR(ZL_Output_commit(stream, size)); + ZL_ERR_IF_ERR(ZL_Output_commit(stream, size)); return ZL_returnSuccess(); } @@ -65,13 +67,14 @@ ZL_Report commitOutputStreams( ZL_Encoder* eictx, std::vector> const& outputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); if constexpr (idx < sizeof...(Ts)) { std::vector> const*> output; output.reserve(outputs.size()); for (auto&& tuple : outputs) { output.push_back(&std::get(tuple)); } - ZL_RET_R_IF_ERR(commitOutputStream(eictx, idx + 1, output)); + ZL_ERR_IF_ERR(commitOutputStream(eictx, idx + 1, output)); return commitOutputStreams(eictx, outputs); } else { return ZL_returnSuccess(); @@ -84,10 +87,11 @@ template ZL_Report typedTransform(ZL_Encoder* eictx, ZL_Input const* input) noexcept { // These transforms were added in version 9 - ZL_RET_R_IF_LT( - formatVersion_unsupported, + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ERR_IF_LT( ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion), - 9); + 9, + formatVersion_unsupported); assert(ZL_Input_type(input) == ZL_Type_serial); try { @@ -114,17 +118,16 @@ ZL_Report typedTransform(ZL_Encoder* eictx, ZL_Input const* input) noexcept // Add the lengths stream { std::vector const*> outs_2 = { &lengths }; - ZL_RET_R_IF_ERR(commitOutputStream(eictx, 0, outs_2)); + ZL_ERR_IF_ERR(commitOutputStream(eictx, 0, outs_2)); } - ZL_RET_R_IF_ERR(commitOutputStreams(eictx, outs)); + ZL_ERR_IF_ERR(commitOutputStreams(eictx, outs)); return ZL_returnSuccess(); } catch (std::exception const& e) { - ZL_RET_R_ERR( - transform_executionFailure, - "Thrift kernel failure: %s", - e.what()); + ZL_ERR(transform_executionFailure, + "Thrift kernel failure: %s", + e.what()); } } diff --git a/custom_transforms/thrift/kernels/encode_thrift_kernel.c b/custom_transforms/thrift/kernels/encode_thrift_kernel.c index dd53e5696..956e9cead 100644 --- a/custom_transforms/thrift/kernels/encode_thrift_kernel.c +++ b/custom_transforms/thrift/kernels/encode_thrift_kernel.c @@ -23,13 +23,14 @@ static ZL_Report ZS2_ThriftKernel_validateContainerSize( size_t numValues, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // All thrift types in an array / map take at least 1 byte, no matter the // type. So an upper bound on the number of possible elements is srcSize size_t const numElts = numKeys + numValues; - ZL_RET_R_IF_GT( - node_invalid_input, + ZL_ERR_IF_GT( numElts, srcSize, + node_invalid_input, "Container size is larger than the remaining source size allows!"); return ZL_returnSuccess(); } @@ -40,16 +41,17 @@ static ZL_Report ZS2_ThriftKernel_decodeMapHeader( uint8_t expectedKeyType, uint8_t expectedValueType) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_RESULT_OF(uint64_t) size = ZL_varintDecode32Strict(ip, iend); - ZL_RET_R_IF_ERR(size); + ZL_ERR_IF_ERR(size); if (ZL_RES_value(size) > 0) { - ZL_RET_R_IF_EQ(srcSize_tooSmall, *ip, iend); + ZL_ERR_IF_EQ(*ip, iend, srcSize_tooSmall); uint8_t const keyType = **ip >> 4; uint8_t const valueType = **ip & 0xF; if (expectedKeyType != 0x0) - ZL_RET_R_IF_NE(node_invalid_input, keyType, expectedKeyType); + ZL_ERR_IF_NE(keyType, expectedKeyType, node_invalid_input); if (expectedValueType != 0x0) - ZL_RET_R_IF_NE(node_invalid_input, valueType, expectedValueType); + ZL_ERR_IF_NE(valueType, expectedValueType, node_invalid_input); ++*ip; } return ZL_returnValue((size_t)ZL_RES_value(size)); @@ -62,10 +64,11 @@ static ZL_Report ZS2_ThriftKernel_validateMapHeader( uint8_t expectedValueType, size_t expectedSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report const size = ZS2_ThriftKernel_decodeMapHeader( ip, iend, expectedKeyType, expectedValueType); - ZL_RET_R_IF_ERR(size); - ZL_RET_R_IF_NE(node_invalid_input, ZL_RES_value(size), expectedSize); + ZL_ERR_IF_ERR(size); + ZL_ERR_IF_NE(ZL_RES_value(size), expectedSize, node_invalid_input); return ZL_returnSuccess(); } @@ -73,16 +76,18 @@ static ZL_Report ZS2_ThriftKernel_decodeI32( uint8_t const** ip, uint8_t const* iend) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode32Strict(ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); return ZL_returnValue(ZS2_zigZagDecode32((uint32_t)ZL_RES_value(ret))); } static ZL_RESULT_OF(uint64_t) ZS2_ThriftKernel_decodeI64(uint8_t const** ip, uint8_t const* iend) { + ZL_RESULT_DECLARE_SCOPE(uint64_t, NULL); ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode64Strict(ip, iend); - ZL_RET_T_IF_ERR(uint64_t, ret); + ZL_ERR_IF_ERR(ret); ZL_RES_value(ret) = ZS2_zigZagDecode64(ZL_RES_value(ret)); return ret; } @@ -92,17 +97,18 @@ static ZL_Report ZS2_ThriftKernel_decodeArrayHeader( uint8_t const* iend, uint8_t expectedType) { - ZL_RET_R_IF_EQ(srcSize_tooSmall, *ip, iend); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_EQ(*ip, iend, srcSize_tooSmall); uint8_t const type = **ip & 0xF; if (expectedType != 0x0) - ZL_RET_R_IF_NE(node_invalid_input, type, expectedType); + ZL_ERR_IF_NE(type, expectedType, node_invalid_input); size_t size = **ip >> 4; ++*ip; if (size == 0xF) { ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode32Strict(ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); size = ZL_RES_value(ret); - ZL_RET_R_IF_LT(node_invalid_input, size, 15); + ZL_ERR_IF_LT(size, 15, node_invalid_input); } return ZL_returnValue(size); } @@ -113,9 +119,10 @@ static ZL_Report ZS2_ThriftKernel_validateArrayHeader( uint8_t expectedType, size_t expectedSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report size = ZS2_ThriftKernel_decodeArrayHeader(ip, iend, expectedType); - ZL_RET_R_IF_ERR(size); - ZL_RET_R_IF_NE(node_invalid_input, ZL_RES_value(size), expectedSize); + ZL_ERR_IF_ERR(size); + ZL_ERR_IF_NE(ZL_RES_value(size), expectedSize, node_invalid_input); return ZL_returnSuccess(); } @@ -125,9 +132,10 @@ static ZL_Report ZS2_ThriftKernel_deserializeVarints64( uint8_t const* iend, size_t nbValues) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (size_t i = 0; i < nbValues; ++i) { ZL_RESULT_OF(uint64_t) ret = ZS2_ThriftKernel_decodeI64(ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); values[i] = ZL_RES_value(ret); } return ZL_returnSuccess(); @@ -140,11 +148,12 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32Float( size_t srcSize, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateMapHeader(&ip, iend, 0x5, 0xD, mapSize)); // Optimization: Run for ((iend - ip) / 9) iters without bounds checks, then @@ -153,9 +162,9 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32Float( // length, expect sorted keys for (size_t i = 0; i < mapSize; ++i) { ZL_Report const key = ZS2_ThriftKernel_decodeI32(&ip, iend); - ZL_RET_R_IF_ERR(key); + ZL_ERR_IF_ERR(key); keys[i] = (uint32_t)ZL_RES_value(key); - ZL_RET_R_IF_GT(srcSize_tooSmall, 4, (size_t)(iend - ip)); + ZL_ERR_IF_GT(4, (size_t)(iend - ip), srcSize_tooSmall); floats[i] = ZL_readBE32(ip); ip += 4; } @@ -175,29 +184,30 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32ArrayFloat( size_t srcSize, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateMapHeader(&ip, iend, 0x5, 0x9, mapSize)); ZS2_ThriftKernel_Slice32 values = { NULL, NULL }; for (size_t i = 0; i < mapSize; ++i) { ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode32Strict(&ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); keys[i] = ZS2_zigZagDecode32((uint32_t)ZL_RES_value(ret)); // Decode array ZL_Report const arraySize = ZS2_ThriftKernel_decodeArrayHeader(&ip, iend, 0xD); - ZL_RET_R_IF_ERR(arraySize); + ZL_ERR_IF_ERR(arraySize); // TODO: This could be better - ZL_RET_R_IF_NOT( - node_invalid_input, ZL_uintFits(ZL_RES_value(arraySize), 4)); + ZL_ERR_IF_NOT( + ZL_uintFits(ZL_RES_value(arraySize), 4), node_invalid_input); lengths[i] = (uint32_t)ZL_RES_value(arraySize); - ZL_RET_R_IF_GT(srcSize_tooSmall, 4 * lengths[i], (size_t)(iend - ip)); + ZL_ERR_IF_GT(lengths[i], (size_t)(iend - ip) / 4, srcSize_tooSmall); for (uint32_t pos = 0, end = lengths[i]; pos < end;) { if (values.ptr == values.end) { @@ -229,12 +239,12 @@ static ZL_Report ZS2_ThriftKernel_deserializeInnerArrayI64( uint8_t const** ip, uint8_t const* iend) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report const arraySize = ZS2_ThriftKernel_decodeArrayHeader(ip, iend, 0x6); - ZL_RET_R_IF_ERR(arraySize); + ZL_ERR_IF_ERR(arraySize); // TODO: This could be better... - ZL_RET_R_IF_NOT( - node_invalid_input, ZL_uintFits(ZL_RES_value(arraySize), 4)); + ZL_ERR_IF_NOT(ZL_uintFits(ZL_RES_value(arraySize), 4), node_invalid_input); *length = (uint32_t)ZL_RES_value(arraySize); for (size_t pos = 0, end = *length; pos < end;) { @@ -243,7 +253,7 @@ static ZL_Report ZS2_ThriftKernel_deserializeInnerArrayI64( } size_t const toCopy = ZL_MIN(end - pos, (size_t)(values->end - values->ptr)); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_deserializeVarints64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_deserializeVarints64( values->ptr, ip, iend, toCopy)); values->ptr += toCopy; pos += toCopy; @@ -259,20 +269,21 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32ArrayI64( size_t srcSize, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateMapHeader(&ip, iend, 0x5, 0x9, mapSize)); ZS2_ThriftKernel_Slice64 values = { NULL, NULL }; for (size_t i = 0; i < mapSize; ++i) { ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode32Strict(&ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); keys[i] = ZS2_zigZagDecode32((uint32_t)ZL_RES_value(ret)); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_deserializeInnerArrayI64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_deserializeInnerArrayI64( innerValues, &values, &lengths[i], i, mapSize, &ip, iend)); } innerValues.finish(innerValues.opaque, values.ptr); @@ -292,26 +303,27 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32ArrayArrayI64( size_t srcSize, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateMapHeader(&ip, iend, 0x5, 0x9, mapSize)); ZS2_ThriftKernel_Slice64 valuesSlice = { NULL, NULL }; ZS2_ThriftKernel_Slice32 lengthsSlice = { NULL, NULL }; for (size_t i = 0; i < mapSize; ++i) { ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode32Strict(&ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); keys[i] = ZS2_zigZagDecode32((uint32_t)ZL_RES_value(ret)); ZL_Report const arraySize = ZS2_ThriftKernel_decodeArrayHeader(&ip, iend, 0x9); - ZL_RET_R_IF_ERR(arraySize); + ZL_ERR_IF_ERR(arraySize); // TODO: This could be better... - ZL_RET_R_IF_NOT( - node_invalid_input, ZL_uintFits(ZL_RES_value(arraySize), 4)); + ZL_ERR_IF_NOT( + ZL_uintFits(ZL_RES_value(arraySize), 4), node_invalid_input); lengths[i] = (uint32_t)ZL_RES_value(arraySize); for (size_t j = 0, end = lengths[i]; j < end; ++j) { @@ -319,7 +331,7 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32ArrayArrayI64( lengthsSlice = innerLengths.next(innerLengths.opaque, i, mapSize); } - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_deserializeInnerArrayI64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_deserializeInnerArrayI64( innerInnerValues, &valuesSlice, lengthsSlice.ptr, @@ -348,26 +360,27 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32MapI64Float( size_t srcSize, size_t mapSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateMapHeader(&ip, iend, 0x5, 0xB, mapSize)); ZS2_ThriftKernel_Slice64 keysSlice = { NULL, NULL }; ZS2_ThriftKernel_Slice32 valuesSlice = { NULL, NULL }; for (size_t i = 0; i < mapSize; ++i) { ZL_RESULT_OF(uint64_t) ret = ZL_varintDecode32Strict(&ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); keys[i] = ZS2_zigZagDecode32((uint32_t)ZL_RES_value(ret)); ZL_Report const innerMapSize = ZS2_ThriftKernel_decodeMapHeader(&ip, iend, 0x6, 0xD); - ZL_RET_R_IF_ERR(innerMapSize); + ZL_ERR_IF_ERR(innerMapSize); // TODO: This could be better - ZL_RET_R_IF_NOT( - node_invalid_input, ZL_uintFits(ZL_RES_value(innerMapSize), 4)); + ZL_ERR_IF_NOT( + ZL_uintFits(ZL_RES_value(innerMapSize), 4), node_invalid_input); lengths[i] = (uint32_t)ZL_RES_value(innerMapSize); for (size_t j = 0, end = ZL_RES_value(innerMapSize); j < end; ++j) { @@ -379,10 +392,10 @@ ZL_Report ZS2_ThriftKernel_deserializeMapI32MapI64Float( } ret = ZL_varintDecode64Strict(&ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); *keysSlice.ptr++ = ZS2_zigZagDecode64(ZL_RES_value(ret)); - ZL_RET_R_IF_GT(srcSize_tooSmall, 4, (size_t)(iend - ip)); + ZL_ERR_IF_GT(4, (size_t)(iend - ip), srcSize_tooSmall); *valuesSlice.ptr++ = ZL_readBE32(ip); ip += 4; } @@ -402,13 +415,14 @@ ZL_Report ZS2_ThriftKernel_deserializeArrayI64( size_t srcSize, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateArrayHeader(&ip, iend, 0x6, arraySize)); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_deserializeVarints64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_deserializeVarints64( values, &ip, iend, arraySize)); ZL_ASSERT_SUCCESS( @@ -423,15 +437,16 @@ ZL_Report ZS2_ThriftKernel_deserializeArrayI32( size_t srcSize, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateArrayHeader(&ip, iend, 0x5, arraySize)); for (size_t i = 0; i < arraySize; ++i) { ZL_Report ret = ZS2_ThriftKernel_decodeI32(&ip, iend); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); values[i] = (uint32_t)ZL_RES_value(ret); } @@ -447,16 +462,17 @@ ZL_Report ZS2_ThriftKernel_deserializeArrayFloat( size_t srcSize, size_t arraySize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; // Validate the array header - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZS2_ThriftKernel_validateArrayHeader(&ip, iend, 0xD, arraySize)); // Copy the floats - ZL_RET_R_IF_GT(srcSize_tooSmall, arraySize * 4, (size_t)(iend - ip)); + ZL_ERR_IF_GT(arraySize, (size_t)(iend - ip) / 4, srcSize_tooSmall); for (size_t i = 0; i < arraySize; ++i) { ZL_write32(values + i, ZL_readBE32(ip + 4 * i)); } @@ -471,6 +487,7 @@ ZL_Report ZS2_ThriftKernel_deserializeArrayFloat( ZL_Report ZS2_ThriftKernel_getMapSize(void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; @@ -478,9 +495,9 @@ ZL_Report ZS2_ThriftKernel_getMapSize(void const* src, size_t srcSize) // Read the size from the header ZL_Report const size = ZS2_ThriftKernel_decodeMapHeader(&ip, iend, 0x0, 0x0); - ZL_RET_R_IF_ERR(size); + ZL_ERR_IF_ERR(size); // Validate the size against an upper bound - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_validateContainerSize( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_validateContainerSize( ZL_validResult(size), ZL_validResult(size), srcSize)); return size; @@ -488,15 +505,16 @@ ZL_Report ZS2_ThriftKernel_getMapSize(void const* src, size_t srcSize) ZL_Report ZS2_ThriftKernel_getArraySize(void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint8_t const* const istart = (uint8_t const*)src; uint8_t const* const iend = istart + srcSize; uint8_t const* ip = istart; // Validate the array header ZL_Report const size = ZS2_ThriftKernel_decodeArrayHeader(&ip, iend, 0x0); - ZL_RET_R_IF_ERR(size); + ZL_ERR_IF_ERR(size); // Validate the size against an upper bound - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_validateContainerSize( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_validateContainerSize( 0, ZL_validResult(size), srcSize)); return size; diff --git a/custom_transforms/thrift/kernels/encode_thrift_kernel.h b/custom_transforms/thrift/kernels/encode_thrift_kernel.h index dcb302dc6..efe2efccf 100644 --- a/custom_transforms/thrift/kernels/encode_thrift_kernel.h +++ b/custom_transforms/thrift/kernels/encode_thrift_kernel.h @@ -3,15 +3,15 @@ #ifndef ZSTRONG_CUSTOM_TRANSFORMS_THRIFT_KERNELS_ENCODE_THRIFT_KERNEL_H #define ZSTRONG_CUSTOM_TRANSFORMS_THRIFT_KERNELS_ENCODE_THRIFT_KERNEL_H -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include "openzl/zl_errors.h" +#ifdef __cplusplus +extern "C" { +#endif + /** * All of these functions require knowing the containers size ahead of time. * This is reasonable, because in order to know the type of the container, you diff --git a/custom_transforms/thrift/kernels/tests/BUCK b/custom_transforms/thrift/kernels/tests/BUCK index 57996bcc7..6eb9ee3c1 100644 --- a/custom_transforms/thrift/kernels/tests/BUCK +++ b/custom_transforms/thrift/kernels/tests/BUCK @@ -5,7 +5,7 @@ load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") load("@fbcode_macros//build_defs:thrift_library.bzl", "thrift_library") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_fuzzers") +load("../../../../defs.bzl", "relative_headers", "zs_fuzzers") oncall("data_compression") @@ -20,13 +20,13 @@ thrift_library( cpp_library( name = "thrift_kernel_test_utils", - headers = ["thrift_kernel_test_utils.h"], + headers = relative_headers(["thrift_kernel_test_utils.h"]), + header_namespace = "", exported_deps = [ - ":fuzz_data-cpp2-reflection", + "../../../..:zstronglib", + "../../../../tests/datagen:datagen", ":fuzz_data-cpp2-types", ":fuzz_data-cpp2-visitation", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tests/datagen:datagen", "//folly:overload", "//folly:range", "//folly/io:iobuf", @@ -38,10 +38,10 @@ cpp_unittest( name = "test_thrift_kernel", srcs = ["test_thrift_kernel.cpp"], deps = [ - "//data_compression/experimental/zstrong:common", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:decode_thrift_kernel", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:encode_thrift_kernel", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:thrift_kernel_utils", + "..:decode_thrift_kernel", + "..:encode_thrift_kernel", + "..:thrift_kernel_utils", + "../../../..:common", "//folly:range", "//folly/io:iobuf", "//thrift/lib/cpp2/protocol:protocol", @@ -56,13 +56,13 @@ zs_fuzzers( ("ThriftKernelTest", "FuzzDecompress"), ], deps = [ + "..:decode_thrift_binding", + "..:encode_thrift_binding", + "../../../..:common", + "../../../../tests:fuzz_utils", + "../../../../tests:test_zstrong_fixtures", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", ":thrift_kernel_test_utils", - "//data_compression/experimental/zstrong:common", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:decode_thrift_binding", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:encode_thrift_binding", - "//data_compression/experimental/zstrong/tests:fuzz_utils", - "//data_compression/experimental/zstrong/tests:test_zstrong_fixtures", "//folly:range", "//folly/io:iobuf", "//thrift/lib/cpp2/protocol:protocol", diff --git a/custom_transforms/thrift/kernels/tests/fuzz_data.thrift b/custom_transforms/thrift/kernels/tests/fuzz_data.thrift index 85f7fc2b5..edbd162fa 100644 --- a/custom_transforms/thrift/kernels/tests/fuzz_data.thrift +++ b/custom_transforms/thrift/kernels/tests/fuzz_data.thrift @@ -1,5 +1,10 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +include "thrift/annotation/thrift.thrift" + +@thrift.AllowLegacyMissingUris +package; + namespace cpp2 zstrong.thrift.tests union ThriftKernelData { diff --git a/custom_transforms/thrift/kernels/tests/fuzz_thrift_kernel.cpp b/custom_transforms/thrift/kernels/tests/fuzz_thrift_kernel.cpp index a9c1944bb..a6b1a23db 100644 --- a/custom_transforms/thrift/kernels/tests/fuzz_thrift_kernel.cpp +++ b/custom_transforms/thrift/kernels/tests/fuzz_thrift_kernel.cpp @@ -16,8 +16,9 @@ #include "tests/fuzz_utils.h" #include "tests/zstrong/test_zstrong_fixture.h" -namespace zstrong::thrift::tests { -using namespace zstrong::tests; +namespace openzl::thrift::tests { +using namespace openzl::tests; +using ThriftKernelData = zstrong::thrift::tests::ThriftKernelData; enum class TransformIDs { MapI32Float, @@ -212,4 +213,4 @@ FUZZ_F(ThriftKernelTest, FuzzDecompress) testDecompress(input); } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/kernels/tests/test_thrift_kernel.cpp b/custom_transforms/thrift/kernels/tests/test_thrift_kernel.cpp index 799ed7853..b1210b236 100644 --- a/custom_transforms/thrift/kernels/tests/test_thrift_kernel.cpp +++ b/custom_transforms/thrift/kernels/tests/test_thrift_kernel.cpp @@ -64,8 +64,9 @@ TEST(ThriftKernelTest, ArrayI64) testRoundTrip({ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }); testRoundTrip( { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1 }); - testRoundTrip({ std::numeric_limits::max(), - std::numeric_limits::min() }); + testRoundTrip( + { std::numeric_limits::max(), + std::numeric_limits::min() }); std::vector array; for (size_t i = 0; i < 20000; ++i) { array.push_back(int64_t(i)); @@ -106,8 +107,9 @@ TEST(ThriftKernelTest, ArrayI32) testRoundTrip({ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }); testRoundTrip( { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1 }); - testRoundTrip({ std::numeric_limits::max(), - std::numeric_limits::min() }); + testRoundTrip( + { std::numeric_limits::max(), + std::numeric_limits::min() }); std::vector array; for (size_t i = 0; i < 20000; ++i) { array.push_back(int32_t(i)); @@ -144,18 +146,19 @@ TEST(ThriftKernelTest, ArrayFloat) testRoundTrip({}); testRoundTrip({ 0.0 }); - testRoundTrip({ -1.5, - 0.0, - 2.5, - std::numeric_limits::quiet_NaN(), - std::numeric_limits::signaling_NaN(), - std::numeric_limits::lowest(), - std::numeric_limits::denorm_min(), - std::numeric_limits::epsilon(), - std::numeric_limits::round_error(), - std::numeric_limits::infinity(), - -std::numeric_limits::infinity(), - std::numeric_limits::max() }); + testRoundTrip( + { -1.5, + 0.0, + 2.5, + std::numeric_limits::quiet_NaN(), + std::numeric_limits::signaling_NaN(), + std::numeric_limits::lowest(), + std::numeric_limits::denorm_min(), + std::numeric_limits::epsilon(), + std::numeric_limits::round_error(), + std::numeric_limits::infinity(), + -std::numeric_limits::infinity(), + std::numeric_limits::max() }); testRoundTrip({ -0.0, 0.0, 0.1, 0.01, 0.001, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.99, 0.999, 1.0, 1.1, 1.2, 1000000.0, 10e10, -10e10 }); @@ -207,11 +210,12 @@ TEST(ThriftKernelTest, MapI32Float) }; testRoundTrip({}); - testRoundTrip({ { 0, 0.0 }, - { 1, -0.0 }, - { -1, -50.0 }, - { std::numeric_limits::min(), 5.0 }, - { std::numeric_limits::max(), -5.0 } }); + testRoundTrip( + { { 0, 0.0 }, + { 1, -0.0 }, + { -1, -50.0 }, + { std::numeric_limits::min(), 5.0 }, + { std::numeric_limits::max(), -5.0 } }); std::unordered_map map; for (size_t i = 0; i < 20000; ++i) { map.emplace(int32_t(i), float(i)); @@ -278,12 +282,13 @@ TEST(ThriftKernelTest, MapI32ArrayFloat) testRoundTrip({}); testRoundTrip({ { 0, { 0.0, 0.1 } } }); - testRoundTrip({ { 0, { 0.0, 0.1 } }, - { 1, { -0.0 } }, - { -1, {} }, - { std::numeric_limits::min(), { 5.0 } }, - { std::numeric_limits::max(), { -5.0 } }, - { 2, std::vector(1000, 0.5) } }); + testRoundTrip( + { { 0, { 0.0, 0.1 } }, + { 1, { -0.0 } }, + { -1, {} }, + { std::numeric_limits::min(), { 5.0 } }, + { std::numeric_limits::max(), { -5.0 } }, + { 2, std::vector(1000, 0.5) } }); std::unordered_map> map; for (size_t i = 0; i < 20000; ++i) { map.emplace(int32_t(i), std::vector(1, float(i))); @@ -351,12 +356,13 @@ TEST(ThriftKernelTest, MapI32ArrayI64) testRoundTrip({}); testRoundTrip({ { 0, { -1, 1 } } }); - testRoundTrip({ { 0, { 0, 10 } }, - { 1, { -10 } }, - { -1, {} }, - { std::numeric_limits::min(), { 50000 } }, - { std::numeric_limits::max(), { -50000 } }, - { 2, std::vector(1000, 5) } }); + testRoundTrip( + { { 0, { 0, 10 } }, + { 1, { -10 } }, + { -1, {} }, + { std::numeric_limits::min(), { 50000 } }, + { std::numeric_limits::max(), { -50000 } }, + { 2, std::vector(1000, 5) } }); std::unordered_map> map; for (size_t i = 0; i < 20000; ++i) { map.emplace(int32_t(i), std::vector(1, int64_t(i))); @@ -446,10 +452,11 @@ TEST(ThriftKernelTest, MapI32ArrayArrayI64) testRoundTrip({ { 0, { {}, {} } } }); testRoundTrip({ { 0, std::vector>(10000) } }); testRoundTrip({ { 0, { std::vector(10000) } } }); - testRoundTrip({ { 0, { { 0, 1 }, {}, { 2 }, { 3, 4, 5 } } }, - { -1, { { 0, 1 }, { 2, 3, 4 } } }, - { 1, {} }, - { 2, { {}, { 3, 4, 5 } } } }); + testRoundTrip( + { { 0, { { 0, 1 }, {}, { 2 }, { 3, 4, 5 } } }, + { -1, { { 0, 1 }, { 2, 3, 4 } } }, + { 1, {} }, + { 2, { {}, { 3, 4, 5 } } } }); std::unordered_map>> map; for (size_t i = 0; i < 20000; ++i) { map.emplace( @@ -534,12 +541,13 @@ TEST(ThriftKernelTest, MapI32MapI64Float) }; testRoundTrip({}); - testRoundTrip({ { 0, { { -1, 0.0 }, { 1, 0.1 } } }, - { 1, {} }, - { -1, { { 0, 5.0 } } }, - { 2, - { { std::numeric_limits::min(), -0.5 }, - { std::numeric_limits::max(), -0.0 } } } }); + testRoundTrip( + { { 0, { { -1, 0.0 }, { 1, 0.1 } } }, + { 1, {} }, + { -1, { { 0, 5.0 } } }, + { 2, + { { std::numeric_limits::min(), -0.5 }, + { std::numeric_limits::max(), -0.0 } } } }); std::unordered_map> map; for (size_t i = 0; i < 20000; ++i) { std::unordered_map innerMap; diff --git a/custom_transforms/thrift/kernels/tests/thrift_kernel_test_utils.h b/custom_transforms/thrift/kernels/tests/thrift_kernel_test_utils.h index 22c003003..a5d5eb514 100644 --- a/custom_transforms/thrift/kernels/tests/thrift_kernel_test_utils.h +++ b/custom_transforms/thrift/kernels/tests/thrift_kernel_test_utils.h @@ -20,16 +20,14 @@ // TODO: Not sure if there is a better way to do this #if ZL_FBCODE_IS_RELEASE -# include "openzl/versions/release/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_fatal_types.h" -# include "openzl/versions/release/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_types.h" -# include "openzl/versions/release/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_visitation.h" +# include "openzl/prod/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_types.h" +# include "openzl/prod/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_visitation.h" #else -# include "data_compression/experimental/zstrong/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_fatal_types.h" -# include "data_compression/experimental/zstrong/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_types.h" -# include "data_compression/experimental/zstrong/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_visitation.h" +# include "openzl/dev/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_types.h" +# include "openzl/dev/custom_transforms/thrift/kernels/tests/gen-cpp2/fuzz_data_visitation.h" #endif -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { template std::string serialize(const T& value) { @@ -205,17 +203,17 @@ T generate(RNG&& gen) } template -class ThriftProducer : public zstrong::tests::datagen::FixedWidthDataProducer { +class ThriftProducer : public openzl::tests::datagen::FixedWidthDataProducer { public: explicit ThriftProducer( - std::shared_ptr rw, + std::shared_ptr rw, size_t maxSamples = 10) : FixedWidthDataProducer(rw, 1), dist_(std::move(rw), 5, maxSamples) { } - ::zstrong::tests::datagen::FixedWidthData operator()( - zstrong::tests::datagen::RandWrapper::NameType name) override + ::openzl::tests::datagen::FixedWidthData operator()( + openzl::tests::datagen::RandWrapper::NameType name) override { std::string datum; const size_t n = dist_(name); @@ -223,8 +221,8 @@ class ThriftProducer : public zstrong::tests::datagen::FixedWidthDataProducer { // todo: Thrift is important enough we should migrate generate<>() // to get structured randomness from randwrapper instead of just // using it as an rng. For e.g. fuzzing - T value = zstrong::thrift::tests::generate( - zstrong::tests::datagen::RNGEngine( + T value = openzl::thrift::tests::generate( + openzl::tests::datagen::RNGEngine( rw_.get(), "ThriftProducer::RNGEngine::operator()")); apache::thrift::CompactSerializer::serialize(value, &datum); @@ -238,7 +236,7 @@ class ThriftProducer : public zstrong::tests::datagen::FixedWidthDataProducer { } private: - zstrong::tests::datagen::VecLengthDistribution dist_; + openzl::tests::datagen::VecLengthDistribution dist_; }; -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/parse_config.cpp b/custom_transforms/thrift/parse_config.cpp index c955ad712..62345e391 100644 --- a/custom_transforms/thrift/parse_config.cpp +++ b/custom_transforms/thrift/parse_config.cpp @@ -41,7 +41,7 @@ LogicalCluster::LogicalCluster(const cpp2::LogicalCluster& rawCluster) void BaseConfig::setBaseConfig(cpp2::BaseConfig config) { - const auto rawPathMap = std::move(*config.pathMap_ref()); + const auto rawPathMap = std::move(*config.pathMap()); for (const auto& [rawPath, rawInfo] : rawPathMap) { logicalStreamIds_.insert( LogicalId(folly::copy(rawInfo.logicalId().value()))); @@ -75,22 +75,22 @@ cpp2::BaseConfig BaseConfig::toThriftObj() const std::map, cpp2::PathInfo> rawPathMap; for (const auto& [path, info] : pathMap_) { cpp2::PathInfo rawInfo; - rawInfo.logicalId_ref() = folly::to(info.id); - rawInfo.type_ref() = folly::to(info.type); + rawInfo.logicalId() = folly::to(info.id); + rawInfo.type() = folly::to(info.type); rawPathMap.emplace(convertVec(path), rawInfo); } - baseConfig.pathMap_ref() = std::move(rawPathMap); - baseConfig.rootType_ref() = folly::to(rootType_); + baseConfig.pathMap() = std::move(rawPathMap); + baseConfig.rootType() = folly::to(rootType_); std::vector rawClusters; rawClusters.reserve(clusters_.size()); for (const auto& cluster : clusters_) { cpp2::LogicalCluster rawCluster; - rawCluster.idList_ref() = convertVec(cluster.idList); - rawCluster.successor_ref() = cluster.successor; + rawCluster.idList() = convertVec(cluster.idList); + rawCluster.successor() = cluster.successor; rawClusters.push_back(rawCluster); } - baseConfig.clusters_ref() = std::move(rawClusters); + baseConfig.clusters() = std::move(rawClusters); return baseConfig; } @@ -346,7 +346,7 @@ void EncoderConfig::validate() const cpp2::EncoderConfig EncoderConfig::toThriftObj() const { cpp2::EncoderConfig config; - config.baseConfig_ref() = BaseConfig::toThriftObj(); + config.baseConfig() = BaseConfig::toThriftObj(); std::map rawSuccessorMap; for (const auto& [id, successor] : successors_) { rawSuccessorMap.emplace(folly::to(id), successor); @@ -361,10 +361,10 @@ cpp2::EncoderConfig EncoderConfig::toThriftObj() const } rawTypeSuccessorMap.emplace(folly::to(type), successor); } - config.typeSuccessorMap_ref() = std::move(rawTypeSuccessorMap); - config.successorMap_ref() = std::move(rawSuccessorMap); - config.parseTulipV2_ref() = parseTulipV2_; - config.minFormatVersion_ref() = minFormatVersion_; + config.typeSuccessorMap() = std::move(rawTypeSuccessorMap); + config.successorMap() = std::move(rawSuccessorMap); + config.parseTulipV2() = parseTulipV2_; + config.minFormatVersion() = minFormatVersion_; return config; } @@ -400,9 +400,9 @@ DecoderConfig::DecoderConfig( cpp2::DecoderConfig DecoderConfig::toThriftObj() const { cpp2::DecoderConfig config; - config.baseConfig_ref() = BaseConfig::toThriftObj(); - config.originalSize_ref() = originalSize_; - config.unparseMessageHeaders_ref() = unparseMessageHeaders_; + config.baseConfig() = BaseConfig::toThriftObj(); + config.originalSize() = originalSize_; + config.unparseMessageHeaders() = unparseMessageHeaders_; return config; } diff --git a/custom_transforms/thrift/parse_config.h b/custom_transforms/thrift/parse_config.h index 3ebe31844..42864700b 100644 --- a/custom_transforms/thrift/parse_config.h +++ b/custom_transforms/thrift/parse_config.h @@ -8,11 +8,11 @@ #include "openzl/zl_version.h" // @manual #if ZL_FBCODE_IS_RELEASE -# include "openzl/versions/release/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual -# include "openzl/versions/release/custom_transforms/thrift/gen-cpp2/parse_config_types_custom_protocol.h" // @manual +# include "openzl/prod/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual +# include "openzl/prod/custom_transforms/thrift/gen-cpp2/parse_config_types_custom_protocol.h" // @manual #else -# include "data_compression/experimental/zstrong/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual -# include "data_compression/experimental/zstrong/custom_transforms/thrift/gen-cpp2/parse_config_types_custom_protocol.h" // @manual +# include "openzl/dev/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual +# include "openzl/dev/custom_transforms/thrift/gen-cpp2/parse_config_types_custom_protocol.h" // @manual #endif #include diff --git a/custom_transforms/thrift/parse_config.thrift b/custom_transforms/thrift/parse_config.thrift index 32f9852af..ec3ed0626 100644 --- a/custom_transforms/thrift/parse_config.thrift +++ b/custom_transforms/thrift/parse_config.thrift @@ -2,6 +2,11 @@ // @nolint +include "thrift/annotation/thrift.thrift" + +@thrift.AllowLegacyMissingUris +package; + namespace cpp2 zstrong.thrift.cpp2 namespace py3 zstrong.thrift diff --git a/custom_transforms/thrift/path_tracker-inl.h b/custom_transforms/thrift/path_tracker-inl.h index c8e6b334d..f255b8cd3 100644 --- a/custom_transforms/thrift/path_tracker-inl.h +++ b/custom_transforms/thrift/path_tracker-inl.h @@ -2,6 +2,8 @@ #pragma once +#include "custom_transforms/thrift/thrift_errors.h" // @manual + namespace zstrong::thrift { namespace detail { constexpr std::string_view kOldStyleVsfErrorMsg = @@ -191,13 +193,14 @@ void PathTracker::Node::checkType(TType t) const { t = coerceType(t); if (t != type()) { - throw std::runtime_error(fmt::format( - "Node (id {}) has type {} ({}) but is being accessed with type {} ({})!", - id(), - thriftTypeToString(type()), - type(), - thriftTypeToString(t), - t)); + throw ThriftParserUserError( + fmt::format( + "Node (id {}) has type {} ({}) but is being accessed with type {} ({})!", + id(), + thriftTypeToString(type()), + type(), + thriftTypeToString(t), + t)); } } diff --git a/custom_transforms/thrift/path_tracker.h b/custom_transforms/thrift/path_tracker.h index e90f01908..892fd0ba6 100644 --- a/custom_transforms/thrift/path_tracker.h +++ b/custom_transforms/thrift/path_tracker.h @@ -58,7 +58,7 @@ class PathTracker { depth_(depth) { if (depth_ > kMaxThriftDepth) { - throw std::runtime_error( + throw ThriftUnhandledInputError( "Exceeded maximum thrift recursion depth!"); } } diff --git a/custom_transforms/thrift/probabilistic_selector.c b/custom_transforms/thrift/probabilistic_selector.c index c872aca0f..c27002f71 100644 --- a/custom_transforms/thrift/probabilistic_selector.c +++ b/custom_transforms/thrift/probabilistic_selector.c @@ -10,9 +10,10 @@ static ZL_Report probabilisticSelectorImpl(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); ZL_GraphIDList customGraphs = ZL_Graph_getCustomGraphs(gctx); size_t nbCustomGraphs = customGraphs.nbGraphIDs; - ZL_RET_R_IF_EQ(node_invalid_input, customGraphs.nbGraphIDs, 0); + ZL_ERR_IF_EQ(customGraphs.nbGraphIDs, 0, node_invalid_input); const size_t* probWeights = (const size_t*)ZL_Graph_getLocalRefParam( @@ -21,8 +22,8 @@ probabilisticSelectorImpl(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) size_t totalWeight = 0; for (size_t i = 0; i < nbCustomGraphs; ++i) { // Weight overflow - ZL_RET_R_IF_GT( - node_invalid_input, totalWeight, SIZE_MAX - probWeights[i]); + ZL_ERR_IF_GT( + totalWeight, SIZE_MAX - probWeights[i], node_invalid_input); totalWeight += probWeights[i]; } XXH32_hash_t hash = 0; diff --git a/custom_transforms/thrift/probabilistic_selector.h b/custom_transforms/thrift/probabilistic_selector.h index 717ee0500..a1ef9196b 100644 --- a/custom_transforms/thrift/probabilistic_selector.h +++ b/custom_transforms/thrift/probabilistic_selector.h @@ -2,12 +2,12 @@ #pragma once +#include "openzl/zl_graph_api.h" + #ifdef __cplusplus extern "C" { #endif -#include "openzl/zl_graph_api.h" - /** * A selector that chooses between a set of successors with a weighted * probability. It must be guaranteed that there is exactly one probability diff --git a/custom_transforms/thrift/split_helpers.h b/custom_transforms/thrift/split_helpers.h index 921e1d192..7764ca0fe 100644 --- a/custom_transforms/thrift/split_helpers.h +++ b/custom_transforms/thrift/split_helpers.h @@ -4,11 +4,12 @@ #include "custom_transforms/thrift/constants.h" // @manual #include "custom_transforms/thrift/debug.h" -#include "custom_transforms/thrift/parse_config.h" // @manual -#include "custom_transforms/thrift/thrift_types.h" // @manual -#include "openzl/codecs/common/copy.h" // @manual -#include "openzl/common/errors_internal.h" // @manual -#include "openzl/shared/varint.h" // @manual +#include "custom_transforms/thrift/parse_config.h" // @manual +#include "custom_transforms/thrift/thrift_errors.h" // @manual +#include "custom_transforms/thrift/thrift_types.h" // @manual +#include "openzl/codecs/common/copy.h" // @manual +#include "openzl/common/errors_internal.h" // @manual +#include "openzl/shared/varint.h" // @manual #include #include @@ -204,7 +205,9 @@ class WriteStream : public detail::BaseWriteStream { type_(type) { if (width() == 0) { - throw std::runtime_error{ fmt::format( + // Note: It is not possible to create an EncoderConfig that throws + // here with the provided construction API. + throw InvalidConfigError{ fmt::format( "Invalid WriteStream type {}", type_) }; } } @@ -244,7 +247,7 @@ class WriteStream : public detail::BaseWriteStream { ZL_FORCE_INLINE_ATTR void writeValue(Value val) { static_assert(folly::kIsLittleEndian); - appender_.writeLE(val); + appender_.writeLE(val); } void copyTo(folly::MutableByteRange dst) const diff --git a/custom_transforms/thrift/splitter.h b/custom_transforms/thrift/splitter.h index 588e6e6b4..cb334887b 100644 --- a/custom_transforms/thrift/splitter.h +++ b/custom_transforms/thrift/splitter.h @@ -5,6 +5,7 @@ #include "custom_transforms/thrift/parse_config.h" #include "custom_transforms/thrift/path_tracker.h" #include "custom_transforms/thrift/split_helpers.h" +#include "custom_transforms/thrift/thrift_errors.h" #include "openzl/zl_errors.h" #include @@ -61,6 +62,11 @@ class BaseParser { // Note: parser.advance() always makes forward progress break; } + } catch (const ThriftParserUserError& ex) { + throw ThriftParserUserError{ fmt::format( + "Thrift parser failed at position {}: {}", + rs_.pos(), + ex.what()) }; } catch (const std::exception& ex) { throw std::runtime_error{ fmt::format( "Thrift parser failed at position {}: {}", @@ -318,6 +324,11 @@ class DBaseParser { break; } assert(ws_.nbytes() <= kMaxExpansionFactor * rss_.nbytes()); + } catch (const ThriftParserUserError& ex) { + throw ThriftParserUserError{ fmt::format( + "Thrift parser failed at position {}: {}", + ws_.nbytes(), + ex.what()) }; } catch (const std::exception& ex) { throw std::runtime_error{ fmt::format( "Thrift parser failed at position {}: {}", diff --git a/custom_transforms/thrift/tests/BUCK b/custom_transforms/thrift/tests/BUCK index 74c9a9994..fc3124a0d 100644 --- a/custom_transforms/thrift/tests/BUCK +++ b/custom_transforms/thrift/tests/BUCK @@ -4,18 +4,18 @@ load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") load("@fbcode_macros//build_defs:thrift_library.bzl", "thrift_library") -load("//data_compression/experimental/zstrong:defs.bzl", "ZS_HEADER_INCLUDE_PATH", "zs_fuzzers") +load("../../../defs.bzl", "relative_headers", "zs_fuzzers") oncall("data_compression") cpp_unittest( name = "thrift_test", srcs = glob(["test_*.cpp"]), - headers = glob(["test_*.h"]), - compiler_flags = [ZS_HEADER_INCLUDE_PATH], + headers = relative_headers(glob(["test_*.h"])), + header_namespace = "", deps = [ + "../../tulip_v2/tests:tulip_v2_data_utils", ":thrift_test_utils", - "//data_compression/experimental/zstrong/custom_transforms/tulip_v2/tests:tulip_v2_data_utils", ], ) @@ -25,21 +25,20 @@ cpp_library( "test_prob_selector_fixture.cpp", "util.cpp", ], - headers = [ + headers = relative_headers([ "test_prob_selector_fixture.h", "util.h", - ], - compiler_flags = [ZS_HEADER_INCLUDE_PATH], + ]), + header_namespace = "", exported_deps = [ - ":thrift_test_schema-cpp2-reflection", + "..:thrift_lib", + "../../..:zstronglib", + "../../../tests/datagen:datagen", + "../../../tools:zstrong_cpp", + "../kernels/tests:thrift_kernel_test_utils", ":thrift_test_schema-cpp2-types", ":thrift_test_schema-cpp2-visitation", "//common/gtest:gtest", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_transforms/thrift:thrift_lib", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels/tests:thrift_kernel_test_utils", - "//data_compression/experimental/zstrong/tests/datagen:datagen", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", "//thrift/lib/cpp2/protocol:protocol", ], ) @@ -68,8 +67,8 @@ zs_fuzzers( ("ProbSelectorTest", "FuzzRoundTrip"), ], deps = [ + "../../../tests:fuzz_utils", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", ":thrift_test_utils", - "//data_compression/experimental/zstrong/tests:fuzz_utils", ], ) diff --git a/custom_transforms/thrift/tests/fuzz.cpp b/custom_transforms/thrift/tests/fuzz.cpp index 904d13f14..ac5f58e7d 100644 --- a/custom_transforms/thrift/tests/fuzz.cpp +++ b/custom_transforms/thrift/tests/fuzz.cpp @@ -16,8 +16,11 @@ using apache::thrift::BinarySerializer; using apache::thrift::CompactSerializer; using namespace ::testing; -namespace zstrong::thrift::tests { -using namespace ::zstrong::tests; +namespace openzl::thrift::tests { + +using namespace zstrong::thrift; +namespace cpp2 = zstrong::thrift::tests::cpp2; +using namespace ::openzl::tests; namespace lionhead = ::facebook::security::lionhead; namespace { @@ -117,17 +120,15 @@ std::pair genFormatVersions( lionhead::fdp::Coin(0.9).gen( "should_format_versions_be_compatible", f) || mode == GenFormatVersionsMode::kForceCompatible; - int const encoderFormatVersion = helper( - ::zstrong::thrift::kMinFormatVersionEncode, ZL_MAX_FORMAT_VERSION); + int const encoderFormatVersion = + helper(kMinFormatVersionEncode, ZL_MAX_FORMAT_VERSION); if (useCompatibleVersions) { int const configFormatVersion = - helper(::zstrong::thrift::kMinFormatVersionEncode, - encoderFormatVersion); + helper(kMinFormatVersionEncode, encoderFormatVersion); return { configFormatVersion, encoderFormatVersion }; } else { int const configFormatVersion = - helper(::zstrong::thrift::kMinFormatVersionEncode, - ZL_MAX_FORMAT_VERSION); + helper(kMinFormatVersionEncode, ZL_MAX_FORMAT_VERSION); return { configFormatVersion, encoderFormatVersion }; } } @@ -268,4 +269,4 @@ FUZZ_F(ProbSelectorTest, FuzzRoundTrip) convertedInput); } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/test_prob_selector.cpp b/custom_transforms/thrift/tests/test_prob_selector.cpp index 39d1de630..385dec40a 100644 --- a/custom_transforms/thrift/tests/test_prob_selector.cpp +++ b/custom_transforms/thrift/tests/test_prob_selector.cpp @@ -4,7 +4,7 @@ #include "custom_transforms/thrift/tests/test_prob_selector_fixture.h" #include "openzl/zl_public_nodes.h" -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { // A test that tests a few random inputs and checks the graph ID obtained is // correct. @@ -113,4 +113,4 @@ TEST_F(ProbSelectorTest, ProbSelectorRoundTrip) sample); } } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/test_prob_selector_fixture.cpp b/custom_transforms/thrift/tests/test_prob_selector_fixture.cpp index d1c1a7e0b..94b77724f 100644 --- a/custom_transforms/thrift/tests/test_prob_selector_fixture.cpp +++ b/custom_transforms/thrift/tests/test_prob_selector_fixture.cpp @@ -1,12 +1,14 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. #include "custom_transforms/thrift/tests/test_prob_selector_fixture.h" + +#include "custom_transforms/thrift/constants.h" // @manual #include "custom_transforms/thrift/probabilistic_selector.h" #include "openzl/zl_compressor.h" #include "openzl/zl_decompress.h" -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { ZL_Report ProbSelectorTest::compress( ZL_Compressor* const cgraph, @@ -16,12 +18,13 @@ ZL_Report ProbSelectorTest::compress( size_t srcSize, ZL_GraphID graphid) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cgraph); ZL_CCtx* const cctx = ZL_CCtx_create(); - ZL_RET_R_IF_ERR(ZL_Compressor_setParameter( + ZL_ERR_IF_ERR(ZL_Compressor_setParameter( cgraph, ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION)); - ZL_RET_R_IF_ERR(ZL_Compressor_selectStartingGraphID(cgraph, graphid)); - ZL_RET_R_IF_ERR(ZL_CCtx_refCompressor(cctx, cgraph)); + ZL_ERR_IF_ERR(ZL_Compressor_selectStartingGraphID(cgraph, graphid)); + ZL_ERR_IF_ERR(ZL_CCtx_refCompressor(cctx, cgraph)); ZL_Report result = ZL_CCtx_compress(cctx, dstBuff, dstCapacity, src, srcSize); @@ -134,4 +137,4 @@ size_t ProbSelectorTest::compressWithGid( free(dstBuff); return ZL_validResult(result); } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/test_prob_selector_fixture.h b/custom_transforms/thrift/tests/test_prob_selector_fixture.h index 63b077d54..fba8ae301 100644 --- a/custom_transforms/thrift/tests/test_prob_selector_fixture.h +++ b/custom_transforms/thrift/tests/test_prob_selector_fixture.h @@ -9,11 +9,11 @@ #pragma once -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { class ProbSelectorTest : public ::testing::Test { public: - ::zstrong::tests::datagen::DataGen dataGen_; + ::openzl::tests::datagen::DataGen dataGen_; void testRoundTrip( ZL_GraphID* selGraphs, @@ -45,4 +45,4 @@ class ProbSelectorTest : public ::testing::Test { const void* compressed, size_t cSize); }; -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/test_round_trip.cpp b/custom_transforms/thrift/tests/test_round_trip.cpp index 1aa633d61..bd7947b6d 100644 --- a/custom_transforms/thrift/tests/test_round_trip.cpp +++ b/custom_transforms/thrift/tests/test_round_trip.cpp @@ -12,7 +12,11 @@ using apache::thrift::BinarySerializer; using apache::thrift::CompactSerializer; -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { + +using namespace zstrong::thrift; +namespace cpp2 = zstrong::thrift::tests::cpp2; + namespace { // Test round-trip where the root type is not T_STRUCT template @@ -134,7 +138,7 @@ TEST(RoundTripTest, TestTulipV2) std::mt19937 gen(0xdeadbeef); for (size_t n = 1; n < 10; ++n) { - auto data = zstrong::tulip_v2::tests::generateTulipV2(n, gen); + auto data = openzl::tulip_v2::tests::generateTulipV2(n, gen); EXPECT_NO_THROW(runThriftSplitterRoundTrip( thriftCompactConfigurableSplitter, data, @@ -296,4 +300,4 @@ TEST(RoundTripTest, OldStyleVSF) ZL_MAX_FORMAT_VERSION)); } } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/test_schema.thrift b/custom_transforms/thrift/tests/test_schema.thrift index 811d3b1e2..5367ccc8b 100644 --- a/custom_transforms/thrift/tests/test_schema.thrift +++ b/custom_transforms/thrift/tests/test_schema.thrift @@ -1,5 +1,10 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +include "thrift/annotation/thrift.thrift" + +@thrift.AllowLegacyMissingUris +package; + namespace cpp2 zstrong.thrift.tests.cpp2 struct InnerTestStruct { @@ -20,7 +25,9 @@ struct InnerTestStruct { struct TestStruct { 4: InnerTestStruct struct1; 3: InnerTestStruct struct2; + @thrift.AllowUnsafeNonSealedKeyType 2: set set1; + @thrift.AllowUnsafeNonSealedKeyType 1: map map1; # Ensure test coverage for structure-optimized kernels diff --git a/custom_transforms/thrift/tests/test_serialization.cpp b/custom_transforms/thrift/tests/test_serialization.cpp index a1665deaf..184a26e21 100644 --- a/custom_transforms/thrift/tests/test_serialization.cpp +++ b/custom_transforms/thrift/tests/test_serialization.cpp @@ -5,12 +5,14 @@ #include "custom_transforms/thrift/thrift_parsers.h" // @manual #if ZL_FBCODE_IS_RELEASE -# include "openzl/versions/release/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual +# include "openzl/prod/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual #else -# include "data_compression/experimental/zstrong/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual +# include "openzl/dev/custom_transforms/thrift/gen-cpp2/parse_config_types.h" // @manual #endif -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { + +using namespace zstrong::thrift; TEST(ConfigSerializationTest, RoundTrip) { @@ -369,4 +371,4 @@ TEST(ConfigSerializationTest, RejectIllegalListLengthsSplit) EXPECT_NO_THROW(builder.finalize()); } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/test_split.cpp b/custom_transforms/thrift/tests/test_split.cpp index 4e9abb959..399006d0e 100644 --- a/custom_transforms/thrift/tests/test_split.cpp +++ b/custom_transforms/thrift/tests/test_split.cpp @@ -13,7 +13,11 @@ using apache::thrift::BinarySerializer; using apache::thrift::CompactSerializer; -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { + +using namespace zstrong::thrift; +namespace cpp2 = zstrong::thrift::tests::cpp2; + namespace { template @@ -38,16 +42,16 @@ template void testPrimitiveTypes() { cpp2::PrimitiveTestStruct testStruct; - testStruct.field_bool_ref() = false; - testStruct.field_byte_ref() = 0xbe; - testStruct.field_i16_ref() = 0xbeef; - testStruct.field_i32_ref() = 0xdeadbeef; - testStruct.field_i64_ref() = 0xfaceb00cdeadbeef; - testStruct.field_float32_ref() = (float)0.42; - testStruct.field_float64_ref() = (double)0.42; + testStruct.field_bool() = false; + testStruct.field_byte() = 0xbe; + testStruct.field_i16() = 0xbeef; + testStruct.field_i32() = 0xdeadbeef; + testStruct.field_i64() = 0xfaceb00cdeadbeef; + testStruct.field_float32() = (float)0.42; + testStruct.field_float64() = (double)0.42; std::string const testString(42, (char)0x42); - testStruct.field_string_ref() = std::string(42, (char)0x42); - size_t constexpr kNumFields = 8; + testStruct.field_string() = std::string(42, (char)0x42); + size_t constexpr kNumFields = 8; std::string const data = Serializer::template serialize(testStruct); @@ -101,8 +105,10 @@ void testPrimitiveTypes() expectedVariableStreams.at(LogicalId(5)).writeValue(0.42); expectedVariableStreams.at(LogicalId(6)).writeValue(0.42); expectedVariableStreams.at(LogicalId(7)) - .writeBytes(folly::ByteRange( - (const uint8_t*)testString.data(), testString.size())); + .writeBytes( + folly::ByteRange( + (const uint8_t*)testString.data(), + testString.size())); // These streams are used for string VSF splits folly::F14FastMap @@ -138,11 +144,11 @@ void testCollectionTypes() } cpp2::CollectionTestStruct testStruct; - testStruct.field_list_bool_ref() = testListBool; - testStruct.field_set_int32_ref() = testSetInt32; - testStruct.field_map_diff_types_ref() = testMapDiffTypes; - testStruct.field_map_same_types_ref() = testMapSameTypes; - size_t constexpr kNumFields = 4; + testStruct.field_list_bool() = testListBool; + testStruct.field_set_int32() = testSetInt32; + testStruct.field_map_diff_types() = testMapDiffTypes; + testStruct.field_map_same_types() = testMapSameTypes; + size_t constexpr kNumFields = 4; std::string const data = Serializer::template serialize(testStruct); @@ -323,4 +329,4 @@ TEST(SplitTest, CompactAgainstBinary) } } -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/util.cpp b/custom_transforms/thrift/tests/util.cpp index 9a7134783..0d7beae3b 100644 --- a/custom_transforms/thrift/tests/util.cpp +++ b/custom_transforms/thrift/tests/util.cpp @@ -13,7 +13,11 @@ #include "openzl/zl_data.h" #include "tools/zstrong_cpp.h" // @manual -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { + +using namespace zstrong::thrift; +namespace cpp2 = zstrong::thrift::tests::cpp2; + namespace { // TODO(T190725275) Hard-coding the list of paths is brittle: for example, if we // add a new special ThriftNodeId, we'd need to update the list manually. The @@ -24,39 +28,72 @@ namespace { // For the short term, as long as we check this list against the TestStruct // schema in code review, our coverage should be fine. The schema can be found // at https://fburl.com/code/chgygv3s. -std::vector> getAllPaths() +std::vector> +getAllPaths() { - std::vector> suffixes = { - { { ThriftNodeId(-1) }, TType::T_BYTE }, - { { ThriftNodeId(-2) }, TType::T_BOOL }, - { { ThriftNodeId(1) }, TType::T_I16 }, - { { ThriftNodeId(42) }, TType::T_I32 }, - { { ThriftNodeId(2) }, TType::T_I64 }, - { { ThriftNodeId(3) }, TType::T_FLOAT }, - { { ThriftNodeId(4) }, TType::T_DOUBLE }, - { { ThriftNodeId(5) }, TType::T_STRING }, - { { ThriftNodeId(5), ThriftNodeId::kLength }, TType::T_U32 }, - { { ThriftNodeId(6), ThriftNodeId::kListElem }, TType::T_BOOL }, - { { ThriftNodeId(6), ThriftNodeId::kLength }, TType::T_U32 }, - { { ThriftNodeId(7), ThriftNodeId::kMapKey }, TType::T_STRING }, - { { ThriftNodeId(7), ThriftNodeId::kMapValue }, TType::T_BOOL }, - { { ThriftNodeId(7), ThriftNodeId::kLength }, TType::T_U32 }, - { { ThriftNodeId(7), ThriftNodeId::kMapKey, ThriftNodeId::kLength }, - TType::T_U32 }, - { { ThriftNodeId(8), ThriftNodeId::kListElem }, TType::T_I32 }, - { { ThriftNodeId(8), ThriftNodeId::kLength }, TType::T_U32 }, - { { ThriftNodeId(-123) }, TType::T_FLOAT }, // include a fake path + std::vector> + suffixes = { + { { zstrong::thrift::ThriftNodeId(-1) }, + zstrong::thrift::TType::T_BYTE }, + { { zstrong::thrift::ThriftNodeId(-2) }, + zstrong::thrift::TType::T_BOOL }, + { { zstrong::thrift::ThriftNodeId(1) }, + zstrong::thrift::TType::T_I16 }, + { { zstrong::thrift::ThriftNodeId(42) }, + zstrong::thrift::TType::T_I32 }, + { { zstrong::thrift::ThriftNodeId(2) }, + zstrong::thrift::TType::T_I64 }, + { { zstrong::thrift::ThriftNodeId(3) }, + zstrong::thrift::TType::T_FLOAT }, + { { zstrong::thrift::ThriftNodeId(4) }, + zstrong::thrift::TType::T_DOUBLE }, + { { zstrong::thrift::ThriftNodeId(5) }, + zstrong::thrift::TType::T_STRING }, + { { zstrong::thrift::ThriftNodeId(5), + zstrong::thrift::ThriftNodeId::kLength }, + zstrong::thrift::TType::T_U32 }, + { { zstrong::thrift::ThriftNodeId(6), + zstrong::thrift::ThriftNodeId::kListElem }, + zstrong::thrift::TType::T_BOOL }, + { { zstrong::thrift::ThriftNodeId(6), + zstrong::thrift::ThriftNodeId::kLength }, + zstrong::thrift::TType::T_U32 }, + { { zstrong::thrift::ThriftNodeId(7), + zstrong::thrift::ThriftNodeId::kMapKey }, + zstrong::thrift::TType::T_STRING }, + { { zstrong::thrift::ThriftNodeId(7), + zstrong::thrift::ThriftNodeId::kMapValue }, + zstrong::thrift::TType::T_BOOL }, + { { zstrong::thrift::ThriftNodeId(7), + zstrong::thrift::ThriftNodeId::kLength }, + zstrong::thrift::TType::T_U32 }, + { { zstrong::thrift::ThriftNodeId(7), + zstrong::thrift::ThriftNodeId::kMapKey, + zstrong::thrift::ThriftNodeId::kLength }, + zstrong::thrift::TType::T_U32 }, + { { zstrong::thrift::ThriftNodeId(8), + zstrong::thrift::ThriftNodeId::kListElem }, + zstrong::thrift::TType::T_I32 }, + { { zstrong::thrift::ThriftNodeId(8), + zstrong::thrift::ThriftNodeId::kLength }, + zstrong::thrift::TType::T_U32 }, + { { zstrong::thrift::ThriftNodeId(-123) }, + zstrong::thrift::TType::T_FLOAT }, // include a fake path + }; + + std::vector prefixes = { + { zstrong::thrift::ThriftNodeId(4) }, + { zstrong::thrift::ThriftNodeId(3) }, + { zstrong::thrift::ThriftNodeId(2), + zstrong::thrift::ThriftNodeId::kListElem }, + { zstrong::thrift::ThriftNodeId(1), + zstrong::thrift::ThriftNodeId::kMapKey }, + { zstrong::thrift::ThriftNodeId(1), + zstrong::thrift::ThriftNodeId::kMapValue }, }; - std::vector prefixes = { - { ThriftNodeId(4) }, - { ThriftNodeId(3) }, - { ThriftNodeId(2), ThriftNodeId::kListElem }, - { ThriftNodeId(1), ThriftNodeId::kMapKey }, - { ThriftNodeId(1), ThriftNodeId::kMapValue }, - }; - - std::vector> result; + std::vector> + result; result.reserve(prefixes.size() * suffixes.size()); for (const auto& prefix : prefixes) { for (const auto& [innerPath, innerType] : suffixes) { @@ -70,13 +107,17 @@ std::vector> getAllPaths() } // Work around the annoying kLength bug -std::vector> purgeLengthOnlySplits( - const std::vector>& paths) +std::vector> +purgeLengthOnlySplits( + const std::vector< + std::pair>& + paths) { - std::set dataPrefixes; + std::set dataPrefixes; for (auto& [path, _] : paths) { - if (!path.empty() && path.back() != ThriftNodeId::kLength) { - ThriftPath prefix(path.begin(), path.end() - 1); + if (!path.empty() + && path.back() != zstrong::thrift::ThriftNodeId::kLength) { + zstrong::thrift::ThriftPath prefix(path.begin(), path.end() - 1); dataPrefixes.insert(std::move(prefix)); dataPrefixes.insert(path); } @@ -88,8 +129,9 @@ std::vector> purgeLengthOnlySplits( if (path.empty()) { continue; } - if (path.back() == ThriftNodeId::kLength) { - const ThriftPath prefix(path.begin(), path.end() - 1); + if (path.back() == zstrong::thrift::ThriftNodeId::kLength) { + const zstrong::thrift::ThriftPath prefix( + path.begin(), path.end() - 1); if (!dataPrefixes.contains(prefix)) { // It's illegal to split lengths without data continue; @@ -101,12 +143,15 @@ std::vector> purgeLengthOnlySplits( } // Support for string length paths is removed in format version 14 -std::vector> purgeStringLengthPaths( - const std::vector>& paths) +std::vector> +purgeStringLengthPaths( + const std::vector< + std::pair>& + paths) { - std::set stringVsfPaths; + std::set stringVsfPaths; for (auto& [path, type] : paths) { - if (type == TType::T_STRING) { + if (type == zstrong::thrift::TType::T_STRING) { stringVsfPaths.insert(path); } } @@ -117,8 +162,9 @@ std::vector> purgeStringLengthPaths( if (path.empty()) { continue; } - if (path.back() == ThriftNodeId::kLength) { - const ThriftPath prefix(path.begin(), path.end() - 1); + if (path.back() == zstrong::thrift::ThriftNodeId::kLength) { + const zstrong::thrift::ThriftPath prefix( + path.begin(), path.end() - 1); if (stringVsfPaths.contains(prefix)) { // Lengths are already covered by the corresponding VSF path continue; @@ -152,8 +198,12 @@ std::string thriftSplitCompress( .nbCopyParams = 1 } }; const ZL_NodeID nodeWithoutParams = ZL_Compressor_registerVOEncoder(cgraph.get(), &compress); - const ZL_NodeID nodeWithParams = ZL_Compressor_cloneNode( - cgraph.get(), nodeWithoutParams, &localParams); + const ZL_ParameterizedNodeDesc desc = { + .node = nodeWithoutParams, + .localParams = &localParams, + }; + const ZL_NodeID nodeWithParams = + ZL_Compressor_registerParameterizedNode(cgraph.get(), &desc); std::vector thriftSuccessors; for (size_t i = 0; i < compress.gd.nbSingletons; i++) { @@ -165,14 +215,11 @@ std::string thriftSplitCompress( const std::vector directedSelectorSuccessors{ { ZL_GRAPH_STORE } }; - const ZL_SelectorDesc directed_selector_desc = - buildDirectedSelectorDesc( - type, + const ZL_GraphID directedSelectorGraphID = + registerDirectedSelectorGraph( + cgraph.get(), directedSelectorSuccessors.data(), directedSelectorSuccessors.size()); - const ZL_GraphID directedSelectorGraphID = - ZL_Compressor_registerSelectorGraph( - cgraph.get(), &directed_selector_desc); assert(directedSelectorGraphID.gid != ZL_GRAPH_ILLEGAL.gid); const std::vector emptyInputSelectorSuccessors{ { ZL_GRAPH_STORE, directedSelectorGraphID } @@ -270,7 +317,7 @@ std::string buildValidEncoderConfig( int maxFormatVersion) { std::mt19937 gen(seed); - EncoderConfigBuilder builder; + zstrong::thrift::EncoderConfigBuilder builder; // Add a random subset of possible paths to the config { @@ -281,7 +328,7 @@ std::string buildValidEncoderConfig( : std::uniform_real_distribution(0.0, 1.0)(gen); paths.resize(size_t(fractionOfPathsToUse * paths.size())); paths = purgeLengthOnlySplits(paths); - if (maxFormatVersion >= kMinFormatVersionStringVSF) { + if (maxFormatVersion >= zstrong::thrift::kMinFormatVersionStringVSF) { paths = purgeStringLengthPaths(paths); } for (const auto& [path, type] : paths) { @@ -290,10 +337,10 @@ std::string buildValidEncoderConfig( } // Cluster a random subset of paths - std::set clusteredPaths{}; - if (minFormatVersion >= kMinFormatVersionEncodeClusters) { - folly::F14FastMap clusterIndices; - clusterIndices.reserve(size_t(TType::T_FLOAT)); + std::set clusteredPaths{}; + if (minFormatVersion >= zstrong::thrift::kMinFormatVersionEncodeClusters) { + folly::F14FastMap clusterIndices; + clusterIndices.reserve(size_t(zstrong::thrift::TType::T_FLOAT)); for (const auto& [_, pathInfo] : builder.pathMap()) { if (!clusterIndices.contains(pathInfo.type)) { clusterIndices.emplace( @@ -334,11 +381,12 @@ std::string buildValidEncoderConfig( if (seed == kDefaultConfigSeed && mode == ConfigGenMode::kMoreCoverage) { assert(builder.pathMap().size() >= 20); - if (minFormatVersion >= kMinFormatVersionEncodeClusters) { + if (minFormatVersion + >= zstrong::thrift::kMinFormatVersionEncodeClusters) { assert(!builder.clusters().empty()); assert(builder.clusters().front().idList.size() >= 2); - folly::F14FastSet clusteredTypes; + folly::F14FastSet clusteredTypes; for (int i = 0; i < builder.clusters().size(); ++i) { clusteredTypes.insert(builder.getClusterType(i)); } @@ -349,4 +397,4 @@ std::string buildValidEncoderConfig( return result; }; // namespace -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/tests/util.h b/custom_transforms/thrift/tests/util.h index d809f9fea..7adf058b5 100644 --- a/custom_transforms/thrift/tests/util.h +++ b/custom_transforms/thrift/tests/util.h @@ -17,13 +17,11 @@ #include "tools/zstrong_cpp.h" #if ZL_FBCODE_IS_RELEASE -# include "openzl/versions/release/custom_transforms/thrift/tests/gen-cpp2/test_schema_fatal_types.h" -# include "openzl/versions/release/custom_transforms/thrift/tests/gen-cpp2/test_schema_types.h" -# include "openzl/versions/release/custom_transforms/thrift/tests/gen-cpp2/test_schema_visitation.h" +# include "openzl/prod/custom_transforms/thrift/tests/gen-cpp2/test_schema_types.h" +# include "openzl/prod/custom_transforms/thrift/tests/gen-cpp2/test_schema_visitation.h" #else -# include "data_compression/experimental/zstrong/custom_transforms/thrift/tests/gen-cpp2/test_schema_fatal_types.h" -# include "data_compression/experimental/zstrong/custom_transforms/thrift/tests/gen-cpp2/test_schema_types.h" -# include "data_compression/experimental/zstrong/custom_transforms/thrift/tests/gen-cpp2/test_schema_visitation.h" +# include "openzl/dev/custom_transforms/thrift/tests/gen-cpp2/test_schema_types.h" +# include "openzl/dev/custom_transforms/thrift/tests/gen-cpp2/test_schema_visitation.h" #endif #include @@ -32,7 +30,9 @@ #pragma once -namespace zstrong::thrift::tests { +namespace openzl::thrift::tests { + +using namespace zstrong::thrift; // Works for any ZL_VOEncoderDesc which takes Thrift splitter localParams. // In other words, this function works equally well for TCompact and TBinary. @@ -108,7 +108,8 @@ std::string buildValidEncoderConfig( template std::string generateRandomThrift(RNG&& gen) { - const auto testStruct = generate(std::forward(gen)); + const auto testStruct = generate( + std::forward(gen)); return Serializer::template serialize(testStruct); } @@ -119,20 +120,20 @@ inline size_t thriftSplitCompressBound(size_t srcSize, size_t configSize) template class ConfigurableThriftProducer - : public zstrong::tests::datagen::FixedWidthDataProducer { + : public openzl::tests::datagen::FixedWidthDataProducer { public: explicit ConfigurableThriftProducer( - std::shared_ptr rw) + std::shared_ptr rw) : FixedWidthDataProducer(std::move(rw), 1) { } - ::zstrong::tests::datagen::FixedWidthData operator()( - zstrong::tests::datagen::RandWrapper::NameType) override + ::openzl::tests::datagen::FixedWidthData operator()( + openzl::tests::datagen::RandWrapper::NameType) override { return { generateRandomThrift( - zstrong::tests::datagen::RNGEngine( + openzl::tests::datagen::RNGEngine( this->rw_.get(), "ConfigurableThriftProducer::RNG::operator()")), 1 @@ -145,4 +146,4 @@ class ConfigurableThriftProducer } }; -} // namespace zstrong::thrift::tests +} // namespace openzl::thrift::tests diff --git a/custom_transforms/thrift/thrift_errors.h b/custom_transforms/thrift/thrift_errors.h new file mode 100644 index 000000000..0e5c8d52c --- /dev/null +++ b/custom_transforms/thrift/thrift_errors.h @@ -0,0 +1,36 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +namespace zstrong::thrift { + +/// Thrown when the parser encounters an error that should be classified as a +/// user error. +class ThriftParserUserError : public std::runtime_error { + public: + using std::runtime_error::runtime_error; +}; + +/// Thrown when the parser encounters malformed input data (e.g. illegal type +/// values that violate the protocol specification). +class ThriftMalformedInputError : public ThriftParserUserError { + public: + using ThriftParserUserError::ThriftParserUserError; +}; + +/// Thrown when the parser encounters valid thrift but unhandled input (e.g. a +/// type that is recognized but not supported by this parser implementation). +class ThriftUnhandledInputError : public std::runtime_error { + public: + using std::runtime_error::runtime_error; +}; + +/// Thrown when the configuration is incompatible with the input getting parsed. +class InvalidConfigError : public std::runtime_error { + public: + using std::runtime_error::runtime_error; +}; + +} // namespace zstrong::thrift diff --git a/custom_transforms/thrift/thrift_parsers.cpp b/custom_transforms/thrift/thrift_parsers.cpp index 2f28dd10a..8410c280c 100644 --- a/custom_transforms/thrift/thrift_parsers.cpp +++ b/custom_transforms/thrift/thrift_parsers.cpp @@ -26,6 +26,9 @@ #include namespace zstrong::thrift { + +static const int kClusterIndexMetadataID = 1; + namespace { ZL_Output* createZstrongStream( @@ -193,7 +196,8 @@ ZL_Output* copyFixedWidthLogicalClusterToEICtx( const LogicalCluster& cluster, const WriteStreamSet& wss, WriteStream& lengths, - unsigned int formatVersion) + unsigned int formatVersion, + int clusterIndex) { // Get cluster metadata const size_t clusterWidth = cluster.idList.size() == 0 @@ -249,6 +253,10 @@ ZL_Output* copyFixedWidthLogicalClusterToEICtx( zStream, kDirectedSelectorMetadataID, cluster.successor))) { throw std::runtime_error{ "Failed to set directed selector metadata" }; } + if (ZL_isError(ZL_Output_setIntMetadata( + zStream, kClusterIndexMetadataID, clusterIndex))) { + throw std::runtime_error{ "Failed to set cluster index metadata" }; + } return zStream; } @@ -258,7 +266,8 @@ ZL_Output* copyStringLogicalClusterToEICtx( ZL_Encoder* eictx, const LogicalCluster& cluster, const WriteStreamSet& wss, - WriteStream& clusterLengths) + WriteStream& clusterLengths, + int clusterIndex) { // Get cluster metadata const OutcomeInfo outcomeInfo = getOutcomeInfo(VariableOutcome::kVSF); @@ -312,6 +321,10 @@ ZL_Output* copyStringLogicalClusterToEICtx( zStream, kDirectedSelectorMetadataID, cluster.successor))) { throw std::runtime_error{ "Failed to set directed selector metadata" }; } + if (ZL_isError(ZL_Output_setIntMetadata( + zStream, kClusterIndexMetadataID, clusterIndex))) { + throw std::runtime_error{ "Failed to set cluster index metadata" }; + } return zStream; } @@ -319,10 +332,11 @@ ZL_Output* copyStringLogicalClusterToEICtx( template ZL_Report configurableEncode(ZL_Encoder* eictx, const ZL_Input* in) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); unsigned int const formatVersion = ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion); - ZL_RET_R_IF_LT( - formatVersion_unsupported, formatVersion, kMinFormatVersionEncode); + ZL_ERR_IF_LT( + formatVersion, kMinFormatVersionEncode, formatVersion_unsupported); try { ZL_ASSERT(ZL_Input_type(in) == ZL_Type_serial); @@ -331,26 +345,26 @@ ZL_Report configurableEncode(ZL_Encoder* eictx, const ZL_Input* in) // Read config ZL_CopyParam gp = ZL_Encoder_getLocalCopyParam(eictx, 0); - ZL_RET_R_IF_EQ(corruption, gp.paramId, ZL_LP_INVALID_PARAMID); + ZL_ERR_IF_EQ(gp.paramId, ZL_LP_INVALID_PARAMID, corruption); std::string_view const encoderConfigStr( (const char*)gp.paramPtr, gp.paramSize); EncoderConfig config = EncoderConfig(encoderConfigStr); // Fail compression if config uses unsupported features - ZL_RET_R_IF_LT( - formatVersion_unsupported, + ZL_ERR_IF_LT( formatVersion, - config.getMinFormatVersion()); + config.getMinFormatVersion(), + formatVersion_unsupported); // Temporary requirement: ensure contiguous LogicalIds // (starting from 0) for (const auto& streamId : config.getLogicalIds()) { static_assert(std::is_unsigned_v>>); - ZL_RET_R_IF_GE( - temporaryLibraryLimitation, + ZL_ERR_IF_GE( static_cast(streamId), - config.getLogicalIds().size()); + config.getLogicalIds().size(), + temporaryLibraryLimitation); } // Encode the input stream! @@ -359,11 +373,14 @@ ZL_Report configurableEncode(ZL_Encoder* eictx, const ZL_Input* in) Parser parser{ config, srcStream, dstStreamSet, formatVersion }; try { parser.parse(); + } catch (const ThriftParserUserError& ex) { + ZL_ERR(graph_parser_malformedInput, + "Thrift kernel failed inside core parser: %s", + ex.what()); } catch (const std::exception& ex) { - ZL_RET_R_ERR( - GENERIC, - "Thrift kernel failed inside core parser: %s", - ex.what()); + ZL_ERR(GENERIC, + "Thrift kernel failed inside core parser: %s", + ex.what()); } debug("Encoder side:"); debug(srcStream.repr()); @@ -400,6 +417,12 @@ ZL_Report configurableEncode(ZL_Encoder* eictx, const ZL_Input* in) "Failed to set directed selector metadata" }; } + if (ZL_isError(ZL_Output_setIntMetadata( + zs, kClusterIndexMetadataID, static_cast(i)))) { + throw std::runtime_error{ + "Failed to set cluster index metadata" + }; + } } // Create and commit unclustered logical streams @@ -425,25 +448,44 @@ ZL_Report configurableEncode(ZL_Encoder* eictx, const ZL_Input* in) "Failed to set directed selector metadata" }; } + if (ZL_isError(ZL_Output_setIntMetadata( + zs, + kClusterIndexMetadataID, + static_cast(SingletonId::kNumSingletonIds) + + static_cast(id)))) { + throw std::runtime_error{ + "Failed to set cluster index metadata" + }; + } } } // Create and commit clustered streams WriteStream clusterLengths(TType::T_U32); clusterLengths.setWidth(sizeof(uint32_t)); - for (const LogicalCluster& cluster : config.clusters()) { + const int clusterIndexBase = + static_cast(SingletonId::kNumSingletonIds) + + static_cast(config.getLogicalIds().size()); + for (size_t ci = 0; ci < config.clusters().size(); ci++) { + const LogicalCluster& cluster = config.clusters()[ci]; + const int clusterIndex = clusterIndexBase + static_cast(ci); assert(formatVersion >= kMinFormatVersionEncodeClusters); if (getClusterType(cluster, dstStreamSet) == TType::T_STRING && formatVersion >= kMinFormatVersionStringVSF) { copyStringLogicalClusterToEICtx( - eictx, cluster, dstStreamSet, clusterLengths); + eictx, + cluster, + dstStreamSet, + clusterLengths, + clusterIndex); } else { copyFixedWidthLogicalClusterToEICtx( eictx, cluster, dstStreamSet, clusterLengths, - formatVersion); + formatVersion, + clusterIndex); } } clusterLengths.close(); @@ -472,10 +514,9 @@ ZL_Report configurableEncode(ZL_Encoder* eictx, const ZL_Input* in) return ZL_returnSuccess(); } catch (const std::exception& ex) { - ZL_RET_R_ERR( - GENERIC, - "Thrift kernel failed outside of core parsing: %s", - ex.what()); + ZL_ERR(GENERIC, + "Thrift kernel failed outside of core parsing: %s", + ex.what()); } } @@ -487,9 +528,10 @@ ZL_Report configurableDecode( const ZL_Input* variableSrcs[], size_t nbVariableSrcs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); const unsigned int formatVersion = DI_getFrameFormatVersion(dictx); - ZL_RET_R_IF_LT( - formatVersion_unsupported, formatVersion, kMinFormatVersionDecode); + ZL_ERR_IF_LT( + formatVersion, kMinFormatVersionDecode, formatVersion_unsupported); assert(nbCompulsorySrcs == (size_t)SingletonId::kNumSingletonIds); try { @@ -516,23 +558,21 @@ ZL_Report configurableDecode( try { parser.unparse(); } catch (const std::exception& ex) { - ZL_RET_R_ERR( - GENERIC, - "Thrift kernel failed inside core parser: %s", - ex.what()); + ZL_ERR(GENERIC, + "Thrift kernel failed inside core parser: %s", + ex.what()); } debug("Decoder side:"); debug(srcStreams.repr()); debug(dstStream.writeStream().repr()); - ZL_RET_R_IF_ERR(dstStream.commit()); + ZL_ERR_IF_ERR(dstStream.commit()); return ZL_returnValue(1); } catch (const std::exception& ex) { - ZL_RET_R_ERR( - GENERIC, - "Thrift kernel failed outside of core parsing: %s", - ex.what()); + ZL_ERR(GENERIC, + "Thrift kernel failed outside of core parsing: %s", + ex.what()); } } @@ -627,32 +667,33 @@ ZL_VOGraphDesc const thriftBinaryConfigurableGd = { ZL_VOEncoderDesc const thriftCompactConfigurableSplitter = { .gd = thriftCompactConfigurableGd, .transform_f = configurableEncodeCompact, - .name = "Thrift Compact Encode", + .name = "!zl_custom.thrift_compact_encode", }; ZL_VODecoderDesc const thriftCompactConfigurableUnSplitter = { .gd = thriftCompactConfigurableGd, .transform_f = configurableDecodeCompact, - .name = "Thrift Compact Decode", + .name = "zl_custom.thrift_compact_decode", }; ZL_VOEncoderDesc const thriftBinaryConfigurableSplitter = { .gd = thriftBinaryConfigurableGd, .transform_f = configurableEncodeBinary, - .name = "Thrift Binary Encode", + .name = "!zl_custom.thrift_binary_encode", }; ZL_VODecoderDesc const thriftBinaryConfigurableUnSplitter = { .gd = thriftBinaryConfigurableGd, .transform_f = configurableDecodeBinary, - .name = "Thrift Binary Decode", + .name = "zl_custom.thrift_binary_decode", }; ZL_Report registerCustomTransforms(ZL_DCtx* dctx) { - ZL_RET_R_IF_ERR(ZL_DCtx_registerVODecoder( + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + ZL_ERR_IF_ERR(ZL_DCtx_registerVODecoder( dctx, &thriftCompactConfigurableUnSplitter)); - ZL_RET_R_IF_ERR(ZL_DCtx_registerVODecoder( + ZL_ERR_IF_ERR(ZL_DCtx_registerVODecoder( dctx, &thriftBinaryConfigurableUnSplitter)); return ZL_returnSuccess(); } @@ -661,7 +702,12 @@ ZL_NodeID registerCompactTransform(ZL_Compressor* cgraph, ZL_IDType id) { auto desc = thriftCompactConfigurableSplitter; desc.gd.CTid = id; - return ZL_Compressor_registerVOEncoder(cgraph, &desc); + auto compactEncode = + ZL_Compressor_getNode(cgraph, "zl_custom.thrift_compact_encode"); + if (compactEncode.nid == ZL_NODE_ILLEGAL.nid) { + return ZL_Compressor_registerVOEncoder(cgraph, &desc); + } + return compactEncode; } ZL_Report registerCompactTransform(ZL_DCtx* dctx, ZL_IDType id) @@ -675,7 +721,12 @@ ZL_NodeID registerBinaryTransform(ZL_Compressor* cgraph, ZL_IDType id) { auto desc = thriftBinaryConfigurableSplitter; desc.gd.CTid = id; - return ZL_Compressor_registerVOEncoder(cgraph, &desc); + auto binaryEncode = + ZL_Compressor_getNode(cgraph, "zl_custom.thrift_binary_encode"); + if (binaryEncode.nid == ZL_NODE_ILLEGAL.nid) { + return ZL_Compressor_registerVOEncoder(cgraph, &desc); + } + return binaryEncode; } ZL_Report registerBinaryTransform(ZL_DCtx* dctx, ZL_IDType id) @@ -690,12 +741,16 @@ ZL_NodeID cloneThriftNodeWithLocalParams( ZL_NodeID nodeId, std::string_view serializedConfig) { - const ZL_CopyParam gp = { .paramId = 0, - .paramPtr = serializedConfig.data(), - .paramSize = serializedConfig.size() }; - const ZL_LocalParams localParams = { .copyParams = { .copyParams = &gp, - .nbCopyParams = 1 } }; - return ZL_Compressor_cloneNode(cgraph, nodeId, &localParams); + const ZL_CopyParam gp = { .paramId = 0, + .paramPtr = serializedConfig.data(), + .paramSize = serializedConfig.size() }; + const ZL_LocalParams localParams = { .copyParams = { .copyParams = &gp, + .nbCopyParams = 1 } }; + const ZL_ParameterizedNodeDesc desc = { + .node = nodeId, + .localParams = &localParams, + }; + return ZL_Compressor_registerParameterizedNode(cgraph, &desc); } } // namespace zstrong::thrift diff --git a/custom_transforms/tulip_v2/BUCK b/custom_transforms/tulip_v2/BUCK index d61ac3da1..8a702f329 100644 --- a/custom_transforms/tulip_v2/BUCK +++ b/custom_transforms/tulip_v2/BUCK @@ -2,6 +2,7 @@ load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary") load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") +load("../../defs.bzl", "relative_headers") oncall("data_compression") @@ -12,14 +13,15 @@ cpp_library( "decode_tulip_v2.cpp", "encode_tulip_v2.cpp", ], - headers = [ + headers = relative_headers([ "decode_tulip_v2.h", "encode_tulip_v2.h", - ], + ]), + header_namespace = "", exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:decode_thrift_binding", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels:encode_thrift_binding", + "../..:zstronglib", + "../thrift/kernels:decode_thrift_binding", + "../thrift/kernels:encode_thrift_binding", "//folly:range", "//folly:scope_guard", "//folly/io:iobuf", @@ -32,9 +34,9 @@ cpp_binary( name = "main", srcs = ["main.cpp"], deps = [ + "../..:zstronglib", + "../../tools:zstrong_cpp", ":tulip_v2", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", "//folly:file_util", "//folly/init:init", ], diff --git a/custom_transforms/tulip_v2/decode_tulip_v2.cpp b/custom_transforms/tulip_v2/decode_tulip_v2.cpp index 76f4773d4..b14b935fd 100644 --- a/custom_transforms/tulip_v2/decode_tulip_v2.cpp +++ b/custom_transforms/tulip_v2/decode_tulip_v2.cpp @@ -13,22 +13,24 @@ ZL_Report registerCustomTransforms( unsigned idRangeBegin, unsigned idRangeEnd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + if (idRangeEnd - idRangeBegin < kNumCustomTransforms) { throw std::runtime_error("Not enough IDs"); } // NOTE: These IDs must remain stable & in-sync with the compressor! - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32Float( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32Float( dctx, idRangeBegin + static_cast(Tag::FloatFeatures))); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32ArrayFloat( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32ArrayFloat( dctx, idRangeBegin + static_cast(Tag::FloatListFeatures))); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32ArrayI64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32ArrayI64( dctx, idRangeBegin + static_cast(Tag::IdListFeatures))); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32ArrayArrayI64( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32ArrayArrayI64( dctx, idRangeBegin + static_cast(Tag::IdListListFeatures))); - ZL_RET_R_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32MapI64Float( + ZL_ERR_IF_ERR(ZS2_ThriftKernel_registerDTransformMapI32MapI64Float( dctx, idRangeBegin + static_cast(Tag::IdScoreListFeatures))); diff --git a/custom_transforms/tulip_v2/encode_tulip_v2.cpp b/custom_transforms/tulip_v2/encode_tulip_v2.cpp index a5942b8b4..b27a8c196 100644 --- a/custom_transforms/tulip_v2/encode_tulip_v2.cpp +++ b/custom_transforms/tulip_v2/encode_tulip_v2.cpp @@ -61,11 +61,12 @@ class TulipV2Parser { int8_t byte1; reader_.readByte(byte1); if (byte0 != int8_t(0x80) || byte1 != int8_t(0x00)) { - throw std::runtime_error(fmt::format( - "Bad TulipV2 Header {} {}: {}", - byte0, - byte1, - reader_.getCursorPosition())); + throw std::runtime_error( + fmt::format( + "Bad TulipV2 Header {} {}: {}", + byte0, + byte1, + reader_.getCursorPosition())); } return true; } diff --git a/custom_transforms/tulip_v2/tests/BUCK b/custom_transforms/tulip_v2/tests/BUCK index ef3b3ac66..3ca7455ef 100644 --- a/custom_transforms/tulip_v2/tests/BUCK +++ b/custom_transforms/tulip_v2/tests/BUCK @@ -8,7 +8,7 @@ load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") load("@fbcode_macros//build_defs:fbcode_configured_alias.bzl", "fbcode_configured_alias") load("@fbcode_macros//build_defs:thrift_library.bzl", "thrift_library") load("@fbsource//tools/build_defs:default_platform_defs.bzl", "get_host_target_platform") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_fuzzers") +load("../../../defs.bzl", "relative_headers", "zs_fuzzers") oncall("data_compression") @@ -23,18 +23,18 @@ thrift_library( cpp_library( name = "tulip_v2_data_utils", - headers = ["tulip_v2_data_utils.h"], + headers = relative_headers(["tulip_v2_data_utils.h"]), + header_namespace = "", deps = [ "fbsource//xplat/tools/cxx:resources", ], exported_deps = [ - ":tulip_v2_data-cpp2-reflection", + "..:tulip_v2", + "../../../tests/datagen:datagen", + "../../../tools:zstrong_cpp", + "../../thrift/kernels/tests:thrift_kernel_test_utils", ":tulip_v2_data-cpp2-types", ":tulip_v2_data-cpp2-visitation", - "//data_compression/experimental/zstrong/custom_transforms/thrift/kernels/tests:thrift_kernel_test_utils", - "//data_compression/experimental/zstrong/custom_transforms/tulip_v2:tulip_v2", - "//data_compression/experimental/zstrong/tests/datagen:datagen", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", "//folly:range", "//folly:subprocess", "//folly/io:iobuf", @@ -46,9 +46,9 @@ cpp_unittest( name = "test_tulip_v2", srcs = ["test_tulip_v2.cpp"], deps = [ + "..:tulip_v2", + "../../..:zstronglib", ":tulip_v2_data_utils", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/custom_transforms/tulip_v2:tulip_v2", "//folly:conv", ], ) @@ -81,10 +81,10 @@ zs_fuzzers( ], generator = ":fuzz_tulip_v2_generator_host", deps = [ + "..:tulip_v2", + "../../../tests:fuzz_utils", + "../../../tests:test_zstrong_fixtures", "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", ":tulip_v2_data_utils", - "//data_compression/experimental/zstrong/custom_transforms/tulip_v2:tulip_v2", - "//data_compression/experimental/zstrong/tests:fuzz_utils", - "//data_compression/experimental/zstrong/tests:test_zstrong_fixtures", ], ) diff --git a/custom_transforms/tulip_v2/tests/fuzz_tulip_v2.cpp b/custom_transforms/tulip_v2/tests/fuzz_tulip_v2.cpp index e8fd57774..1e6ca86ad 100644 --- a/custom_transforms/tulip_v2/tests/fuzz_tulip_v2.cpp +++ b/custom_transforms/tulip_v2/tests/fuzz_tulip_v2.cpp @@ -11,8 +11,9 @@ using namespace ::testing; -namespace zstrong::tulip_v2::tests { -using namespace zstrong::tests; +namespace openzl::tulip_v2::tests { +using namespace openzl::tests; +using zstrong::tulip_v2::TulipV2Successors; namespace { template @@ -97,4 +98,4 @@ FUZZ(TulipV2Test, FuzzDecompress) } } -} // namespace zstrong::tulip_v2::tests +} // namespace openzl::tulip_v2::tests diff --git a/custom_transforms/tulip_v2/tests/fuzz_tulip_v2_generator.cpp b/custom_transforms/tulip_v2/tests/fuzz_tulip_v2_generator.cpp index 8eff6c123..ff3cc8885 100644 --- a/custom_transforms/tulip_v2/tests/fuzz_tulip_v2_generator.cpp +++ b/custom_transforms/tulip_v2/tests/fuzz_tulip_v2_generator.cpp @@ -14,13 +14,15 @@ #include "custom_transforms/tulip_v2/tests/tulip_v2_data_utils.h" namespace { -using namespace zstrong::tulip_v2::tests; +using namespace openzl::tulip_v2::tests; namespace fs = std::filesystem; std::vector generateFuzzCompressCorpus() { + std::random_device rd; std::vector examples; - std::mt19937 gen(0xdeadbeef); + std::mt19937 gen(rd()); + examples.reserve(100); for (size_t n = 0; n < 100; ++n) { examples.push_back(generateTulipV2(n % 5, gen)); } diff --git a/custom_transforms/tulip_v2/tests/test_tulip_v2.cpp b/custom_transforms/tulip_v2/tests/test_tulip_v2.cpp index 910baf140..b5e083bcc 100644 --- a/custom_transforms/tulip_v2/tests/test_tulip_v2.cpp +++ b/custom_transforms/tulip_v2/tests/test_tulip_v2.cpp @@ -7,7 +7,7 @@ #include "custom_transforms/tulip_v2/encode_tulip_v2.h" #include "custom_transforms/tulip_v2/tests/tulip_v2_data_utils.h" -namespace zstrong::tulip_v2::tests { +namespace openzl::tulip_v2::tests { using namespace ::testing; TEST(TulipV2Test, RoundTripDefaultSuccessors) @@ -20,4 +20,4 @@ TEST(TulipV2Test, RoundTripDefaultSuccessors) ASSERT_TRUE(data == decompressed); } } -} // namespace zstrong::tulip_v2::tests +} // namespace openzl::tulip_v2::tests diff --git a/custom_transforms/tulip_v2/tests/tulip_v2_data.thrift b/custom_transforms/tulip_v2/tests/tulip_v2_data.thrift index 16d433178..7170c1a77 100644 --- a/custom_transforms/tulip_v2/tests/tulip_v2_data.thrift +++ b/custom_transforms/tulip_v2/tests/tulip_v2_data.thrift @@ -1,5 +1,10 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +include "thrift/annotation/thrift.thrift" + +@thrift.AllowLegacyMissingUris +package; + namespace cpp2 zstrong.tulip_v2.tests struct InnerStruct { diff --git a/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.cpp b/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.cpp index aefdb5cef..5d28c6cb7 100644 --- a/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.cpp +++ b/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.cpp @@ -7,8 +7,8 @@ #include "tools/cxx/Resources.h" -namespace zstrong::tulip_v2::tests { +namespace openzl::tulip_v2::tests { namespace { -} // namespace zstrong::tulip_v2::tests +} // namespace openzl::tulip_v2::tests diff --git a/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.h b/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.h index d459f62df..e4141c6af 100644 --- a/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.h +++ b/custom_transforms/tulip_v2/tests/tulip_v2_data_utils.h @@ -22,17 +22,16 @@ // TODO: Not sure if there is a better way to do this #if ZL_FBCODE_IS_RELEASE -# include "openzl/versions/release/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_fatal_types.h" -# include "openzl/versions/release/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_types.h" -# include "openzl/versions/release/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_visitation.h" +# include "openzl/prod/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_types.h" +# include "openzl/prod/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_visitation.h" #else -# include "data_compression/experimental/zstrong/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_fatal_types.h" -# include "data_compression/experimental/zstrong/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_types.h" -# include "data_compression/experimental/zstrong/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_visitation.h" +# include "openzl/dev/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_types.h" +# include "openzl/dev/custom_transforms/tulip_v2/tests/gen-cpp2/tulip_v2_data_visitation.h" #endif -namespace zstrong::tulip_v2::tests { -using zstrong::thrift::tests::generate; +namespace openzl::tulip_v2::tests { +using openzl::thrift::tests::generate; +using zstrong::tulip_v2::tests::TulipV2Data; inline std::string encodeTulipV2(TulipV2Data const& data) { @@ -60,21 +59,21 @@ std::string generateTulipV2(size_t n, RNG&& gen) return out; } -class TulipV2Producer : public zstrong::tests::datagen::FixedWidthDataProducer { +class TulipV2Producer : public openzl::tests::datagen::FixedWidthDataProducer { public: explicit TulipV2Producer( - std::shared_ptr rw, + std::shared_ptr rw, size_t maxSamples = 10) : FixedWidthDataProducer(rw, 1), dist_(rw, 5, maxSamples) { } - ::zstrong::tests::datagen::FixedWidthData operator()( - ::zstrong::tests::datagen::RandWrapper::NameType name) override + ::openzl::tests::datagen::FixedWidthData operator()( + ::openzl::tests::datagen::RandWrapper::NameType name) override { return { generateTulipV2( dist_(name), - zstrong::tests::datagen::RNGEngine( + openzl::tests::datagen::RNGEngine( this->rw_.get(), "TulipV2Producer::RNGEngine::operator()")), 1 }; @@ -86,22 +85,23 @@ class TulipV2Producer : public zstrong::tests::datagen::FixedWidthDataProducer { } private: - ::zstrong::tests::datagen::VecLengthDistribution dist_; + ::openzl::tests::datagen::VecLengthDistribution dist_; }; inline std::string compressTulipV2( std::string_view data, - TulipV2Successors const& successors, + zstrong::tulip_v2::TulipV2Successors const& successors, std::optional minDstCapacity = std::nullopt) { - CGraph cgraph; - auto graph = createTulipV2Graph(cgraph.get(), successors, 0, 100); + zstrong::CGraph cgraph; + auto graph = zstrong::tulip_v2::createTulipV2Graph( + cgraph.get(), successors, 0, 100); cgraph.unwrap(ZL_Compressor_selectStartingGraphID(cgraph.get(), graph)); size_t const compressBound = ZL_compressBound(data.size()); std::string compressed; compressed.resize( std::max(compressBound, minDstCapacity.value_or(compressBound))); - CCtx cctx; + zstrong::CCtx cctx; cctx.unwrap(ZL_CCtx_refCompressor(cctx.get(), cgraph.get())); cctx.unwrap(ZL_CCtx_setParameter( cctx.get(), ZL_CParam_formatVersion, ZL_MAX_FORMAT_VERSION)); @@ -119,9 +119,10 @@ inline std::string decompressTulipV2( std::string_view data, std::optional maxDstSize = std::nullopt) { - DCtx dctx; - dctx.unwrap(registerCustomTransforms(dctx.get(), 0, 100)); - return decompress(dctx, data, maxDstSize); + zstrong::DCtx dctx; + dctx.unwrap( + zstrong::tulip_v2::registerCustomTransforms(dctx.get(), 0, 100)); + return zstrong::decompress(dctx, data, maxDstSize); } -} // namespace zstrong::tulip_v2::tests +} // namespace openzl::tulip_v2::tests diff --git a/defs.bzl b/defs.bzl index 2d80970d4..169d8387f 100644 --- a/defs.bzl +++ b/defs.bzl @@ -4,12 +4,44 @@ load("@fbcode//fbpkg:fbpkg.bzl", "fbpkg") load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary") load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library") load("@fbcode_macros//build_defs:cpp_unittest.bzl", "cpp_unittest") +load("@fbsource//tools/build_defs:selects.bzl", "selects") load("@fbsource//tools/build_defs:type_defs.bzl", "is_string") +load("@fbsource//tools/build_defs/windows:windows_flag_map.bzl", "windows_convert_gcc_clang_flags") +load("@fbsource//tools/target_determinator/macros:ci.bzl", "ci") load("@fbsource//xplat/security/lionhead:defs.bzl", "ALL_EMPLOYEES", "Interaction", "Metadata", "Priv", "Reachability", "Severity") load("@fbsource//xplat/security/lionhead/build_defs:generic_harness.bzl", "generic_lionhead_harness") load("//security/lionhead/harnesses:defs.bzl", "cpp_lionhead_harness") -ZS_HEADER_INCLUDE_PATH = "-Idata_compression/experimental/zstrong" +# Labels that should be added to tests that pass cross-platform +def cross_platform_labels(): + return ci.labels( + ci.mac(ci.mode("fbsource//arvr/mode/mac-arm/opt")), + ci.mac(ci.mode("fbsource//arvr/mode/mac-arm/dev")), + ci.linux(ci.mode("fbsource//arvr/mode/fb-linux-nh/opt")), + ci.linux(ci.mode("fbsource//arvr/mode/fb-linux-nh/dev-asan")), + ) + +_ZL_PROD_PREFIXES = [ + "openzl/prod", +] + +_ZL_DEV_PREFIXES = [ + "openzl/dev", +] + +_ZL_PREFIXES = _ZL_PROD_PREFIXES + _ZL_DEV_PREFIXES + +def _is_release(): + for prefix in _ZL_PROD_PREFIXES: + if native.package_name().startswith(prefix): + return True + return False + +def zl_fbcode_is_release_pp_flag(): + if _is_release(): + return "-DZL_FBCODE_IS_RELEASE=1" + else: + return "-DZL_FBCODE_IS_RELEASE=0" def _strip_prefix(headers, prefix): header_map = {} @@ -26,11 +58,36 @@ def public_headers(headers): def private_headers(headers): return _strip_prefix(headers, "src/") -_ZS_COMPILER_FLAGS = [ +def _zl_repo_prefix(): + for prefix in _ZL_PREFIXES: + if native.package_name().startswith(prefix): + return prefix + fail("Unknown package name: " + native.package_name()) + +def relative_headers(headers): + """ + Returns a map of headers relative to the OpenZL repo root. + This must not be used in OpenZL core, and is meant only for targets that + don't escape the repo. + """ + root = _zl_repo_prefix() + package = native.package_name() + prefix = package[len(root) + 1:] + + header_map = {} + for header in headers: + name = prefix + "/" + header + header_map[name] = header + + return header_map + +# Base compiler flags for all builds (GCC/Clang syntax) +_ZS_COMPILER_FLAGS_CLANG = [ "-fno-sanitize=pointer-overflow", ] -_ZS_DEV_COMPILER_FLAGS = [ +# Dev compiler flags (GCC/Clang syntax) +_ZS_DEV_COMPILER_FLAGS_CLANG = [ "-Wall", "-Wcast-qual", "-Wcast-align", @@ -52,13 +109,15 @@ _ZS_DEV_COMPILER_FLAGS = [ # "-DZS_ERROR_ENABLE_LEAKY_ALLOCATIONS=1", # set this to always create verbose errors ] -_ZS_DEV_C_COMPILER_FLAGS = [ +# Dev C-specific compiler flags (GCC/Clang syntax) +_ZS_DEV_C_COMPILER_FLAGS_CLANG = [ "-Wextra", "-Wconversion", "-Wno-missing-field-initializers", # Allow missing fields in designated initializers ] -_ZS_SRC_FILE_COMPILER_FLAGS = { +# File-specific compiler flags (GCC/Clang syntax) +_ZS_SRC_FILE_COMPILER_FLAGS_CLANG = { "src/openzl/common/errors.c": [ "-Wno-format-nonliteral", ], @@ -73,19 +132,49 @@ _ZS_SRC_FILE_COMPILER_FLAGS = { ], } -_ZS_PROPAGATED_PP_FLAGS = [ - ZS_HEADER_INCLUDE_PATH, -] +# Convert flags for MSVC when needed +_ZS_COMPILER_FLAGS = select({ + "DEFAULT": _ZS_COMPILER_FLAGS_CLANG, + "ovr_config//compiler:msvc": windows_convert_gcc_clang_flags(_ZS_COMPILER_FLAGS_CLANG), +}) + +_ZS_DEV_COMPILER_FLAGS = select({ + "DEFAULT": _ZS_DEV_COMPILER_FLAGS_CLANG, + "ovr_config//compiler:msvc": windows_convert_gcc_clang_flags(_ZS_DEV_COMPILER_FLAGS_CLANG), +}) -_ZS_C_COMPILER_FLAGS = [ +_ZS_DEV_C_COMPILER_FLAGS = select({ + "DEFAULT": _ZS_DEV_C_COMPILER_FLAGS_CLANG, + "ovr_config//compiler:msvc": windows_convert_gcc_clang_flags(_ZS_DEV_C_COMPILER_FLAGS_CLANG), +}) + +_ZS_SRC_FILE_COMPILER_FLAGS = { + src: select({ + "DEFAULT": flags, + "ovr_config//compiler:msvc": windows_convert_gcc_clang_flags(flags), + }) + for src, flags in _ZS_SRC_FILE_COMPILER_FLAGS_CLANG.items() +} + +_ZS_C_COMPILER_FLAGS_CLANG = [ "-std=c11", ] -_ZS_CXX_COMPILER_FLAGS = [ +_ZS_C_COMPILER_FLAGS = select({ + "DEFAULT": _ZS_C_COMPILER_FLAGS_CLANG, + "ovr_config//compiler:msvc": windows_convert_gcc_clang_flags(_ZS_C_COMPILER_FLAGS_CLANG), +}) + +_ZS_CXX_COMPILER_FLAGS_CLANG = [ "-Wno-c99-extensions", # permit use of C99 features from C++ (i.e., tests) "-Wno-language-extension-token", ] +_ZS_CXX_COMPILER_FLAGS = select({ + "DEFAULT": _ZS_CXX_COMPILER_FLAGS_CLANG, + "ovr_config//compiler:msvc": windows_convert_gcc_clang_flags(_ZS_CXX_COMPILER_FLAGS_CLANG), +}) + ZS_HARNESS_MODES = [ "fbcode//security/lionhead/mode/dbgo-asan-libfuzzer", "fbcode//security/lionhead/mode/opt-asan-afl", @@ -106,12 +195,19 @@ ZS_FUZZ_METADATA = Metadata( privilege_required = Priv.PRE_AUTH, # Not reachable through network reachability = Reachability.LOCAL, - # no clicks neede by user + # no clicks needed by user user_interaction_required = Interaction.ZERO_CLICK, ) -def _is_release(): - return native.package_name().startswith("openzl/versions/release") +_DEFAULT_HARNESS_CONFIG = { + # Set 10 minute initialization timeout to avoid AFL initialization + # timeouts. + "environment": { + "AFL_FORKSRV_INIT_TMOUT": "600000", + }, + # Set 1 minute timeout on inputs, rather than the 10 second default + "perInputTimeout": 60, +} def _zs_src_file_compiler_flags(src): flags = [] @@ -131,31 +227,50 @@ def _zs_src_file_compiler_flags(src): return (src, flags) def _add_zs_compiler_flags(kwargs, strict_conversions = True, float_equal = True): - # Add common compiler flags - compiler_flags = list(_ZS_COMPILER_FLAGS) + # Start with base compiler flags (already converted for MSVC via select) + compiler_flags = _ZS_COMPILER_FLAGS - # Add dev or release compiler flags + # Add dev or release compiler flags (already converted for MSVC via select) if not _is_release(): compiler_flags += _ZS_DEV_COMPILER_FLAGS - # Add the original compiler flags + # Add the original compiler flags from kwargs compiler_flags += kwargs.get("compiler_flags", []) - # Remove strict conversions + # Handle strict_conversions and float_equal filtering + # Note: These filters work on GCC/Clang flags. For MSVC, the flags are already + # converted and these specific flags won't be present, so filtering is safe. if not strict_conversions: - compiler_flags = [x for x in compiler_flags if x != "-Wconversion"] + compiler_flags = selects.apply(compiler_flags, lambda flags: [x for x in flags if x != "-Wconversion"]) - # Remove float equal if not float_equal: - compiler_flags = [x for x in compiler_flags if x != "-Wfloat-equal"] + compiler_flags = selects.apply(compiler_flags, lambda flags: [x for x in flags if x != "-Wfloat-equal"]) kwargs["compiler_flags"] = compiler_flags # add file-specific compiler flags - kwargs["srcs"] = [ - _zs_src_file_compiler_flags(src) - for src in kwargs.get("srcs", []) - ] + # Use selects.apply to handle cases where srcs might contain select() expressions + srcs = kwargs.get("srcs", []) + if srcs: + kwargs["srcs"] = selects.apply( + srcs, + lambda src_list: [_zs_src_file_compiler_flags(src) for src in src_list], + ) + + # Set empty header namespace + kwargs["header_namespace"] = "" + headers = kwargs.get("headers", None) + + if isinstance(headers, list): + # Unless we already have a header map, default to headers + # being relative to the OpenZL repo root. + kwargs["headers"] = relative_headers(headers) + + private_headers = kwargs.get("private_headers", None) + if isinstance(private_headers, list): + # Unless we already have a header map, default to headers + # being relative to the OpenZL repo root. + kwargs["private_headers"] = relative_headers(private_headers) def zs_library(**kwargs): _add_zs_compiler_flags(kwargs) @@ -166,9 +281,6 @@ def zs_cxxlibrary(strict_conversions = True, float_equal = True, **kwargs): _zs_library(**kwargs) def _zs_library(**kwargs): - propagated_pp_flags = kwargs.get("propagated_pp_flags", []) - kwargs["propagated_pp_flags"] = _ZS_PROPAGATED_PP_FLAGS + propagated_pp_flags - cpp_library( **kwargs ) @@ -212,7 +324,7 @@ def zs_fuzzers(ftest_names, generator = None, **kwargs): Each should have a matching FUZZ(test_suite, test_case) in the source file. generator: Optionally a binary target that accepts three parameters: - test_suite, test_case, and output_directory. It should generate an appropiate + test_suite, test_case, and output_directory. It should generate an appropriate seed corpus for the given ftest in the output_directory. This is used to seed the fuzzer during corpus expansion. This allows us to e.g. dynamically generate relevant Zstrong compressed frame with interesting transforms for decompression @@ -228,16 +340,7 @@ def zs_fuzzers(ftest_names, generator = None, **kwargs): for ftest_name in ftest_names: name = prefix + "_".join(ftest_name) - cpp_lionhead_harness( - name = name, - metadata = ZS_FUZZ_METADATA, - ftest_name = ftest_name, - harness_configs = {mode: {} for mode in ZS_HARNESS_MODES}, - **kwargs - ) - if generator: - generator_name = name + "_Generator" generator_config = { "seed_generator_command": [ "./generator", @@ -246,13 +349,28 @@ def zs_fuzzers(ftest_names, generator = None, **kwargs): "@out_seed_folder@", ], } + + # Determine the binary target suffix based on fuzzer mode. + # cpp_lionhead_harness delegates to cpp_generic_lionhead_harness, + # which calls get_bundle_build_rule() (configs.bzl). That function + # defaults to AFL when afl is not disabled and lionhead.fuzzer is + # unset — so we must mirror its logic here. + # See also: D57974923 (original _bin), D95816404 (AFL fix), + # configs.bzl:get_bundle_build_rule(). + fuzzer = native.read_config("lionhead", "fuzzer") + if fuzzer == "libfuzzer": + fuzzer_binary_suffix = "_bin" + else: + fuzzer_binary_suffix = "_afl" + generic_lionhead_harness( - name = generator_name, + name = name, bundle_spec_version = 1, environment_constraints = { "remote_execution.linux": {}, "tw.lionhead": {}, }, + default_harness_config = _DEFAULT_HARNESS_CONFIG, harness_configs = {mode: generator_config for mode in ZS_HARNESS_MODES}, harness_default_modes = { "coverage": "fbcode//security/lionhead/mode/opt-cov.v2", @@ -263,11 +381,20 @@ def zs_fuzzers(ftest_names, generator = None, **kwargs): "fuzz": "fbsource//xplat/security/lionhead/utils/runners/libfuzzer:fuzz", "fuzz_utils.py": "fbsource//xplat/security/lionhead/utils/runners:fuzz_utils", "generator": generator, - generator_name: ":" + name + "_bin", + name: ":" + name + "_NoGenerator" + fuzzer_binary_suffix, }, metadata = ZS_FUZZ_METADATA, ) + cpp_lionhead_harness( + name = name if not generator else name + "_NoGenerator", + metadata = ZS_FUZZ_METADATA, + ftest_name = ftest_name, + default_harness_config = _DEFAULT_HARNESS_CONFIG, + harness_configs = {mode: {} for mode in ZS_HARNESS_MODES}, + **kwargs + ) + def zs_raw_fuzzer(name, **kwargs): if _is_release(): # Give release fuzzers a different name diff --git a/deps/googletest b/deps/googletest new file mode 160000 index 000000000..56efe3983 --- /dev/null +++ b/deps/googletest @@ -0,0 +1 @@ +Subproject commit 56efe3983185e3f37e43415d1afa97e3860f187f diff --git a/deps/json_examples.json b/deps/json_examples.json deleted file mode 100644 index 96bc7d611..000000000 --- a/deps/json_examples.json +++ /dev/null @@ -1,32 +0,0 @@ - -0 -1.0 --0.123 -true -false -null -"" -"string" -"escaped quote \" string" -"multi-escaping \" some \\\" strings\\" - -{} -{ } -{ "single key" : "with val" } -{ "first key" : "with val" , "second key" : "with another val" } -{ "first key" : "with val" , "second key" : "with another val" , "third key" : 1234 } - -[] -[ ] -[ "single str val" ] -[ "first val" , -9.99 , true ] - -[ { } ] -[ { } , { } , { } ] -[ [ ] ] -[ [ ] , [ ] , [ ] ] -[ [ ] , [ null ] , [ null, null ] ] - -{ "" : [ ] , "foo" : { } , "bar" : { "again" : "recursion" } } - -[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] diff --git a/deps/lz4 b/deps/lz4 new file mode 160000 index 000000000..ebb370ca8 --- /dev/null +++ b/deps/lz4 @@ -0,0 +1 @@ +Subproject commit ebb370ca83af193212df4dcbadcc5d87bc0de2f0 diff --git a/deps/nci-short b/deps/nci-short deleted file mode 100644 index 373915e28..000000000 --- a/deps/nci-short +++ /dev/null @@ -1,782 +0,0 @@ -155542 -ROtclserve11150011212D 0 0.00000 0.000001049521 - - 31 32 0 0 0 0 0 0 0 0 1 V2000 - 2.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.0000 0.0000 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 - 3.0000 1.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 3.8660 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.7321 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.5981 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.5981 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.7321 3.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.8660 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.0000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 3.0000 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.1340 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.1340 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.0000 -3.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.8660 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.8660 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 0.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.3800 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -0.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.4631 1.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.7321 0.3800 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.1350 1.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.1350 2.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.7321 3.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.3291 2.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.5970 -1.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.5970 -2.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.0000 -3.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.4030 -2.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.4030 -1.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 1 0 0 0 0 - 2 3 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 2 0 0 0 0 - 5 6 1 0 0 0 0 - 6 7 2 0 0 0 0 - 7 8 1 0 0 0 0 - 8 9 2 0 0 0 0 - 4 9 1 0 0 0 0 - 2 10 1 0 0 0 0 - 10 11 3 0 0 0 0 - 2 12 1 0 0 0 0 - 12 13 2 0 0 0 0 - 13 14 1 0 0 0 0 - 14 15 2 0 0 0 0 - 15 16 1 0 0 0 0 - 16 17 2 0 0 0 0 - 12 17 1 0 0 0 0 - 1 18 1 0 0 0 0 - 1 19 1 0 0 0 0 - 1 20 1 0 0 0 0 - 3 21 1 0 0 0 0 - 5 22 1 0 0 0 0 - 6 23 1 0 0 0 0 - 7 24 1 0 0 0 0 - 8 25 1 0 0 0 0 - 9 26 1 0 0 0 0 - 13 27 1 0 0 0 0 - 14 28 1 0 0 0 0 - 15 29 1 0 0 0 0 - 16 30 1 0 0 0 0 - 17 31 1 0 0 0 0 -M END -> -155542 - -> -17424-68-9 - -> -C[C](NC1=CC=CC=C1)(C#N)C2=CC=CC=C2 - -> -4d5775e8d9fc4fd3 - -$$$$ -155543 -ROtclserve11150011212D 0 0.00000 0.000001049533 - - 31 32 0 0 0 0 0 0 0 0 1 V2000 - 2.0000 1.8660 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 2.5000 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.0000 0.1340 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.1340 -0.3660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.1340 -1.3660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.0000 -1.8660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.8660 -1.3660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.8660 -0.3660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.5000 1.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5000 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.0000 0.1340 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0000 0.1340 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 6.5000 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0000 1.8660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.0000 1.8660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 1.9219 0.2166 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.5234 -0.4737 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.5234 -1.2584 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.9219 -1.9486 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.6015 -2.3410 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.3985 -2.3410 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.0781 -1.9486 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.4766 -1.2584 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.4766 -0.4737 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.0781 0.2166 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1900 1.5369 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.6900 -0.4030 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.3100 -0.4030 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 7.1200 1.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.3100 2.4030 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.6900 2.4030 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 3 0 0 0 0 - 2 3 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 1 0 0 0 0 - 5 6 1 0 0 0 0 - 6 7 1 0 0 0 0 - 7 8 1 0 0 0 0 - 3 8 1 0 0 0 0 - 3 9 1 0 0 0 0 - 9 10 1 0 0 0 0 - 10 11 2 0 0 0 0 - 11 12 1 0 0 0 0 - 12 13 2 0 0 0 0 - 13 14 1 0 0 0 0 - 14 15 2 0 0 0 0 - 10 15 1 0 0 0 0 - 4 16 1 0 0 0 0 - 4 17 1 0 0 0 0 - 5 18 1 0 0 0 0 - 5 19 1 0 0 0 0 - 6 20 1 0 0 0 0 - 6 21 1 0 0 0 0 - 7 22 1 0 0 0 0 - 7 23 1 0 0 0 0 - 8 24 1 0 0 0 0 - 8 25 1 0 0 0 0 - 9 26 1 0 0 0 0 - 11 27 1 0 0 0 0 - 12 28 1 0 0 0 0 - 13 29 1 0 0 0 0 - 14 30 1 0 0 0 0 - 15 31 1 0 0 0 0 -M END -> -155543 - -> -64269-06-3 - -> -N#CC1(CCCCC1)NC2=CC=CC=C2 - -> -c781ab9a08893ae9 - -$$$$ -155544 -ROtclserve11150011212D 0 0.00000 0.000001049546 - - 31 32 0 0 0 0 0 0 0 0 1 V2000 - 4.5981 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 0.2500 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 - 2.8660 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 1.2500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 3.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -3.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 -2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 -1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 0.4400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 0.8700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 1.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 3.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 3.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 1.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -0.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -2.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1121 -3.7500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -4.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.3521 -3.7500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 -2.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 -0.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 1 0 0 0 0 - 3 2 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 3 0 0 0 0 - 1 6 2 0 0 0 0 - 6 7 1 0 0 0 0 - 7 8 2 0 0 0 0 - 8 9 1 0 0 0 0 - 9 10 2 0 0 0 0 - 1 10 1 0 0 0 0 - 3 11 1 0 0 0 0 - 11 12 2 0 0 0 0 - 12 13 1 0 0 0 0 - 13 14 2 0 0 0 0 - 14 15 1 0 0 0 0 - 14 16 1 0 0 0 0 - 16 17 2 0 0 0 0 - 11 17 1 0 0 0 0 - 2 18 1 0 0 0 0 - 3 19 1 0 0 0 0 - 6 20 1 0 0 0 0 - 7 21 1 0 0 0 0 - 8 22 1 0 0 0 0 - 9 23 1 0 0 0 0 - 10 24 1 0 0 0 0 - 12 25 1 0 0 0 0 - 13 26 1 0 0 0 0 - 15 27 1 0 0 0 0 - 15 28 1 0 0 0 0 - 15 29 1 0 0 0 0 - 16 30 1 0 0 0 0 - 17 31 1 0 0 0 0 -M END -> -155544 - -> -32323-81-2 - -> -CC1=CC=C(C=C1)[CH](NC2=CC=CC=C2)C#N - -> -fa09a31ed697b183 - -$$$$ -155545 -ROtclserve11150011212D 0 0.00000 0.000001049554 - - 32 33 0 0 0 0 0 0 0 0 1 V2000 - 4.5981 2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 1.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 0.5000 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 - 2.8660 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 1.5000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -4.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -3.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 1.1200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 2.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 3.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 3.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 2.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.5560 -3.4631 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -4.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1760 -4.5369 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 -2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 -0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 1 0 0 0 0 - 3 2 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 3 0 0 0 0 - 1 6 2 0 0 0 0 - 6 7 1 0 0 0 0 - 7 8 2 0 0 0 0 - 8 9 1 0 0 0 0 - 9 10 2 0 0 0 0 - 1 10 1 0 0 0 0 - 11 12 1 0 0 0 0 - 12 13 1 0 0 0 0 - 13 14 2 0 0 0 0 - 14 15 1 0 0 0 0 - 15 16 2 0 0 0 0 - 3 16 1 0 0 0 0 - 13 17 1 0 0 0 0 - 17 18 2 0 0 0 0 - 16 18 1 0 0 0 0 - 2 19 1 0 0 0 0 - 3 20 1 0 0 0 0 - 6 21 1 0 0 0 0 - 7 22 1 0 0 0 0 - 8 23 1 0 0 0 0 - 9 24 1 0 0 0 0 - 10 25 1 0 0 0 0 - 11 26 1 0 0 0 0 - 11 27 1 0 0 0 0 - 11 28 1 0 0 0 0 - 14 29 1 0 0 0 0 - 15 30 1 0 0 0 0 - 17 31 1 0 0 0 0 - 18 32 1 0 0 0 0 -M END -> -155545 - -> -15190-69-9 - -> -COC1=CC=C(C=C1)[CH](NC2=CC=CC=C2)C#N - -> -8b36d3f0cb404f9c - -$$$$ -155546 -ROtclserve11150011212D 0 0.00000 0.000001049566 - - 35 37 0 0 0 0 0 0 0 0 1 V2000 - 4.5981 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 4.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 4.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -1.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -4.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -4.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -4.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 -0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 1.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 2.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 4.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 5.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -1.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -2.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -4.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -5.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -4.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -2.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 1.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 2.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 4.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 2 0 0 0 0 - 2 3 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 2 0 0 0 0 - 5 6 1 0 0 0 0 - 6 7 2 0 0 0 0 - 8 9 2 0 0 0 0 - 9 10 1 0 0 0 0 - 1 10 1 0 0 0 0 - 8 11 1 0 0 0 0 - 11 12 2 0 0 0 0 - 12 13 1 0 0 0 0 - 13 14 2 0 0 0 0 - 14 15 1 0 0 0 0 - 15 16 2 0 0 0 0 - 11 16 1 0 0 0 0 - 10 17 2 0 0 0 0 - 17 18 1 0 0 0 0 - 3 18 2 0 0 0 0 - 4 19 1 0 0 0 0 - 19 20 2 0 0 0 0 - 7 20 1 0 0 0 0 - 1 21 1 0 0 0 0 - 2 22 1 0 0 0 0 - 5 23 1 0 0 0 0 - 6 24 1 0 0 0 0 - 7 25 1 0 0 0 0 - 9 26 1 0 0 0 0 - 12 27 1 0 0 0 0 - 13 28 1 0 0 0 0 - 14 29 1 0 0 0 0 - 15 30 1 0 0 0 0 - 16 31 1 0 0 0 0 - 17 32 1 0 0 0 0 - 18 33 1 0 0 0 0 - 19 34 1 0 0 0 0 - 20 35 1 0 0 0 0 -M END -> -155546 - -> -51357-73-4 - -> -C1=CC=C(C=C1)N=CC2=CC=C(C=C2)C3=CC=CC=C3 - -> -c53a3f5414351147 - -$$$$ -155547 -ROtclserve11150011212D 0 0.00000 0.000001049567 - - 29 30 0 0 0 0 0 0 0 0 1 V2000 - 2.8660 -1.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -4.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -2.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -3.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -4.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.1350 0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 0.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -0.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 2.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 3.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 3.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 2.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -2.1900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -3.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 1 0 0 0 0 - 2 3 2 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 2 0 0 0 0 - 6 7 2 0 0 0 0 - 7 8 1 0 0 0 0 - 1 8 2 0 0 0 0 - 6 9 1 0 0 0 0 - 9 10 2 0 0 0 0 - 10 11 1 0 0 0 0 - 11 12 2 0 0 0 0 - 12 13 1 0 0 0 0 - 13 14 2 0 0 0 0 - 9 14 1 0 0 0 0 - 2 15 1 0 0 0 0 - 15 16 2 0 0 0 0 - 5 16 1 0 0 0 0 - 3 17 1 0 0 0 0 - 4 18 1 0 0 0 0 - 5 19 1 0 0 0 0 - 6 20 1 0 0 0 0 - 7 21 1 0 0 0 0 - 8 22 1 0 0 0 0 - 10 23 1 0 0 0 0 - 11 24 1 0 0 0 0 - 12 25 1 0 0 0 0 - 13 26 1 0 0 0 0 - 14 27 1 0 0 0 0 - 15 28 1 0 0 0 0 - 16 29 1 0 0 0 0 -M END -> -155547 - -> -953-21-9 - -> -C1=CC=C(C=C1)C=CC=NC2=CC=CC=C2 - -> -8f35a448dfcd7356 - -$$$$ -155548 -ROtclserve11150011212D 0 0.00000 0.000001049569 - - 28 29 0 0 0 0 0 0 0 0 1 V2000 - 4.2321 0.0179 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 0.8840 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 - 2.8660 0.3840 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -0.6160 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -1.1160 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -2.1160 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.6160 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -2.1160 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -1.1160 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.2321 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.7321 2.6160 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 1.3840 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.5116 0.9772 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 6.1808 1.7204 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.6808 2.5864 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.7026 2.3785 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 3.6951 -0.2921 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5421 -0.5190 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.7690 0.3279 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 0.6940 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -0.8060 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -2.4260 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -3.2360 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -2.4260 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -0.8060 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.6405 0.3708 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.7974 1.6556 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.9329 3.1528 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 1 0 0 0 0 - 2 3 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 2 0 0 0 0 - 5 6 1 0 0 0 0 - 6 7 2 0 0 0 0 - 7 8 1 0 0 0 0 - 8 9 2 0 0 0 0 - 4 9 1 0 0 0 0 - 2 10 1 0 0 0 0 - 10 11 3 0 0 0 0 - 2 12 1 0 0 0 0 - 12 13 2 0 0 0 0 - 13 14 1 0 0 0 0 - 14 15 2 0 0 0 0 - 15 16 1 0 0 0 0 - 12 16 1 0 0 0 0 - 1 17 1 0 0 0 0 - 1 18 1 0 0 0 0 - 1 19 1 0 0 0 0 - 3 20 1 0 0 0 0 - 5 21 1 0 0 0 0 - 6 22 1 0 0 0 0 - 7 23 1 0 0 0 0 - 8 24 1 0 0 0 0 - 9 25 1 0 0 0 0 - 13 26 1 0 0 0 0 - 14 27 1 0 0 0 0 - 15 28 1 0 0 0 0 -M END -> -155548 - -> -17424-72-5 - -> -C[C](NC1=CC=CC=C1)(C#N)C2=CC=CO2 - -> -f0f47e0230d0400d - -$$$$ -155549 -ROtclserve11150011212D 0 0.00000 0.000001049587 - - 31 32 0 0 0 0 0 0 0 0 2 V2000 - 4.5981 3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.2500 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 - 5.4641 4.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 0.2500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -4.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -4.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -4.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -3.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 4.7500 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 - 3.1951 0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 1.4400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.1951 3.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -1.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.3291 -1.4400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -2.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -4.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -5.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -4.5600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -2.9400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 1.4400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 6.0010 3.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1 2 1 0 0 0 0 - 2 3 2 0 0 0 0 - 4 5 2 0 0 0 0 - 5 6 1 0 0 0 0 - 6 7 2 0 0 0 0 - 7 8 1 0 0 0 0 - 1 8 2 0 0 0 0 - 4 9 1 0 0 0 0 - 9 10 2 0 0 0 0 - 10 11 1 0 0 0 0 - 11 12 2 0 0 0 0 - 12 13 1 0 0 0 0 - 13 14 2 0 0 0 0 - 14 15 1 0 0 0 0 - 15 16 2 0 0 0 0 - 11 16 1 0 0 0 0 - 6 17 1 0 0 0 0 - 17 18 2 0 0 0 0 - 1 18 1 0 0 0 0 - 2 19 1 0 0 0 0 - 4 20 1 0 0 0 0 - 7 21 1 0 0 0 0 - 8 22 1 0 0 0 0 - 9 23 1 0 0 0 0 - 10 24 1 0 0 0 0 - 12 25 1 0 0 0 0 - 13 26 1 0 0 0 0 - 14 27 1 0 0 0 0 - 15 28 1 0 0 0 0 - 16 29 1 0 0 0 0 - 17 30 1 0 0 0 0 - 18 31 1 0 0 0 0 -M CHG 2 2 1 19 -1 -M END -> -155549 - -> -15286-45-0 - -> -[O-][N+](=O)C1=CC=C(C=C1)N=CC=CC2=CC=CC=C2 - -> -fb53f717cee0c82e - -$$$$ -155550 -ROtclserve11150011212D 0 0.00000 0.000001049589 - - 20 20 0 0 0 0 0 0 0 0 1 V2000 - 3.7321 2.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 1.0000 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 - 2.8660 0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 5.4641 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 1.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.6540 1.0826 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.2554 0.3923 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -3.1200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2 1 1 0 0 0 0 - 2 3 1 0 0 0 0 - 3 4 1 0 0 0 0 - 4 5 2 0 0 0 0 - 5 6 1 0 0 0 0 - 6 7 2 0 0 0 0 - 7 8 1 0 0 0 0 - 8 9 2 0 0 0 0 - 4 9 1 0 0 0 0 - 2 10 1 0 0 0 0 - 10 11 3 0 0 0 0 - 1 12 1 0 0 0 0 - 2 13 1 0 0 0 0 - 3 14 1 0 0 0 0 - 3 15 1 0 0 0 0 - 5 16 1 0 0 0 0 - 6 17 1 0 0 0 0 - 7 18 1 0 0 0 0 - 8 19 1 0 0 0 0 - 9 20 1 0 0 0 0 -M END -> -155550 - -> -50353-47-4 - -> -O[CH](CC1=CC=CC=C1)C#N - -> -25e6bbcf33df5eff - -$$$$ -155551 -ROtclserve11150011212D 0 0.00000 0.000001049599 - - 28 28 0 0 0 0 0 0 0 0 1 V2000 - 4.5981 0.5000 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 1.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 0.5000 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 - 3.7321 1.0000 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 - 2.8660 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 -3.5000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 2.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 2.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 - 2.6200 2.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.0000 2.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.3800 2.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2.8660 1.1200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.7321 0.3800 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 1.4631 -2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -2.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.2690 -0.6900 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 5.2181 3.5000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 4.5981 4.1200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 3.9781 3.5000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 - 2 3 1 0 0 0 0 - 4 3 1 0 0 0 0 - 4 5 1 0 0 0 0 - 4 6 1 0 0 0 0 - 6 7 2 0 0 0 0 - 7 8 1 0 0 0 0 - 8 9 2 0 0 0 0 - 9 10 1 0 0 0 0 - 9 11 1 0 0 0 0 - 11 12 2 0 0 0 0 - 6 12 1 0 0 0 0 - 5 13 1 0 0 0 0 - 13 14 1 0 0 0 0 - 14 15 1 0 0 0 0 - 13 16 2 0 0 0 0 - 5 1 1 0 0 0 0 - 2 17 1 0 0 0 0 - 2 18 1 0 0 0 0 - 2 19 1 0 0 0 0 - 4 20 1 0 0 0 0 - 5 21 1 0 0 0 0 - 7 22 1 0 0 0 0 - 8 23 1 0 0 0 0 - 11 24 1 0 0 0 0 - 12 25 1 0 0 0 0 - 15 26 1 0 0 0 0 - 15 27 1 0 0 0 0 - 15 28 1 0 0 0 0 -M END -> -155551 - -> -60456-16-8 - -> -CO[CH]([CH](Br)C(=O)OC)C1=CC=C(Cl)C=C1 - -> -3c1841c968fc6e68 - -$$$$ diff --git a/deps/sao-short b/deps/sao-short deleted file mode 100644 index 57c6f5dce..000000000 Binary files a/deps/sao-short and /dev/null differ diff --git a/deps/xgboost b/deps/xgboost new file mode 160000 index 000000000..ccb511768 --- /dev/null +++ b/deps/xgboost @@ -0,0 +1 @@ +Subproject commit ccb511768e13d1670c10be07dea89d0edca138f3 diff --git a/doc/mkdocs/BUCK b/doc/mkdocs/BUCK index 610a59ac5..33e635303 100644 --- a/doc/mkdocs/BUCK +++ b/doc/mkdocs/BUCK @@ -6,10 +6,13 @@ load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary") oncall("data_compression") +BRANCH_NAME = read_package_value("directory_branching.branch_name") # Gets "dev" or "prod" from the path + python_binary( name = "static_docs_build_script", srcs = ["static_docs_build_script.py"], - main_module = "data_compression.experimental.zstrong.doc.mkdocs.static_docs_build_script", + base_module = "openzl.doc.mkdocs", + main_module = "openzl.doc.mkdocs.static_docs_build_script", par_style = "xar", resources = { ":mkdocs": "mkdocs", @@ -31,7 +34,7 @@ buck_genrule( "SCRIPT=\\$(readlink -f $0)", "SCRIPTPATH=\\$(dirname $SCRIPT)", "cd $SCRIPTPATH", - "$(location :static_docs_build_script) --pwd \\$(hg root)/fbcode/data_compression/experimental/zstrong/doc/mkdocs --use-system-python-extension --test", + "$(location :static_docs_build_script) --pwd \\$(hg root)/fbcode/openzl/{}/doc/mkdocs --use-system-python-extension --test".format(BRANCH_NAME), ]))) ), ) @@ -39,36 +42,46 @@ buck_genrule( # Test the internal website builds successfully buck_sh_test( name = "static_docs_test", + env = { + "DOXYGEN_PATH": "$(location fbsource//third-party/doxygen:doxygen)", + # Skip building the trace visualizer in tests since it requires external network access + # to fetch npm packages, which is not available in remote execution + "OPENZL_SKIP_VISUALIZER_BUILD": "1", + }, test = ":static_docs", deps = [ ":static_docs_build_script", # Depend on all files under doc/ to ensure the test triggers on changes to the docs ":doc_srcs", # Inject fake dependencies to ensure the test triggers on changes to the library and visualization app - "//data_compression/experimental/zstrong:zstronglib", # @manual - "//data_compression/experimental/zstrong/tools/visualization_app:app_srcs", # @manual + "../..:zstronglib", # @manual + "../../tools/visualization_app:app_srcs", # @manual + # Doxygen binary must be explicitly declared as a dependency to be materialized in remote execution + "fbsource//third-party/doxygen:doxygen", # @manual ], ) python_binary( + # @autodeps-skip name = "mkdocs", main_function = "mkdocs.__main__.cli", par_style = "xar", py_version = "3.12", deps = [ + "../../py:openzl", # @manual "fbsource//third-party/pypi/mkdocs:mkdocs", "fbsource//third-party/pypi/mkdocs-material:mkdocs-material", # @manual "fbsource//third-party/pypi/mkdocstrings:mkdocstrings", # @manual "fbsource//third-party/pypi/mkdocstrings-python:mkdocstrings-python", # @manual - "//data_compression/experimental/zstrong/doc/mkdocs/mkdocs-openzl/src:mkdocs_openzl", # @manual - "//data_compression/experimental/zstrong/doc/mkdocs/mkdocstrings-zstd/src:mkdocstrings-zstd", # @manual - "//data_compression/experimental/zstrong/py:openzl", # @manual + "mkdocs-openzl/src:mkdocs_openzl", # @manual + "mkdocstrings-zstd/src:mkdocstrings-zstd", # @manual ], ) python_binary( name = "import_mkdocstrings_zstd", srcs = ["import_mkdocstrings_zstd.py"], + base_module = "openzl.doc.mkdocs", labels = ["autodeps2_generated"], - main_module = "data_compression.experimental.zstrong.doc.mkdocs.import_mkdocstrings_zstd", + main_module = "openzl.doc.mkdocs.import_mkdocstrings_zstd", ) diff --git a/doc/mkdocs/README.md b/doc/mkdocs/README.md index 06a43141e..6ae4ea8ff 100644 --- a/doc/mkdocs/README.md +++ b/doc/mkdocs/README.md @@ -31,9 +31,12 @@ In open source, first make sure these dependencies are installed: * System: doxygen * System: clang-format -* Python: mkdocs>=1.6.1 -* Python: mkdocstrings>=0.27.0 -* Python: mkdocs-material>=9.5.50 +* System: node +* System: yarn +* Python: mkdocs==1.6.1 +* Python: mkdocstrings==0.27.0 +* Python: mkdocs-material==9.5.50 +* Python: mkdocstrings-python=1.13.0 Then run: diff --git a/doc/mkdocs/doc/api/c/codecs/split-byrange.md b/doc/mkdocs/doc/api/c/codecs/split-byrange.md new file mode 100644 index 000000000..4829f8c20 --- /dev/null +++ b/doc/mkdocs/doc/api/c/codecs/split-byrange.md @@ -0,0 +1,146 @@ +# Split By Range + +## Overview + +`split_byrange` is a numeric codec that automatically detects and splits a series +of numeric values into contiguous segments when the values belong to different +numeric ranges. This is useful when a single column effectively concatenates +data from multiple sources or measurement setups, each producing values in a +distinct range. + +The operation is built on top of the existing `splitN` codec: it shares the same +wire format and decompression path. Only the compression side adds a new +range-detection policy that automatically computes segment boundaries. + +## Algorithm: Block-Based Range Boundary Detection + +The detection algorithm uses a single-pass block-level scan with confirmation +windows to find boundaries between contiguous segments whose values live in +non-overlapping ranges. + +### Definitions + +Given a numeric input sequence `v[0..N-1]`, a **range segment** is a maximal +contiguous sub-sequence `v[start..end-1]` such that all values fall within a +single range `[lo, hi]`, and this range does not overlap with the ranges of +adjacent segments. + +### Algorithm Steps + +#### Phase 1: Block Statistics + +Divide the input into fixed-size blocks and compute the min and max value +of each block. The block size is derived from the minimum segment size +(typically 4 elements per block). + +#### Phase 2: Block-Level Split Confirmation + +Scan block boundaries left to right. At each candidate boundary, examine +a **confirmation window** of M blocks on each side (default M=3): + +- Compute the min/max of the left window and the right window. +- Check that the two windows have **non-overlapping ranges**. +- Check **stability**: the range spanned by each window must not be much + larger than the largest individual block range within it. This rejects + monotonic progressions (e.g., steadily increasing values) where adjacent + blocks happen to be non-overlapping but belong to the same logical range. + +A confirmed split advances the scan past the boundary so that subsequent +left windows do not include blocks from the previous segment. + +#### Phase 3: Element-Level Refinement + +For each confirmed block-level split, binary search within the block to +find the exact element position where the boundary occurs, using +element-level prefix/suffix min-max comparison. + +### Properties + +- **O(N) time**: A single forward pass over block statistics, plus + O(blockSize) refinement per confirmed split. +- **O(N / blockSize) space**: One min and one max value per block. +- **Deterministic**: Same input always produces the same split. +- **Minimum segment size**: Controlled by an optional parameter (default: 16). + A split is rejected if either side would have fewer elements than this + threshold. Inputs with fewer than `2 * minSegmentSize` total elements + are passed through as a single segment. + +### Capabilities + +The algorithm excels at detecting boundaries between contiguous blocks of +values from non-overlapping ranges, including: + +- **Monotonic sequences**: Ascending or descending range transitions + (e.g., `[0,100]` then `[500,600]` then `[1000,1100]`). +- **Valley/peak patterns**: High-low-high or low-high-low sequences + (e.g., `[1000,1100]` then `[0,50]` then `[2000,2100]`). +- **Repeated ranges**: The same range value interval appearing at multiple + non-adjacent positions (e.g., `A, B, A` where A and B are non-overlapping) + is correctly split at each boundary. + +For contiguous non-overlapping ranges, the algorithm is guaranteed to find +**all** boundaries (subject to the minimum segment size constraint). + +### Unsigned Interpretation + +The current implementation interprets all input values as **unsigned** integers. +This means negative values (when the source data is signed) are treated as +their unsigned bit-pattern equivalents, which may prevent the algorithm from +detecting meaningful range boundaries in signed data. + +Support for signed interpretation is planned for a future version. + +### Limitation: Minimum Segment Size + +Each segment must contain at least `minSegmentSize` elements (default 16) +for the algorithm to detect the boundary. Patterns where ranges alternate +at a granularity smaller than this threshold — such as element-level +interleaving `[low, high, low, high, ...]` or very short bursts — will +not be split. + + +## Parameters + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `minSegmentSize` | int | 16 | Minimum number of elements per segment. A split is rejected if either side would have fewer elements than this value. | + +The node works without any parameters — the default `minSegmentSize` of 16 +provides a good balance between detecting short segments and avoiding false +positives from noise. + +## Usage + +### C API + +```c +#include + +// Default (no parameters needed): +ZL_GraphID graph = compressor.buildStaticGraph( + ZL_NODE_SPLIT_BYRANGE, successorGraph); +``` + +### C++ API + +```cpp +#include + +// Default: auto-detects range boundaries with minSegmentSize=16 +auto graph = compressor.buildStaticGraph( + nodes::SplitByRange{}, {graphs::Compress{}()}); + +// Custom: allow smaller segments (minimum 4 elements per segment) +auto graph = compressor.buildStaticGraph( + nodes::SplitByRange{4}, {graphs::Compress{}()}); +``` + +### Python API + +```python +import openzl + +compressor = openzl.Compressor() +graph = compressor.build_graph( + openzl.nodes.SplitByRange(), openzl.graphs.Compress()) +``` diff --git a/doc/mkdocs/doc/api/c/graphs/sddl.md b/doc/mkdocs/doc/api/c/graphs/sddl.md index 7dd6e0065..0e237f484 100644 --- a/doc/mkdocs/doc/api/c/graphs/sddl.md +++ b/doc/mkdocs/doc/api/c/graphs/sddl.md @@ -1 +1,8 @@ ---8<-- "src/include/openzl/codecs/zl_sddl.md" +# Simple Data Description Language +## C API + +::: ZL_Compressor_registerSDDL2Graph +::: ZL_Compressor_registerSDDL2Graph_advanced + +## Language Reference +For the current language spec, see the [SDDL](../../../sddl/index.md) documentation. diff --git a/doc/mkdocs/doc/blog/.authors.yml b/doc/mkdocs/doc/blog/.authors.yml new file mode 100644 index 000000000..f0dd64fc0 --- /dev/null +++ b/doc/mkdocs/doc/blog/.authors.yml @@ -0,0 +1,6 @@ +# add authors here as needed +authors: + csv: + name: Victor Zhang + description: OpenZL Team + avatar: https://github.com/Victor-C-Zhang.png diff --git a/doc/mkdocs/doc/blog/assets/visualizer/1.png b/doc/mkdocs/doc/blog/assets/visualizer/1.png new file mode 100644 index 000000000..f98ffa884 Binary files /dev/null and b/doc/mkdocs/doc/blog/assets/visualizer/1.png differ diff --git a/doc/mkdocs/doc/blog/assets/visualizer/2.png b/doc/mkdocs/doc/blog/assets/visualizer/2.png new file mode 100644 index 000000000..a24b7c1ee Binary files /dev/null and b/doc/mkdocs/doc/blog/assets/visualizer/2.png differ diff --git a/doc/mkdocs/doc/blog/assets/visualizer/3.png b/doc/mkdocs/doc/blog/assets/visualizer/3.png new file mode 100644 index 000000000..28ac459b6 Binary files /dev/null and b/doc/mkdocs/doc/blog/assets/visualizer/3.png differ diff --git a/doc/mkdocs/doc/blog/assets/visualizer/4.png b/doc/mkdocs/doc/blog/assets/visualizer/4.png new file mode 100644 index 000000000..37cd95480 Binary files /dev/null and b/doc/mkdocs/doc/blog/assets/visualizer/4.png differ diff --git a/doc/mkdocs/doc/blog/assets/visualizer/5.png b/doc/mkdocs/doc/blog/assets/visualizer/5.png new file mode 100644 index 000000000..0280027cc Binary files /dev/null and b/doc/mkdocs/doc/blog/assets/visualizer/5.png differ diff --git a/doc/mkdocs/doc/blog/assets/visualizer/6.png b/doc/mkdocs/doc/blog/assets/visualizer/6.png new file mode 100644 index 000000000..4f0ca22bc Binary files /dev/null and b/doc/mkdocs/doc/blog/assets/visualizer/6.png differ diff --git a/doc/mkdocs/doc/blog/index.md b/doc/mkdocs/doc/blog/index.md new file mode 100644 index 000000000..e69de29bb diff --git a/doc/mkdocs/doc/blog/posts/2025-12-18-visualizer.md b/doc/mkdocs/doc/blog/posts/2025-12-18-visualizer.md new file mode 100644 index 000000000..c518f0bce --- /dev/null +++ b/doc/mkdocs/doc/blog/posts/2025-12-18-visualizer.md @@ -0,0 +1,88 @@ +--- +date: 2025-12-18 +authors: + - csv +slug: visualizer +categories: + - News +tags: + - visualizer +--- + +# Visualizing OpenZL Graphs + +OpenZL’s graph model is key to its ability to outperform generic compressors. Understanding and optimizing OpenZL compression requires understanding the compression graph. As part of the team’s continued focus on the user experience, we’ve developed an [interactive visualization tool](/tools/trace) that makes this task simple. + +## Background + +When preparing for open-sourcing, it was clear that we needed a new visualization tool. The old visualization tool, named streamdump, had served us well but was quickly becoming insufficient. For instance, streamdump works at decompress time only, and was designed in such a way that corrupted frames could not be inspected. + +To develop the new visualizer, we decided to build on top of OpenZL introspection, a recently developed checkpoint-based tracing framework also used by the OpenZL trainer to collect training samples. Introspection gives us the flexibility to offer richer functionality than streamdump. + +## How it Works + +The new visualizer works in a two-step process similar to Linux perf. The application that does the visualization is a static web app that ingests a “trace” object created by instrumenting a compression. There’s a new `--trace` option you can add to a `zli compress` call that generates this trace. In our perf analogy + +|`perf record`|`zli compress --trace`| +| --------- | --------- | +|`perf report`|[openzl.org/tools/trace](/tools/trace)| + + +The visualizer link also has detailed instructions for recording traces and an API method for taking traces without using the CLI. + +## Feature Showcase + +Here are some nice features we’ve built so far. + +### Dynamic Representation + +![compact-representation](../assets/visualizer/1.png) +![expanded-representation](../assets/visualizer/2.png) + +The visualizer allows you to explore large graphs easily. By default, standard graphs are collapsed so you can focus on the parts of the graph that matter for you. In this example, the Field LZ graph is collapsed, hiding 100+ nodes of complexity. + +### Performance Analysis + +![hot-subgraph](../assets/visualizer/3.png) + +One of the most important features of streamdump was the ability to identify the largest contributors to compressed size. This is replicated in the visualizer, with an additional feature to highlight the “hottest” subgraph at each level. + +### Function Graph Visualization + +![function-graph](../assets/visualizer/4.png) + +Function graphs are an important source of runtime dynamicity in OpenZL. The trace captures the specific codecs run as part of a function graph and the visualizer displays the relationship between graphs and codecs. + +### Error Tracing + +

+ error-tracing +

+ +Debugging graphs is a critical part of developing a new compressor. If an error is encountered, the trace will capture this information and the visualizer will display the exact source of the error. + +### Chunking Support + +![chunking](../assets/visualizer/6.png) + +New features like chunking are not supported by streamdump. As the OpenZL featureset evolves, more features will be added that are easy to support using introspection but difficult using streamdump. + +## What’s Next + +Here are a few features we’re thinking about: + +### Decompression + +So far, tracing is only supported during compression. Bringing the analogous functionality to decompression time will allow us to deprecate streamdump once and for all. + +### Selector visualization + +Selectors are a powerful underutilized tool in OpenZL. Enhancing support for visualizing selector choices will help drive utilization. + +### Performance Mode + +Trained OpenZL compressors are often very large and have high fanout. This makes performance analysis more difficult. We can take some pointers from the UI of perf report to make navigation and analysis easier. + +## A Special Shoutout + +Creating an MVP for visualization was the topic of [Aryan Gandevia](https://github.com/aryan-gandevia)'s internship. Much of the UI design and visualization code is inherited from this MVP. Thanks for all your hard work! diff --git a/doc/mkdocs/doc/demo.md b/doc/mkdocs/doc/demo.md new file mode 100644 index 000000000..3bcc72c5f --- /dev/null +++ b/doc/mkdocs/doc/demo.md @@ -0,0 +1,72 @@ +# OpenZL Demo + +This demo shows how to run OpenZL training to produce a [Pareto frontier](https://en.wikipedia.org/wiki/Pareto_front) of OpenZL compressors that tradeoff compression ratio, compression speed, and decompression speed. + +First, install the demo package: + +```sh +pip install openzl-demo +``` + +Then, pick some data to train with, and run the trainer. +It should be a few MB of `bytes` containing numeric data. +E.g. training data, embeddings, or model weights. +Any data will work, but if there isn't a simple structure this demo trainer likely won't perform well. + +```python +import openzl_demo + +DATA = b"replace with sample data" + +results = openzl_demo.train([DATA]) +``` + +After running the trainer, there are several things you can do with the `results`. +First, you can visualize the results: + +```python +results.plot().write_html("plot.html") +``` + +--8<-- "doc/assets/openzl-demo-int64-plot.html" + +Each point is a different OpenZL compressor. +If you find a tradeoff that is interesting, e.g. maybe point 1, you can grab the serialized representation of that compressor: + +```python +compressor = result.compressors[1] +``` + +Given that compressor, you can run compression & decompression: + +```python +compressed = openzl_demo.compress(compressor, DATA) +decompressed = openzl_demo.decompress(compressed) +assert DATA == decompressed +``` + +Note that the decompression is independent of the compressor that was used. +The compression graph that the `compressor` specified is written into the compressed data, so the same universal decompressor can always decode the data. + +Additionally, a benchmarking utility is provided to measure compression ratio, compression speed, and decompression speed: + +```python +print(openzl_demo.benchmark(compressor, [DATA])) +``` + +Finally, this is all compatible with the `openzl` package and [CLI](./getting-started/cli.md): + + +```python +with open("compressor.zlc", "wb") as f: + f.write(compressor) +``` + +```sh +./zli compress -c compressor.zlc INPUT -o output.zc +./zli decompress output.zc -o decompressed + +./zli benchmark -c compressor.zlc INPUT +``` + +Check out our [quick start guide](./getting-started/quick-start.md) to learn more! diff --git a/doc/mkdocs/doc/getting-started/cli.md b/doc/mkdocs/doc/getting-started/cli.md index 031b8a886..1946ca5ef 100644 --- a/doc/mkdocs/doc/getting-started/cli.md +++ b/doc/mkdocs/doc/getting-started/cli.md @@ -1,79 +1,78 @@ This guide serves as a gentle introduction to OpenZL concepts via hands-on application of the CLI and API. Through this exercise, you will develop a conceptual understanding of the OpenZL engine, learn some common use patterns, and have a good grasp of the CLI. # Prerequisites -Build the library and CLI tool using CMake -``` -cd [openzl root] -mkdir build -cd build -cmake -DCMAKE_BUILD_TYPE=Release .. -make openzl zli -``` -The examples in the guide assume you have the **OpenZL benchmark corpus** on your machine. Download it here: -``` -todo -``` -The input file names in the code snippets correspond to files in the `openzl_corpus/getting_started` folder. +[Build](../getting-started/quick-start.md#building-the-openzl-cli) the library and CLI tool using CMake + +The input file names in the code snippets correspond to files in the `examples/getting_started/sample_inputs` folder. # Basic usage -### ZStd in OpenZL -Let's start with a simple example. We will use the CLI to compress a file named `myfile.txt` using ZStd. -``` -zli compress --profile zstd myfile.txt --output myfile.zs2 +### Serial data in OpenZL +Let's start with a simple example. We will use the CLI to compress a file named `lorem_ipsum.txt` using the serial compression profile. +```sh +./zli compress --profile serial examples/getting_started/sample_inputs/lorem_ipsum.txt --output lorem_ipsum.zl ``` -The `--profile` option allows you to select a predefined **compression profile**. In this case, we are using the `zstd` profile, which is a wrapper around a ZStd compression call. +The `--profile` option allows you to select a predefined **compression profile**. In this case, we are using the `serial` profile, which is suited for serial data. -> **More about profiles:** Under the hood, a `profile` is simply a pre-configured OpenZL **graph**. In this case, the graph just contains one node: the Zstd node. Other profiles contain more complex graphs, as we will see later. +> **More about profiles:** Under the hood, a `profile` is simply a pre-configured OpenZL **graph**. Since we did not do any [ACE](./using-openzl.md#ace-training) training, the graph contains a single Zstd node. Other profiles contain more complex graphs, as we will see later. -### Field LZ for numeric data -Now let's try to compress a file of numbers. We have preconfigured a graph called `field_lz` that takes advantage of fixed-width structure of integer data to compress better than byte-wise LZ. +### Strict Mode +By default, `zli compress` operates in **permissive mode**: if a compression graph encounters an error (e.g., data doesn't match some expected properties), it falls back to generic compression instead of failing. This ensures compression always succeeds. +Use `--strict` to disable this fallback behavior: +```sh +./zli compress --profile le-i32 --strict data.bin -o data.zl ``` -zli compress --profile field_lz ints.txt --output ints.field_lz.zs2 -``` +In strict mode, compression fails if the data doesn't match the profile's expectations. This is useful for validating that your data conforms to expectations. -For comparison, we can try compressing the same output with Zstd. +### Numeric data in OpenZL +Now let's try to compress a file of numbers. We have preconfigured profile called `le-i32` that takes advantage of fixed-width structure of integer data to compress better than byte-wise LZ. In this example, we will compress a small sample of integers from the [ERA5](https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels?tab=overview) dataset. +```sh +./zli compress --profile le-i32 examples/getting_started/sample_inputs/era5_ints.bin --output era5_ints.le_i32.zl ``` -zli compress --profile zstd ints.txt --output ints.zstd.zs2 + +For comparison, we can try compressing the same output with serial. + +```sh +./zli compress --profile serial examples/getting_started/sample_inputs/era5_ints.bin --output era5_ints.serial.zl ``` -We can see the immediate benefit of moving from Zstd to Field LZ. +We can see the immediate benefit of moving from serial to le-i32. > **Tip:** The more you know about your data, the better you can tune your compression. Simply knowing that your data is integral dramatically improves compression. ## Custom Compressors -The true power of OpenZL lies in its configurability. Creating your own custom compressor is documented in the API reference. Once created, a compressor can be *serialized* into a CBOR file. The CLI supports compressing with a serialized compressor. -``` -zli compress --compressor custom1.zsc custom_data.txt -o custom_data.zs2 +The true power of OpenZL lies in its configurability. Creating your own custom compressor is documented in the API reference. Once created, a compressor can be *serialized* into a CBOR file. The CLI supports compressing with a serialized compressor. Here is a sample command, we will be creating a custom compressor in the next section. +```sh +./zli compress --compressor custom1.zli examples/getting_started/sample_inputs/custom_data.txt -o custom_data.zl ``` The main way of creating serialized compressors is via export from code. The other way is via training. -> **What's in a serialized compressor?** A serialized compressor contains one or more serialized graphs along with associated `LocalParams`. Although there may be multiple graphs registered to a compressor, only one, the *starting graph*, is used as the graph when compressing with that compressor. You can explore a sample serialized compressor by putting a `.zsc` file into a CBOR-to-JSON converter. +> **What's in a serialized compressor?** A serialized compressor contains one or more serialized graphs along with associated `LocalParams`. Although there may be multiple graphs registered to a compressor, only one, the *starting graph*, is used as the graph when compressing with that compressor. You can explore a sample serialized compressor by putting a `.zli` file into a CBOR-to-JSON converter. ## Training Oftentimes, the performance of a configurable graph is much improved by preconfiguring it with a number of representative data samples. This process is called **training** the graph. Conceptually, the rationale and outcome of graph training is very similar to training [Zstd dictionaries](https://facebook.github.io/zstd/#small-data). However, the mechanics are quite different. -``` -zli train --profile csv csv_samples/ -o trained_csv.zsc +```sh +./zli train --profile csv examples/getting_started/sample_inputs/csv_samples/ -o trained_csv.zli ``` The `train` command takes an **unconfigured compressor** in the form of a `profile` or serialized compressor and outputs a serialized compressor with a configuration trained on the provided samples. > **Terminology - (Un)configured graph:** A graph is considered *configured* if all of its graph components are configured. A codec is configurable only via its `LocalParams`. Thus, an unconfigured codec is one that takes params but has blank `LocalParams` passed to it. A configured codec is then one with populated `LocalParams`. Selectors and function graphs additionally can set successor graph IDs. Then, a selector or function graph without a complete list of successors is also unconfigured. -Let's see what happens when we run a compression using the trained graph. First, the untrained graph... -``` -zli compress --profile csv csv_samples/0001.csv -o no_train.zs2 +Let's see what happens when we run a compression using the trained graph. In this example, we will use a small sample from the [PUMS](https://www.census.gov/programs-surveys/acs/microdata/access.html) dataset. First, the untrained graph... +```sh +./zli compress --profile csv examples/getting_started/sample_inputs/csv_samples/0001.csv -o no_train.zl ``` ...and now the trained graph. The CLI allows you to compress using a **serialized compressor**. We will use the one generated by the train command -``` -zli compress --compressor trained_csv.zsc csv_samples/0001.csv -o yes_train.zs2 +```sh +./zli compress --compressor trained_csv.zli examples/getting_started/sample_inputs/csv_samples/0001.csv -o yes_train.zl ``` The difference is stark. Training is able to net us a 10% ratio win at no other cost. (Technically, if we wanted to be rigorous we should have split our data into train and test directories. But the result is very similar.) -> **Training effectively:** The typical training workflow is to collect a small number of representative samples, train on those samples, and use the trained compressor on the entire dataset. In production settings, data may evolve over time. So it is useful to collect new samples at designated intervals (maybe daily or weekly) and replace the trained compressor with the newly trained one. +> **Training effectively:** The typical training workflow is to collect a small number of representative samples, train on those samples, and use the trained compressor on the entire dataset. For more details on sizing training inputs, see [training usage](examples/cli/training-usage.md). In production settings, data may evolve over time. So it is useful to collect new samples at designated intervals (maybe daily or weekly) and replace the trained compressor with the newly trained one. ### Inline Training -Because the impact of training is so stark, the CLI requires that trainable compressors be trained in some form before using them. The typical way to do this is by first training then compressing with the trained `.zsc` compressor, but **inline training** is also supported. -``` -zli compress --profile csv --train-inline csv_samples/0001.csv -o inline_train.zs2 +Because the impact of training is so stark, the CLI requires that trainable compressors be trained in some form before using them. The typical way to do this is by first training then compressing with the trained `.zli` compressor, but **inline training** is also supported. +```sh +./zli compress --profile csv --train-inline examples/getting_started/sample_inputs/csv_samples/0001.csv -o inline_train.zl ``` The results are obviously better when we overfit to just one sample, however the power of training is lost because this cost is paid per compression instead of being spread over many compressions. diff --git a/doc/mkdocs/doc/getting-started/concepts.md b/doc/mkdocs/doc/getting-started/concepts.md index fb6952f79..b8fe39b7d 100644 --- a/doc/mkdocs/doc/getting-started/concepts.md +++ b/doc/mkdocs/doc/getting-started/concepts.md @@ -57,9 +57,7 @@ The typical usage pattern is for users to insert a small number of codecs or use ### Static Graph -A static graph is a graph that takes one input, and that consists of a head node, whose outputs are passed to other graphs. -This graph does not make any dynamic decisions during compression; it always passes the input to the head node. -However, the graphs that compress the output of the head node may make dynamic decisions. +A static graph is a graph with fixed routing behavior. It accepts a single input via a head node whose output is passed to other graphs. During compression, the static graph does not make any dynamic routing decisions. The graphs that receive output from the head node, however, may still make dynamic decisions about how to compress the data. ### Selector Graph @@ -71,16 +69,18 @@ If the data is sorted, it may pass it to a specialized compression graph for sor ### Function Graph -A function graph is a graph that takes one or more input, and passes it to a user defined input that defines the graph at compression time. +A function graph is a graph that takes one or more inputs, and passes it to a user defined function that defines the graph at compression time. This function may: * Inspect the data of any edge it has access to (including all input data). * Run [codecs][codecs] directly on any edge, and customize the configuration of codecs that get run. * Dynamically select the output graph for any edge. -The function graph starts with a set of unterminated edges which is the inputs. -It can update the set by running a node, which removes the inputs passed to that node, and adds its outputs. -It can remove from the set by setting the output graph for an edge. +The function graph starts with a set of unterminated edges which is the inputs. The set can change in two ways: + +* Running a node removes the inputs passed to that node and adds its outputs to the set. +* Setting the output graph for an edge removes it from the set. + The set of unterminated edges must be empty before the function graph finishes. The function graph is very powerful, but in exchange it gives up ease of use. @@ -91,4 +91,4 @@ It is recommended to make each function graph as small as possible, and prefer s The store graph is the "base" graph that takes a single input and produces no outputs. Passing data to this graph denotes that the data should be written as-is into the compressed output. All other graphs must eventually terminate all of their edges with store. -However, it may not be written into the graph directly, because e.g. it terminates an edge in a standard graph, which itself eventually terminates all edges in store. +However, graphs don't always terminate explicitly with the store graph. For example, a graph might terminate their edges with a standard graph, which eventually routes all edges to the store graph. diff --git a/doc/mkdocs/doc/getting-started/examples/c/benchmarking.md b/doc/mkdocs/doc/getting-started/examples/c/benchmarking.md index 59d7c788f..c7a03938c 100644 --- a/doc/mkdocs/doc/getting-started/examples/c/benchmarking.md +++ b/doc/mkdocs/doc/getting-started/examples/c/benchmarking.md @@ -1,11 +1,9 @@ -# Lighweight Benchmarking +# Lightweight Benchmarking A lightweight benchmarking tool `unitBench` is provided in the codebase as a helper to benchmark some common compression use cases. ## Build and Use -Toggle the `DOPENZL_BUILD_BENCHMARKS` CMake option to enable benchmarking. ```bash -cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENZL_BUILD_BENCHMARKS=ON -make -j unitBench +make unitBench ``` The `unitBench` binary expects a scenario and some number of input files. Here is a sample command to benchmark Zstd compression on a few files ```bash @@ -36,7 +34,7 @@ If the scenario is not representable as a graph, it is still benchmarkable, but // scenario definition --8<-- "src/benchmark/unitBench/benchList.h:example-wrapper-scenario" ``` -This scenario also declares the `outSize` function. This tells `unitBench` how much space to allocate for the compressed output. `out_identical` is a convenience funtion meaning "allocate a buffer with the same size as the input". +This scenario also declares the `outSize` function. This tells `unitBench` how much space to allocate for the compressed output. `out_identical` is a convenience function meaning "allocate a buffer with the same size as the input". ::: BMK_outSize_f ```cpp title="benchmark/unitBench/benchList.h" --8<-- "src/benchmark/unitBench/benchList.h:out-identical" diff --git a/doc/mkdocs/doc/getting-started/examples/c/custom-formats.md b/doc/mkdocs/doc/getting-started/examples/c/custom-formats.md index 88505d44a..2bb522a21 100644 --- a/doc/mkdocs/doc/getting-started/examples/c/custom-formats.md +++ b/doc/mkdocs/doc/getting-started/examples/c/custom-formats.md @@ -2,11 +2,17 @@ A simple way to enhance generic compressors is to parse the input data before compression. Furthermore, if the data is homogeneous training can also be done. After parsing into structured outputs, OpenZL offers a training tool that clusters these outputs to exploit correlations and tries multiple compression strategies per cluster to create a good compressor. ## Running the example -First generate some data using `parsing_data_generator_correlated.py`. This is in its own [custom format](#the-data-format). We will use `/tmp/openzl` as the working directory for this exercise and generate a single file to compress. [Trainining Orchestration](training-orchestration.md) will properly set up a test/train split for your data. For now, we will train and test on the single file. Run: +First generate some data using `parsing_data_generator_correlated.py` (which can be found in `openzl/examples` folder). This is in its own [custom format](#the-data-format). We will use `/tmp/openzl` as the working directory for this exercise and generate a single file to compress. [Training Orchestration](training-orchestration.md) will properly set up a test/train split for your data. For now, we will train and test on the single file. Inside `/tmp/openzl`, create a `train` directory and an empty file called `correlated`. The following command will populate the file with data: + +Run: ``` python3 parsing_data_generator_correlated.py /tmp/openzl/train/correlated ``` -Next, run cmake and go to the build directory. Then run the training binary: +Next, run cmake. If you used [these cmake steps](../../quick-start.md#building-the-openzl-cli) to build `zli` you can run the following command to run cmake. +``` +cmake --build cmakebuild --target training +``` +Then go to the `cmakebuild/examples` directory and run the training binary: ``` ./training train /tmp/openzl/train /tmp/openzl/compressor.zlc ``` @@ -171,7 +177,7 @@ The next step is to paramaterize the graph with the required parameters. In our --8<-- "src/examples/training.cpp:register-parser-parameterize" ``` -After creating a generic registration function for the parser, we must create a specialized compressor profile for the parser. The compressor profile allows you to specify successors, and optionally clustering codecs. Good successors to pick here depends on the parsed data. For example, time series data will work well with compressors which have `ZL_NODE_DELTA`. A reasonable set of successors can be found in "custom_parsers/shared_components/clustering.cpp". We have also built a [graph builder]()(Documentation under construction) that can be used at this stage of successor selection. +After creating a generic registration function for the parser, we must create a specialized compressor profile for the parser. The compressor profile allows you to specify successors, and optionally clustering codecs. Good successors to pick here depends on the parsed data. For example, time series data will work well with compressors which have `ZL_NODE_DELTA`. A reasonable set of successors can be found in `custom_parsers/shared_components/clustering.cpp`. We have also built a [graph builder]()(Documentation under construction) that can be used at this stage of successor selection. ## Running training and compression After handling I/O, create a compressor, register the new compressor profile built and set the starting graph for the compressor as this graph. Then we can can train directly by calling `train` with the appropriate parameters. diff --git a/doc/mkdocs/doc/getting-started/examples/c/training-orchestration.md b/doc/mkdocs/doc/getting-started/examples/c/training-orchestration.md index 764573a31..3dd5c95be 100644 --- a/doc/mkdocs/doc/getting-started/examples/c/training-orchestration.md +++ b/doc/mkdocs/doc/getting-started/examples/c/training-orchestration.md @@ -19,7 +19,7 @@ Using this trained compressor, we can now benchmark the test set. It is first ne ``` Deserialization requires all dependencies to be registered in the compressor. In this example, we register the compressor profile we used in training with `registerGraph_ParsingCompressor`. This enables the compressor to be deserialized by calling `compressor.deserialize` and passing in the serialized compressor. -Even though we have built a custom compressor, to decompress, there are no requirements other than the the format version of the compressor set to a version less than or equal to the library's format version on the decompressor side. The following two lines of code are all that is necessary to decompress. +Decompression only requires that the compressor's configured format version to be less than or equal to the decompressor's format version. The following two lines of code are all that is necessary to decompress. ```cpp --8<-- "src/examples/training.cpp:decompression" ``` diff --git a/doc/mkdocs/doc/getting-started/examples/cli/parquet.md b/doc/mkdocs/doc/getting-started/examples/cli/parquet.md index 71fcb3848..74729a27f 100644 --- a/doc/mkdocs/doc/getting-started/examples/cli/parquet.md +++ b/doc/mkdocs/doc/getting-started/examples/cli/parquet.md @@ -8,7 +8,7 @@ You can use the `make_canonical_parquet` tool from the `tools/parquet` directory The canonicalization tool takes a dependency on parquet and arrow, and is thus not built by default. You can build the tool by passing the following flag when building the OpenZL library with CMake: ``` -cmake -DBUILD_PARQUET_TOOLS=ON +cmake -DOPENZL_BUILD_PARQUET_TOOLS=ON ``` Once built, you can use the tool to convert some input Parquet file or directory into the canonical format. diff --git a/doc/mkdocs/doc/getting-started/examples/cli/protobuf.md b/doc/mkdocs/doc/getting-started/examples/cli/protobuf.md index cdc4773d0..c5979fad5 100644 --- a/doc/mkdocs/doc/getting-started/examples/cli/protobuf.md +++ b/doc/mkdocs/doc/getting-started/examples/cli/protobuf.md @@ -1,28 +1,206 @@ # Protobuf Serialization + OpenZL supports serialization and deserialization of Protobuf messages directly into a compressed format. -## Experimenting with Protobuf Serialization -All protobuf-related code is located in the `tools/protobuf` directory. You can experiment with OpenZL's Protobuf support using the `protobuf_cli` tool. +All protobuf-related code is located in the `tools/protobuf` directory. You can experiment with this functionality using the `protobuf_cli` tool. -### Adding Your Schema -The first step is to add your Protobuf schema to the `tools/protobuf/schema.proto` file. You should replace the existing schema with your own. +--- -### Building the Protobuf CLI -Once you have added your Protobuf schema, you should re-build the `protobuf_cli` tool. This can be done by running the following commands from the root of the OpenZL repository: -``` -cmake -DOPENZL_BUILD_PROTOBUF_TOOLS=ON +## Setup: Building the `protobuf_cli` + +Before using the tool, you must build it from the root of the OpenZL repository. + +```bash +mkdir -p build +cd build +cmake .. -DOPENZL_BUILD_PROTOBUF_TOOLS=ON make ``` -### Using the Protobuf CLI -The `protobuf_cli` tool can be used to serialize Protobuf messages. You can serialize a Protobuf message by running the following command: +The `protobuf_cli` binary will be built at `build/tools/protobuf/protobuf_cli`. + +**Note:** In the examples below, commands are shown as `protobuf_cli ` for readability. When running from the build directory, use `./tools/protobuf/protobuf_cli `, or add it to your PATH for convenience. + +--- + +## Core Concept: Schema Handling + +The `protobuf_cli` can understand your `.proto` schemas in two ways. + +* **1. Compiled Mode (Static):** The schema is "baked into" the `protobuf_cli` binary at compile time. + + * **Pro:** Slightly simpler command (no schema flags needed). + * **Con:** Requires you to re-run `make` every time your schema changes. + * **How to use:** Edit the `tools/protobuf/schema.proto` file *before* running `cmake` and `make`. + +* **2. Dynamic Mode (Runtime):** You provide the schema as an argument every time you run a command. + + * **Pro:** Extremely flexible. No need to recompile to test new schemas or message types. + * **Con:** Requires extra flags on every command (`--proto` or `--descriptor`). `--proto` may be slower than `--descriptor` as it requires parsing and compilation. + * **How to use:** Pass schema flags (explained in examples below). See [Dynamic Schema Flags Reference](#dynamic-schema-flags-reference) for complete details. + +You can use whichever mode best fits your workflow. + +--- + +## CLI Usage: `protobuf_cli ` + +The tool is organized into commands. The primary commands are `serialize` (for converting data), `train` (for creating custom compressors), and `benchmark` (for performance testing). + +### Command: `serialize` + +This command serializes, deserializes, or converts Protobuf messages between formats. + +#### Common `serialize` Options + +These flags work for *both* compiled and dynamic modes. + +* `--input `: The input file (required). +* `--output `: The output file (optional). If not specified, the output filename is auto-generated from the input filename by changing the extension to match the output protocol. +* `--input-protocol `: The format of the input file. (Default: `proto`) +* `--output-protocol `: The format for the output file. (Default: `zl`) +* `--compressor `: Use a custom-trained compressor file (see `train` command). +* `--check`: Verify that serialization round trip is correct. + +#### `serialize` Examples + +**Example 1: Compiled Mode (Serialize to ZL)** + +This example assumes you already added your schema to `schema.proto` and recompiled. + +```bash +# Serialize from Protobuf binary (.binpb) to OpenZL (.zl) +protobuf_cli serialize --input message.binpb --output message.zl +``` + +**Example 2: Compiled Mode (Deserialize ZL to JSON)** + +This demonstrates format conversion. + +```bash +# Deserialize from OpenZL (.zl) to JSON (.json) +protobuf_cli serialize \ + --input message.zl \ + --output message.json \ + --input-protocol zl \ + --output-protocol json +``` + +**Example 3: Dynamic Mode (using `.proto` file)** + +This is the most common dynamic use case. You must specify the `.proto` file and the full message type. + +```bash +protobuf_cli serialize \ + --proto schema.proto \ + --message-type com.example.MyMessage \ + --input input.binpb \ + --output output.zl +``` + +* If your `.proto` has imports, add search paths with `--proto-path `. + +**Example 4: Dynamic Mode (using `.desc` file)** + +For faster runtime performance, you can pre-compile your schema into a descriptor file: + +```bash +protoc --descriptor_set_out=schema.desc --include_imports schema.proto ``` -protobuf_cli serialize --input --output + +Then, use it with the CLI: + +```bash +protobuf_cli serialize \ + --descriptor schema.desc \ + --message-type com.example.MyMessage \ + --input input.binpb \ + --output output.zl +``` + +--- + +### Command: `train` + +This command trains a custom, optimized compressor from a set of sample messages. + +#### Common `train` Options + +* `--input `: Input file or directory of sample messages (required). +* `--output `: Output file for the trained compressor (required). + +#### `train` Examples + +**Example 1: Compiled Mode** + +This trains using the schema baked into the binary. + +```bash +# Input can be a single file or a directory of files +protobuf_cli train --input training_data/ --output trained.zlc ``` -By default, the input is expected to be a proto serialized message and the output will be in the OpenZL format. You can change these defaults using the `--input-protocol` and `--output-protocol` flags. The supported protocols are `zl`, `proto`, and `json`. +**Example 2: Dynamic Mode** + +This trains using a schema provided at runtime. Just like `serialize`, you must provide the schema and message type. -For example, if your input file is in the OpenZL format and you want your output to be protobuf, you can run the following command: +```bash +protobuf_cli train \ + --proto schema.proto \ + --message-type com.example.MyMessage \ + --input training_data/ \ + --output custom_compressor.zlc ``` -protobuf_cli serialize --input --output --input-protocol zl --output-protocol proto + +You can then use this `custom_compressor.zlc` file with the `serialize` command: + +```bash +protobuf_cli serialize \ + --proto schema.proto \ + --message-type com.example.MyMessage \ + --input new_message.binpb \ + --output new_message.zl \ + --compressor custom_compressor.zlc ``` + +--- + +### Command: `benchmark` + +This command runs a performance benchmark for compression and decompression. It follows the same schema rules as `serialize` and `train`. + +#### Common `benchmark` Options + +* `--input `: Input file or directory of sample messages to benchmark (required). +* `--num-iters `: Number of iterations to run for each file (optional, default: 10). + +#### `benchmark` Examples + +**Example 1: Compiled Mode** + +```bash +protobuf_cli benchmark --input samples/ --num-iters 100 +``` + +**Example 2: Dynamic Mode** + +```bash +protobuf_cli benchmark \ + --proto schema.proto \ + --message-type com.example.MyMessage \ + --input samples/ \ + --num-iters 100 +``` + +--- + +## Dynamic Schema Flags Reference + +When using dynamic mode, these flags are required: + +* `--proto `: Load schema from a `.proto` source file (requires protobuf compiler libraries). +* `--descriptor `: Load schema from a pre-compiled `.desc` descriptor file (faster, recommended for production). +* `--message-type `: [Fully qualified message type name](https://protobuf.dev/programming-guides/proto3/#packages), including the package. For example, if your `.proto` file has `package com.example;` and defines `message MyMessage`, use `com.example.MyMessage`. Required with `--proto` or `--descriptor`. +* `--proto-path `: Directory to search for `.proto` imports. + +**Note:** You must use either `--proto` or `--descriptor`, but not both. diff --git a/doc/mkdocs/doc/getting-started/examples/cli/training-usage.md b/doc/mkdocs/doc/getting-started/examples/cli/training-usage.md new file mode 100644 index 000000000..71a865a9f --- /dev/null +++ b/doc/mkdocs/doc/getting-started/examples/cli/training-usage.md @@ -0,0 +1,24 @@ +## CPU Requirements +Training can be CPU intensive, but is expected to work for even laptop cpus for smaller workloads. Training does not use GPU. The following tests are done using a Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz. + +## RAM Usage +The RAM usage is dependent on the size of the input file or chunk, and the number of threads used. Given a file size of x, approximately 10x RAM is used per thread. + +## Limitations +Currently, training does not support large files greater than 500MB at a time. A segmenter must be used for larger files. Running training also requires a C++17 compiler support. The trainer produces compressors that are compatible with the core library. + +## Training Times + +!!! note "Note" + The times below are very approximate given runtime depends on the input and therefore may not be representative of exact runtimes but are intended to help guide file sizing for training. + +It is recommended to train to completion, however the flag `--max-time-secs` will pause training and return the best result found within the time frame provided. Training to completion on a 100Mb file using 40 threads takes for the following stages: + +Clustering Training: 480s +- The clustering trainer is not always able to use all the threads, typically able to fully utilize ~5-10 threads. Clustering training time scales linearly with file size, but is also dependent on many other factors. + +ACE Training: 3000s +- Ace training time scales linearly with the file input size, and time spent is inversely proportional to the number of threads used. It is possible to decrease the time spent by tuning hyperparameters such as `maxGenerations` at the cost of worse results. + +## Recommended usage +It is recommended to initially train/ test on a single smaller file to verify correctness. A very small subset of the data can typically be provided to the trainer to train compressors, such as 3 files out of 1000 files, however this depends on the properties of the dataset. diff --git a/doc/mkdocs/doc/getting-started/examples/py/parsing.md b/doc/mkdocs/doc/getting-started/examples/py/parsing.md index ab42fa193..ffadc1178 100644 --- a/doc/mkdocs/doc/getting-started/examples/py/parsing.md +++ b/doc/mkdocs/doc/getting-started/examples/py/parsing.md @@ -51,6 +51,7 @@ It is a trivial example, but it is enough to show that you can improve compressi OpenZL allows constructing graphs at runtime, similar to the [Selector][openzl.ext.Selector] that we saw in the [quick start example](./quick-start.md), but more powerful. This is done through [`FunctionGraph`s][openzl.ext.FunctionGraph]. Inside a function graph you can: + * Inspect the input edge, and the data attached to that edge. * Run a node on any edge, and get the resulting edges back. * Send an edge to a destination graph. diff --git a/doc/mkdocs/doc/getting-started/introduction.md b/doc/mkdocs/doc/getting-started/introduction.md index b099cbf6f..eb9c5fa71 100644 --- a/doc/mkdocs/doc/getting-started/introduction.md +++ b/doc/mkdocs/doc/getting-started/introduction.md @@ -40,19 +40,23 @@ Although OpenZL is a toolkit of components that can be arbitrarily composed into ``` mermaid graph LR - classDef hidden display: none; - - input:::hidden --> Parse; - Parse --> Group; - Group --> Transform; - Transform --> Compress; + input["input"] --> Parse["Parse"] + subgraph s1["Frontend"] + Parse --> Group["Group"] + end + subgraph s2["Backend"] + Group --> Transform["Transform"] + Transform --> Compress["Compress"] + end + input:::hidden + classDef hidden display: none ``` This is because OpenZL's components that are actually good at compressing data—its suite of transforms and compressors—work best on homogenous streams of data. For inputs that aren't already organized that way, those backend components require a frontend to parse and group the input into streams, which the backend can then compress effectively. OpenZL offers a number of options for accomplishing that organization of your data: -1. **Pre-Built Profiles**: Use a profile that has already been built to compress a particular format. (TODO: link?) +1. **Pre-Built Profiles**: Use a profile that has already been built to compress a [particular format](quick-start.md#compress-with-trained-profile). 2. **Describe Your Data**: The [Simple Data Description Language](../api/c/graphs/sddl.md) profile lets you describe the format of your input with a simple syntax, which OpenZL uses to split your input into component streams. diff --git a/doc/mkdocs/doc/getting-started/library-limitations.md b/doc/mkdocs/doc/getting-started/library-limitations.md new file mode 100644 index 000000000..5a8f50477 --- /dev/null +++ b/doc/mkdocs/doc/getting-started/library-limitations.md @@ -0,0 +1,9 @@ +# Core Library Limitations +## Codec limitations +Compressing payloads with size > 500MB will result in undefined behavior. Such inputs must be chunked before compression. + +## Requirements +The core library requires C11 to be compiled. + +## Resource Usage +The OpenZL library is not optimized for memory usage. Typically, memory usage can be ~10x the payload that is getting compressed. Streaming is also not currently supported. Streaming is in active development and it is also expected for engine memory usage to be reduced significantly in future versions. diff --git a/doc/mkdocs/doc/getting-started/quick-start.md b/doc/mkdocs/doc/getting-started/quick-start.md index 1d98cc871..0d1495d2d 100644 --- a/doc/mkdocs/doc/getting-started/quick-start.md +++ b/doc/mkdocs/doc/getting-started/quick-start.md @@ -2,33 +2,35 @@ This quick start gives you a hands-on walk-through of the `zli` CLI so you can begin compressing data with OpenZL right away. Before you start, make sure your environment has `git`, a C++ compiler (such as `g++` or `clang++`), and `make` installed. -This 15 mn exercise will teach you: +This 15 minute exercise will teach you: -- How to compress some simple data (a vector of numerics) using a preset profile -- How to decompress (and verify) any openzl compressed frame -- How to employ the trainer to find a better solution -- How to compress using a configuration provided by the trainer -- How to trace and visualize this configuration in the form of the compression graph +- How to compress some simple data (a vector of numerics) using a preset profile. +- How to decompress (and verify) any OpenZL compressed frame. +- How to employ the trainer to find a better solution. +- How to compress using a configuration provided by the trainer. +- How to trace and visualize a configured compression graph. ## Clone OpenZL -```bash -git clone --depth 1 https://github.com/facebook/openzl.git +```sh +git clone --depth 1 -b release https://github.com/facebook/openzl.git cd openzl ``` ## Building the OpenZL CLI -OpenZL consists of a core library and a set of tools, each of which can be compiled independently. However, for usage simplicity, most of them are bundled into a CLI called `zli`. -Compile it; it will be your main tool for the next sections. +OpenZL consists of a core library and a set of tools, each of which can be compiled independently. However, for usage simplicity, many of them are bundled into a CLI called `zli`. +It will be your main tool for the next sections. -```bash -make -``` +???+ important "System requirements" + OpenZL uses modern C11 and C++17 features. Ensure your compiler has full support. GCC 9+ and Clang 13+ are known to be supported. -`make` exploits multi-core cpus, and will run faster on systems with more cores. +```sh +make zli +``` ??? note "Alternative: Using cmake instead of make" + Use CMake 3.20.2+ when generating: ```bash mkdir -p cmakebuild cmake -S . -B cmakebuild @@ -36,7 +38,7 @@ make ln -sf cmakebuild/cli/zli . ``` -This command compiles `zli` and then link it into the current directory, so it can be invoked with `./zli`. +This command compiles `zli` and then links it into the current directory, so it can be invoked with `./zli`. The CLI features many commands, which can be discovered with `./zli --help`. ## First compression scenario @@ -44,22 +46,20 @@ The CLI features many commands, which can be discovered with `./zli --help`. For this first example usage, you are going to compress some simple data of known type. To do that, you need to provide a “profile” to the compressor. -A `zli` “profile” is a pre-built description of the data’s structure that helps the compressor understand how to best process it. For example, a profile might specify that the data is an array of 64-bit integers, a csv file, or another format. By specifying a profile, you guide OpenZL to use compression techniques that are optimized for that specific kind of data, resulting in better compression ratios and performance compared to generic methods. +A `zli` “profile” is a pre-built description of the data's structure that helps the compressor understand how to best process it. For example, a profile might specify that the data is an array of 64-bit integers, a csv file, or another format. By specifying a profile, you guide OpenZL to use compression techniques that are optimized for that specific kind of data, resulting in better compression ratios and performance compared to generic methods. `zli` supports a number of pre-built data profiles out of the box, which can be listed with: -```bash +```sh ./zli list-profiles ``` -For this first example, you will use `sra0`. It is the first column of the [sao] sample from the Silesia compression corpus, and is just an array of 64-bit numeric values. - -[sao]:https://sun.aei.polsl.pl/~sdeor/corpus/sao.bz2 +For this first example, you will compress `sra0`, which is the first column of the [`sao`](https://sun.aei.polsl.pl/~sdeor/corpus/sao.bz2) sample from the Silesia compression corpus, and is just an array of 64-bit numeric values. First, download the sample. You can use your browser to point at [https://github.com/facebook/openzl/releases/tag/openzl-sample-artifacts](https://github.com/facebook/openzl/releases/tag/openzl-sample-artifacts). Alternatively, you can use the following script: -```bash +```sh wget https://github.com/facebook/openzl/releases/download/openzl-sample-artifacts/sra0.zip unzip sra0.zip rm sra0.zip @@ -72,30 +72,26 @@ rm sra0.zip rm sra0.zip ``` -!!! warning - While the repository remains private, downloading from https:// address may fail. - Please use the web interface to download and unzip the file manually in this case. - This will install the file `sra0` in the current directory. For comparison's sake, compress it with known generic compression algorithms: -| algorithm | compressed size | ratio | -| --- | --- | --- | -| gzip -9 | 1,742,445 | 1.19x | -| zstd -19 | 1,696,778 | 1.22x | -| xz -9 | 1,488,144 | 1.39x | +| Algorithm | Compressed Size | Ratio | +| ---------- | --------------- | ----- | +| `gzip -9` | 1,742,445 | 1.19x | +| `zstd -19` | 1,696,778 | 1.22x | +| `xz -9` | 1,488,144 | 1.39x | -Now compress it with OpenZL's `zli`. Note the requirement to provide a `--profile` to explain how to interpret the data: +Now compress it with OpenZL's `zli`. Note the requirement to provide a `--profile` to instruct OpenZL how to interpret the data: -```bash +```sh ./zli compress --profile le-u64 sra0 --output sra0.zl ``` This will result in a file `sra0.zl`. At the time of this writing, performance is expected to be: -```sh +``` Compressed 2071976 -> 1378167 (1.50x) in 15.335 ms, 128.85 MiB/s ``` @@ -105,13 +101,13 @@ Note that the compression ratio is better than all generic algorithms tested bef Ensure that the compressed data can be decoded by using the following command: -```bash +```sh ./zli decompress sra0.zl --output sra0.decompressed ``` which should give you: -```sh +``` Decompressed: 66.51% (1345.87 KiB -> 2023.41 KiB) in 2.619 ms, 754.60 MiB/s ``` @@ -146,11 +142,7 @@ In this example, you will use a single sample for simplicity. Now train a compressor using the `sra0` sample: ```sh -# Note: the trainer expects samples in a directory. -# Create a directory with a single sample. -mkdir -p /tmp/sampleDir -cp sra0 /tmp/sampleDir -./zli train --profile le-u64 /tmp/sampleDir --output sra0.zlc +./zli train --profile le-u64 sra0 --output sra0.zlc ``` ??? note "Setting max training time" @@ -160,7 +152,6 @@ cp sra0 /tmp/sampleDir training, not the total time. But, the trained result may be worse given less time to train. - The training session will generate some messages on the consoles. The last lines should look something like that: @@ -172,12 +163,10 @@ Training improved compression ratio by 130.48% ``` ??? note "Variability in training results" - Training is non-deterministic currently, meaning - results from training vary a bit between sessions. - However, results are expected to vary "within reasonable margin", meaning - compression ratio and speed should remain roughly comparable between sessions. + Training is non-deterministic, meaning results from training vary a bit between sessions. + However, results are expected to stay within a reasonable margin, meaning compression ratio and speed should remain roughly comparable between sessions. -The generated `sra0.zlc` is a Serialized Compressor, specialized for the trained data. +The generated `sra0.zlc` is a serialized compressor, specialized for the trained data. It is used to tell `zli` (or the library) how to compress the data. ### Compress with trained profile @@ -202,31 +191,103 @@ and check that it is effectively identical to the original `sra0`. This exercise shows the importance of training to generate enhanced solutions for homogeneous datasets. +### Find the Pareto frontier of compressors + +The previous training command searched only for the smallest compressed size. +Adding the `--pareto-frontier` flag makes the trainer output the entire Pareto frontier of optimal tradeoffs of compression ratio, compression speed, and decompression speed. +Instead of outputting a single compressor, it will create a directory of compressors, along with the benchmark results in `benchmark.csv`. + +``` +./zli train --profile le-u64 sra0 --output compressors/ --pareto-frontier +``` + +The `compressors/` directory will look like this: + +``` +compressors/ +├─ benchmark.csv +├─ 0.zc +├─ 1.zc +├─ 2.zc +├─ ... +``` + +Opening up `benchmark.csv` will show the performance of each compressor as show below. + +``` +Algorithm, Compressor, Compression Ratio, Compression Speed MB/s, Decompression Speed MB/s + OpenZL, 0.zc, 3.44, 82.30, 859.41 + OpenZL, 1.zc, 3.44, 74.72, 890.28 + OpenZL, 2.zc, 3.41, 63.51, 995.84 + OpenZL, 3.zc, 3.37, 71.48, 1068.47 + OpenZL, 4.zc, 3.36, 79.40, 1086.73 + OpenZL, 5.zc, 3.36, 74.87, 1082.06 + OpenZL, 6.zc, 2.87, 91.93, 1360.87 + OpenZL, 7.zc, 2.87, 89.69, 1319.01 + OpenZL, 8.zc, 2.86, 87.85, 1301.64 + OpenZL, 9.zc, 2.17, 112.89, 781.85 + OpenZL, 10.zc, 2.17, 114.48, 772.73 + OpenZL, 11.zc, 2.16, 126.49, 862.90 + OpenZL, 12.zc, 2.16, 148.20, 891.53 + OpenZL, 13.zc, 2.16, 177.49, 877.77 + OpenZL, 14.zc, 1.53, 161.59, 1284.70 + OpenZL, 15.zc, 1.53, 155.75, 1193.33 + OpenZL, 16.zc, 1.53, 205.63, 1413.22 + OpenZL, 17.zc, 1.53, 199.96, 1480.62 + OpenZL, 18.zc, 1.53, 209.57, 1461.65 + OpenZL, 19.zc, 1.52, 268.06, 1301.43 + OpenZL, 20.zc, 1.52, 509.61, 724.33 + OpenZL, 21.zc, 1.52, 798.76, 1175.44 + OpenZL, 22.zc, 1.50, 111.81, 2087.11 + OpenZL, 23.zc, 1.45, 300.39, 2084.80 + OpenZL, 24.zc, 1.45, 229.43, 2124.02 + OpenZL, 25.zc, 1.42, 791.30, 2215.84 + OpenZL, 26.zc, 1.42, 832.52, 1507.42 + OpenZL, 27.zc, 1.42, 806.65, 1513.20 + OpenZL, 28.zc, 1.02, 1235.24, 1670.63 + OpenZL, 29.zc, 1.02, 2027.32, 3553.12 + OpenZL, 30.zc, 1.00, 2663.61, 3846.78 + OpenZL, 31.zc, 1.00, 1489.72, 5519.57 +``` + +At this point, you can pick the compressor from `benchmark.csv` with the tradeoff that fits your needs. + +??? note "Pruning" + Currently, the trainer produces too many compressors that have tradeoffs that are very close. + We are currently working on pruning the number of choices down. + ## Visualizing the Compression Graph + The compression graph is the ultimate driver of both compression and decompression. This example will give an intuitive understanding of the graph through a hands-on visualization. The graph is described in greater detail in [Introduction](introduction.md) and [Concepts](concepts.md). -Visualization uses the same record/report process that `perf` and other tracing tools uses. To capture a trace, add a `--trace` argument to a compression. -``` +Visualization uses the same record/report flow that `perf` and other tracing tools uses. First, to capture a trace, add a `--trace` argument to a compression: + +```sh ./zli compress sra0 --compressor sra0.zlc --output /dev/null --trace sra0.cbor ``` + This will write some lines to the console. Check for a successful trace + ``` Successfully wrote streamdump CBOR ``` + Then visit the [Trace Visualizer](https://facebook.github.io/openzl/tools/trace) and input the trace file (in the example, `sra0.cbor`). The visualization is fully interactive. More usage details are available via the help menu in the visualizer. + ??? note "Your data is private!" The visualizer is a static webpage. It does not access the network nor write any cookies. Your data will NOT be shared anywhere. - The code for this webpage is available [here](https://github.com/facebook/openzl/tree/dev/tools/visualization_app). + The code for this webpage is available [here](https://github.com/facebook/openzl/tree/release/tools/visualization_app). + ## Next steps -- Read the [Introduction](introduction.md) and [Concepts](concepts.md) pages to learn more about OpenZL -- Check out [more compiled tools](more-tools.md) -- Check out the [numeric_array](examples/c/numeric-array.md) example -- Check out the [how to use OpenZL](using-openzl.md) for getting started with custom compression -- Check out our [API Reference](../api/c/compressor.md) -- See our [PyTorch Model Compressor](https://github.com/facebook/openzl/blob/dev/custom_parsers/pytorch_model_compressor.cpp) for a complete production compressor. +- Read the [Introduction](introduction.md) and [Concepts](concepts.md) pages to learn more about OpenZL. +- Check out [more compiled tools](more-tools.md). +- Check out the [numeric_array](examples/c/numeric-array.md) example. +- Check out the [how to use OpenZL](using-openzl.md) for getting started with custom compression. +- Check out our [API Reference](../api/c/compressor.md). +- See our [PyTorch Model Compressor](https://github.com/facebook/openzl/blob/release/custom_parsers/pytorch_model_compressor.cpp) for an example of a complete production compressor. diff --git a/doc/mkdocs/doc/getting-started/using-openzl.md b/doc/mkdocs/doc/getting-started/using-openzl.md index 79f6a6b2b..41663e551 100644 --- a/doc/mkdocs/doc/getting-started/using-openzl.md +++ b/doc/mkdocs/doc/getting-started/using-openzl.md @@ -35,7 +35,8 @@ graph TD Most data formats can benefit from parsing although to different extents. Csv and json are both highly structured and repetitive and are representative examples as formats that benefit significantly from parsing correctly. On the other hand, html is structured but not repetitive and will therefore not benefit much from parsing. ### SDDL Compatibility -While SDDL has the capability to describe any data format, some formats are easier to describe. The following properties are: +While SDDL has the capability to describe any data format, some formats are easier to describe. Simpler formats have the following properties: + * No nested structures * No variably sized structures diff --git a/doc/mkdocs/doc/index.md b/doc/mkdocs/doc/index.md index cd76f72e9..e65e82c41 100644 --- a/doc/mkdocs/doc/index.md +++ b/doc/mkdocs/doc/index.md @@ -6,7 +6,7 @@ OpenZL takes a description of your data and builds from it a specialized compres OpenZL consists of a core library and tools to generate specialized compressors — all compatible with a single universal decompressor. -It is designed for data engineers that deal with large quantities of specialized datasets (like AI workloads for example) and require high speed for their processing pipelines. +It is designed for engineers that deal with large quantities of specialized datasets (like AI workloads for example) and require high speed for their processing pipelines. Here are some examples: diff --git a/doc/mkdocs/doc/sddl/conditional-fields.md b/doc/mkdocs/doc/sddl/conditional-fields.md new file mode 100644 index 000000000..7dae5335e --- /dev/null +++ b/doc/mkdocs/doc/sddl/conditional-fields.md @@ -0,0 +1,65 @@ +# Conditional Fields + +## Conditional Fields with `when` + +Use `when` blocks to conditionally include fields based on a runtime value: + +```sddl +record Entry(has_extras) { + id: UInt32LE, + value: Float64LE, + when has_extras == 1 { + extra1: UInt32LE, + extra2: UInt32LE + } +} +``` + +The `when` block is only executed (and its fields only consumed) if the condition evaluates to a non-zero value. + +### Block Form + +The currently supported syntax uses braces to group conditional fields: + +```sddl +when condition { + field1: Type1, + field2: Type2 +} +``` + +Multiple fields can appear inside a single `when` block. + +### Conditions + +Conditions can use any combination of variables, parameters, comparisons, and logical operators: + +```sddl +record FlexibleEntry(version, has_checksum) { + id: UInt32LE, + data: UInt16LE, + when version >= 2 { + extended_data: UInt32LE + } + when has_checksum { + checksum: UInt32LE + } +} +``` + +### Nesting + +`when` blocks can be nested: + +```sddl +when version >= 2 { + extended: UInt32LE, + when has_extras == 1 { + bonus: UInt16LE + } +} +``` + +### Important Restrictions + +- **Field references in conditions are not supported for member access.** You cannot reference fields consumed inside a `when` block from outside of it. diff --git a/doc/mkdocs/doc/sddl/core-concepts.md b/doc/mkdocs/doc/sddl/core-concepts.md new file mode 100644 index 000000000..c93b21acd --- /dev/null +++ b/doc/mkdocs/doc/sddl/core-concepts.md @@ -0,0 +1,201 @@ +# Core Concepts + +This page explains the SDDL language features supported by the SDDL2 compiler today. For a compact lookup table of all syntax, see the [Quick Reference](reference.md). + +## Primitive Types + +SDDL provides integer, float, and byte-sequence types. Every multi-byte type requires an explicit endianness suffix: `LE` for little-endian, `BE` for big-endian. Single-byte types (`Byte`, `Int8`, `UInt8`) don't need one. + +For the complete list of all supported types and their sizes, see the [type tables in the Quick Reference](reference.md#types). + +### Integers + +Integer fields produce values that can be used in expressions — arithmetic, comparisons, array lengths, and conditions: + +```sddl +count: UInt32LE +offset = count * 4 +expect offset <= 1024 +data: Byte[offset] +``` + +### Floats + +Float types (`Float32LE`, `Float64LE`, `BFloat16BE`, etc.) describe how the engine should segment binary data, but their values **cannot be used in expressions**. You cannot do arithmetic or comparisons with float fields — they are type descriptors only. + +```sddl +# OK: segmenting data as floats for better compression +coordinates: Float64LE[100] + +# NOT allowed: using a float value in an expression +# x: Float32LE +# expect x > 0.0 # Error — float values can't be used in expressions +``` + +### Byte Sequences + +`Bytes(n)` consumes exactly `n` bytes as raw (untyped) data. The argument can be a literal or a variable: + +```sddl +magic: Bytes(4) +name: Bytes(name_length) +``` + +## Records + +Records group related fields into a named structure. They are the primary way to describe the layout of binary data. + +### Basic Records + +```sddl +record Header() { + magic: UInt32LE, + version: UInt16LE, + flags: UInt16LE +} +``` + +- Declared with `record Name() { ... }` +- Fields are comma-separated `name: Type` pairs +- Empty parentheses `()` are required even with no parameters + +### Parameterized Records + +Records can accept parameters that control their structure. This lets you define a single record that adapts to different variants of a format: + +```sddl +record DataBlock(element_count) { + checksum: UInt32LE, + data: UInt16LE[element_count] +} + +header: Header +block: DataBlock(header.count) +``` + +Parameters can be used in array lengths, `when` conditions, and expressions within the record. When instantiating the record, you pass values (literals, variables, or field accesses) as arguments. + +### Nested Records + +Records can contain fields of other record types. Use dot notation to access nested fields: + +```sddl +record Point() { + x: Int16LE, + y: Int16LE +} + +record Sprite() { + id: UInt32LE, + position: Point +} + +sprite: Sprite +expect sprite.position.x >= 0 +``` + +Chained access works to any depth: `outer.middle.inner.field`. + +### Anonymous (Inline) Records + +When you need a one-off record structure without defining a named type, use an anonymous record: + +```sddl +: record() { + id: Int32LE, + val: Int32LE +} +``` + +This is useful for simple groupings where a named record would add unnecessary boilerplate. + +## Arrays + +### Fixed-Size Arrays + +Consume a type a specific number of times: + +```sddl +values: UInt32LE[100] +matrix: Float64LE[rows * cols] +``` + +The length can be a literal, a variable, or an arithmetic expression. + +### Auto-Sized Arrays + +Consume a type until the remaining input is exhausted: + +```sddl +entries: StarEntry[] +``` + +Auto-sized arrays must appear at the end of the description, since they consume all remaining bytes. + +## Variables and Expressions + +### Variable Assignment + +Variables are created in two ways: + +**From consumption** — the `:` operator reads data and stores the result: +```sddl +header: Header +``` + +**From expressions** — the `=` operator computes a value: +```sddl +total_size = header.width * header.height +num_rows = header.file_size / sizeof(Row) +``` + +Variables are **single-assignment** — once set, they cannot be reassigned. + +### Member Access + +Access fields of consumed records with dot notation: + +```sddl +header: Header +expect header.version == 1 +data: Byte[header.size] +``` + +Chained access works for nested records: `outer.inner.field`. + +### Operators + +SDDL supports arithmetic operators (`+`, `-`, `*`, `/`, `%`), unary negation (`-expr`), comparison operators (`==`, `!=`, `>`, `>=`, `<`, `<=`), and logical operators (`&&`, `||`, `!`). See the [operator tables in the Quick Reference](reference.md#operators) for the complete list. + +Use parentheses to control evaluation order: + +```sddl +row_bytes = 4 * ((width + 3) / 4) +``` + +## Built-in Functions + +SDDL provides two built-in functions: + +**`sizeof`** returns the size in bytes of a type. Only works on types with statically known sizes: + +```sddl +expect header.entry_size == sizeof(Row) +expect sizeof(StarEntry(STNUM, MPROP, NMAG)) == header.NBENT +``` + +**`abs()`** returns the absolute value of an integer expression: + +```sddl +count = abs(header.signed_count) +magnitudes: Int16LE[abs(NMAG)] +``` + +## Comments + +Single-line comments start with `#`: + +```sddl +# This is a comment +magic: UInt32LE # inline comment +``` diff --git a/doc/mkdocs/doc/sddl/examples.md b/doc/mkdocs/doc/sddl/examples.md new file mode 100644 index 000000000..ea66863d7 --- /dev/null +++ b/doc/mkdocs/doc/sddl/examples.md @@ -0,0 +1,23 @@ +# Examples + +Complete SDDL descriptions for real binary formats. + +## SAO Star Catalog (Simplified) + +The [Silesia compression corpus](https://sun.aei.polsl.pl/~sdeor/index.php?page=silesia) includes a file from the SAO (Smithsonian Astronomical Observatory) star catalog. This simplified description treats every entry as having the same fixed layout — 28 bytes of coordinates, spectral type, magnitude, and proper motion: + +```sddl +record StarEntry() { + SRA0: Float64LE, # Right Ascension (radians) + SDEC0: Float64LE, # Declination (radians) + ISP: Bytes(2), # Spectral type + MAG: Int16LE, # Magnitude + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion +} + +header: Byte[28] +stars: StarEntry[] +``` + +This works well when the file uses a single fixed entry format. For the full SAO format with variable-layout entries, see the [Getting Started](getting-started.md#making-it-flexible) guide. diff --git a/doc/mkdocs/doc/sddl/getting-started.md b/doc/mkdocs/doc/sddl/getting-started.md new file mode 100644 index 000000000..62704be81 --- /dev/null +++ b/doc/mkdocs/doc/sddl/getting-started.md @@ -0,0 +1,208 @@ +# Getting Started with SDDL + +This guide walks you through writing your first SDDL description, building up from a minimal example to a complete real-world format. + +## What is SDDL? + +SDDL (Simple Data Description Language) lets you describe binary file formats so that OpenZL can efficiently decompose them into typed streams for compression. You write a description of your format, the SDDL compiler translates it to bytecode, and the SDDL engine uses that bytecode to parse and split your data. + +Instead of treating a file as an opaque blob of bytes, SDDL lets you tell the compressor "these 8 bytes are a double-precision float, these 4 bytes are an unsigned integer, ..." — so it can group similar data together and compress it more effectively. + +## Your First Description + +The simplest useful description is a single field consumption: + +```sddl +: Byte[] +``` + +This consumes the entire input as an array of bytes. Let's break this down: + +- `:` is the **consumption operator** — it reads bytes from the input and associates them with a type +- `Byte` is a single-byte type +- `[]` makes it an **auto-sized array** — it repeats until all input is consumed + +This doesn't do anything useful for compression (it's equivalent to treating the file as raw bytes), but it shows the basic mechanics. + +## Adding Structure + +We'll use a real format for the rest of this guide: the [SAO Star Catalog](http://tdc-www.harvard.edu/software/catalogs/catalogsb.html), which stores astronomical data as a flat array of fixed-size records. + +Each star entry is 28 bytes containing coordinates, spectral type, magnitude, and proper motion: + +```sddl +record StarEntry() { + SRA0: Float64LE, # Right Ascension (radians, 8 bytes) + SDEC0: Float64LE, # Declination (radians, 8 bytes) + ISP: Bytes(2), # Spectral type (2 bytes) + MAG: Int16LE, # Magnitude (2 bytes) + XRPM: Float32LE, # R.A. proper motion (4 bytes) + XDPM: Float32LE # Dec. proper motion (4 bytes) +} +``` + +Key points: + +- **Records** are declared with `record Name() { ... }` and group related fields +- Fields use `name: Type` syntax, separated by commas +- **Endianness is always explicit** — `Float64LE` means 64-bit little-endian float, `Int16LE` means 16-bit little-endian signed integer +- `Bytes(n)` consumes exactly `n` bytes as raw (untyped) data +- Comments start with `#` + +## Describing the File + +The SAO file has a 28-byte header followed by star entries. For now, let's skip the header and just describe the repeating entries: + +```sddl +record StarEntry() { + SRA0: Float64LE, + SDEC0: Float64LE, + ISP: Bytes(2), + MAG: Int16LE, + XRPM: Float32LE, + XDPM: Float32LE +} + +header: Byte[28] +stars: StarEntry[] +``` + +- `header: Byte[28]` consumes 28 bytes and stores the result in a variable called `header` +- `stars: StarEntry[]` consumes the remaining input as an auto-sized array of `StarEntry` records — the engine calculates how many entries fit in the remaining bytes + +This is already a working description — you could use it to compress the SAO file right now. But we can do better by parsing the header properly. + +## Parsing the Header + +Instead of treating the header as raw bytes, let's define its structure: + +```sddl +record CatalogHeader() { + STAR0: Int32LE, # Subtract from star number to get sequence number + STAR1: Int32LE, # First star number in file + STARN: Int32LE, # Number of stars in the file + STNUM: Int32LE, # Star numbering scheme + MPROP: Int32LE, # Proper motion info: 0=none, 1=included, 2=with velocity + NMAG: Int32LE, # Number of magnitude values per star + NBENT: Int32LE # Bytes per star entry +} + +record StarEntry() { + SRA0: Float64LE, + SDEC0: Float64LE, + ISP: Bytes(2), + MAG: Int16LE, + XRPM: Float32LE, + XDPM: Float32LE +} + +header: CatalogHeader +stars: StarEntry[] +``` + +Now `header` is a structured variable. We can access its fields with **dot notation** — for example, `header.STARN` gives us the number of stars. + +## Adding Validation + +The `expect` statement lets you validate format constraints at parse time. If a condition is false, parsing fails with an error — catching corrupt or misidentified files early: + +```sddl +header: CatalogHeader + +# Verify the entry size matches what we expect +expect header.NBENT == sizeof(StarEntry) + +stars: StarEntry[] +``` + +- `sizeof` returns the size in bytes of a type (only works on types with statically known sizes) +- If the header says entries are a different size than our `StarEntry` definition, something is wrong — `expect` catches this immediately + +## Making It Flexible + +The simplified description above assumes every star entry has the same fixed layout. But the full SAO format is more complex: depending on header flags, entries can include optional fields like catalog numbers, magnitude arrays, proper motion, radial velocity, and object names. + +SDDL handles this with **parameterized records** and **conditional fields**: + +```sddl +record CatalogHeader() { + STAR0: Int32LE, # Subtract from star number to get sequence number + STAR1: Int32LE, # First star number in file + STARN: Int32LE, # Number of stars; <0 → coordinates J2000 + STNUM: Int32LE, # ID scheme / name flag + MPROP: Int32LE, # Motion info: 0=none, 1=proper, 2=radial + NMAG: Int32LE, # Number of magnitudes (0–10) + NBENT: Int32LE # Bytes per star entry +} + +record StarEntry(STNUM, MPROP, NMAG) { + when STNUM > 0 { XNO: Float32LE }, # Catalog number + SRA0: Float64LE, # Right Ascension + SDEC0: Float64LE, # Declination + ISP: Bytes(2), # Spectral type + when abs(NMAG) > 0 { MAG: Int16LE[abs(NMAG)] }, # Magnitudes + when MPROP >= 1 { + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion + }, + when MPROP == 2 { SVEL: Float64LE }, # Radial velocity + when STNUM < 0 { NAME: Bytes(-STNUM) } # Object name +} + +# File structure +header: CatalogHeader + +# Parse the header to get the number of stars and entry parameters +STNUM = header.STNUM +MPROP = header.MPROP +NMAG = header.NMAG +NBENT = header.NBENT +record_count = abs(header.STARN) + +expect sizeof(StarEntry(STNUM, MPROP, NMAG)) == NBENT + +stars: StarEntry(STNUM, MPROP, NMAG)[record_count] +``` + +This description handles the full SAO format — both B1950 and J2000 coordinate systems, variable magnitude counts, optional motion data, and optional object names. Here's what's new: + +- **Parameterized records**: `Record StarEntry(STNUM, MPROP, NMAG)` accepts parameters that control which fields are included +- **`when` blocks**: `when STNUM >= 0 { ... }` conditionally includes fields based on a runtime value +- **Variable assignment**: `record_count = abs(header.STARN)` computes a value from an expression +- **`abs()`**: Built-in function returning the absolute value of an integer +- **`sizeof` with parameters**: `sizeof(StarEntry(...))` computes the size of a parameterized record with specific arguments +- **Computed array length**: `StarEntry(...)[record_count]` uses a variable as the array size + +## Running Your Description + +### Using the CLI Profile + +```sh +./zli compress --profile sddl2 --profile-arg desc.sddl --train-inline my_input -o my_input.zl +``` + +### Training Once, Compressing Many + +```sh +./zli train --profile sddl2 --profile-arg desc.sddl input_dir/ -o trained.zlc + +for f in $(ls input_dir/); do + ./zli compress --compressor trained.zlc input_dir/$f -o output_dir/$f.zl +done +``` + +## Syntax Highlighting + +SDDL files use the `.sddl` extension. For the best editing experience, syntax highlighting is available for VS Code. + +### VS Code + +The OpenZL repository includes a VS Code extension for SDDL syntax highlighting. See `contrib/sddl-syntax-highlighting/README.md` for installation instructions. + +## Next Steps + +- [Core Concepts](core-concepts.md) — detailed explanation of types, records, arrays, variables, and expressions +- [Conditional Fields](conditional-fields.md) — `when` blocks in depth +- [Validation](validation.md) — `expect` statements +- [Examples](examples.md) — more complete format descriptions +- [Quick Reference](reference.md) — all supported syntax at a glance diff --git a/doc/mkdocs/doc/sddl/index.md b/doc/mkdocs/doc/sddl/index.md new file mode 100644 index 000000000..4626edf03 --- /dev/null +++ b/doc/mkdocs/doc/sddl/index.md @@ -0,0 +1,27 @@ +# SDDL — Simple Data Description Language + +SDDL is a domain-specific language for describing binary file formats. It enables you to formally specify the structure of binary data so it can be efficiently processed by compression algorithms, transformation tools, and other downstream systems. + +## Documentation Sections + +### [Current Language](getting-started.md) + +Documentation for the **currently supported** SDDL syntax — what you can use today with the SDDL2 compiler. Start here if you want to write SDDL descriptions that work now. + +- [Getting Started](getting-started.md) — Your first SDDL description +- [Core Concepts](core-concepts.md) — Types, records, arrays, variables, and expressions +- [Conditional Fields](conditional-fields.md) — `when` blocks +- [Validation](validation.md) — `expect` statements +- [Examples](examples.md) — Complete format descriptions +- [Quick Reference](reference.md) — Supported syntax at a glance + +### [North Star (v0.6)](north-star/index.md) + +The **target specification** for SDDL — the full language design we're building toward. This includes features that are not yet implemented. + +- [Full Documentation](north-star/index.md) +- [SDDL for LLMs](north-star/sddl-for-llm.md) — Complete v0.6 spec optimized for AI assistants + +### [Legacy (SDDL1)](legacy/index.md) + +Documentation for the **original SDDL language** (v1), which uses a different syntax and compiles to a CBOR-based runtime. This version is deprecated in favor of SDDL2. diff --git a/doc/mkdocs/doc/sddl/legacy/index.md b/doc/mkdocs/doc/sddl/legacy/index.md new file mode 100644 index 000000000..8eac44026 --- /dev/null +++ b/doc/mkdocs/doc/sddl/legacy/index.md @@ -0,0 +1,9 @@ +# SDDL1 — Legacy Language + +!!! warning "Deprecated" + + This section documents the **original SDDL language** (v1), which uses a CBOR-based compiled representation and a different runtime engine. SDDL1 is deprecated in favor of the [current SDDL2 language](../getting-started.md). + + New projects should use the current SDDL2 syntax. For the full planned feature set, see the [North Star (v0.6)](../north-star/index.md) specification. + +--8<-- "src/include/openzl/codecs/zl_sddl.md" diff --git a/doc/mkdocs/doc/sddl/north-star/alignment-padding.md b/doc/mkdocs/doc/sddl/north-star/alignment-padding.md new file mode 100644 index 000000000..05414bd39 --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/alignment-padding.md @@ -0,0 +1,281 @@ +# Alignment and Padding + +*Chapter 6 - Explicit control of memory layout* + +Binary formats often require precise alignment rules and padding. This chapter covers SDDL's constructs for controlling layout at the field and record level: field alignment with `align(n)`, record padding with `pad_to` and `pad_align`. + +For a foundational overview of SDDL language elements like records, types, and modifiers, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## Record Padding + +SDDL provides two directives for controlling the total size of a record. + +### `pad_to n` - Exact Size + +`pad_to n` enforces that a record is exactly `n` bytes. If the record's natural size is less than `n`, padding is added. If it's greater, the compiler reports a format error. + +```sddl +record Header() { + magic: Bytes(4), + version: UInt16LE, + flags: UInt16LE +} pad_to 16 +``` + +This `Header` is exactly 16 bytes. The natural size is 8 bytes, so 8 bytes of padding are added. + +!!! danger "Format error example" + ```sddl + record TooBig() { + data: Bytes(20) + } pad_to 16 # ERROR: Record is 20 bytes, cannot pad to 16 + ``` + +### `pad_align n` - Round to Multiple + +`pad_align n` rounds the record size up to the next multiple of `n` bytes. + +```sddl +record Scanline(width) { + pixels: UInt8[width] +} pad_align 4 +``` + +If `width` is 10, the natural size is 10 bytes. With `pad_align 4`, the record becomes 12 bytes (the next multiple of 4). + +### Combining `pad_to` and `pad_align` + +When both are present, `pad_to` is applied first, then `pad_align`: + +```sddl +record Block(datasize, blocksize) { + data: Bytes(datasize) +} pad_to blocksize pad_align 8 +``` + +This ensures the record is at least blocksize bytes, then rounds up to the next multiple of 8. +For example, if `blocksize` is 50: + +1. `pad_to blocksize` makes it 50 bytes +2. `pad_align 8` rounds 50 up to 56 bytes (next multiple of 8) + +### Parameterized Padding + +Padding values can be parameters: + +```sddl +record Container(min_size, align_to) { + header: Bytes(16), + payload: Bytes(100) +} pad_to min_size pad_align align_to +``` + +The padding depends on parameters passed when the record is instantiated. This maintains instant-parse status. + +### Understanding Padding Bytes + +Padding bytes are "don't care" values. SDDL doesn't specify what they contain, just that they exist: + +```sddl +record Padded() { + value: UInt32LE +} pad_to 16 +``` + +The defined record Padded is 16 bytes: the padding bytes are included in the record size. + +--- + +## Practical Examples + +### Example 1: Hardware-Aligned Structure + +```sddl +# Structure matching hardware expectations +record DeviceRegister() { + control: UInt32LE, + _: Bytes(4), # Explicit padding + address: align(8) UInt64LE, # 8-byte aligned pointer + data: align(16) Bytes(16) # 16-byte aligned data block +} +``` + +This describes a structure where hardware requires specific alignment for direct memory access. + +### Example 2: Fixed-Size Records + +```sddl +# Database records, all exactly 256 bytes +record DatabaseRecord() { + id: UInt64LE, + name: Bytes(64), + email: Bytes(128), + created: Int64LE, + flags: UInt32LE +} pad_to 256 +``` + +The natural size is 8+64+128+8+4 = 212 bytes. `pad_to 256` adds 44 bytes of padding to make each record exactly 256 bytes. + +### Example 3: Cache-Line Aligned Records + +```sddl +# Each record aligned to 64-byte cache line +record CacheOptimized() { + hot_data: Bytes(32), # Frequently accessed data + cold_data: Bytes(16) # Less frequently accessed +} pad_align 64 +``` + +The natural size is 48 bytes. `pad_align 64` rounds up to 64 bytes, ensuring each record fits in one cache line. + +### Example 4: Format with Variable Header + +```sddl +record File(header_size) { + header_data: Bytes(header_size) +} pad_to header_size pad_align 512 + +size: UInt16LE +file_header: File(size) +``` + +The header is at least `header_size` bytes, rounded up to a 512-byte boundary (common disk sector size). + +### Example 5: Array with Padding + +```sddl +record Entry() { + timestamp: Int64LE, + value: Float32LE +} pad_align 16 + +entries: Entry[1000] +``` + +Each entry is 12 bytes naturally (8+4), but `pad_align 16` makes each 16 bytes. The array has consistent 16-byte elements with 4 bytes of padding each. + +--- + +## Field Alignment with `align(n)` + +The `align(n)` modifier specifies that a field must start at an address that is +a multiple of `n` bytes relative to the beginning of its enclosing scope (file or record). +Only power of 2 values are allowed for `n` (1, 2, 4, 8, 16, etc). + +Unlike `pad_to` and `pad_align` which add padding bytes to a record's total size, +the `align(n)` modifier inserts padding *between* fields without affecting the +aligned field's own size. A field declared as `value: align(8) Int64LE` is still +8 bytes; any alignment padding comes before it but is not part of the field itself +(padding becomes part of the enclosing context). + +Note that, consequently, the first field in a record is always aligned, since it +stands at position 0 relative to its enclosing scope. If you want to enforce an +alignment requirement for an entire record when it's embedded in other structures, +see "Record Alignment" below. + +### Basic Syntax + +```sddl +record Data() { + flags: UInt8, + value: align(8) Int64LE # Starts at 8-byte boundary, relative to beginning of Data +} +``` + +If `flags` ends at byte 1, the `value` field will start at byte 8 (the next 8-byte boundary), leaving 7 bytes of padding between them. The padding bytes are part of `Data`, not `value` nor `flags`. + +### Common Alignment Values + +- `align(4)` - 4-byte alignment (common for 32-bit integers) +- `align(8)` - 8-byte alignment (common for 64-bit integers and doubles) +- `align(16)` - 16-byte alignment (SIMD register size) +- `align(64)` - 64-byte alignment (cache line size on many systems) + +### Field Alignment in Records + +```sddl +record Header() { + magic: Bytes(4), + version: UInt16LE, + _: Bytes(2), # Explicit padding to 8 bytes + timestamp: align(8) Int64LE, # Aligned 64-bit value + checksum: UInt32LE +} +``` + +The `align(8)` ensures `timestamp` starts at an 8-byte boundary, relative to the beginning of its enclosing scope, regardless of what precedes it. + +### Field Alignment in Arrays + +When a type has alignment requirements, arrays of that type include inter-element padding: + +```sddl +record Entry() { + id: UInt8, + value: align(8) Float64LE +} + +entries: Entry[100] +``` + +Each `Entry` in the array will have padding after `id` to ensure `value` is 8-byte aligned. This padding is repeated for every element. + +### Field Alignment and Instant-Parse + +Alignment arguments must be constant or parameter-based for instant-parse: + +```sddl +record Data(align_width) { + header: Bytes(10), + payload: align(align_width) Bytes(100) # OK: depends on parameter +} @instant_parse +``` + +If a local field must be read to determine alignment, it breaks instant-parse property of its enclosing scope: + +!!! warning "Breaks instant-parse" + ```sddl + record Data() { + align_req: UInt8, + payload: align(align_req) Bytes(100) + } + ``` + This would error if `@instant_parse` was specified because alignment depends on a parsed field. + +--- + +## Record Alignment + +Alignment can be specified at Record level: + +```sddl +record FAligned8() align(8) { + value: Float64LE +} +``` + +Any field later defined using this Record definition will automatically be aligned to 8 bytes (relative to the beginning of its enclosing scope). + +```sddl +record someRecord() { + flag: UInt8, + value: FAligned8, # Automatically aligned to 8 bytes, relative to beginning of someRecord +} +``` + +--- + +## Summary + +Use `align(n)` when individual fields must start on a boundary, `pad_to n` when an entire record must have an exact size, and `pad_align n` when you need to round record sizes up to a multiple. `pad_to` executes before `pad_align`, and both accept parameters so layouts remain instant-parse. Padding bytes are always “don’t care” values; alignment and padding propagate into nested records, and any dependency on local fields makes the construct require scanning. + +--- + +## Where to Go Next + +- **[Conditional & Variant Data](conditional-variant.md)** if alignment depends on optional fields. +- **[Variables and Expressions](variables-expressions.md)** to compute padding lengths with expressions. +- **[Real-World Formats](real-formats.md)** for alignment and padding in context. diff --git a/doc/mkdocs/doc/sddl/north-star/arrays-collections.md b/doc/mkdocs/doc/sddl/north-star/arrays-collections.md new file mode 100644 index 000000000..d8269f9b9 --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/arrays-collections.md @@ -0,0 +1,655 @@ +# Arrays and Collections + +*Chapter 5 - Working with repeated data* + +Arrays are fundamental to binary format descriptions. Most real-world formats contain sequences of repeated structures—pixels in images, samples in audio, records in databases. This chapter explores how SDDL handles arrays, from simple fixed-size collections to complex structure-of-arrays layouts. + +For a high-level overview of how arrays fit into SDDL's overall syntax, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +Because arrays repeat the same type many times, they amplify whatever instant-parse behavior that type has. An element that takes a small scan penalty once will take it thousands of times inside an array. The previous chapter's instant-parse rules are the lens through which we evaluate array performance. For concrete specs that use these layouts, see the coverage map entries for [fixed arrays](real-formats.md#coverage-arrays-fixed), [parameterized arrays](real-formats.md#coverage-arrays-parameter), and [auto-sized arrays](real-formats.md#coverage-arrays-auto); a future row tracks the pending example for [`scan`-based arrays](real-formats.md#coverage-scan). + +--- + +## Fixed-Size Arrays + +A common array form specifies an exact element count. + +### Basic Syntax + +```sddl +values: Int32LE[100] # Exactly 100 integers +pixels: UInt8[1920][1080] # 2D array: 1920 × 1080 pixels +colors: RGB[256] # 256 RGB color entries +``` + +The number in brackets specifies how many elements to parse. This can be: + +- **A literal constant:** `Int32LE[100]` +- **A parameter:** `Int32LE[count]` where `count` is a record parameter +- **A variable:** `Int32LE[num_items]` where `num_items` was defined with `var` +- **An expression:** `Int32LE[width * height]` + +### Multi-Dimensional Arrays + +SDDL supports multi-dimensional arrays with multiple bracket pairs: + +```sddl +record Image(width, height, channels) { + pixels: UInt8[height][width][channels] +} +``` + +Layout is row-major: the rightmost index varies fastest. In the example above, the three channel values for pixel (0,0) come first, followed by channels for pixel (0,1), and so on. + +### Arrays of Records + +Arrays work with any type, including records: + +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} + +record PointCloud(num_points) { + points: Point[num_points] +} + +count: UInt32LE +cloud: PointCloud(count) +``` + +This creates an array of `Point` structures laid out sequentially in memory. + +### Parameterized Element Types + +Array elements can themselves be parameterized: + +```sddl +record Block(size) { + header: Bytes(4), + data: Bytes(size - 4) +} + +record FileData(block_size, block_count) { + blocks: Block(block_size)[block_count] +} +``` + +Each `Block` in the array uses the same `block_size` parameter. + +--- + +## Auto-Sized Arrays + +When the array size is not known nor declared in advance, one can use auto-sized arrays. + +### Reading Until End of Scope + +An array without a size specification repeats until there's no more data: + +```sddl +record Entry() { + id: Int32LE, + value: Float64LE +} + +entries: Entry[] # Read Entry records until end of file +``` + +This consumes all remaining data in the current scope, parsing `Entry` structures repeatedly. +Within a scope, only a single array can be auto-sized. + +### What Is "Scope"? + +Scope depends on context: + +- **At the top level:** End of file +- **Inside a record with known size:** End of the record's data + +Example with explicit scope: + +```sddl +record Container(payload_size) { + header: Bytes(16), + entries: Entry[] # Reads until payload_size is exhausted +} pad_to payload_size +``` + +If the auto-sized array is not the last member of the scope, all following members in the same scope must be instant-parse, and all elements required to determine their size must be known before the array. + +### Partial Elements and Leftover Data + +What happens when the remaining data in scope isn't evenly divisible by the element size? The behavior depends on the enclosing scope. + +**File Scope (or Non-Padded Record Scope)** + +When an auto-sized array appears at file level, **all remaining data must form complete elements**. Leftover bytes that don't constitute a full element cause a parse error. + +```sddl +record Point() { + x: Float32LE, # 4 bytes + y: Float32LE, # 4 bytes + z: Float32LE # 4 bytes +} + +points: Point[] # Each Point is 12 bytes +``` + +If the file contains 100 bytes: +- **96 bytes = 8 complete points**: ✓ Valid +- **100 bytes = 8 complete points + 4 leftover bytes**: ✗ Parse error + +The 4 leftover bytes are insufficient to form a complete `Point` structure. + +**Padded Record Scope** + +When an auto-sized array appears within a record that uses `pad_to` or `pad_align`, leftover bytes are **allowed and treated as padding**. + +```sddl +record Container(payload_size) { + header: Bytes(16), + entries: Entry[] # Auto-sized array +} pad_to payload_size +``` + +If `payload_size` is 100 and `Entry` is 12 bytes: +- The `header` consumes 16 bytes +- Remaining space: 84 bytes +- 84 ÷ 12 = 7 complete entries (84 bytes used) +- **Leftover: 0 bytes** (padding not needed in this case) + +If `payload_size` is 104: +- The `header` consumes 16 bytes +- Remaining space: 88 bytes +- 88 ÷ 12 = 7 complete entries (84 bytes used) +- **Leftover: 4 bytes** ✓ Valid (treated as padding) + +This allows the `Container` to meet its `pad_to` size requirement while the array consumes only complete elements. + + +### Combining Fixed and Auto-Sized Dimensions + +You can mix fixed and auto-sized dimensions: + +```sddl +record Scanline(width) { + pixels: RGB[width] +} + +# Read scanlines until end of data +# Each scanline has a fixed width +image: Scanline(1920)[] +``` + +The first dimension is auto-sized (unknown number of scanlines), the second is fixed (exactly 1920 pixels per scanline). + +### The `scan` Keyword + +When array elements require scanning (they're not instant-parse), you must use the `scan` keyword: + +```sddl +record VariableEntry() { + size: UInt16LE, + data: Bytes(size) # Size depends on local field: requires scan +} + +# Must use 'scan' because VariableEntry requires scanning +entries: scan VariableEntry[] +``` + +The `scan` keyword makes the scanning requirement explicit. If you forget it, the compiler will remind you with an error. + +### When Auto-Sized Arrays Make Sense + +Auto-sized arrays are useful when: +- The format doesn't store a count +- You're parsing a stream of unknown length +- The file format is "records until EOF" +- You want to consume all remaining data + +--- + +## Arrays and Instant-Parse + +Whether an array is instant-parse depends on its element type and size specification. + +### Instant-Parse Arrays + +An array is instant-parse when: +- Its element type is instant-parse +- Its size depends only on parameters or constants + +```sddl +record Grid(width, height) { + cells: Cell[height][width] +} @instant_parse +``` + +If `Cell` is instant-parse and `width`/`height` are parameters, the entire `Grid` is instant-parse. + +### Non-Instant-Parse Arrays + +Arrays become non-instant-parse when: +- The element type requires scanning +- The size depends on local fields + +```sddl +record Data() { + count: UInt32LE, + values: Int32LE[count] # Size depends on local field +} +``` + +This `Data` record is not instant-parse because `count` is a local field, not a parameter. +Note that `Data.values` itself is an instant-parse array, since `Int32LE` is instant-parse. + +--- + +## Array Layout and Alignment + +### Default Layout + +Arrays are laid out with elements immediately following each other, with no padding between elements. + +```sddl +values: Int32LE[100] # 400 bytes: 100 × 4 bytes, no padding +``` + +### Aligned Elements + +If the element type has alignment requirements, padding may appear between elements: + +```sddl +record Aligned() { + value: UInt8, + important: align(8) Int64LE # Must start at 8-byte boundary +} + +records: Aligned[100] +``` + +Each `Aligned` record may include padding after `value` to ensure `important` starts at an 8-byte boundary. The array will include padding between elements to maintain alignment. + +### Record Padding + +Records with `pad_align` or `pad_to` affect array layout: + +```sddl +record Padded() { + data: Bytes(10) +} pad_align 16 # Each record is a multiple of 16 bytes + +records: Padded[50] # Each record occupies 16 bytes (10 data + 6 padding) +``` + +The padding ensures consistent element sizes, which can improve cache performance. + +--- + +## Working with Arrays: Common Patterns + +### Pattern 1: Count-Prefixed Array + +The most common array pattern: a count field followed by that many elements. + +```sddl +record Item() { + id: Int32LE, + value: Float32LE +} + +count: UInt32LE +items: Item[count] +``` + +### Pattern 2: Type-Specific Arrays + +Different array types based on a flag or version: + +```sddl +record Header() { + version: UInt16LE, + count: UInt32LE +} + +header: Header + +when header.version == 1 { data_v1: DataV1[header.count] } +when header.version == 2 { data_v2: DataV2[header.count] } +``` + +### Pattern 3: Nested Arrays + +Arrays of arrays for grid or matrix data: + +```sddl +record Row(width) { + cells: Cell[width] +} + +record Grid(width, height) { + rows: Row(width)[height] +} +``` + +### Pattern 4: Chunked Data + +Split data into fixed-size chunks: + +```sddl +record Chunk() { + data: Bytes(4096) +} + +num_chunks: UInt32LE +chunks: Chunk[num_chunks] +``` + +Each chunk is exactly 4096 bytes, making the data easy to process in blocks. + +### Pattern 5: Mixed Fixed and Variable + +Combine fixed-size headers with variable-size payloads: + +```sddl +record PacketHeader() { + id: UInt32LE, + payload_size: UInt16LE, + flags: UInt16LE +} + +record Packet() { + header: PacketHeader, + payload: Bytes(header.payload_size) +} + +packets: scan Packet[] # Variable-size packets until end of file +``` + +--- + +## Structure-of-Arrays Layout + +By default, arrays store elements sequentially: all fields of element 0, then all fields of element 1, and so on. This is called array-of-structures (AOS). + +### Array-of-Structures (Default) + +```sddl +record Particle() { + x: Float32LE, + y: Float32LE, + z: Float32LE, + vx: Float32LE, + vy: Float32LE, + vz: Float32LE +} + +particles: Particle[1000] +``` + +**Memory layout:** +``` +x0 y0 z0 vx0 vy0 vz0 | x1 y1 z1 vx1 vy1 vz1 | x2 y2 z2 vx2 vy2 vz2 | ... +``` + +Each particle's data is contiguous. + +### Structure-of-Arrays with `soa` + +Some binary formats store data in structure-of-arrays (SOA) layout. + +```sddl +record Particle() { + x: Float32LE, + y: Float32LE, + z: Float32LE, + vx: Float32LE, + vy: Float32LE, + vz: Float32LE +} + +particles: soa Particle[1000] +``` + +**Memory layout:** +``` +x0 x1 x2 ... x999 | y0 y1 y2 ... y999 | z0 z1 z2 ... z999 | vx0 vx1 ... | vy0 vy1 ... | vz0 vz1 ... +``` + +All `x` values are contiguous, then all `y` values, and so on. + +**Alternative description:** You could describe this same layout as six separate arrays: + +```sddl +x_values: Float32LE[1000], +y_values: Float32LE[1000], +z_values: Float32LE[1000], +vx_values: Float32LE[1000], +vy_values: Float32LE[1000], +vz_values: Float32LE[1000] +``` + +**Why use `soa` instead:** Using `soa Particle[1000]` is clearer because: + +* It makes explicit that these six arrays represent 1000 particles (semantic relationship) +* It ensures all arrays have the same count (enforced by the format) +* It's compatible with auto-sizing: `soa Particle[]` reads until end of scope + +### SOA and Nested Records + +SOA layout only unwraps the first level of fields. If a field is itself a record, +it remains in array-of-structures (AOS) layout: + +```sddl +record Color() { + r: UInt8, + g: UInt8, + b: UInt8 +} + +record Pixel() { + position: Int16LE, + color: Color # Nested record +} + +pixels: soa Pixel[100] +``` + +**Layout**: + +``` +pos0 pos1 ... pos99 | (r0 g0 b0) (r1 g1 b1) ... (r99 g99 b99) + └────── Color stays AOS ──────┘ +``` + +This creates 2 arrays: one for `position` fields, one for `color` structures (each color structure contains r, g, b in sequence). + +### SOA and Array Members + +If a record field is itself a fixed-size array, it remains as a contiguous block: + +```sddl +record Item() { + id: UInt32LE, + values: Float32LE[3] # Fixed-size array member +} + +items: soa Item[100] +``` + +**Layout:** + +``` +id0 id1 ... id99 | (v0 v1 v2)₀ (v0 v1 v2)₁ ... (v0 v1 v2)₉₉ +``` + +This creates 2 arrays: one for `id` fields, one for `values` triplets. + + +### `soa` Requirements + +The element type must be structured so that each field's size and layout can be +determined from fields that appear earlier in the record definition. This ensures +the SOA layout can be parsed field-array by field-array. + +Simple instant-parse records (all fixed-size fields) always satisfy this requirement: + +```sddl +record Point(dimension) { + coords: Float32LE[dimension] +} + +points: soa Point(3)[1000] # OK: instant-parse, simple structure +``` + +Records with variable-size fields work if dependencies follow field order: + +```sddl +record VariableItem() { + size: UInt16LE, # Array 0 + data: Bytes(size) # Array 1: depends on earlier field +} + +items: soa VariableItem[100] # OK: size array determines data array layout +``` + +### `soa` Limitations + +You can combine `soa` with auto-sizing **only if** the array is instant-parse: + +```sddl +measurements: soa Measurement[] # Read until end of scope +``` + +Auto-sized SOA requires the element type to be instant-parse (all fields must have statically-known sizes). This is because the parser needs to calculate the element count from the remaining bytes, which is only possible when each element has a fixed, known size. + +--- + +## Practical Examples + +### Example 1: Time Series Data + +```sddl +record TimePoint() { + timestamp: Int64LE, + temperature: Float32LE, + humidity: Float32LE, + pressure: Float32LE +} + +count: UInt32LE + +# SOA: all timestamps together, all temperatures together, etc. +measurements: soa TimePoint[count] +``` + +### Example 2: Custom Image Format + +In this custom example, we'll imagine a format where each color plane, named a channel, is stored separately and contiguously, in SOA layout. + +```sddl +record ImageHeader() { + magic: Bytes(4), + width: UInt32LE, + height: UInt32LE, + channels: UInt8, +} pad_align 4 + +Union Pixel(channels) = { + case 1: gray: UInt8, + case 3: record() { + r: UInt8, + g: UInt8, + b: UInt8 + }, + case 4: record() { + r: UInt8, + g: UInt8, + b: UInt8, + a: UInt8 + } +} + +header: ImageHeader where header.magic == "IMGF" + +# This format uses structure-of-2D-arrays layout +pixels: soa Pixel(header.channels)[header.height][header.width] +``` + +**Note:** The anonymous `Record() { ... }` syntax means the fields (`r`, `g`, `b`, `a`) become direct members of `Pixel`, not nested under a named field. When `channels == 3`, a `Pixel` has three direct fields: `r`, `g`, and `b`. This is essential for SOA to work— `soa Pixel[n]` creates three separate arrays (one for each color channel), not a single nested structure array. + +Then, `soa` layout specifies that all red channel values are together, all green together, etc. + +### Example 3: Mixed-Format Records + +```sddl +record RecordHeader() { + type: UInt8, + size: UInt16LE +} + +record TextRecord(size) { + text: Bytes(size) +} + +record BinaryRecord(size) align(4) { + expect size % 4 == 0 + data: Bytes(size) +} + +# Variable-size, type-dispatched records +record Block(type, size) { + header: BlockHeader, + when header.type == 1 { text: TextRecord(header.size) }, + when header.type == 2 { binary: BinaryRecord(header.size) } +} + +records: scan GenericRecord[] +``` + +--- + +## Performance Considerations + +### Instant-Parse vs Scan Performance + +Instant-parse arrays can be parsed much faster: + +```sddl +# Fast: instant-parse +record Fixed(size) { + data: Bytes(size) +} +count: UInt32LE +fixed: Fixed(100)[count] # Size known from parameter +``` + +```sddl +# Slower: requires scan +record Variable() { + size: UInt16LE, + data: Bytes(size) # Size from local field +} +count: UInt32LE +variable: scan Variable[count] +``` + +The first example allows parallel processing and zero-copy optimizations. The second requires sequential scanning. + +This difference compounds with scale. If `Variable` appears once, the scan cost is small. If it appears 50,000 times in an array, the runtime must evaluate `size` 50,000 times and cannot jump directly to record `i` without walking through the previous `i - 1` records. For compressors and other downstream tools, that means lower throughput and weaker opportunities for parallelism. + +--- + +## Summary + +Arrays cover a few different patterns: fixed counts (`Type[count]`), parameterized counts that remain instant-parse, auto-sized arrays (`Type[]`) that read to the end of scope, and structure-of-arrays layouts (`soa Type[count]`). Auto-sized arrays require `scan` when element sizes depend on parsed data, while instant-parse arrays can be processed randomly or in parallel. Choose the form that matches the source format: constants or parameters when you know the length up front, auto-sized arrays when the file omits counts, and `soa` when downstream tooling benefits from field-wise storage. + +--- + +## Where to Go Next + +- **[Alignment and Padding](alignment-padding.md)** for padding directives that interact with arrays. +- **[Conditional & Variant Data](conditional-variant.md)** if array elements are optional or variant. +- **[Variables and Expressions](variables-expressions.md)** to compute sizes and indices. diff --git a/doc/mkdocs/doc/sddl/north-star/best-practices.md b/doc/mkdocs/doc/sddl/north-star/best-practices.md new file mode 100644 index 000000000..b80a43137 --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/best-practices.md @@ -0,0 +1,286 @@ +# Best Practices + +*Chapter 10 - Effective SDDL specification design* + +This chapter collects practical advice for writing clear, maintainable, and effective SDDL specifications. These guidelines come from experience writing specifications for real-world formats and reflect common pitfalls to avoid. + +This chapter assumes familiarity with SDDL syntax and constructs. If you need a refresher on records, types, fields, or other language elements, consult the [Language Elements Overview](core-concepts.md#language-elements-overview) first. + +--- + +## Endianness is Required + +Multi-byte types require explicit endianness: + +```sddl +# WRONG: No such type +value: Int32 + +# CORRECT +value: Int32LE +``` + +Single-byte types (`UInt8`, `Int8`) don't need endianness. + +--- + +## Use Parameters for Reusability + +Parameters make records reusable and maintain instant-parse status: + +```sddl +record Packet(max_payload) { + header: Bytes(12), + payload: Bytes(max_payload) +} + +# Instant-parse with different sizes +small_packet: Packet(64) +large_packet: Packet(1024) +``` + +--- + +## Validate Early + +Use `where` for immediate field validation: + +```sddl +record Header() { + magic: Bytes(4) where (magic == "IMGF"), + version: UInt16LE where (version >= 1 and version <= 5) +} +``` + +For more complex validation logic, use `expect` statements: + +```sddl +record Header() { + width: UInt32LE, + height: UInt32LE, + + var total_pixels = width * height, + expect total_pixels <= 100000000 # Derived constraint +} +``` + +**Important:** Validation using `where` or `expect` on local fields requires scanning. Removing these checks could make the record instant-parse: + +```sddl +# With validation: requires scan +record Validated() { + magic: Bytes(4) where (magic == "IMGF") +} + +# Without validation: instant-parse +record Unvalidated() { + magic: Bytes(4) +} @instant_parse +``` + +The trade-off is between safety and instant-parse status. + +--- + +## Design for Format Evolution + +Include and track version information when available: + +```sddl +record MyFormat() { + magic: Bytes(4), + version: UInt16LE, + + # V1 fields + base_data: Bytes(100), +} + +record Data(version) { + base: Int32LE, + when version >= 2 { extended_data: ExtendedData }, + + # Additional fields + when version >= 3 { metadata: Metadata } +} +``` + +This makes it easier to follow format evolutions. + +--- + +## Name Things Clearly + +Use descriptive names: + +```sddl +# GOOD +record ImageHeader() { + width: UInt32LE, + height: UInt32LE, + bits_per_pixel: UInt8 +} + +# AVOID +record ImageHeader() { + w: UInt32LE, # Unclear + h: UInt32LE, + bpp: UInt8 # Non-obvious acronym +} +``` + +Naming conventions: +- **Types:** PascalCase (e.g., `Record BlockHeader`) +- **Fields:** snake_case (e.g., `block_size`) +- **Enums:** UPPER_CASE (e.g., `enum Status { ACTIVE = 1 }`) + +--- + +## Document Non-Obvious Decisions + +Add comments explaining format choices: + +```sddl +# PNG chunk structure as per RFC 2083 +record PNGChunk() { + length: UInt32BE, # Byte count of data field only + type: Bytes(4), # ASCII chunk type code + data: Bytes(length), + crc: UInt32BE # CRC-32 of type + data fields +} +``` + +--- + +## Organize Complex Formats + +Break large formats into reusable components: + +```sddl +# Common components +record Timestamp() { + seconds: Int64LE, + nanos: UInt32LE +} + +record UUID() { + bytes: Bytes(16) +} + +# Compose them +record Event() { + id: UUID, + occurred_at: Timestamp, + data: EventData +} +``` + +--- + +## Understand `pad_to` vs `pad_align` + +**`pad_to n`:** Record must be exactly n bytes. Format error if naturally larger. + +```sddl +record Fixed() { + data: Bytes(10) +} pad_to 16 # Always 16 bytes (or error if data > 16) +``` + +**`pad_align n`:** Round size up to multiple of n bytes. + +```sddl +record Aligned() { + data: Bytes(10) +} pad_align 8 # Rounds 10 up to 16 (next multiple of 8) +``` + +--- + +## Avoid Union Case Overlaps + +Overlapping union cases cause format errors: + +!!! danger "Wrong" + ```sddl + Union Bad(type) = { + case 1..10: TypeA, + case 5..15: TypeB, # ERROR: 5-10 overlap! + } + ``` + +**Correct:** +```sddl +Union Good(type) = { + case 1..10: TypeA, + case 11..20: TypeB, + default: TypeC +} +``` + +--- + +## Use `_` for Unused Fields + +You can reuse `_` for throwaway fields: + +```sddl +record Data() { + _: Bytes(4), # Skip padding + value: Int64LE, + _: Bytes(4), # Skip more padding (OK to reuse _) +} +``` + +Regular field names must be unique. + +--- + +## Consider Alignment Requirements + +If your format has alignment requirements, describe them explicitly: + +```sddl +record Aligned() { + id: UInt8, + _: Bytes(7), # Explicit padding + timestamp: align(8) Int64LE, # Must be 8-byte aligned + value: Float64LE +} +``` + +--- + +## Test with Real Data + +Create test cases covering: + +- **Minimum valid case:** Smallest possible valid input +- **Maximum valid case:** Largest/most complex valid input +- **Boundary conditions:** Values at limits +- **Invalid cases:** Inputs that should be rejected + +Test your SDDL description against actual files in the wild to ensure accuracy. + +--- + +## Summary + +**Key Guidelines:** + +- Always specify endianness for multi-byte types +- Validate fields immediately after parsing them +- Use parameters to maintain instant-parse when possible +- Design for format evolution from the start +- Name things clearly and document non-obvious decisions +- Understand `pad_to` vs `pad_align` +- Avoid overlapping union cases +- Test with real data + +**Remember:** SDDL describes existing binary formats. Focus on accurately describing the format as it exists, not on optimizing or transforming it. + +--- + +## Where to Go Next + +- **[Real-World Formats](real-formats.md)** to see these practices applied in complete specs. +- **[Reference](reference.md)** when you need exact syntax and function signatures. diff --git a/doc/mkdocs/doc/sddl/north-star/conditional-variant.md b/doc/mkdocs/doc/sddl/north-star/conditional-variant.md new file mode 100644 index 000000000..a87908e5d --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/conditional-variant.md @@ -0,0 +1,557 @@ +# Conditional & Variant Data + +*Chapter 7 - Unions and conditional fields* + +Binary formats often contain optional fields, variant data, or structures that vary by version or type. This chapter covers SDDL's constructs for describing these patterns: conditional fields with `when` and variant data with `Union`. + +For a comprehensive overview of SDDL's core language elements including conditional constructs and unions, see [Language Elements Overview](core-concepts.md#language-elements-overview). + +Refer to the [coverage map entries for conditional fields](real-formats.md#coverage-when-block) and [variant unions](real-formats.md#coverage-unions) whenever you need a full specification that uses these features. + +--- + +## Conditional Fields with `when` + +The `when` keyword makes fields appear only when a condition is true. + +### Basic Syntax + +```sddl +record Packet(include_timestamp) { + id: Int32LE, + size: Int16LE, + when include_timestamp { timestamp: Int64LE } +} +``` + +If `include_timestamp` is true, the record includes a timestamp. If false, it doesn't. + +### Parameter-Based Conditions + +Conditions based on parameters maintain instant-parse status: + +```sddl +record Data(has_checksum, version) { + payload: Bytes(100), + when has_checksum { crc: UInt32LE }, + when version >= 2 { metadata: Bytes(64) } +} +``` + +The layout is fully determined by the parameters. This is instant-parse. + +### Field-Based Conditions + +Conditions referencing parsed fields require scanning: + +```sddl +record Header() { + flags: UInt8, + when (flags & 0x01) != 0 { checksum: UInt32LE } # Requires scan +} +``` + +The parser must read `flags` before knowing whether `checksum` exists. + +### Multiple Conditions + +```sddl +record VersionedData(version) { + base: Int32LE, + when version >= 1 { feature_v1: Int32LE }, + when version >= 2 { feature_v2: Int64LE }, + when version >= 3 { feature_v3: ExtendedData } +} +``` + +Each condition is evaluated independently. Multiple can be true simultaneously. + +### Complex Conditions + +Use logical operators for more sophisticated conditions: + +```sddl +record Data(mode, flags) { + base: Int32LE, + when mode == 1 or mode == 3 { option_a: Int32LE }, + when (flags & 0x80) != 0 and mode >= 2 { option_b: Int64LE } +} +``` + +### Block Form with Braces + +When you need multiple fields or statements under a condition, use braces instead of `then`: + +```sddl +record ExtendedData(has_extension) { + base: BaseData, + when has_extension { + ext_field1: Int32LE, + ext_field2: Int64LE, + var ext_size = ext_field1 + ext_field2, + expect ext_field1 > 0 + } +} +``` + +The block can contain fields, variables, and `expect` statements. When using braces, omit the `then` keyword. + +--- + +## Unions for Variant Data + +Unions represent "exactly one of several options" based on a selector value. + +### Basic Union Structure + +```sddl +Union Payload(type_code) = { + case 1: ImageData, + case 2: AudioData, + case 3: VideoData, + default: RawBytes +} +``` + +**Key points:** +- First parameter is the dispatch selector +- Only one case is active based on the selector value +- `default` handles unmatched values + +### Using Unions + +```sddl +record Frame() { + type: UInt8, + size: UInt32LE, + payload: Union(type) { + case 1: Image(size), + case 2: Audio(size), + case 3: Video(size), + default: Bytes(size) + } +} +``` + +The `type` field determines which case is parsed. + +### Multiple Cases for Same Type + +Multiple predicate values can map to the same type. + +```sddl +Union Protocol(version) = { + case 1, 2, 3: LegacyFormat(version), # Versions 1-3 + case 4: ModernFormat(version), # Version 4 + case 5, 6: EnhancedFormat(version), # Versions 5-6 + default: UnknownFormat +} +``` + +### Range-Based Cases + +Use ranges for contiguous value sets: + +```sddl +Union DataBlock(block_type) = { + case 0x00..0x0F: SmallBlock, # Types 0-15 + case 0x10..0x1F: MediumBlock, # Types 16-31 + case 0x20..0x7F: LargeBlock, # Types 32-127 + default: CustomBlock +} +``` + +Ranges are inclusive on both ends. + +### The `default` Case + +The `default` case handles selector values that don't match any explicit case: + +```sddl +Union Message(msg_type) = { + case 1: TextMessage, + case 2: ImageMessage, + case 3: AudioMessage, + default: UnknownMessage # Handles any other value +} +``` + +**Without `default`:** If the selector value doesn't match any case, parsing fails with a data error. Always include `default` unless you're certain all possible values are covered by explicit cases. + +```sddl +Union StrictMessage(msg_type) = { + case 1: TextMessage, + case 2: ImageMessage, + case 3: AudioMessage + # No default: msg_type=4 causes data error! +} +``` + +### Overlapping Ranges + +Overlapping ranges are a format error: + +!!! danger "Format error example" + ```sddl + Union Bad(type) = { + case 1..10: TypeA, + case 5..15: TypeB, # ERROR: 5-10 overlap with first case! + } + ``` + +The compiler rejects this at compile time. + +--- + +## Unions and Instant-Parse + +A union is instant-parse only if: +1. The selector is a parameter or constant (not a parsed field) +2. All case arms are themselves instant-parse + +### Instant-Parse Union + +```sddl +record Packet(type, size) { + payload: Union(type) { # type is parameter: instant-parse + case 1: Image(size), # size is parameter: instant-parse + case 2: Audio(size), + default: Raw(size) + } +} @instant_parse +``` + +### Non-Instant-Parse Union + +```sddl +record Packet() { + type: UInt8, # Parsed field + size: UInt32LE, + payload: Union(type) { # Depends on parsed 'type': requires scan + case 1: Image(size), + case 2: Audio(size), + default: Raw(size) + } +} +``` + +--- + +## Enumerations + +Enums provide named constants for discriminators and flags, to improve readability. +For all intents and purposes, they are treated as constants. + +Enum values must always be set explicitly. + +Enums currently only support integer values. +Plans to also support string constants in the future are being considered. + +### Defining Enums + +```sddl +enum MessageType { + TEXT = 1, + IMAGE = 2, + AUDIO = 3, + VIDEO = 4 +} + +enum Flags { + READ = 1 << 0, # 0x01 + WRITE = 1 << 1, # 0x02 + EXEC = 1 << 2 # 0x04 +} +``` + +### Using Enums in Unions + +```sddl +record Message() { + type: UInt8, + payload: Union(type) { + case MessageType.TEXT: TextPayload, + case MessageType.IMAGE: ImagePayload, + case MessageType.AUDIO: AudioPayload, + case MessageType.VIDEO: VideoPayload, + default: UnknownPayload + } +} +``` + +### Using Enums in Conditions + +```sddl +enum FileFlags { + HAS_METADATA = 0x01, + HAS_CHECKSUM = 0x02, + COMPRESSED = 0x04 +} + +record FileData(flags) { + data: Bytes(100), + when (flags & FileFlags.HAS_METADATA) != 0 { metadata: Metadata }, + when (flags & FileFlags.HAS_CHECKSUM) != 0 { checksum: UInt32LE } +} +``` + +### Enum Membership Testing with `in` + +Test if a value belongs to an enum set: + +```sddl +enum WaveFormat { + PCM = 1, + IEEE_FLOAT = 3, + EXTENSIBLE = 0xFFFE +} + +record Audio() { + format: UInt16LE, + expect format in WaveFormat, # Requires format to be 1, 3, or 0xFFFE + + data: Bytes(1024) +} +``` + +The `in` operator checks if a value matches any of the enum's defined constants. It's typically used within `expect` statements for validation and causes a data error if the value doesn't match. + +--- + +## Inline Declarations + +### Inline Records + +Define anonymous record types directly where used: + +```sddl +record Packet() { + header: record() { + magic: Bytes(4), + version: UInt16LE, + flags: UInt16LE + }, + data: Bytes(256) +} +``` + +Use inline records when the type is used only once and is simple. + +### Inline Unions + +```sddl +record Frame(type, size) { + id: UInt32LE, + payload: Union(type, size) { + case 1: Image(size), + case 2: Audio(size), + case 3: Video(size) + } +} +``` + +### Named vs Inline + +**Named Types:** +```sddl +record Header() { magic: Bytes(4), version: UInt16LE } +record Packet() { header: Header, data: Bytes(256) } +``` + +- Reusable across multiple records +- Self-documenting (type has a name) +- Can be tested independently + +**Inline Types:** +```sddl +record Packet() { + header: record() { magic: Bytes(4), version: UInt16LE }, + data: Bytes(256) +} +``` + +- Keeps definition close to usage +- Less namespace pollution +- Not reusable + +--- + +## Common Patterns + +### Pattern: Tagged Union + +```sddl +enum VariantType { INT = 1, FLOAT = 2, STRING = 3 } + +record Variant() { + tag: UInt8, + value: Union(tag) { + case VariantType.INT: Int64LE, + case VariantType.FLOAT: Float64LE, + case VariantType.STRING: record() { + length: UInt32LE, + text: Bytes(length) + } + } +} +``` + +Note that when you using **anonymous `Record() { ... }`** in a Union case (without a field name), the fields of that Record become **direct members** of the Union result. + +### Pattern: Version-Specific Fields + +```sddl +record FileFormat() { + magic: Bytes(4), + version: UInt16LE, + data: Bytes(100), + +record FileWithMetadata(version) { + header: FileHeader, + when version >= 2 { extended_header: ExtendedHeader }, + + data: Bytes(1024), + when version >= 3 { metadata: Metadata }, + when version >= 3 { checksum: UInt32LE } +} +``` + +### Pattern: Optional Extensions + +```sddl +enum Extensions { + COMPRESSION = 0x01, + ENCRYPTION = 0x02, + METADATA = 0x04 +} + +record Document() { + flags: UInt8, + core_data: Bytes(512), + + when (flags & Extensions.COMPRESSION) != 0 + then compression_info: CompressionHeader, + + when (flags & Extensions.ENCRYPTION) != 0 + then encryption_info: EncryptionHeader, + + when (flags & Extensions.METADATA) != 0 + then metadata: Metadata +} +``` + +### Pattern: Discriminated Payload + +```sddl +enum CommandType { + REQUEST = 1, + RESPONSE = 2, + ERROR = 3 +} + +record NetworkMessage() { + message_id: UInt32LE, + command_type: UInt8, + payload_length: UInt32LE, + + payload: Union(command_type) { + case CommandType.REQUEST: Request(payload_length), + case CommandType.RESPONSE: Response(payload_length), + case CommandType.ERROR: Error(payload_length) + } +} +``` + +--- + +## Practical Examples + +### Example 1: PNG-Like Chunk Structure + +```sddl +enum ChunkType { + HEADER = 0x49484452, # "IHDR" + PALETTE = 0x504C5445, # "PLTE" + DATA = 0x49444154, # "IDAT" + END = 0x49454E44 # "IEND" +} + +record Chunk() { + length: UInt32BE, + type: UInt32BE, + + data: Union(type) { + case ChunkType.HEADER: ImageHeader, + case ChunkType.PALETTE: Palette, + case ChunkType.DATA: ImageData(length), + case ChunkType.END: Bytes(0), + default: Bytes(length) # Unknown chunk types preserved + }, + + crc: UInt32BE +} +``` + +### Example 2: Extensible Configuration Format + +```sddl +enum ConfigVersion { V1 = 1, V2 = 2, V3 = 3 } + +record Config(version) { + host: Bytes(256), + port: UInt16LE, + when version >= ConfigVersion.V2 { timeout: UInt32LE }, + when version >= ConfigVersion.V2 { max_connections: UInt16LE }, + + # V3 additions + when version >= ConfigVersion.V3 { tls_config: TLSConfig }, + when version >= ConfigVersion.V3 { flags: UInt32LE } +} +``` + +### Example 3: Format Migration + +```sddl +record MultiVersionFile() { + magic: Bytes(4), + version: UInt16LE, + + body: Union(version) { + case 1: V1Format, + case 2: V2Format, + case 3: V3Format, + # if version is any other value, it's an error + } +} +``` + +--- + +## Common Pitfalls + +### Pitfall: Assuming Instant-Parse with Field Selectors + +!!! error "Instant-parse error example" + ```sddl + record Bad() { + type: UInt8, + payload: Union(type) { # 'type' is parsed field + case 1: Data1, + case 2: Data2 + } @instant_parse # This one is okay, assuming Data1 and Data2 are instant-parse + } @instant_parse # Compilation error: this Record is not instant-parse + ``` + +--- + +## Summary + +Use `when` to gate fields or blocks on conditions: parameter-based tests keep the construct instant-parse, while tests against local fields introduce scan requirements. Use `Union(selector)` when exactly one of several layouts is valid, supplying parameter-driven selectors whenever possible and a `default` case for robustness. Enums keep selectors and conditions readable and pair naturally with unions or `when`. Overlapping union ranges are format errors, so plan selector ranges carefully. + +--- + +## Where to Go Next + +- **[Variables and Expressions](variables-expressions.md)** to compute selectors and condition flags. +- **[Best Practices](best-practices.md)** for guidance on evolving formats that use conditionals. +- **[Real-World Formats](real-formats.md)** to see unions and `when` blocks in context. diff --git a/doc/mkdocs/doc/sddl/north-star/core-concepts.md b/doc/mkdocs/doc/sddl/north-star/core-concepts.md new file mode 100644 index 000000000..076be5f8a --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/core-concepts.md @@ -0,0 +1,739 @@ +# Core Concepts + +*Chapter 3 - The fundamental building blocks* + +This chapter provides a comprehensive look at SDDL's core features: types, records, validation, and the lexical structure of the language. While Chapter 2 introduced these concepts through examples, this chapter explores them in detail. + +--- + +## Language Elements Overview + +Before diving into specifics, it's helpful to understand the taxonomy of elements you can work with in SDDL. The language provides several categories of types and constructs for describing binary data: + +### 1. Primitive Types + +Atomic numeric types with fixed sizes and explicit byte order: + +```sddl +count: UInt32LE # 32-bit unsigned integer, little-endian +temperature: Float64BE # 64-bit float, big-endian +flag: UInt8 # Single byte (no endianness) +``` + +These include signed/unsigned integers (8, 16, 32, 64-bit) and IEEE 754 floating-point types, all with explicit endianness for multi-byte values. + +### 2. Byte Sequences + +Raw binary data with no imposed structure: + +```sddl +magic: Bytes(4) # 4 bytes of data +header: Bytes(128) # 128-byte header +data: Bytes(size) # Variable size determined by 'size' +``` + +Use `Bytes(n)` when the data has unknown structure or when you need padding. + +### 3. Records + +Structured composite types that group fields together: + +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} + +origin: Point # Instance of the Point record +``` + +Records can be named (for reuse) or inline (for one-off structures), and can accept parameters for flexible definitions. + +### 4. Arrays + +Sequences of repeated elements: + +```sddl +values: Int32LE[100] # Fixed-size array +points: Point[count] # Dynamic size from field/parameter +matrix: Float32LE[rows][cols] # Multi-dimensional +``` + +Arrays can contain primitive types, records, or other complex structures. + +### 5. Unions + +Variant types representing "exactly one of several alternatives" based on a selector: + +```sddl +Union Payload(type_code) = { + case 1: ImageData, + case 2: AudioData, + case 3: VideoData, + default: RawBytes +} +``` + +Only one case is active, determined by the selector value. + +### 6. Enumerations + +Named integer constants for improved readability: + +```sddl +enum MessageType { + TEXT = 1, + IMAGE = 2, + AUDIO = 3 +} + +type: UInt8 +expect type == MessageType.TEXT +``` + +Enums make discriminators and bit flags more self-documenting. + +### 7. Variables and Expressions + +Local computed values that can be used in sizes, conditions, and validations: + +```sddl +record Container() { + total_size: UInt32LE, + header_size: UInt32LE, + var data_size = total_size - header_size, # Computed value + data: Bytes(data_size) +} +``` + +Variables hold intermediate calculations and improve readability. + +### 8. Conditional Constructs + +Fields or blocks that appear only when conditions are met: + +```sddl +record Packet(version) { + id: Int32LE, + size: Int16LE, + payload: Bytes(size), + when version >= 2 { timestamp: Int64LE } # Optional field +} +``` + +The `when` keyword enables format versioning and optional sections. + +### 9. Validation + +Assertions that ensure data meets expectations: + +```sddl +header: record() { + magic: Bytes(4), + version: UInt16LE where (version >= 1 and version <= 3) +} + +expect header.magic == "MYFT" +``` + +Use `expect` statements and `where` clauses to validate data integrity. + +### How These Fit Together + +SDDL specifications compose these elements hierarchically. Primitive types and byte sequences form the leaves. Records, arrays, and unions combine these into more complex structures. Variables compute intermediate values. Conditionals and validation ensure correctness. Together, they describe binary formats precisely and unambiguously. + +The rest of this chapter explores each category in detail, starting with the primitive type system. + +--- + +## Types and Endianness + +SDDL provides a small set of primitive types for describing binary data. Every type is designed to have clear, unambiguous semantics. + +### Integer Types + +SDDL supports signed and unsigned integers in multiple sizes: + +**Signed Integers:** + +- `Int8` - 8-bit signed integer (-128 to 127) +- `Int16LE` / `Int16BE` - 16-bit signed integer, little/big-endian +- `Int32LE` / `Int32BE` - 32-bit signed integer, little/big-endian +- `Int64LE` / `Int64BE` - 64-bit signed integer, little/big-endian + +**Unsigned Integers:** + +- `UInt8` - 8-bit unsigned integer (0 to 255) +- `UInt16LE` / `UInt16BE` - 16-bit unsigned integer, little/big-endian +- `UInt32LE` / `UInt32BE` - 32-bit unsigned integer, little/big-endian +- `UInt64LE` / `UInt64BE` - 64-bit unsigned integer, little/big-endian + +**Example:** +```sddl +count: UInt32LE # Unsigned 32-bit integer, little-endian +offset: Int64BE # Signed 64-bit integer, big-endian +flags: UInt8 # 8-bit unsigned (no endianness needed) +``` + +### Floating-Point Types + +SDDL supports IEEE 754 floating-point types and Google's bfloat16: + +**IEEE 754 Standard:** +- `Float16LE` / `Float16BE` - 16-bit IEEE 754 half-precision +- `Float32LE` / `Float32BE` - 32-bit IEEE 754 single-precision +- `Float64LE` / `Float64BE` - 64-bit IEEE 754 double-precision + +**Google bfloat16:** +- `BFloat16LE` / `BFloat16BE` - 16-bit brain floating-point format + +**Example:** +```sddl +temperature: Float32LE # Single-precision, little-endian +position: Float64BE # Double-precision, big-endian +ml_weight: BFloat16LE # Brain float, commonly used in ML +``` + +### The Bytes Type + +For untyped data or data with unknown structure, use `Bytes(n)`: + +```sddl +magic: Bytes(4) # 4 bytes of data +header: Bytes(128) # 128-byte header +padding: Bytes(16) # 16 bytes of padding +``` + +The argument to `Bytes` specifies the number of bytes. It can be: +- A constant: `Bytes(100)` +- A parameter: `Bytes(size)` where `size` is a record parameter +- An expression: `Bytes(header.length - 4)` + +### Why Explicit Endianness? + +SDDL requires every multi-byte type to declare its byte order. This design decision prevents a common class of bugs: + +```sddl +# This is an ERROR - no endianness specified +value: Int32 # Compiler rejects this +``` + +```sddl +# This is correct - endianness is explicit +value: Int32LE # Little-endian +``` + +This design prevents endianness bugs, which are common and frustrating in binary format work. You can't accidentally read big-endian data as little-endian because the type system won't let you forget to specify byte order. The byte order is visible right at each field—you don't need to look elsewhere for a global setting or guess from context. Every field documents its own intent clearly. + +### Single-Byte Types + +`Int8` and `UInt8` don't have endianness suffixes because single bytes have no byte order: + +```sddl +byte_value: UInt8 # No LE/BE needed +signed_byte: Int8 # No LE/BE needed +``` + +### Type Summary Table + +| Type | Size | Endian | +|------|------|--------| +| `Int8` | 1 byte | N/A | +| `UInt8` | 1 byte | N/A | +| `Int16LE/BE` | 2 bytes | Yes | +| `UInt16LE/BE` | 2 bytes | Yes | +| `Int32LE/BE` | 4 bytes | Yes | +| `UInt32LE/BE` | 4 bytes | Yes | +| `Int64LE/BE` | 8 bytes | Yes | +| `UInt64LE/BE` | 8 bytes | Yes | +| `Float16LE/BE` | 2 bytes | Yes | +| `Float32LE/BE` | 4 bytes | Yes | +| `Float64LE/BE` | 8 bytes | Yes | +| `BFloat16LE/BE` | 2 bytes | Yes | +| `Bytes(n)` | n bytes | N/A | + +--- + +## Records + +Records are SDDL's primary mechanism for organizing structure and reusing format definitions. + +### Defining Records + +A record definition has three parts: name, parameters, and body. + +```sddl +record Name(param1, param2) { + field1: Type1, + field2: Type2 +} +``` + +**Name:** Starts with a capital letter by convention (but not required). Should be descriptive. + +**Parameters:** Optional. Values passed in when the record is instantiated. + +**Body:** A sequence of field declarations, comma-separated. + +### Simple Records + +The simplest record has no parameters: + +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} + +origin: Point +``` + +This defines a 3D point structure. When you write `origin: Point`, you're creating an instance of the `Point` record. + +### Parameterized Records + +Parameters make records flexible: + +```sddl +record FixedArray(count) { + values: Int32LE[count] +} + +size: UInt32LE +data: FixedArray(size) +``` + +The `count` parameter is passed when instantiating the record. Parameters can be: + +- Used in array sizes: `values: Int32LE[count]` +- Used in `Bytes` sizes: `data: Bytes(count)` +- Used in expressions: `data: Bytes(count * 2)` +- Passed to nested records: `nested: SubRecord(count)` +- Used in conditions: `when count > 0 { ... }` + +### Multiple Parameters + +Records can have multiple parameters: + +```sddl +record Matrix(rows, cols) { + data: Float32LE[rows * cols] +} + +record Container(width, height, depth) { + dimensions: Matrix(width, height), + volume: Float32LE[depth] +} + +w: UInt32LE +h: UInt32LE +d: UInt32LE +container: Container(w, h, d) +``` + +Parameters are positional. When calling `Container(w, h, d)`, `w` maps to `width`, `h` to `height`, and `d` to `depth`. + +### Fields and Field Names + +Field names must be unique within a record, with one exception: the underscore `_` can be used multiple times for throwaway fields: + +```sddl +record Data() { + important: Int32LE, + _ : Bytes(4), # Some padding, ignored + value : Float32LE, + _ : Bytes(4), # More padding, also ignored + count : Int32LE +} +``` + +Use `_` when a field exists in the binary format but there is no need to reference it later. +The field still exists in the record, it's just considered "unimportant", and no handle to access its content is provided. + +**Field name rules:** + +- Must start with a letter or underscore +- Can contain letters, numbers, and underscores +- Are case-sensitive (`count` and `Count` are different) +- Should be descriptive (`temperature` is better than `val`) + +### Nested Records + +Records can contain other records: + +```sddl +record Point() { + x: Float32LE, + y: Float32LE +} + +record Line() { + start: Point, + end: Point +} + +record Shape() { + boundary: Line, + center: Point +} + +shape: Shape +``` + +This creates a hierarchy: `Shape` contains a `Line` and a `Point`, and `Line` contains two `Point`s. + +### Inline Records + +You can define records inline without giving them a name: + +```sddl +header: record() { + magic: Bytes(4), + version: Int16LE +} + +data: record() { + count: Int32LE, + values: Float32LE[10] +} +``` + +Note that inline records require `()` just like named records, even when they take no parameters. This keeps the syntax consistent across all record definitions. + +Inline records are useful for one-off structures that won't be reused. + +### Record Scope + +Records create a scope for their fields and any `var` declarations. Field names and variables defined within a record are local to that record and cannot be referenced from outside. + +For complete coverage of variables, expressions, and scoping rules, see [Variables and Expressions](variables-expressions.md). + +--- + +## Validation + +SDDL provides two mechanisms for validating that binary data matches expectations: `expect` statements and `where` clauses. + +### The `expect` Statement + +`expect` statements assert that a condition must be true: + +```sddl +header: record() { + magic: Bytes(4), + version: Int16LE +} + +expect header.magic == "MYFT" +expect header.version >= 1 +expect header.version <= 3 +``` + +When the SDDL interpreter encounters an `expect` statement, it evaluates the condition. If the condition is false, parsing fails with a data error. + +### Compound Conditions + +You can combine conditions with logical operators: + +```sddl +expect header.version >= 1 and header.version <= 3 +expect header.magic == "MYFT" or header.magic == "MYMT" +expect !(header.flags & 0x80) # High bit must not be set +``` + +### Comparing with Byte Arrays + +Magic numbers and identifiers are often byte sequences: + +```sddl +magic: Bytes(4) +expect magic == [0x50, 0x4B, 0x03, 0x04] # ZIP file signature +``` + +You can also use string literals for ASCII: + +```sddl +magic: Bytes(4) +expect magic == "RIFF" # RIFF file format +``` + +String literals are treated as byte sequences in expect statements. + +### The `where` Clause + +`where` is a shorthand for validating a field immediately after parsing it: + +```sddl +record Data() { + size: UInt16LE where (size <= 1024), + data: Bytes(size) +} +``` + +This is equivalent to: + +```sddl +record Data() { + size: UInt16LE, + expect size <= 1024, + data: Bytes(size) +} +``` + +Use `where` when validation is tightly coupled to a single field. Use `expect` when validation involves multiple fields or complex logic. + +### Validation and Instant-Parse + +When `expect` or `where` references only parameters or constants, it doesn't affect instant-parse status: + +```sddl +record Block(size) { + data: Bytes(size) # ✓ OK: 'size' is a parameter +} @instant_parse + +length: Int32LE +block: Block(length) + +When validation references local fields, the record requires scanning: + +```sddl +record Data() { + size: UInt16LE, + expect size <= 1024, # This makes the record require scanning + data: Bytes(size) +} +``` + +The distinction: parameters are known before parsing, local fields are discovered during parsing. + +### Validating Structure Sizes + +You can validate that a record's size matches an expected value using the `sizeof` function: + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + flags: Int16LE +} + +expect sizeof(Header()) == 8 +``` + +This is useful when format specifications include size fields that must match the actual structure size. For details on `sizeof` and other functions, see [Variables and Expressions](variables-expressions.md#size-and-position-functions). + +### Error Messages + +SDDL doesn't currently support custom error messages in `expect` statements (this may change). When validation fails, the interpreter reports which expect statement failed and what values were involved. + +--- + +## Comments and Documentation + +Comments in SDDL start with `#` and continue to the end of the line: + +```sddl +# This is a full-line comment +magic: Bytes(4) # This is an end-of-line comment +``` + +### Documenting Your Format + +Good SDDL specifications are self-documenting, but comments add valuable context: + +```sddl +record Header() { + # File identifier, must be "MYFT" for this format version + magic: Bytes(4), + + # Format version number + # Version 1: Basic format + # Version 2: Added compression support + # Version 3: Added metadata section + version: Int16LE, + + # Bit flags controlling optional features + # Bit 0: Has metadata section + # Bit 1: Data is compressed + # Bit 2: Has checksum + flags: Int16LE +} +``` + +### Comment Style Guidelines + +**Field documentation:** +```sddl +temperature: Float32LE # In degrees Celsius +count: UInt32LE # Number of data points +offset: Int64LE # Byte offset from start of file +``` + +**Section separation:** +```sddl +# ===== Header Section ===== +magic: Bytes(4) +version: Int16LE + +# ===== Data Section ===== +count: UInt32LE +data: Int32LE[count] +``` + +**Explaining complex logic:** +```sddl +var has_metadata = (header.flags & 0x01) != 0 +when has_metadata { metadata: Metadata } +var is_compressed = (header.flags & 0x02) != 0 + +# Metadata is optional based on flag bit 0 +when has_metadata then metadata: Metadata + +# If compressed, read compressed size first +when is_compressed { + compressed_size: UInt32LE, + data: Bytes(compressed_size) +} +``` + +### Comments as Format Documentation + +Your SDDL file IS the format documentation. Well-commented SDDL is often clearer than separate documentation because it shows the exact structure: + +```sddl +# SAO Star Catalog Format +# +# The Smithsonian Astrophysical Observatory (SAO) star catalog +# is a binary format containing astronomical data for stars. +# +# File structure: +# - 28-byte fixed header +# - Variable-length star entries (28 bytes each in this version) + +record StarEntry() { + SRA0: Float64LE, # Right Ascension at epoch 1950.0 (radians) + SDEC0: Float64LE, # Declination at epoch 1950.0 (radians) + ISP: Bytes(2), # Spectral type and magnitude code + MAG: Int16LE, # Visual magnitude * 100 + XRPM: Float32LE, # Proper motion in RA (arcsec/century) + XDPM: Float32LE # Proper motion in Dec (arcsec/century) +} + +header: Bytes(28) +stars: StarEntry[] +``` + +--- + +## Lexical Rules + +### Comments + +Comments start with `#` and continue to the end of the line. For comment style guidelines and documentation best practices, see [Comments and Documentation](#comments-and-documentation). + +### Statement Structure + +At the top level, statements are newline-terminated: + +```sddl +header: Header +count: Int32LE +data: Int32LE[count] +``` + +Inside blocks (`{}`, `()`, `[]`), items are comma-separated with optional trailing commas: + +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE, # Trailing comma is OK +} +``` + +### Whitespace + +Whitespace (spaces, tabs, newlines) is generally insignificant except: +- Newlines terminate top-level statements +- Indentation is not significant (unlike Python) + +Use whitespace for clarity and readability. + +### Additional References + +- For identifier naming rules, see [Fields and Field Names](#fields-and-field-names) +- For the complete list of reserved keywords, see [Quick Reference](reference.md#keywords) + +--- + +## Putting It Together + +Let's apply these core concepts to a complete example: + +```sddl +# Image file format specification +# Version 1.0 + +# ----- Types ----- + +record Header() { + magic: Bytes(4), # Must be "IMGF" + version: UInt16LE, # Format version (currently 1) + width: UInt32LE, # Image width in pixels + height: UInt32LE, # Image height in pixels + channels: UInt8, # Number of color channels (1, 3, or 4) + bits_per_channel: UInt8 # Bits per channel (8 or 16) +} + +record Pixel8(num_channels) { + data: UInt8[num_channels] +} + +record Pixel16(num_channels) { + data: UInt16LE[num_channels] +} + +# ----- Validation ----- + +header: Header + +expect header.magic == "IMGF" +expect header.version == 1 +expect header.channels >= 1 and header.channels <= 4 +expect header.bits_per_channel == 8 or header.bits_per_channel == 16 + +# ----- Variables ----- + +var num_pixels = header.width * header.height +var num_channels = header.channels +var bits_per_channel = header.bits_per_channel + +# ----- Data ----- + +when bits_per_channel == 8 { pixels_8: Pixel8(num_channels)[num_pixels] } +when bits_per_channel == 16 { pixels_16: Pixel16(num_channels)[num_pixels] } +``` + +This example demonstrates: +- Clear type definitions with explicit endianness +- Parameterized records +- Validation with `expect` +- Variables for computed values +- Conditional fields based on format characteristics +- Comments documenting the format + +--- + +## Summary + +This chapter defined SDDL's building blocks: primitive and byte types with explicit endianness, records (with parameters and nesting), validation constructs (`expect`/`where`), and the lexical rules that make SDDL readable. With these pieces you can describe fixed structures and enforce invariants before moving on to layout determinism and advanced constructs. + +--- + +## Where to Go Next + +- **[Understanding Instant-Parse](instant-parse.md)** to see how layout determinism affects parsing. +- **[Arrays and Collections](arrays-collections.md)** for handling repeated data once you know the basics. +- **[Alignment and Padding](alignment-padding.md)** when you need explicit layout control. diff --git a/doc/mkdocs/doc/sddl/north-star/getting-started.md b/doc/mkdocs/doc/sddl/north-star/getting-started.md new file mode 100644 index 000000000..bfa4bfbaf --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/getting-started.md @@ -0,0 +1,674 @@ +# Getting Started + +*Chapter 2 - Learning SDDL through examples* + +This chapter teaches you SDDL by writing actual format descriptions, starting from the simplest possible file and building up complexity step by step. By the end, you'll understand how to describe common binary formats and use them with OpenZL. + +--- + +## Your First SDDL File + +Let's start with the absolute simplest binary format: a file containing a single 32-bit integer. + +**File: `simple.sddl`** +```sddl +value: Int32LE +``` + +That's it. One line. This describes a binary file containing a single 32-bit little-endian signed integer. + +### Anatomy of This Specification + +- **`value`** - The field name (you can choose any valid identifier) +- **`:`** - Separates the field name from its type +- **`Int32LE`** - A 32-bit signed integer, little-endian byte order + +When this specification is compiled to bytecode and used with OpenZL, the interpreter will: +1. Read 4 bytes from the input +2. Interpret them as a little-endian 32-bit signed integer +3. Route that data to the appropriate compression stream + +### Why Little-Endian? + +Notice we wrote `Int32LE`, not just `Int32`. SDDL requires explicit endianness for all multi-byte types. This prevents a common source of bugs in binary format handling. You must always choose: + +- `Int32LE` or `Int32BE` +- `Float64LE` or `Float64BE` +- And so on for all multi-byte types + +There is no global endianness setting. Every field's byte order is explicit and visible. + +**See also:** The complete list of primitive types and their endianness requirements is available in the [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## Adding More Fields + +Let's describe a slightly more complex format: a simple file header. + +**File: `header.sddl`** +```sddl +magic: Bytes(4) +version: Int16LE +flags: Int16LE +data_size: Int32LE +``` + +This describes a file that begins with: +- 4 bytes of "magic" identifier (often used to verify file type) +- A 2-byte version number (little-endian) +- A 2-byte flags field (little-endian) +- A 4-byte data size field (little-endian) + +Total: 12 bytes. + +### Field Order Matters + +Fields are parsed in the order they're written. The first field (`magic`) corresponds to bytes 0-3, the second field (`version`) corresponds to bytes 4-5, and so on. + +### Comments + +You can add comments to explain what each field means: + +```sddl +magic: Bytes(4) # File type identifier, typically "MYFT" +version: Int16LE # Format version, currently 1 +flags: Int16LE # Bit flags for optional features +data_size: Int32LE # Size of data section in bytes +``` + +Comments start with `#` and continue to the end of the line. + +--- + +## Defining Records + +When a format has multiple occurrences of the same structure, define it as a `Record`: + +**File: `with_record.sddl`** +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} + +origin: Point +center: Point +``` + +This describes a file containing two 3D points: an origin point and a center point. Each point is 12 bytes (3 floats × 4 bytes each), for a total of 24 bytes. + +### Why Use Records? + +Records let you: +1. **Reuse structures** - Define once, use many times +2. **Name concepts** - `Point` is clearer than "three floats" +3. **Organize complexity** - Break large formats into manageable pieces + +### Record Syntax + +```sddl +record Name() { + field1: Type1, + field2: Type2, + ... +} +``` + +- Record names start with a capital letter by convention +- Fields inside records are comma-separated +- Trailing commas are allowed + +For a complete reference on Records and all other language constructs, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## Arrays + +Most binary formats contain arrays of data. SDDL supports both fixed-size and auto-sized arrays. + +### Fixed-Size Arrays + +**File: `fixed_array.sddl`** +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} + +count: Int32LE +points: Point[100] # Always exactly 100 points +``` + +The `[100]` syntax creates an array of exactly 100 `Point` structures. + +### Dynamic-Size Arrays Using Parameters + +Parameters let you specify array sizes that depend on values read from the file: + +```sddl +record Point(dimensions) { + coords: Float32LE[dimensions], +} +record Polygon(dimensions, vertex_count) { + points: Point(dimensions)[vertex_count], +} + +triangle_count: UInt32LE +triangles : Polygon(3, 3)[triangle_count] +``` + +### Auto-Sized Arrays + +When you want to read "everything remaining in the file," use an array without a size: + +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} + +points: Point[] # Read points until end of file +``` + +This repeats the `Point` structure until there's no more data. + +> **Learn more:** Arrays are one of SDDL's core language elements. For complete array syntax and capabilities, see [Language Elements Overview](core-concepts.md#language-elements-overview) and [Arrays and Collections](arrays-collections.md). + +--- + +## SAO Example Revisited + +Now that we understand records and arrays, let's revisit the SAO example from Chapter 1: + +```sddl +# Star catalog entry (28 bytes) +record StarEntry() { + SRA0: Float64LE, # Right Ascension (radians) + SDEC0: Float64LE, # Declination (radians) + ISP: Bytes(2), # Spectral type + MAG: Int16LE, # Magnitude + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion +} + +# File structure +header: Bytes(28) +stars: StarEntry[] +``` + +Breaking this down: + +1. **Record Definition**: `StarEntry` defines a 28-byte structure for one star + - Two 8-byte doubles (SRA0, SDEC0): 16 bytes + - One 2-byte blob (ISP): 2 bytes + - One 2-byte integer (MAG): 2 bytes + - Two 4-byte floats (XRPM, XDPM): 8 bytes + - Total: 28 bytes + +2. **File Structure**: The actual file layout + - Skip the first 28 bytes (header) + - Read `StarEntry` structures until end of file + +This is a complete, working SDDL specification for the Silesia SAO format. + +--- + +## Referencing Fields + +When you parse a field, SDDL creates a binding between the field name and its value. You can reference that field in later expressions using dot notation: + +```sddl +record Header() { + magic: Bytes(4), + count: Int32LE +} + +header: Header +items: Item[header.count] # Reference the count field +``` + +After parsing `header`, you can use `header.count`, `header.magic`, etc. in array sizes, parameters, conditionals, and validation statements. For nested records, use multiple dots: `header.meta.timestamp`. + +> **Note:** Only integer field types (up to signed 64-bit) can be used in expressions. Floating-point types and UInt64LE/UInt64BE are not supported in expressions, though you can still parse them as fields. + +> **Learn more:** For complete details on field references, type restrictions, scope rules, and performance implications, see [Variables and Expressions - Referencing Fields](variables-expressions.md#referencing-fields). + +--- + +## Variables + +Sometimes you need to extract a value from the data and use it later. That's what `var` statements do: + +```sddl +header_magic: Bytes(4) +header_count: Int32LE + +var num_items = header_count # Extract the count value + +record Item() { + id: Int32LE, + value: Float32LE +} + +items: Item[num_items] # Use the extracted value +``` + +Variables are: + +- **Immutable** - Once set, they can't be changed +- **Immediate** - They're evaluated as soon as their dependencies are available +- **Local to their scope** - Variables at the top level are available to all subsequent fields + +Variables are covered in depth in [Language Elements Overview](core-concepts.md#language-elements-overview) and [Variables and Expressions](variables-expressions.md). + +--- + +## Conditional Fields + +Sometimes fields are optional or depend on flags. Use `when` conditions: + +```sddl +record Packet(has_timestamp, has_checksum) { + id: Int32LE, + + when has_timestamp { timestamp: Int64LE }, + + payload: Bytes(100), + + when has_checksum { checksum: Int32LE } +} + +flags: Int16LE + +var include_time = (flags & 0x01) != 0 +var include_crc = (flags & 0x02) != 0 + +packet: Packet(include_time, include_crc) +``` + +The `when` clause makes a field conditional: +- If the condition is true, the field is parsed +- If the condition is false, the field is skipped + +For more on conditional fields and other control flow elements, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## Common Patterns + +### Pattern 1: Length-Prefixed Data + +Many formats store a length followed by that many bytes: + +```sddl +record Message(size) { + data: Bytes(size) +} + +message_length: Int32LE +message: Message(message_length) +``` + +### Pattern 2: Count-Prefixed Array + +Store the number of items, then the items themselves: + +```sddl +record Item() { + id: Int32LE, + value: Float32LE +} + +count: Int32LE +items: Item[count] +``` + +### Pattern 3: Fixed Header + Variable Data + +A fixed-size header followed by data sections: + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + num_sections: Int16LE +} + +record Section() { + type: Int16LE, + size: Int16LE, + data: Bytes(size) +} + +header: Header +sections: Section[header.num_sections] +``` + +### Pattern 4: Flags and Optional Fields + +Bit flags controlling optional features: + +```sddl +record Data(flags) { + base: Int32LE, + when (flags & 0x01) != 0 { extra1: Int32LE }, + when (flags & 0x02) != 0 { extra2: Int32LE }, + when (flags & 0x04) != 0 { extra3: Int32LE } +} + +flags_field: Int16LE +data: Data(flags_field) +``` + +These patterns demonstrate SDDL's core language elements in action. For a systematic reference to all available constructs, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## The Conceptual Workflow + +Now that you understand how to write SDDL specifications, here's how they fit into the OpenZL workflow: + +### Step 1: Write Your SDDL File + +Create a `.sddl` file describing your format: + +```sddl +# myformat.sddl +record Header() { + magic: Bytes(4), + count: Int32LE +} + +record DataPoint() { + value: Float64LE +} + +header: Header +data: DataPoint[header.count] +``` + +### Step 2: Compile to Bytecode + +The SDDL compiler (part of OpenZL's tooling) compiles your specification into bytecode: + +``` +myformat.sddl → [SDDL Compiler] → myformat.bytecode +``` + +The bytecode is a compact representation of the parsing instructions that the SDDL interpreter can execute efficiently. + +### Step 3: Use During Training + +OpenZL's training phase uses the bytecode to understand your data structure and find optimal compression strategies: + +``` +myformat.bytecode + training_data → [Training] → trained_model +``` + +### Step 4: Use During Compression + +The bytecode is used during actual compression to parse the data and route it to the appropriate compression streams: + +``` +myformat.bytecode + input_file → [Compression] → compressed_output +``` + +### The Key Insight + +The bytecode acts as a reusable parsing program. You write the SDDL specification once, and it's used both during training and compression. When your format changes, you update the SDDL file, recompile, and retrain—without writing any parsing code. + +--- + +## Instant-Parse: A First Look + +You may have noticed in Chapter 1 that SDDL distinguishes between "instant-parse" and "requires-scan" formats. Let's see what this means with examples: + +### Instant-Parse Example + +```sddl +record Header(data_size) { + magic: Bytes(4), + payload: Bytes(data_size) # Size is a parameter +} + +size: Int32LE +header: Header(size) +``` + +This is **instant-parse** because the size of `payload` comes from a parameter (`data_size`), which is known before parsing the `Header`. The layout is completely determined by the parameter. + +### Requires-Scan Example + +```sddl +record Header() { + magic: Bytes(4), + size: Int32LE, + payload: Bytes(size) # Size depends on a local field +} + +header: Header +``` + +This **requires-scan** because the size of `payload` depends on the `size` field within the same record. You must scan sequentially to know how large `payload` is. + +### Why Does This Matter? + +Instant-parse formats can be parsed much faster. We'll explore this in detail in Chapter 4. For now, just be aware that: + +- Parameters are instant-parse safe +- References to local fields require scanning +- SDDL will tell you which category your format falls into + +--- + +## Common Mistakes and How to Avoid Them + +### Mistake 1: Forgetting Endianness + +!!! danger "Wrong" + ```sddl + value: Int32 # ERROR: No endianness specified + ``` + +**Right:** +```sddl +value: Int32LE # Explicitly little-endian +``` + +SDDL will reject any multi-byte type without explicit endianness. + +### Mistake 2: Field Name Conflicts + +!!! danger "Wrong" + ```sddl + record Data() { + value: Int32LE, + value: Float32LE # ERROR: Duplicate field name + } + ``` + +**Right:** +```sddl +record Data() { + int_value: Int32LE, + float_value: Float32LE +} +``` + +Each field name must be unique within a record (except `_`, which can repeat for throwaway fields). + +### Mistake 3: Using Out-of-Scope Fields as Parameters + +!!! danger "Wrong" + ```sddl + size: Int32LE + + record Container() { + data: SubRecord(size) # ERROR: Can't use out-of-scope field as parameter + } + + container: Container + ``` + +**Right - Pass as parameter:** +```sddl +record Container(size) { + data: SubRecord(size) +} + +size: Int32LE +container: Container(size) +``` + +Parameters must come from the record's own scope or be passed in from above. You cannot reference fields or variables defined outside the record unless they're explicitly passed as parameters. + +**Note:** Using a local field within the same record IS allowed: +```sddl +record Container() { + size: Int32LE, + data: SubRecord(size) # OK: size is a local field +} +``` + +This makes the record require scanning, but it's perfectly valid. + +### Mistake 4: Missing Comma in Records + +!!! danger "Wrong" + ```sddl + record Point() { + x: Float32LE + y: Float32LE # ERROR: Missing comma after x + z: Float32LE + } + ``` + +**Right:** +```sddl +record Point() { + x: Float32LE, + y: Float32LE, + z: Float32LE +} +``` + +Fields within records are comma-separated. Trailing commas are allowed. + +--- + +## Building Up Complexity + +Let's practice by building a complete, realistic format step by step. + +### Version 1: Just the Header + +```sddl +record Header() { + magic: Bytes(4), # Should be "MYFT" + version: Int16LE, # Format version + num_records: Int32LE # Number of data records +} + +header: Header +``` + +### Version 2: Add Data Records + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + num_records: Int32LE +} + +record DataRecord() { + id: Int32LE, + timestamp: Int64LE, + value: Float64LE +} + +header: Header +records: DataRecord[header.num_records] +``` + +### Version 3: Add Optional Metadata + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + flags: Int16LE, # Bit 0: has metadata + num_records: Int32LE +} + +record DataRecord() { + id: Int32LE, + timestamp: Int64LE, + value: Float64LE +} + +record Metadata() { + author: Bytes(32), + created: Int64LE, + description: Bytes(128) +} + +header: Header + +var has_metadata = (header.flags & 0x01) != 0 +when has_metadata { metadata: Metadata } + +records: DataRecord[header.num_records] +``` + +Each version adds complexity while remaining readable and maintainable. + +--- + +## Next Steps + +You now understand the basics of SDDL: + +- How to describe simple formats +- Records and arrays +- Parameters and variables +- Conditional fields +- Common patterns + +The next chapters will deepen your understanding: + +- **[Core Concepts](core-concepts.md)** - The fundamental building blocks in detail, including the comprehensive [Language Elements Overview](core-concepts.md#language-elements-overview) +- **[Arrays and Collections](arrays-collections.md)** - Advanced array techniques +- **[Understanding Instant-Parse](instant-parse.md)** - Performance implications +- **[Variables and Expressions](variables-expressions.md)** - Computing derived values + +**💡 Need Help?** Consider using **[SDDL for LLM](sddl-for-llm.md)** with your AI assistant (ChatGPT, Claude, etc.) to get help writing SDDL specifications, validating syntax, or learning through examples. + +--- + +## A Note on Tooling + +The SDDL compiler and its command-line interface are evolving. Specific commands and options will change as the tooling matures. This chapter focused on the SDDL language itself, which is stable in its core design. For current information about compiler usage and OpenZL integration, refer to the OpenZL documentation and release notes. + +The language concepts you've learned here—records, arrays, parameters, variables—are the foundation that remains constant regardless of how the tooling evolves. + +--- + +## Summary + +In this chapter, you learned: + +- SDDL specifications describe binary formats through progressive examples +- Endianness must always be explicit +- Records organize reusable structures +- Arrays can be fixed-size, parameter-sized, or auto-sized +- Variables extract values for later use +- Conditional fields handle optional data +- The workflow: write SDDL → compile to bytecode → use with OpenZL +- Common patterns for typical binary format scenarios + +You're now ready to explore SDDL's features in greater depth in the following chapters. diff --git a/doc/mkdocs/doc/sddl/north-star/index.md b/doc/mkdocs/doc/sddl/north-star/index.md new file mode 100644 index 000000000..169bf9c1a --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/index.md @@ -0,0 +1,55 @@ +# SDDL North Star — Version 0.6 + +!!! warning "North Star Specification" + + This section describes SDDL version 0.6 — the **target specification**. It represents the design goals and intended features of SDDL, serving as a "North Star" for the project's development. + + The current implementation does not yet support all features described here. For documentation of the currently supported syntax, see the [Current Language](../index.md) section. + +## What is SDDL? + +SDDL provides a clear, readable way to describe complex binary formats while maintaining strict guarantees about parsing performance. It's designed to bridge the gap between human-readable format specifications and high-performance binary processing. + +## Key Features (Planned) + +- **Explicit and Unambiguous**: No hidden defaults or implicit behaviors +- **Performance Visibility**: Clear distinction between instant-parse and scan-required layouts +- **Type Safety**: Rich type system with explicit endianness +- **Validation**: Built-in support for format constraints and data validation +- **Flexible Layouts**: Support for fixed-size, variable-size, and delimiter-based data + +## Quick Example + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + flags: Int16LE +} + +header: Header +expect header.magic == "DPKT" +expect header.version >= 1 and header.version <= 3 +``` + +## Using SDDL with AI/LLM Assistants + +**Want help writing SDDL specifications?** We provide a specialized teaching document designed for AI assistants: + +**→ [SDDL for LLM (v0.6)](sddl-for-llm.md)** - Complete technical specification optimized for LLMs + +You can provide this document to your AI assistant (ChatGPT, Claude, etc.) and ask it to help you create SDDL descriptions for your binary formats. The document contains the complete language specification in a format that LLMs can easily understand and apply. + +## Documentation Structure + +1. **[Introduction & Motivation](introduction.md)** - Understanding SDDL's purpose and benefits +2. **[Getting Started](getting-started.md)** - Your first SDDL file +3. **[Core Concepts](core-concepts.md)** - Types, records, and validation +4. **[Understanding Instant-Parse](instant-parse.md)** - Performance and layout determinism +5. **[Arrays and Collections](arrays-collections.md)** - Working with repeated data +6. **[Advanced Layout Control](alignment-padding.md)** - Alignment, padding, and memory optimization +7. **[Conditional & Variant Data](conditional-variant.md)** - Handling dynamic structures +8. **[Variables and Expressions](variables-expressions.md)** - Computing derived values +9. **[Real-World Formats](real-formats.md)** - Complete examples +10. **[Best Practices](best-practices.md)** - Guidelines for effective SDDL +11. **[Quick Reference](reference.md)** - Quick lookup guide diff --git a/doc/mkdocs/doc/sddl/north-star/instant-parse.md b/doc/mkdocs/doc/sddl/north-star/instant-parse.md new file mode 100644 index 000000000..5c8e1d607 --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/instant-parse.md @@ -0,0 +1,445 @@ +# Understanding Instant-Parse + +*Chapter 4 - Understanding layout determinism* + +The instant-parse model is SDDL's most distinctive feature. It distinguishes between formats whose layout can be computed from parameters alone and those that require sequential scanning. This chapter explains what instant-parse means, when it matters, and how to work with it. + +For an overview of SDDL's language elements and how instant-parse applies across them, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## What Is Instant-Parse? + +An **instant-parse** type is one where all field offsets, sizes, and layout can be computed from parameters and constants alone, without examining the data itself. + +### The Core Distinction + +**Instant-Parse:** +```sddl +record Header(payload_size) { + magic: Bytes(4), + version: Int16LE, + payload: Bytes(payload_size) # Size is a parameter - known upfront +} +``` + +The layout of this record is fully determined by the `payload_size` parameter. Given that parameter, you can compute: + +- Magic starts at offset 0 +- Version starts at offset 4 +- Payload starts at offset 6 +- Total record size is 6 + payload_size + +No data needs to be read to know these offsets. + +**Requires-Scan:** +```sddl +record Message() { + magic: Bytes(4), + size: Int16LE, + payload: Bytes(size) # Size depends on parsed field - must scan +} +``` + +Here, you cannot know the payload offset or total record size until you read and parse the `size` field. The layout depends on data values, not just parameters. + +### Why This Matters + +Instant-parse status affects what you can do with the format: + +1. **Parallel processing:** Instant-parse arrays can be dispatched instantly, allowing parallel processing +2. **Zero-copy access:** Fields in instant-parse records can be accessed directly without parsing +3. **Predictability:** Layout behavior is explicit and enforceable at compile time + +The payoff is especially dramatic for arrays. A single record that requires a scan only delays parsing by a few bytes. The same record, when repeated thousands of times, forces the parser to walk the file sequentially element by element. Instant-parse arrays, by contrast, let the runtime jump to element `i` immediately, fan out work across CPU cores, and keep compression streams fed without waiting. As you read through the next chapter, keep in mind that the instant-parse property effectively determines whether your arrays behave like random-access tables or sequential streams. + +These capabilities make instant-parse formats faster to work with, but the key insight is that instant-parse is a **property of the format description**, not a performance optimization directive. + +--- + +## When a Type Requires Scanning + +A construct requires scanning when any of these conditions hold: + +### 1. Dependencies on Parsed Fields + +The most common case: a field or array size depends on another field referenced within the same scope. + +```sddl +record Container() { + count: UInt32LE, + items: Item[count] # Depends on local field: requires scan +} +``` + +The `items` array size isn't known until `count` is parsed. + +### 2. Delimiter-Based Parsing + +Any delimiter-based construct requires scanning: + +```sddl +text: Bytes until "\r\n\r\n" # Must scan to find delimiter +name: Bytes until 0x00 # Must scan to find null terminator +``` + +You cannot know the field size without scanning for the delimiter. + +### 3. State-Dependent Functions + +Functions like `current_position()` depend on parsing state: + +```sddl +record Dynamic() { + field1: Bytes(10), + var offset = current_position(), # Depends on parse state + field2: Bytes(offset) +} +``` + +This makes the record require scanning. + +### 5. Transitivity + +Instant-parse status is transitive. A construct is instant-parse only if all its components are instant-parse: + +```sddl +record Inner() { + size: UInt16LE, + data: Bytes(size) # Requires scan +} + +record Outer() { + inner: Inner # Also requires scan because Inner does +} +``` + +If any component requires scanning, the entire containing structure requires scanning. + +--- + +## The `@instant_parse` Annotation + +You can enforce instant-parse status with the `@instant_parse` annotation. + +### Basic Usage + +```sddl +record Header(has_checksum) { + magic: Bytes(4), + version: UInt16LE, + when (flags & 0x01) != 0 { checksum: UInt32LE } # Requires scan +} @instant_parse +``` + +If this record were modified to break instant-parse guarantees, the compiler would reject it: + +!!! danger "Compiler error" + ```sddl + record Header() { + magic: Bytes(4), + version: Int16LE, + size: Int16LE, + data: Bytes(size) # ERROR: depends on local field + } @instant_parse + ``` + + **Compiler output:** + ``` + ERROR: Record `Header` is not instant-parse + Field `data` depends on local field `size` (line 5) + ``` + +### Why Use `@instant_parse`? + +The annotation serves two purposes: + +1. **Documentation:** Makes the instant-parse requirement explicit +2. **Enforcement:** Prevents accidental changes that break instant-parse + +Use it when instant-parse is important to your format's design and you want the compiler to verify it. + +### Annotating Fields + +You can also annotate individual fields: + +```sddl +record Container(count) { + header: Bytes(16), + items: Item[count] @instant_parse # Enforce that items array is instant-parse +} +``` + +This verifies that `Item` is instant-parse and `count` is a parameter. + +--- + +## Instant-Parse in Different Contexts + +### Records + +A record is instant-parse when all its fields and their sizes depend only on parameters: + +```sddl +record Packet(payload_size) { + header: Bytes(12), + payload: Bytes(payload_size) +} @instant_parse +``` + +### Arrays + +An array is instant-parse when: +- Its element type is instant-parse +- Its size depends only on parameters or constants + +```sddl +record Grid(width, height) { + cells: Cell[height][width] # Instant-parse if Cell is instant-parse +} @instant_parse +``` + +### Conditional Fields + +Conditional fields using parameters are instant-parse: + +```sddl +record Packet(has_timestamp, has_checksum) { + id: Int32LE, + payload: Bytes(100), + when has_timestamp { timestamp: Int64LE }, + when has_checksum { checksum: UInt32LE } +} @instant_parse +``` + +Conditions referencing local fields require scanning: + +```sddl +record Packet() { + id: Int32LE, + flags: UInt8, + when (flags & 0x01) != 0 { extra: Int32LE } # Requires scan +} +``` + +### Unions + +A union is instant-parse when its selector is a parameter and all arms are instant-parse: + +```sddl +Union Payload(type, size) = { + case 1: Image(size), + case 2: Audio(size), + default: Raw(size) +} + +type: UInt8 +size: UInt32LE +payload: Payload(type, size) @instant_parse +``` + +--- + +## Practical Examples + +### Example 1: Image Header (Instant-Parse) + +```sddl +record ImageHeader() { + magic: Bytes(4), # "IMGF" + width: UInt32LE, + height: UInt32LE, + channels: UInt8, + bits_per_channel: UInt8, + _: Bytes(2) # Padding +} @instant_parse + +expect header.magic == "IMGF" +expect header.channels <= 4 +expect header.bits_per_channel == 8 or header.bits_per_channel == 16 +``` + +The header is fixed-size and instant-parse. All fields have known positions. + +### Example 2: TLV Format (Requires Scan) + +```sddl +# Type-Length-Value format +record TLV() { + type: UInt8, + length: UInt16LE, + value: Bytes(length) # Depends on local field: requires scan +} + +entries: scan TLV[] +``` + +This is the standard TLV pattern. It requires scanning because each value's size depends on its length field. + +--- + +## Understanding Compiler Diagnostics + +When the compiler reports an instant-parse violation, it explains the dependency chain. + +### Example Diagnostic + +```sddl +record Container() { + count: UInt32LE, + items: Item[count] +} @instant_parse +``` + +!!! danger "Compiler error" + **Compiler output:** + ``` + ERROR: Record `Container` is not instant-parse + Field `items` has size dependent on local field `count` (line 3) + + Dependency chain: + items[size] → count → local field + + Suggestion: Pass `count` as a parameter instead + ``` + +The diagnostic shows: +- What field violates instant-parse +- Why it violates instant-parse +- The dependency chain +- A suggested fix + +### Tracing Dependencies + +Complex violations may have long dependency chains: + +```sddl +record A() { + size: UInt16LE, + b: B(size) +} @instant_parse + +record B(n) { + c: C[n] +} + +record C() { + value: Int32LE +} +``` + +!!! danger "Compiler error" + **Compiler output:** + ``` + ERROR: Record `A` is not instant-parse + Field `b` depends on local field `size` (line 3) + + Dependency chain: + b → B(size) → size → local field + + Even though B and C are instant-parse, passing a local field + to B makes the result non-instant-parse. + ``` + +The compiler traces through the entire chain to explain the violation. + +--- + +## Common Patterns + +### Count-Prefixed Array (Requires Scan) + +```sddl +record Data() { + count: UInt32LE, + values: Int32LE[count] # Not instant-parse: depends on local field +} +``` + +### Count as Parameter (Instant-Parse) + +```sddl +record Data(item_count) { + values: Int32LE[item_count] # Instant-parse: depends on parameter +} + +count: UInt32LE +data: Data(count) +``` + +### Variable-Length Field (Requires Scan) + +```sddl +record Entry() { + name_len: UInt8, + name: Bytes(name_len) # Requires scan +} + +entries: scan Entry[] +``` + +### Fixed-Length Field (Instant-Parse) + +```sddl +record Entry() { + name: Bytes(32) # Always 32 bytes, instant-parse +} +``` + +### Conditional on Local Field (Requires Scan) + +```sddl +record Packet() { + flags: UInt8, + data: Bytes(100), + when (flags & 0x01) != 0 then checksum: UInt32LE # Requires scan +} +``` + +### Conditional on Parameter (Instant-Parse) + +```sddl +record Packet(has_checksum) { + id: Int32LE, + when has_checksum { checksum: UInt32LE } # Instant-parse +} @instant_parse + +flags: UInt8 +var has_crc = (flags & 0x01) != 0 +packet: Packet(has_crc) +``` + +--- + +## Summary + +Instant-parse is a fundamental concept in SDDL: + +**Definition:** + +- Instant-parse types have layout computable from parameters alone +- Requires-scan types need sequential parsing to determine layout + +**When Scanning Is Required:** + +- Dependencies on parsed fields +- Delimiter-based constructs +- State-dependent functions +- Transitivity: any component requiring scan makes the whole require scan + +**The `@instant_parse` Annotation:** + +- Documents instant-parse requirements +- Enforces compile-time verification +- Provides clear diagnostics when violated + +**Key Insight:** +Instant-parse is a property of the format description, not a performance directive. It describes whether the layout is statically computable from parameters alone. SDDL describes existing data layouts; you cannot "transform" a requires-scan format into instant-parse—you can only describe the format as it actually exists. + +--- + +## Where to Go Next + +- **[Arrays and Collections](arrays-collections.md)** to see how instant-parse affects repeated data. +- **[Alignment and Padding](alignment-padding.md)** if you need precise control over layout. +- **[Conditional & Variant Data](conditional-variant.md)** for optional fields and unions. diff --git a/doc/mkdocs/doc/sddl/north-star/introduction.md b/doc/mkdocs/doc/sddl/north-star/introduction.md new file mode 100644 index 000000000..d9ff6c03c --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/introduction.md @@ -0,0 +1,328 @@ +# Introduction & Motivation + +*Chapter 1 - Understanding SDDL's purpose and benefits* + +Binary data is everywhere. From databases to machine learning datasets, from network protocols to file formats, our digital world runs on structured binary data. Describing this data typically happens in two places: human-readable documentation (specifications, white papers, format descriptions) and executable code (parsers). SDDL provides a middle ground: a description that is both human-readable and directly usable by computers. + +--- + +## What is SDDL? + +**SDDL (Simple Data Description Language)** is a domain-specific language for describing binary file formats and data layouts. It provides a clear, human-readable way to specify how binary data is structured, without writing parsing code. + +Think of SDDL as a "blueprint language" for binary data. The actual parsing is handled by an interpreter that reads your SDDL specification. + +### A short example + +Consider the SAO (Smithsonian Astronomical Observatory) star catalog format used in the Silesia compression benchmark. The simplest version looks like this: + +```sddl +# Star catalog entry (28 bytes) +record StarEntry() { + SRA0: Float64LE, # Right Ascension (radians) + SDEC0: Float64LE, # Declination (radians) + ISP: Bytes(2), # Spectral type + MAG: Int16LE, # Magnitude + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion +} + +# File structure +header: Bytes(28) +stars: StarEntry[] +``` + +That's it. A few fields, clean and readable. Compare this to writing a parser with proper error handling, endianness management, and structure alignment—easily 200+ lines of code, with associated maintenance and security concerns. + +> **💡 Language Reference:** For a complete overview of SDDL's primitive types, records, and language constructs, see [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## The Problem: Manual Parser Development + +### The Documentation-to-Code Gap + +Binary formats are typically documented in two separate forms: + +1. **Human-readable documentation:** PDF specifications, RFC documents, white papers describing field layouts ("The header contains a 4-byte magic number, followed by a 32-bit little-endian size field...") + +2. **Executable code:** C/C++ parsers implementing the specification with buffer operations, pointer arithmetic, and error handling + +These two representations don't connect directly. Translating from documentation to code is manual work. When the format changes, both need updating, often by different people, which can lead to inconsistencies. + +SDDL provides a format description that is both readable and executable - serving as documentation that can be directly consumed by tools. + +### Two Approaches Before SDDL + +If you wanted to process binary data with OpenZL (or any compression tool), you had two options: + +### Option 1: Write Custom Parsing Code + +Writing a parser manually involves considerable boilerplate code. Getting byte offsets correct requires careful attention, and mistakes can be difficult to debug. When the format changes, multiple parts of the code need updating to stay consistent. The resulting code doesn't clearly communicate the format structure to someone reading it later. The entire process—writing, compiling, testing, and debugging—takes time that could be spent on other tasks. + +### Option 2: Use Generic Parsers + +Use existing schema languages (Protocol Buffers, Avro, etc.) that were designed for different purposes—typically for defining new formats rather than describing existing ones. + +These tools work in the opposite direction: they let you define a new format and generate code to serialize/deserialize it. But if you already have data in an existing format, you need to describe it as it is, not define how it should be. These schema languages also tend to include many features beyond simple format description, adding complexity. They focus on generating parsing code rather than describing data layout, and they don't provide visibility into performance characteristics like instant-parse. + +--- + +## The SDDL Proposition + +SDDL provides a simple, readable way to describe binary data formats that can be consumed by downstream processes like compression. The language is explicit about endianness and performance characteristics, learnable quickly, and simple enough for AI assistants to generate specifications from documentation. + +--- + +## SDDL in the OpenZL Workflow + +SDDL was designed with OpenZL compression in mind, though it's a standalone specification that could be used for other purposes. + +### The Compression Workflow + +```mermaid +flowchart TD + A[User writes
SDDL spec] --> B[Compile to
Bytecode] + B --> C[Training Phase
Find optimal compressor] + C --> D[Compression Phase
• SDDL interpreter parses
• Routes data to streams
• Compressor processes] + D --> E[Compressed Output] +``` + +### How SDDL Helps OpenZL + +SDDL tells OpenZL about your data's structure. OpenZL can then route different fields to separate streams, since different data types compress differently. It can apply specialized codecs—floats, integers, and strings each benefit from different compression techniques. Array-of-structures layouts can be transformed into structure-of-arrays when beneficial. When a format is instant-parse, OpenZL can parse the data very quickly. + +These capabilities allow OpenZL to achieve compression ratios and speeds that significantly outperform general-purpose compressors. + +--- + +## The Instant-Parse Model + +SDDL's most distinctive feature is the **instant-parse model**—the ability to determine at compile-time whether a format can be parsed with zero sequential dependencies. An instant-parse format is one where all field offsets, sizes, and layout can be computed from parameters and constants alone, without examining the data. + +**Instant-Parse Example:** +```sddl +record Header(size) { + magic: Bytes(4), + data: Bytes(size) # size is a parameter - known upfront +} +``` + +**Requires-Scan Example:** +```sddl +record Header() { + magic: Bytes(4), + size: Int32LE, + data: Bytes(size) # size depends on parsed field - must scan +} +``` + +When a format is instant-parse, parsing becomes much faster (often 10x or more), zero-copy techniques become possible, and multiple threads can work independently. The `@instant_parse` annotation makes this explicit and enforceable—the compiler will report an error if you accidentally add a scan dependency. For the SAO example, instant-parse enables negligible parsing overhead and multi-GB/s compression speeds. + +*For detailed information about all primitive types and their instant-parse characteristics, see the [Language Elements Overview](core-concepts.md#language-elements-overview).* + +--- + +## A More Complex Example + +Here's the full SAO format specification, showing SDDL's expressiveness: + +```sddl +record CatalogHeader() { + STAR0: Int32LE, # Subtract from star number to get sequence number + STAR1: Int32LE, # First star number in file + STARN: Int32LE, # Number of stars; <0 → coordinates J2000 + STNUM: Int32LE, # ID scheme / name flag + MPROP: Int32LE, # Motion info: 0=none, 1=proper, 2=radial + NMAG: Int32LE, # Number of magnitudes (0–10) + NBENT: Int32LE # Bytes per star entry +} + +record StarEntry(STNUM, MPROP, NMAG) { + when STNUM >= 0 { XNO: Float32LE }, # Catalog number + + SRA0: Float64LE, # Right Ascension + SDEC0: Float64LE, # Declination + ISP: Bytes(2), # Spectral type + + when abs(NMAG) > 0 { MAG: Int16LE[abs(NMAG)] }, # Magnitudes + + when MPROP >= 1 { + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion + } + when MPROP == 2 { SVEL: Float64LE }, # Radial velocity + + when STNUM < 0 { NAME: Bytes(-STNUM) } # Object name +} + +# File structure +header: CatalogHeader + +var STNUM = header.STNUM +var MPROP = header.MPROP +var NMAG = header.NMAG +var NBENT = header.NBENT +var record_count = abs(header.STARN) + +expect sizeof(StarEntry(STNUM, MPROP, NMAG)) == NBENT + +stars: StarEntry(STNUM, MPROP, NMAG)[record_count] +``` + +This describes the **entire SAO catalog format family**—handling different versions, optional fields, and validation—in under 40 lines. + +> **Understanding the Building Blocks:** This example uses records, parameters, variables, conditional fields, and arrays. For a systematic overview of these language elements, see [Language Elements Overview](core-concepts.md#language-elements-overview). + +--- + +## Comparison with Alternatives + +### vs Manual C/C++ Parsing + +| Aspect | Manual Parser | SDDL | +|--------|--------------|------| +| **Lines of code** | 200+ | 10-50 | +| **Development time** | Hours to days | Minutes | +| **Requires compiler** | Yes | No | +| **Self-documenting** | No | Yes | +| **LLM-friendly** | Challenging | Easy | +| **Performance visibility** | Hidden | Explicit | + +### vs Kaitai Struct + +**Kaitai Struct** is the closest alternative—a declarative language for binary formats that generates parsers in multiple programming languages. + +To understand the practical differences, let's compare how each language describes the simple SAO format: + +**SDDL (10 lines):** +```sddl +record StarEntry() { + SRA0: Float64LE, + SDEC0: Float64LE, + ISP: Bytes(2), + MAG: Int16LE, + XRPM: Float32LE, + XDPM: Float32LE +} + +header: Bytes(28) +stars: StarEntry[] +``` + +**Kaitai Struct (approximately 30+ lines in YAML):** +```yaml +meta: + id: sao + endian: le + +seq: + - id: header + size: 28 + - id: stars + type: star_entry + repeat: eos + +types: + star_entry: + seq: + - id: sra0 + type: f8 + - id: sdec0 + type: f8 + - id: isp + size: 2 + - id: mag + type: s2 + - id: xrpm + type: f4 + - id: xdpm + type: f4 +``` + +**Why SDDL Instead of Kaitai?** + +Kaitai Struct is a mature, well-designed language with a large ecosystem. So why create SDDL? The differences in the examples above point to specific design goals: + +1. **Conciseness:** SDDL aims for minimal syntax overhead. The format description should read almost like the data structure itself. YAML's metadata sections and type separation add structure that's valuable for code generation but verbose for simple description. + +2. **Explicit endianness:** In binary format work, endianness bugs are common and painful. SDDL requires every multi-byte type to declare its endianness (`Float64LE`, `Int32BE`), making it impossible to forget. This is visible at every field rather than being a global setting that must be remembered. + +3. **Performance as a first-class concern:** The instant-parse concept needed to be built into the language from the start, not added later. SDDL's type system tracks layout determinism, and the `@instant_parse` annotation enforces it at compile time. This was critical for OpenZL's compression performance requirements. + +4. **Self-contained descriptions:** SDDL specifications don't require metadata headers or configuration. The format description stands on its own, making it easier to read, share, and understand in isolation. + +5. **Integration model:** Rather than generating parsers in multiple languages, SDDL generates bytecode for a specialized runtime optimized for data streaming and compression workflows. This allows tight integration with OpenZL without requiring code generation and compilation. + +These aren't criticisms of Kaitai Struct—they reflect different design priorities. Kaitai was built for cross-platform parser generation and format exploration. SDDL was built for conciseness, performance visibility, and compression integration. + +**Looking Forward:** + +The languages serve different purposes and don't directly compete. Kaitai has a large installed base and ecosystem that SDDL doesn't attempt to replace. SDDL addresses specific needs within the OpenZL compression workflow. + +Future interoperability is possible. One could imagine a Kaitai compiler targeting SDDL bytecode, or tools that translate between the formats. The choice of description language and the choice of runtime engine don't have to be tightly coupled. + +### vs Protocol Buffers / Avro / FlatBuffers + +These are **schema definition languages**—they define the format of new data you're creating. + +**SDDL is different:** SDDL describes existing formats while schemas define new ones. SDDL lets you specify exact byte layout, whereas schemas make layout decisions for you. The fundamental use case differs—SDDL is for when you already have data and need to describe it. + +--- + +## When to Use SDDL + +SDDL is intended for data engineers who know their data formats and want to leverage that knowledge for better compression performance, without writing parsing code. You don't need to understand compression algorithms or OpenZL internals—just your data format. + +SDDL works well when you have existing binary data and need to describe its structure for OpenZL compression. Most common file formats fall within SDDL's capabilities—those with simple to moderate complexity. The instant-parse model provides performance visibility and control. The language is also well-suited for rapid prototyping and LLM-assisted development. + +SDDL may not be the best fit for extremely complex formats with heavy state machines or context-dependent parsing logic. If you need parsers in multiple programming languages, other tools are more appropriate. Formats requiring custom logic, complex validation, or computations may need dedicated parsers. For example, at Meta we use a dedicated parser for Thrift data due to its complexity and special requirements. + +--- + +## Quick Wins + +### 1. Instant Results with LLMs + +Give an LLM the SDDL specification (see the [SDDL for LLMs reference](sddl-for-llm.md)) and ask: + +> "Write an SDDL specification for the WAV audio format" + +It will produce a working spec, often on the first try. No debugging C++ code. + +### 2. Self-Documenting Formats + +Your SDDL spec **is** your format documentation. It's clear, unambiguous, and actually executable. + +--- + +## Current Status + +**SDDL is in active development**. The v0.6 specification is feature-complete for most common formats, with core features now stable. The project is expected to be production-ready within the next few months. SDDL can already describe complex formats like TIFF, GGUF, EXR, PLY, and multi-channel WAV. + +As the feature set matures, we expect rapid growth in adoption—particularly as users discover how much simpler SDDL makes working with binary data. + +--- + +## Next Steps + +Ready to get started? + +- **[Getting Started](getting-started.md):** Install SDDL and write your first spec +- **[Core Concepts](core-concepts.md):** Learn the fundamental building blocks, including the comprehensive [Language Elements Overview](core-concepts.md#language-elements-overview) +- **[Understanding Instant-Parse](instant-parse.md):** Deep dive into SDDL's key feature + +Or jump to the **[Language Reference](reference.md)** if you want the complete specification. + +--- + +## Summary + +SDDL is a **Simple Data Description Language** for describing binary data formats: + +- **Simple:** Focused language with clear semantics +- **Explicit:** No hidden defaults, explicit endianness +- **Performance-aware:** Instant-parse status is visible and enforceable +- **Self-documenting:** Format descriptions are readable +- **LLM-friendly:** Suitable for code generation +- **Practical:** Addresses common use cases in compression workflows diff --git a/doc/mkdocs/doc/sddl/north-star/real-formats.md b/doc/mkdocs/doc/sddl/north-star/real-formats.md new file mode 100644 index 000000000..6575463df --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/real-formats.md @@ -0,0 +1,586 @@ +# Real-World Formats + +*Chapter 9 - Complete examples* + +This chapter presents complete SDDL descriptions for real-world formats, demonstrating how the language features work together in practice. + +--- + + +## Coverage Map + +Use this table to jump from a language concept to the simplest full example that demonstrates it in context. + +| Concept | Example | +| --- | --- | +| `expect` validation | [SAO Catalog (Introduction)](introduction.md#a-more-complex-example) | +| `where` inline validation | [Example 1: PCM-16bit](#example-1-wave-pcm-audio-16-bit-mono-stereo) | +| Fixed-size arrays | [Example 1: PCM-16bit](#example-1-wave-pcm-audio-16-bit-mono-stereo) | +| Parameterized record arrays | [SAO Catalog (Introduction)](introduction.md#a-more-complex-example) | +| Auto-sized arrays | [SAO simple example (Introduction)](introduction.md#a-short-example) | +| `scan` keyword for arrays | [Example 4: BAM bioinformatics](#example-4-bam-bioinformatics-format) | +| `var` derived values | [SAO Catalog (Introduction)](introduction.md#a-more-complex-example) | +| `sizeof()` static size checks | [SAO Catalog (Introduction)](introduction.md#a-more-complex-example) | +| `parsed_length(field)` function | [Example 2: BMP 24-bit](#example-2-bmp-image-24-bit-rgb-uncompressed) | +| `align_up` row padding | [Example 2: BMP 24-bit](#example-2-bmp-image-24-bit-rgb-uncompressed) | +| `pad_to` sized scopes | [Example 3: WAV Extended](#example-3-wave-audio-extended-format-support) | +| `pad_align` record padding | [Example 2: BMP 24-bit](#example-2-bmp-image-24-bit-rgb-uncompressed) | +| `align(n)` directive | Not yet covered – see [Alignment chapter](alignment-padding.md#field-alignment-with-alignn) | +| `when { ... }` conditionals | [SAO Catalog (Introduction)](introduction.md#a-more-complex-example) | +| Delimiter-based fields (`Bytes until ...`) | [Example 4: BAM bioinformatics](#example-4-bam-bioinformatics-format) | +| Variant unions & dispatch | [Example 3: WAV Extended](#example-3-wave-audio-extended-format-support) | +| Enums, `in`, switch expressions | [Example 3: WAV Extended](#example-3-wave-audio-extended-format-support) | +| `soa` structure-of-arrays layout | Not yet covered – see [Arrays chapter](arrays-collections.md#structure-of-arrays-layout) | +| Annotations (`@instant_parse`, `@err_msg`, etc.) | Not yet covered – see [Annotations section](sddl-for-llm.md#10-annotations) | + +--- + +## Example 1: PCM 16-bit Audio (Mono/Stereo) + +**Format Restrictions:** + +This example focuses on the simplest PCM 16-bit WAV structure to teach basic SDDL concepts without additional complexity. It accepts mono or stereo audio with the standard 16-byte `fmt` chunk immediately followed by the `data` chunk. + +Note: most real WAV files include metadata chunks (LIST, JUNK, etc.) between these sections, which this simplified parser doesn't handle. For a more complete WAV parser that handles metadata chunks, extended formats, and other real-world variations, see [Example 3: WAVE Audio (Extended Format Support)](#example-3-wave-audio-extended-format-support). + + +**What This Example Teaches:** + +The spec shows how to use `where` clauses on each chunk field, compute array lengths from header values, and validate derived quantities such as `byte_rate` and `block_align`. It demonstrates straightforward RIFF parsing: verify the chunk IDs in order, enforce the size expectations, and then read the sample array according to the recorded length. + +```sddl +# WAV PCM 16-bit Mono/Stereo Format + +# RIFF Chunk +magic: Bytes(4) where magic == "RIFF" + +file_size: UInt32LE # Size of rest of file + +wave_id: Bytes(4) where wave_id == "WAVE" + +# Format Chunk +fmt_id: Bytes(4) where fmt_id == "fmt " + +fmt_size: UInt32LE where fmt_size == 16 # PCM format chunk is 16 bytes (rejects extended) + +audio_format: UInt16LE where audio_format == 1 # 1 = PCM (rejects compressed formats) + +num_channels: UInt16LE where num_channels == 1 or num_channels == 2 # Mono or stereo only + +sample_rate: UInt32LE # Any sample rate accepted + +byte_rate: UInt32LE where byte_rate == sample_rate * num_channels * 2 # Bytes per second + +block_align: UInt16LE where block_align == num_channels * 2 # Bytes per sample frame + +bits_per_sample: UInt16LE where bits_per_sample == 16 # 16-bit only + +# Data Chunk +data_id: Bytes(4) where data_id == "data" + +data_size: UInt32LE + +samples: Int16LE[data_size / 2] # 16-bit = 2 bytes per sample +``` + +**Validation and Rejection:** + +Any violation of the `where` predicates produces a data error: mismatched magic numbers, compressed formats (`audio_format != 1`), unsupported bit depths, channel counts outside {1,2}, or inconsistent `byte_rate`/`block_align`. The parser also fails if the chunk order differs from `RIFF → fmt → data` or if extra data remains after the samples. + +--- + +## Example 2: BMP Image (24-bit RGB, Uncompressed) + +**Format Restrictions:** + +This BMP description focuses on standard 24-bit RGB images with a BITMAPINFOHEADER. The parser accepts only bottom-up images (positive height), single-plane data, and the canonical 40-byte header. Indexed color depths, compressed variants (RLE4/8), OS/2 headers, and top-down layouts are rejected. Because the spec models scanlines explicitly, it enforces the 4-byte row alignment required by the format and ignores palette metadata. + +**What This Example Teaches:** + +The example shows how to validate each header field with `where`, describe RGB pixels as their own record, and wrap them in a `Scanline` that uses `pad_align 4` to satisfy row alignment. It also demonstrates shape checks by comparing `image_size` against `parsed_length(pixel_rows)` instead of re-deriving padding math. + +```sddl +# BMP 24-bit RGB Uncompressed Format + +# File Header (14 bytes) +magic: Bytes(2) where magic == "BM" + +file_size: UInt32LE + +reserved1: UInt16LE +reserved2: UInt16LE + +pixel_data_offset: UInt32LE + +# Info Header (40 bytes - BITMAPINFOHEADER) +header_size: UInt32LE where header_size == 40 # Standard BITMAPINFOHEADER only + +width: Int32LE where width > 0 + +height: Int32LE where height > 0 # Bottom-up only (top-down uses negative height) + +planes: UInt16LE where planes == 1 + +bits_per_pixel: UInt16LE where bits_per_pixel == 24 # 24-bit RGB only + +compression: UInt32LE where compression == 0 # BI_RGB (uncompressed) only + +image_size: UInt32LE # Can be 0 for uncompressed + +x_pixels_per_meter: Int32LE +y_pixels_per_meter: Int32LE + +colors_used: UInt32LE +colors_important: UInt32LE + +# Pixel Data Structures +record RGB() { + blue: UInt8, + green: UInt8, + red: UInt8 +} + +record Scanline(width) { + pixels: RGB[width] +} pad_align 4 # Rows padded to 4-byte boundaries + +# Pixel Data +pixel_rows: Scanline(width)[height] +expect image_size == 0 or image_size == parsed_length(pixel_rows) +``` + +**Validation and Rejection:** + +Files fail parsing when any header predicate is violated (wrong magic, alternative header size, negative dimensions, plane count not equal to 1, wrong bit depth, compression enabled). The spec also raises a data error if the pixel payload length does not match `parsed_length(pixel_rows)` or if trailing bytes remain after the rows are parsed. + +--- + +## Example 3: WAV Audio (Extended Format Support) + +**Format Scope:** + +This specification targets the broad range of uncompressed WAV files used in practice: PCM data from 8 to 32 bits, IEEE_FLOAT recordings at 32 or 64 bits, and EXTENSIBLE files whose subformat GUID resolves to PCM or FLOAT. It accepts one to eight channels and sample rates between 8 kHz and 384 kHz. Extended `fmt` payloads are parsed when present, and every `fmt`/`data` chunk is padded to even-byte boundaries. + +The parser rejects RF64/RIFX containers, compressed formats, EXTENSIBLE files with unsupported GUIDs, more than eight channels, atypical sample rates, and any file that inserts extra chunks between `fmt` and `data` or repeats either chunk. It also ensures `ValidBitsPerSample` matches `BitsPerSample` in EXTENSIBLE headers. + +**Concepts Illustrated:** + +This example combines enums and the `in` operator for dispatch, grouped `when { ... }` checks, `pad_to`/`pad_align` for chunk sizing, nested unions for sample data, and switch expressions to resolve EXTENSIBLE GUIDs. It also demonstrates GUID validation, use of `parsed_length()` to confirm RIFF container sizes, and layered validation to keep `fmt`, `data`, and derived fields consistent. + +```sddl +# WAV Extended Format - PCM/FLOAT (1-8 channels, 8-384kHz) +# Accepts: PCM (8/16/24/32-bit), IEEE_FLOAT (32/64-bit), EXTENSIBLE (PCM/FLOAT subtypes) +# Rejects: Compressed formats, extra chunks, invalid invariants + +# ---------- Enums ---------- +enum WaveFormat { PCM = 1, IEEE_FLOAT = 3, EXTENSIBLE = 0xFFFE } + +# ---------- Fixed headers ---------- +record RIFF_Header() { + ChunkID: Bytes(4), + ChunkSize: UInt32LE, # bytes after this field (file_size - 8) + Format: Bytes(4) +} + +record ChunkHeader() { + ID: Bytes(4), # "fmt ", "data" + Size: UInt32LE # payload byte count (excludes pad) +} + +# ---------- 'fmt ' payload ---------- +record FmtCore() { + AudioFormat: UInt16LE, # 1, 3, or 0xFFFE + NumChannels: UInt16LE, + SampleRate: UInt32LE, + ByteRate: UInt32LE, + BlockAlign: UInt16LE, + BitsPerSample: UInt16LE +} + +# Extra depends on cbSize → requires scanning +record FmtExtra(total_size) { + cbSize: UInt16LE, + expect cbSize == total_size - 16, + ExtraData: Bytes(cbSize) +} + +record FmtExtensibleTail() { + ValidBitsPerSample: UInt16LE, + ChannelMask: UInt32LE, + SubFormat: Bytes(16) # GUID +} + +# Size-bounded scope via pad_to +record FmtPayload(total_size) { + core: FmtCore, + + # Profile guards + expect core.AudioFormat in WaveFormat, # {1,3,0xFFFE} + expect between(1, core.NumChannels, 8), + expect between(8000, core.SampleRate, 384000), + expect ( + (core.AudioFormat == WaveFormat.PCM and (core.BitsPerSample == 8 or core.BitsPerSample == 16 or core.BitsPerSample == 24 or core.BitsPerSample == 32)) + or (core.AudioFormat == WaveFormat.IEEE_FLOAT and (core.BitsPerSample == 32 or core.BitsPerSample == 64)) + or (core.AudioFormat == WaveFormat.EXTENSIBLE) + ), + + # Typical size discipline (fail-fast) + when core.AudioFormat == WaveFormat.PCM { expect (total_size == 16) }, + when core.AudioFormat == WaveFormat.IEEE_FLOAT { expect (total_size >= 18) }, + when core.AudioFormat == WaveFormat.EXTENSIBLE { expect (total_size >= 40) }, + + when total_size > 16 { extra: FmtExtra(total_size) }, + + # Extensible constraints (grouped) + when core.AudioFormat == WaveFormat.EXTENSIBLE { + ext: FmtExtensibleTail, + expect ext.ValidBitsPerSample == core.BitsPerSample, + expect ( + # PCM GUID {00000001-0000-0010-8000-00AA00389B71} + ext.SubFormat == [0x01,0x00,0x00,0x00, 0x00,0x00, 0x10,0x00, 0x80,0x00, 0x00,0xAA,0x00,0x38,0x9B,0x71] + or + # FLOAT GUID {00000003-0000-0010-8000-00AA00389B71} + ext.SubFormat == [0x03,0x00,0x00,0x00, 0x00,0x00, 0x10,0x00, 0x80,0x00, 0x00,0xAA,0x00,0x38,0x9B,0x71] + ) + }, + + # Algebraic invariants + var bytes_per_sample = ceil_div(core.BitsPerSample, 8), + expect core.BlockAlign == core.NumChannels * bytes_per_sample, + expect core.ByteRate == core.SampleRate * core.BlockAlign +} pad_to total_size + +# ---------- Bit-depth sample unions ---------- +Union PCM_Sample(bits) = { + case 8: UInt8, # PCM8 is unsigned in RIFF + case 16: Int16LE, + case 24: Bytes(3), # 24-bit stored as 3 bytes + case 32: Int32LE +} + +Union Float_Sample(bits) = { + case 32: Float32LE, + case 64: Float64LE +} + +# ---------- Sample atom (normalized format → bits) ---------- +Union SampleAtom(fmt_eff, bits) = { + case WaveFormat.PCM: PCM_Sample(bits), + case WaveFormat.IEEE_FLOAT: Float_Sample(bits) +} + +# ---------- Interleaved frame ---------- +record InterleavedFrame(fmt_eff, bits, channels) { + ch: SampleAtom(fmt_eff, bits)[channels] +} + +# ---------- 'data' payload ---------- +record DataPayload(fmt_eff, bits, channels, block_align, total_bytes) { + var bps = ceil_div(bits, 8), + expect block_align == channels * bps, + expect total_bytes % block_align == 0, + var frames = total_bytes / block_align, + frames_data: InterleavedFrame(fmt_eff, bits, channels)[frames] +} + +# ---------- Chunk wrappers (size-bounded + even padding) ---------- +record FmtChunk() { + h: ChunkHeader where h.ID == "fmt ", + body: FmtPayload(h.Size) +} pad_align 2 + +record DataChunk(fmt_eff, bits, channels, block_align) { + h: ChunkHeader where h.ID == "data", + body: DataPayload(fmt_eff, bits, channels, block_align, h.Size) +} pad_align 2 + +# ========================================== +# ROOT LAYOUT +# ========================================== +riff: RIFF_Header where riff.ChunkID == "RIFF" and riff.Format == "WAVE" + +fmt: FmtChunk + +# Map EXTENSIBLE GUID to format tag (for PCM or FLOAT subtypes) +# Uses boolean-to-integer trick: (condition) evaluates to 0 or 1, multiply by desired tag +# If PCM GUID matches: 1*1=1; if FLOAT GUID matches: 1*3=3; if neither: 0+0=0 +var subfmt_tag = + (fmt.body.ext.SubFormat == [0x01,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71]) * 1 + + (fmt.body.ext.SubFormat == [0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71]) * 3 + +var fmt_eff = + switch fmt.body.core.AudioFormat { + case WaveFormat.PCM: WaveFormat.PCM, + case WaveFormat.IEEE_FLOAT: WaveFormat.IEEE_FLOAT, + case WaveFormat.EXTENSIBLE: + switch subfmt_tag { + case 1: WaveFormat.PCM, + case 3: WaveFormat.IEEE_FLOAT, + }, + } + +data: DataChunk(fmt_eff, + fmt.body.core.BitsPerSample, + fmt.body.core.NumChannels, + fmt.body.core.BlockAlign) + +# RIFF size must account for the 4-byte "WAVE" + both chunks (incl. padding) +expect riff.ChunkSize == 4 + parsed_length(fmt) + parsed_length(data) + +``` + +--- + +## Example 4: BAM bioinformatics format + +**Concepts Illustrated:** + +This example introduces several advanced patterns not shown in earlier examples: **inline record definitions** with parameters for one-off structures, **scoped auto-sized arrays** using `pad_to` to create a bounded scope for delimiter-free parsing (`scan BamTag[]` within `tags_section`), and **unions with delimiter-based parsing** (`Bytes until 0x00` for null-terminated strings). It also demonstrates byte array literal comparisons (`magic == [0x42, 0x41, 0x4D, 0x01]`), float types in union dispatch, default cases for unsupported variants, and complex multi-component size calculations (`fixed_rest`). The spec shows how to model TAG:TYPE:VALUE triplet structures and handle variable-length sections that depend on computed sizes. + +```sddl +# BAM (Binary Alignment/Map) — core layout (decompressed payload) +# +# Supported subset: Standard BAM v1 structure after BGZF decompression — +# valid magic ("BAM\1"), well-formed SAM text header, proper reference table, +# and alignment records whose internal sizes (read name, CIGAR, packed seq, quals, aux payload) match block_size. +# Auxiliary tags are parsed as TAG:TYPE:VALUE triplets; basic types (char, int, float, string) are modeled, +# but array types ('B') are not fully decoded. +# +# Rejected: Any non-v1 extensions, malformed records (negative lengths, mismatched sizes, malformed names), +# nonstandard or malformed aux encodings. BGZF framing itself is out of scope. + +# +# Per-record fixed header (32 bytes total, including block_size) +# +record BamCore() { + block_size: Int32LE, # size of the rest of the record (after this field) + + refID: Int32LE, # -1 for unmapped + pos: Int32LE, # 0-based position on ref + + l_read_name: UInt8, # read name length, including '\0' + mapq: UInt8, # mapping quality + bin: UInt16LE, # bin for indexing + + n_cigar_op: UInt16LE, # number of CIGAR operations + flag: UInt16LE, # SAM FLAG + + l_seq: Int32LE, # read length (bases) + next_refID: Int32LE, # mate's refID + next_pos: Int32LE, # mate's pos + tlen: Int32LE, # template length +} + +# +# Reference sequence entry in the header +# +record RefSeq() { + l_name: Int32LE where l_name > 0, # length of name including trailing '\0' + + name: Bytes(l_name), # NUL-terminated C string + + l_ref: Int32LE where l_ref >= 0 # reference length (bases) +} + +# +# Auxiliary tag: TAG:TYPE:VALUE triplet +# +record BamTag() { + tag: Bytes(2), # Two-character tag name (e.g., "NM", "MD", "AS") + type_code: UInt8, # Type code: 'A', 'c', 'C', 's', 'S', 'i', 'I', 'f', 'Z', 'H', 'B' + + value: Union(type_code) { + case 'A': UInt8, # ASCII character + case 'c': Int8, # signed int8 + case 'C': UInt8, # unsigned int8 + case 's': Int16LE, # signed int16 + case 'S': UInt16LE, # unsigned int16 + case 'i': Int32LE, # signed int32 + case 'I': UInt32LE, # unsigned int32 + case 'f': Float32LE, # float + case 'Z': Bytes until 0x00 include_delim, # null-terminated string + case 'H': Bytes until 0x00 include_delim, # hex string (null-terminated) + # Note: 'B' (typed array) would require nested structure: type + count + elements + # Omitted for simplicity; + # Non listed case will be rejected at runtime + } +} + +# +# Full BAM alignment record (one read / template) +# +record BamRecord() { + core: BamCore, + + # + # Basic sanity on core fields + # + expect core.l_read_name > 0, + expect core.n_cigar_op >= 0, + expect core.l_seq >= 0, + + # + # Fixed-size part of the record AFTER block_size: + # 28 bytes of BamCore (excluding block_size itself) + # + l_read_name + # + 4 * n_cigar_op + # + ceil_div(l_seq, 2) (4-bit packed sequence) + # + l_seq (qualities) + # + var fixed_rest = + 28 + + core.l_read_name + + 4 * core.n_cigar_op + + ceil_div(core.l_seq, 2) + + core.l_seq, + + expect core.block_size >= fixed_rest, + + var tags_len = core.block_size - fixed_rest, + + # + # Variable-length sections in order + # + read_name: Bytes(core.l_read_name), + # includes trailing '\0', as in SAM + + cigar: UInt32LE[core.n_cigar_op], + # (len << 4) | op_code; op semantics not modelled here + + seq_packed: Bytes(ceil_div(core.l_seq, 2)), + # 4-bit packed sequence: 2 bases per byte + + qual: UInt8[core.l_seq], + # per-base quality scores (Phred-encoded) + + # + # Auxiliary tags: TAG:TYPE:VALUE triplets in bounded scope + # + tags_section: Record(tags_len) { + tags: scan BamTag[] + } pad_to tags_len, +} + +# +# Complete BAM file (decompressed BGZF payload) +# +magic: Bytes(4), +expect magic == [0x42, 0x41, 0x4D, 0x01], # "BAM\1" + +# +# Textual SAM header (optional, may be empty) +# +l_text: Int32LE where l_text >= 0, + +header_text: Bytes(l_text), + +# +# Reference sequence dictionary +# +n_ref: Int32LE where n_ref >= 0, + +references: RefSeq[n_ref], + +# +# Alignment records until end of file +# BamRecord is non-instant-parse, so we use `scan` here. +# +records: scan BamRecord[], +``` + +--- + +## Common Patterns From These Examples + +### Magic Number Validation + +All three examples validate format signatures (Examples 1, 2, 3): + +```sddl +magic: Bytes(4) where magic == "RIFF" +``` + +### Derived Size Calculations + +Computing array sizes from header fields (Examples 1, 2, 3): + +```sddl +data_size: UInt32LE +samples: Int16LE[data_size / 2] +``` + +### Field Validation + +Using `expect` to validate invariants (Examples 1, 2, 3): + +```sddl +block_align: UInt16LE +expect block_align == num_channels * 2 +``` + +### Alignment with `align_up` + +Row or block padding to boundaries (Example 2): + +```sddl +var row_size_padded = align_up(row_size_unpadded, 4) +``` + +### Unions for Variants + +Dispatching on format types (Example 3): + +```sddl +Union PCM_Sample(bits) = { + case 8: UInt8, + case 16: Int16LE, + case 24: Bytes(3), + case 32: Int32LE +} +``` + +### Size-Bounded Records with `pad_to` + +Enforcing exact chunk sizes (Example 3): + +```sddl +record FmtPayload(total_size) { + # ... fields ... +} pad_to total_size +``` + +### Chunk Padding with `pad_align` + +Even-byte boundaries for RIFF chunks (Example 3): + +```sddl +record FmtChunk() { + # ... fields ... +} pad_align 2 +``` + +--- + +## Summary + +These three examples show SDDL's core features in action: + +- **Example 1** demonstrates basic validation and size calculations +- **Example 2** adds alignment and padding for image rows +- **Example 3** shows advanced features: enums, unions, GUIDs, and complex validation + +**Key Principles:** + +- Always validate magic numbers and critical fields +- Use `var` for derived calculations +- Explicitly specify endianness (LE/BE) +- Start simple and add complexity incrementally +- Test with real files to validate your description + +--- + +## Where to Go Next + +- **[Reference](reference.md)** for a concise syntax summary while writing specs. +- Revisit the chapter that matches the feature you need (arrays, conditionals, etc.) and compare with these examples. +- Validate your own SDDL files against real data to confirm the structure. diff --git a/doc/mkdocs/doc/sddl/north-star/reference.md b/doc/mkdocs/doc/sddl/north-star/reference.md new file mode 100644 index 000000000..187598a9f --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/reference.md @@ -0,0 +1,375 @@ +# Quick Reference + +*Chapter 11 - Quick lookup for SDDL syntax and features* + +This reference provides a quick lookup for SDDL syntax, types, operators, and functions. For detailed explanations and examples, follow the chapter links. + +--- + +## Type Reference + +### Primitive Integer Types + +| Type | Size | Signed | Endian | Chapter | +|------|------|--------|--------|---------| +| `Int8` | 1 byte | Yes | N/A | [Core Concepts](core-concepts.md#primitive-types) | +| `Int16LE`, `Int16BE` | 2 bytes | Yes | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `Int32LE`, `Int32BE` | 4 bytes | Yes | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `Int64LE`, `Int64BE` | 8 bytes | Yes | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `UInt8` | 1 byte | No | N/A | [Core Concepts](core-concepts.md#primitive-types) | +| `UInt16LE`, `UInt16BE` | 2 bytes | No | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `UInt32LE`, `UInt32BE` | 4 bytes | No | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `UInt64LE`, `UInt64BE` | 8 bytes | No | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | + +**Note:** All multi-byte types must explicitly specify endianness (`LE` or `BE`). + +### Floating-Point Types + +| Type | Size | Format | Endian | Chapter | +|------|------|--------|--------|---------| +| `Float16LE`, `Float16BE` | 2 bytes | IEEE 754 | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `Float32LE`, `Float32BE` | 4 bytes | IEEE 754 | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `Float64LE`, `Float64BE` | 8 bytes | IEEE 754 | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | +| `BFloat16LE`, `BFloat16BE` | 2 bytes | Google bfloat16 | Little/Big | [Core Concepts](core-concepts.md#primitive-types) | + +### Raw Bytes + +| Type | Description | Chapter | +|------|-------------|---------| +| `Bytes(n)` | Fixed-size byte array of length `n` | [Core Concepts](core-concepts.md#bytes-type) | +| `Bytes until delim` | Variable-size bytes until delimiter | [Core Concepts](core-concepts.md#delimiter-based-parsing) | + +--- + +## Syntax Quick Reference + +### Records + +```sddl +record TypeName(param1, param2) { + field1: Type1, + field2: Type2(param1) +} pad_to size pad_align boundary +``` + +**See:** [Core Concepts - Records](core-concepts.md#records) + +### Unions + +```sddl +Union TypeName(selector, param) = { + case 1: Type1(param), + case 2, 3: Type2(param), + case 4..10: Type3(param), + default: Type4(param) +} +``` + +**See:** [Conditional & Variant Data - Unions](conditional-variant.md#unions-for-variant-data) + +### Enumerations + +```sddl +enum EnumName { + VALUE1 = 1, + VALUE2 = 2, + VALUE3 = 1 << 2 +} +``` + +**See:** [Conditional & Variant Data - Enumerations](conditional-variant.md#enumerations) + +### Conditional Fields + +**Single field:** +```sddl +when condition { field: Type } +``` + +**Block form:** +```sddl +when condition { + field1: Type1, + field2: Type2, + var x = field1 + field2 +} +``` + +**See:** [Conditional & Variant Data - Conditional Fields](conditional-variant.md#conditional-fields-with-when) + +### Arrays + +```sddl +fixed: Type[count] # Fixed-size +multi: Type[height][width] # Multi-dimensional +auto: Type[] # Auto-sized (to end of scope) +soa_array: soa Type[count] # Structure-of-arrays +``` + +**See:** [Arrays & Collections](arrays-collections.md) + +### Variables + +```sddl +var name = expression +``` + +**See:** [Variables & Expressions](variables-expressions.md#the-var-statement) + +### Validation + +```sddl +expect condition # Standalone validation +field: Type where (condition) # Inline validation +``` + +**See:** [Variables & Expressions](variables-expressions.md#validation) + +### Switch Expressions + +```sddl +var value = switch selector { + case 1: result1, + case 2, 3: result2, + case 4..10: result3, + default: result4 +} +``` + +**Rules:** + +- All cases must return the same type +- Overlapping ranges cause a format error +- No match without `default` causes a data error + +**See:** [Variables & Expressions - Switch Expressions](variables-expressions.md#switch-expressions) + +--- + +## Operator Reference + +### Arithmetic Operators + +| Operator | Description | Example | Chapter | +|----------|-------------|---------|---------| +| `+` | Addition | `a + b` | [Variables & Expressions](variables-expressions.md#integer-arithmetic) | +| `-` | Subtraction | `a - b` | [Variables & Expressions](variables-expressions.md#integer-arithmetic) | +| `*` | Multiplication | `a * b` | [Variables & Expressions](variables-expressions.md#integer-arithmetic) | +| `/` | Division | `a / b` | [Variables & Expressions](variables-expressions.md#integer-arithmetic) | +| `%` | Modulo | `a % b` | [Variables & Expressions](variables-expressions.md#integer-arithmetic) | + +**Note:** All arithmetic is 64-bit signed. Overflow or division by zero causes a format error. + +### Bitwise Operators + +| Operator | Description | Example | Chapter | +|----------|-------------|---------|---------| +| `&` | Bitwise AND | `flags & 0x01` | [Variables & Expressions](variables-expressions.md#bitwise-operations) | +| `\|` | Bitwise OR | `a \| b` | [Variables & Expressions](variables-expressions.md#bitwise-operations) | +| `^` | Bitwise XOR | `a ^ b` | [Variables & Expressions](variables-expressions.md#bitwise-operations) | +| `<<` | Left shift | `value << 8` | [Variables & Expressions](variables-expressions.md#bitwise-operations) | +| `>>` | Right shift | `value >> 8` | [Variables & Expressions](variables-expressions.md#bitwise-operations) | + +### Comparison Operators + +| Operator | Description | Example | Chapter | +|----------|-------------|---------|---------| +| `==` | Equal | `a == b` | [Variables & Expressions](variables-expressions.md#comparisons) | +| `!=` | Not equal | `a != b` | [Variables & Expressions](variables-expressions.md#comparisons) | +| `<` | Less than | `a < b` | [Variables & Expressions](variables-expressions.md#comparisons) | +| `<=` | Less or equal | `a <= b` | [Variables & Expressions](variables-expressions.md#comparisons) | +| `>` | Greater than | `a > b` | [Variables & Expressions](variables-expressions.md#comparisons) | +| `>=` | Greater or equal | `a >= b` | [Variables & Expressions](variables-expressions.md#comparisons) | +| `in` | Enum membership | `value in EnumType` | [Conditional & Variant Data](conditional-variant.md#enum-membership-testing-with-in) | + +### Logical Operators + +| Operator | Description | Example | Chapter | +|----------|-------------|---------|---------| +| `and` | Logical AND | `a and b` | [Variables & Expressions](variables-expressions.md#logical-operations) | +| `or` | Logical OR | `a or b` | [Variables & Expressions](variables-expressions.md#logical-operations) | +| `not` | Logical NOT | `not a` | [Variables & Expressions](variables-expressions.md#logical-operations) | + +### Operator Precedence + +SDDL follows C11 operator precedence. Use parentheses for clarity. + +**See:** [Variables & Expressions - Operator Precedence](variables-expressions.md#operator-precedence) + +--- + +## Function Reference + +### Mathematical Functions + +| Function | Description | Returns | Chapter | +|----------|-------------|---------|---------| +| `abs(x)` | Absolute value of x | 64-bit signed int | [Variables & Expressions](variables-expressions.md#mathematical-functions) | +| `min(a, b)` | Minimum of a and b | 64-bit signed int | [Variables & Expressions](variables-expressions.md#mathematical-functions) | +| `max(a, b)` | Maximum of a and b | 64-bit signed int | [Variables & Expressions](variables-expressions.md#mathematical-functions) | +| `clamp(l, x, h)` | Clamp x to range [l, h] | 64-bit signed int | [Variables & Expressions](variables-expressions.md#mathematical-functions) | +| `sgn(x)` | Sign of x (-1, 0, or 1) | 64-bit signed int | [Variables & Expressions](variables-expressions.md#mathematical-functions) | +| `between(l, x, h)` | True if l ≤ x ≤ h | Boolean (0 or 1) | [Variables & Expressions](variables-expressions.md#mathematical-functions) | + +### Alignment and Division + +| Function | Description | Returns | Chapter | +|----------|-------------|---------|---------| +| `ceil_div(x, d)` | Ceiling division ⌈x / d⌉ | 64-bit signed int | [Variables & Expressions](variables-expressions.md#alignment-and-division) | +| `align_up(x, a)` | Round x up to multiple of a | 64-bit signed int | [Variables & Expressions](variables-expressions.md#alignment-and-division) | + +### Size and Position Functions + +| Function | Description | Instant-Parse? | Chapter | +|----------|-------------|----------------|---------| +| `sizeof(T())` | Static size of type T | Yes | [Variables & Expressions](variables-expressions.md#size-and-position-functions) | +| `parsed_length(field)` | Parsed byte size of field | No (requires scan) | [Variables & Expressions](variables-expressions.md#size-and-position-functions) | +| `current_position()` | Current parser position | No (requires scan) | [Variables & Expressions](variables-expressions.md#size-and-position-functions) | +| `scope_remaining()` | Bytes remaining in scope | No (requires scan) | [Variables & Expressions](variables-expressions.md#size-and-position-functions) | + +--- + +## Padding and Alignment + +### Record-Level Modifiers + +| Modifier | Description | Chapter | +|----------|-------------|---------| +| `pad_to n` | Extend record to exactly n bytes | [Alignment & Padding](alignment-padding.md#pad-to) | +| `pad_align n` | Round record size up to multiple of n | [Alignment & Padding](alignment-padding.md#pad-align) | + +Both can be combined: `pad_to` is applied first, then `pad_align`. + +### Field-Level Alignment + +```sddl +aligned_field: align(16) Type +``` + +**See:** [Alignment & Padding - Field Alignment](alignment-padding.md#field-alignment) + +--- + +## Annotations + +| Annotation | Purpose | Chapter | +|------------|---------|---------| +| `@instant_parse` | Enforce instant-parse requirement | [Instant-Parse Model](instant-parse.md#enforcing-instant-parse) | +| `@err_msg "text"` | Custom error message for validation | [Best Practices](best-practices.md) | +| `@chunk_size` | Hint for chunk processing | [sddl-for-llm](sddl-for-llm.md#annotations) | + +**See:** [sddl-for-llm - Annotations](sddl-for-llm.md#annotations) + +--- + +## Instant-Parse Model + +A type is **instant-parse** if all field offsets and sizes can be computed from parameters and constants alone (no dependency on parsed data). + +### What Breaks Instant-Parse + +- Field size/offset depends on previously parsed field +- Using `Bytes until` (delimiter-based parsing) +- `expect` or `where` referencing local fields +- Using `current_position()` or state-dependent functions +- Auto-sized arrays (`Type[]`) + +### Instant-Parse Rules + +| Construct | Instant-Parse When... | +|-----------|----------------------| +| Record | All fields are instant-parse and no local field dependencies | +| Union | Selector is parameter/constant AND all cases are instant-parse | +| Array | Size is parameter/constant AND element type is instant-parse | +| Variable | References only parameters/constants | +| Conditional | Condition uses only parameters/constants | + +**See:** [Instant-Parse Model](instant-parse.md) + +--- + +## Common Patterns + +### Magic Number Validation + +```sddl +magic: Bytes(4) +expect magic == "RIFF" +``` + +**See:** [Real-World Formats - Common Patterns](real-formats.md#common-patterns-from-these-examples) + +### Length-Prefixed Data + +```sddl +length: UInt32LE +data: Bytes(length) +``` + +### Flag Extraction + +```sddl +flags: UInt8 +var has_feature = (flags & 0x01) != 0 +when has_feature { feature_data: FeatureData } +``` + +**See:** [Variables & Expressions - Flag Extraction](variables-expressions.md#example-2-flag-extraction) + +### Version-Based Layout + +```sddl +version: UInt16LE +when version >= 2 { extended_fields: ExtendedData } +``` + +**See:** [Conditional & Variant Data - Version-Specific Fields](conditional-variant.md#pattern-version-specific-fields) + +### Array Size Computation + +```sddl +width: UInt32LE +height: UInt32LE +var num_pixels = width * height +pixels: Pixel[num_pixels] +``` + +**See:** [Variables & Expressions - Computing Array Sizes](variables-expressions.md#example-1-computing-array-sizes) + +--- + +## Error Types + +| Error Type | When It Occurs | Example | +|------------|----------------|---------| +| **Format Error** | Structural contradiction | Overlapping union cases, `pad_to` too small, overflow | +| **Data Error** | Data doesn't match expected structure | Failed `expect`, missing delimiter, unmatched union case | +| **Instant-Parse Violation** | `@instant_parse` requirement not met | Field depends on parsed data | + +**See:** [sddl-for-llm - Error Classes](sddl-for-llm.md#error-classes) + +--- + +## Keywords + +**Reserved:** `Record`, `Union`, `enum`, `when`, `then`, `case`, `default`, `var`, `expect`, `where`, `scan`, `soa`, `align`, `pad_to`, `pad_align`, `until`, `include_delim`, `switch`, `and`, `or`, `not`, `in` + +**See:** [Getting Started - Basic Syntax](getting-started.md#basic-syntax-rules) + +--- + +## Complete Documentation + +For comprehensive learning and detailed explanations: + +1. **[Introduction](introduction.md)** - What is SDDL and why use it? +2. **[Getting Started](getting-started.md)** - Your first SDDL description +3. **[Core Concepts](core-concepts.md)** - Types, records, and basic structures +4. **[Arrays & Collections](arrays-collections.md)** - Working with arrays +5. **[Instant-Parse Model](instant-parse.md)** - Performance and layout +6. **[Alignment & Padding](alignment-padding.md)** - Memory layout control +7. **[Conditional & Variant Data](conditional-variant.md)** - Unions and conditionals +8. **[Variables & Expressions](variables-expressions.md)** - Computing values +9. **[Best Practices](best-practices.md)** - Guidelines for effective SDDL +10. **[Real-World Formats](real-formats.md)** - Complete examples (WAV, BMP) +11. **[sddl-for-llm](sddl-for-llm.md)** - Complete technical specification diff --git a/doc/mkdocs/doc/sddl/north-star/sddl-for-llm.md b/doc/mkdocs/doc/sddl/north-star/sddl-for-llm.md new file mode 100644 index 000000000..86f952222 --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/sddl-for-llm.md @@ -0,0 +1,416 @@ +# SDDL (Simple Data Description Language) — Specification v0.6 + +SDDL describes binary file formats that can then be exploited by a downstream process, such as compression or transformation. +This document is meant to be read by a LLM, to teach it how to write an SDDL specification. + +--- + +## **1. Core Syntax** + +### **1.1 Lexical Rules** + +* At root level, statements (`var`, `expect`, field use, type declaration) are newline-terminated. +* Within any block `{}`, `()`, or `[]`, items are comma-separated; trailing commas allowed. +* `#` starts an end-of-line comment. +* Identifiers follow `[A-Za-z_][A-Za-z0-9_]*`. +* Field names must be unique within a record; `_` may repeat for throwaways. +* `var` names must be unique within their scope. + +--- + +## **2. Basic Types** + +* `Int8`, `Int16LE`, `Int32LE`, `Int64LE` — signed (little-endian) +* `Int16BE`, `Int32BE`, `Int64BE` — signed (big-endian) +* `UInt8`, `UInt16LE`, `UInt32LE`, `UInt64LE` — unsigned (little-endian) +* `UInt16BE`, `UInt32BE`, `UInt64BE` — unsigned (big-endian) +* `Float16LE`, `Float32LE`, `Float64LE` — IEEE floats (little-endian) +* `Float16BE`, `Float32BE`, `Float64BE` — IEEE floats (big-endian) +* `BFloat16LE`, `BFloat16BE` — Google bfloat16 +* `Bytes(n)` — untyped blob of `n` bytes + +No global endian default — all multi-byte primitives must specify `LE` or `BE`. +Primitive types are always **instant-parse**. + +--- + +## **3. Instant-Parse Model** + +**instant-parse**: All field offsets, sizes, alignments computable from parameters/constants alone. +**requires scan**: Layout depends on parsed data or delimiter search. + +**Triggers scan requirement:** +* Field size/offset/branch depends on previously parsed field +* `Bytes until ...` delimiter construct +* `expect`/`where` referencing local fields +* `current_position()` or state-dependent function +* Contains scan-required member +* Auto-sized array `Type[]` + +Instant-parse is transitive: record/union/array is instant-parse only if all components are. + +**Enforcing:** `@instant_parse` annotation requires instant-parse. Compiler error if not provable. + +```sddl +record Header(limit) { + expect limit <= 4096, + version: Int16LE +} @instant_parse # OK: expect uses parameter + +record Bad() { + length: Int32LE, + data: Bytes(length) +} @instant_parse # ERROR: data depends on local field +``` + +**Rules:** +* `@instant_parse` applies recursively +* `align`, `pad_to`, `pad_align` args must be parameter/constant only +* Cannot use `scan` or delimiter parsing under `@instant_parse` + +--- + +## **4. Record and Union Definitions** + +### **4.1 Fixed-Size Records** + +```sddl +record Header() { + magic: Bytes(4), + version: Int32LE, + flags: Int16LE, +} + +record Block(size) { + header: Header, + block_id: Int32LE, + data: Bytes(size) +} +``` + +--- + +### **4.2 Padding and Alignment** + +* `align(n) T` — start each instance of `T` at an `n`-byte boundary relative to the enclosing scope. + Arrays of aligned types may include inter-element padding. +* `pad_to n` — extend the record to exactly `n` bytes; if smaller ⇒ **format error**. +* `pad_align n` — round total record size up to a multiple of `n`. +* If both are used, `pad_align` follows `pad_to`. +* Padding bytes are "don't care." + +```sddl +record VariableHeader(header_size) { + base: Bytes(20) +} pad_to header_size + +record Scanline(width) { + pixels: Pixel[width] +} pad_align 4 +``` + +--- + +### **4.3 Delimiter-Based Parsing** + +Delimiter-based fields are **never instant-parse**. + +```sddl +text_header: Bytes until "\r\n\r\n" +zero_terminated: Bytes until 0x00 +double_zero: Bytes until [0x00, 0x00] +section: Bytes until "---BOUNDARY---" include_delim +``` + +Consumes up to the first occurrence of the delimiter; missing delimiter ⇒ **data error**. +Delimiters are ASCII sequences or explicit byte arrays. + +--- + +### **4.4 Unions** + +```sddl +Union Payload(kind, size) = { + case 1: Image(size), + case 2, 3: Audio(size), + case 0x10..0x1F: BinaryBlob(size), + default: Raw(size) +} +``` + +Rules: + +* The first parameter is the **dispatch selector**. +* `case` may list literals or ranges; overlapping ranges ⇒ **format error**. +* No match without `default` ⇒ **data error**. +* A union is **instant-parse** only if its selector is a parameter or constant and all arms are instant-parse. + +--- + +### **4.5 Conditional Fields** + +**Single field form:** + +```sddl +record Data(has_id, include_meta) { + base: Int32LE, + when has_id > 0 { id: Int64LE }, + when include_meta { meta: Bytes(256) } +} +``` + +**Block form (multiple statements):** + +```sddl +record Data(has_extended) { + base: Int32LE, + when has_extended { + ext_field1: Int32LE, + ext_field2: Int64LE, + expect ext_field1 > 0 + } +} +``` + +When using braces `{ }`, there is no `then` keyword. The block can contain multiple fields and statements. + +Conditions referencing parameters are instant-parse-safe. +Conditions referencing local fields make the record non-instant-parse. + +--- + +### **4.6 Inline Declarations** + +Inline `Record` or `Union` constructs follow the same rules: + +```sddl +record Packet(kind, size, crcWidth) { + header: record() { version: UInt8, flags: UInt16LE }, + payload: Union(kind, size) { + case 1: Image(size), + case 2: Audio(size) + }, + crc: UInt32LE[crcWidth] +} +``` + +--- + +## **5. Arrays and Layout** + +### **5.1 Fixed-Size Arrays** + +```sddl +values: UInt32LE[count] +pixels: Pixel[height][width] +data_blocks: Block(100)[count] +``` + +An array is instant-parse if its element type is instant-parse and its length expressions depend only on parameters. + +--- + +### **5.2 Auto-Sized Arrays** + +```sddl +auto_sized: Header[] # repeat to end of scope +auto_sized_2d: Pixel[][width] +``` + +Auto-sized arrays are inherently non-instant-parse. +If an element type requires scanning, `scan` must be used: + +```sddl +scan VariableData[] +scan TextRecord[] +``` + +--- + +### **5.3 Structure-of-Arrays Layout** + +```sddl +record IndexAndData { index: Int64LE, data: DataBlock } + +particles: soa IndexAndData[count] +``` + +`soa` means that each top-level field of the element type is stored as a contiguous array. + +Rules: + +* Element type must be instant-parse. +* Element type must not contain `var` creation or `expect` statements. +* Auto-sized `soa T[]` is valid only for instant-parse elements. +* Violation ⇒ compile-time error. + +--- + +## **6. Enumerations** + +```sddl +enum FileType { TEXT = 1, IMAGE = 2, AUDIO = 3 } +enum Mode { READ = 1 << 0, WRITE = 1 << 1, EXEC = 1 << 2 } +``` + +Enum constants are accessed as `EnumType.CONSTANT` and evaluate to 64-bit signed integer literals. + +--- + +## **7. Variables and Expressions** + +```sddl +header: Header +var data_size = header.size +payload: Bytes(data_size) +``` + +`var` is immediate and immutable; it may reference previously parsed fields. +Such dependencies make the enclosing construct **non-instant-parse** if those variables influence later layout. + +Expressions follow C11 precedence. +All integers are 64-bit signed; overflow or division by 0 ⇒ **format error**. + +--- + +### **7.1 Switch Expressions** + +```sddl +var block_size = switch version { + case 1: 512, + case 2, 3: 1024, + case 4..10: 2048, + default: 4096 +} +``` + +* Overlapping ranges ⇒ **format error** +* If no case match and no `default` ⇒ **data error** + +--- + +## **8. Validation** + +### **8.1 `expect`** + +```sddl +expect header.magic == [0x50,0x4B,0x03,0x04] +expect header.version >= 20 +expect format == 1 or format == 2 +``` + +`expect` evaluates when all referenced names exist. +Failure ⇒ data mismatch. +If the expression references only parameters or constants, it is instant-parse-safe. +Otherwise it marks the construct as non-instant-parse. + +### **8.3 Enum Membership (`in`)** + +Test if a value is in an enum set: + +```sddl +enum WaveFormat { PCM = 1, IEEE_FLOAT = 3, EXTENSIBLE = 0xFFFE } + +expect audio_format in WaveFormat # True if audio_format is 1, 3, or 0xFFFE +``` + +The `in` operator works only with enum types and is typically used within `expect` statements. + +### **8.2 `where`** + +A shorthand for immediate field validation: + +```sddl +size: UInt16LE where (size <= 1024) +``` + +Allowed everywhere; if it references local fields, it breaks instant-parse. + +--- + +## **9. Standard Functions** + +All functions are pure and return 64-bit signed integers. +Overflow ⇒ **format error**. + +| Function | Description | +| ---------------------- | --------------------- | +| `abs(x)` | absolute value | +| `min(a,b)`, `max(a,b)` | comparisons | +| `clamp(l,x,h)` | bounded value | +| `between(l,x,h)` | range check | +| `sgn(x)` | sign function | +| `ceil_div(x,d)` | ceil division | +| `align_up(x,a)` | alignment helper | +| `sizeof(T())` | static size of record | +| `parsed_length(f)` | parsed byte size | +| `current_position()` | parser position | +| `scope_remaining()` | bytes to end of scope | + +--- + +## **10. Annotations** + +Annotations never change baseline parsing; they are advisory or enforce constraints. + +```sddl +@chunk_size 128 kb +expect var > 1 @err_msg "Complementary message" +@instant_parse # enforce static layout +``` + +Annotations may appear on types, fields, or statements. + +--- + +## **11. Error Classes** + +| Type | Meaning | +| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| **Format error** | Structural contradiction or invalid expression (`pad_to` smaller than current size, overlapping union cases, zero-size element, overflow). | +| **Data error** | Parsed bytes do not match expected structure (missing delimiter, invalid value, unrecognized case). | +| **Instant-parse violation** | A construct annotated `@instant_parse` is not instantly parsable; compiler explains the dependency chain. | + +--- + +## **12. Progressive Example** + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + packet_count: Int32LE, + flags: Int16LE +} @instant_parse + +header: Header +expect header.magic == "DPKT" +expect between(1, header.version, 3) + +var pkt_count = header.packet_count +var has_crc = header.flags & 0x01 + +record Packet(include_crc) { + id: Int32LE, + size: Int16LE, + when include_crc { checksum: Int32LE } +} + +packets: Packet(has_crc)[pkt_count] @instant_parse + +record VariableBlock() { + size: UInt16LE, + data: Bytes(size) +} # non-instant-parse + +blocks: scan VariableBlock[] +``` + +--- + +## **13. Principles** + +* **Readability** — data structure mirrors its bytes. +* **Determinism** — one description ⇒ one layout. +* **Performance visibility** — instant-parse vs. scan-required is explicit and enforceable. +* **Diagnostics** — errors precisely indicate non-instant constructs. diff --git a/doc/mkdocs/doc/sddl/north-star/variables-expressions.md b/doc/mkdocs/doc/sddl/north-star/variables-expressions.md new file mode 100644 index 000000000..0dd4a4c13 --- /dev/null +++ b/doc/mkdocs/doc/sddl/north-star/variables-expressions.md @@ -0,0 +1,466 @@ +# Variables and Expressions + +*Chapter 8 - Computing derived values during parsing* + +SDDL allows computing derived values during parsing using variables and expressions. This chapter covers the `var` statement, expression syntax, standard functions, and how these features interact with instant-parse. + +For an overview of how variables and expressions fit into SDDL's type system, see the [Language Elements Overview](core-concepts.md#language-elements-overview). + +Need a concrete spec that leans on these tools? Jump to the [coverage map entry for derived values](real-formats.md#coverage-var). + +--- + +## Referencing Fields + +When SDDL parses a field from the binary data, it creates a binding between the field name and the parsed value. You can reference these field values in subsequent expressions, enabling dynamic behavior based on the data itself. + +### Basic Field References + +Every field you parse creates a name that can be referenced later: + +```sddl +record Header() { + magic: Bytes(4), + version: Int16LE, + count: Int32LE +} + +header: Header + +# After parsing 'header', you can reference its fields +items: Item[header.count] # Use count for array size +expect header.version >= 2 # Use version in validation +``` + +The binding happens immediately after the field is parsed, making its value available to all subsequent statements in the same scope. Use dot notation to access fields within nested records—each dot traverses one level deeper into the structure. + +### Type Restrictions for Expressions + +**IMPORTANT:** Not all field types can be used in expressions. SDDL's expression engine operates on 64-bit signed integers, which covers the vast majority of use cases (array sizes, offsets, counts, flags) while keeping the type system simple and predictable. + +**Supported in expressions:** All integer types (Int8, Int16LE, Int32BE, UInt32LE, etc.) up to signed 64-bit integers (Int64LE, Int64BE). + +**Not supported in expressions:** Unsigned 64-bit integers (UInt64LE, UInt64BE), all floating-point types (Float16LE/BE, Float32LE/BE, Float64LE/BE, BFloat16LE/BE), and byte sequences (Bytes). + +You can still **parse** any type—these restrictions only apply to using field values in expressions: + +```sddl +record Data() { + timestamp: UInt64LE, # ✓ Can parse + temperature: Float32LE, # ✓ Can parse + + # But cannot use in expressions: + # var x = timestamp + 100 # ✗ ERROR: UInt64LE not supported + # when temperature > 20.0 ... # ✗ ERROR: Float not supported + + count: Int32LE, + items: Item[count] # ✓ OK: Int32LE works in expressions +} +``` + +Workarounds: For validation, use `expect` statements on fields directly without arithmetic. For conditionals, pre-determine behavior based on format version or flags. For sizes, prefer Int32LE or Int64LE over UInt64LE. + +### Common Uses for Field References + +Field references appear throughout SDDL specifications in array sizes (`items: Item[count]`), record parameters (`Block(header.size)`), byte counts (`Bytes(length)`), conditional fields (`when (flags & 0x01) != 0 { ... }`), validation statements (`expect magic == "RIFF"`), variable expressions (`var total = width * height`), and switch expressions. + +### Scope Rules + +You can reference fields that are in the same scope (same record or top-level), from a previously parsed field using dot notation, or passed as parameters to a record. You cannot reference fields from outer scopes unless they're passed as parameters: + +```sddl +header_count: Int32LE + +record Erroneous_Data() { + # ERROR: Cannot reference top-level 'header_count' directly + # items: Item[header_count] +} + +# CORRECT: Pass it as a parameter +record Data(count) { + items: Item[count] +} + +data: Data(header_count) +``` + +Fields within the same record can reference each other directly (`data: Bytes(size)` where `size` is a field in the same record), though this requires scanning rather than instant-parse. + +### Performance Impact + +Field references affect instant-parse status based on what you reference. Parameters are instant-parse safe, while references to local parsed fields require sequential scanning. See [Understanding Instant-Parse](instant-parse.md) for performance implications. + +--- + +## The `var` Statement + +Variables store computed values for later use. + +### Basic Syntax + +```sddl +header: Header +var data_size = header.size - 16 +payload: Bytes(data_size) +``` + +Variables are declared with `var`, followed by a name, `=`, and an expression. + +### Immutability + +Variables are immutable once created: + +```sddl +var count = header.count +# count = count + 1 # ERROR: Cannot modify variable +``` + +This ensures predictable behavior and simplifies analysis. + +### Scope + +Variables are scoped to the record or top-level context where they're defined: + +```sddl +record Container() { + size: UInt32LE, + var payload_size = size - 8, # Scoped to Container + payload: Bytes(payload_size) +} + +# payload_size not accessible here +``` + +### Variables and Instant-Parse + +Variables referencing parameters or constants are instant-parse safe: + +```sddl +record Data(total_size) { + var payload_size = total_size - 16, # OK: depends on parameter + header: Bytes(16), + payload: Bytes(payload_size) +} @instant_parse +``` + +Variables referencing parsed fields require scanning: + +```sddl +record Data() { + size: UInt32LE, + var payload_size = size - 16, # Requires scan: depends on parsed field + payload: Bytes(payload_size) +} +``` + +--- + +## Expressions + +Expressions compute values from fields, parameters, variables, and constants. + +### Integer Arithmetic + +All integers are 64-bit signed. Standard operators: + +```sddl +var total = width * height +var aligned = (size + 15) / 16 * 16 +var offset = base + index * element_size +``` + +Operators: `+`, `-`, `*`, `/`, `%` (modulo) + +### Bitwise Operations + +Extract and manipulate bits: + +```sddl +var has_flag = (flags & 0x01) != 0 +var masked = value & 0xFF +var shifted = (data >> 8) & 0xFF +``` + +Operators: `&` (AND), `|` (OR), `^` (XOR), `<<` (left shift), `>>` (right shift) + +**Shift operation semantics:** + +- Shift amounts follow their mathematical meaning rather than wrapping modulo 64 (unlike some CPU implementations). +- **Left shift (`<<`)**: Shifts the value left by n bit positions. If n ≥ 64, the result is 0 (all bits shifted out). +- **Right shift (`>>`)**: Arithmetic shift that preserves the sign bit (sign-extending shift). If n ≥ 64, the result is 0 for non-negative values and -1 for negative values. + + +### Comparisons + +Produce boolean values for conditions: + +```sddl +var is_valid = version >= 2 +var in_range = size > 0 and size <= 1024 +``` + +Operators: `==`, `!=`, `<`, `<=`, `>`, `>=` + +### Logical Operations + +Combine boolean values: + +```sddl +var has_both = (flags & 0x01) != 0 and (flags & 0x02) != 0 +var has_either = mode == 1 or mode == 2 +var is_disabled = not enabled +``` + +Operators: `and`, `or`, `not` + +### Operator Precedence + +SDDL follows C11 operator precedence. Use parentheses for clarity: + +```sddl +var result = (a + b) * c # Clear: add first, then multiply +var flags = (value & 0xFF) | (type << 8) # Clear grouping +``` + +--- + +## Switch Expressions + +Compute values based on multi-way selection: + +```sddl +var block_size = switch version { + case 1: 512, + case 2, 3: 1024, + case 4..10: 2048, + default: 4096 +} +``` + +Rules: +- All cases must return the same type +- Overlapping ranges cause a format error +- Without `default`, unmatched values cause a data error + +Using with variables: + +```sddl +record File() { + version: UInt16LE, + + var chunk_size = switch version { + case 1: 512, + case 2: 1024, + default: 2048 + }, + + chunks: Chunk(chunk_size)[] +} +``` + +--- + +## Standard Functions + +SDDL provides built-in functions for common operations. All functions are pure (no side effects) and return 64-bit signed integers. + +### Mathematical Functions + +```sddl +abs(x) # Absolute value +min(a, b) # Minimum of two values +max(a, b) # Maximum of two values +clamp(l, x, h) # Clamp x to range [l, h] +sgn(x) # Sign: -1, 0, or 1 +between(l, x, h) # True if l <= x <= h +``` + +### Alignment and Division + +```sddl +ceil_div(x, d) # Ceiling division: ⌈x / d⌉ +align_up(x, a) # Round x up to next multiple of a +``` + +### Size Functions + +SDDL provides two distinct ways to measure sizes, each serving different purposes: + +**`sizeof(T())`** - Size of an instant-parse type + +- Operates on **type constructors**, not field instances +- Only works for instant-parse types (types with statically-determinable layout) +- **Using `sizeof()` on a type that requires scanning is a compiler error** +- The size may depend on parameters, so it can be computed at runtime +- Returns the size based on the type definition and provided parameters +- Useful for: computing offsets, validating container sizes, parameter calculations + +Example: + +```sddl +record Header(header_size) { + magic: Bytes(4), + version: Int16LE, + extra: Bytes(header_size - 6) +} @instant_parse + +# Size depends on parameter, but type is instant-parse +var my_header_size = sizeof(Header(total_size)) # Computed at runtime, no need for prior field instance + +# ERROR: Cannot use sizeof on scanned types +record Dynamic() { + length: UInt32LE, + data: Bytes(length) # Requires scan - depends on parsed field +} + +# var bad = sizeof(Dynamic()) # COMPILER ERROR: Dynamic requires scan +``` + +**`parsed_length(field)`** - Runtime parsed size of a field + +- Operates on **field instances**, not types +- Measures the actual bytes consumed during parsing +- Can vary based on the data (e.g., different union cases, variable-length arrays) +- Useful for: validating container sizes, computing remaining space, checksum calculations + +Example: + +```sddl +# RIFF-style chunks with padding +record Chunk() { + size: UInt32LE, + data: Bytes(size) +} pad_align 2 # Even-byte alignment adds padding + +chunk: Chunk, +# Need parsed_length because padding varies (size field doesn't include it) +expect parsed_length(chunk) <= max_chunk_size +``` + +**Key difference:** `sizeof` works on instant-parse **types** (with parameters), while `parsed_length` measures actual **fields already parsed**. + +### Other position functions: + +Mostly useful for validation purposes: + +- `current_position()` - Current byte offset in the file (requires scan) +- `scope_remaining()` - Bytes remaining in current scope (requires scan) + +### Notes + +- All arithmetic is checked for overflow and division by zero (both cause data errors) +- Functions referencing parsed data (`parsed_length`, `current_position`, `scope_remaining`) require scanning +- `sizeof` only works on instant-parse types, but the size may be determined at runtime based on parameters + +--- + +## Practical Examples + +### Example 1: Computing Array Sizes + +```sddl +record Image() { + width: UInt32LE, + height: UInt32LE, + channels: UInt8, + + var num_pixels = width * height, + var pixel_size = channels, + var total_bytes = num_pixels * pixel_size, + + pixels: UInt8[total_bytes] +} +``` + +### Example 2: Flag Extraction + +```sddl +record Header() { + flags: UInt16LE, + + var has_checksum = (flags & 0x01) != 0, + var is_compressed = (flags & 0x02) != 0, + var version = (flags >> 8) & 0xFF +} + +header: Header + +when header.has_checksum { checksum: UInt32LE } +when header.is_compressed { compression_info: CompressionHeader } +``` + +### Example 3: Version-Based Sizes + +```sddl +record Config() { + version: UInt16LE, + + var header_size = switch version { + case 1: 32, + case 2: 64, + case 3: 128, + default: 256 + }, + + var has_extended = version >= 3, + + header: Bytes(header_size), + when has_extended { extended: ExtendedData } +} +``` + +### Example 4: Alignment Calculations + +```sddl +record Block() { + size: UInt32LE, + + var aligned_size = align_up(size, 16), + var padding_needed = aligned_size - size, + + data: Bytes(size), + padding: Bytes(padding_needed) +} +``` + +### Example 5: Conditional Payload Size + +```sddl +record Packet() { + header: PacketHeader, + + var payload_size = header.total_size - sizeof(PacketHeader()), + var has_payload = payload_size > 0, + + when has_payload { payload: Bytes(payload_size) } +} +``` + +### Example 6: Bit Field Extraction + +```sddl +record Descriptor() { + packed: UInt32LE, + + var type = packed & 0xFF, + var flags = (packed >> 8) & 0xFF, + var count = (packed >> 16) & 0xFFFF, + + items: Item[count] +} +``` + + +--- + +## Summary + +Variables let you capture derived values or parameters for later use; they are immutable and stay instant-parse as long as they depend only on parameters or constants. Expressions follow 64-bit signed arithmetic rules, include bitwise/logical operators with C11 precedence, and can be organized via switch expressions when multi-way selection is needed. Standard functions cover math, range checks, and alignment helpers; `sizeof` works only for instant-parse constructs, while `parsed_length(field)` and position helpers require scanning. Overflow and division-by-zero remain format errors, so guard derived values accordingly. + +--- + +## Where to Go Next + +- **[Best Practices](best-practices.md)** to see how validation and expressions interact in full specs. +- **[Real-World Formats](real-formats.md)** for examples that combine variables with complex layouts. +- **[Reference](reference.md)** when you need a concise lookup for syntax and functions. diff --git a/doc/mkdocs/doc/sddl/reference.md b/doc/mkdocs/doc/sddl/reference.md new file mode 100644 index 000000000..454dbb1ca --- /dev/null +++ b/doc/mkdocs/doc/sddl/reference.md @@ -0,0 +1,122 @@ +# Quick Reference + +A concise reference for all syntax currently supported by the SDDL2 compiler. + +## Types + +### Integer Types + +| Type | Size | Signed | Endianness | +|------|------|--------|------------| +| `Byte` | 1 | No | N/A | +| `Int8` / `UInt8` | 1 | Yes / No | N/A | +| `Int16LE` / `Int16BE` | 2 | Yes | Little / Big | +| `UInt16LE` / `UInt16BE` | 2 | No | Little / Big | +| `Int32LE` / `Int32BE` | 4 | Yes | Little / Big | +| `UInt32LE` / `UInt32BE` | 4 | No | Little / Big | +| `Int64LE` / `Int64BE` | 8 | Yes | Little / Big | +| `UInt64LE` / `UInt64BE` | 8 | No | Little / Big | + +### Float Types (type descriptors only — cannot be used in expressions) + +| Type | Size | Endianness | +|------|------|------------| +| `Float16LE` / `Float16BE` | 2 | Little / Big | +| `Float32LE` / `Float32BE` | 4 | Little / Big | +| `Float64LE` / `Float64BE` | 8 | Little / Big | +| `BFloat16LE` / `BFloat16BE` | 2 | Little / Big | + +### Byte Sequences + +| Syntax | Description | +|--------|-------------| +| `Bytes(n)` | Exactly `n` bytes as a serial field | + +## Syntax Quick Reference + +### Records + +```sddl +record Name() { field: Type, ... } # basic +record Name(PARAM1, PARAM2) { ... } # parameterized +: record() { field: Type, ... } # anonymous/inline +``` + +### Arrays + +```sddl +name: Type[length] # fixed-size array +name: Type[] # auto-sized (consumes remaining input) +``` + +### Consumption + +```sddl +: Type # consume without storing +name: Type # consume and store in variable +``` + +### Variables + +```sddl +name = expression # assign from expression +name: Type # assign from consumption +name.field # member access +name.inner.field # chained member access +``` + +### Conditional Fields + +```sddl +record Name(COND) { + when COND { + field1: Type1, + field2: Type2 + }, + field3: Type3 +} +``` + +### Validation + +```sddl +expect condition +``` + +## Operators + +### Arithmetic + +| Op | Description | +|----|-------------| +| `+` `-` `*` `/` `%` | Add, subtract, multiply, divide, modulo | +| `-expr` | Unary negation | + +### Comparison + +| Op | Description | +|----|-------------| +| `==` `!=` | Equal, not equal | +| `>` `>=` `<` `<=` | Relational | + +### Logical + +| Op | Description | +|----|-------------| +| `&&` | AND | +| `||` | OR | +| `!` | NOT | + +## Builtin Functions + +| Function | Description | +|----------|-------------| +| `sizeof(Type)` | Size in bytes (static types only) | +| `abs(expr)` | Absolute value | + +## Comments + +```sddl +# single-line comment +field: Type # inline comment +``` diff --git a/doc/mkdocs/doc/sddl/sddl2-announcement.md b/doc/mkdocs/doc/sddl/sddl2-announcement.md new file mode 100644 index 000000000..c17911b82 --- /dev/null +++ b/doc/mkdocs/doc/sddl/sddl2-announcement.md @@ -0,0 +1,57 @@ +# SDDL2 — Simple Data Description Language, Redesigned + +The current OpenZL release introduces **SDDL2**, a ground-up redesign of the Simple Data Description Language. SDDL2 replaces the original SDDL1 language with a cleaner syntax, a new compiler and runtime engine, and expanded capabilities for describing binary file formats. + +## Instant Parse + +SDDL2 introduces the concept of **instant-parse**: a record is instant-parse when all its field offsets, sizes, and layout can be computed from parameters and constants alone, without examining the data itself. When a record is instant-parse, the engine can jump directly to any field without scanning through preceding bytes, enabling zero-copy access and multi-GB/s throughput. + +SDDL2 makes performance characteristics transparent: the language is designed so that instant-parse status is visible from the description itself, and the redesigned engine takes full advantage of it. On the Silesia/sao corpus, SDDL2 parses at ~2.4 GB/s, around 300x faster than SDDL1's ~8 MB/s (see `examples/sddl2/sao_full.sddl` and `examples/sddl/sao_full.oldv1.sddl`). + +## Conditional Fields + +An important feature of SDDL2 is **conditional fields** via `when` blocks, which allow fields to appear only when a condition is met. Conditions reference record parameters, making it possible to describe formats with optional sections, version-dependent layouts, and flag-controlled features, all within a single description whose layout is fully determined at instantiation time. + +### Example: SAO Star Catalog + +To see the difference in practice, here's how a star entry from the SAO catalog looks in both languages. Each entry has conditional fields that depend on header parameters: whether catalog numbers are present, which motion data is included, etc. + +In **SDDL1**, there was no native conditional syntax. Instead you defined sub-records and included them as zero-or-one-element arrays gated by a boolean expression: + +```sddl +StarEntry = (STNUM, MPROP, NMAG) { + XnoSub = { XNO: Float32LE } + PmSub = { XRPM: Float32LE; XDPM: Float32LE } + + : XnoSub[STNUM > 0] + SRA0 : Float64LE + SDEC0: Float64LE + ISP : Byte[2] + : Int16LE[abs(NMAG)] + : PmSub[MPROP >= 1] +} +``` + +**SDDL2** replaces this with `when` blocks that read naturally: + +```sddl +record StarEntry(STNUM, MPROP, NMAG) { + when STNUM > 0 { XNO: Float32LE }, + SRA0: Float64LE, + SDEC0: Float64LE, + ISP: Bytes(2), + when abs(NMAG) > 0 { MAG: Int16LE[abs(NMAG)] }, + when MPROP >= 1 { + XRPM: Float32LE, + XDPM: Float32LE + } +} +``` + +The SDDL2 version is shorter, easier to read, and doesn't require defining throwaway sub-records just to get conditional inclusion. + +## Developer Experience + +Writing SDDL descriptions is now a lot more pleasant. The SDDL2 compiler includes a **semantic analysis** phase that goes beyond syntax checking to inspect the logical structure of a description. It catches errors like references to undefined fields, type mismatches in expressions, and parameter-arity mistakes. In SDDL1 these would only show up at runtime, or not at all. With SDDL2, you find out at compile time, before the description ever touches real data. + +We've also added **VS Code syntax highlighting** for `.sddl` files, so keywords, field types, and conditional blocks are all color-coded as you write. diff --git a/doc/mkdocs/doc/sddl/validation.md b/doc/mkdocs/doc/sddl/validation.md new file mode 100644 index 000000000..89d9168b8 --- /dev/null +++ b/doc/mkdocs/doc/sddl/validation.md @@ -0,0 +1,41 @@ +# Validation + +## Validation with `expect` + +Use `expect` to validate format constraints at parse time: + +```sddl +header: Header +expect header.magic == 0x42494E44 +expect header.version >= 1 +expect header.version <= 3 +expect header.entry_size == sizeof(DataEntry) +``` + +If an `expect` condition evaluates to zero (false), the SDDL engine reports a data error and parsing fails. + +## Common Patterns + +**Magic number validation:** +```sddl +header: FileHeader +expect header.signature == 0x4D42 # "BM" for BMP files +``` + +**Size consistency checks:** +```sddl +header: Header +expect header.entry_size == sizeof(Row) +``` + +**Range validation:** +```sddl +header: Header +expect header.count >= 0 +expect header.count <= 1000000 +``` + +**Combined conditions:** +```sddl +expect header.version >= 1 && header.version <= 3 +``` diff --git a/doc/mkdocs/mkdocs-openzl/src/mkdocs_openzl/plugin.py b/doc/mkdocs/mkdocs-openzl/src/mkdocs_openzl/plugin.py index 8e6d3df35..4ad2ff51b 100644 --- a/doc/mkdocs/mkdocs-openzl/src/mkdocs_openzl/plugin.py +++ b/doc/mkdocs/mkdocs-openzl/src/mkdocs_openzl/plugin.py @@ -79,6 +79,7 @@ def __init__(self, config: MkDocsConfig, build_directory: str): self._src_dir = Path(config.docs_dir) / "../../../tools/visualization_app" assert self._src_dir.exists() self._build_dir = Path(build_directory) / "tools" / "trace" + self._skip_build = os.getenv("OPENZL_SKIP_VISUALIZER_BUILD", "") == "1" self._stamp = Stamp( self._build_dir / "stamp.txt", [self._src_dir], @@ -92,6 +93,12 @@ def build(self) -> None: """ Build the visualization app """ + if self._skip_build: + print( + "Skipping trace visualizer build (OPENZL_SKIP_VISUALIZER_BUILD is set)" + ) + return + stamp = self._stamp.compute_stamp() if self._stamp.needs_rebuild(stamp) or not (self._src_dir / "dist").exists(): @@ -117,8 +124,8 @@ def __init__(self, config: MkDocsConfig, build_directory: str): self._config = config self._src_dir = Path(config.docs_dir) / "../../../py" self._build_dir = Path(build_directory) / "py" - self._use_system_python_extension = os.getenv( - "OPENZL_USE_SYSTEM_PYTHON_EXTENSION", False + self._use_system_python_extension = ( + os.getenv("OPENZL_USE_SYSTEM_PYTHON_EXTENSION", "") == "1" ) self._stamp = Stamp( self._build_dir / "stamp.txt", diff --git a/doc/mkdocs/mkdocs.yml b/doc/mkdocs/mkdocs.yml index c3e187e03..0749eecbd 100644 --- a/doc/mkdocs/mkdocs.yml +++ b/doc/mkdocs/mkdocs.yml @@ -28,8 +28,35 @@ nav: - CLI: - Parquet: getting-started/examples/cli/parquet.md - Protobuf: getting-started/examples/cli/protobuf.md + - Training usage: getting-started/examples/cli/training-usage.md - CLI: getting-started/cli.md - Advanced Build Settings: getting-started/advanced-build.md + - Core Library Limitations: getting-started/library-limitations.md + - SDDL: + - Overview: sddl/index.md + - SDDL2 Announcement: sddl/sddl2-announcement.md + - Current Language: + - Getting Started: sddl/getting-started.md + - Core Concepts: sddl/core-concepts.md + - Conditional Fields: sddl/conditional-fields.md + - Validation: sddl/validation.md + - Examples: sddl/examples.md + - Quick Reference: sddl/reference.md + - North Star (v0.6): + - Overview: sddl/north-star/index.md + - Introduction & Motivation: sddl/north-star/introduction.md + - Getting Started: sddl/north-star/getting-started.md + - Core Concepts: sddl/north-star/core-concepts.md + - Understanding Instant-Parse: sddl/north-star/instant-parse.md + - Arrays and Collections: sddl/north-star/arrays-collections.md + - Advanced Layout Control: sddl/north-star/alignment-padding.md + - Conditional & Variant Data: sddl/north-star/conditional-variant.md + - Variables and Expressions: sddl/north-star/variables-expressions.md + - Real-World Formats: sddl/north-star/real-formats.md + - Best Practices: sddl/north-star/best-practices.md + - Quick Reference: sddl/north-star/reference.md + - SDDL for LLMs: sddl/north-star/sddl-for-llm.md + - Legacy (SDDL1): sddl/legacy/index.md - API Reference: - C: - Compressor: api/c/compressor.md @@ -45,6 +72,7 @@ nav: - Entropy: api/c/codecs/entropy.md - Interleave: api/c/codecs/interleave.md - Parse Int: api/c/codecs/parse-int.md + - Split By Range: api/c/codecs/split-byrange.md - Data: api/c/data.md - Graphs: - Simple Data Description Language: api/c/graphs/sddl.md @@ -95,6 +123,11 @@ nav: - Names: api/names.md - Tools: - Trace Visualizer: tools/trace + - Blog: + - blog/index.md + +not_in_nav: | + demo.md theme: name: material @@ -138,6 +171,7 @@ theme: markdown_extensions: - admonition + - attr_list - pymdownx.details - tables - md_in_html @@ -161,6 +195,10 @@ plugins: build_directory: ./build-openzl - search - autorefs + - blog: + authors: true + post_url_date_format: yyyy-MM-dd + post_url_format: "{date}-{slug}" - mkdocstrings: default_handler: zstd handlers: diff --git a/doc/mkdocs/mkdocstrings-zstd/src/mkdocstrings_handlers/zstd/doxygen.py b/doc/mkdocs/mkdocstrings-zstd/src/mkdocstrings_handlers/zstd/doxygen.py index 2a9df1df4..1498a778a 100644 --- a/doc/mkdocs/mkdocstrings-zstd/src/mkdocstrings_handlers/zstd/doxygen.py +++ b/doc/mkdocs/mkdocstrings-zstd/src/mkdocstrings_handlers/zstd/doxygen.py @@ -731,7 +731,8 @@ def __init__( shutil.rmtree(self._doxyxml_dir, ignore_errors=True) os.makedirs(self._doxyxml_dir, exist_ok=True) # Run doxygen. - cmd = ["doxygen", "-"] + doxygen_path = os.environ.get("DOXYGEN_PATH", "doxygen") + cmd = [doxygen_path, "-"] p = Popen(cmd, cwd=source_directory, stdin=PIPE, stdout=PIPE, stderr=PIPE) include_paths = [str(p) for p in include_paths] + ["."] out, err = p.communicate( @@ -754,9 +755,7 @@ def __init__( " ".join([f'"{str(s)}"' for s in sources]), self._doxyxml_dir, " ".join([f'"{p}"' for p in predefined]), - ).encode( - "utf-8" - ) + ).encode("utf-8") ) with open(self._doxyxml_dir / "stdout.txt", "wb") as f: f.write(out) diff --git a/doc/mkdocs/mkdocstrings-zstd/tests/BUCK b/doc/mkdocs/mkdocstrings-zstd/tests/BUCK index 7d9df29b4..1f0297dea 100644 --- a/doc/mkdocs/mkdocstrings-zstd/tests/BUCK +++ b/doc/mkdocs/mkdocstrings-zstd/tests/BUCK @@ -13,35 +13,41 @@ buck_filegroup( ) python_library( + # @autodeps-skip name = "helpers", srcs = ["helpers.py"], resources = { - "//data_compression/experimental/zstrong/doc/mkdocs/mkdocstrings-zstd/src:templates": "", + "../src:templates": "", ":src": "", }, deps = [ + "../src:mkdocstrings-zstd", "fbsource//third-party/pypi/markdown:markdown", "fbsource//third-party/pypi/mkdocs:mkdocs", "fbsource//third-party/pypi/mkdocstrings:mkdocstrings", "fbsource//third-party/pypi/pytest:pytest", - "//data_compression/experimental/zstrong/doc/mkdocs/mkdocstrings-zstd/src:mkdocstrings-zstd", ], ) python_pytest( + # @autodeps-skip name = "test_mkdocstrings_zstd", srcs = [ "conftest.py", "test_doxygen.py", "test_handler.py", ], + env = { + "DOXYGEN_PATH": "$(location fbsource//third-party/doxygen:doxygen)", + }, deps = [ + "../src:mkdocstrings-zstd", + "fbsource//third-party/doxygen:doxygen", # @manual "fbsource//third-party/pypi/markdown:markdown", "fbsource//third-party/pypi/mkdocs:mkdocs", "fbsource//third-party/pypi/mkdocs-material:mkdocs-material", # @manual "fbsource//third-party/pypi/mkdocstrings:mkdocstrings", "fbsource//third-party/pypi/pytest:pytest", ":helpers", - "//data_compression/experimental/zstrong/doc/mkdocs/mkdocstrings-zstd/src:mkdocstrings-zstd", ], ) diff --git a/doc/mkdocs/mkdocstrings-zstd/tests/conftest.py b/doc/mkdocs/mkdocstrings-zstd/tests/conftest.py index 62c191ad7..616cf1ebe 100644 --- a/doc/mkdocs/mkdocstrings-zstd/tests/conftest.py +++ b/doc/mkdocs/mkdocstrings-zstd/tests/conftest.py @@ -5,7 +5,6 @@ from markdown.core import Markdown from mkdocs.config.defaults import MkDocsConfig from mkdocstrings.plugin import MkdocstringsPlugin - from mkdocstrings_handlers.zstd.doxygen import Doxygen from mkdocstrings_handlers.zstd.handler import ZstdHandler diff --git a/doc/mkdocs/mkdocstrings-zstd/tests/helpers.py b/doc/mkdocs/mkdocstrings-zstd/tests/helpers.py index 169a9e7a2..268a326b9 100644 --- a/doc/mkdocs/mkdocstrings-zstd/tests/helpers.py +++ b/doc/mkdocs/mkdocstrings-zstd/tests/helpers.py @@ -9,7 +9,6 @@ from markdown.core import Markdown from mkdocs.config.defaults import MkDocsConfig from mkdocstrings.plugin import MkdocstringsPlugin - from mkdocstrings_handlers.zstd.doxygen import Doxygen from mkdocstrings_handlers.zstd.handler import ZstdHandler diff --git a/doc/mkdocs/mkdocstrings-zstd/tests/test_doxygen.py b/doc/mkdocs/mkdocstrings-zstd/tests/test_doxygen.py index b17dbe93f..69c6bd9d1 100644 --- a/doc/mkdocs/mkdocstrings-zstd/tests/test_doxygen.py +++ b/doc/mkdocs/mkdocstrings-zstd/tests/test_doxygen.py @@ -10,7 +10,6 @@ DescriptionReturn, DescriptionText, Function, - Location, ObjectKind, Parameter, ParameterDirection, diff --git a/examples/BUCK b/examples/BUCK index 4344978fb..d98705a5d 100644 --- a/examples/BUCK +++ b/examples/BUCK @@ -1,7 +1,7 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. load("@fbcode_macros//build_defs:python_library.bzl", "python_library") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_binary", "zs_cxxbinary", "zs_library") +load("../defs.bzl", "zs_binary", "zs_cxxbinary", "zs_library") oncall("data_compression") @@ -9,7 +9,7 @@ zs_binary( name = "compress", srcs = ["compress_app.cpp"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "..:zstronglib", ], ) @@ -17,8 +17,8 @@ zs_binary( name = "zs2_pipeline", srcs = ["zs2_pipeline.c"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", + "..:zstronglib", + "../tools:fileio", ], ) @@ -26,8 +26,8 @@ zs_binary( name = "zs2_trygraph", srcs = ["zs2_trygraph.c"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", + "..:zstronglib", + "../tools:fileio", ], ) @@ -35,8 +35,8 @@ zs_binary( name = "zs2_selector", srcs = ["zs2_selector.c"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", + "..:zstronglib", + "../tools:fileio", ], ) @@ -45,8 +45,8 @@ zs_library( srcs = ["example_utils.cpp"], headers = ["example_utils.h"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", + "..:zstronglib", + "../tools:fileio", ], ) @@ -54,8 +54,8 @@ zs_cxxbinary( name = "numeric_array", srcs = ["numeric_array.cpp"], deps = [ + "..:zstronglib", ":example_utils", - "//data_compression/experimental/zstrong:zstronglib", ], ) @@ -63,23 +63,17 @@ zs_cxxbinary( name = "training", srcs = ["training.cpp"], deps = [ + "..:zstronglib", + "../cpp:openzl_cpp", + "../custom_parsers/shared_components:numeric_graphs", + "../tools:io", + "../tools/training:train", + "../tools/training:train_common", + "../tools/training/clustering:clustering_graph_trainer", ":example_utils", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/custom_parsers/shared_components:numeric_graphs", - "//data_compression/experimental/zstrong/tools:io", - "//data_compression/experimental/zstrong/tools/training:train", - "//data_compression/experimental/zstrong/tools/training:train_common", - "//data_compression/experimental/zstrong/tools/training/clustering:clustering_graph_trainer", ], ) -python_library( - name = "parsing_data_generator", - srcs = ["parsing_data_generator.py"], - labels = ["autodeps2_generated"], -) - python_library( name = "parsing_data_generator_correlated", srcs = ["parsing_data_generator_correlated.py"], diff --git a/examples/getting_started/sample_inputs/csv_samples/0001.csv b/examples/getting_started/sample_inputs/csv_samples/0001.csv new file mode 100644 index 000000000..5ae7143a7 --- /dev/null +++ b/examples/getting_started/sample_inputs/csv_samples/0001.csv @@ -0,0 +1,7500 @@ +EPNUM,RTYPE,GQTYPE,RELSHIP,QSEX,QAGE,CENHISP,CENRACE,LIVE_ALONE,NUMRACE,PGQSHRT,GQTYPE_PL,VOTING_AGE,TABBLKST,TABBLKCOU,TABTRACTCE,TABBLK,TABBLKGRPCE,AIANNHCE,AIANNHFP,AIANNHNS,AIHHTLI,ANRCFP,ANRCNS,AREALAND,AREAWATER,AREAWATERCSTL,AREAWATERGRLK,AREAWATERINLD,AREAWATERTSEA,CBSAFP,CD116FP,CNECTAFP,CONCITFP,CONCITNS,COUNTYFS,COUNTYNS,COUSUBFP,COUSUBFS,COUSUBNS,CSAFP,DIVISIONCE,ESTATEFP,ESTATENS,INTPTLAT,INTPTLON,LWBLKTYP,MEMI,METDIVFP,NECTADIVFP,NECTAFP,NMEMI,PCICBSA,PCINECTA,PLACEFP,PLACEFS,PLACENS,PUMA,REGIONCE,SDELMLEA,SDSECLEA,SDUNILEA,SLDLST,SLDUST,STATENS,SUBMCDFP,SUBMCDNS,TBLKGRPCE,TRIBALSUBCE,TRIBALSUBFP,TRIBALSUBNS,TTRACTCE,UACE,UATYP,UGACE,UR,VTDST,ZCTA5CE +0,3,000,27,1,17,1,01,2,1,0,0,1,01,013,953000,1035,1,9999,99999,99999999,9,99999,99999999,6627788,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9119948,-086.6638513,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +1,3,000,30,2,4,1,01,2,1,0,0,1,01,013,953000,1035,1,9999,99999,99999999,9,99999,99999999,6627788,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9119948,-086.6638513,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +2,3,000,21,1,62,1,01,2,1,0,0,2,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +3,3,000,21,1,62,1,01,2,1,0,0,2,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +4,3,000,21,1,62,1,01,2,1,0,0,2,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +5,3,000,25,1,17,1,01,2,1,0,0,1,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +6,3,000,25,1,17,1,01,2,1,0,0,1,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +7,3,000,25,2,13,1,02,2,1,0,0,1,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +8,3,000,26,2,11,1,01,2,1,0,0,1,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +9,3,000,30,1,12,1,01,2,1,0,0,1,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +10,3,000,20,2,37,1,01,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +11,3,000,20,2,37,1,01,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +12,3,000,20,2,37,1,01,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +13,3,000,21,2,51,2,11,2,2,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +14,3,000,21,2,54,2,11,2,2,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +15,3,000,25,1,2,2,06,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +16,3,000,25,1,9,1,02,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +17,3,000,25,1,9,1,02,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +18,3,000,25,1,13,1,02,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +19,3,000,25,1,13,1,02,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +20,3,000,20,2,77,1,02,1,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21,3,000,20,1,32,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +22,3,000,20,1,34,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +23,3,000,20,2,25,1,08,2,2,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +24,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +25,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +26,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +27,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +28,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +29,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +30,3,000,21,2,32,1,02,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +31,3,000,22,2,24,2,06,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +32,3,000,22,2,24,2,06,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +33,3,000,22,2,26,2,01,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +34,3,000,22,2,27,2,11,2,2,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +35,3,000,22,2,29,2,01,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +36,3,000,25,1,3,1,02,2,1,0,0,1,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +37,3,000,25,2,6,1,02,2,1,0,0,1,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +38,3,000,25,2,18,2,11,2,2,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +39,3,000,25,2,18,2,11,2,2,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +40,3,000,21,1,65,2,06,2,1,0,0,2,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +41,3,000,21,1,65,2,11,2,2,0,0,2,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +42,3,000,21,1,67,2,11,2,2,0,0,2,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +43,3,000,21,2,51,1,04,2,1,0,0,2,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +44,3,000,21,2,75,1,04,2,1,0,0,2,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +45,3,000,21,2,78,1,04,2,1,0,0,2,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +46,3,000,25,1,0,2,15,2,2,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +47,3,000,25,1,6,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +48,3,000,25,1,6,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +49,3,000,25,1,6,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +50,3,000,20,1,70,1,01,2,1,0,0,2,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +51,3,000,20,1,71,1,01,2,1,0,0,2,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +52,3,000,20,1,74,1,01,2,1,0,0,2,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +53,3,000,20,2,51,1,01,2,1,0,0,2,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +54,3,000,21,2,29,1,01,2,1,0,0,2,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +55,3,000,25,2,9,2,01,2,1,0,0,1,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +56,3,000,25,2,9,2,01,2,1,0,0,1,01,003,011000,2074,2,9999,99999,99999999,9,99999,99999999,705931,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4896994,-087.6767299,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +57,3,000,20,1,41,2,06,2,1,0,0,2,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +58,3,000,20,1,41,2,06,2,1,0,0,2,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +59,3,000,20,2,30,1,01,2,1,0,0,2,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +60,3,000,22,1,22,1,04,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +61,3,000,22,1,23,1,04,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +62,3,000,22,1,25,1,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +63,3,000,22,1,25,1,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +64,3,000,22,1,25,1,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +65,3,000,22,1,25,2,11,2,2,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +66,3,000,22,1,26,1,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +67,3,000,22,1,26,1,02,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +68,3,000,22,1,26,1,02,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +69,3,000,22,1,26,2,11,2,2,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +70,3,000,20,1,78,1,04,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +71,3,000,20,1,83,2,11,2,2,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +72,3,000,20,1,83,2,11,2,2,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +73,3,000,20,1,83,2,11,2,2,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +74,3,000,20,2,20,1,05,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +75,3,000,20,2,52,1,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +76,3,000,20,2,52,1,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +77,3,000,20,2,52,1,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +78,3,000,20,2,52,1,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +79,3,000,21,1,27,2,11,2,2,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +80,3,000,20,2,58,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +81,3,000,20,2,58,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +82,3,000,20,2,58,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +83,3,000,20,2,58,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +84,3,000,20,2,59,2,06,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +85,3,000,21,1,39,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +86,3,000,21,1,39,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +87,3,000,21,1,45,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +88,3,000,21,1,45,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +89,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +90,3,000,20,2,37,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +91,3,000,20,2,39,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +92,3,000,20,2,39,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +93,3,000,20,2,71,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +94,3,000,20,2,71,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +95,3,000,20,2,71,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +96,3,000,20,2,72,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +97,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +98,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +99,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +100,3,000,25,2,4,1,49,2,4,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +101,3,000,25,2,16,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +102,3,000,25,2,16,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +103,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +104,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +105,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +106,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +107,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +108,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +109,3,000,25,2,17,1,01,2,1,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +110,3,000,20,2,62,1,01,1,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +111,3,000,20,2,63,1,01,1,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +112,3,000,20,1,74,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +113,3,000,20,2,27,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +114,3,000,20,2,27,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +115,3,000,20,2,27,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +116,3,000,20,2,27,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +117,3,000,20,2,29,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +118,3,000,20,2,69,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +119,3,000,20,2,69,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +120,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +121,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +122,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +123,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +124,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +125,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +126,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +127,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +128,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +129,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +130,3,000,33,2,18,1,04,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +131,3,000,33,2,18,2,06,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +132,3,000,33,2,18,2,06,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +133,3,000,33,2,19,2,01,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +134,3,000,33,2,23,2,03,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +135,3,000,33,2,41,2,06,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +136,3,000,33,2,42,2,06,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +137,3,000,34,1,29,2,11,2,2,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +138,3,000,34,2,25,2,06,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +139,3,000,35,1,9,2,11,2,2,0,0,1,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +140,3,000,30,2,3,2,04,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +141,3,000,30,2,9,2,01,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +142,3,000,30,2,9,2,01,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +143,3,000,30,2,9,2,01,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +144,3,000,30,2,12,2,06,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +145,3,000,30,2,21,1,02,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +146,3,000,33,1,1,2,06,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +147,3,000,33,1,1,2,06,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +148,3,000,33,1,1,2,06,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +149,3,000,33,1,14,2,06,2,1,0,0,1,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +150,3,000,26,2,35,1,04,2,1,0,0,2,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +151,3,000,27,2,19,1,10,2,2,0,0,2,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +152,3,000,28,2,51,2,11,2,2,0,0,2,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +153,3,000,30,1,10,2,01,2,1,0,0,1,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +154,3,000,30,1,10,2,01,2,1,0,0,1,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +155,3,000,30,1,14,2,01,2,1,0,0,1,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +156,3,000,30,1,14,2,01,2,1,0,0,1,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +157,3,000,30,1,17,1,04,2,1,0,0,1,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +158,3,000,33,1,14,2,11,2,2,0,0,1,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +159,3,000,36,2,18,2,06,2,1,0,0,2,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +160,3,000,20,1,59,2,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +161,3,000,20,1,62,1,09,2,2,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +162,3,000,20,1,63,1,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +163,3,000,20,1,63,2,06,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +164,3,000,20,1,63,2,06,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +165,3,000,20,1,66,1,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +166,3,000,20,2,33,1,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +167,3,000,20,2,41,2,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +168,3,000,20,2,41,2,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +169,3,000,20,2,42,2,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +170,3,000,25,2,35,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +171,3,000,25,2,35,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +172,3,000,25,2,38,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +173,3,000,25,2,38,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +174,3,000,27,2,17,2,01,2,1,0,0,1,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +175,3,000,28,2,10,2,01,2,1,0,0,1,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +176,3,000,28,2,44,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +177,3,000,28,2,72,2,11,2,2,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +178,3,000,29,1,42,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +179,3,000,29,1,43,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +180,3,000,20,2,39,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +181,3,000,20,2,39,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +182,3,000,20,2,39,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +183,3,000,20,2,39,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +184,3,000,20,2,45,2,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +185,3,000,20,2,45,2,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +186,3,000,20,2,49,1,11,2,2,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +187,3,000,20,2,49,2,18,2,2,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +188,3,000,20,2,51,2,06,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +189,3,000,20,2,53,2,06,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +190,3,000,22,2,34,2,11,2,2,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +191,3,000,22,2,66,1,01,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +192,3,000,25,1,21,1,07,2,2,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +193,3,000,25,1,21,2,11,2,2,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +194,3,000,25,1,21,2,11,2,2,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +195,3,000,25,2,13,1,09,2,2,0,0,1,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +196,3,000,25,2,18,2,01,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +197,3,000,25,2,25,1,02,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +198,3,000,25,2,27,1,02,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +199,3,000,25,2,27,1,02,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +200,3,000,25,1,13,1,08,2,2,0,0,1,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +201,3,000,25,1,13,1,08,2,2,0,0,1,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +202,3,000,25,1,14,2,06,2,1,0,0,1,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +203,3,000,25,1,25,1,04,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +204,3,000,25,1,28,1,04,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +205,3,000,25,1,29,1,01,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +206,3,000,25,2,0,2,06,2,1,0,0,1,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +207,3,000,25,2,29,1,01,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +208,3,000,25,2,31,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +209,3,000,25,2,34,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +210,3,000,30,1,6,1,01,2,1,0,0,1,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +211,3,000,30,1,8,1,01,2,1,0,0,1,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +212,3,000,30,1,27,1,02,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +213,3,000,30,2,8,2,01,2,1,0,0,1,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +214,3,000,30,2,10,1,02,2,1,0,0,1,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +215,3,000,33,1,67,2,11,2,2,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +216,3,000,33,1,68,2,11,2,2,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +217,3,000,33,2,51,1,02,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +218,3,000,33,2,51,1,02,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +219,3,000,33,2,64,2,11,2,2,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +220,5,802,38,2,55,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +221,5,802,38,2,56,1,02,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +222,5,802,38,2,56,1,02,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +223,5,802,38,2,59,1,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +224,5,802,38,2,59,1,02,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +225,5,802,38,2,59,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +226,5,802,38,2,60,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +227,5,802,38,2,60,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +228,5,802,38,2,60,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +229,5,802,38,2,61,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +230,3,000,20,2,35,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +231,3,000,20,2,36,2,06,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +232,3,000,20,2,36,2,06,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +233,3,000,20,2,36,2,06,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +234,3,000,20,2,36,2,06,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +235,3,000,20,2,36,2,06,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +236,3,000,20,2,37,2,01,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +237,3,000,20,2,38,2,01,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +238,3,000,20,2,38,2,01,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +239,3,000,20,2,38,2,01,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +240,3,000,20,1,28,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +241,3,000,20,1,28,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +242,3,000,20,1,28,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +243,3,000,20,1,29,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +244,3,000,20,1,29,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +245,3,000,20,1,29,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +246,3,000,20,1,29,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +247,3,000,20,1,30,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +248,3,000,20,1,30,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +249,3,000,20,1,30,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +250,3,000,21,2,59,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +251,3,000,21,2,59,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +252,3,000,21,2,59,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +253,3,000,21,2,67,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +254,3,000,21,2,67,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +255,3,000,21,2,67,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +256,3,000,21,2,67,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +257,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +258,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +259,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +260,3,000,36,2,79,1,04,2,1,0,0,2,15,003,007504,1007,1,9999,99999,99999999,9,99999,99999999,35438,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3655634,-157.9355938,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +261,3,000,20,1,59,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +262,3,000,20,1,60,1,01,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +263,3,000,20,1,60,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +264,3,000,20,1,60,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +265,3,000,20,1,74,1,01,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +266,3,000,20,1,89,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +267,3,000,20,1,89,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +268,3,000,20,2,37,2,03,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +269,3,000,20,2,83,1,01,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +270,3,000,20,2,57,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +271,3,000,20,2,58,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +272,3,000,20,2,59,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +273,3,000,20,2,62,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +274,3,000,20,2,62,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +275,3,000,20,2,62,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +276,3,000,20,2,64,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +277,3,000,20,2,64,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +278,3,000,20,2,67,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +279,3,000,20,2,69,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +280,3,000,22,2,57,1,02,2,1,0,0,2,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +281,3,000,25,1,0,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +282,3,000,25,1,0,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +283,3,000,25,1,0,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +284,3,000,25,1,0,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +285,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +286,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +287,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +288,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +289,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +290,3,000,20,2,62,1,01,1,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +291,3,000,20,2,72,1,01,1,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +292,3,000,20,2,75,1,01,1,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +293,3,000,20,2,76,1,01,1,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +294,3,000,20,2,76,1,01,1,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +295,3,000,20,1,34,1,01,2,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +296,3,000,20,1,66,1,01,2,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +297,3,000,20,1,67,1,01,2,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +298,3,000,20,2,25,1,01,2,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +299,3,000,25,2,18,1,01,2,1,0,0,2,19,171,290300,2070,2,9999,99999,99999999,9,99999,99999999,15367,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818539,-092.7176296,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +300,3,000,33,2,9,2,01,2,1,0,0,1,20,095,961100,2036,2,9999,99999,99999999,9,99999,99999999,732562,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.7113135,-097.9881516,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +301,3,000,21,2,76,1,01,2,1,0,0,2,20,095,961100,2037,2,9999,99999,99999999,9,99999,99999999,1851608,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.7123190,-097.9792203,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67570 +302,3,000,20,2,18,1,01,1,1,0,0,2,20,095,961100,2042,2,9999,99999,99999999,9,99999,99999999,2194395,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.7052349,-097.9985036,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +303,3,000,20,1,41,1,01,2,1,0,0,2,20,095,961100,2042,2,9999,99999,99999999,9,99999,99999999,2194395,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.7052349,-097.9985036,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +304,3,000,20,1,41,1,01,2,1,0,0,2,20,095,961100,2042,2,9999,99999,99999999,9,99999,99999999,2194395,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.7052349,-097.9985036,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +305,3,000,20,2,32,1,01,2,1,0,0,2,20,095,961100,2042,2,9999,99999,99999999,9,99999,99999999,2194395,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.7052349,-097.9985036,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +306,3,000,20,1,54,1,01,1,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +307,3,000,21,2,51,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +308,3,000,21,2,51,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +309,3,000,21,2,54,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +310,3,000,21,2,44,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +311,3,000,21,2,44,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +312,3,000,21,2,60,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +313,3,000,21,2,60,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +314,3,000,21,2,60,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +315,3,000,21,2,60,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +316,3,000,21,2,60,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +317,3,000,21,2,60,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +318,3,000,22,2,24,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +319,3,000,22,2,24,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +320,3,000,21,2,64,1,02,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +321,3,000,21,2,64,1,02,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +322,3,000,21,2,64,1,02,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +323,3,000,21,2,64,1,02,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +324,3,000,22,1,42,1,01,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +325,3,000,22,1,51,1,02,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +326,3,000,22,1,60,1,02,2,1,0,0,2,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +327,3,000,25,1,2,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +328,3,000,25,1,2,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +329,3,000,25,1,2,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +330,3,000,20,2,72,1,02,1,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +331,3,000,20,1,24,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +332,3,000,20,1,24,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +333,3,000,20,1,24,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +334,3,000,20,1,24,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +335,3,000,20,1,24,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +336,3,000,20,1,31,1,01,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +337,3,000,20,1,33,1,01,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +338,3,000,20,1,33,1,01,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +339,3,000,20,1,33,1,01,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +340,3,000,25,2,6,1,04,2,1,0,0,1,22,071,004800,2003,2,9999,99999,99999999,9,99999,99999999,10022,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9610588,-090.0739195,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +341,3,000,20,2,30,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +342,3,000,20,2,40,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +343,3,000,20,2,40,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +344,3,000,20,2,40,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +345,3,000,20,2,44,1,01,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +346,3,000,20,2,48,1,01,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +347,3,000,20,2,48,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +348,3,000,20,2,49,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +349,3,000,20,2,49,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +350,3,000,25,1,39,1,08,2,2,0,0,2,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +351,3,000,25,2,1,1,09,2,2,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +352,3,000,25,2,2,1,04,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +353,3,000,25,2,2,1,04,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +354,3,000,25,2,2,1,04,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +355,3,000,25,2,4,1,01,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +356,3,000,25,2,10,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +357,3,000,25,2,10,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +358,3,000,25,2,10,1,07,2,2,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +359,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +360,3,000,20,1,55,2,15,1,2,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +361,3,000,20,2,30,2,06,1,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +362,3,000,20,1,35,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +363,3,000,20,1,37,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +364,3,000,20,1,37,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +365,3,000,20,1,37,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +366,3,000,20,1,38,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +367,3,000,20,1,38,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +368,3,000,20,1,38,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +369,3,000,20,1,50,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +370,3,000,25,1,57,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +371,3,000,25,1,57,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +372,3,000,25,1,57,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +373,3,000,25,1,57,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +374,3,000,25,2,8,1,01,2,1,0,0,1,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +375,3,000,25,2,8,1,01,2,1,0,0,1,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +376,3,000,25,2,11,1,02,2,1,0,0,1,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +377,3,000,25,2,26,1,02,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +378,3,000,25,2,40,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +379,3,000,25,2,44,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +380,3,000,30,1,11,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +381,3,000,30,1,11,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +382,3,000,30,1,17,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +383,3,000,30,1,20,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +384,3,000,30,1,20,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +385,3,000,30,1,21,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +386,3,000,30,1,24,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +387,3,000,30,1,24,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +388,3,000,30,2,1,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +389,3,000,30,2,1,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +390,3,000,21,1,39,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +391,3,000,21,1,61,1,08,2,2,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +392,3,000,21,1,63,1,01,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +393,3,000,21,2,27,1,01,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +394,3,000,21,2,48,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +395,3,000,21,2,48,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +396,3,000,21,2,50,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +397,3,000,21,2,50,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +398,3,000,21,2,60,1,01,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +399,3,000,21,2,62,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +400,3,000,27,1,12,1,01,2,1,0,0,1,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +401,3,000,27,2,12,1,07,2,2,0,0,1,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +402,3,000,30,2,1,2,03,2,1,0,0,1,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +403,3,000,30,2,13,2,06,2,1,0,0,1,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +404,3,000,30,2,14,1,10,2,2,0,0,1,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +405,3,000,33,1,18,1,02,2,1,0,0,2,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +406,3,000,33,2,17,1,01,2,1,0,0,1,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +407,3,000,34,1,62,1,01,2,1,0,0,2,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +408,3,000,34,1,63,1,01,2,1,0,0,2,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +409,5,801,38,2,23,1,22,0,3,2,7,2,27,037,060509,2009,2,9999,99999,99999999,9,99999,99999999,16849,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,31076,F,02395429,378,4,99999,99999999,+44.8214653,-093.0467588,L,1,99999,99999,99999,9,N,N,31076,A,02395429,01702,2,99999,99999,15030,52B,052,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002740,55076 +410,3,000,25,1,34,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +411,3,000,25,2,2,1,04,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +412,3,000,25,2,15,1,01,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +413,3,000,25,2,15,1,01,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +414,3,000,25,2,17,1,01,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +415,3,000,25,2,18,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +416,3,000,25,2,19,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +417,3,000,25,2,19,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +418,3,000,25,2,23,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +419,3,000,25,2,23,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +420,3,000,20,2,29,1,01,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +421,3,000,20,2,29,1,01,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +422,3,000,20,2,49,2,06,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +423,3,000,20,2,49,2,06,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +424,3,000,20,2,49,2,06,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +425,3,000,20,2,58,1,01,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +426,3,000,20,2,60,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +427,3,000,25,1,28,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +428,3,000,25,1,48,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +429,3,000,25,1,48,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +430,3,000,20,2,49,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +431,3,000,20,2,49,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +432,3,000,20,2,49,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +433,3,000,21,1,56,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +434,3,000,21,1,56,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +435,3,000,21,1,56,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +436,3,000,21,2,56,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +437,3,000,21,2,57,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +438,3,000,21,2,57,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +439,3,000,21,2,71,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +440,3,000,28,1,34,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +441,3,000,28,2,31,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +442,3,000,28,2,31,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +443,3,000,29,1,45,1,01,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +444,3,000,29,2,62,1,01,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +445,3,000,30,1,7,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +446,3,000,30,1,15,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +447,3,000,30,1,15,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +448,3,000,30,1,20,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +449,3,000,30,1,20,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +450,3,000,21,1,46,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +451,3,000,21,1,48,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +452,3,000,21,1,49,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +453,3,000,21,1,49,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +454,3,000,21,1,87,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +455,3,000,21,1,88,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +456,3,000,21,1,89,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +457,3,000,21,1,89,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +458,3,000,21,2,31,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +459,3,000,21,2,40,2,11,2,2,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +460,3,000,21,1,78,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +461,3,000,21,2,29,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +462,3,000,21,2,29,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +463,3,000,21,2,29,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +464,3,000,21,2,38,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +465,3,000,21,2,49,2,02,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +466,3,000,21,2,51,2,06,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +467,3,000,21,2,51,2,06,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +468,3,000,21,2,51,2,06,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +469,3,000,21,2,56,1,02,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +470,3,000,21,2,25,2,11,2,2,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +471,3,000,21,2,28,2,25,2,3,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +472,3,000,21,2,29,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +473,3,000,21,2,29,2,11,2,2,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +474,3,000,21,2,32,2,11,2,2,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +475,3,000,21,2,33,2,15,2,2,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +476,3,000,21,2,36,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +477,3,000,21,2,37,2,03,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +478,3,000,21,2,38,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +479,3,000,21,2,38,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +480,3,000,25,1,13,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +481,3,000,25,1,13,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +482,3,000,25,1,15,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +483,3,000,25,1,16,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +484,3,000,25,1,16,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +485,3,000,25,1,16,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +486,3,000,25,1,16,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +487,3,000,25,1,16,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +488,3,000,25,1,17,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +489,3,000,25,1,37,1,01,2,1,0,0,2,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +490,3,000,21,2,77,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +491,3,000,21,2,77,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +492,3,000,25,1,0,1,04,2,1,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +493,3,000,25,1,0,1,04,2,1,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +494,3,000,25,1,1,1,07,2,2,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +495,3,000,25,1,3,1,01,2,1,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +496,3,000,25,1,3,1,09,2,2,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +497,3,000,25,1,8,2,01,2,1,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +498,3,000,25,1,14,2,01,2,1,0,0,1,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +499,3,000,25,1,19,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +500,3,000,21,1,44,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +501,3,000,21,1,44,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +502,3,000,21,1,55,2,06,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +503,3,000,21,1,55,2,06,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +504,3,000,21,1,56,2,06,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +505,3,000,21,1,58,1,01,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +506,3,000,21,1,62,2,06,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +507,3,000,21,1,63,2,01,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +508,3,000,21,1,90,1,01,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +509,3,000,21,2,34,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +510,3,000,25,2,1,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +511,3,000,25,2,1,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +512,3,000,25,2,1,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +513,3,000,25,2,6,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +514,3,000,25,2,6,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +515,3,000,25,2,9,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +516,3,000,25,2,9,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +517,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +518,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +519,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +520,3,000,20,2,57,1,02,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +521,3,000,20,2,57,2,06,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +522,3,000,20,2,57,2,15,1,2,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +523,3,000,20,2,58,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +524,3,000,20,2,58,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +525,3,000,20,2,59,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +526,3,000,20,2,59,2,06,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +527,3,000,20,2,59,2,06,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +528,3,000,20,2,59,2,06,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +529,3,000,20,2,60,1,02,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +530,3,000,20,1,36,2,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +531,3,000,20,1,38,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +532,3,000,20,1,38,2,11,2,2,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +533,3,000,20,1,39,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +534,3,000,20,1,39,1,04,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +535,3,000,20,1,39,2,01,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +536,3,000,20,1,39,2,01,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +537,3,000,20,1,40,1,01,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +538,3,000,20,1,40,1,01,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +539,3,000,20,1,41,2,11,2,2,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +540,3,000,20,2,35,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +541,3,000,20,2,35,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +542,3,000,20,2,35,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +543,3,000,20,2,41,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +544,3,000,20,2,42,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +545,3,000,20,2,42,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +546,3,000,20,2,42,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +547,3,000,20,2,42,1,04,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +548,3,000,20,2,42,1,04,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +549,3,000,20,2,50,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +550,3,000,21,2,52,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +551,3,000,21,2,55,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +552,3,000,21,2,74,1,02,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +553,3,000,22,1,20,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +554,3,000,22,1,21,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +555,3,000,22,1,22,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +556,3,000,22,1,54,1,02,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +557,3,000,25,1,14,1,01,2,1,0,0,1,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +558,3,000,25,1,15,1,01,2,1,0,0,1,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +559,3,000,25,1,15,1,01,2,1,0,0,1,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +560,3,000,25,2,15,1,07,2,2,0,0,1,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +561,3,000,27,1,27,1,02,2,1,0,0,2,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +562,3,000,29,1,56,1,02,2,1,0,0,2,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +563,3,000,29,2,65,1,02,2,1,0,0,2,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +564,3,000,29,2,65,1,02,2,1,0,0,2,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +565,3,000,30,2,26,1,07,2,2,0,0,2,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +566,3,000,33,1,18,1,02,2,1,0,0,2,39,035,116300,1004,1,9999,99999,99999999,9,99999,99999999,4701,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5415510,-081.6086712,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +567,3,000,20,1,95,1,02,1,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +568,3,000,20,2,20,1,02,1,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +569,3,000,20,2,20,1,02,1,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +570,3,000,20,2,38,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +571,3,000,20,2,38,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +572,3,000,20,2,38,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +573,3,000,20,2,38,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +574,3,000,20,2,38,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +575,3,000,20,2,40,1,02,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +576,3,000,20,2,40,2,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +577,3,000,20,2,40,2,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +578,3,000,20,2,54,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +579,3,000,20,2,62,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +580,3,000,25,2,9,1,02,2,1,0,0,1,39,153,520500,3011,3,9999,99999,99999999,9,99999,99999999,23582,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1434423,-081.4772498,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077AMC,44221 +581,3,000,30,1,6,1,22,2,3,0,0,1,39,153,520500,3011,3,9999,99999,99999999,9,99999,99999999,23582,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1434423,-081.4772498,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077AMC,44221 +582,3,000,32,2,29,1,04,2,1,0,0,2,39,153,520500,3011,3,9999,99999,99999999,9,99999,99999999,23582,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1434423,-081.4772498,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077AMC,44221 +583,3,000,20,1,35,1,04,2,1,0,0,2,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +584,3,000,20,1,35,1,04,2,1,0,0,2,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +585,3,000,20,1,35,1,04,2,1,0,0,2,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +586,3,000,20,1,39,1,04,2,1,0,0,2,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +587,3,000,25,2,3,1,01,2,1,0,0,1,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +588,3,000,25,2,12,1,01,2,1,0,0,1,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +589,3,000,25,2,12,1,01,2,1,0,0,1,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +590,3,000,20,1,37,1,02,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +591,3,000,20,1,46,1,08,2,2,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +592,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +593,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +594,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +595,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +596,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +597,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +598,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +599,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +600,3,000,20,2,52,2,11,2,2,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +601,3,000,20,2,57,1,02,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +602,3,000,20,2,57,1,02,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +603,3,000,21,1,29,1,08,2,2,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +604,3,000,21,1,29,1,08,2,2,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +605,3,000,21,1,29,1,08,2,2,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +606,3,000,21,2,45,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +607,3,000,21,2,45,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +608,3,000,21,2,47,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +609,3,000,21,2,47,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +610,3,000,21,1,36,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +611,3,000,21,1,36,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +612,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +613,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +614,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +615,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +616,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +617,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +618,3,000,21,1,38,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +619,3,000,21,1,46,1,11,2,2,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +620,3,000,20,1,46,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +621,3,000,20,1,67,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +622,3,000,20,1,67,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +623,3,000,20,1,67,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +624,3,000,20,1,67,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +625,3,000,20,1,67,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +626,3,000,20,1,69,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +627,3,000,20,2,36,1,06,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +628,3,000,20,2,45,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +629,3,000,20,2,67,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +630,3,000,21,2,37,2,11,2,2,0,0,2,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +631,3,000,21,2,52,2,11,2,2,0,0,2,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +632,3,000,22,2,31,1,01,2,1,0,0,2,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +633,3,000,25,1,2,1,01,2,1,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +634,3,000,25,1,22,1,01,2,1,0,0,2,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +635,3,000,25,2,2,2,11,2,2,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +636,3,000,25,2,3,1,01,2,1,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +637,3,000,25,2,22,1,01,2,1,0,0,2,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +638,3,000,30,1,16,1,01,2,1,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +639,3,000,30,1,16,1,01,2,1,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +640,3,000,21,2,39,1,01,2,1,0,0,2,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +641,3,000,21,2,39,1,01,2,1,0,0,2,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +642,3,000,22,2,41,1,01,2,1,0,0,2,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +643,3,000,25,1,14,2,06,2,1,0,0,1,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +644,3,000,25,2,12,1,01,2,1,0,0,1,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +645,3,000,30,2,9,1,01,2,1,0,0,1,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +646,3,000,34,2,21,1,01,2,1,0,0,2,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +647,3,000,34,2,21,1,01,2,1,0,0,2,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +648,3,000,34,2,60,1,01,2,1,0,0,2,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +649,3,000,35,2,5,1,02,2,1,0,0,1,42,071,010701,1014,1,9999,99999,99999999,9,99999,99999999,11264,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1535245,-076.6077734,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +650,3,000,27,1,15,1,07,2,2,0,0,1,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +651,3,000,29,2,68,1,01,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +652,3,000,29,2,68,1,01,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +653,3,000,29,2,88,1,01,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +654,3,000,29,2,89,1,01,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +655,3,000,33,2,47,1,02,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +656,3,000,33,2,74,1,01,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +657,3,000,33,2,81,1,02,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +658,3,000,34,2,67,1,01,2,1,0,0,2,45,007,011800,3018,3,9999,99999,99999999,9,99999,99999999,101565,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4254485,-082.6559751,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +659,3,000,20,1,32,1,12,2,2,0,0,2,45,007,011800,3019,3,9999,99999,99999999,9,99999,99999999,82296,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4292139,-082.6605418,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +660,3,000,30,1,13,1,01,2,1,0,0,1,47,035,970502,1034,1,9999,99999,99999999,9,99999,99999999,548715,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9309034,-085.0327438,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +661,3,000,30,1,13,1,01,2,1,0,0,1,47,035,970502,1034,1,9999,99999,99999999,9,99999,99999999,548715,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9309034,-085.0327438,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +662,3,000,34,1,44,1,01,2,1,0,0,2,47,035,970502,1034,1,9999,99999,99999999,9,99999,99999999,548715,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9309034,-085.0327438,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +663,3,000,36,1,68,1,01,2,1,0,0,2,47,035,970502,1034,1,9999,99999,99999999,9,99999,99999999,548715,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9309034,-085.0327438,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +664,3,000,20,1,65,1,01,1,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +665,3,000,20,1,66,1,01,1,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +666,3,000,20,1,66,1,01,1,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +667,3,000,21,2,84,1,01,2,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +668,3,000,22,1,74,1,01,2,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +669,3,000,22,2,30,2,03,2,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +670,3,000,21,1,26,1,02,2,1,0,0,2,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +671,3,000,21,2,27,1,01,2,1,0,0,2,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +672,3,000,21,2,62,1,01,2,1,0,0,2,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +673,3,000,21,2,62,1,01,2,1,0,0,2,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +674,3,000,21,2,62,1,01,2,1,0,0,2,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +675,3,000,21,2,62,1,01,2,1,0,0,2,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +676,3,000,25,1,8,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +677,3,000,25,1,9,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +678,3,000,25,1,12,1,08,2,2,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +679,3,000,25,2,1,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +680,3,000,20,1,38,2,01,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +681,3,000,20,1,38,2,01,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +682,3,000,20,1,38,2,01,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +683,3,000,20,1,38,2,06,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +684,3,000,20,1,38,2,06,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +685,3,000,20,1,40,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +686,3,000,20,1,41,1,02,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +687,3,000,20,1,42,1,02,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +688,3,000,20,1,42,1,02,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +689,3,000,20,1,43,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +690,3,000,25,1,7,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +691,3,000,25,1,7,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +692,3,000,25,1,7,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +693,3,000,25,1,8,2,28,2,3,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +694,3,000,25,1,9,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +695,3,000,25,1,9,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +696,3,000,25,1,11,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +697,3,000,25,1,15,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +698,3,000,25,2,12,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +699,3,000,27,1,15,1,02,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +700,3,000,25,2,8,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +701,3,000,25,2,9,2,08,2,2,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +702,3,000,25,2,9,2,08,2,2,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +703,3,000,25,2,10,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +704,3,000,25,2,11,1,07,2,2,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +705,3,000,25,2,11,2,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +706,3,000,25,2,12,1,07,2,2,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +707,3,000,25,2,17,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +708,3,000,25,2,17,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +709,3,000,25,2,17,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +710,3,000,20,1,79,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +711,3,000,20,1,79,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +712,3,000,20,1,79,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +713,3,000,20,1,79,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +714,3,000,20,1,79,1,02,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +715,3,000,20,1,80,1,07,2,2,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +716,3,000,20,2,41,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +717,3,000,20,2,41,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +718,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +719,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +720,3,000,25,2,19,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +721,3,000,25,2,19,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +722,3,000,25,2,19,2,11,2,2,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +723,3,000,25,2,19,2,11,2,2,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +724,3,000,25,2,20,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +725,3,000,25,2,20,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +726,3,000,25,2,24,1,04,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +727,3,000,25,2,24,1,04,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +728,3,000,25,2,26,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +729,3,000,25,2,26,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +730,3,000,25,2,2,2,20,2,2,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +731,3,000,25,2,2,2,20,2,2,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +732,3,000,25,2,3,1,01,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +733,3,000,25,2,3,1,01,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +734,3,000,25,2,3,1,01,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +735,3,000,25,2,3,1,01,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +736,3,000,25,2,5,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +737,3,000,25,2,5,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +738,3,000,25,2,5,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +739,3,000,25,2,5,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +740,3,000,20,1,70,2,01,2,1,0,0,2,48,327,950300,3029,3,9999,99999,99999999,9,99999,99999999,14544,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9139978,-099.7880474,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +741,3,000,20,1,85,1,01,2,1,0,0,2,48,327,950300,3029,3,9999,99999,99999999,9,99999,99999999,14544,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9139978,-099.7880474,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +742,3,000,20,1,55,1,01,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +743,3,000,20,1,55,1,01,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +744,3,000,20,1,55,1,01,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +745,3,000,20,1,56,1,01,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +746,3,000,20,1,56,1,01,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +747,3,000,20,1,57,1,01,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +748,3,000,20,2,18,2,06,1,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +749,3,000,20,1,20,1,08,2,2,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +750,3,000,20,1,60,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +751,3,000,20,2,38,1,03,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +752,3,000,20,2,51,1,11,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +753,3,000,20,2,51,1,11,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +754,3,000,20,2,55,1,11,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +755,3,000,21,1,52,2,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +756,3,000,21,1,53,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +757,3,000,21,1,54,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +758,3,000,21,1,54,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +759,3,000,21,1,54,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +760,3,000,21,2,57,1,01,2,1,0,0,2,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +761,3,000,21,2,59,1,01,2,1,0,0,2,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +762,3,000,21,2,70,1,01,2,1,0,0,2,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +763,3,000,21,2,70,1,01,2,1,0,0,2,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +764,3,000,25,1,0,1,11,2,2,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +765,3,000,25,1,1,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +766,3,000,25,1,1,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +767,3,000,25,1,1,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +768,3,000,25,1,1,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +769,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +770,3,000,20,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +771,3,000,20,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +772,3,000,20,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +773,3,000,20,2,66,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +774,3,000,21,1,40,2,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +775,3,000,21,1,58,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +776,3,000,21,2,37,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +777,3,000,21,2,37,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +778,3,000,21,2,38,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +779,3,000,21,2,38,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +780,3,000,20,2,68,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +781,3,000,21,1,40,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +782,3,000,21,1,43,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +783,3,000,21,1,43,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +784,3,000,21,1,44,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +785,3,000,21,1,44,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +786,3,000,21,2,24,1,09,2,2,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +787,3,000,21,2,34,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +788,3,000,21,2,34,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +789,3,000,21,2,45,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +790,3,000,20,1,54,1,25,2,3,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +791,3,000,20,1,73,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +792,3,000,20,1,73,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +793,3,000,20,1,73,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +794,3,000,20,1,74,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +795,3,000,20,2,28,1,02,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +796,3,000,20,2,28,1,02,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +797,3,000,20,2,62,1,08,2,2,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +798,3,000,20,2,75,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +799,3,000,20,2,76,1,02,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +800,3,000,20,2,34,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +801,3,000,20,2,35,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +802,3,000,20,2,35,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +803,3,000,20,2,35,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +804,3,000,20,2,35,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +805,3,000,20,2,36,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +806,3,000,20,2,36,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +807,3,000,20,2,36,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +808,3,000,20,2,36,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +809,3,000,20,2,37,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +810,3,000,21,1,41,1,01,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +811,3,000,21,1,41,1,01,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +812,3,000,21,1,62,1,07,2,2,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +813,3,000,22,1,34,1,13,2,2,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +814,3,000,25,1,8,1,01,2,1,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +815,3,000,25,1,14,2,03,2,1,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +816,3,000,25,1,15,2,06,2,1,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +817,3,000,25,1,15,2,06,2,1,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +818,3,000,25,1,19,2,06,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +819,3,000,25,1,30,1,01,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +820,3,000,20,1,74,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +821,3,000,20,1,74,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +822,3,000,20,2,39,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +823,3,000,20,2,39,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +824,3,000,20,2,39,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +825,3,000,20,2,71,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +826,3,000,20,2,72,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +827,3,000,20,2,72,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +828,3,000,20,2,72,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +829,3,000,20,2,72,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +830,3,000,25,1,7,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +831,3,000,25,1,7,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +832,3,000,25,1,7,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +833,3,000,25,2,2,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +834,3,000,25,2,2,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +835,3,000,25,2,2,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +836,3,000,25,2,2,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +837,3,000,25,2,15,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +838,3,000,25,2,15,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +839,3,000,25,2,15,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +840,3,000,21,1,64,1,03,2,1,0,0,2,42,073,010600,1003,1,9999,99999,99999999,9,99999,99999999,26610,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0387355,-080.4117160,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000950,16116 +841,3,000,22,1,23,1,08,2,2,0,0,2,42,073,010600,1003,1,9999,99999,99999999,9,99999,99999999,26610,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0387355,-080.4117160,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000950,16116 +842,3,000,25,1,8,2,03,2,1,0,0,1,42,073,010600,1003,1,9999,99999,99999999,9,99999,99999999,26610,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0387355,-080.4117160,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000950,16116 +843,3,000,25,1,16,1,11,2,2,0,0,1,42,073,010600,1003,1,9999,99999,99999999,9,99999,99999999,26610,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0387355,-080.4117160,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000950,16116 +844,3,000,30,2,25,1,01,2,1,0,0,2,42,073,010600,1003,1,9999,99999,99999999,9,99999,99999999,26610,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0387355,-080.4117160,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000950,16116 +845,3,000,33,1,78,2,06,2,1,0,0,2,42,073,010600,1003,1,9999,99999,99999999,9,99999,99999999,26610,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0387355,-080.4117160,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000950,16116 +846,3,000,20,1,27,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +847,3,000,20,1,41,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +848,3,000,20,1,43,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +849,3,000,20,1,60,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +850,3,000,33,2,7,1,02,2,1,0,0,1,13,017,960400,1024,1,9999,99999,99999999,9,99999,99999999,8147,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7321471,-083.2411080,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +851,3,000,34,1,24,2,03,2,1,0,0,2,13,017,960400,1024,1,9999,99999,99999999,9,99999,99999999,8147,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7321471,-083.2411080,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +852,3,000,34,1,24,2,03,2,1,0,0,2,13,017,960400,1024,1,9999,99999,99999999,9,99999,99999999,8147,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7321471,-083.2411080,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +853,3,000,20,1,34,2,06,1,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +854,3,000,20,1,70,2,06,1,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +855,3,000,20,1,37,2,06,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +856,3,000,20,1,37,2,06,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +857,3,000,20,1,67,1,01,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +858,3,000,20,2,20,2,06,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +859,3,000,20,2,23,2,06,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +860,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +861,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +862,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +863,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +864,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +865,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +866,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +867,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +868,3,000,20,1,22,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +869,3,000,20,1,22,1,02,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +870,3,000,20,1,28,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +871,3,000,20,1,90,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +872,3,000,20,1,90,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +873,3,000,20,2,53,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +874,3,000,20,2,53,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +875,3,000,20,2,95,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +876,3,000,20,2,95,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +877,3,000,20,2,95,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +878,3,000,20,2,96,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +879,3,000,20,2,96,1,01,1,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +880,3,000,25,2,18,1,10,2,2,0,0,2,16,001,010407,3038,3,9999,99999,99999999,9,99999,99999999,15436,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5420321,-116.4349600,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +881,3,000,25,2,18,1,10,2,2,0,0,2,16,001,010407,3038,3,9999,99999,99999999,9,99999,99999999,15436,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5420321,-116.4349600,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +882,3,000,25,2,22,1,01,2,1,0,0,2,16,001,010407,3038,3,9999,99999,99999999,9,99999,99999999,15436,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5420321,-116.4349600,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +883,3,000,25,2,41,1,01,2,1,0,0,2,16,001,010407,3038,3,9999,99999,99999999,9,99999,99999999,15436,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5420321,-116.4349600,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +884,3,000,28,2,7,1,02,2,1,0,0,1,16,001,010407,3038,3,9999,99999,99999999,9,99999,99999999,15436,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5420321,-116.4349600,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +885,3,000,20,1,45,1,01,1,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +886,3,000,20,1,48,1,01,1,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +887,3,000,20,1,48,1,01,1,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +888,3,000,20,1,32,1,11,2,2,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +889,3,000,20,1,35,2,06,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +890,3,000,30,2,8,1,01,2,1,0,0,1,36,103,158403,2008,2,9999,99999,99999999,9,99999,99999999,17613,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8885956,-072.9367469,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +891,3,000,30,2,8,1,01,2,1,0,0,1,36,103,158403,2008,2,9999,99999,99999999,9,99999,99999999,17613,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8885956,-072.9367469,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +892,3,000,30,2,15,1,01,2,1,0,0,1,36,103,158403,2008,2,9999,99999,99999999,9,99999,99999999,17613,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8885956,-072.9367469,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +893,3,000,35,2,2,1,02,2,1,0,0,1,36,103,158403,2008,2,9999,99999,99999999,9,99999,99999999,17613,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8885956,-072.9367469,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +894,3,000,36,1,2,2,06,2,1,0,0,1,36,103,158403,2008,2,9999,99999,99999999,9,99999,99999999,17613,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8885956,-072.9367469,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +895,3,000,20,1,33,1,06,1,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +896,3,000,20,1,52,1,01,1,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +897,3,000,20,1,52,1,01,1,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +898,3,000,20,1,78,1,01,1,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +899,3,000,20,1,36,1,07,2,2,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +900,3,000,25,2,12,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +901,3,000,25,2,12,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +902,3,000,25,2,12,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +903,3,000,25,2,12,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +904,3,000,25,2,12,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +905,3,000,25,2,12,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +906,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +907,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +908,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +909,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +910,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +911,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +912,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +913,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +914,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +915,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +916,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +917,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +918,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +919,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +920,3,000,20,1,77,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +921,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +922,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +923,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +924,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +925,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +926,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +927,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +928,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +929,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +930,3,000,24,2,24,1,01,2,1,0,0,2,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +931,3,000,25,1,33,1,01,2,1,0,0,2,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +932,3,000,25,1,33,1,01,2,1,0,0,2,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +933,3,000,25,2,11,1,01,2,1,0,0,1,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +934,3,000,25,2,11,1,01,2,1,0,0,1,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +935,3,000,26,1,9,1,01,2,1,0,0,1,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +936,3,000,29,2,75,1,01,2,1,0,0,2,53,051,970400,2025,2,9999,99999,99999999,9,99999,99999999,1364222,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0539727,-117.4309442,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99006 +937,3,000,21,2,63,1,01,2,1,0,0,2,53,051,970400,2028,2,9999,99999,99999999,9,99999,99999999,364915,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0524231,-117.3950811,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99009 +938,3,000,21,2,63,1,01,2,1,0,0,2,53,051,970400,2028,2,9999,99999,99999999,9,99999,99999999,364915,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0524231,-117.3950811,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99009 +939,3,000,25,2,23,1,03,2,1,0,0,2,53,051,970400,2028,2,9999,99999,99999999,9,99999,99999999,364915,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0524231,-117.3950811,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99009 +940,3,000,25,1,11,1,03,2,1,0,0,1,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +941,3,000,25,1,12,1,10,2,2,0,0,1,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +942,3,000,25,1,13,1,01,2,1,0,0,1,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +943,3,000,25,1,15,1,26,2,3,0,0,1,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +944,3,000,25,1,21,1,13,2,2,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +945,3,000,25,1,25,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +946,3,000,25,1,25,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +947,3,000,25,1,25,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +948,3,000,25,1,25,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +949,3,000,25,1,26,1,05,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +950,3,000,20,1,51,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +951,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +952,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +953,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +954,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +955,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +956,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +957,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +958,3,000,20,2,31,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +959,3,000,20,2,32,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +960,3,000,20,1,74,1,01,1,1,0,0,2,55,127,000201,1019,1,9999,99999,99999999,9,99999,99999999,86254,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8379330,-088.4966208,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53119 +961,3,000,23,1,65,1,01,2,1,0,0,2,55,127,000201,1019,1,9999,99999,99999999,9,99999,99999999,86254,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8379330,-088.4966208,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53119 +962,3,000,25,1,19,1,11,2,2,0,0,2,55,127,000201,1019,1,9999,99999,99999999,9,99999,99999999,86254,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8379330,-088.4966208,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53119 +963,3,000,20,1,68,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +964,3,000,20,1,69,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +965,3,000,20,1,70,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +966,3,000,20,1,70,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +967,3,000,20,1,70,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +968,3,000,20,1,70,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +969,3,000,20,1,70,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +970,3,000,25,1,27,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +971,3,000,25,1,28,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +972,3,000,25,1,29,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +973,3,000,25,1,35,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +974,3,000,25,1,35,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +975,3,000,26,2,2,1,03,2,1,0,0,1,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +976,3,000,27,1,49,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +977,3,000,28,1,56,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +978,3,000,30,2,21,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +979,3,000,32,1,45,1,03,2,1,0,0,2,04,005,945200,1005,1,2430,48845,00041148,R,99999,99999999,12164,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1322284,-111.2443434,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +980,3,000,20,2,43,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +981,3,000,20,2,63,1,05,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +982,3,000,21,1,51,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +983,3,000,21,1,52,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +984,3,000,21,1,52,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +985,3,000,21,2,70,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +986,3,000,25,1,19,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +987,3,000,25,1,27,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +988,3,000,25,1,27,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +989,3,000,25,1,27,1,01,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +990,3,000,30,1,14,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +991,3,000,30,1,14,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +992,3,000,30,2,0,1,07,2,2,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +993,3,000,30,2,2,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +994,3,000,30,2,2,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +995,3,000,30,2,2,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +996,3,000,30,2,2,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +997,3,000,30,2,6,1,01,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +998,3,000,30,2,7,1,02,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +999,3,000,30,2,9,1,04,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +1000,3,000,25,1,18,1,08,2,2,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1001,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1002,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1003,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1004,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1005,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1006,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1007,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1008,3,000,25,1,20,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1009,3,000,25,1,20,1,09,2,2,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +1010,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1011,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1012,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1013,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1014,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1015,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1016,3,000,21,2,57,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1017,3,000,21,2,60,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1018,3,000,21,2,60,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1019,3,000,21,2,60,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +1020,3,000,20,2,42,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1021,3,000,20,2,42,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1022,3,000,20,2,56,2,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1023,3,000,20,2,57,2,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1024,3,000,20,2,70,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1025,3,000,21,1,41,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1026,3,000,21,1,41,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1027,3,000,21,1,42,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1028,3,000,21,1,43,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1029,3,000,21,1,43,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +1030,3,000,28,1,10,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1031,3,000,28,1,62,1,01,2,1,0,0,2,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1032,3,000,29,2,67,2,03,2,1,0,0,2,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1033,3,000,30,1,6,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1034,3,000,30,1,6,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1035,3,000,30,1,7,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1036,3,000,30,1,11,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1037,3,000,30,1,12,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1038,3,000,30,1,12,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1039,3,000,30,1,12,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +1040,3,000,25,1,8,2,04,2,1,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1041,3,000,25,1,9,2,06,2,1,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1042,3,000,25,1,9,2,07,2,2,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1043,3,000,25,1,11,2,06,2,1,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1044,3,000,25,1,11,2,07,2,2,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1045,3,000,25,1,12,1,02,2,1,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1046,3,000,25,1,12,1,02,2,1,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1047,3,000,25,2,5,1,07,2,2,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1048,3,000,25,2,7,1,07,2,2,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1049,3,000,25,2,17,2,30,2,3,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +1050,3,000,20,2,55,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1051,3,000,20,2,57,2,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1052,3,000,20,2,58,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1053,3,000,20,2,58,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1054,3,000,20,2,59,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1055,3,000,20,2,80,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1056,3,000,20,2,81,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1057,3,000,20,2,83,1,02,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1058,3,000,21,1,30,1,09,2,2,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1059,3,000,21,1,39,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +1060,5,301,37,2,70,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1061,5,301,37,2,71,2,06,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1062,5,301,37,2,72,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1063,5,301,37,2,72,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1064,5,301,37,2,72,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1065,5,301,37,2,73,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1066,5,301,37,2,76,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1067,5,301,37,2,78,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1068,5,301,37,2,78,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1069,5,301,37,2,78,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +1070,3,000,21,2,64,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1071,3,000,21,2,65,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1072,3,000,21,2,65,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1073,3,000,21,2,65,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1074,3,000,21,2,66,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1075,3,000,21,2,66,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1076,3,000,21,2,69,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1077,3,000,21,2,70,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1078,3,000,21,2,70,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1079,3,000,21,2,74,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +1080,3,000,24,2,32,1,01,2,1,0,0,2,18,133,956302,1000,1,9999,99999,99999999,9,99999,99999999,15261,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6526148,-086.8384833,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1081,3,000,25,1,21,1,01,2,1,0,0,2,18,133,956302,1000,1,9999,99999,99999999,9,99999,99999999,15261,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6526148,-086.8384833,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1082,3,000,25,1,23,1,01,2,1,0,0,2,18,133,956302,1000,1,9999,99999,99999999,9,99999,99999999,15261,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6526148,-086.8384833,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1083,3,000,25,1,39,1,01,2,1,0,0,2,18,133,956302,1000,1,9999,99999,99999999,9,99999,99999999,15261,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6526148,-086.8384833,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1084,3,000,25,2,31,1,07,2,2,0,0,2,18,133,956302,1000,1,9999,99999,99999999,9,99999,99999999,15261,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6526148,-086.8384833,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1085,3,000,27,1,24,1,01,2,1,0,0,2,18,133,956302,1000,1,9999,99999,99999999,9,99999,99999999,15261,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6526148,-086.8384833,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1086,3,000,20,1,25,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1087,3,000,20,2,30,2,11,1,2,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1088,3,000,20,2,62,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1089,3,000,20,2,62,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +1090,3,000,25,1,15,1,04,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1091,3,000,25,1,19,1,09,2,2,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1092,3,000,25,1,21,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1093,3,000,25,1,23,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1094,3,000,25,1,24,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1095,3,000,25,1,24,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1096,3,000,25,1,36,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1097,3,000,25,1,36,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1098,3,000,25,1,65,1,02,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1099,3,000,25,2,2,2,06,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +1100,3,000,25,2,17,2,06,2,1,0,0,1,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1101,3,000,25,2,17,2,06,2,1,0,0,1,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1102,3,000,25,2,25,2,03,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1103,3,000,25,2,26,2,18,2,2,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1104,3,000,25,2,26,2,18,2,2,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1105,3,000,27,1,11,2,11,2,2,0,0,1,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1106,3,000,27,2,16,2,06,2,1,0,0,1,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1107,3,000,28,1,13,2,06,2,1,0,0,1,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1108,3,000,28,1,23,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1109,3,000,28,1,53,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +1110,3,000,25,1,39,1,04,2,1,0,0,2,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1111,3,000,25,1,51,1,01,2,1,0,0,2,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1112,3,000,25,1,51,1,01,2,1,0,0,2,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1113,3,000,25,1,51,1,01,2,1,0,0,2,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1114,3,000,25,1,51,1,01,2,1,0,0,2,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1115,3,000,25,2,0,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1116,3,000,25,2,0,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1117,3,000,25,2,0,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1118,3,000,25,2,0,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1119,3,000,25,2,1,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +1120,3,000,25,1,1,1,01,2,1,0,0,1,34,037,373900,2020,2,9999,99999,99999999,9,99999,99999999,26104,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1290780,-074.8452544,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1121,3,000,36,1,8,1,01,2,1,0,0,1,34,037,373900,2020,2,9999,99999,99999999,9,99999,99999999,26104,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1290780,-074.8452544,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1122,3,000,36,1,8,1,01,2,1,0,0,1,34,037,373900,2020,2,9999,99999,99999999,9,99999,99999999,26104,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1290780,-074.8452544,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1123,3,000,20,1,43,2,06,2,1,0,0,2,34,037,373900,2021,2,9999,99999,99999999,9,99999,99999999,263817,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1078077,-074.8466664,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1124,3,000,20,2,46,2,28,2,3,0,0,2,34,037,373900,2021,2,9999,99999,99999999,9,99999,99999999,263817,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1078077,-074.8466664,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1125,3,000,25,1,19,1,01,2,1,0,0,2,34,037,373900,2021,2,9999,99999,99999999,9,99999,99999999,263817,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1078077,-074.8466664,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1126,3,000,25,2,60,1,01,2,1,0,0,2,34,037,373900,2021,2,9999,99999,99999999,9,99999,99999999,263817,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1078077,-074.8466664,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1127,3,000,27,1,8,1,01,2,1,0,0,1,34,037,373900,2021,2,9999,99999,99999999,9,99999,99999999,263817,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1078077,-074.8466664,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1128,3,000,36,1,44,2,02,2,1,0,0,2,34,037,373900,2021,2,9999,99999,99999999,9,99999,99999999,263817,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1078077,-074.8466664,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1129,3,000,20,1,40,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +1130,3,000,34,2,38,2,06,2,1,0,0,2,48,039,661902,1028,1,9999,99999,99999999,9,99999,99999999,26300,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4934932,-095.4459332,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1131,3,000,34,2,38,2,06,2,1,0,0,2,48,039,661902,1028,1,9999,99999,99999999,9,99999,99999999,26300,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4934932,-095.4459332,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1132,3,000,34,2,38,2,06,2,1,0,0,2,48,039,661902,1028,1,9999,99999,99999999,9,99999,99999999,26300,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4934932,-095.4459332,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1133,3,000,20,2,63,1,23,1,3,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1134,3,000,20,1,39,2,08,2,2,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1135,3,000,21,1,39,2,06,2,1,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1136,3,000,21,1,64,2,11,2,2,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1137,3,000,21,2,37,2,01,2,1,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1138,3,000,21,2,51,1,01,2,1,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1139,3,000,21,2,53,1,01,2,1,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +1140,3,000,21,2,48,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1141,3,000,21,2,48,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1142,3,000,21,2,48,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1143,3,000,25,1,4,2,11,2,2,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1144,3,000,25,1,9,2,11,2,2,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1145,3,000,25,1,12,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1146,3,000,25,1,12,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1147,3,000,25,1,12,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1148,3,000,25,1,14,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1149,3,000,25,1,14,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +1150,3,000,21,1,35,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1151,3,000,21,1,35,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1152,3,000,21,1,40,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1153,3,000,21,1,52,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1154,3,000,21,1,52,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1155,3,000,21,1,52,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1156,3,000,21,1,53,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1157,3,000,21,1,62,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1158,3,000,21,1,63,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1159,3,000,21,1,63,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +1160,3,000,21,2,87,1,01,2,1,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1161,3,000,21,2,87,1,01,2,1,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1162,3,000,22,1,71,1,04,2,1,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1163,3,000,22,1,71,1,04,2,1,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1164,3,000,22,1,72,1,04,2,1,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1165,3,000,25,1,2,2,19,2,2,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1166,3,000,25,1,2,2,19,2,2,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1167,3,000,25,1,4,2,19,2,2,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1168,3,000,25,1,7,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1169,3,000,25,1,7,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +1170,3,000,30,1,7,1,02,2,1,0,0,1,22,099,020202,2009,2,9999,99999,99999999,9,99999,99999999,1239641,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3789374,-091.8731674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1171,3,000,30,2,0,1,02,2,1,0,0,1,22,099,020202,2009,2,9999,99999,99999999,9,99999,99999999,1239641,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3789374,-091.8731674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1172,3,000,30,2,12,1,01,2,1,0,0,1,22,099,020202,2009,2,9999,99999,99999999,9,99999,99999999,1239641,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3789374,-091.8731674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1173,3,000,30,2,12,1,01,2,1,0,0,1,22,099,020202,2009,2,9999,99999,99999999,9,99999,99999999,1239641,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3789374,-091.8731674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1174,3,000,33,1,18,1,01,2,1,0,0,2,22,099,020202,2009,2,9999,99999,99999999,9,99999,99999999,1239641,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3789374,-091.8731674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1175,3,000,20,1,27,2,06,1,1,0,0,2,22,099,020202,2010,2,9999,99999,99999999,9,99999,99999999,535799,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3762322,-091.8835040,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1176,3,000,20,2,33,1,02,1,1,0,0,2,22,099,020202,2010,2,9999,99999,99999999,9,99999,99999999,535799,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3762322,-091.8835040,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1177,3,000,20,2,33,1,02,1,1,0,0,2,22,099,020202,2010,2,9999,99999,99999999,9,99999,99999999,535799,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3762322,-091.8835040,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1178,3,000,20,2,33,1,02,1,1,0,0,2,22,099,020202,2010,2,9999,99999,99999999,9,99999,99999999,535799,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3762322,-091.8835040,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1179,3,000,20,2,55,2,06,1,1,0,0,2,22,099,020202,2010,2,9999,99999,99999999,9,99999,99999999,535799,0,0,0,0,0,29180,03,999,99999,99999999,A,01629486,95437,N,01930283,318,7,99999,99999999,+30.3762322,-091.8835040,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,01590,046,022,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,70512 +1180,3,000,29,1,83,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1181,3,000,29,1,84,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1182,3,000,29,1,84,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1183,3,000,29,1,84,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1184,3,000,29,1,84,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1185,3,000,29,1,89,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1186,3,000,29,1,93,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1187,3,000,29,2,47,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1188,3,000,29,2,47,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1189,3,000,29,2,47,2,11,2,2,0,0,2,12,086,013700,2000,2,9999,99999,99999999,9,99999,99999999,129257,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8659900,-080.3296606,L,1,33124,99999,99999,9,N,N,30025,A,02404690,08609,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000349,33016 +1190,5,801,38,1,80,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1191,5,801,38,1,80,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1192,5,801,38,1,82,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1193,5,801,38,1,84,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1194,5,801,38,1,86,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1195,5,801,38,1,86,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1196,5,801,38,1,86,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1197,5,801,38,1,89,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1198,5,801,38,1,89,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1199,5,801,38,1,90,1,01,0,1,2,7,2,36,055,014505,2011,2,9999,99999,99999999,9,99999,99999999,231000,671,0,0,671,0,40380,25,999,99999,99999999,A,00974126,15462,A,00978825,464,2,99999,99999999,+43.1163944,-077.8083160,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00905,1,99999,99999,07530,138,061,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000078,14514 +1200,3,000,20,1,51,2,11,2,2,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1201,3,000,20,1,71,2,11,2,2,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1202,3,000,20,2,44,2,11,2,2,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1203,3,000,21,1,41,2,06,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1204,3,000,21,1,41,2,06,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1205,3,000,21,2,50,2,06,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1206,3,000,22,1,32,2,01,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1207,3,000,22,1,44,2,06,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1208,3,000,22,1,55,2,06,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1209,3,000,25,1,27,2,01,2,1,0,0,2,48,201,332600,3012,3,9999,99999,99999999,9,99999,99999999,14976,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6771377,-095.3137478,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04618,3,99999,99999,23640,147,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000285,77087 +1210,3,000,20,1,52,1,04,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1211,3,000,20,1,64,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1212,3,000,20,1,64,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1213,3,000,20,1,64,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1214,3,000,20,2,21,2,06,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1215,3,000,20,2,24,1,07,2,2,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1216,3,000,20,2,26,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1217,3,000,20,2,27,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1218,3,000,20,2,29,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1219,3,000,20,2,29,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +1220,3,000,20,2,87,1,12,2,2,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1221,3,000,21,1,24,2,06,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1222,3,000,21,1,24,2,06,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1223,3,000,21,1,40,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1224,3,000,21,1,45,2,06,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1225,3,000,21,1,56,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1226,3,000,21,1,56,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1227,3,000,21,1,56,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1228,3,000,21,1,60,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1229,3,000,21,1,60,1,12,2,2,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +1230,3,000,20,1,73,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1231,3,000,20,1,79,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1232,3,000,20,1,79,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1233,3,000,20,1,79,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1234,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1235,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1236,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1237,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1238,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1239,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +1240,3,000,25,2,19,2,01,2,1,0,0,2,26,017,280600,2011,2,9999,99999,99999999,9,99999,99999999,13765,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821377,-083.8755907,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1241,3,000,34,1,63,1,01,2,1,0,0,2,26,017,280600,2011,2,9999,99999,99999999,9,99999,99999999,13765,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821377,-083.8755907,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1242,3,000,34,1,64,1,01,2,1,0,0,2,26,017,280600,2011,2,9999,99999,99999999,9,99999,99999999,13765,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821377,-083.8755907,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1243,3,000,20,2,72,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1244,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1245,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1246,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1247,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1248,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1249,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +1250,3,000,21,1,49,1,04,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1251,3,000,21,1,61,1,01,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1252,3,000,21,1,61,1,01,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1253,3,000,21,1,61,1,01,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1254,3,000,21,1,61,1,04,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1255,3,000,21,1,61,1,04,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1256,3,000,21,1,61,1,04,2,1,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1257,3,000,21,2,39,2,11,2,2,0,0,2,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1258,3,000,25,1,5,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1259,3,000,25,1,5,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +1260,3,000,25,1,12,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1261,3,000,25,1,12,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1262,3,000,25,1,12,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1263,3,000,25,1,12,1,09,2,2,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1264,3,000,25,1,15,1,09,2,2,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1265,3,000,25,1,17,2,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1266,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1267,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1268,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1269,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +1270,3,000,25,2,7,1,01,2,1,0,0,1,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1271,3,000,25,2,8,1,01,2,1,0,0,1,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1272,3,000,25,2,10,1,01,2,1,0,0,1,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1273,3,000,25,2,13,1,01,2,1,0,0,1,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1274,3,000,25,2,22,1,01,2,1,0,0,2,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1275,3,000,25,2,22,1,01,2,1,0,0,2,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1276,3,000,25,2,22,1,01,2,1,0,0,2,36,043,010202,3003,3,9999,99999,99999999,9,99999,99999999,17607,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0223483,-075.0572168,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1277,3,000,20,1,26,2,11,1,2,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1278,3,000,20,2,76,2,11,1,2,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1279,3,000,20,1,21,2,11,2,2,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +1280,3,000,25,1,2,1,44,2,4,0,0,1,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1281,3,000,25,2,9,1,01,2,1,0,0,1,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1282,3,000,25,2,9,1,01,2,1,0,0,1,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1283,3,000,25,2,9,1,01,2,1,0,0,1,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1284,3,000,25,2,11,1,08,2,2,0,0,1,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1285,3,000,29,2,51,1,01,2,1,0,0,2,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1286,3,000,30,1,0,1,44,2,4,0,0,1,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1287,3,000,33,1,50,2,01,2,1,0,0,2,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1288,3,000,34,2,63,1,01,2,1,0,0,2,53,053,070206,1004,1,9999,99999,99999999,9,99999,99999999,1265420,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1158046,-122.0483811,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98396 +1289,3,000,20,2,66,1,01,1,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +1290,3,000,26,1,10,1,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1291,3,000,26,1,10,1,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1292,3,000,26,1,14,1,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1293,3,000,27,2,11,2,02,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1294,3,000,27,2,15,2,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1295,3,000,28,1,33,2,11,2,2,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1296,3,000,28,1,42,1,02,2,1,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1297,3,000,30,1,10,1,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1298,3,000,30,1,13,1,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1299,3,000,30,1,13,1,01,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +1300,3,000,25,2,17,1,01,2,1,0,0,1,02,198,000200,2019,2,6385,17745,02418851,R,67940,02419136,34595,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4718106,-133.1369057,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1301,3,000,25,2,17,1,03,2,1,0,0,1,02,198,000200,2019,2,6385,17745,02418851,R,67940,02419136,34595,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4718106,-133.1369057,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1302,3,000,27,2,5,1,01,2,1,0,0,1,02,198,000200,2019,2,6385,17745,02418851,R,67940,02419136,34595,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4718106,-133.1369057,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1303,3,000,34,2,21,1,03,2,1,0,0,2,02,198,000200,2019,2,6385,17745,02418851,R,67940,02419136,34595,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4718106,-133.1369057,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1304,3,000,36,2,24,1,03,2,1,0,0,2,02,198,000200,2019,2,6385,17745,02418851,R,67940,02419136,34595,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4718106,-133.1369057,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1305,3,000,36,2,24,1,03,2,1,0,0,2,02,198,000200,2019,2,6385,17745,02418851,R,67940,02419136,34595,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4718106,-133.1369057,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1306,3,000,20,1,40,1,03,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1307,3,000,20,1,44,1,03,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1308,3,000,20,1,48,1,03,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1309,3,000,20,1,48,1,03,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +1310,3,000,25,1,19,1,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1311,3,000,25,1,19,1,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1312,3,000,25,1,46,2,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1313,3,000,25,2,3,2,01,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1314,3,000,25,2,9,2,01,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1315,3,000,25,2,12,2,01,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1316,3,000,25,2,12,2,01,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1317,3,000,25,2,12,2,01,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1318,3,000,25,2,15,2,01,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1319,3,000,25,2,16,2,06,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +1320,5,301,37,2,87,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1321,5,301,37,2,87,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1322,5,301,37,2,88,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1323,5,301,37,2,88,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1324,5,301,37,2,88,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1325,5,301,37,2,88,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1326,5,301,37,2,93,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1327,5,301,37,2,93,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1328,5,301,37,2,93,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1329,5,301,37,2,93,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +1330,3,000,25,1,9,1,04,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1331,3,000,25,1,9,2,01,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1332,3,000,25,1,13,1,04,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1333,3,000,25,1,16,1,02,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1334,3,000,25,1,16,1,02,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1335,3,000,25,1,16,1,02,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1336,3,000,25,1,16,1,07,2,2,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1337,3,000,25,1,18,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1338,3,000,25,1,18,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1339,3,000,25,1,18,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +1340,3,000,20,2,43,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1341,3,000,20,2,43,1,02,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1342,3,000,20,2,45,1,04,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1343,3,000,20,2,45,1,04,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1344,3,000,20,2,46,1,04,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1345,3,000,20,2,47,1,04,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1346,3,000,20,2,47,1,04,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1347,3,000,20,2,60,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1348,3,000,20,2,60,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1349,3,000,20,2,60,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +1350,3,000,25,1,3,1,04,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1351,3,000,25,1,4,1,01,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1352,3,000,25,1,5,1,04,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1353,3,000,25,1,5,1,04,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1354,3,000,25,1,9,1,04,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1355,3,000,25,1,16,1,01,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1356,3,000,25,1,16,1,01,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1357,3,000,25,1,16,1,01,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1358,3,000,25,1,16,1,01,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1359,3,000,25,1,16,1,01,2,1,0,0,1,06,085,502906,3007,3,9999,99999,99999999,9,99999,99999999,24953,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2458328,-121.8999141,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95118 +1360,3,000,20,1,56,2,11,2,2,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1361,3,000,20,1,60,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1362,3,000,20,1,60,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1363,3,000,20,1,60,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1364,3,000,20,1,62,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1365,3,000,20,1,62,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1366,3,000,20,1,62,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1367,3,000,20,1,62,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1368,3,000,20,1,62,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1369,3,000,20,1,62,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +1370,3,000,21,1,38,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1371,3,000,21,1,38,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1372,3,000,21,1,49,2,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1373,3,000,21,1,49,2,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1374,3,000,21,1,67,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1375,3,000,21,1,68,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1376,3,000,21,2,26,2,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1377,3,000,21,2,35,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1378,3,000,21,2,38,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1379,3,000,21,2,38,1,01,2,1,0,0,2,31,055,004800,4001,4,9999,99999,99999999,9,99999,99999999,20242,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,92237,F,02396064,420,4,99999,99999999,+41.2627711,-095.9890770,L,1,99999,99999,99999,9,Y,N,37000,A,02396064,00903,2,99999,99999,74820,999,008,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,001-26,68132 +1380,3,000,21,2,66,1,01,2,1,0,0,2,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1381,3,000,25,1,13,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1382,3,000,25,1,13,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1383,3,000,25,1,13,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1384,3,000,25,1,16,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1385,3,000,25,1,16,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1386,3,000,25,1,16,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1387,3,000,25,1,16,1,01,2,1,0,0,1,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1388,3,000,25,2,26,1,01,2,1,0,0,2,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1389,3,000,28,1,79,1,01,2,1,0,0,2,55,023,960300,2043,2,9999,99999,99999999,9,99999,99999999,3867808,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1853444,-090.9560067,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000818,54657 +1390,3,000,21,2,30,1,04,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1391,3,000,21,2,30,1,04,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1392,3,000,21,2,30,1,04,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1393,3,000,21,2,30,1,04,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1394,3,000,21,2,33,1,04,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1395,3,000,21,2,33,2,44,2,4,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1396,3,000,21,2,36,1,01,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1397,3,000,21,2,36,1,01,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1398,3,000,21,2,36,1,01,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1399,3,000,21,2,39,1,01,2,1,0,0,2,51,510,200704,1002,1,9999,99999,99999999,9,99999,99999999,11765,0,0,0,0,0,47900,08,999,99999,99999999,F,01498415,90020,F,01498415,548,5,99999,99999999,+38.7986073,-077.0622301,L,1,47894,99999,99999,9,Y,N,01000,A,01498415,51000,3,99999,99999,00120,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000112,22314 +1400,3,000,21,2,36,2,06,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1401,3,000,21,2,38,2,11,2,2,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1402,3,000,21,2,38,2,11,2,2,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1403,3,000,21,2,39,2,11,2,2,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1404,3,000,21,2,40,2,06,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1405,3,000,21,2,40,2,06,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1406,3,000,21,2,40,2,06,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1407,3,000,21,2,41,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1408,3,000,21,2,41,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1409,3,000,21,2,41,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +1410,3,000,20,1,31,2,06,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1411,3,000,20,1,44,1,01,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1412,3,000,20,1,47,1,01,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1413,3,000,20,1,57,2,01,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1414,3,000,21,1,55,1,01,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1415,3,000,21,1,58,1,01,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1416,3,000,21,2,32,1,01,2,1,0,0,2,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1417,3,000,25,1,15,1,03,2,1,0,0,1,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1418,3,000,36,1,14,1,03,2,1,0,0,1,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1419,3,000,36,1,14,1,03,2,1,0,0,1,40,009,966200,4073,4,5560,13905,02418814,R,99999,99999999,6801,0,0,0,0,0,21120,03,999,99999,99999999,A,01101792,91014,S,01937705,999,7,99999,99999999,+35.4093732,-099.4237495,L,2,99999,99999,99999,9,Y,N,23500,A,02410424,21600,3,99999,99999,10740,055,026,01102857,99999,99999999,9,140,13913,02804811,999999,26767,U,99999,U,000235,73644 +1420,3,000,25,1,10,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1421,3,000,25,1,10,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1422,3,000,25,1,10,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1423,3,000,25,1,12,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1424,3,000,25,1,12,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1425,3,000,25,1,13,2,11,2,2,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1426,3,000,25,1,14,1,02,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1427,3,000,25,1,14,1,02,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1428,3,000,25,1,14,2,01,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1429,3,000,25,1,14,2,01,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +1430,3,000,24,2,60,2,06,2,1,0,0,2,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1431,3,000,25,1,2,1,03,2,1,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1432,3,000,25,1,2,1,03,2,1,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1433,3,000,25,1,2,2,01,2,1,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1434,3,000,25,1,4,1,01,2,1,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1435,3,000,25,1,5,1,01,2,1,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1436,3,000,25,1,5,1,04,2,1,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1437,3,000,25,1,6,2,11,2,2,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1438,3,000,25,1,6,2,11,2,2,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1439,3,000,25,1,6,2,11,2,2,0,0,1,06,037,183610,2001,2,9999,99999,99999999,9,99999,99999999,33667,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.1136796,-118.1964512,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03735,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90042 +1440,3,000,21,2,77,1,01,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1441,3,000,21,2,77,1,01,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1442,3,000,21,2,77,1,01,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1443,3,000,21,2,82,1,02,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1444,3,000,22,1,36,2,06,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1445,3,000,22,1,37,2,06,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1446,3,000,22,1,61,2,06,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1447,3,000,22,1,70,1,02,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1448,3,000,22,2,24,2,06,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1449,3,000,22,2,26,1,01,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +1450,3,000,22,2,26,1,01,2,1,0,0,2,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1451,3,000,25,1,2,1,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1452,3,000,25,1,13,2,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1453,3,000,25,1,17,1,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1454,3,000,25,1,17,1,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1455,3,000,25,2,11,1,07,2,2,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1456,3,000,26,1,3,2,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1457,3,000,27,1,14,1,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1458,3,000,27,2,13,1,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1459,3,000,27,2,14,1,01,2,1,0,0,1,35,009,000201,3028,3,9999,99999,99999999,9,99999,99999999,13434,0,0,0,0,0,17580,03,999,99999,99999999,A,00933053,90720,S,01937513,188,8,99999,99999999,+34.4206333,-103.2281902,L,2,99999,99999,99999,9,Y,N,16420,A,02409489,00400,4,99999,99999,00570,064,007,00897535,99999,99999999,9,999,99999,99999999,999999,18208,U,99999,U,000011,88101 +1460,3,000,21,2,53,2,06,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1461,3,000,21,2,53,2,06,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1462,3,000,21,2,54,2,06,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1463,3,000,21,2,55,2,01,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1464,3,000,21,2,55,2,01,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1465,3,000,21,2,55,2,01,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1466,3,000,21,2,56,2,01,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1467,3,000,21,2,62,2,11,2,2,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1468,3,000,21,2,62,2,11,2,2,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1469,3,000,21,2,64,2,11,2,2,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +1470,3,000,21,2,58,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1471,3,000,25,1,8,1,02,2,1,0,0,1,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1472,3,000,25,1,18,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1473,3,000,25,1,19,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1474,3,000,25,1,19,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1475,3,000,25,1,20,2,01,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1476,3,000,25,1,26,2,06,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1477,3,000,25,1,60,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1478,3,000,25,1,60,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1479,3,000,25,1,61,1,02,2,1,0,0,2,12,011,100700,3010,3,9999,99999,99999999,9,99999,99999999,19305,0,0,0,0,0,33100,24,999,99999,99999999,A,00295753,91417,S,01935791,370,5,99999,99999999,+25.9939581,-080.1923453,L,1,22744,99999,99999,9,N,N,76658,A,02405714,01114,3,99999,99999,00180,101,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00Q083,33023 +1480,3,000,20,2,65,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1481,3,000,20,2,66,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1482,3,000,20,2,75,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1483,3,000,20,2,75,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1484,3,000,21,1,24,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1485,3,000,21,1,39,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1486,3,000,21,1,65,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1487,3,000,21,1,65,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1488,3,000,21,1,66,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1489,3,000,21,1,66,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +1490,3,000,20,1,60,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1491,3,000,20,1,60,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1492,3,000,20,1,61,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1493,3,000,20,1,69,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1494,3,000,20,1,70,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1495,3,000,20,1,71,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1496,3,000,20,1,71,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1497,3,000,20,1,71,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1498,3,000,20,1,72,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1499,3,000,20,1,72,1,01,2,1,0,0,2,25,017,356100,1005,1,9999,99999,99999999,9,99999,99999999,12980,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,01605,A,00619393,148,1,99999,99999999,+42.4028689,-071.1443644,L,1,15764,71634,71650,1,N,N,01640,S,02377981,00612,1,99999,99999,01980,141,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000070,02474 +1500,3,000,25,2,16,2,01,2,1,0,0,1,53,065,951402,2042,2,9999,99999,99999999,9,99999,99999999,25746,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.7991526,-117.5860768,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1501,3,000,25,2,16,2,01,2,1,0,0,1,53,065,951402,2042,2,9999,99999,99999999,9,99999,99999999,25746,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.7991526,-117.5860768,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1502,3,000,30,2,8,1,01,2,1,0,0,1,53,065,951402,2042,2,9999,99999,99999999,9,99999,99999999,25746,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.7991526,-117.5860768,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1503,3,000,32,2,37,1,01,2,1,0,0,2,53,065,951402,2042,2,9999,99999,99999999,9,99999,99999999,25746,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.7991526,-117.5860768,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1504,3,000,20,1,55,1,01,1,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1505,3,000,20,1,60,2,11,1,2,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1506,3,000,20,1,60,2,11,1,2,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1507,3,000,20,1,36,1,08,2,2,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1508,3,000,20,1,47,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1509,3,000,20,1,47,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +1510,3,000,22,1,57,1,01,2,1,0,0,2,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1511,3,000,25,1,10,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1512,3,000,25,1,12,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1513,3,000,25,1,12,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1514,3,000,25,2,4,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1515,3,000,25,2,16,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1516,3,000,25,2,16,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1517,3,000,25,2,16,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1518,3,000,25,2,16,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1519,3,000,25,2,16,1,01,2,1,0,0,1,28,159,950400,1017,1,9999,99999,99999999,9,99999,99999999,1352331,0,0,0,0,0,99999,01,999,99999,99999999,A,00695800,90720,N,00712143,999,6,99999,99999999,+33.1426611,-089.0313243,L,9,99999,99999,99999,9,N,N,42280,A,02404962,00600,3,99999,99999,02700,035,032,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,39339 +1520,3,000,20,2,49,1,01,2,1,0,0,2,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1521,3,000,20,2,49,1,01,2,1,0,0,2,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1522,3,000,20,2,54,1,02,2,1,0,0,2,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1523,3,000,21,2,73,1,02,2,1,0,0,2,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1524,3,000,25,2,4,2,02,2,1,0,0,1,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1525,3,000,25,2,6,2,02,2,1,0,0,1,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1526,3,000,25,2,11,2,07,2,2,0,0,1,48,027,021000,3001,3,9999,99999,99999999,9,99999,99999999,12949,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0913227,-097.3556405,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1527,3,000,20,1,69,2,01,1,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1528,3,000,20,1,70,2,06,1,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1529,3,000,20,1,28,1,02,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +1530,3,000,20,1,66,1,02,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1531,3,000,20,1,66,2,11,2,2,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1532,3,000,20,1,71,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1533,3,000,20,1,71,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1534,3,000,20,1,71,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1535,3,000,20,1,71,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1536,3,000,20,1,73,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1537,3,000,20,1,73,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1538,3,000,20,1,73,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1539,3,000,20,1,73,1,01,2,1,0,0,2,12,011,020101,3003,3,9999,99999,99999999,9,99999,99999999,17084,5829,0,0,5829,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2725075,-080.1880993,B,1,22744,99999,99999,9,N,N,13275,A,02404091,01102,3,99999,99999,00180,096,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00F009,33063 +1540,3,000,20,2,34,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1541,3,000,20,2,36,2,11,2,2,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1542,3,000,20,2,50,1,02,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1543,3,000,20,2,64,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1544,3,000,20,2,64,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1545,3,000,20,2,64,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1546,3,000,20,2,64,2,44,2,4,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1547,3,000,20,2,83,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1548,3,000,20,2,84,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1549,3,000,20,2,84,1,01,2,1,0,0,2,36,005,045102,1002,1,9999,99999,99999999,9,99999,99999999,15306,0,0,0,0,0,35620,16,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.9014566,-073.8667119,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04212,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000367,10470 +1550,3,000,20,2,69,1,11,2,2,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1551,3,000,21,1,58,1,04,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1552,3,000,21,1,64,1,04,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1553,3,000,21,1,64,1,04,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1554,3,000,21,1,64,1,04,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1555,3,000,21,2,36,1,09,2,2,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1556,3,000,21,2,36,1,09,2,2,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1557,3,000,21,2,71,1,02,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1558,3,000,21,2,73,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1559,3,000,21,2,74,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +1560,3,000,20,2,59,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1561,3,000,20,2,59,1,02,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1562,3,000,20,2,60,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1563,3,000,20,2,63,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1564,3,000,20,2,63,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1565,3,000,20,2,63,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1566,3,000,20,2,63,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1567,3,000,20,2,64,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1568,3,000,20,2,64,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1569,3,000,20,2,64,1,01,1,1,0,0,2,04,019,003003,3001,3,9999,99999,99999999,9,99999,99999999,27959,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2442366,-110.8609922,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01906,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000107,85712 +1570,3,000,25,2,17,1,01,2,1,0,0,1,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1571,3,000,25,2,17,1,01,2,1,0,0,1,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1572,3,000,25,2,17,1,01,2,1,0,0,1,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1573,3,000,25,2,18,1,01,2,1,0,0,2,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1574,3,000,31,2,77,1,04,2,1,0,0,2,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1575,3,000,34,1,17,1,01,2,1,0,0,1,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1576,3,000,36,1,15,1,01,2,1,0,0,1,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1577,3,000,36,2,17,1,01,2,1,0,0,1,53,063,002100,2006,2,9999,99999,99999999,9,99999,99999999,7318,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6846188,-117.4436180,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1578,3,000,20,1,70,1,01,1,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1579,3,000,20,1,70,1,01,1,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +1580,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1581,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1582,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1583,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1584,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1585,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1586,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1587,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1588,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1589,5,601,38,1,18,1,01,0,1,2,6,2,17,097,863003,1025,1,9999,99999,99999999,9,99999,99999999,127209,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,69485,A,00429743,176,3,99999,99999999,+42.3168309,-087.8363514,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,99999,99999,00110,058,029,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Shi233,60088 +1590,3,000,28,2,61,1,02,2,1,0,0,2,17,031,836000,1011,1,9999,99999,99999999,9,99999,99999999,5698,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8116595,-087.6160494,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1591,3,000,30,1,5,1,12,2,2,0,0,1,17,031,836000,1011,1,9999,99999,99999999,9,99999,99999999,5698,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8116595,-087.6160494,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1592,3,000,20,2,36,1,02,1,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1593,3,000,20,2,39,1,02,1,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1594,3,000,20,1,46,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1595,3,000,20,2,27,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1596,3,000,20,2,27,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1597,3,000,20,2,27,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1598,3,000,20,2,27,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1599,3,000,22,1,61,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +1600,3,000,20,2,43,1,01,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1601,3,000,20,2,43,1,01,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1602,3,000,20,2,44,2,01,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1603,3,000,20,2,45,1,02,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1604,3,000,20,2,45,1,02,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1605,3,000,20,2,46,1,02,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1606,3,000,20,2,47,1,02,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1607,3,000,20,2,47,1,02,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1608,3,000,20,2,55,1,01,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1609,3,000,20,2,55,1,01,2,1,0,0,2,19,061,000702,1004,1,9999,99999,99999999,9,99999,99999999,34150,0,0,0,0,0,20220,01,999,99999,99999999,A,00465219,91085,F,00467744,999,4,99999,99999999,+42.4977071,-090.6748070,L,1,99999,99999,99999,9,Y,N,22395,A,00467744,00700,2,99999,99999,09480,099,050,01779785,99999,99999999,9,999,99999,99999999,999999,24823,U,99999,U,061043,52001 +1610,3,000,21,2,36,1,01,2,1,0,0,2,29,061,470100,3420,3,9999,99999,99999999,9,99999,99999999,3888415,7058,0,0,7058,0,99999,06,999,99999,99999999,A,00758485,42698,A,00766584,999,4,99999,99999999,+40.0569181,-093.8302136,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,30390,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,64648 +1611,3,000,21,2,42,1,01,2,1,0,0,2,29,061,470100,3420,3,9999,99999,99999999,9,99999,99999999,3888415,7058,0,0,7058,0,99999,06,999,99999,99999999,A,00758485,42698,A,00766584,999,4,99999,99999999,+40.0569181,-093.8302136,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,30390,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,64648 +1612,3,000,27,2,19,1,01,2,1,0,0,2,29,061,470100,3420,3,9999,99999,99999999,9,99999,99999999,3888415,7058,0,0,7058,0,99999,06,999,99999,99999999,A,00758485,42698,A,00766584,999,4,99999,99999999,+40.0569181,-093.8302136,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,30390,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,64648 +1613,3,000,20,2,50,1,01,1,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1614,3,000,20,2,55,1,01,1,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1615,3,000,20,2,66,1,01,1,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1616,3,000,20,2,66,1,01,1,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1617,3,000,20,2,82,1,01,1,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1618,3,000,20,2,82,1,01,1,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1619,3,000,20,1,47,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +1620,3,000,20,2,62,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1621,3,000,20,2,62,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1622,3,000,20,2,62,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1623,3,000,20,2,62,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1624,3,000,20,2,63,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1625,3,000,20,2,74,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1626,3,000,20,2,74,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1627,3,000,20,2,74,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1628,3,000,20,2,74,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1629,3,000,20,2,74,1,01,2,1,0,0,2,39,103,407000,2013,2,9999,99999,99999999,9,99999,99999999,198178,0,0,0,0,0,17460,07,999,99999,99999999,A,01074064,51856,A,01086602,184,3,99999,99999999,+41.1238333,-081.8003638,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,2,99999,99999,04849,069,022,01085497,99999,99999999,9,999,99999,99999999,999999,56062,U,99999,U,052AFA,44256 +1630,3,000,20,2,67,1,01,2,1,0,0,2,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1631,3,000,20,2,68,1,01,2,1,0,0,2,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1632,3,000,22,2,40,1,01,2,1,0,0,2,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1633,3,000,25,1,6,1,08,2,2,0,0,1,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1634,3,000,25,2,17,1,01,2,1,0,0,1,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1635,3,000,25,2,17,1,01,2,1,0,0,1,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1636,3,000,25,2,17,1,01,2,1,0,0,1,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1637,3,000,25,2,17,1,01,2,1,0,0,1,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1638,3,000,36,2,21,1,01,2,1,0,0,2,39,081,012000,2097,2,9999,99999,99999999,9,99999,99999999,53538,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2591867,-080.8630753,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADE,43901 +1639,3,000,20,2,71,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +1640,3,000,33,2,15,1,02,2,1,0,0,1,34,021,001200,1002,1,9999,99999,99999999,9,99999,99999999,30489,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2309097,-074.7871385,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1641,3,000,36,1,37,1,02,2,1,0,0,2,34,021,001200,1002,1,9999,99999,99999999,9,99999,99999999,30489,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2309097,-074.7871385,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1642,3,000,36,1,37,1,02,2,1,0,0,2,34,021,001200,1002,1,9999,99999,99999999,9,99999,99999999,30489,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2309097,-074.7871385,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1643,3,000,36,1,38,1,02,2,1,0,0,2,34,021,001200,1002,1,9999,99999,99999999,9,99999,99999999,30489,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2309097,-074.7871385,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1644,3,000,36,1,40,1,02,2,1,0,0,2,34,021,001200,1002,1,9999,99999,99999999,9,99999,99999999,30489,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2309097,-074.7871385,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1645,3,000,36,2,9,1,01,2,1,0,0,1,34,021,001200,1002,1,9999,99999,99999999,9,99999,99999999,30489,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2309097,-074.7871385,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1646,3,000,20,1,25,1,02,1,1,0,0,2,34,021,001200,1003,1,9999,99999,99999999,9,99999,99999999,21384,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2318175,-074.7865644,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1647,3,000,20,1,27,1,02,1,1,0,0,2,34,021,001200,1003,1,9999,99999,99999999,9,99999,99999999,21384,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2318175,-074.7865644,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1648,3,000,20,1,35,1,02,1,1,0,0,2,34,021,001200,1003,1,9999,99999,99999999,9,99999,99999999,21384,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2318175,-074.7865644,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1649,3,000,20,1,35,1,02,1,1,0,0,2,34,021,001200,1003,1,9999,99999,99999999,9,99999,99999999,21384,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2318175,-074.7865644,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055W01,08618 +1650,3,000,21,2,30,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1651,3,000,21,2,30,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1652,3,000,21,2,30,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1653,3,000,21,2,30,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1654,3,000,21,2,30,2,11,2,2,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1655,3,000,21,2,30,2,11,2,2,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1656,3,000,21,2,30,2,11,2,2,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1657,3,000,21,2,32,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1658,3,000,21,2,32,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1659,3,000,21,2,32,1,01,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +1660,3,000,20,2,97,1,01,1,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1661,3,000,20,1,31,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1662,3,000,20,1,55,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1663,3,000,20,1,55,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1664,3,000,20,2,34,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1665,3,000,20,2,49,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1666,3,000,20,2,49,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1667,3,000,20,2,52,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1668,3,000,20,2,52,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1669,3,000,20,2,57,1,01,2,1,0,0,2,19,097,950200,1033,1,9999,99999,99999999,9,99999,99999999,437836,0,0,0,0,0,99999,01,999,99999,99999999,A,00465237,94107,G,00468787,999,4,99999,99999999,+42.3647428,-090.5400550,L,9,99999,99999,99999,9,N,N,69960,A,02396484,00700,2,99999,99999,09480,058,029,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097003,52071 +1670,3,000,25,1,24,1,01,2,1,0,0,2,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1671,3,000,25,2,13,1,01,2,1,0,0,1,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1672,3,000,25,2,13,1,01,2,1,0,0,1,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1673,3,000,25,2,13,1,01,2,1,0,0,1,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1674,3,000,25,2,13,1,01,2,1,0,0,1,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1675,3,000,25,2,13,1,01,2,1,0,0,1,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1676,3,000,25,2,13,1,01,2,1,0,0,1,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1677,3,000,34,1,29,1,01,2,1,0,0,2,51,760,050600,1040,1,9999,99999,99999999,9,99999,99999999,38615,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5549055,-077.5026467,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1678,3,000,20,1,50,1,01,1,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1679,3,000,20,1,54,1,01,1,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +1680,3,000,20,1,30,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1681,3,000,20,1,31,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1682,3,000,20,1,31,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1683,3,000,20,1,31,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1684,3,000,20,1,32,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1685,3,000,20,1,37,1,04,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1686,3,000,20,1,41,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1687,3,000,20,1,41,1,04,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1688,3,000,20,1,44,1,04,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1689,3,000,20,1,60,1,01,2,1,0,0,2,17,031,803701,1020,1,9999,99999,99999999,9,99999,99999999,8044,0,0,0,0,0,16980,06,999,99999,99999999,A,01784766,57238,A,00429520,176,3,99999,99999999,+42.1117863,-088.0442963,L,1,16984,99999,99999,9,N,N,57225,A,02399608,03101,2,30420,30450,99999,054,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,870001,60067 +1690,3,000,20,1,57,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1691,3,000,20,1,70,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1692,3,000,20,1,73,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1693,3,000,20,2,30,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1694,3,000,20,2,31,1,09,2,2,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1695,3,000,20,2,70,1,01,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1696,3,000,20,2,70,1,01,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1697,3,000,20,2,76,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1698,3,000,20,2,78,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1699,3,000,20,2,78,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +1700,3,000,20,1,71,1,01,1,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1701,3,000,20,1,54,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1702,3,000,20,1,54,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1703,3,000,20,1,58,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1704,3,000,20,1,58,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1705,3,000,20,1,58,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1706,3,000,20,1,79,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1707,3,000,20,2,28,1,04,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1708,3,000,20,2,40,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1709,3,000,20,2,45,1,01,2,1,0,0,2,20,121,100300,1003,1,9999,99999,99999999,9,99999,99999999,618364,1865,0,0,1865,0,28140,03,999,99999,99999999,A,00485025,76225,A,00479757,312,4,99999,99999999,+38.7337297,-094.6451633,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,12000,006,037,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,66013 +1710,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1711,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1712,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1713,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1714,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1715,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1716,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1717,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1718,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1719,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +1720,3,000,22,1,44,1,04,2,1,0,0,2,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1721,3,000,25,1,3,2,06,2,1,0,0,1,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1722,3,000,25,1,3,2,06,2,1,0,0,1,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1723,3,000,25,1,6,1,01,2,1,0,0,1,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1724,3,000,25,1,6,1,01,2,1,0,0,1,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1725,3,000,25,2,26,2,11,2,2,0,0,2,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1726,3,000,25,2,35,1,01,2,1,0,0,2,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1727,3,000,25,2,42,2,11,2,2,0,0,2,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1728,3,000,28,2,49,1,01,2,1,0,0,2,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1729,3,000,32,1,28,1,08,2,2,0,0,2,08,059,009806,3012,3,9999,99999,99999999,9,99999,99999999,16814,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7627196,-105.1462429,L,1,99999,99999,99999,9,N,N,02575,S,02407749,00702,4,99999,99999,04800,024,020,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059199,80401 +1730,3,000,27,2,20,1,15,2,2,0,0,2,36,119,005001,2029,2,9999,99999,99999999,9,99999,99999999,14713,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9774643,-073.8033753,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1731,3,000,29,1,70,1,04,2,1,0,0,2,36,119,005001,2029,2,9999,99999,99999999,9,99999,99999999,14713,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9774643,-073.8033753,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1732,3,000,29,2,87,1,04,2,1,0,0,2,36,119,005001,2029,2,9999,99999,99999999,9,99999,99999999,14713,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9774643,-073.8033753,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1733,3,000,30,1,9,1,06,2,1,0,0,1,36,119,005001,2029,2,9999,99999,99999999,9,99999,99999999,14713,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9774643,-073.8033753,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1734,3,000,30,1,28,1,01,2,1,0,0,2,36,119,005001,2029,2,9999,99999,99999999,9,99999,99999999,14713,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9774643,-073.8033753,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1735,3,000,34,2,18,2,01,2,1,0,0,2,36,119,005001,2029,2,9999,99999,99999999,9,99999,99999999,14713,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9774643,-073.8033753,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1736,3,000,20,1,39,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1737,3,000,20,1,39,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1738,3,000,20,1,45,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1739,3,000,20,1,46,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +1740,3,000,20,1,42,2,01,2,1,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1741,3,000,20,1,49,2,01,2,1,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1742,3,000,20,1,61,1,02,2,1,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1743,3,000,20,1,61,1,02,2,1,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1744,3,000,20,1,61,1,02,2,1,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1745,3,000,20,2,27,2,15,2,2,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1746,3,000,20,2,89,1,02,2,1,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1747,3,000,21,1,65,2,15,2,2,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1748,3,000,21,1,65,2,15,2,2,0,0,2,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1749,3,000,25,1,5,1,02,2,1,0,0,1,34,003,054102,1029,1,9999,99999,99999999,9,99999,99999999,13570,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,72360,A,00882227,408,2,99999,99999999,+40.8900182,-073.9991799,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00301,1,99999,99999,16080,037,037,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,300023,07666 +1750,3,000,25,1,33,1,02,2,1,0,0,2,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1751,3,000,25,2,21,1,02,2,1,0,0,2,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1752,3,000,29,2,64,2,01,2,1,0,0,2,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1753,3,000,32,1,24,1,02,2,1,0,0,2,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1754,3,000,33,1,30,2,01,2,1,0,0,2,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1755,3,000,33,1,31,1,02,2,1,0,0,2,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1756,3,000,34,2,5,2,06,2,1,0,0,1,37,119,003600,1000,1,9999,99999,99999999,9,99999,99999999,18160,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2200827,-080.8621889,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1757,3,000,20,1,29,1,11,1,2,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1758,3,000,20,2,30,1,04,1,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1759,3,000,20,2,32,1,11,1,2,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +1760,3,000,21,2,48,1,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1761,3,000,21,2,50,2,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1762,3,000,21,2,51,1,03,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1763,3,000,21,2,71,1,08,2,2,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1764,3,000,21,2,71,1,08,2,2,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1765,3,000,22,2,23,1,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1766,3,000,22,2,24,1,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1767,3,000,22,2,24,1,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1768,3,000,22,2,24,1,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1769,3,000,23,1,44,1,01,2,1,0,0,2,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +1770,3,000,30,2,2,1,02,2,1,0,0,1,18,091,040700,1001,1,9999,99999,99999999,9,99999,99999999,15378,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7098051,-086.8767577,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000620,46360 +1771,3,000,33,2,15,1,01,2,1,0,0,1,18,091,040700,1001,1,9999,99999,99999999,9,99999,99999999,15378,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7098051,-086.8767577,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000620,46360 +1772,3,000,34,2,27,1,07,2,2,0,0,2,18,091,040700,1001,1,9999,99999,99999999,9,99999,99999999,15378,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7098051,-086.8767577,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000620,46360 +1773,3,000,20,1,31,2,06,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1774,3,000,20,1,51,2,06,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1775,3,000,20,1,51,2,06,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1776,3,000,20,1,51,2,06,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1777,3,000,20,2,55,1,01,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1778,3,000,20,2,55,1,01,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1779,3,000,20,2,55,1,01,2,1,0,0,2,18,091,040700,1002,1,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,33140,01,999,99999,99999999,A,00450507,48780,A,00453621,176,3,99999,99999999,+41.7099693,-086.8780622,L,1,99999,99999,99999,9,Y,N,48798,A,02395110,00300,2,99999,99999,06570,009,004,00448508,99999,99999999,9,999,99999,99999999,999999,56656,U,99999,U,000650,46360 +1780,3,000,20,1,65,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1781,3,000,20,1,65,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1782,3,000,20,1,65,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1783,3,000,20,1,66,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1784,3,000,20,1,66,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1785,3,000,20,1,66,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1786,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1787,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1788,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1789,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +1790,3,000,21,2,82,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1791,3,000,21,2,86,1,04,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1792,3,000,21,2,93,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1793,3,000,23,2,65,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1794,3,000,23,2,69,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1795,3,000,23,2,69,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1796,3,000,24,2,18,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1797,3,000,24,2,75,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1798,3,000,25,1,12,2,09,2,2,0,0,1,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1799,3,000,25,1,24,1,01,2,1,0,0,2,06,065,045228,1066,1,9999,99999,99999999,9,99999,99999999,85359,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90520,S,01935056,348,9,99999,99999999,+33.7639350,-116.2499678,L,1,99999,99999,99999,9,N,N,36448,A,02410101,06501,4,99999,99999,11110,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92203 +1800,3,000,25,2,8,2,11,2,2,0,0,1,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1801,3,000,25,2,18,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1802,3,000,25,2,24,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1803,3,000,25,2,27,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1804,3,000,25,2,27,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1805,3,000,25,2,27,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1806,3,000,25,2,27,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1807,3,000,25,2,28,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1808,3,000,25,2,28,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1809,3,000,25,2,28,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +1810,3,000,20,1,76,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1811,3,000,20,1,76,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1812,3,000,20,2,33,1,02,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1813,3,000,20,2,33,1,02,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1814,3,000,20,2,37,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1815,3,000,20,2,37,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1816,3,000,20,2,37,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1817,3,000,20,2,37,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1818,3,000,20,2,37,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1819,3,000,20,2,39,1,01,2,1,0,0,2,17,167,003902,1035,1,9999,99999,99999999,9,99999,99999999,34790,0,0,0,0,0,44100,13,999,99999,99999999,A,01785010,64772,A,00429652,522,3,99999,99999999,+39.7575834,-089.5471097,L,1,99999,99999,99999,9,N,N,64759,A,02399100,16700,2,99999,99999,34320,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,83899,U,99999,U,0RO004,62563 +1820,3,000,25,1,51,1,01,2,1,0,0,2,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1821,3,000,25,2,0,1,04,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1822,3,000,25,2,2,1,04,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1823,3,000,25,2,5,1,04,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1824,3,000,25,2,5,1,04,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1825,3,000,25,2,11,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1826,3,000,25,2,12,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1827,3,000,25,2,12,1,04,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1828,3,000,25,2,15,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1829,3,000,25,2,15,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +1830,3,000,34,2,58,1,02,2,1,0,0,2,29,510,109600,4002,4,9999,99999,99999999,9,99999,99999999,15701,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6789855,-090.2255450,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1831,3,000,20,2,74,1,02,1,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1832,3,000,20,2,80,1,02,1,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1833,3,000,20,2,80,1,02,1,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1834,3,000,20,2,80,1,02,1,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1835,3,000,20,2,81,1,02,1,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1836,3,000,20,2,81,1,02,1,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1837,3,000,22,1,37,1,02,2,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1838,3,000,22,1,49,1,02,2,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1839,3,000,22,1,49,1,02,2,1,0,0,2,29,510,109600,4003,4,9999,99999,99999999,9,99999,99999999,16165,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.6785407,-090.2252245,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02001,2,99999,99999,29280,077,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000154,63115 +1840,3,000,20,1,57,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1841,3,000,20,1,57,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1842,3,000,20,1,57,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1843,3,000,20,1,57,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1844,3,000,20,1,57,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1845,3,000,20,1,58,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1846,3,000,20,1,58,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1847,3,000,20,1,58,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1848,3,000,20,1,58,2,11,2,2,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1849,3,000,20,1,59,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +1850,3,000,21,1,63,1,08,2,2,0,0,2,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1851,3,000,22,1,39,2,06,2,1,0,0,2,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1852,3,000,22,1,39,2,06,2,1,0,0,2,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1853,3,000,22,2,23,1,01,2,1,0,0,2,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1854,3,000,22,2,23,1,01,2,1,0,0,2,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1855,3,000,25,1,1,1,01,2,1,0,0,1,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1856,3,000,25,1,1,1,01,2,1,0,0,1,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1857,3,000,25,1,1,1,01,2,1,0,0,1,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1858,3,000,25,1,1,1,01,2,1,0,0,1,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1859,3,000,25,1,5,1,07,2,2,0,0,1,51,085,320804,3014,3,9999,99999,99999999,9,99999,99999999,32664,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.6900948,-077.4192472,L,1,99999,99999,99999,9,9,9,99999,9,99999999,14501,3,99999,99999,01830,055,004,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000104,23005 +1860,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1861,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1862,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1863,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1864,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1865,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1866,3,000,20,1,33,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1867,3,000,20,1,33,2,11,2,2,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1868,3,000,20,1,35,2,11,2,2,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1869,3,000,20,1,35,2,11,2,2,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +1870,3,000,27,1,20,1,01,2,1,0,0,2,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1871,3,000,27,1,20,1,01,2,1,0,0,2,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1872,3,000,27,2,16,1,03,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1873,3,000,27,2,16,1,03,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1874,3,000,30,1,11,1,01,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1875,3,000,30,2,3,1,01,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1876,3,000,30,2,3,1,01,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1877,3,000,30,2,3,1,01,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1878,3,000,30,2,10,1,01,2,1,0,0,1,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1879,3,000,32,1,35,1,01,2,1,0,0,2,02,122,000702,2022,2,6720,38600,02418648,R,17140,02418878,178720,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,38460,S,01939946,999,9,99999,99999999,+60.4984257,-151.1277748,L,9,99999,99999,99999,9,N,N,37250,S,02418637,00200,4,99999,99999,00390,030,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,30-200,99669 +1880,3,000,36,2,70,1,01,2,1,0,0,2,34,039,035400,2021,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6147034,-074.2281133,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1881,3,000,20,1,24,2,02,2,1,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1882,3,000,20,1,39,2,06,2,1,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1883,3,000,20,1,39,2,06,2,1,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1884,3,000,20,1,52,2,11,2,2,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1885,3,000,20,1,53,2,11,2,2,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1886,3,000,20,1,53,2,11,2,2,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1887,3,000,20,1,53,2,11,2,2,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1888,3,000,20,1,53,2,11,2,2,0,0,2,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1889,3,000,25,1,5,2,11,2,2,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +1890,3,000,25,2,13,1,02,2,1,0,0,1,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1891,3,000,25,2,13,1,02,2,1,0,0,1,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1892,3,000,25,2,13,1,02,2,1,0,0,1,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1893,3,000,25,2,17,1,02,2,1,0,0,1,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1894,3,000,25,2,19,1,02,2,1,0,0,2,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1895,3,000,25,2,19,1,02,2,1,0,0,2,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1896,3,000,28,1,30,1,02,2,1,0,0,2,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1897,3,000,28,1,42,1,02,2,1,0,0,2,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1898,3,000,30,2,10,1,02,2,1,0,0,1,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1899,3,000,30,2,10,1,02,2,1,0,0,1,13,049,010102,3085,3,9999,99999,99999999,9,99999,99999999,90384,0,0,0,0,0,99999,01,999,99999,99999999,A,00357747,91194,S,01936269,999,5,99999,99999999,+30.8175411,-081.9971970,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04400,3,99999,99999,00990,174,003,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31537 +1900,3,000,21,2,50,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1901,3,000,21,2,50,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1902,3,000,21,2,50,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1903,3,000,21,2,50,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1904,3,000,21,2,52,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1905,3,000,21,2,52,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1906,3,000,21,2,52,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1907,3,000,21,2,56,1,01,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1908,3,000,21,2,59,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1909,3,000,21,2,66,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +1910,3,000,27,2,15,1,02,2,1,0,0,1,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1911,3,000,28,2,42,1,02,2,1,0,0,2,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1912,3,000,29,1,66,1,02,2,1,0,0,2,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1913,3,000,29,1,66,1,02,2,1,0,0,2,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1914,3,000,29,1,66,1,02,2,1,0,0,2,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1915,3,000,30,1,2,1,02,2,1,0,0,1,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1916,3,000,30,1,2,1,02,2,1,0,0,1,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1917,3,000,30,1,4,1,02,2,1,0,0,1,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1918,3,000,30,1,14,1,02,2,1,0,0,1,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1919,3,000,30,1,17,1,02,2,1,0,0,1,26,163,500800,2012,2,9999,99999,99999999,9,99999,99999999,26461,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4216515,-082.9362695,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03213,2,99999,99999,01103,001,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163444,48224 +1920,3,000,25,2,14,2,06,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1921,3,000,25,2,14,2,06,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1922,3,000,25,2,21,2,06,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1923,3,000,25,2,27,1,01,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1924,3,000,27,1,9,1,02,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1925,3,000,28,1,20,1,02,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1926,3,000,28,1,20,1,02,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1927,3,000,28,1,24,1,02,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1928,3,000,28,1,24,1,02,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1929,3,000,28,2,28,1,04,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +1930,3,000,20,2,59,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1931,3,000,20,2,67,1,11,2,2,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1932,3,000,21,1,69,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1933,3,000,21,1,76,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1934,3,000,21,2,49,1,02,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1935,3,000,21,2,62,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1936,3,000,21,2,62,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1937,3,000,21,2,62,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1938,3,000,21,2,62,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1939,3,000,21,2,62,1,01,2,1,0,0,2,12,017,451603,1017,1,9999,99999,99999999,9,99999,99999999,149323,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,90715,S,01935736,999,5,99999,99999999,+28.7237063,-082.5105362,L,1,99999,99999,99999,9,N,N,68950,S,02402899,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,85390,U,99999,U,0307.1,34446 +1940,3,000,25,1,14,1,04,2,1,0,0,1,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1941,3,000,25,1,62,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1942,3,000,25,1,62,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1943,3,000,25,1,62,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1944,3,000,28,1,41,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1945,3,000,28,1,42,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1946,3,000,28,1,63,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1947,3,000,28,2,70,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1948,3,000,29,2,91,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1949,3,000,29,2,91,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +1950,3,000,21,2,71,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1951,3,000,21,2,72,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1952,3,000,21,2,72,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1953,3,000,21,2,72,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1954,3,000,21,2,73,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1955,3,000,22,1,33,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1956,3,000,22,1,33,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1957,3,000,22,1,33,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1958,3,000,22,1,33,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1959,3,000,22,2,31,1,01,2,1,0,0,2,29,189,220501,3003,3,9999,99999,99999999,9,99999,99999999,57297,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,41456,N,00767347,476,4,99999,99999999,+38.5212695,-090.2827178,L,1,99999,99999,99999,9,N,N,41438,S,02393097,01907,2,99999,99999,13620,093,001,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,LEM002,63125 +1960,3,000,20,1,84,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1961,3,000,20,2,52,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1962,3,000,20,2,52,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1963,3,000,20,2,52,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1964,3,000,21,2,42,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1965,3,000,21,2,44,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1966,3,000,25,1,5,1,04,2,1,0,0,1,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1967,3,000,25,1,10,1,11,2,2,0,0,1,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1968,3,000,25,1,19,1,06,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1969,3,000,25,1,22,1,04,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +1970,3,000,20,1,50,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1971,3,000,20,1,54,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1972,3,000,20,1,54,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1973,3,000,20,1,61,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1974,3,000,20,1,61,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1975,3,000,20,1,61,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1976,3,000,20,1,67,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1977,3,000,20,1,67,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1978,3,000,20,1,68,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1979,3,000,20,1,68,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +1980,3,000,25,1,4,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1981,3,000,25,1,4,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1982,3,000,25,1,4,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1983,3,000,25,1,4,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1984,3,000,25,1,4,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1985,3,000,25,1,4,1,06,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1986,3,000,25,1,5,1,01,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1987,3,000,25,1,5,1,02,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1988,3,000,25,1,5,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1989,3,000,25,1,5,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +1990,3,000,25,2,1,2,11,2,2,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1991,3,000,25,2,7,2,11,2,2,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1992,3,000,25,2,7,2,11,2,2,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1993,3,000,25,2,9,2,01,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1994,3,000,25,2,10,1,02,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1995,3,000,25,2,11,1,01,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1996,3,000,25,2,11,1,01,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1997,3,000,25,2,11,1,01,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1998,3,000,25,2,11,1,01,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +1999,3,000,25,2,11,1,01,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +2000,3,000,25,1,11,2,06,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2001,3,000,25,1,11,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2002,3,000,25,1,11,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2003,3,000,25,1,11,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2004,3,000,25,1,11,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2005,3,000,25,1,12,2,06,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2006,3,000,25,1,12,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2007,3,000,25,1,12,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2008,3,000,25,1,12,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2009,3,000,25,1,12,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2010,3,000,25,1,29,1,02,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2011,3,000,25,1,38,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2012,3,000,25,1,39,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2013,3,000,25,1,43,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2014,3,000,25,1,43,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2015,3,000,25,1,43,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2016,3,000,25,1,48,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2017,3,000,25,1,48,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2018,3,000,25,1,49,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2019,3,000,25,1,49,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +2020,3,000,21,2,61,1,01,2,1,0,0,2,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2021,3,000,25,1,2,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2022,3,000,25,1,16,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2023,3,000,25,1,16,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2024,3,000,25,1,16,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2025,3,000,25,2,0,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2026,3,000,25,2,16,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2027,3,000,25,2,16,1,01,2,1,0,0,1,48,171,950200,3043,3,9999,99999,99999999,9,99999,99999999,279986,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1880949,-099.1469155,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2028,3,000,21,1,49,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2029,3,000,21,1,49,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +2030,3,000,25,1,15,1,01,2,1,0,0,1,50,015,953500,3021,3,9999,99999,99999999,9,99999,99999999,152840,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5523474,-072.5793172,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2031,3,000,25,1,20,2,28,2,3,0,0,2,50,015,953500,3021,3,9999,99999,99999999,9,99999,99999999,152840,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5523474,-072.5793172,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2032,3,000,33,2,10,1,06,2,1,0,0,1,50,015,953500,3021,3,9999,99999,99999999,9,99999,99999999,152840,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5523474,-072.5793172,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2033,3,000,20,1,55,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2034,3,000,20,1,55,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2035,3,000,20,1,55,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2036,3,000,20,1,55,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2037,3,000,20,1,55,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2038,3,000,20,1,55,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2039,3,000,20,1,57,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +2040,3,000,20,2,26,1,04,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2041,3,000,20,2,27,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2042,3,000,20,2,27,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2043,3,000,20,2,27,2,06,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2044,3,000,20,2,28,1,01,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2045,3,000,20,2,28,1,01,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2046,3,000,20,2,31,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2047,3,000,20,2,31,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2048,3,000,20,2,33,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2049,3,000,20,2,33,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +2050,3,000,25,1,43,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2051,3,000,25,1,55,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2052,3,000,25,1,55,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2053,3,000,25,1,55,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2054,3,000,25,1,60,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2055,3,000,25,2,5,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2056,3,000,25,2,5,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2057,3,000,25,2,5,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2058,3,000,25,2,9,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2059,3,000,25,2,9,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +2060,3,000,20,2,67,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2061,3,000,20,2,67,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2062,3,000,20,2,67,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2063,3,000,20,2,67,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2064,3,000,20,2,67,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2065,3,000,20,2,67,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2066,3,000,20,2,67,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2067,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2068,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2069,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +2070,3,000,25,2,8,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2071,3,000,25,2,8,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2072,3,000,25,2,8,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2073,3,000,25,2,8,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2074,3,000,25,2,9,1,12,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2075,3,000,25,2,9,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2076,3,000,25,2,9,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2077,3,000,25,2,9,2,11,2,2,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2078,3,000,25,2,10,1,02,2,1,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2079,3,000,25,2,10,1,02,2,1,0,0,1,48,113,019035,1001,1,9999,99999,99999999,9,99999,99999999,151845,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9111087,-096.7204598,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +2080,3,000,20,2,70,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2081,3,000,20,2,70,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2082,3,000,20,2,74,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2083,3,000,20,2,74,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2084,3,000,20,2,75,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2085,3,000,20,2,75,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2086,3,000,20,2,75,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2087,3,000,20,2,76,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2088,3,000,20,2,76,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2089,3,000,20,2,76,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +2090,3,000,20,1,30,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2091,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2092,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2093,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2094,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2095,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2096,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2097,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2098,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2099,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +2100,3,000,25,1,21,2,11,2,2,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2101,3,000,25,1,22,1,04,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2102,3,000,25,1,22,2,11,2,2,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2103,3,000,25,1,22,2,11,2,2,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2104,3,000,25,1,25,1,01,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2105,3,000,25,1,25,1,01,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2106,3,000,25,1,25,1,01,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2107,3,000,25,1,25,1,01,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2108,3,000,25,1,25,1,01,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2109,3,000,25,1,25,2,11,2,2,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +2110,3,000,25,1,2,1,01,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2111,3,000,25,1,2,1,01,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2112,3,000,25,1,2,1,01,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2113,3,000,25,1,2,1,01,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2114,3,000,25,1,2,1,02,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2115,3,000,25,1,2,1,02,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2116,3,000,25,1,2,1,02,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2117,3,000,25,1,2,1,07,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2118,3,000,25,1,4,1,09,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2119,3,000,25,1,6,1,01,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +2120,3,000,21,2,35,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2121,3,000,21,2,35,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2122,3,000,21,2,35,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2123,3,000,21,2,37,1,02,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2124,3,000,21,2,37,1,04,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2125,3,000,21,2,50,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2126,3,000,21,2,54,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2127,3,000,21,2,54,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2128,3,000,21,2,54,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2129,3,000,21,2,54,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +2130,3,000,30,1,14,1,19,2,2,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2131,3,000,30,1,19,1,04,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2132,3,000,30,1,28,1,04,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2133,3,000,30,2,5,1,19,2,2,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2134,3,000,30,2,7,1,19,2,2,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2135,3,000,30,2,15,1,19,2,2,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2136,3,000,30,2,15,1,19,2,2,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2137,3,000,30,2,22,2,05,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2138,3,000,30,2,22,2,05,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2139,3,000,30,2,26,1,05,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +2140,3,000,20,2,27,2,01,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2141,3,000,20,2,27,2,01,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2142,3,000,20,2,27,2,06,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2143,3,000,20,2,28,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2144,3,000,20,2,28,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2145,3,000,20,2,28,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2146,3,000,20,2,28,2,06,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2147,3,000,20,2,29,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2148,3,000,20,2,29,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2149,3,000,20,2,29,2,01,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +2150,3,000,25,2,9,2,06,2,1,0,0,1,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2151,3,000,25,2,10,2,29,2,3,0,0,1,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2152,3,000,25,2,17,1,02,2,1,0,0,1,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2153,3,000,25,2,20,1,02,2,1,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2154,3,000,25,2,20,1,02,2,1,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2155,3,000,25,2,20,1,02,2,1,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2156,3,000,25,2,20,1,15,2,2,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2157,3,000,25,2,20,1,15,2,2,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2158,3,000,25,2,20,1,15,2,2,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2159,3,000,25,2,20,1,15,2,2,0,0,2,06,037,600902,2002,2,9999,99999,99999999,9,99999,99999999,18623,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.9732030,-118.3526556,L,1,31084,99999,99999,9,N,N,36546,A,02410106,03778,4,99999,99999,18390,062,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90302 +2160,3,000,25,1,17,1,02,2,1,0,0,1,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2161,3,000,25,1,20,2,15,2,2,0,0,2,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2162,3,000,25,1,21,1,02,2,1,0,0,2,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2163,3,000,25,1,21,1,02,2,1,0,0,2,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2164,3,000,25,1,21,1,02,2,1,0,0,2,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2165,3,000,25,1,22,1,02,2,1,0,0,2,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2166,3,000,25,1,23,1,02,2,1,0,0,2,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2167,3,000,25,2,0,1,01,2,1,0,0,1,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2168,3,000,25,2,1,1,01,2,1,0,0,1,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2169,3,000,25,2,1,1,01,2,1,0,0,1,47,149,041201,2016,2,9999,99999,99999999,9,99999,99999999,17833,0,0,0,0,0,34980,04,999,99999,99999999,A,01639787,93380,N,02464411,400,6,99999,99999999,+35.7941240,-086.3707059,L,1,99999,99999,99999,9,Y,N,51560,A,02404342,02003,3,03150,47149,99999,048,014,01325873,99999,99999999,9,999,99999,99999999,999999,60733,U,99999,U,007690,37127 +2170,3,000,25,1,17,1,02,2,1,0,0,1,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2171,3,000,25,1,28,1,12,2,2,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2172,3,000,25,1,36,1,01,2,1,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2173,3,000,25,2,19,2,06,2,1,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2174,3,000,25,2,29,1,12,2,2,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2175,3,000,25,2,34,2,01,2,1,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2176,3,000,26,1,27,2,01,2,1,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2177,3,000,33,1,85,2,11,2,2,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2178,3,000,33,1,88,2,11,2,2,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2179,3,000,34,1,57,1,06,2,1,0,0,2,34,005,703103,1002,1,9999,99999,99999999,9,99999,99999999,30548,0,0,0,0,0,37980,03,999,99999,99999999,A,00882272,42060,A,00882091,428,2,99999,99999999,+39.9623575,-074.7863557,L,1,15804,99999,99999,9,9,9,99999,9,99999999,02003,1,09180,13620,99999,008,008,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,090007,08048 +2180,3,000,25,2,6,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2181,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2182,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2183,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2184,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2185,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2186,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2187,3,000,25,2,7,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2188,3,000,25,2,14,1,01,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2189,3,000,27,1,28,1,01,2,1,0,0,2,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +2190,3,000,21,2,33,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2191,3,000,21,2,35,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2192,3,000,21,2,38,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2193,3,000,21,2,38,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2194,3,000,21,2,38,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2195,3,000,21,2,46,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2196,3,000,21,2,46,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2197,3,000,21,2,48,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2198,3,000,21,2,49,1,01,2,1,0,0,2,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2199,3,000,25,1,9,1,01,2,1,0,0,1,25,021,412200,1026,1,9999,99999,99999999,9,99999,99999999,43038,1701,0,0,1701,0,14460,08,715,99999,99999999,A,00606937,78690,A,00618333,148,1,99999,99999999,+42.2185156,-071.2354087,B,1,14454,71634,71650,1,9,9,99999,9,99999999,00901,1,99999,99999,12810,167,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002018,02090 +2200,3,000,20,2,55,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2201,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2202,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2203,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2204,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2205,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2206,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2207,3,000,20,2,56,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2208,3,000,20,2,57,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2209,3,000,20,2,57,1,01,2,1,0,0,2,12,085,000606,3009,3,9999,99999,99999999,9,99999,99999999,1646325,80520,0,0,80520,0,38940,18,999,99999,99999999,A,00308550,93250,S,01935940,370,5,99999,99999999,+27.1988726,-080.3118397,B,1,99999,99999,99999,9,N,N,54175,S,02403389,08500,3,99999,99999,01290,083,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000101,34990 +2210,3,000,20,2,47,1,02,2,1,0,0,2,40,101,001600,3111,3,5620,18170,01925077,R,99999,99999999,2310897,28990,0,0,28990,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7183949,-095.7028860,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74422 +2211,3,000,21,1,48,1,02,2,1,0,0,2,40,101,001600,3111,3,5620,18170,01925077,R,99999,99999999,2310897,28990,0,0,28990,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7183949,-095.7028860,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74422 +2212,3,000,21,2,53,1,02,2,1,0,0,2,40,101,001600,3111,3,5620,18170,01925077,R,99999,99999999,2310897,28990,0,0,28990,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7183949,-095.7028860,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74422 +2213,3,000,25,2,18,1,07,2,2,0,0,2,40,101,001600,3111,3,5620,18170,01925077,R,99999,99999999,2310897,28990,0,0,28990,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7183949,-095.7028860,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74422 +2214,3,000,20,2,34,1,01,2,1,0,0,2,40,101,001600,3116,3,5620,18170,01925077,R,99999,99999999,3970197,21518,0,0,21518,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7088933,-095.6647290,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74436 +2215,3,000,20,2,34,1,01,2,1,0,0,2,40,101,001600,3116,3,5620,18170,01925077,R,99999,99999999,3970197,21518,0,0,21518,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7088933,-095.6647290,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74436 +2216,3,000,20,2,34,1,01,2,1,0,0,2,40,101,001600,3116,3,5620,18170,01925077,R,99999,99999999,3970197,21518,0,0,21518,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7088933,-095.6647290,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74436 +2217,3,000,21,2,39,1,01,2,1,0,0,2,40,101,001600,3116,3,5620,18170,01925077,R,99999,99999999,3970197,21518,0,0,21518,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7088933,-095.6647290,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74436 +2218,3,000,21,2,51,1,01,2,1,0,0,2,40,101,001600,3116,3,5620,18170,01925077,R,99999,99999999,3970197,21518,0,0,21518,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7088933,-095.6647290,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74436 +2219,3,000,21,2,51,1,01,2,1,0,0,2,40,101,001600,3116,3,5620,18170,01925077,R,99999,99999999,3970197,21518,0,0,21518,0,34780,02,999,99999,99999999,A,01101838,90312,S,01937651,538,7,99999,99999999,+35.7088933,-095.6647290,B,2,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,13950,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,74436 +2220,3,000,22,2,24,1,01,2,1,0,0,2,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2221,3,000,22,2,68,1,01,2,1,0,0,2,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2222,3,000,25,1,1,1,11,2,2,0,0,1,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2223,3,000,25,1,7,1,01,2,1,0,0,1,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2224,3,000,25,1,15,1,01,2,1,0,0,1,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2225,3,000,25,1,15,1,01,2,1,0,0,1,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2226,3,000,25,1,35,1,01,2,1,0,0,2,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2227,3,000,25,1,36,1,01,2,1,0,0,2,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2228,3,000,25,1,39,1,01,2,1,0,0,2,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2229,3,000,25,1,47,1,01,2,1,0,0,2,36,029,010807,1004,1,9999,99999,99999999,9,99999,99999999,29629,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8656581,-078.7388202,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,30780,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000417,14227 +2230,3,000,21,1,26,1,01,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2231,3,000,21,1,35,2,06,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2232,3,000,21,1,54,1,01,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2233,3,000,21,1,58,2,03,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2234,3,000,21,1,59,2,06,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2235,3,000,21,1,62,2,11,2,2,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2236,3,000,21,2,34,2,06,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2237,3,000,21,2,34,2,06,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2238,3,000,22,1,25,2,06,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2239,3,000,22,1,28,2,06,2,1,0,0,2,06,077,005108,3022,3,9999,99999,99999999,9,99999,99999999,13098,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.8000579,-121.2224012,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95336 +2240,3,000,25,2,3,1,01,2,1,0,0,1,19,055,950400,1074,1,9999,99999,99999999,9,99999,99999999,1137448,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3698716,-091.1954923,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2241,3,000,25,2,10,1,01,2,1,0,0,1,19,055,950400,1074,1,9999,99999,99999999,9,99999,99999999,1137448,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3698716,-091.1954923,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2242,3,000,25,2,14,1,01,2,1,0,0,1,19,055,950400,1074,1,9999,99999,99999999,9,99999,99999999,1137448,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3698716,-091.1954923,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2243,3,000,20,2,61,1,01,1,1,0,0,2,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2244,3,000,23,1,39,1,01,2,1,0,0,2,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2245,3,000,25,1,11,1,01,2,1,0,0,1,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2246,3,000,25,1,11,1,01,2,1,0,0,1,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2247,3,000,25,1,19,1,01,2,1,0,0,2,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2248,3,000,25,1,19,1,01,2,1,0,0,2,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2249,3,000,25,1,19,1,01,2,1,0,0,2,19,055,950400,1078,1,9999,99999,99999999,9,99999,99999999,2754444,0,0,0,0,0,99999,01,999,99999,99999999,A,00465216,93945,G,00468728,999,4,99999,99999999,+42.3601463,-091.1767358,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,2,99999,99999,31350,096,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,055018,52237 +2250,3,000,20,1,38,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2251,3,000,20,1,39,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2252,3,000,20,1,39,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2253,3,000,20,1,39,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2254,3,000,20,1,39,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2255,3,000,20,1,39,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2256,3,000,20,1,39,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2257,3,000,20,1,67,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2258,3,000,20,1,67,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2259,3,000,20,1,67,1,01,2,1,0,0,2,51,700,031800,2021,2,9999,99999,99999999,9,99999,99999999,66588,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.0489371,-076.4945333,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,094,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000212,23606 +2260,3,000,20,2,55,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2261,3,000,20,2,58,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2262,3,000,20,2,75,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2263,3,000,20,2,76,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2264,3,000,21,1,51,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2265,3,000,21,1,55,2,11,2,2,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2266,3,000,21,1,71,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2267,3,000,21,1,71,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2268,3,000,21,1,71,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2269,3,000,21,1,71,1,01,2,1,0,0,2,22,017,022600,1025,1,9999,99999,99999999,9,99999,99999999,21946,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94585,N,01930001,508,7,99999,99999999,+32.4643471,-093.7492705,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,006,037,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000026,71106 +2270,3,000,20,1,30,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2271,3,000,20,1,35,2,11,2,2,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2272,3,000,20,1,46,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2273,3,000,20,1,48,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2274,3,000,20,1,48,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2275,3,000,20,1,50,2,11,2,2,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2276,3,000,20,1,50,2,11,2,2,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2277,3,000,20,1,52,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2278,3,000,20,1,52,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2279,3,000,20,1,52,1,01,2,1,0,0,2,06,069,000702,2023,2,9999,99999,99999999,9,99999,99999999,1433526,0,0,0,0,0,41940,20,999,99999,99999999,A,00277299,91300,S,01935135,488,9,99999,99999999,+36.8415571,-121.4476595,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05303,4,99999,99999,91136,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95023 +2280,3,000,20,1,62,1,01,1,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2281,3,000,20,1,63,1,22,1,3,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2282,3,000,20,1,36,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2283,3,000,20,1,38,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2284,3,000,20,1,38,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2285,3,000,20,1,39,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2286,3,000,20,1,43,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2287,3,000,21,1,65,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2288,3,000,21,2,42,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2289,3,000,21,2,42,1,01,2,1,0,0,2,06,023,011200,3069,3,9999,99999,99999999,9,99999,99999999,706926,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90980,S,01935102,999,9,99999,99999999,+40.2745918,-124.2413823,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02300,4,99999,99999,00038,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95558 +2290,3,000,20,1,85,1,01,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2291,3,000,20,2,22,1,04,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2292,3,000,20,2,22,1,04,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2293,3,000,20,2,23,1,04,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2294,3,000,20,2,23,1,04,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2295,3,000,20,2,31,1,01,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2296,3,000,20,2,31,1,01,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2297,3,000,20,2,31,1,01,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2298,3,000,20,2,32,1,11,2,2,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2299,3,000,20,2,33,1,01,2,1,0,0,2,06,073,008346,3004,3,9999,99999,99999999,9,99999,99999999,1339294,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.9129082,-117.1894276,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07311,4,99999,99999,34320,077,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92121 +2300,3,000,21,2,66,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2301,3,000,21,2,66,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2302,3,000,21,2,66,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2303,3,000,21,2,66,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2304,3,000,21,2,67,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2305,3,000,21,2,67,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2306,3,000,21,2,68,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2307,3,000,21,2,68,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2308,3,000,21,2,69,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2309,3,000,21,2,70,1,01,2,1,0,0,2,21,093,001003,1011,1,9999,99999,99999999,9,99999,99999999,7073599,37132,0,0,37132,0,21060,02,999,99999,99999999,A,00516893,91128,S,01936986,350,6,99999,99999999,+37.7629473,-085.7513998,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,026,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00C003,42701 +2310,3,000,20,1,79,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2311,3,000,20,1,79,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2312,3,000,20,1,79,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2313,3,000,20,1,84,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2314,3,000,20,1,86,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2315,3,000,20,2,68,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2316,3,000,20,2,68,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2317,3,000,20,2,68,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2318,3,000,20,2,68,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2319,3,000,20,2,68,1,01,2,1,0,0,2,48,221,160210,2002,2,9999,99999,99999999,9,99999,99999999,105834,0,0,0,0,0,24180,11,999,99999,99999999,A,01383896,91605,S,01938798,206,7,99999,99999999,+32.3542671,-097.6670653,L,2,99999,99999,99999,9,N,N,56498,S,02409047,02200,3,99999,99999,21390,060,022,01779801,99999,99999999,9,999,99999,99999999,999999,68239,U,99999,U,000016,76049 +2320,3,000,31,2,72,1,01,2,1,0,0,2,30,091,090200,3213,3,9999,99999,99999999,9,99999,99999999,26144511,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7589967,-104.4552995,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2321,3,000,31,2,73,1,01,2,1,0,0,2,30,091,090200,3213,3,9999,99999,99999999,9,99999,99999999,26144511,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7589967,-104.4552995,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2322,3,000,31,2,74,1,01,2,1,0,0,2,30,091,090200,3213,3,9999,99999,99999999,9,99999,99999999,26144511,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7589967,-104.4552995,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2323,3,000,20,1,62,1,01,1,1,0,0,2,30,091,090200,3214,3,9999,99999,99999999,9,99999,99999999,5186910,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7874999,-104.4279749,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2324,3,000,20,1,74,1,01,1,1,0,0,2,30,091,090200,3214,3,9999,99999,99999999,9,99999,99999999,5186910,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7874999,-104.4279749,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2325,3,000,21,1,70,1,01,2,1,0,0,2,30,091,090200,3214,3,9999,99999,99999999,9,99999,99999999,5186910,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7874999,-104.4279749,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2326,3,000,20,1,76,1,01,1,1,0,0,2,30,091,090200,3215,3,9999,99999,99999999,9,99999,99999999,2423307,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7867023,-104.4607806,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2327,3,000,20,1,76,1,01,1,1,0,0,2,30,091,090200,3215,3,9999,99999,99999999,9,99999,99999999,2423307,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7867023,-104.4607806,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2328,3,000,20,1,91,1,01,1,1,0,0,2,30,091,090200,3215,3,9999,99999,99999999,9,99999,99999999,2423307,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7867023,-104.4607806,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2329,3,000,20,2,70,1,01,1,1,0,0,2,30,091,090200,3215,3,9999,99999,99999999,9,99999,99999999,2423307,0,0,0,0,0,99999,00,999,99999,99999999,A,01677577,92709,S,01940692,999,8,99999,99999999,+48.7867023,-104.4607806,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00700,4,99999,99999,20960,034,017,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,59254 +2330,3,000,25,1,26,1,01,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2331,3,000,25,1,26,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2332,3,000,25,1,26,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2333,3,000,25,1,28,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2334,3,000,25,1,28,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2335,3,000,25,1,28,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2336,3,000,25,1,28,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2337,3,000,25,1,28,1,02,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2338,3,000,25,1,31,1,01,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2339,3,000,25,1,32,1,01,2,1,0,0,2,51,770,002301,2009,2,9999,99999,99999999,9,99999,99999999,115333,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.3106482,-079.9900728,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000001,24017 +2340,3,000,25,1,3,1,01,2,1,0,0,1,44,007,012900,2013,2,9999,99999,99999999,9,99999,99999999,5888,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9683190,-071.7036600,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440302,02859 +2341,3,000,25,1,3,1,01,2,1,0,0,1,44,007,012900,2013,2,9999,99999,99999999,9,99999,99999999,5888,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9683190,-071.7036600,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440302,02859 +2342,3,000,25,1,3,1,01,2,1,0,0,1,44,007,012900,2013,2,9999,99999,99999999,9,99999,99999999,5888,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9683190,-071.7036600,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440302,02859 +2343,3,000,25,2,0,1,09,2,2,0,0,1,44,007,012900,2013,2,9999,99999,99999999,9,99999,99999999,5888,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9683190,-071.7036600,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440302,02859 +2344,3,000,25,2,2,1,01,2,1,0,0,1,44,007,012900,2013,2,9999,99999,99999999,9,99999,99999999,5888,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9683190,-071.7036600,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440302,02859 +2345,3,000,20,1,70,2,06,2,1,0,0,2,44,007,012900,2014,2,9999,99999,99999999,9,99999,99999999,7162,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9682451,-071.7032069,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440304,02859 +2346,3,000,20,1,71,2,06,2,1,0,0,2,44,007,012900,2014,2,9999,99999,99999999,9,99999,99999999,7162,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9682451,-071.7032069,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440304,02859 +2347,3,000,20,2,46,1,01,2,1,0,0,2,44,007,012900,2014,2,9999,99999,99999999,9,99999,99999999,7162,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9682451,-071.7032069,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440304,02859 +2348,3,000,20,2,47,1,01,2,1,0,0,2,44,007,012900,2014,2,9999,99999,99999999,9,99999,99999999,7162,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9682451,-071.7032069,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440304,02859 +2349,3,000,20,2,47,1,01,2,1,0,0,2,44,007,012900,2014,2,9999,99999,99999999,9,99999,99999999,7162,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,11800,A,01220081,148,1,99999,99999999,+41.9682451,-071.7032069,L,1,99999,99999,77200,1,N,N,54460,S,02378113,00105,1,99999,99999,00090,047,023,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,440304,02859 +2350,3,000,25,2,26,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2351,3,000,25,2,27,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2352,3,000,25,2,27,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2353,3,000,25,2,27,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2354,3,000,25,2,27,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2355,3,000,25,2,35,1,02,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2356,3,000,25,2,46,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2357,3,000,25,2,48,2,06,2,1,0,0,2,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2358,3,000,27,1,8,2,11,2,2,0,0,1,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2359,3,000,27,1,8,2,11,2,2,0,0,1,48,201,322100,3009,3,9999,99999,99999999,9,99999,99999999,31586,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6815495,-095.2135840,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,144,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000708,77502 +2360,3,000,20,2,52,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2361,3,000,20,2,73,1,07,2,2,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2362,3,000,21,1,23,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2363,3,000,21,1,24,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2364,3,000,21,1,51,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2365,3,000,21,1,51,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2366,3,000,21,1,51,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2367,3,000,21,1,52,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2368,3,000,21,1,52,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2369,3,000,21,1,61,1,01,2,1,0,0,2,39,061,021401,4005,4,9999,99999,99999999,9,99999,99999999,138465,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,21504,A,01086206,178,3,99999,99999999,+39.0982037,-084.5887195,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04704,2,99999,99999,04737,030,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BEB,45238 +2370,3,000,30,2,8,1,07,2,2,0,0,1,39,003,012900,2008,2,9999,99999,99999999,9,99999,99999999,7659,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7469092,-084.1236564,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2371,3,000,33,2,8,1,02,2,1,0,0,1,39,003,012900,2008,2,9999,99999,99999999,9,99999,99999999,7659,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7469092,-084.1236564,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2372,3,000,20,1,46,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2373,3,000,20,1,46,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2374,3,000,20,1,46,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2375,3,000,20,1,49,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2376,3,000,20,1,68,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2377,3,000,20,1,68,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2378,3,000,20,1,68,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2379,3,000,20,1,76,1,01,1,1,0,0,2,39,003,012900,2009,2,9999,99999,99999999,9,99999,99999999,21459,0,0,0,0,0,30620,04,999,99999,99999999,A,01074015,43554,F,01085694,338,3,99999,99999999,+40.7466447,-084.1216980,L,1,99999,99999,99999,9,Y,N,43554,A,01085694,02000,2,99999,99999,04422,004,012,01085497,99999,99999999,9,999,99999,99999999,999999,49852,U,99999,U,002ACE,45805 +2380,3,000,20,2,81,1,01,1,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2381,3,000,20,2,82,1,01,1,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2382,3,000,20,1,61,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2383,3,000,20,2,65,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2384,3,000,20,2,70,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2385,3,000,20,2,70,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2386,3,000,20,2,72,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2387,3,000,20,2,74,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2388,3,000,20,2,75,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2389,3,000,21,1,63,1,01,2,1,0,0,2,48,149,970400,2071,2,9999,99999,99999999,9,99999,99999999,2178931,0,0,0,0,0,99999,10,999,99999,99999999,A,01383860,92085,S,01938898,999,7,99999,99999999,+29.9080110,-097.0672985,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,19280,013,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,78963 +2390,3,000,21,1,44,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2391,3,000,21,1,44,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2392,3,000,21,1,44,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2393,3,000,21,1,44,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2394,3,000,21,1,44,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2395,3,000,21,1,44,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2396,3,000,22,1,29,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2397,3,000,22,1,32,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2398,3,000,22,1,32,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2399,3,000,22,1,32,1,01,2,1,0,0,2,01,115,040506,2047,2,9999,99999,99999999,9,99999,99999999,1671392,1137,0,0,1137,0,13820,03,999,99999,99999999,A,00164997,92988,S,00165946,142,6,99999,99999999,+33.6563323,-086.4519081,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,03062,050,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,35120 +2400,3,000,21,2,27,1,02,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2401,3,000,21,2,27,1,02,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2402,3,000,21,2,27,2,11,2,2,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2403,3,000,21,2,27,2,11,2,2,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2404,3,000,21,2,29,2,06,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2405,3,000,21,2,29,2,06,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2406,3,000,21,2,31,1,01,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2407,3,000,21,2,31,1,01,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2408,3,000,21,2,32,1,01,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2409,3,000,21,2,32,1,01,2,1,0,0,2,06,037,134905,1002,1,9999,99999,99999999,9,99999,99999999,169353,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1810513,-118.5950705,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91367 +2410,3,000,21,2,41,1,01,2,1,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2411,3,000,21,2,44,1,01,2,1,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2412,3,000,21,2,44,1,01,2,1,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2413,3,000,21,2,44,1,01,2,1,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2414,3,000,21,2,44,1,01,2,1,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2415,3,000,21,2,44,1,01,2,1,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2416,3,000,25,1,0,1,01,2,1,0,0,1,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2417,3,000,25,1,18,2,11,2,2,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2418,3,000,25,1,18,2,11,2,2,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2419,3,000,25,1,18,2,11,2,2,0,0,2,41,053,020305,2012,2,9999,99999,99999999,9,99999,99999999,8031,0,0,0,0,0,41420,05,999,99999,99999999,A,01135862,91972,S,01938064,440,9,99999,99999999,+44.8585192,-123.1877512,L,1,99999,99999,99999,9,N,N,36150,A,02410099,09300,4,99999,99999,02840,020,010,01155107,99999,99999999,9,999,99999,99999999,999999,58249,U,36150,U,,97351 +2420,3,000,36,1,50,1,01,2,1,0,0,2,25,023,541100,1019,1,9999,99999,99999999,9,99999,99999999,1339170,0,0,0,0,0,14460,09,715,99999,99999999,A,00606938,57600,A,00618350,148,1,99999,99999999,+41.7608637,-070.8389561,L,1,14454,78254,71650,1,9,9,99999,9,99999999,01104,1,10140,09150,99999,078,037,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001607,02770 +2421,3,000,36,1,51,1,01,2,1,0,0,2,25,023,541100,1019,1,9999,99999,99999999,9,99999,99999999,1339170,0,0,0,0,0,14460,09,715,99999,99999999,A,00606938,57600,A,00618350,148,1,99999,99999999,+41.7608637,-070.8389561,L,1,14454,78254,71650,1,9,9,99999,9,99999999,01104,1,10140,09150,99999,078,037,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001607,02770 +2422,3,000,36,1,51,1,01,2,1,0,0,2,25,023,541100,1019,1,9999,99999,99999999,9,99999,99999999,1339170,0,0,0,0,0,14460,09,715,99999,99999999,A,00606938,57600,A,00618350,148,1,99999,99999999,+41.7608637,-070.8389561,L,1,14454,78254,71650,1,9,9,99999,9,99999999,01104,1,10140,09150,99999,078,037,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001607,02770 +2423,3,000,36,1,51,1,01,2,1,0,0,2,25,023,541100,1019,1,9999,99999,99999999,9,99999,99999999,1339170,0,0,0,0,0,14460,09,715,99999,99999999,A,00606938,57600,A,00618350,148,1,99999,99999999,+41.7608637,-070.8389561,L,1,14454,78254,71650,1,9,9,99999,9,99999999,01104,1,10140,09150,99999,078,037,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001607,02770 +2424,3,000,36,1,51,1,01,2,1,0,0,2,25,023,541100,1019,1,9999,99999,99999999,9,99999,99999999,1339170,0,0,0,0,0,14460,09,715,99999,99999999,A,00606938,57600,A,00618350,148,1,99999,99999999,+41.7608637,-070.8389561,L,1,14454,78254,71650,1,9,9,99999,9,99999999,01104,1,10140,09150,99999,078,037,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001607,02770 +2425,3,000,21,1,47,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2426,3,000,21,1,47,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2427,3,000,21,1,48,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2428,3,000,21,1,48,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2429,3,000,21,1,51,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2430,3,000,21,1,51,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2431,3,000,21,1,53,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2432,3,000,21,1,53,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2433,3,000,21,1,54,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2434,3,000,21,1,54,1,01,2,1,0,0,2,19,163,012901,3013,3,9999,99999,99999999,9,99999,99999999,197005,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5814873,-090.5486743,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,094,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163232,52807 +2435,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2436,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2437,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2438,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2439,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2440,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2441,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2442,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2443,3,000,20,2,56,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2444,3,000,20,2,57,1,01,2,1,0,0,2,42,029,302802,2002,2,9999,99999,99999999,9,99999,99999999,222512,794,0,0,794,0,37980,06,999,99999,99999999,A,01209174,21192,A,01216151,428,2,99999,99999999,+40.0223516,-075.5464155,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03413,1,99999,99999,25290,156,009,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000320,19355 +2445,3,000,20,1,22,1,01,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2446,3,000,20,1,22,1,01,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2447,3,000,20,1,22,1,02,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2448,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2449,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2450,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2451,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2452,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2453,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2454,3,000,20,1,22,1,04,1,1,0,0,2,12,057,010824,3001,3,9999,99999,99999999,9,99999,99999999,14025,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0700232,-082.4124544,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,063,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000562,33613 +2455,3,000,20,1,71,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2456,3,000,20,1,73,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2457,3,000,20,2,92,1,03,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2458,3,000,21,2,43,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2459,3,000,25,1,10,1,01,2,1,0,0,1,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2460,3,000,25,1,65,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2461,3,000,25,1,65,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2462,3,000,25,2,18,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2463,3,000,25,2,18,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2464,3,000,25,2,18,1,01,2,1,0,0,2,37,155,960102,1029,1,9815,39675,02418691,R,99999,99999999,1084196,44734,0,0,44734,0,31300,09,999,99999,99999999,A,01026130,92796,N,01027121,246,5,99999,99999999,+34.8084723,-078.9913415,B,2,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,03930,046,013,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00032A,28384 +2465,3,000,20,2,70,1,01,1,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2466,3,000,20,2,71,1,01,1,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2467,3,000,20,2,73,1,01,1,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2468,3,000,20,2,73,1,01,1,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2469,3,000,20,2,81,1,02,1,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2470,3,000,20,2,95,1,01,1,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2471,3,000,20,1,69,1,01,2,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2472,3,000,20,1,69,1,01,2,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2473,3,000,20,1,69,1,01,2,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2474,3,000,20,1,69,1,01,2,1,0,0,2,25,001,010100,4004,4,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,55500,A,00618258,148,1,99999,99999999,+42.0538376,-070.1845422,L,1,99999,99999,70900,1,N,N,55535,S,02378207,01301,1,99999,99999,09840,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,72532,U,99999,U,001530,02657 +2475,3,000,20,1,50,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2476,3,000,20,1,50,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2477,3,000,20,1,56,1,01,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2478,3,000,20,1,57,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2479,3,000,20,1,57,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2480,3,000,20,1,57,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2481,3,000,20,1,57,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2482,3,000,20,1,57,1,02,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2483,3,000,20,1,59,1,01,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2484,3,000,20,1,59,1,01,1,1,0,0,2,47,179,060902,3007,3,9999,99999,99999999,9,99999,99999999,67045,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3203588,-082.3291608,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,007,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009323,37601 +2485,3,000,22,2,56,1,01,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2486,3,000,22,2,68,1,02,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2487,3,000,23,1,31,1,01,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2488,3,000,23,1,39,2,06,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2489,3,000,23,2,24,1,07,2,2,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2490,3,000,23,2,37,1,02,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2491,3,000,23,2,45,1,09,2,2,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2492,3,000,24,1,43,2,11,2,2,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2493,3,000,24,1,51,2,01,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2494,3,000,24,1,53,2,01,2,1,0,0,2,32,003,002404,5000,5,9999,99999,99999999,9,99999,99999999,111893,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1237748,-115.1446212,L,1,99999,99999,99999,9,Y,N,54600,S,02409023,00409,4,99999,99999,00060,016,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005581,89169 +2495,3,000,36,2,15,1,01,2,1,0,0,1,49,053,270200,2008,2,9999,99999,99999999,9,99999,99999999,449170,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5961358,-113.6518577,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2496,3,000,20,2,42,1,01,2,1,0,0,2,49,053,270200,2009,2,9999,99999,99999999,9,99999,99999999,844056,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5929672,-113.6525084,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2497,3,000,20,2,68,1,01,2,1,0,0,2,49,053,270200,2009,2,9999,99999,99999999,9,99999,99999999,844056,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5929672,-113.6525084,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2498,3,000,20,2,68,1,01,2,1,0,0,2,49,053,270200,2009,2,9999,99999,99999999,9,99999,99999999,844056,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5929672,-113.6525084,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2499,3,000,21,2,46,1,01,2,1,0,0,2,49,053,270200,2009,2,9999,99999,99999999,9,99999,99999999,844056,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5929672,-113.6525084,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2500,3,000,25,2,4,1,01,2,1,0,0,1,49,053,270200,2009,2,9999,99999,99999999,9,99999,99999999,844056,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5929672,-113.6525084,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2501,3,000,25,2,4,1,01,2,1,0,0,1,49,053,270200,2009,2,9999,99999,99999999,9,99999,99999999,844056,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5929672,-113.6525084,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2502,3,000,20,1,57,1,01,2,1,0,0,2,49,053,270200,2010,2,9999,99999,99999999,9,99999,99999999,651416,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5888528,-113.6653880,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2503,3,000,20,1,83,1,01,2,1,0,0,2,49,053,270200,2010,2,9999,99999,99999999,9,99999,99999999,651416,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5888528,-113.6653880,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2504,3,000,21,2,35,1,01,2,1,0,0,2,49,053,270200,2010,2,9999,99999,99999999,9,99999,99999999,651416,0,0,0,0,0,41100,02,999,99999,99999999,A,01448040,90817,S,01939364,999,8,99999,99999999,+37.5888528,-113.6653880,L,1,99999,99999,99999,9,9,9,99999,9,99999999,53000,4,99999,99999,01140,075,029,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,CONCFE,84725 +2505,3,000,25,1,9,2,11,2,2,0,0,1,48,491,021603,2026,2,9999,99999,99999999,9,99999,99999999,244144,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8357429,-097.6010745,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2506,3,000,25,1,12,2,11,2,2,0,0,1,48,491,021603,2026,2,9999,99999,99999999,9,99999,99999999,244144,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8357429,-097.6010745,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2507,3,000,25,1,25,2,11,2,2,0,0,2,48,491,021603,2026,2,9999,99999,99999999,9,99999,99999999,244144,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8357429,-097.6010745,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2508,3,000,25,1,53,1,01,2,1,0,0,2,48,491,021603,2026,2,9999,99999,99999999,9,99999,99999999,244144,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8357429,-097.6010745,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2509,3,000,25,2,8,1,07,2,2,0,0,1,48,491,021603,2026,2,9999,99999,99999999,9,99999,99999999,244144,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8357429,-097.6010745,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2510,3,000,36,1,42,2,11,2,2,0,0,2,48,491,021603,2026,2,9999,99999,99999999,9,99999,99999999,244144,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8357429,-097.6010745,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2511,3,000,20,1,69,1,01,1,1,0,0,2,48,491,021603,2027,2,9999,99999,99999999,9,99999,99999999,15826,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8310162,-097.6027768,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2512,3,000,20,2,71,1,01,1,1,0,0,2,48,491,021603,2027,2,9999,99999,99999999,9,99999,99999999,15826,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8310162,-097.6027768,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2513,3,000,20,2,71,1,01,1,1,0,0,2,48,491,021603,2027,2,9999,99999,99999999,9,99999,99999999,15826,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8310162,-097.6027768,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2514,3,000,20,1,75,1,01,2,1,0,0,2,48,491,021603,2027,2,9999,99999,99999999,9,99999,99999999,15826,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,91915,S,01938864,999,7,99999,99999999,+30.8310162,-097.6027768,L,1,99999,99999,99999,9,N,N,37396,A,02410133,05201,3,99999,99999,24600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,83080,U,99999,U,000312,76537 +2515,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2516,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2517,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2518,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2519,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2520,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2521,3,000,21,1,39,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2522,3,000,21,1,40,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2523,3,000,21,1,43,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2524,3,000,21,1,43,1,01,2,1,0,0,2,36,061,009800,1000,1,9999,99999,99999999,9,99999,99999999,17072,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7575461,-073.9680502,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,073,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000895,10022 +2525,3,000,20,1,74,1,01,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2526,3,000,20,1,74,1,01,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2527,3,000,20,1,74,1,01,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2528,3,000,20,1,78,1,01,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2529,3,000,20,1,79,2,06,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2530,3,000,20,1,80,2,06,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2531,3,000,20,1,80,2,06,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2532,3,000,20,2,19,1,01,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2533,3,000,20,2,23,1,01,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2534,3,000,20,2,53,1,02,1,1,0,0,2,34,003,021200,3000,3,9999,99999,99999999,9,99999,99999999,15984,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,25770,F,00885228,408,2,99999,99999999,+40.8849384,-074.1157726,L,1,35614,99999,99999,9,N,N,25770,A,00885228,00304,1,99999,99999,05760,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105402,07026 +2535,3,000,25,1,11,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2536,3,000,25,1,11,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2537,3,000,25,1,13,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2538,3,000,25,1,13,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2539,3,000,25,1,13,1,04,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2540,3,000,25,1,13,2,06,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2541,3,000,25,1,14,2,11,2,2,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2542,3,000,25,1,16,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2543,3,000,25,1,16,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2544,3,000,25,1,16,1,02,2,1,0,0,1,17,043,846410,2011,2,9999,99999,99999999,9,99999,99999999,25129,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7835128,-088.2103044,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,41690,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006079,60563 +2545,5,103,37,1,28,1,02,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2546,5,103,37,1,28,1,02,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2547,5,103,37,1,28,1,02,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2548,5,103,37,1,28,1,03,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2549,5,103,37,1,28,1,03,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2550,5,103,37,1,28,1,03,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2551,5,103,37,1,29,1,01,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2552,5,103,37,1,29,1,01,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2553,5,103,37,1,29,1,01,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2554,5,103,37,1,29,1,01,0,1,1,1,2,24,039,930800,4005,4,9999,99999,99999999,9,99999,99999999,624584,1649,0,0,1649,0,41540,01,999,99999,99999999,A,00596907,91176,N,01929478,480,5,99999,99999999,+38.1573168,-075.7043434,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00570,38A,038,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,13-002,21890 +2555,3,000,21,1,43,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2556,3,000,21,1,43,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2557,3,000,21,1,43,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2558,3,000,21,1,43,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2559,3,000,21,1,43,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2560,3,000,21,1,44,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2561,3,000,21,1,44,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2562,3,000,21,1,44,1,08,2,2,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2563,3,000,21,1,44,1,08,2,2,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2564,3,000,21,1,49,1,01,2,1,0,0,2,55,087,012505,1002,1,9999,99999,99999999,9,99999,99999999,1359075,0,0,0,0,0,11540,08,999,99999,99999999,A,01581104,30075,A,01583295,118,3,99999,99999999,+44.3125240,-088.4383405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,00390,056,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,004285,54913 +2565,3,000,21,1,48,2,11,2,2,0,0,2,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2566,3,000,21,1,48,2,11,2,2,0,0,2,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2567,3,000,21,2,46,2,06,2,1,0,0,2,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2568,3,000,25,1,1,2,11,2,2,0,0,1,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2569,3,000,25,1,21,2,06,2,1,0,0,2,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2570,3,000,25,1,21,2,06,2,1,0,0,2,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2571,3,000,25,1,27,1,04,2,1,0,0,2,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2572,3,000,25,2,2,1,01,2,1,0,0,1,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2573,3,000,25,2,2,1,01,2,1,0,0,1,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2574,3,000,25,2,2,2,11,2,2,0,0,1,12,097,043600,1001,1,9999,99999,99999999,9,99999,99999999,10393,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3317925,-081.2324454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09702,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +2575,3,000,21,2,25,1,02,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2576,3,000,21,2,26,2,06,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2577,3,000,21,2,28,2,06,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2578,3,000,21,2,29,2,06,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2579,3,000,21,2,30,1,04,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2580,3,000,21,2,30,1,04,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2581,3,000,21,2,31,1,02,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2582,3,000,21,2,32,1,02,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2583,3,000,21,2,32,1,02,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2584,3,000,21,2,32,1,02,2,1,0,0,2,24,033,802406,2001,2,9999,99999,99999999,9,99999,99999999,309424,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8549226,-076.9157423,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,024,024,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-006,20747 +2585,3,000,20,2,29,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2586,3,000,20,2,30,2,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2587,3,000,20,2,49,1,04,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2588,3,000,21,1,35,2,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2589,3,000,21,1,39,2,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2590,3,000,21,1,65,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2591,3,000,21,1,65,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2592,3,000,21,1,65,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2593,3,000,21,2,31,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2594,3,000,21,2,31,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +2595,3,000,20,1,70,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2596,3,000,20,1,72,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2597,3,000,20,1,74,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2598,3,000,20,1,76,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2599,3,000,20,1,77,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2600,3,000,20,1,81,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2601,3,000,20,1,82,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2602,3,000,20,1,84,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2603,3,000,20,1,84,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2604,3,000,20,1,84,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +2605,3,000,25,1,21,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2606,3,000,25,1,21,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2607,3,000,25,1,21,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2608,3,000,25,1,21,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2609,3,000,25,1,23,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2610,3,000,25,1,23,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2611,3,000,25,1,23,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2612,3,000,25,1,23,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2613,3,000,25,1,24,1,01,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2614,3,000,25,1,24,1,01,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +2615,3,000,20,2,59,1,01,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2616,3,000,20,2,59,1,01,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2617,3,000,20,2,69,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2618,3,000,22,2,20,1,01,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2619,3,000,22,2,20,1,01,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2620,3,000,25,1,8,1,07,2,2,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2621,3,000,25,1,9,1,07,2,2,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2622,3,000,25,1,10,2,03,2,1,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2623,3,000,25,1,10,2,03,2,1,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2624,3,000,25,1,10,2,03,2,1,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +2625,3,000,21,1,56,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2626,3,000,21,1,56,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2627,3,000,21,1,56,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2628,3,000,21,1,56,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2629,3,000,21,1,56,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2630,3,000,21,1,58,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2631,3,000,21,1,58,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2632,3,000,21,1,58,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2633,3,000,21,1,63,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2634,3,000,21,1,63,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +2635,3,000,20,1,62,2,06,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2636,3,000,20,1,64,1,04,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2637,3,000,20,1,64,1,04,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2638,3,000,20,1,65,2,06,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2639,3,000,20,1,70,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2640,3,000,20,1,70,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2641,3,000,20,1,70,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2642,3,000,20,1,70,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2643,3,000,20,1,71,1,02,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2644,3,000,20,1,71,1,02,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +2645,3,000,20,1,38,1,01,1,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2646,3,000,20,1,38,1,01,1,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2647,3,000,20,2,80,1,01,1,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2648,3,000,20,2,84,1,01,1,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2649,3,000,20,2,92,1,01,1,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2650,3,000,20,2,94,1,01,1,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2651,3,000,20,1,52,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2652,3,000,20,1,52,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2653,3,000,20,1,52,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2654,3,000,20,2,33,1,07,2,2,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +2655,3,000,21,2,60,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2656,3,000,21,2,71,1,08,2,2,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2657,3,000,22,1,31,1,02,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2658,3,000,22,2,42,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2659,3,000,25,1,2,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2660,3,000,25,1,4,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2661,3,000,25,1,6,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2662,3,000,25,1,7,1,04,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2663,3,000,25,1,7,1,04,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2664,3,000,25,1,8,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +2665,3,000,20,2,44,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2666,3,000,20,2,44,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2667,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2668,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2669,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2670,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2671,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2672,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2673,3,000,20,2,45,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2674,3,000,20,2,46,1,07,1,2,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +2675,3,000,20,1,50,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2676,3,000,20,1,50,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2677,3,000,20,1,50,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2678,3,000,20,1,50,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2679,3,000,20,1,50,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2680,3,000,20,1,51,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2681,3,000,20,1,51,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2682,3,000,20,1,51,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2683,3,000,20,1,51,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2684,3,000,20,1,51,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +2685,3,000,20,2,56,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2686,3,000,20,2,56,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2687,3,000,20,2,56,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2688,3,000,20,2,56,2,06,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2689,3,000,20,2,56,2,06,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2690,3,000,20,2,57,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2691,3,000,20,2,57,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2692,3,000,20,2,57,2,06,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2693,3,000,20,2,58,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2694,3,000,20,2,58,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +2695,3,000,20,1,81,1,01,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2696,3,000,20,2,26,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2697,3,000,20,2,26,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2698,3,000,20,2,30,2,06,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2699,3,000,20,2,30,2,06,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2700,3,000,20,2,37,2,11,2,2,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2701,3,000,20,2,51,1,01,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2702,3,000,20,2,53,1,01,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2703,3,000,20,2,53,1,01,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2704,3,000,20,2,53,1,01,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +2705,3,000,20,2,38,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2706,3,000,20,2,38,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2707,3,000,20,2,38,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2708,3,000,20,2,38,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2709,3,000,20,2,38,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2710,3,000,20,2,38,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2711,3,000,20,2,38,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2712,3,000,20,2,38,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2713,3,000,20,2,38,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2714,3,000,20,2,38,1,04,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +2715,3,000,20,2,39,1,01,2,1,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2716,3,000,21,1,77,2,11,2,2,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2717,3,000,21,2,62,1,02,2,1,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2718,3,000,21,2,64,1,01,2,1,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2719,3,000,21,2,64,1,01,2,1,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2720,3,000,25,1,6,1,01,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2721,3,000,25,1,6,1,01,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2722,3,000,25,1,9,2,06,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2723,3,000,25,1,11,1,01,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2724,3,000,25,1,11,1,01,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +2725,3,000,20,1,58,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2726,3,000,20,1,58,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2727,3,000,20,1,58,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2728,3,000,20,1,58,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2729,3,000,20,1,58,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2730,3,000,20,1,59,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2731,3,000,20,1,62,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2732,3,000,20,1,62,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2733,3,000,20,1,62,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2734,3,000,20,2,68,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +2735,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2736,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2737,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2738,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2739,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2740,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2741,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2742,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2743,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2744,5,501,38,2,18,2,06,0,1,2,5,2,44,009,051400,1029,1,9999,99999,99999999,9,99999,99999999,6811,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,67460,A,01220090,148,1,99999,99999999,+41.4854045,-071.5322000,L,1,99999,99999,77200,1,N,N,38980,S,02378108,00400,1,99999,99999,01020,035,037,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443206,02881 +2745,3,000,25,1,20,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2746,3,000,25,1,21,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2747,3,000,25,1,21,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2748,3,000,25,1,21,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2749,3,000,25,1,22,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2750,3,000,25,1,22,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2751,3,000,25,1,22,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2752,3,000,25,1,22,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2753,3,000,25,1,22,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2754,3,000,25,1,22,1,01,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +2755,3,000,30,2,9,1,02,2,1,0,0,1,45,075,010400,4026,4,9999,99999,99999999,9,99999,99999999,167752,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.5033084,-080.5346012,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2756,3,000,30,2,18,1,02,2,1,0,0,2,45,075,010400,4026,4,9999,99999,99999999,9,99999,99999999,167752,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.5033084,-080.5346012,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2757,3,000,20,2,26,1,01,2,1,0,0,2,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2758,3,000,20,2,26,1,01,2,1,0,0,2,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2759,3,000,20,2,55,1,01,2,1,0,0,2,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2760,3,000,20,2,57,1,01,2,1,0,0,2,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2761,3,000,25,1,7,1,02,2,1,0,0,1,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2762,3,000,25,1,16,1,02,2,1,0,0,1,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2763,3,000,25,1,16,1,02,2,1,0,0,1,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2764,3,000,25,1,16,1,02,2,1,0,0,1,45,075,010400,4027,4,9999,99999,99999999,9,99999,99999999,240135,0,0,0,0,0,36700,06,999,99999,99999999,A,01248014,91040,S,01938260,192,5,99999,99999999,+33.4983709,-080.5326456,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,03910,066,039,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000154,29142 +2765,3,000,25,1,3,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2766,3,000,25,1,3,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2767,3,000,25,1,3,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2768,3,000,25,1,3,2,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2769,3,000,25,1,3,2,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2770,3,000,25,1,3,2,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2771,3,000,25,1,4,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2772,3,000,25,1,4,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2773,3,000,25,1,4,2,11,2,2,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2774,3,000,25,1,5,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +2775,3,000,20,1,19,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2776,3,000,20,1,19,1,02,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2777,3,000,20,1,22,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2778,3,000,20,1,23,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2779,3,000,20,1,28,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2780,3,000,20,1,28,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2781,3,000,20,1,34,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2782,3,000,20,1,34,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2783,3,000,20,1,45,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2784,3,000,20,1,45,1,01,2,1,0,0,2,37,183,051000,1007,1,9999,99999,99999999,9,99999,99999999,23520,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92612,N,01027272,450,5,99999,99999999,+35.7827560,-078.6573980,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01201,3,99999,99999,04720,033,015,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,001-23,27605 +2785,3,000,20,1,61,1,01,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2786,3,000,20,1,69,1,01,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2787,3,000,20,1,72,1,02,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2788,3,000,20,2,60,1,02,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2789,3,000,20,2,60,1,02,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2790,3,000,20,2,60,1,02,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2791,3,000,20,2,79,1,02,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2792,3,000,20,2,79,1,02,1,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2793,3,000,20,1,47,2,01,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2794,3,000,20,1,47,2,01,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +2795,3,000,25,1,8,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2796,3,000,25,1,11,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2797,3,000,25,1,11,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2798,3,000,25,1,11,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2799,3,000,25,1,11,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2800,3,000,25,1,11,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2801,3,000,25,1,11,1,04,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2802,3,000,25,1,14,1,01,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2803,3,000,25,1,14,1,01,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2804,3,000,25,1,14,1,01,2,1,0,0,1,53,033,032216,3003,3,9999,99999,99999999,9,99999,99999999,62615,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,91392,S,01939525,500,9,99999,99999999,+47.6068631,-122.0476583,L,1,42644,99999,99999,9,N,N,61115,A,02411772,23305,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,61115,U,002693,98074 +2805,3,000,21,1,49,2,06,2,1,0,0,2,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2806,3,000,25,1,3,2,06,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2807,3,000,25,1,4,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2808,3,000,25,1,4,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2809,3,000,25,1,11,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2810,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2811,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2812,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2813,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2814,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +2815,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2816,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2817,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2818,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2819,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2820,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2821,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2822,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2823,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2824,5,501,38,1,19,1,01,0,1,2,5,2,18,141,011203,2010,2,9999,99999,99999999,9,99999,99999999,162241,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,13222,A,00453218,515,3,99999,99999999,+41.7025639,-086.2340818,L,1,99999,99999,99999,9,N,N,55386,S,02583462,00401,2,99999,99999,10290,008,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,000070,46556 +2825,3,000,20,1,36,2,06,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2826,3,000,20,1,38,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2827,3,000,20,1,38,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2828,3,000,20,1,38,2,06,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2829,3,000,20,1,41,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2830,3,000,20,1,41,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2831,3,000,20,1,41,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2832,3,000,20,1,41,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2833,3,000,20,1,41,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2834,3,000,20,1,41,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +2835,3,000,29,2,82,1,01,2,1,0,0,2,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2836,3,000,29,2,89,2,11,2,2,0,0,2,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2837,3,000,30,1,3,2,06,2,1,0,0,1,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2838,3,000,30,2,10,1,01,2,1,0,0,1,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2839,3,000,30,2,15,2,11,2,2,0,0,1,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2840,3,000,30,2,15,2,11,2,2,0,0,1,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2841,3,000,30,2,17,1,01,2,1,0,0,1,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2842,3,000,31,2,69,1,04,2,1,0,0,2,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2843,3,000,31,2,69,1,04,2,1,0,0,2,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2844,3,000,31,2,69,1,04,2,1,0,0,2,48,201,553404,1000,1,9999,99999,99999999,9,99999,99999999,310756,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0452718,-095.4540616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04627,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000633,77388 +2845,3,000,20,2,53,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2846,3,000,21,2,78,1,03,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2847,3,000,22,2,26,1,01,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2848,3,000,25,1,15,1,02,2,1,0,0,1,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2849,3,000,25,1,17,1,03,2,1,0,0,1,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2850,3,000,25,1,17,1,03,2,1,0,0,1,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2851,3,000,25,1,18,1,03,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2852,3,000,25,1,18,1,03,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2853,3,000,25,1,22,1,01,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2854,3,000,25,2,2,1,02,2,1,0,0,1,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +2855,3,000,20,2,58,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2856,3,000,20,2,58,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2857,3,000,20,2,58,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2858,3,000,20,2,59,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2859,3,000,20,2,59,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2860,3,000,20,2,59,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2861,3,000,21,1,46,1,07,2,2,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2862,3,000,21,1,47,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2863,3,000,21,1,47,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2864,3,000,21,1,63,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +2865,3,000,21,2,68,1,02,2,1,0,0,2,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2866,3,000,25,1,8,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2867,3,000,25,1,8,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2868,3,000,25,1,8,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2869,3,000,25,1,8,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2870,3,000,25,1,8,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2871,3,000,25,1,13,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2872,3,000,25,1,13,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2873,3,000,25,2,5,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2874,3,000,25,2,5,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +2875,3,000,21,1,30,2,06,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2876,3,000,21,1,33,2,06,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2877,3,000,21,1,36,1,01,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2878,3,000,21,1,36,1,01,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2879,3,000,21,1,38,1,05,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2880,3,000,21,1,48,1,01,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2881,3,000,21,1,50,2,06,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2882,3,000,21,1,50,2,06,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2883,3,000,21,1,50,2,06,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2884,3,000,21,1,60,1,01,2,1,0,0,2,06,007,000104,4000,4,9999,99999,99999999,9,99999,99999999,206455,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7777545,-121.8404885,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95973 +2885,3,000,20,1,54,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2886,3,000,20,1,54,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2887,3,000,20,1,54,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2888,3,000,20,1,54,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2889,3,000,20,1,69,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2890,3,000,20,2,28,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2891,3,000,20,2,28,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2892,3,000,20,2,28,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2893,3,000,20,2,28,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2894,3,000,20,2,29,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +2895,3,000,25,1,2,1,02,2,1,0,0,1,21,101,020701,1013,1,9999,99999,99999999,9,99999,99999999,23596,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8686643,-087.5563196,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2896,3,000,25,2,10,1,06,2,1,0,0,1,21,101,020701,1013,1,9999,99999,99999999,9,99999,99999999,23596,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8686643,-087.5563196,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2897,3,000,25,2,10,1,06,2,1,0,0,1,21,101,020701,1013,1,9999,99999,99999999,9,99999,99999999,23596,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8686643,-087.5563196,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2898,3,000,25,2,14,1,06,2,1,0,0,1,21,101,020701,1013,1,9999,99999,99999999,9,99999,99999999,23596,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8686643,-087.5563196,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2899,3,000,28,1,9,2,01,2,1,0,0,1,21,101,020701,1013,1,9999,99999,99999999,9,99999,99999999,23596,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8686643,-087.5563196,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2900,3,000,30,1,11,2,01,2,1,0,0,1,21,101,020701,1013,1,9999,99999,99999999,9,99999,99999999,23596,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8686643,-087.5563196,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2901,3,000,20,1,70,1,02,1,1,0,0,2,21,101,020701,1014,1,9999,99999,99999999,9,99999,99999999,16873,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8676022,-087.5558131,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2902,3,000,20,2,62,1,02,1,1,0,0,2,21,101,020701,1014,1,9999,99999,99999999,9,99999,99999999,16873,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8676022,-087.5558131,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2903,3,000,20,2,63,1,02,1,1,0,0,2,21,101,020701,1014,1,9999,99999,99999999,9,99999,99999999,16873,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8676022,-087.5558131,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2904,3,000,20,2,65,1,01,1,1,0,0,2,21,101,020701,1014,1,9999,99999,99999999,9,99999,99999999,16873,0,0,0,0,0,21780,01,999,99999,99999999,A,00516897,93320,S,01937271,999,6,99999,99999999,+37.8676022,-087.5558131,L,1,99999,99999,99999,9,N,N,35866,A,02404681,01400,3,99999,99999,02710,011,004,01779786,99999,99999999,9,999,99999,99999999,999999,38258,U,99999,U,00E109,42420 +2905,3,000,20,2,71,1,01,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2906,3,000,20,2,71,1,01,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2907,3,000,20,2,71,1,01,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2908,3,000,20,2,73,1,01,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2909,3,000,20,2,73,1,01,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2910,3,000,20,2,73,1,01,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2911,3,000,21,1,36,2,11,2,2,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2912,3,000,21,1,65,1,04,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2913,3,000,21,1,65,1,04,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2914,3,000,21,2,39,1,04,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +2915,3,000,25,1,12,1,01,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2916,3,000,25,1,12,2,11,2,2,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2917,3,000,25,1,13,1,01,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2918,3,000,25,1,13,1,01,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2919,3,000,25,1,14,2,06,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2920,3,000,25,1,14,2,06,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2921,3,000,25,1,15,1,08,2,2,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2922,3,000,25,1,16,1,01,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2923,3,000,25,1,16,2,01,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2924,3,000,25,1,16,2,01,2,1,0,0,1,06,059,032003,2005,2,9999,99999,99999999,9,99999,99999999,29927,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.6041361,-117.6570759,L,1,11244,99999,99999,9,N,N,48256,A,02411123,05926,4,99999,99999,33860,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92691 +2925,3,000,20,1,25,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2926,3,000,20,1,29,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2927,3,000,20,1,29,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2928,3,000,20,1,29,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2929,3,000,20,1,29,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2930,3,000,20,1,29,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2931,3,000,20,1,29,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2932,3,000,20,1,35,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2933,3,000,20,1,35,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2934,3,000,20,1,35,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +2935,3,000,21,2,51,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2936,3,000,21,2,51,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2937,3,000,21,2,51,1,04,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2938,3,000,21,2,52,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2939,3,000,21,2,52,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2940,3,000,21,2,52,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2941,3,000,21,2,53,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2942,3,000,21,2,53,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2943,3,000,21,2,53,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2944,3,000,21,2,53,1,01,2,1,0,0,2,41,007,950500,4000,4,9999,99999,99999999,9,99999,99999999,3407578,55453,0,0,55453,0,11820,01,999,99999,99999999,A,01135846,90153,S,01937957,999,9,99999,99999999,+46.1748060,-123.9427387,B,2,99999,99999,99999,9,N,N,78900,A,02412184,09000,4,99999,99999,13080,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,78900,R,,97146 +2945,3,000,25,1,10,2,11,2,2,0,0,1,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2946,3,000,25,1,10,2,11,2,2,0,0,1,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2947,3,000,25,1,10,2,11,2,2,0,0,1,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2948,3,000,25,1,13,1,09,2,2,0,0,1,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2949,3,000,25,1,14,1,02,2,1,0,0,1,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2950,3,000,25,1,20,1,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2951,3,000,25,1,20,1,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2952,3,000,25,1,20,2,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2953,3,000,25,1,20,2,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2954,3,000,25,1,20,2,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +2955,3,000,20,2,67,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2956,3,000,20,2,67,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2957,3,000,21,1,48,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2958,3,000,21,1,65,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2959,3,000,21,1,65,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2960,3,000,21,1,66,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2961,3,000,21,2,41,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2962,3,000,21,2,41,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2963,3,000,21,2,77,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2964,3,000,21,2,77,1,01,2,1,0,0,2,36,015,010702,2018,2,9999,99999,99999999,9,99999,99999999,30013,0,0,0,0,0,21300,23,999,99999,99999999,A,00974106,35705,A,00979080,236,2,99999,99999999,+42.1895509,-076.8031800,L,1,99999,99999,99999,9,N,N,35710,S,02389953,02404,1,99999,99999,14850,124,058,01779796,99999,99999999,9,999,99999,99999999,999999,27118,U,99999,U,000067,14845 +2965,3,000,30,1,10,1,06,2,1,0,0,1,36,059,409900,2030,2,9999,99999,99999999,9,99999,99999999,6922,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6777000,-073.7104026,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000645,11580 +2966,3,000,33,1,11,2,01,2,1,0,0,1,36,059,409900,2030,2,9999,99999,99999999,9,99999,99999999,6922,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6777000,-073.7104026,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000645,11580 +2967,3,000,20,2,64,1,02,1,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2968,3,000,20,2,64,1,02,1,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2969,3,000,20,2,85,1,02,1,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2970,3,000,20,2,85,1,02,1,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2971,3,000,20,2,89,1,02,1,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2972,3,000,20,1,44,1,03,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2973,3,000,20,1,44,2,01,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2974,3,000,20,1,44,2,01,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +2975,3,000,36,1,44,1,01,2,1,0,0,2,12,091,021902,1012,1,9999,99999,99999999,9,99999,99999999,177005,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4371813,-086.6511860,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2976,3,000,36,1,51,1,01,2,1,0,0,2,12,091,021902,1012,1,9999,99999,99999999,9,99999,99999999,177005,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4371813,-086.6511860,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2977,3,000,36,1,53,1,01,2,1,0,0,2,12,091,021902,1012,1,9999,99999,99999999,9,99999,99999999,177005,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4371813,-086.6511860,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2978,3,000,20,1,71,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2979,3,000,20,1,71,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2980,3,000,20,1,71,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2981,3,000,20,1,75,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2982,3,000,20,1,75,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2983,3,000,20,1,75,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2984,3,000,20,1,78,1,01,2,1,0,0,2,12,091,021902,1013,1,9999,99999,99999999,9,99999,99999999,9114,0,0,0,0,0,18880,01,999,99999,99999999,A,00306915,91170,S,01935772,999,5,99999,99999999,+30.4365888,-086.6497489,L,1,99999,99999,99999,9,N,N,78800,S,02403044,09102,3,99999,99999,01380,004,001,00294478,99999,99999999,9,999,99999,99999999,999999,61372,U,99999,U,000061,32547 +2985,3,000,20,2,19,1,01,1,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2986,3,000,20,2,24,1,01,1,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2987,3,000,20,2,55,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2988,3,000,20,2,55,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2989,3,000,20,2,57,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2990,3,000,20,2,57,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2991,3,000,20,2,57,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2992,3,000,20,2,57,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2993,3,000,20,2,57,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2994,3,000,20,2,57,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +2995,3,000,21,2,34,1,01,2,1,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +2996,3,000,21,2,80,1,01,2,1,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +2997,3,000,21,2,80,1,01,2,1,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +2998,3,000,21,2,82,1,01,2,1,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +2999,3,000,21,2,84,1,01,2,1,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +3000,3,000,25,1,13,1,09,2,2,0,0,1,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +3001,3,000,25,1,18,2,18,2,2,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +3002,3,000,25,1,28,1,03,2,1,0,0,2,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +3003,3,000,25,2,1,1,01,2,1,0,0,1,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +3004,3,000,25,2,1,1,01,2,1,0,0,1,49,021,110202,3149,3,9999,99999,99999999,9,99999,99999999,54237,0,0,0,0,0,16260,02,999,99999,99999999,A,01448025,90344,S,01939353,999,8,99999,99999999,+37.7631652,-113.0236778,L,2,99999,99999,99999,9,N,N,23200,A,02410444,21000,4,99999,99999,00390,071,028,01455989,99999,99999999,9,999,99999,99999999,999999,14698,U,99999,U,ENO002,84721 +3005,3,000,21,1,54,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3006,3,000,21,1,54,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3007,3,000,21,1,54,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3008,3,000,21,1,66,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3009,3,000,21,1,66,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3010,3,000,21,1,66,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3011,3,000,21,2,34,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3012,3,000,21,2,34,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3013,3,000,21,2,34,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3014,3,000,21,2,78,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +3015,3,000,25,2,16,1,01,2,1,0,0,1,37,077,970607,2018,2,9999,99999,99999999,9,99999,99999999,1038705,65173,0,0,65173,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1169250,-078.7148168,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00CRDM,27522 +3016,3,000,25,2,17,1,01,2,1,0,0,1,37,077,970607,2018,2,9999,99999,99999999,9,99999,99999999,1038705,65173,0,0,65173,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1169250,-078.7148168,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00CRDM,27522 +3017,3,000,25,2,17,1,01,2,1,0,0,1,37,077,970607,2018,2,9999,99999,99999999,9,99999,99999999,1038705,65173,0,0,65173,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1169250,-078.7148168,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00CRDM,27522 +3018,3,000,26,1,14,1,02,2,1,0,0,1,37,077,970607,2018,2,9999,99999,99999999,9,99999,99999999,1038705,65173,0,0,65173,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1169250,-078.7148168,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00CRDM,27522 +3019,3,000,30,1,14,1,02,2,1,0,0,1,37,077,970607,2018,2,9999,99999,99999999,9,99999,99999999,1038705,65173,0,0,65173,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1169250,-078.7148168,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00CRDM,27522 +3020,3,000,35,1,1,1,01,2,1,0,0,1,37,077,970607,2018,2,9999,99999,99999999,9,99999,99999999,1038705,65173,0,0,65173,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1169250,-078.7148168,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00CRDM,27522 +3021,3,000,20,1,36,1,01,1,1,0,0,2,37,077,970607,2021,2,9999,99999,99999999,9,99999,99999999,8470,0,0,0,0,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1209098,-078.7214814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,20899,U,99999,U,00CRDM,27522 +3022,3,000,20,1,51,1,01,1,1,0,0,2,37,077,970607,2021,2,9999,99999,99999999,9,99999,99999999,8470,0,0,0,0,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1209098,-078.7214814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,20899,U,99999,U,00CRDM,27522 +3023,3,000,20,1,52,1,01,1,1,0,0,2,37,077,970607,2021,2,9999,99999,99999999,9,99999,99999999,8470,0,0,0,0,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1209098,-078.7214814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,20899,U,99999,U,00CRDM,27522 +3024,3,000,20,1,52,1,01,1,1,0,0,2,37,077,970607,2021,2,9999,99999,99999999,9,99999,99999999,8470,0,0,0,0,0,20500,01,999,99999,99999999,A,01008556,90936,N,01026713,450,5,99999,99999999,+36.1209098,-078.7214814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,01800,002,022,01027616,99999,99999999,9,999,99999,99999999,999999,20899,U,99999,U,00CRDM,27522 +3025,3,000,33,2,23,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3026,3,000,34,1,23,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3027,3,000,34,1,24,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3028,3,000,34,1,24,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3029,3,000,34,1,42,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3030,3,000,34,1,42,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3031,3,000,34,1,42,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3032,3,000,34,1,42,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3033,3,000,36,1,3,1,02,2,1,0,0,1,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3034,3,000,36,1,3,1,02,2,1,0,0,1,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +3035,3,000,20,2,30,1,04,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3036,3,000,20,2,30,1,04,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3037,3,000,20,2,32,1,04,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3038,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3039,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3040,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3041,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3042,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3043,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3044,3,000,20,2,59,1,02,1,1,0,0,2,22,051,025005,2001,2,9999,99999,99999999,9,99999,99999999,262378,0,0,0,0,0,35380,02,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8974352,-090.0115196,L,1,99999,99999,99999,9,N,N,75180,S,02402921,02303,3,99999,99999,00840,085,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,00232B,70056 +3045,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3046,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3047,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3048,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3049,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3050,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3051,3,000,20,1,72,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3052,3,000,20,1,74,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3053,3,000,20,1,75,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3054,3,000,20,1,75,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +3055,3,000,25,2,56,1,04,2,1,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3056,3,000,25,2,59,1,04,2,1,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3057,3,000,25,2,59,1,04,2,1,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3058,3,000,25,2,59,1,29,2,3,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3059,3,000,25,2,59,1,29,2,3,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3060,3,000,26,1,1,1,05,2,1,0,0,1,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3061,3,000,27,1,18,2,06,2,1,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3062,3,000,27,1,21,1,27,2,3,0,0,2,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3063,3,000,27,2,12,1,05,2,1,0,0,1,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3064,3,000,27,2,12,1,05,2,1,0,0,1,15,003,008632,2016,2,9999,99999,99999999,9,99999,99999999,107460,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3441427,-158.0841497,L,1,99999,99999,99999,9,N,N,47600,S,02414095,00308,4,99999,99999,00030,042,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3065,3,000,21,1,45,1,01,2,1,0,0,2,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3066,3,000,21,1,48,1,01,2,1,0,0,2,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3067,3,000,21,1,48,1,01,2,1,0,0,2,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3068,3,000,21,1,48,1,01,2,1,0,0,2,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3069,3,000,25,1,9,1,01,2,1,0,0,1,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3070,3,000,25,1,16,1,08,2,2,0,0,1,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3071,3,000,25,2,8,1,08,2,2,0,0,1,26,019,000400,1046,1,9999,99999,99999999,9,99999,99999999,8491,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,30260,F,01626305,999,3,99999,99999999,+44.6333215,-086.2387597,L,2,99999,99999,99999,9,N,N,30260,A,01626305,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,31262,U,99999,U,019006,49635 +3072,3,000,21,1,66,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +3073,3,000,21,1,71,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +3074,3,000,21,1,73,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +3075,3,000,21,1,54,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3076,3,000,21,2,30,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3077,3,000,21,2,32,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3078,3,000,21,2,34,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3079,3,000,21,2,34,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3080,3,000,21,2,34,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3081,3,000,21,2,34,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3082,3,000,21,2,37,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3083,3,000,21,2,37,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3084,3,000,21,2,37,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +3085,3,000,20,1,37,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3086,3,000,20,1,37,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3087,3,000,20,1,38,1,04,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3088,3,000,20,1,39,1,04,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3089,3,000,20,1,41,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3090,3,000,20,1,41,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3091,3,000,20,1,41,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3092,3,000,20,1,44,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3093,3,000,20,1,45,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3094,3,000,20,1,45,1,01,1,1,0,0,2,41,067,031621,1001,1,9999,99999,99999999,9,99999,99999999,293174,0,0,0,0,0,38900,01,999,99999,99999999,A,01155137,92678,S,01938124,440,9,99999,99999999,+45.5211617,-122.8445076,L,1,99999,99999,99999,9,Y,N,05350,A,02409808,06723,4,99999,99999,01920,034,017,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97006 +3095,3,000,30,1,0,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3096,3,000,30,1,0,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3097,3,000,30,1,8,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3098,3,000,30,1,11,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3099,3,000,30,1,19,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3100,3,000,30,1,27,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3101,3,000,30,1,27,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3102,3,000,30,1,28,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3103,3,000,30,1,29,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3104,3,000,30,1,38,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +3105,3,000,20,1,66,1,01,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3106,3,000,20,1,68,2,01,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3107,3,000,20,1,68,2,03,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3108,3,000,20,2,28,2,06,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3109,3,000,20,2,28,2,06,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3110,3,000,20,2,28,2,06,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3111,3,000,20,2,28,2,06,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3112,3,000,20,2,28,2,06,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3113,3,000,20,2,29,1,01,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3114,3,000,20,2,29,1,01,2,1,0,0,2,06,099,000506,1008,1,9999,99999,99999999,9,99999,99999999,14734,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6921298,-121.0009270,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,38670,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95356 +3115,3,000,20,2,29,1,02,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3116,3,000,20,2,29,2,06,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3117,3,000,20,2,29,2,06,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3118,3,000,20,2,29,2,06,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3119,3,000,20,2,29,2,06,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3120,3,000,20,2,30,1,01,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3121,3,000,20,2,30,1,01,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3122,3,000,20,2,30,1,01,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3123,3,000,20,2,30,1,01,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3124,3,000,20,2,30,1,01,2,1,0,0,2,48,453,045700,2000,2,9999,99999,99999999,9,99999,99999999,397726,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.4413339,-097.6729000,L,1,99999,99999,99999,9,N,N,77196,S,02409542,05301,3,99999,99999,34830,050,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000215,78728 +3125,3,000,26,2,34,1,01,2,1,0,0,2,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3126,3,000,27,1,16,1,01,2,1,0,0,1,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3127,3,000,27,1,16,1,01,2,1,0,0,1,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3128,3,000,27,1,16,1,01,2,1,0,0,1,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3129,3,000,27,1,16,1,01,2,1,0,0,1,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3130,3,000,27,1,16,1,01,2,1,0,0,1,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3131,3,000,27,1,24,1,01,2,1,0,0,2,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3132,3,000,27,1,24,1,01,2,1,0,0,2,29,077,003701,3025,3,9999,99999,99999999,9,99999,99999999,45197,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1856972,-093.2103242,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3133,3,000,20,2,72,1,01,1,1,0,0,2,29,077,003701,3026,3,9999,99999,99999999,9,99999,99999999,25840,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1849346,-093.2073995,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3134,3,000,20,2,72,1,01,1,1,0,0,2,29,077,003701,3026,3,9999,99999,99999999,9,99999,99999999,25840,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,10908,N,00766675,999,4,99999,99999999,+37.1849346,-093.2073995,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,2,99999,99999,28860,136,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000012,65809 +3135,3,000,20,2,34,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3136,3,000,20,2,34,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3137,3,000,20,2,36,1,02,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3138,3,000,20,2,37,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3139,3,000,20,2,37,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3140,3,000,20,2,37,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3141,3,000,20,2,37,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3142,3,000,20,2,37,1,01,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3143,3,000,20,2,39,1,04,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3144,3,000,20,2,39,1,04,2,1,0,0,2,36,055,013206,2008,2,9999,99999,99999999,9,99999,99999999,313021,13010,0,0,13010,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0396610,-077.7088149,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000252,14586 +3145,3,000,20,1,63,1,01,1,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3146,3,000,20,1,63,1,01,1,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3147,3,000,20,1,63,1,01,1,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3148,3,000,20,1,77,1,01,1,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3149,3,000,20,2,59,1,01,1,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3150,3,000,20,2,84,1,01,1,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3151,3,000,20,1,22,1,01,2,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3152,3,000,20,1,22,1,01,2,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3153,3,000,20,1,55,1,01,2,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3154,3,000,20,1,75,1,01,2,1,0,0,2,38,105,953900,2028,2,9999,99999,99999999,9,99999,99999999,40607,0,0,0,0,0,48780,00,999,99999,99999999,A,01035306,86220,F,01036335,999,4,99999,99999999,+48.1625985,-103.6186517,L,2,99999,99999,99999,9,Y,N,86220,A,01036335,00100,2,99999,99999,19880,001,001,01779797,99999,99999999,9,999,99999,99999999,999999,95644,U,99999,U,000104,58801 +3155,3,000,21,2,83,1,04,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3156,3,000,22,1,29,2,06,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3157,3,000,22,1,29,2,06,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3158,3,000,25,1,27,2,06,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3159,3,000,25,1,27,2,06,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3160,3,000,25,1,27,2,11,2,2,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3161,3,000,25,1,27,2,11,2,2,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3162,3,000,25,1,53,1,01,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3163,3,000,25,2,0,2,06,2,1,0,0,1,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3164,3,000,25,2,19,2,02,2,1,0,0,2,06,071,006101,1022,1,9999,99999,99999999,9,99999,99999999,6341,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1516084,-117.2572531,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +3165,3,000,20,1,23,1,02,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3166,3,000,20,1,24,1,02,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3167,3,000,20,1,25,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3168,3,000,20,1,25,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3169,3,000,20,1,25,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3170,3,000,20,1,25,1,04,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3171,3,000,20,1,26,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3172,3,000,20,1,26,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3173,3,000,20,1,26,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3174,3,000,20,1,30,1,01,2,1,0,0,2,01,089,002502,2003,2,9999,99999,99999999,9,99999,99999999,3249779,28142,0,0,28142,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.6811556,-086.5888587,B,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,053,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000017,35802 +3175,3,000,25,1,18,2,06,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3176,3,000,25,1,20,1,01,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3177,3,000,25,1,20,1,01,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3178,3,000,25,1,20,1,01,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3179,3,000,25,1,21,1,07,2,2,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3180,3,000,25,1,22,1,04,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3181,3,000,25,1,23,1,01,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3182,3,000,25,1,24,1,04,2,1,0,0,2,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3183,3,000,25,2,1,1,02,2,1,0,0,1,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3184,3,000,25,2,2,1,04,2,1,0,0,1,25,003,900300,3001,3,9999,99999,99999999,9,99999,99999999,27421,0,0,0,0,0,38340,01,770,99999,99999999,N,00606928,53960,F,00619424,999,1,99999,99999999,+42.4735489,-073.2387402,L,1,99999,99999,76600,1,Y,Y,53960,A,00619424,00100,1,99999,99999,09630,066,004,00606926,99999,99999999,9,999,99999,99999999,999999,69778,U,99999,U,001496,01201 +3185,3,000,21,1,47,2,01,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3186,3,000,21,1,51,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3187,3,000,21,1,51,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3188,3,000,21,1,52,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3189,3,000,21,1,60,2,01,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3190,3,000,21,1,68,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3191,3,000,21,1,70,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3192,3,000,21,1,72,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3193,3,000,21,1,79,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3194,3,000,21,1,79,2,06,2,1,0,0,2,06,083,002304,2002,2,9999,99999,99999999,9,99999,99999999,38528,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9599016,-120.4429683,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +3195,3,000,20,2,43,1,01,2,1,0,0,2,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3196,3,000,20,2,51,2,06,2,1,0,0,2,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3197,3,000,20,2,60,1,02,2,1,0,0,2,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3198,3,000,20,2,60,1,02,2,1,0,0,2,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3199,3,000,20,2,60,1,02,2,1,0,0,2,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3200,3,000,22,2,26,2,06,2,1,0,0,2,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3201,3,000,25,1,6,1,01,2,1,0,0,1,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3202,3,000,25,1,8,1,01,2,1,0,0,1,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3203,3,000,25,1,8,1,01,2,1,0,0,1,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3204,3,000,25,1,8,1,01,2,1,0,0,1,13,205,090402,3042,3,9999,99999,99999999,9,99999,99999999,52203,0,0,0,0,0,99999,02,999,99999,99999999,A,00343645,90522,S,01936154,999,5,99999,99999999,+31.2206202,-084.2095995,L,9,99999,99999,99999,9,N,N,12624,A,02403979,03900,3,99999,99999,03690,171,012,01705317,99999,99999999,9,999,99999,99999999,999999,13132,U,99999,U,0000CS,31730 +3205,3,000,20,1,36,1,02,2,1,0,0,2,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3206,3,000,20,1,36,1,02,2,1,0,0,2,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3207,3,000,25,1,4,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3208,3,000,25,1,9,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3209,3,000,25,1,15,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3210,3,000,25,2,1,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3211,3,000,25,2,1,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3212,3,000,25,2,2,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3213,3,000,25,2,2,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3214,3,000,25,2,2,1,02,2,1,0,0,1,26,163,500600,3026,3,9999,99999,99999999,9,99999,99999999,18080,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4301952,-082.9738762,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,001,002,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163407,48205 +3215,3,000,20,1,68,1,01,1,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3216,3,000,20,1,68,1,01,1,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3217,3,000,20,1,68,1,01,1,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3218,3,000,20,2,79,1,01,1,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3219,3,000,21,2,29,1,01,2,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3220,3,000,21,2,45,1,01,2,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3221,3,000,21,2,61,1,01,2,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3222,3,000,21,2,61,1,01,2,1,0,0,2,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3223,3,000,25,1,13,1,01,2,1,0,0,1,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3224,3,000,25,1,13,1,01,2,1,0,0,1,54,083,966100,2017,2,9999,99999,99999999,9,99999,99999999,8461,0,0,0,0,0,21180,02,999,99999,99999999,A,01550048,91824,N,01928300,999,5,99999,99999999,+38.9269417,-079.8434182,L,2,99999,99999,99999,9,Y,N,24580,A,02390585,00600,3,99999,99999,01260,043,011,01779805,99999,99999999,9,999,99999,99999999,999999,26875,U,99999,U,000025,26241 +3225,5,402,37,2,52,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3226,5,402,37,2,54,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3227,5,402,37,2,54,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3228,5,402,37,2,54,1,04,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3229,5,402,37,2,55,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3230,5,402,37,2,55,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3231,5,402,37,2,55,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3232,5,402,37,2,55,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3233,5,402,37,2,55,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3234,5,402,37,2,55,1,02,0,1,1,4,2,36,047,082800,2004,2,9999,99999,99999999,9,99999,99999999,10753,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6393705,-073.9488361,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04317,1,99999,99999,20580,042,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000170,11226 +3235,3,000,20,1,63,2,11,1,2,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3236,3,000,20,1,63,2,11,1,2,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3237,3,000,20,1,68,1,08,1,2,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3238,3,000,20,1,74,2,01,1,1,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3239,3,000,20,2,31,2,11,1,2,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3240,3,000,20,2,35,1,01,1,1,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3241,3,000,20,2,35,1,01,1,1,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3242,3,000,20,2,37,1,01,1,1,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3243,3,000,20,2,37,1,01,1,1,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3244,3,000,20,2,37,1,01,1,1,0,0,2,06,037,621326,3007,3,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,93100,S,01935315,348,9,99999,99999999,+33.8209175,-118.3868475,L,1,31084,99999,99999,9,N,N,60018,A,02411535,03760,4,99999,99999,00032,066,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90277 +3245,3,000,20,2,28,1,04,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3246,3,000,20,2,36,1,01,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3247,3,000,20,2,36,1,01,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3248,3,000,20,2,36,1,01,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3249,3,000,20,2,51,1,02,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3250,3,000,20,2,51,1,02,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3251,3,000,20,2,53,1,04,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3252,3,000,20,2,57,1,01,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3253,3,000,20,2,57,1,02,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3254,3,000,21,1,35,1,01,2,1,0,0,2,53,033,010401,2027,2,9999,99999,99999999,9,99999,99999999,29617,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.5504242,-122.2891363,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23313,4,99999,99999,07710,037,037,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,001620,98118 +3255,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3256,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3257,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3258,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3259,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3260,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3261,3,000,20,2,52,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3262,3,000,20,2,53,1,01,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3263,3,000,20,2,53,1,01,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3264,3,000,20,2,53,1,02,2,1,0,0,2,34,021,003706,1006,1,9999,99999,99999999,9,99999,99999999,417613,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2727974,-074.8390575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010024,08628 +3265,3,000,25,2,4,2,51,2,4,0,0,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3266,3,000,25,2,17,2,51,2,4,0,0,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3267,3,000,27,2,15,2,11,2,2,0,0,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3268,3,000,33,2,22,1,03,2,1,0,0,2,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3269,5,701,38,1,3,1,05,0,1,2,7,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3270,5,701,38,1,3,1,05,0,1,2,7,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3271,5,701,38,1,3,1,05,0,1,2,7,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3272,5,701,38,1,3,1,05,0,1,2,7,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3273,5,701,38,1,3,1,05,0,1,2,7,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3274,5,701,38,1,15,1,05,0,1,2,7,1,15,003,008502,1067,1,9999,99999,99999999,9,99999,99999999,260359,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3221471,-158.0697168,L,1,99999,99999,99999,9,N,N,24850,S,02627933,00308,4,99999,99999,00030,043,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96707 +3275,3,000,30,2,7,2,11,2,2,0,0,1,48,029,171601,3004,3,9999,99999,99999999,9,99999,99999999,185242,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4076095,-098.6172143,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3276,3,000,30,2,7,2,11,2,2,0,0,1,48,029,171601,3004,3,9999,99999,99999999,9,99999,99999999,185242,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4076095,-098.6172143,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3277,3,000,35,1,5,2,06,2,1,0,0,1,48,029,171601,3004,3,9999,99999,99999999,9,99999,99999999,185242,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4076095,-098.6172143,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3278,3,000,36,1,22,2,01,2,1,0,0,2,48,029,171601,3004,3,9999,99999,99999999,9,99999,99999999,185242,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4076095,-098.6172143,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3279,3,000,20,1,71,2,01,1,1,0,0,2,48,029,171601,3005,3,9999,99999,99999999,9,99999,99999999,39278,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4090323,-098.6191541,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3280,3,000,20,1,73,2,01,1,1,0,0,2,48,029,171601,3005,3,9999,99999,99999999,9,99999,99999999,39278,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4090323,-098.6191541,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3281,3,000,20,1,77,2,11,1,2,0,0,2,48,029,171601,3005,3,9999,99999,99999999,9,99999,99999999,39278,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4090323,-098.6191541,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3282,3,000,20,1,87,2,06,1,1,0,0,2,48,029,171601,3005,3,9999,99999,99999999,9,99999,99999999,39278,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4090323,-098.6191541,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3283,3,000,20,1,58,2,06,2,1,0,0,2,48,029,171601,3005,3,9999,99999,99999999,9,99999,99999999,39278,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4090323,-098.6191541,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3284,3,000,20,1,62,2,01,2,1,0,0,2,48,029,171601,3005,3,9999,99999,99999999,9,99999,99999999,39278,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4090323,-098.6191541,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002044,78227 +3285,3,000,21,2,51,1,04,2,1,0,0,2,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3286,3,000,21,2,64,1,04,2,1,0,0,2,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3287,3,000,21,2,68,1,11,2,2,0,0,2,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3288,3,000,25,1,8,2,06,2,1,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3289,3,000,25,2,3,2,04,2,1,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3290,3,000,25,2,7,2,06,2,1,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3291,3,000,25,2,7,2,06,2,1,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3292,3,000,25,2,8,1,01,2,1,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3293,3,000,25,2,8,2,28,2,3,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3294,3,000,25,2,11,2,01,2,1,0,0,1,48,439,113636,2011,2,9999,99999,99999999,9,99999,99999999,13832,0,0,0,0,0,19100,24,999,99999,99999999,A,01384005,92805,S,01939042,206,7,99999,99999999,+32.9116217,-097.1043652,L,1,23104,99999,99999,9,Y,N,30644,A,02410650,02501,3,99999,99999,21660,098,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003038,76051 +3295,3,000,25,1,22,1,01,2,1,0,0,2,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3296,3,000,25,1,22,1,01,2,1,0,0,2,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3297,3,000,25,1,22,1,01,2,1,0,0,2,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3298,3,000,25,2,0,2,04,2,1,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3299,3,000,25,2,6,1,07,2,2,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3300,3,000,25,2,11,2,11,2,2,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3301,3,000,27,1,13,1,01,2,1,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3302,3,000,27,1,15,1,01,2,1,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3303,3,000,30,1,1,2,02,2,1,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3304,3,000,30,1,1,2,02,2,1,0,0,1,17,043,841210,3007,3,9999,99999,99999999,9,99999,99999999,35636,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,06600,A,00428683,176,3,99999,99999999,+41.9141831,-088.1223495,L,1,16984,99999,99999,9,N,N,11332,A,02397559,04301,2,10470,16830,99999,042,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,002089,60188 +3305,3,000,20,2,45,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3306,3,000,20,2,46,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3307,3,000,20,2,46,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3308,3,000,20,2,46,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3309,3,000,20,2,47,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3310,3,000,20,2,47,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3311,3,000,20,2,47,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3312,3,000,20,2,47,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3313,3,000,20,2,47,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3314,3,000,20,2,47,1,02,2,1,0,0,2,12,011,041400,3000,3,9999,99999,99999999,9,99999,99999999,83845,0,0,0,0,0,33100,20,999,99999,99999999,A,00295753,91098,S,01935767,370,5,99999,99999999,+26.1252485,-080.1704595,L,1,22744,99999,99999,9,Y,N,24000,A,02403640,01108,3,99999,99999,00180,094,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00R062,33311 +3315,3,000,28,1,28,1,01,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3316,3,000,28,1,29,1,01,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3317,3,000,28,1,29,1,01,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3318,3,000,28,1,46,1,01,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3319,3,000,29,2,102,1,02,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3320,3,000,33,1,40,1,01,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3321,3,000,33,2,18,2,01,2,1,0,0,2,26,077,002003,4014,4,9999,99999,99999999,9,99999,99999999,17551,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2258978,-085.6424264,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3322,3,000,20,1,32,1,05,1,1,0,0,2,26,077,002003,4016,4,9999,99999,99999999,9,99999,99999999,73556,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2292478,-085.6463018,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3323,3,000,20,1,70,1,01,1,1,0,0,2,26,077,002003,4016,4,9999,99999,99999999,9,99999,99999999,73556,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2292478,-085.6463018,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3324,3,000,20,1,70,1,01,1,1,0,0,2,26,077,002003,4016,4,9999,99999,99999999,9,99999,99999999,73556,0,0,0,0,0,28020,06,999,99999,99999999,A,01622981,65560,F,01626926,310,3,99999,99999999,+42.2292478,-085.6463018,L,1,99999,99999,99999,9,Y,N,65560,A,01626926,02102,2,99999,99999,28950,061,020,01779789,99999,99999999,9,999,99999,99999999,999999,43723,U,99999,U,077087,49024 +3325,3,000,25,2,46,1,02,2,1,0,0,2,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3326,3,000,26,1,0,1,01,2,1,0,0,1,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3327,3,000,27,1,19,1,07,2,2,0,0,2,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3328,3,000,27,2,13,1,01,2,1,0,0,1,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3329,3,000,27,2,14,1,01,2,1,0,0,1,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3330,3,000,27,2,17,1,01,2,1,0,0,1,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3331,3,000,28,1,27,1,01,2,1,0,0,2,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3332,3,000,28,2,53,2,01,2,1,0,0,2,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3333,3,000,29,2,48,1,01,2,1,0,0,2,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3334,3,000,30,1,3,1,01,2,1,0,0,1,39,061,025700,1000,1,9999,99999,99999999,9,99999,99999999,78261,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,25186,F,01086207,178,3,99999,99999999,+39.1869077,-084.4837361,L,1,99999,99999,99999,9,N,N,25186,A,01086207,04706,2,99999,99999,04471,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BFJ,45216 +3335,3,000,21,2,47,2,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3336,3,000,21,2,48,2,11,2,2,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3337,3,000,21,2,48,2,11,2,2,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3338,3,000,21,2,49,1,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3339,3,000,21,2,49,1,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3340,3,000,21,2,49,1,11,2,2,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3341,3,000,21,2,49,2,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3342,3,000,21,2,52,1,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3343,3,000,21,2,52,1,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3344,3,000,21,2,52,1,01,2,1,0,0,2,17,031,802608,2008,2,9999,99999,99999999,9,99999,99999999,402506,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,81100,A,00429927,176,3,99999,99999999,+42.1049728,-087.9611505,L,1,16984,99999,99999,9,N,N,02154,A,02397986,03105,2,32850,04170,99999,053,027,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,960058,60004 +3345,3,000,21,2,41,2,06,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3346,3,000,21,2,41,2,06,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3347,3,000,21,2,45,1,02,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3348,3,000,21,2,47,1,08,2,2,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3349,3,000,21,2,47,1,08,2,2,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3350,3,000,21,2,48,1,01,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3351,3,000,21,2,48,1,01,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3352,3,000,21,2,48,1,01,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3353,3,000,21,2,48,1,01,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3354,3,000,21,2,48,1,01,2,1,0,0,2,47,093,004606,1002,1,9999,99999,99999999,9,99999,99999999,1363171,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,91044,N,02464549,315,6,99999,99999999,+35.9612389,-084.0868859,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,02220,089,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004828,37931 +3355,3,000,20,1,37,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3356,3,000,20,1,37,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3357,3,000,20,1,39,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3358,3,000,20,1,39,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3359,3,000,20,1,65,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3360,3,000,20,1,66,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3361,3,000,20,1,66,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3362,3,000,20,1,66,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3363,3,000,20,2,54,1,08,2,2,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3364,3,000,21,1,73,1,01,2,1,0,0,2,21,163,970301,2007,2,9999,99999,99999999,9,99999,99999999,296209,893,0,0,893,0,21060,02,999,99999,99999999,A,00516928,91248,S,01937001,350,6,99999,99999999,+37.9032669,-086.0949293,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,04050,027,005,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E103,40117 +3365,3,000,20,2,67,1,01,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3366,3,000,20,2,67,1,01,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3367,3,000,21,1,34,1,06,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3368,3,000,21,1,62,1,01,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3369,3,000,21,1,63,1,01,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3370,3,000,21,1,63,1,06,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3371,3,000,21,1,63,1,06,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3372,3,000,21,2,23,1,01,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3373,3,000,21,2,36,1,03,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3374,3,000,21,2,81,1,01,2,1,0,0,2,12,133,970302,2024,2,9999,99999,99999999,9,99999,99999999,23512,0,0,0,0,0,99999,02,999,99999,99999999,A,00295762,93497,S,01935961,999,5,99999,99999999,+30.5518270,-085.6407347,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05998,3,99999,99999,02010,005,002,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,32428 +3375,3,000,20,1,72,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3376,3,000,20,1,77,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3377,3,000,20,1,77,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3378,3,000,20,1,77,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3379,3,000,20,1,77,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3380,3,000,20,1,77,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3381,3,000,20,1,77,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3382,3,000,20,1,79,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3383,3,000,20,1,80,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3384,3,000,20,1,84,1,01,2,1,0,0,2,26,155,031401,2008,2,9999,99999,99999999,9,99999,99999999,2581503,0,0,0,0,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.9280499,-084.2519735,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27210,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +3385,3,000,22,2,51,1,01,2,1,0,0,2,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3386,3,000,25,1,2,1,08,2,2,0,0,1,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3387,3,000,25,1,14,1,08,2,2,0,0,1,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3388,3,000,25,1,22,1,01,2,1,0,0,2,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3389,3,000,25,1,22,1,01,2,1,0,0,2,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3390,3,000,25,1,22,1,01,2,1,0,0,2,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3391,3,000,25,2,7,1,15,2,2,0,0,1,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3392,3,000,31,1,78,1,01,2,1,0,0,2,55,081,950800,1066,1,9999,99999,99999999,9,99999,99999999,33217,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58575,F,01583832,999,3,99999,99999999,+43.8302751,-090.6201892,L,9,99999,99999,99999,9,N,N,58575,A,01583832,01800,2,99999,99999,10770,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004077,54648 +3393,3,000,20,1,27,1,01,1,1,0,0,2,55,081,950700,2035,2,9999,99999,99999999,9,99999,99999999,1813741,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58875,A,01583837,999,3,99999,99999999,+43.9825475,-090.4170900,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,14910,070,024,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004127,54660 +3394,3,000,20,1,30,1,01,2,1,0,0,2,55,081,950700,2035,2,9999,99999,99999999,9,99999,99999999,1813741,0,0,0,0,0,99999,03,999,99999,99999999,A,01581101,58875,A,01583837,999,3,99999,99999999,+43.9825475,-090.4170900,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,14910,070,024,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004127,54660 +3395,5,301,37,2,89,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3396,5,301,37,2,89,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3397,5,301,37,2,89,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3398,5,301,37,2,89,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3399,5,301,37,2,90,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3400,5,301,37,2,90,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3401,5,301,37,2,90,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3402,5,301,37,2,91,2,06,0,1,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3403,5,301,37,2,91,2,11,0,2,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3404,5,301,37,2,91,2,11,0,2,1,3,2,48,141,004006,1005,1,9999,99999,99999999,9,99999,99999999,2372600,0,0,0,0,0,21340,23,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.6905170,-106.2853326,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03309,3,99999,99999,46680,076,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000155,79927 +3405,3,000,25,2,36,2,01,2,1,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3406,3,000,25,2,38,2,01,2,1,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3407,3,000,25,2,40,2,06,2,1,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3408,3,000,25,2,41,2,01,2,1,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3409,3,000,25,2,41,2,01,2,1,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3410,3,000,25,2,49,2,11,2,2,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3411,3,000,25,2,49,2,11,2,2,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3412,3,000,25,2,53,2,11,2,2,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3413,3,000,27,1,12,1,01,2,1,0,0,1,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3414,3,000,27,1,19,2,06,2,1,0,0,2,12,086,013201,2002,2,9999,99999,99999999,9,99999,99999999,21959,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8863492,-080.3421558,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08607,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000384,33018 +3415,3,000,20,1,67,1,01,1,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3416,3,000,20,1,69,1,01,1,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3417,3,000,20,2,62,1,01,1,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3418,3,000,20,2,72,1,01,1,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3419,3,000,20,2,89,1,01,1,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3420,3,000,20,2,89,1,01,1,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3421,3,000,20,1,20,1,01,2,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3422,3,000,20,2,65,1,01,2,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3423,3,000,21,2,70,1,01,2,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3424,3,000,21,2,70,1,01,2,1,0,0,2,26,115,830700,2057,2,9999,99999,99999999,9,99999,99999999,1321102,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,53900,A,01626739,220,3,99999,99999999,+42.0142885,-083.7230492,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,12300,056,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115044,48131 +3425,3,000,25,2,3,1,04,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3426,3,000,25,2,4,1,04,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3427,3,000,25,2,4,1,04,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3428,3,000,25,2,8,1,01,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3429,3,000,25,2,8,1,01,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3430,3,000,25,2,11,1,01,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3431,3,000,25,2,11,1,01,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3432,3,000,25,2,11,1,01,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3433,3,000,25,2,12,2,22,2,3,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3434,3,000,25,2,14,1,01,2,1,0,0,1,36,067,016100,1013,1,9999,99999,99999999,9,99999,99999999,34329,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9928088,-076.1203488,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00703,1,99999,99999,09090,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000216,13078 +3435,3,000,20,2,74,1,01,1,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3436,3,000,20,1,27,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3437,3,000,20,1,35,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3438,3,000,20,1,35,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3439,3,000,20,1,37,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3440,3,000,20,1,37,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3441,3,000,20,1,39,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3442,3,000,20,1,39,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3443,3,000,20,1,62,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3444,3,000,20,1,62,1,01,2,1,0,0,2,36,093,032000,5006,5,9999,99999,99999999,9,99999,99999999,43070,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,51264,A,00979279,104,2,99999,99999999,+42.8047828,-073.8987129,L,1,99999,99999,99999,9,N,N,51262,S,02389554,01700,1,99999,99999,20880,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000031,12309 +3445,3,000,25,2,21,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3446,3,000,25,2,21,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3447,3,000,25,2,21,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3448,3,000,25,2,28,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3449,3,000,25,2,28,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3450,3,000,25,2,28,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3451,3,000,25,2,35,1,07,2,2,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3452,3,000,25,2,37,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3453,3,000,25,2,37,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3454,3,000,25,2,37,1,04,2,1,0,0,2,06,073,003114,1003,1,9999,99999,99999999,9,99999,99999999,79925,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6991495,-117.0369397,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92114 +3455,3,000,20,1,30,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3456,3,000,20,1,48,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3457,3,000,20,1,56,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3458,3,000,20,1,64,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3459,3,000,20,1,64,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3460,3,000,20,1,64,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3461,3,000,20,1,64,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3462,3,000,20,1,68,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3463,3,000,20,2,28,1,01,2,1,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3464,3,000,20,2,33,1,08,2,2,0,0,2,55,133,204301,2016,2,9999,99999,99999999,9,99999,99999999,30205,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,59250,F,01583847,376,3,99999,99999999,+43.1246829,-088.4896596,L,1,99999,99999,99999,9,N,N,59250,A,01583847,02501,2,99999,99999,10890,038,013,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006709,53066 +3465,3,000,20,1,61,1,01,1,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3466,3,000,20,2,63,1,01,1,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3467,3,000,21,1,53,1,01,2,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3468,3,000,21,2,35,1,01,2,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3469,3,000,21,2,38,1,01,2,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3470,3,000,21,2,38,1,01,2,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3471,3,000,21,2,58,1,01,2,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3472,3,000,21,2,58,1,01,2,1,0,0,2,27,151,960400,1039,1,9999,99999,99999999,9,99999,99999999,2513989,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187313,-095.9015636,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3473,3,000,20,1,32,1,01,2,1,0,0,2,27,151,960400,1040,1,9999,99999,99999999,9,99999,99999999,2492825,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187793,-095.9220753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3474,3,000,20,1,74,1,01,2,1,0,0,2,27,151,960400,1040,1,9999,99999,99999999,9,99999,99999999,2492825,0,0,0,0,0,99999,07,999,99999,99999999,A,00659520,44674,A,00665059,999,4,99999,99999999,+45.3187793,-095.9220753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00125,17A,017,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,56249 +3475,3,000,25,2,0,1,04,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3476,3,000,25,2,0,1,04,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3477,3,000,25,2,3,1,04,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3478,3,000,25,2,6,2,06,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3479,3,000,25,2,6,2,06,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3480,3,000,25,2,6,2,06,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3481,3,000,25,2,6,2,06,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3482,3,000,25,2,15,2,01,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3483,3,000,25,2,15,2,01,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3484,3,000,25,2,15,2,01,2,1,0,0,1,06,037,405202,3003,3,9999,99999,99999999,9,99999,99999999,46564,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0816966,-117.9590457,L,1,31084,99999,99999,9,N,N,03666,A,02409777,03710,4,99999,99999,03690,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91706 +3485,3,000,34,2,34,2,01,2,1,0,0,2,48,113,019900,1026,1,9999,99999,99999999,9,99999,99999999,19589,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7360530,-096.8828560,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3486,3,000,34,2,34,2,01,2,1,0,0,2,48,113,019900,1026,1,9999,99999,99999999,9,99999,99999999,19589,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7360530,-096.8828560,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3487,3,000,36,1,78,2,01,2,1,0,0,2,48,113,019900,1026,1,9999,99999,99999999,9,99999,99999999,19589,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7360530,-096.8828560,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3488,3,000,36,2,25,2,01,2,1,0,0,2,48,113,019900,1026,1,9999,99999,99999999,9,99999,99999999,19589,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7360530,-096.8828560,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3489,3,000,36,2,25,2,01,2,1,0,0,2,48,113,019900,1026,1,9999,99999,99999999,9,99999,99999999,19589,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7360530,-096.8828560,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3490,3,000,20,1,18,2,11,2,2,0,0,2,48,113,019900,1027,1,9999,99999,99999999,9,99999,99999999,9698,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7356953,-096.8813077,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3491,3,000,20,1,18,2,11,2,2,0,0,2,48,113,019900,1027,1,9999,99999,99999999,9,99999,99999999,9698,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7356953,-096.8813077,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3492,3,000,20,1,19,2,11,2,2,0,0,2,48,113,019900,1027,1,9999,99999,99999999,9,99999,99999999,9698,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7356953,-096.8813077,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3493,3,000,20,2,66,2,01,2,1,0,0,2,48,113,019900,1027,1,9999,99999,99999999,9,99999,99999999,9698,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7356953,-096.8813077,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3494,3,000,20,2,70,2,11,2,2,0,0,2,48,113,019900,1027,1,9999,99999,99999999,9,99999,99999999,9698,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7356953,-096.8813077,L,1,19124,99999,99999,9,N,N,15796,A,02409498,02315,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004300,75211 +3495,3,000,20,1,64,1,01,2,1,0,0,2,39,111,966900,3017,3,9999,99999,99999999,9,99999,99999999,1131575,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.7026961,-081.0789247,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3496,3,000,20,2,20,1,01,2,1,0,0,2,39,111,966900,3017,3,9999,99999,99999999,9,99999,99999999,1131575,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.7026961,-081.0789247,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3497,3,000,20,2,22,1,01,2,1,0,0,2,39,111,966900,3017,3,9999,99999,99999999,9,99999,99999999,1131575,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.7026961,-081.0789247,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3498,3,000,20,2,22,1,01,2,1,0,0,2,39,111,966900,3017,3,9999,99999,99999999,9,99999,99999999,1131575,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.7026961,-081.0789247,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3499,3,000,20,2,69,1,01,1,1,0,0,2,39,111,966900,3018,3,9999,99999,99999999,9,99999,99999999,747447,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.6979276,-081.0883903,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3500,3,000,20,2,69,1,01,1,1,0,0,2,39,111,966900,3018,3,9999,99999,99999999,9,99999,99999999,747447,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.6979276,-081.0883903,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3501,3,000,20,2,74,1,01,1,1,0,0,2,39,111,966900,3018,3,9999,99999,99999999,9,99999,99999999,747447,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.6979276,-081.0883903,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3502,3,000,20,2,74,1,01,1,1,0,0,2,39,111,966900,3018,3,9999,99999,99999999,9,99999,99999999,747447,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.6979276,-081.0883903,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3503,3,000,20,1,25,1,01,2,1,0,0,2,39,111,966900,3018,3,9999,99999,99999999,9,99999,99999999,747447,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.6979276,-081.0883903,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3504,3,000,20,1,75,1,01,2,1,0,0,2,39,111,966900,3018,3,9999,99999,99999999,9,99999,99999999,747447,0,0,0,0,0,99999,06,999,99999,99999999,A,01074068,12966,A,01086649,999,3,99999,99999999,+39.6979276,-081.0883903,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04865,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,056AAE,43793 +3505,3,000,25,1,21,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3506,3,000,25,1,23,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3507,3,000,25,1,23,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3508,3,000,25,1,23,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3509,3,000,25,1,23,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3510,3,000,25,1,23,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3511,3,000,25,1,23,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3512,3,000,25,1,23,2,03,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3513,3,000,25,1,26,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3514,3,000,25,1,26,1,04,2,1,0,0,2,06,037,408212,2035,2,9999,99999,99999999,9,99999,99999999,132321,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9880898,-117.8814955,L,1,31084,99999,99999,9,N,N,63218,S,02409220,03714,4,99999,99999,33750,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91748 +3515,3,000,20,1,60,1,01,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3516,3,000,20,1,61,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3517,3,000,20,1,66,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3518,3,000,20,1,66,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3519,3,000,20,1,66,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3520,3,000,20,1,66,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3521,3,000,20,1,70,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3522,3,000,20,1,70,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3523,3,000,20,1,70,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3524,3,000,20,1,70,1,04,2,1,0,0,2,06,085,504320,2001,2,9999,99999,99999999,9,99999,99999999,32374,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4011180,-121.8675486,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08518,4,04800,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95132 +3525,3,000,20,2,48,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3526,3,000,20,2,48,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3527,3,000,20,2,48,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3528,3,000,20,2,48,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3529,3,000,20,2,48,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3530,3,000,20,2,48,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3531,3,000,20,2,56,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3532,3,000,20,2,56,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3533,3,000,20,2,59,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3534,3,000,20,2,62,1,02,2,1,0,0,2,17,031,460400,1006,1,9999,99999,99999999,9,99999,99999999,10556,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.7504037,-087.5628685,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03168,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,007019,60617 +3535,3,000,25,2,0,1,04,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3536,3,000,25,2,3,2,06,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3537,3,000,25,2,8,2,06,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3538,3,000,25,2,11,1,04,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3539,3,000,25,2,11,1,04,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3540,3,000,25,2,11,1,04,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3541,3,000,25,2,11,1,04,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3542,3,000,26,2,20,2,11,2,2,0,0,2,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3543,3,000,27,1,11,1,01,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3544,3,000,27,1,11,1,01,2,1,0,0,1,42,091,200800,1006,1,9999,99999,99999999,9,99999,99999999,32892,0,0,0,0,0,37980,01,999,99999,99999999,A,01213680,33112,F,01215471,428,2,99999,99999999,+40.2850799,-075.2955902,L,1,33874,99999,99999,9,N,N,33112,A,01215471,03113,1,99999,99999,17280,053,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001040,19440 +3545,3,000,20,1,36,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3546,3,000,20,1,36,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3547,3,000,20,1,36,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3548,3,000,20,1,39,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3549,3,000,20,1,57,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3550,3,000,20,1,57,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3551,3,000,20,1,67,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3552,3,000,20,1,67,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3553,3,000,20,1,67,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3554,3,000,20,1,67,1,01,2,1,0,0,2,09,003,430302,2000,2,9999,99999,99999999,9,99999,99999999,122436,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,70550,A,00213508,278,1,99999,99999999,+41.5807243,-072.8621203,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20206,1,99999,99999,04230,081,016,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-139,06489 +3555,3,000,20,2,73,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3556,3,000,20,2,83,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3557,3,000,20,2,83,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3558,3,000,21,1,35,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3559,3,000,21,1,35,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3560,3,000,21,1,35,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3561,3,000,21,1,36,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3562,3,000,21,1,36,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3563,3,000,21,1,36,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3564,3,000,21,1,36,1,01,2,1,0,0,2,26,021,001400,1001,1,9999,99999,99999999,9,99999,99999999,98381,0,0,0,0,0,35660,06,999,99999,99999999,A,01622953,47600,A,01626619,515,3,99999,99999999,+42.0463746,-086.4873858,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,32850,079,021,01779789,99999,99999999,9,999,99999,99999999,999999,07138,U,99999,U,021032,49085 +3565,3,000,20,2,22,2,01,2,1,0,0,2,31,053,963600,3083,3,9999,99999,99999999,9,99999,99999999,8784,0,0,0,0,0,23340,01,999,99999,99999999,A,00835848,51910,A,00838321,420,4,99999,99999999,+41.7045377,-096.7909463,L,2,99999,99999,99999,9,N,N,45610,A,02399835,00701,2,99999,99999,00076,999,015,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001P,68664 +3566,3,000,25,1,7,1,01,2,1,0,0,1,31,053,963600,3083,3,9999,99999,99999999,9,99999,99999999,8784,0,0,0,0,0,23340,01,999,99999,99999999,A,00835848,51910,A,00838321,420,4,99999,99999999,+41.7045377,-096.7909463,L,2,99999,99999,99999,9,N,N,45610,A,02399835,00701,2,99999,99999,00076,999,015,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001P,68664 +3567,3,000,28,1,57,1,11,2,2,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3568,3,000,29,2,65,2,06,2,1,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3569,3,000,29,2,65,2,06,2,1,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3570,3,000,29,2,65,2,11,2,2,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3571,3,000,29,2,69,2,06,2,1,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3572,3,000,29,2,70,1,01,2,1,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3573,3,000,29,2,70,2,11,2,2,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3574,3,000,29,2,86,2,11,2,2,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3575,3,000,29,2,88,2,11,2,2,0,0,2,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3576,3,000,30,2,0,2,01,2,1,0,0,1,06,037,533803,4003,4,9999,99999,99999999,9,99999,99999999,9326,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9701886,-118.1843255,L,1,31084,99999,99999,9,N,N,04870,A,02409816,03741,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90201 +3577,3,000,25,2,30,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3578,3,000,25,2,30,1,04,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3579,3,000,25,2,31,1,04,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3580,3,000,25,2,32,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3581,3,000,25,2,33,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3582,3,000,28,1,36,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3583,3,000,28,1,36,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3584,3,000,28,1,36,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3585,3,000,28,1,38,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3586,3,000,28,1,43,1,01,2,1,0,0,2,06,095,252107,2005,2,9999,99999,99999999,9,99999,99999999,60186,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.0713705,-122.1576796,L,1,99999,99999,99999,9,N,N,05290,A,02409833,09501,4,99999,99999,04620,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94510 +3587,3,000,20,1,45,2,06,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3588,3,000,20,1,45,2,06,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3589,3,000,20,1,46,1,01,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3590,3,000,20,1,46,1,01,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3591,3,000,20,1,46,1,01,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3592,3,000,20,1,46,2,06,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3593,3,000,20,1,48,1,01,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3594,3,000,20,1,48,1,01,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3595,3,000,20,1,49,1,04,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3596,3,000,20,1,50,1,04,1,1,0,0,2,20,173,006500,4005,4,9999,99999,99999999,9,99999,99999999,76393,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6454849,-097.2874105,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01501,2,99999,99999,12990,081,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500830,67210 +3597,3,000,25,1,4,2,01,2,1,0,0,1,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3598,3,000,25,1,5,1,07,2,2,0,0,1,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3599,3,000,25,1,8,1,45,2,4,0,0,1,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3600,3,000,25,1,15,2,05,2,1,0,0,1,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3601,3,000,25,1,17,2,21,2,2,0,0,1,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3602,3,000,25,1,18,1,02,2,1,0,0,2,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3603,3,000,25,1,18,2,01,2,1,0,0,2,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3604,3,000,25,1,24,2,03,2,1,0,0,2,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3605,3,000,25,1,25,2,06,2,1,0,0,2,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3606,3,000,25,1,25,2,06,2,1,0,0,2,06,071,004700,2000,2,9999,99999,99999999,9,99999,99999999,53406,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1204502,-117.3076573,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92411 +3607,3,000,34,2,23,1,02,2,1,0,0,2,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3608,3,000,34,2,23,2,01,2,1,0,0,2,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3609,3,000,34,2,26,2,06,2,1,0,0,2,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3610,3,000,34,2,26,2,06,2,1,0,0,2,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3611,3,000,34,2,28,2,06,2,1,0,0,2,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3612,3,000,36,1,15,2,11,2,2,0,0,1,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3613,3,000,36,1,30,2,06,2,1,0,0,2,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3614,3,000,36,2,16,2,11,2,2,0,0,1,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3615,3,000,36,2,16,2,11,2,2,0,0,1,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3616,3,000,36,2,16,2,11,2,2,0,0,1,08,031,015600,2025,2,9999,99999,99999999,9,99999,99999999,84274,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6795912,-105.0227073,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01703,4,99999,99999,03360,001,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031109,80219 +3617,3,000,28,1,64,1,03,2,1,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3618,3,000,28,1,69,2,03,2,1,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3619,3,000,28,1,69,2,03,2,1,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3620,3,000,28,2,2,1,12,2,2,0,0,1,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3621,3,000,28,2,23,2,07,2,2,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3622,3,000,28,2,27,2,06,2,1,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3623,3,000,28,2,40,2,11,2,2,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3624,3,000,28,2,43,2,11,2,2,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3625,3,000,28,2,66,1,01,2,1,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3626,3,000,28,2,67,1,02,2,1,0,0,2,12,115,000407,3000,3,9999,99999,99999999,9,99999,99999999,402426,9412,0,0,9412,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3436677,-082.4998208,B,1,99999,99999,99999,9,Y,N,64175,A,02405423,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000020,34237 +3627,3,000,21,1,32,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3628,3,000,21,1,32,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3629,3,000,21,1,32,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3630,3,000,21,1,32,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3631,3,000,21,1,32,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3632,3,000,21,1,33,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3633,3,000,21,1,33,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3634,3,000,21,1,33,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3635,3,000,21,1,36,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3636,3,000,21,1,36,1,01,2,1,0,0,2,27,171,100803,2008,2,9999,99999,99999999,9,99999,99999999,55434,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.2172006,-093.6776997,L,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,33790,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000155,55376 +3637,3,000,25,1,8,2,28,2,3,0,0,1,06,065,050701,1058,1,9999,99999,99999999,9,99999,99999999,147627,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6064562,-117.1669636,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3638,3,000,25,1,14,2,04,2,1,0,0,1,06,065,050701,1058,1,9999,99999,99999999,9,99999,99999999,147627,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6064562,-117.1669636,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3639,3,000,25,2,3,2,04,2,1,0,0,1,06,065,050701,1058,1,9999,99999,99999999,9,99999,99999999,147627,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6064562,-117.1669636,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3640,3,000,26,1,10,1,01,2,1,0,0,1,06,065,050701,1058,1,9999,99999,99999999,9,99999,99999999,147627,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6064562,-117.1669636,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3641,3,000,20,1,32,1,02,1,1,0,0,2,06,065,050701,1061,1,9999,99999,99999999,9,99999,99999999,18386,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.5982973,-117.1638277,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3642,3,000,20,1,85,2,06,1,1,0,0,2,06,065,050701,1061,1,9999,99999,99999999,9,99999,99999999,18386,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.5982973,-117.1638277,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3643,3,000,20,1,25,2,01,2,1,0,0,2,06,065,050701,1061,1,9999,99999,99999999,9,99999,99999999,18386,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.5982973,-117.1638277,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3644,3,000,20,1,25,2,01,2,1,0,0,2,06,065,050701,1061,1,9999,99999,99999999,9,99999,99999999,18386,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.5982973,-117.1638277,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3645,3,000,20,1,27,2,01,2,1,0,0,2,06,065,050701,1061,1,9999,99999,99999999,9,99999,99999999,18386,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.5982973,-117.1638277,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3646,3,000,20,1,28,2,01,2,1,0,0,2,06,065,050701,1061,1,9999,99999,99999999,9,99999,99999999,18386,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.5982973,-117.1638277,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +3647,3,000,20,2,55,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3648,3,000,20,2,57,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3649,3,000,20,2,57,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3650,3,000,20,2,57,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3651,3,000,20,2,57,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3652,3,000,21,1,52,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3653,3,000,21,1,52,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3654,3,000,21,1,54,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3655,3,000,21,1,54,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3656,3,000,21,1,54,1,01,2,1,0,0,2,36,101,960300,3009,3,9999,99999,99999999,9,99999,99999999,155444,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,16738,A,00978846,236,2,99999,99999999,+42.5024899,-077.4955881,L,2,99999,99999,99999,9,N,N,16727,A,02391617,02404,1,99999,99999,00011,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,14826 +3657,3,000,25,2,10,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3658,3,000,25,2,10,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3659,3,000,25,2,13,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3660,3,000,25,2,13,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3661,3,000,25,2,13,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3662,3,000,25,2,13,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3663,3,000,25,2,13,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3664,3,000,25,2,14,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3665,3,000,25,2,14,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3666,3,000,25,2,14,1,01,2,1,0,0,1,42,029,303803,1002,1,9999,99999,99999999,9,99999,99999999,1432086,7697,0,0,7697,0,37980,06,999,99999,99999999,A,01209174,82544,A,01216186,428,2,99999,99999999,+39.9733636,-075.7038922,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03414,1,99999,99999,07710,158,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001440,19335 +3667,3,000,25,2,24,2,06,2,1,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3668,3,000,25,2,51,1,02,2,1,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3669,3,000,25,2,51,1,02,2,1,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3670,3,000,25,2,51,1,02,2,1,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3671,3,000,27,1,9,2,06,2,1,0,0,1,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3672,3,000,27,1,14,2,11,2,2,0,0,1,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3673,3,000,27,1,17,2,18,2,2,0,0,1,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3674,3,000,27,1,34,2,06,2,1,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3675,3,000,27,1,34,2,06,2,1,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3676,3,000,27,2,19,2,11,2,2,0,0,2,06,037,541500,1005,1,9999,99999,99999999,9,99999,99999999,30255,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,90560,S,01935060,348,9,99999,99999999,+33.9148469,-118.2249350,L,1,31084,99999,99999,9,N,N,85614,S,02409601,03757,4,99999,99999,09620,064,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90222 +3677,3,000,25,1,15,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3678,3,000,25,1,15,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3679,3,000,25,1,17,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3680,3,000,25,1,19,1,01,2,1,0,0,2,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3681,3,000,25,1,47,1,01,2,1,0,0,2,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3682,3,000,25,1,49,1,01,2,1,0,0,2,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3683,3,000,25,2,8,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3684,3,000,25,2,8,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3685,3,000,25,2,11,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3686,3,000,25,2,11,1,01,2,1,0,0,1,27,059,130501,3054,3,9999,99999,99999999,9,99999,99999999,2375487,26246,0,0,26246,0,33460,08,999,99999,99999999,A,00659475,62374,A,00665693,378,4,99999,99999999,+45.4355881,-093.3375994,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,33540,31A,031,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000075,55040 +3687,3,000,30,1,11,2,06,2,1,0,0,1,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3688,3,000,30,1,12,2,25,2,3,0,0,1,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3689,3,000,30,1,13,2,11,2,2,0,0,1,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3690,3,000,30,1,18,2,06,2,1,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3691,3,000,30,1,18,2,06,2,1,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3692,3,000,30,1,19,2,11,2,2,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3693,3,000,30,1,19,2,11,2,2,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3694,3,000,30,1,19,2,11,2,2,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3695,3,000,30,1,24,2,11,2,2,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3696,3,000,30,1,24,2,11,2,2,0,0,2,06,037,554801,1000,1,9999,99999,99999999,9,99999,99999999,77967,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8785724,-118.0759199,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +3697,3,000,21,1,34,1,01,2,1,0,0,2,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3698,3,000,21,1,44,1,01,2,1,0,0,2,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3699,3,000,22,1,55,1,01,2,1,0,0,2,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3700,3,000,25,1,1,1,01,2,1,0,0,1,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3701,3,000,25,2,0,1,01,2,1,0,0,1,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3702,3,000,36,1,12,1,01,2,1,0,0,1,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3703,3,000,36,1,12,1,01,2,1,0,0,1,20,125,950200,1019,1,9999,99999,99999999,9,99999,99999999,677426,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2853367,-095.5591414,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3704,3,000,21,1,62,1,01,2,1,0,0,2,20,125,950200,1027,1,9999,99999,99999999,9,99999,99999999,224439,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2780277,-095.5674593,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3705,3,000,21,1,89,1,01,2,1,0,0,2,20,125,950200,1027,1,9999,99999,99999999,9,99999,99999999,224439,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2780277,-095.5674593,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3706,3,000,20,1,81,1,01,2,1,0,0,2,20,125,950200,1028,1,9999,99999,99999999,9,99999,99999999,268621,0,0,0,0,0,17700,02,999,99999,99999999,A,00485027,12875,A,00469816,999,4,99999,99999999,+37.2785880,-095.5705771,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01101,2,99999,99999,04740,011,015,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000080,67335 +3707,3,000,27,2,13,2,11,2,2,0,0,1,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3708,3,000,27,2,16,1,08,2,2,0,0,1,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3709,3,000,27,2,17,2,03,2,1,0,0,1,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3710,3,000,27,2,17,2,03,2,1,0,0,1,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3711,3,000,27,2,41,1,07,2,2,0,0,2,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3712,3,000,29,1,62,1,03,2,1,0,0,2,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3713,3,000,29,2,38,2,06,2,1,0,0,2,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3714,3,000,29,2,54,2,11,2,2,0,0,2,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3715,3,000,29,2,58,1,01,2,1,0,0,2,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3716,3,000,30,1,9,2,06,2,1,0,0,1,08,041,004517,3000,3,9999,99999,99999999,9,99999,99999999,484454,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,91387,S,01935466,999,8,99999,99999999,+38.6780676,-104.6767034,L,1,99999,99999,99999,9,N,N,27865,A,02410535,02001,4,99999,99999,04080,021,002,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041804,80817 +3717,3,000,25,1,12,1,01,2,1,0,0,1,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3718,3,000,25,1,12,1,01,2,1,0,0,1,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3719,3,000,25,1,12,1,01,2,1,0,0,1,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3720,3,000,25,1,12,1,01,2,1,0,0,1,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3721,3,000,25,1,12,2,06,2,1,0,0,1,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3722,3,000,25,1,14,2,06,2,1,0,0,1,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3723,3,000,25,1,18,1,01,2,1,0,0,2,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3724,3,000,25,1,18,1,01,2,1,0,0,2,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3725,3,000,25,1,18,1,01,2,1,0,0,2,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3726,3,000,25,1,32,1,01,2,1,0,0,2,22,103,040709,1011,1,9999,99999,99999999,9,99999,99999999,52122,0,0,0,0,0,35380,01,999,99999,99999999,A,01629503,95335,N,01930250,406,7,99999,99999999,+30.2957427,-089.7239426,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02202,3,99999,99999,01650,076,001,01629543,99999,99999999,9,999,99999,99999999,999999,82468,U,99999,U,000812,70461 +3727,3,000,20,1,33,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3728,3,000,20,1,33,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3729,3,000,20,1,33,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3730,3,000,20,1,34,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3731,3,000,20,2,27,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3732,3,000,20,2,27,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3733,3,000,20,2,27,1,01,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3734,3,000,20,2,61,1,03,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3735,3,000,21,1,23,1,03,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3736,3,000,21,2,27,1,02,2,1,0,0,2,40,119,010202,1012,1,9999,99999,99999999,9,99999,99999999,49970,0,0,0,0,0,44660,03,999,99999,99999999,A,01101847,93237,S,01937879,999,7,99999,99999999,+36.1352326,-097.0683648,L,2,99999,99999,99999,9,Y,N,70300,A,02411982,21100,3,99999,99999,28680,034,021,01102857,99999,99999999,9,999,99999,99999999,999999,85033,U,99999,U,000010,74075 +3737,3,000,34,2,19,1,01,2,1,0,0,2,13,139,000902,1006,1,9999,99999,99999999,9,99999,99999999,247988,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3095818,-083.8414093,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3738,3,000,34,2,25,1,01,2,1,0,0,2,13,139,000902,1006,1,9999,99999,99999999,9,99999,99999999,247988,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3095818,-083.8414093,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3739,3,000,34,2,25,1,01,2,1,0,0,2,13,139,000902,1006,1,9999,99999,99999999,9,99999,99999999,247988,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3095818,-083.8414093,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3740,3,000,34,2,25,1,01,2,1,0,0,2,13,139,000902,1006,1,9999,99999,99999999,9,99999,99999999,247988,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3095818,-083.8414093,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3741,3,000,36,1,73,1,01,2,1,0,0,2,13,139,000902,1006,1,9999,99999,99999999,9,99999,99999999,247988,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3095818,-083.8414093,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3742,3,000,20,1,68,1,01,1,1,0,0,2,13,139,000902,1007,1,9999,99999,99999999,9,99999,99999999,383358,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3103334,-083.8459890,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3743,3,000,20,1,68,1,01,1,1,0,0,2,13,139,000902,1007,1,9999,99999,99999999,9,99999,99999999,383358,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3103334,-083.8459890,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3744,3,000,20,1,68,1,01,1,1,0,0,2,13,139,000902,1007,1,9999,99999,99999999,9,99999,99999999,383358,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3103334,-083.8459890,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3745,3,000,20,1,68,1,01,1,1,0,0,2,13,139,000902,1007,1,9999,99999,99999999,9,99999,99999999,383358,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3103334,-083.8459890,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3746,3,000,20,2,26,1,01,1,1,0,0,2,13,139,000902,1007,1,9999,99999,99999999,9,99999,99999999,383358,0,0,0,0,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.3103334,-083.8459890,L,1,99999,99999,99999,9,Y,N,31908,A,02403675,00602,3,99999,99999,02310,029,049,01705317,99999,99999999,9,999,99999,99999999,999999,32194,U,99999,U,000024,30501 +3747,3,000,21,2,48,1,01,2,1,0,0,2,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3748,3,000,21,2,49,1,01,2,1,0,0,2,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3749,3,000,21,2,49,1,01,2,1,0,0,2,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3750,3,000,21,2,49,1,01,2,1,0,0,2,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3751,3,000,22,1,84,1,01,2,1,0,0,2,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3752,3,000,25,1,3,1,01,2,1,0,0,1,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3753,3,000,25,1,13,1,01,2,1,0,0,1,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3754,3,000,25,1,13,1,01,2,1,0,0,1,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3755,3,000,25,1,13,1,01,2,1,0,0,1,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3756,3,000,25,1,13,1,01,2,1,0,0,1,39,023,002602,1000,1,9999,99999,99999999,9,99999,99999999,1918248,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,29862,A,01085851,212,3,99999,99999999,+40.0253653,-083.8735464,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04626,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,012ADQ,45502 +3757,3,000,25,1,12,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3758,3,000,25,1,13,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3759,3,000,25,1,14,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3760,3,000,25,1,14,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3761,3,000,25,1,14,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3762,3,000,25,1,14,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3763,3,000,25,1,14,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3764,3,000,25,1,15,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3765,3,000,25,1,15,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3766,3,000,25,1,15,1,01,2,1,0,0,1,06,059,042330,1000,1,9999,99999,99999999,9,99999,99999999,126478,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5314660,-117.6880460,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +3767,3,000,20,1,26,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3768,3,000,20,1,26,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3769,3,000,20,1,26,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3770,3,000,20,1,27,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3771,3,000,20,1,32,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3772,3,000,20,1,32,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3773,3,000,20,1,32,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3774,3,000,20,1,32,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3775,3,000,20,1,32,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3776,3,000,20,1,32,1,01,2,1,0,0,2,36,047,056301,1001,1,9999,99999,99999999,9,99999,99999999,11129,0,0,0,0,0,35620,12,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.7337036,-073.9590590,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04301,1,99999,99999,20580,050,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000747,11222 +3777,3,000,27,2,13,1,01,2,1,0,0,1,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3778,3,000,30,1,2,1,01,2,1,0,0,1,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3779,3,000,30,2,12,1,01,2,1,0,0,1,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3780,3,000,31,1,84,1,01,2,1,0,0,2,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3781,3,000,32,2,42,1,01,2,1,0,0,2,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3782,3,000,36,2,16,1,01,2,1,0,0,1,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3783,3,000,36,2,32,1,01,2,1,0,0,2,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3784,3,000,36,2,34,1,01,2,1,0,0,2,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3785,3,000,36,2,34,1,01,2,1,0,0,2,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3786,3,000,36,2,54,1,01,2,1,0,0,2,39,165,031100,2021,2,9999,99999,99999999,9,99999,99999999,986967,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,81690,A,01087122,178,3,99999,99999999,+39.4043685,-084.0166388,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,04639,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083AEL,45113 +3787,3,000,21,2,34,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3788,3,000,21,2,35,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3789,3,000,22,1,23,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3790,3,000,22,1,23,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3791,3,000,22,1,23,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3792,3,000,22,1,23,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3793,3,000,22,1,24,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3794,3,000,22,1,24,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3795,3,000,22,1,24,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3796,3,000,22,1,24,1,01,2,1,0,0,2,19,103,010305,1010,1,9999,99999,99999999,9,99999,99999999,33372,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92766,G,00468322,168,4,99999,99999999,+41.7463729,-091.6342976,L,1,99999,99999,99999,9,N,N,57360,A,02395256,01100,2,99999,99999,07590,077,039,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103015,52317 +3797,3,000,34,2,35,1,01,2,1,0,0,2,48,439,114113,1020,1,9999,99999,99999999,9,99999,99999999,27256,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9870132,-097.3811003,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3798,3,000,34,2,37,1,01,2,1,0,0,2,48,439,114113,1020,1,9999,99999,99999999,9,99999,99999999,27256,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9870132,-097.3811003,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3799,3,000,20,1,31,1,04,1,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3800,3,000,20,1,29,1,02,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3801,3,000,20,1,31,2,03,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3802,3,000,20,1,40,1,02,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3803,3,000,20,1,50,1,01,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3804,3,000,20,1,50,1,01,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3805,3,000,20,1,50,1,01,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3806,3,000,20,1,50,1,01,2,1,0,0,2,48,439,114113,1021,1,9999,99999,99999999,9,99999,99999999,26756,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.9860005,-097.3823795,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,33180,093,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003700,76052 +3807,3,000,20,2,54,1,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3808,3,000,20,2,54,1,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3809,3,000,20,2,54,1,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3810,3,000,20,2,63,2,11,2,2,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3811,3,000,21,1,30,2,11,2,2,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3812,3,000,21,1,43,2,11,2,2,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3813,3,000,21,1,52,2,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3814,3,000,21,1,61,1,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3815,3,000,21,1,61,1,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3816,3,000,21,1,61,1,01,2,1,0,0,2,53,053,071209,1010,1,9999,99999,99999999,9,99999,99999999,19041,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1659705,-122.2650289,L,1,45104,99999,99999,9,N,N,56695,A,02411504,25305,4,99999,99999,06960,025,025,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,56695,U,025217,98374 +3817,3,000,20,2,28,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3818,3,000,20,2,28,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3819,3,000,20,2,28,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3820,3,000,20,2,28,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3821,3,000,20,2,28,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3822,3,000,20,2,28,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3823,3,000,20,2,36,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3824,3,000,20,2,36,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3825,3,000,20,2,36,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3826,3,000,20,2,36,1,01,2,1,0,0,2,37,129,011701,1013,1,9999,99999,99999999,9,99999,99999999,101414,7569,0,0,7569,0,48900,07,999,99999,99999999,A,01026329,94044,N,01026996,999,5,99999,99999999,+34.2481136,-077.8518476,B,1,99999,99999,99999,9,Y,N,74440,A,02405754,04701,3,99999,99999,03330,020,009,01027616,99999,99999999,9,999,99999,99999999,999999,95833,U,99999,U,000H05,28405 +3827,3,000,22,1,41,1,02,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3828,3,000,22,1,46,1,08,2,2,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3829,3,000,22,1,52,1,02,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3830,3,000,22,1,53,1,02,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3831,3,000,22,2,21,1,01,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3832,3,000,22,2,24,1,01,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3833,3,000,22,2,26,1,01,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3834,3,000,22,2,26,1,01,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3835,3,000,22,2,26,1,01,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3836,3,000,22,2,32,1,04,2,1,0,0,2,18,127,050506,2010,2,9999,99999,99999999,9,99999,99999999,1258730,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,61110,A,00453758,176,3,99999,99999999,+41.5540662,-087.1730483,L,1,23844,99999,99999,9,N,N,61092,A,02396254,00200,2,99999,99999,09150,010,004,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000750,46368 +3837,3,000,20,2,71,1,01,1,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3838,3,000,20,2,71,1,01,1,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3839,3,000,20,2,71,1,01,1,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3840,3,000,20,2,71,1,01,1,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3841,3,000,20,2,72,1,01,1,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3842,3,000,20,2,72,1,01,1,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3843,3,000,20,1,39,1,01,2,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3844,3,000,20,1,39,1,01,2,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3845,3,000,20,1,39,1,01,2,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3846,3,000,20,1,49,1,01,2,1,0,0,2,53,005,010818,2000,2,9999,99999,99999999,9,99999,99999999,156542,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2519848,-119.3174743,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20502,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006284,99352 +3847,3,000,21,1,74,2,01,2,1,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3848,3,000,21,1,74,2,01,2,1,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3849,3,000,21,2,55,1,01,2,1,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3850,3,000,21,2,60,2,11,2,2,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3851,3,000,21,2,60,2,11,2,2,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3852,3,000,21,2,60,2,11,2,2,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3853,3,000,21,2,60,2,11,2,2,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3854,3,000,21,2,65,1,01,2,1,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3855,3,000,21,2,72,1,01,2,1,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3856,3,000,21,2,72,1,01,2,1,0,0,2,06,053,010506,1010,1,9999,99999,99999999,9,99999,99999999,78671,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92730,S,01935278,999,9,99999,99999999,+36.7192136,-121.6535343,L,1,99999,99999,99999,9,Y,N,64224,A,02411768,05302,4,35790,33980,99999,030,012,01779778,99999,99999999,9,999,99999,99999999,999999,78310,U,99999,U,,93906 +3857,3,000,25,2,27,1,02,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3858,3,000,25,2,27,1,02,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3859,3,000,25,2,27,1,07,2,2,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3860,3,000,25,2,27,1,15,2,2,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3861,3,000,25,2,29,1,02,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3862,3,000,25,2,29,2,11,2,2,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3863,3,000,25,2,31,1,01,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3864,3,000,25,2,31,1,01,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3865,3,000,25,2,31,1,02,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3866,3,000,25,2,31,1,02,2,1,0,0,2,25,025,130404,1005,1,9999,99999,99999999,9,99999,99999999,330824,11120,0,0,11120,0,14460,08,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2665157,-071.1559219,B,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,193,030,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002003,02132 +3867,3,000,20,2,67,1,01,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3868,3,000,21,1,23,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3869,3,000,21,1,62,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3870,3,000,21,1,70,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3871,3,000,21,2,75,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3872,3,000,21,2,78,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3873,3,000,21,2,79,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3874,3,000,25,1,3,1,02,2,1,0,0,1,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3875,3,000,25,1,8,2,01,2,1,0,0,1,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3876,3,000,25,1,30,1,02,2,1,0,0,2,12,083,001401,4019,4,9999,99999,99999999,9,99999,99999999,16142,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2160137,-082.1328452,L,1,99999,99999,99999,9,Y,N,50750,A,02404415,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000011,34470 +3877,3,000,20,1,48,1,02,1,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3878,3,000,20,2,55,1,08,1,2,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3879,3,000,20,2,55,1,08,1,2,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3880,3,000,20,2,68,1,02,1,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3881,3,000,20,2,68,1,02,1,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3882,3,000,21,2,54,1,01,2,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3883,3,000,21,2,57,1,01,2,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3884,3,000,21,2,57,1,01,2,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3885,3,000,21,2,59,1,01,2,1,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3886,3,000,22,1,64,1,07,2,2,0,0,2,29,155,470300,3023,3,9999,99999,99999999,9,99999,99999999,11405,0,0,0,0,0,99999,08,999,99999,99999999,A,00758532,43382,N,00767146,999,4,99999,99999999,+36.1865932,-089.6688287,L,9,99999,99999,99999,9,N,N,11692,A,02393761,02400,2,99999,99999,07470,150,025,01779791,99999,99999999,9,999,99999,99999999,999999,14374,U,99999,U,000005,63830 +3887,3,000,21,2,51,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3888,3,000,21,2,51,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3889,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3890,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3891,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3892,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3893,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3894,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3895,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3896,3,000,21,2,52,2,11,2,2,0,0,2,12,086,017300,3000,3,9999,99999,99999999,9,99999,99999999,313230,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.6890010,-080.4126028,L,1,33124,99999,99999,9,N,N,36062,S,02403167,08619,3,99999,99999,00390,118,040,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000770,33183 +3897,3,000,20,1,49,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3898,3,000,20,1,65,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3899,3,000,20,1,66,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3900,3,000,20,1,66,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3901,3,000,20,1,66,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3902,3,000,20,1,66,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3903,3,000,20,2,28,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3904,3,000,20,2,28,1,01,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3905,3,000,20,2,36,1,06,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3906,3,000,20,2,38,1,06,2,1,0,0,2,21,001,970500,2004,2,9999,99999,99999999,9,99999,99999999,669785,1235,0,0,1235,0,99999,01,999,99999,99999999,A,00516847,91432,S,01937024,999,6,99999,99999999,+37.0466158,-085.3756301,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D103,42728 +3907,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3908,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3909,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3910,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3911,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3912,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3913,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3914,3,000,25,2,6,1,04,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3915,3,000,25,2,9,1,01,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3916,3,000,25,2,9,1,01,2,1,0,0,1,34,035,054201,1000,1,9999,99999,99999999,9,99999,99999999,1600791,0,0,0,0,0,35620,07,999,99999,99999999,A,00882234,47580,A,00882168,408,2,99999,99999999,+40.4009213,-074.7207523,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01002,1,99999,99999,10590,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,065016,08558 +3917,3,000,25,2,5,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3918,3,000,25,2,5,2,11,2,2,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3919,3,000,25,2,8,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3920,3,000,25,2,8,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3921,3,000,25,2,8,2,11,2,2,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3922,3,000,25,2,8,2,11,2,2,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3923,3,000,25,2,9,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3924,3,000,25,2,9,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3925,3,000,25,2,12,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3926,3,000,25,2,12,1,01,2,1,0,0,1,26,163,591900,1004,1,9999,99999,99999999,9,99999,99999999,211093,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,11220,A,01625993,220,3,99999,99999999,+42.1086068,-083.2227945,L,1,19804,99999,99999,9,9,9,99999,9,99999999,03206,2,99999,99999,15870,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163023,48183 +3927,3,000,21,2,77,1,01,2,1,0,0,2,18,045,958000,2049,2,9999,99999,99999999,9,99999,99999999,1006835,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0503886,-087.3289156,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3928,3,000,21,2,78,1,01,2,1,0,0,2,18,045,958000,2049,2,9999,99999,99999999,9,99999,99999999,1006835,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0503886,-087.3289156,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3929,3,000,22,1,53,1,01,2,1,0,0,2,18,045,958000,2049,2,9999,99999,99999999,9,99999,99999999,1006835,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0503886,-087.3289156,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3930,3,000,21,1,50,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3931,3,000,21,2,55,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3932,3,000,21,2,57,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3933,3,000,21,2,68,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3934,3,000,21,2,69,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3935,3,000,21,2,69,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3936,3,000,21,2,69,1,01,2,1,0,0,2,18,045,958000,2050,2,9999,99999,99999999,9,99999,99999999,1823879,0,0,0,0,0,99999,04,999,99999,99999999,A,00450351,79280,A,00453963,999,3,99999,99999999,+40.0541759,-087.3151922,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000180,47987 +3937,3,000,21,2,53,1,02,2,1,0,0,2,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3938,3,000,21,2,54,1,02,2,1,0,0,2,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3939,3,000,21,2,54,1,02,2,1,0,0,2,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3940,3,000,21,2,54,1,02,2,1,0,0,2,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3941,3,000,25,1,3,1,01,2,1,0,0,1,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3942,3,000,25,1,9,1,02,2,1,0,0,1,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3943,3,000,25,1,9,1,02,2,1,0,0,1,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3944,3,000,25,1,9,1,02,2,1,0,0,1,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3945,3,000,25,1,9,1,02,2,1,0,0,1,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3946,3,000,25,1,15,1,02,2,1,0,0,1,51,620,090200,3003,3,9999,99999,99999999,9,99999,99999999,19760,0,0,0,0,0,47260,03,999,99999,99999999,F,01498424,93643,F,01498424,545,5,99999,99999999,+36.6679897,-076.9241590,L,1,99999,99999,99999,9,N,N,29600,A,01498424,80000,3,99999,99999,01410,075,018,01779803,99999,99999999,9,999,99999,99999999,999999,31438,U,99999,U,000401,23851 +3947,3,000,34,1,28,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3948,3,000,34,1,28,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3949,3,000,34,1,28,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3950,3,000,34,1,28,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3951,3,000,34,2,4,2,06,2,1,0,0,1,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3952,3,000,34,2,20,1,09,2,2,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3953,3,000,34,2,21,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3954,3,000,34,2,22,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3955,3,000,34,2,22,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3956,3,000,34,2,22,1,01,2,1,0,0,2,06,007,000502,3005,3,9999,99999,99999999,9,99999,99999999,11460,0,0,0,0,0,17020,01,999,99999,99999999,A,01675842,90470,S,01935051,999,9,99999,99999999,+39.7280032,-121.8567245,L,1,99999,99999,99999,9,Y,N,13014,A,02409447,00700,4,99999,99999,08370,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,16318,U,99999,U,,95926 +3957,3,000,20,1,53,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3958,3,000,20,1,53,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3959,3,000,20,1,53,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3960,3,000,20,1,53,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3961,3,000,20,1,72,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3962,3,000,20,1,72,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3963,3,000,20,1,74,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3964,3,000,20,1,74,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3965,3,000,20,1,74,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3966,3,000,21,1,50,1,01,2,1,0,0,2,28,119,950300,1020,1,9999,99999,99999999,9,99999,99999999,100085,0,0,0,0,0,99999,02,999,99999,99999999,A,00695780,92016,N,00712048,999,6,99999,99999999,+34.2571676,-090.2625307,L,9,99999,99999,99999,9,N,N,45240,A,02405026,00300,3,99999,99999,03810,009,011,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000301,38646 +3967,3,000,20,1,48,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3968,3,000,20,1,48,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3969,3,000,20,1,49,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3970,3,000,20,1,50,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3971,3,000,20,1,50,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3972,3,000,20,1,53,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3973,3,000,20,1,53,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3974,3,000,20,1,53,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3975,3,000,20,1,53,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3976,3,000,20,1,53,1,01,2,1,0,0,2,55,133,204004,4004,4,9999,99999,99999999,9,99999,99999999,8760308,7407,0,0,7407,0,33340,01,999,99999,99999999,A,01581126,60700,A,01583880,376,3,99999,99999999,+42.9549777,-088.4558944,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,2,99999,99999,03510,099,033,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006667,53118 +3977,3,000,25,2,23,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3978,3,000,25,2,23,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3979,3,000,25,2,25,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3980,3,000,25,2,25,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3981,3,000,25,2,27,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3982,3,000,25,2,27,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3983,3,000,25,2,27,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3984,3,000,25,2,28,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3985,3,000,30,2,8,1,01,2,1,0,0,1,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3986,3,000,34,2,67,1,01,2,1,0,0,2,39,153,531601,3011,3,9999,99999,99999999,9,99999,99999999,367569,0,0,0,0,0,10420,16,999,99999,99999999,A,01074088,54562,F,02395193,184,3,99999,99999999,+40.9570162,-081.5484436,L,1,99999,99999,99999,9,N,N,54562,A,02395193,01204,2,99999,99999,05000,038,027,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077BBM,44319 +3987,3,000,20,1,56,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3988,3,000,20,1,56,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3989,3,000,20,1,56,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3990,3,000,20,1,56,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3991,3,000,20,1,57,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3992,3,000,20,1,58,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3993,3,000,20,1,59,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3994,3,000,20,1,59,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3995,3,000,20,1,59,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3996,3,000,20,1,62,1,01,2,1,0,0,2,53,015,001900,1005,1,9999,99999,99999999,9,99999,99999999,6621035,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,90464,S,01939466,440,9,99999,99999999,+46.1891878,-123.0713314,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,98632 +3997,3,000,20,2,57,1,01,1,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +3998,3,000,20,1,32,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +3999,3,000,20,1,68,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4000,3,000,20,1,68,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4001,3,000,20,1,75,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4002,3,000,20,1,79,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4003,3,000,20,2,52,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4004,3,000,20,2,54,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4005,3,000,20,2,54,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4006,3,000,21,1,30,1,01,2,1,0,0,2,42,133,020722,1022,1,9999,99999,99999999,9,99999,99999999,13499,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19704,A,01217284,276,2,99999,99999999,+39.9866271,-076.8106835,L,1,99999,99999,99999,9,N,N,82008,S,02390462,03602,1,99999,99999,07680,196,031,01779798,99999,99999999,9,999,99999,99999999,999999,97750,U,99999,U,000175,17408 +4007,3,000,20,2,85,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4008,3,000,20,2,88,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4009,3,000,20,2,88,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4010,3,000,20,2,88,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4011,3,000,20,2,92,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4012,3,000,20,2,94,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4013,3,000,20,2,94,1,01,1,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4014,3,000,20,1,38,1,01,2,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4015,3,000,20,1,53,1,01,2,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4016,3,000,20,1,53,1,01,2,1,0,0,2,01,003,010500,2025,2,9999,99999,99999999,9,99999,99999999,604302,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,90207,S,00161594,380,6,99999,99999999,+30.8911580,-087.7864241,L,1,99999,99999,99999,9,N,N,04660,A,02403825,02701,3,99999,99999,00270,064,022,01779775,99999,99999999,9,999,99999,99999999,999999,05923,U,99999,U,000015,36507 +4017,3,000,21,2,72,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4018,3,000,21,2,72,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4019,3,000,21,2,72,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4020,3,000,21,2,74,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4021,3,000,21,2,74,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4022,3,000,21,2,74,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4023,3,000,21,2,87,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4024,3,000,22,1,31,1,01,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4025,3,000,22,2,26,1,02,2,1,0,0,2,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4026,3,000,25,1,5,2,01,2,1,0,0,1,39,023,002403,3003,3,9999,99999,99999999,9,99999,99999999,30016,0,0,0,0,0,44220,08,999,99999,99999999,A,01074024,74118,F,01085859,212,3,99999,99999999,+39.9656975,-083.7754704,L,1,99999,99999,99999,9,Y,N,74118,A,01085859,02400,2,99999,99999,04481,079,010,01085497,99999,99999999,9,999,99999,99999999,999999,83980,U,99999,U,012ACB,45503 +4027,3,000,21,1,31,1,01,2,1,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4028,3,000,21,1,36,1,04,2,1,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4029,3,000,21,1,36,1,04,2,1,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4030,3,000,21,1,38,1,07,2,2,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4031,3,000,21,1,51,1,11,2,2,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4032,3,000,21,1,51,1,11,2,2,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4033,3,000,21,1,53,2,01,2,1,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4034,3,000,21,1,60,1,01,2,1,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4035,3,000,21,1,62,1,07,2,2,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4036,3,000,21,1,64,1,03,2,1,0,0,2,53,061,052706,4004,4,9999,99999,99999999,9,99999,99999999,8165,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91936,S,01939559,500,9,99999,99999999,+48.0189877,-122.1161897,L,1,42644,99999,99999,9,N,N,37900,A,02411607,26102,4,99999,99999,04200,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,55333,U,37995,U,001675,98258 +4037,3,000,20,1,56,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4038,3,000,20,1,56,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4039,3,000,20,1,57,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4040,3,000,20,1,57,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4041,3,000,20,1,61,2,06,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4042,3,000,20,1,65,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4043,3,000,20,1,65,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4044,3,000,20,1,65,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4045,3,000,20,1,65,1,01,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4046,3,000,20,1,65,2,06,1,1,0,0,2,25,013,801200,3011,3,9999,99999,99999999,9,99999,99999999,14907,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,67000,F,00619388,999,1,99999,99999999,+42.1054395,-072.5877691,L,1,99999,99999,78100,1,Y,Y,67000,A,00619388,00402,1,99999,99999,11130,111,003,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,001743,01105 +4047,3,000,20,1,37,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4048,3,000,20,1,37,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4049,3,000,20,1,44,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4050,3,000,22,1,31,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4051,3,000,22,1,33,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4052,3,000,25,2,32,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4053,3,000,25,2,32,1,01,2,1,0,0,2,29,159,480300,2058,2,9999,99999,99999999,9,99999,99999999,26395,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6178112,-093.4113329,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4054,3,000,20,1,26,1,01,2,1,0,0,2,29,159,480300,2061,2,9999,99999,99999999,9,99999,99999999,6754,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6159827,-093.4134156,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4055,3,000,20,1,77,1,01,2,1,0,0,2,29,159,480300,2061,2,9999,99999,99999999,9,99999,99999999,6754,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6159827,-093.4134156,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4056,3,000,21,1,34,1,01,2,1,0,0,2,29,159,480300,2061,2,9999,99999,99999999,9,99999,99999999,6754,0,0,0,0,0,42740,04,999,99999,99999999,A,00758534,29350,N,00767165,999,4,99999,99999999,+38.6159827,-093.4134156,L,2,99999,99999,99999,9,N,N,29332,A,02394978,00700,2,99999,99999,13290,054,028,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000027,65332 +4057,5,101,37,1,38,2,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4058,5,101,37,1,38,2,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4059,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4060,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4061,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4062,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4063,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4064,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4065,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4066,5,101,37,1,39,1,01,0,1,1,1,2,48,355,005900,3072,3,9999,99999,99999999,9,99999,99999999,2590896,0,0,0,0,0,18580,27,999,99999,99999999,A,01383963,90315,S,01938538,204,7,99999,99999999,+27.7179545,-097.7418008,L,1,99999,99999,99999,9,N,N,41422,S,02408508,06601,3,99999,99999,37440,034,020,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,78380 +4067,3,000,20,1,43,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4068,3,000,20,1,43,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4069,3,000,20,1,43,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4070,3,000,20,1,44,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4071,3,000,20,1,44,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4072,3,000,20,1,44,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4073,3,000,20,1,44,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4074,3,000,20,1,44,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4075,3,000,20,1,44,2,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4076,3,000,20,1,45,1,01,1,1,0,0,2,13,077,170307,2025,2,9999,99999,99999999,9,99999,99999999,1390695,19526,0,0,19526,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.3796723,-084.7712040,B,1,99999,99999,99999,9,N,N,55020,A,02404371,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000028,30263 +4077,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4078,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4079,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4080,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4081,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4082,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4083,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4084,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4085,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4086,3,000,20,2,21,1,01,2,1,0,0,2,53,073,001204,2003,2,9999,99999,99999999,9,99999,99999999,54241,0,0,0,0,0,13380,02,999,99999,99999999,A,01529224,90176,S,01939449,999,9,99999,99999999,+48.7309903,-122.4755749,L,1,99999,99999,99999,9,Y,N,05280,A,02409823,27302,4,99999,99999,00420,040,040,01779804,99999,99999999,9,999,99999,99999999,999999,06652,U,05280,U,000253,98225 +4087,3,000,21,1,57,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4088,3,000,21,1,59,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4089,3,000,21,1,76,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4090,3,000,21,1,76,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4091,3,000,21,1,80,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4092,3,000,21,2,82,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4093,3,000,21,2,82,1,01,2,1,0,0,2,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4094,3,000,25,1,16,1,01,2,1,0,0,1,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4095,3,000,25,1,16,1,01,2,1,0,0,1,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4096,3,000,25,1,17,1,01,2,1,0,0,1,12,115,001205,1006,1,9999,99999,99999999,9,99999,99999999,362940,2756,0,0,2756,0,35840,16,999,99999,99999999,A,00295741,93107,S,01935926,412,5,99999,99999999,+27.3821318,-082.4706963,B,1,99999,99999,99999,9,9,9,99999,9,99999999,11501,3,99999,99999,01680,072,023,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000066,34235 +4097,3,000,22,2,41,1,01,2,1,0,0,2,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4098,3,000,22,2,42,1,01,2,1,0,0,2,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4099,3,000,22,2,59,1,01,2,1,0,0,2,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4100,3,000,22,2,62,1,01,2,1,0,0,2,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4101,3,000,25,1,8,1,07,2,2,0,0,1,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4102,3,000,25,1,8,1,07,2,2,0,0,1,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4103,3,000,25,1,15,1,01,2,1,0,0,1,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4104,3,000,25,1,15,1,08,2,2,0,0,1,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4105,3,000,25,1,15,1,08,2,2,0,0,1,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4106,3,000,25,1,16,2,01,2,1,0,0,1,18,097,330212,3006,3,9999,99999,99999999,9,99999,99999999,34760,0,0,0,0,0,26900,05,999,99999,99999999,C,00450371,42444,A,00453545,294,3,99999,99999999,+39.8829034,-085.9440665,L,1,99999,99999,99999,9,N,N,42426,A,02395647,02403,2,99999,99999,05670,095,031,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,002050,46236 +4107,3,000,36,1,45,1,01,2,1,0,0,2,55,077,960200,3000,3,9999,99999,99999999,9,99999,99999999,11571423,211684,0,0,211684,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8762876,-089.3282170,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4108,3,000,36,1,45,1,01,2,1,0,0,2,55,077,960200,3000,3,9999,99999,99999999,9,99999,99999999,11571423,211684,0,0,211684,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8762876,-089.3282170,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4109,3,000,28,1,33,1,01,2,1,0,0,2,55,077,960200,3001,3,9999,99999,99999999,9,99999,99999999,1534763,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8702648,-089.3490446,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4110,3,000,28,1,33,1,01,2,1,0,0,2,55,077,960200,3001,3,9999,99999,99999999,9,99999,99999999,1534763,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8702648,-089.3490446,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4111,3,000,28,1,33,1,01,2,1,0,0,2,55,077,960200,3001,3,9999,99999,99999999,9,99999,99999999,1534763,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8702648,-089.3490446,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4112,3,000,28,1,34,1,01,2,1,0,0,2,55,077,960200,3001,3,9999,99999,99999999,9,99999,99999999,1534763,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8702648,-089.3490446,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4113,3,000,20,1,27,1,01,2,1,0,0,2,55,077,960200,3002,3,9999,99999,99999999,9,99999,99999999,255201,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8838584,-089.3068945,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4114,3,000,20,1,50,1,01,2,1,0,0,2,55,077,960200,3002,3,9999,99999,99999999,9,99999,99999999,255201,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8838584,-089.3068945,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4115,3,000,20,1,54,1,01,2,1,0,0,2,55,077,960200,3002,3,9999,99999,99999999,9,99999,99999999,255201,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8838584,-089.3068945,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4116,3,000,20,1,69,1,01,2,1,0,0,2,55,077,960200,3002,3,9999,99999,99999999,9,99999,99999999,255201,0,0,0,0,0,99999,06,999,99999,99999999,A,01581098,73600,A,01584153,999,3,99999,99999999,+43.8838584,-089.3068945,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,2,99999,99999,09870,041,014,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003468,53949 +4117,3,000,21,1,47,1,08,2,2,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4118,3,000,21,1,60,1,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4119,3,000,21,1,60,1,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4120,3,000,21,1,60,1,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4121,3,000,21,1,77,2,11,2,2,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4122,3,000,21,1,78,1,08,2,2,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4123,3,000,21,2,22,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4124,3,000,21,2,23,2,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4125,3,000,21,2,38,2,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4126,3,000,21,2,38,2,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +4127,3,000,20,2,33,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4128,3,000,20,2,35,2,11,1,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4129,3,000,20,2,38,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4130,3,000,20,2,39,2,11,1,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4131,3,000,20,2,40,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4132,3,000,20,2,40,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4133,3,000,20,2,40,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4134,3,000,20,2,45,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4135,3,000,20,2,46,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4136,3,000,20,2,49,1,07,1,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +4137,3,000,20,2,52,1,01,1,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4138,3,000,20,2,53,1,01,1,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4139,3,000,20,2,54,1,01,1,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4140,3,000,20,2,36,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4141,3,000,20,2,56,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4142,3,000,20,2,71,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4143,3,000,20,2,72,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4144,3,000,20,2,73,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4145,3,000,20,2,73,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4146,3,000,20,2,74,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +4147,3,000,25,1,4,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4148,3,000,25,1,4,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4149,3,000,25,1,4,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4150,3,000,25,1,4,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4151,3,000,25,1,4,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4152,3,000,25,1,5,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4153,3,000,25,1,5,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4154,3,000,25,1,5,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4155,3,000,25,1,5,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4156,3,000,25,1,6,2,07,2,2,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +4157,3,000,21,1,47,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4158,3,000,21,1,49,2,06,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4159,3,000,21,1,51,1,02,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4160,3,000,21,1,58,1,03,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4161,3,000,21,2,26,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4162,3,000,21,2,26,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4163,3,000,21,2,26,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4164,3,000,21,2,26,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4165,3,000,21,2,26,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4166,3,000,21,2,26,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +4167,3,000,21,1,71,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4168,3,000,21,1,87,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4169,3,000,21,1,87,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4170,3,000,21,1,87,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4171,3,000,21,1,87,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4172,3,000,21,1,87,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4173,3,000,21,1,89,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4174,3,000,21,1,89,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4175,3,000,21,2,20,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4176,3,000,21,2,22,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +4177,3,000,20,2,22,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4178,3,000,20,2,22,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4179,3,000,20,2,27,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4180,3,000,20,2,27,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4181,3,000,20,2,28,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4182,3,000,20,2,29,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4183,3,000,20,2,29,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4184,3,000,20,2,36,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4185,3,000,20,2,36,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4186,3,000,20,2,36,1,08,2,2,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +4187,3,000,20,1,55,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4188,3,000,20,1,59,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4189,3,000,20,1,59,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4190,3,000,20,1,59,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4191,3,000,20,1,59,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4192,3,000,20,1,59,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4193,3,000,20,1,65,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4194,3,000,20,1,65,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4195,3,000,20,1,65,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4196,3,000,20,1,85,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +4197,3,000,25,1,18,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4198,3,000,25,1,19,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4199,3,000,25,1,19,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4200,3,000,25,1,19,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4201,3,000,25,1,24,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4202,3,000,25,1,24,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4203,3,000,25,1,24,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4204,3,000,25,1,25,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4205,3,000,25,1,29,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4206,3,000,25,1,29,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +4207,3,000,21,2,41,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4208,3,000,21,2,41,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4209,3,000,21,2,41,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4210,3,000,21,2,41,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4211,3,000,21,2,42,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4212,3,000,21,2,43,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4213,3,000,21,2,45,1,02,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4214,3,000,21,2,45,1,02,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4215,3,000,21,2,46,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4216,3,000,21,2,50,2,06,2,1,0,0,2,37,119,001507,1001,1,9999,99999,99999999,9,99999,99999999,38460,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2499904,-080.7477353,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,102,040,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000003,28215 +4217,3,000,25,1,10,2,06,2,1,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4218,3,000,25,1,10,2,11,2,2,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4219,3,000,25,1,13,1,01,2,1,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4220,3,000,25,1,13,1,01,2,1,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4221,3,000,25,1,13,1,01,2,1,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4222,3,000,25,1,13,2,11,2,2,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4223,3,000,25,1,15,2,11,2,2,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4224,3,000,25,1,15,2,11,2,2,0,0,1,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4225,3,000,25,1,21,1,19,2,2,0,0,2,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4226,3,000,25,1,33,2,06,2,1,0,0,2,04,013,082211,4019,4,9999,99999,99999999,9,99999,99999999,63844,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4283600,-112.3231544,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,04440,08520,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000121,85323 +4227,3,000,25,1,2,1,01,2,1,0,0,1,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4228,3,000,25,1,5,2,18,2,2,0,0,1,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4229,3,000,25,1,5,2,18,2,2,0,0,1,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4230,3,000,25,1,7,2,06,2,1,0,0,1,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4231,3,000,25,1,16,2,11,2,2,0,0,1,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4232,3,000,25,1,16,2,11,2,2,0,0,1,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4233,3,000,25,1,20,1,01,2,1,0,0,2,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4234,3,000,25,1,22,1,01,2,1,0,0,2,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4235,3,000,25,1,22,1,01,2,1,0,0,2,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4236,3,000,25,1,23,1,01,2,1,0,0,2,48,113,015207,2015,2,9999,99999,99999999,9,99999,99999999,25668,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7983653,-096.9621761,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004601,75060 +4237,3,000,25,1,10,1,04,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4238,3,000,25,1,10,1,04,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4239,3,000,25,1,10,1,09,2,2,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4240,3,000,25,1,10,1,09,2,2,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4241,3,000,25,1,13,1,04,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4242,3,000,25,1,13,1,04,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4243,3,000,25,1,13,1,04,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4244,3,000,25,1,16,1,01,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4245,3,000,25,1,16,1,01,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4246,3,000,25,1,17,1,01,2,1,0,0,1,53,061,051935,1000,1,9999,99999,99999999,9,99999,99999999,132086,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.8245675,-122.1956158,L,1,42644,99999,99999,9,N,N,45870,S,02585007,26103,4,99999,99999,05910,001,001,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,45865,U,004646,98012 +4247,3,000,21,1,38,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4248,3,000,21,1,38,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4249,3,000,21,1,38,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4250,3,000,21,1,55,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4251,3,000,21,1,59,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4252,3,000,21,1,72,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4253,3,000,21,1,73,1,01,2,1,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4254,3,000,21,1,73,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4255,3,000,21,2,26,2,06,2,1,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4256,3,000,21,2,33,2,11,2,2,0,0,2,12,086,010623,1009,1,9999,99999,99999999,9,99999,99999999,110921,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92886,S,01935909,370,5,99999,99999999,+25.5926135,-080.3515166,L,1,33124,99999,99999,9,N,N,15968,A,02406348,08622,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000825,33157 +4257,3,000,20,1,40,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4258,3,000,20,1,41,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4259,3,000,20,1,41,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4260,3,000,20,1,41,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4261,3,000,20,1,41,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4262,3,000,20,1,41,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4263,3,000,20,1,42,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4264,3,000,20,1,42,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4265,3,000,20,1,42,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4266,3,000,20,1,43,1,01,2,1,0,0,2,23,009,966300,2006,2,9999,99999,99999999,9,99999,99999999,27034182,22650,0,0,22650,0,99999,02,999,99999,99999999,A,00581290,75280,A,00582756,999,1,99999,99999999,+44.5228578,-068.5682865,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00500,1,99999,99999,12750,133,007,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04684 +4267,3,000,21,2,54,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4268,3,000,21,2,54,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4269,3,000,21,2,54,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4270,3,000,23,2,34,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4271,3,000,25,1,4,1,01,2,1,0,0,1,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4272,3,000,25,1,4,1,01,2,1,0,0,1,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4273,3,000,25,1,22,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4274,3,000,25,1,22,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4275,3,000,25,1,23,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4276,3,000,25,1,23,1,01,2,1,0,0,2,42,029,301700,2048,2,9999,99999,99999999,9,99999,99999999,251678,872,0,0,872,0,37980,06,999,99999,99999999,A,01209174,21576,A,01216153,428,2,99999,99999999,+40.1085652,-075.7326887,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03411,1,99999,99999,18270,026,044,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000350,19343 +4277,3,000,20,1,62,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4278,3,000,20,2,66,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4279,3,000,21,1,63,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4280,3,000,21,1,73,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4281,3,000,21,2,30,2,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4282,3,000,21,2,30,2,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4283,3,000,21,2,32,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4284,3,000,21,2,33,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4285,3,000,21,2,33,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4286,3,000,21,2,33,1,01,2,1,0,0,2,42,089,300317,2047,2,9999,99999,99999999,9,99999,99999999,25221,0,0,0,0,0,20700,08,999,99999,99999999,A,01209184,15960,A,01216836,408,2,99999,99999999,+41.1531185,-075.3464805,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00600,1,99999,99999,19500,115,022,01779798,99999,99999999,9,999,99999,99999999,999999,19862,U,99999,U,000056,18466 +4287,5,801,38,1,53,2,01,0,1,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4288,5,801,38,2,19,1,02,0,1,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4289,5,801,38,2,26,1,04,0,1,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4290,5,801,38,2,33,1,07,0,2,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4291,5,801,38,2,40,2,01,0,1,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4292,5,801,38,2,75,1,02,0,1,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4293,5,801,38,2,75,1,02,0,1,2,7,2,36,055,015000,3016,3,9999,99999,99999999,9,99999,99999999,204640,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.0980236,-077.8820747,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4294,3,000,20,1,39,1,01,1,1,0,0,2,36,055,015000,3027,3,9999,99999,99999999,9,99999,99999999,45530,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.1037093,-077.8865002,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4295,3,000,20,1,39,1,01,1,1,0,0,2,36,055,015000,3027,3,9999,99999,99999999,9,99999,99999999,45530,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.1037093,-077.8865002,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4296,3,000,20,1,50,1,01,1,1,0,0,2,36,055,015000,3027,3,9999,99999,99999999,9,99999,99999999,45530,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,61808,A,00979423,464,2,99999,99999999,+43.1037093,-077.8865002,L,1,99999,99999,99999,9,N,N,15638,A,02391608,00905,1,99999,99999,07530,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000519,14428 +4297,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4298,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4299,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4300,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4301,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4302,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4303,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4304,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4305,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4306,3,000,20,1,23,1,01,2,1,0,0,2,19,103,000501,1000,1,9999,99999,99999999,9,99999,99999999,327877,0,0,0,0,0,26980,02,999,99999,99999999,A,00465240,92077,F,00468086,168,4,99999,99999999,+41.6484275,-091.5519791,L,1,99999,99999,99999,9,Y,N,38595,A,00468086,01100,2,99999,99999,14700,086,043,01779785,99999,99999999,9,999,99999,99999999,999999,41590,U,99999,U,103043,52246 +4307,3,000,21,1,36,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4308,3,000,21,1,49,1,03,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4309,3,000,21,1,61,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4310,3,000,21,1,61,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4311,3,000,21,1,61,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4312,3,000,21,1,61,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4313,3,000,21,1,61,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4314,3,000,21,1,62,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4315,3,000,21,1,77,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4316,3,000,21,2,50,1,01,2,1,0,0,2,47,187,051203,2052,2,9999,99999,99999999,9,99999,99999999,3713212,0,0,0,0,0,34980,07,999,99999,99999999,A,01639801,90188,N,02464299,400,6,99999,99999999,+35.8255270,-087.0783552,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02102,3,99999,99999,04530,065,023,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009703,37064 +4317,3,000,20,2,33,1,01,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4318,3,000,20,2,33,1,01,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4319,3,000,20,2,33,1,01,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4320,3,000,20,2,33,1,01,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4321,3,000,20,2,33,1,01,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4322,3,000,20,2,33,2,06,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4323,3,000,20,2,33,2,06,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4324,3,000,20,2,33,2,06,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4325,3,000,20,2,33,2,06,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4326,3,000,20,2,46,1,02,2,1,0,0,2,48,201,252902,2002,2,9999,99999,99999999,9,99999,99999999,313384,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8398420,-095.0537931,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +4327,3,000,21,1,36,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4328,3,000,21,1,38,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4329,3,000,21,1,38,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4330,3,000,21,1,38,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4331,3,000,21,1,38,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4332,3,000,21,1,41,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4333,3,000,21,1,41,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4334,3,000,21,1,41,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4335,3,000,21,1,41,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4336,3,000,21,1,42,1,01,2,1,0,0,2,17,089,850707,1015,1,9999,99999,99999999,9,99999,99999999,46105,0,0,0,0,0,16980,06,999,99999,99999999,A,00424246,66430,A,00429687,176,3,99999,99999999,+42.1064466,-088.3725513,L,1,20994,99999,99999,9,N,N,29171,A,02398961,08901,2,99999,99999,08550,066,033,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00RU01,60136 +4337,3,000,20,2,74,1,01,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4338,3,000,20,2,74,1,01,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4339,3,000,20,2,74,1,01,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4340,3,000,21,1,25,1,01,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4341,3,000,21,1,49,1,01,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4342,3,000,21,1,79,1,01,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4343,3,000,21,2,34,1,04,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4344,3,000,21,2,34,1,04,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4345,3,000,21,2,34,1,04,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4346,3,000,22,1,54,1,02,2,1,0,0,2,36,087,010802,2016,2,9999,99999,99999999,9,99999,99999999,74010,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,15968,A,00978832,408,2,99999,99999999,+41.1544975,-073.9765770,L,1,35614,99999,99999,9,N,N,50100,S,02389540,03001,1,99999,99999,20340,096,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000034,10956 +4347,3,000,22,1,72,1,01,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4348,3,000,25,1,2,2,06,2,1,0,0,1,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4349,3,000,25,1,2,2,06,2,1,0,0,1,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4350,3,000,25,1,11,2,07,2,2,0,0,1,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4351,3,000,25,1,19,1,04,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4352,3,000,25,1,51,1,01,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4353,3,000,30,1,23,1,01,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4354,3,000,30,1,23,1,01,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4355,3,000,31,1,64,1,04,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4356,3,000,34,1,56,1,01,2,1,0,0,2,12,057,013411,1005,1,9999,99999,99999999,9,99999,99999999,4346,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8833885,-082.3127912,L,1,99999,99999,99999,9,N,N,60950,S,02403482,05711,3,99999,99999,00870,059,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000955,33578 +4357,3,000,21,2,66,1,01,2,1,0,0,2,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4358,3,000,21,2,91,1,01,2,1,0,0,2,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4359,3,000,21,2,95,1,01,2,1,0,0,2,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4360,3,000,22,2,38,1,01,2,1,0,0,2,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4361,3,000,23,2,59,1,01,2,1,0,0,2,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4362,3,000,25,1,4,1,01,2,1,0,0,1,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4363,3,000,25,1,8,1,01,2,1,0,0,1,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4364,3,000,25,1,8,1,01,2,1,0,0,1,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4365,3,000,25,1,8,1,01,2,1,0,0,1,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4366,3,000,25,1,8,1,01,2,1,0,0,1,25,001,011100,2013,2,9999,99999,99999999,9,99999,99999999,150589,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7195808,-070.0294828,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +4367,3,000,25,2,2,1,01,2,1,0,0,1,46,025,955800,5261,5,9999,99999,99999999,9,99999,99999999,15158,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9130049,-097.9383175,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4368,3,000,25,2,2,1,01,2,1,0,0,1,46,025,955800,5261,5,9999,99999,99999999,9,99999,99999999,15158,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9130049,-097.9383175,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4369,3,000,30,2,14,1,01,2,1,0,0,1,46,025,955800,5261,5,9999,99999,99999999,9,99999,99999999,15158,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9130049,-097.9383175,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4370,3,000,20,2,75,1,01,1,1,0,0,2,46,025,955800,5263,5,9999,99999,99999999,9,99999,99999999,11967,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9108165,-097.9383287,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4371,3,000,20,1,61,1,01,1,1,0,0,2,46,025,955800,5264,5,9999,99999,99999999,9,99999,99999999,268762,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9089598,-097.9353375,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4372,3,000,21,2,40,1,01,2,1,0,0,2,46,025,955800,5264,5,9999,99999,99999999,9,99999,99999999,268762,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9089598,-097.9353375,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4373,3,000,21,2,63,1,01,2,1,0,0,2,46,025,955800,5264,5,9999,99999,99999999,9,99999,99999999,268762,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9089598,-097.9353375,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4374,3,000,21,2,64,1,01,2,1,0,0,2,46,025,955800,5264,5,9999,99999,99999999,9,99999,99999999,268762,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9089598,-097.9353375,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4375,3,000,25,1,12,1,12,2,2,0,0,1,46,025,955800,5265,5,9999,99999,99999999,9,99999,99999999,18465,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9110549,-097.9367581,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4376,3,000,26,2,12,1,02,2,1,0,0,1,46,025,955800,5265,5,9999,99999,99999999,9,99999,99999999,18465,0,0,0,0,0,99999,00,999,99999,99999999,A,01266985,53260,F,01267546,999,4,99999,99999999,+44.9110549,-097.9367581,L,9,99999,99999,99999,9,N,N,53260,A,01267546,00300,2,99999,99999,12940,002,002,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00VTD3,57258 +4377,3,000,30,2,8,2,01,2,1,0,0,1,48,479,000108,1003,1,9999,99999,99999999,9,99999,99999999,20424,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4667019,-099.4678812,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4378,3,000,30,2,8,2,01,2,1,0,0,1,48,479,000108,1003,1,9999,99999,99999999,9,99999,99999999,20424,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4667019,-099.4678812,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4379,3,000,30,2,8,2,01,2,1,0,0,1,48,479,000108,1003,1,9999,99999,99999999,9,99999,99999999,20424,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4667019,-099.4678812,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4380,3,000,33,2,41,2,06,2,1,0,0,2,48,479,000108,1003,1,9999,99999,99999999,9,99999,99999999,20424,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4667019,-099.4678812,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4381,3,000,20,1,35,2,11,1,2,0,0,2,48,479,000108,1004,1,9999,99999,99999999,9,99999,99999999,20676,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4666987,-099.4689043,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4382,3,000,20,1,65,2,01,1,1,0,0,2,48,479,000108,1004,1,9999,99999,99999999,9,99999,99999999,20676,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4666987,-099.4689043,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4383,3,000,20,1,65,2,01,1,1,0,0,2,48,479,000108,1004,1,9999,99999,99999999,9,99999,99999999,20676,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4666987,-099.4689043,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4384,3,000,20,1,68,2,01,1,1,0,0,2,48,479,000108,1004,1,9999,99999,99999999,9,99999,99999999,20676,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4666987,-099.4689043,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4385,3,000,20,2,63,2,01,1,1,0,0,2,48,479,000108,1004,1,9999,99999,99999999,9,99999,99999999,20676,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4666987,-099.4689043,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4386,3,000,20,2,63,2,01,1,1,0,0,2,48,479,000108,1004,1,9999,99999,99999999,9,99999,99999999,20676,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92145,S,01938910,999,7,99999,99999999,+27.4666987,-099.4689043,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06301,3,99999,99999,26790,042,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000130,78046 +4387,3,000,25,1,30,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4388,3,000,25,1,30,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4389,3,000,25,1,30,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4390,3,000,25,1,30,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4391,3,000,25,1,31,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4392,3,000,25,1,31,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4393,3,000,25,1,31,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4394,3,000,25,1,31,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4395,3,000,25,1,31,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4396,3,000,25,1,33,1,02,2,1,0,0,2,29,189,210704,1010,1,9999,99999,99999999,9,99999,99999999,31354,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,69284,N,00767356,476,4,99999,99999999,+38.7900079,-090.2234159,L,1,99999,99999,99999,9,N,N,69266,S,02393243,01901,2,99999,99999,13830,067,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,SPL003,63138 +4397,3,000,20,1,71,2,06,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4398,3,000,20,1,74,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4399,3,000,20,1,74,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4400,3,000,20,1,74,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4401,3,000,20,1,85,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4402,3,000,20,1,86,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4403,3,000,20,1,86,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4404,3,000,20,1,89,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4405,3,000,20,1,89,1,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4406,3,000,21,1,29,2,01,2,1,0,0,2,06,037,500100,1003,1,9999,99999,99999999,9,99999,99999999,107507,2044,0,0,2044,0,31080,39,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595222,-117.9370412,B,1,31084,99999,99999,9,N,N,39304,A,02411572,03714,4,23010,14760,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90631 +4407,3,000,25,2,5,1,01,2,1,0,0,1,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4408,3,000,25,2,5,1,01,2,1,0,0,1,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4409,3,000,25,2,5,1,01,2,1,0,0,1,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4410,3,000,25,2,5,1,01,2,1,0,0,1,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4411,3,000,26,1,30,2,20,2,2,0,0,2,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4412,3,000,26,2,7,1,02,2,1,0,0,1,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4413,3,000,26,2,7,1,02,2,1,0,0,1,01,089,011012,3029,3,9999,99999,99999999,9,99999,99999999,16798,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7477966,-086.7325720,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4414,3,000,20,1,42,2,07,1,2,0,0,2,01,089,011012,3030,3,9999,99999,99999999,9,99999,99999999,23942,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7489252,-086.7320683,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4415,3,000,20,1,44,2,01,2,1,0,0,2,01,089,011012,3030,3,9999,99999,99999999,9,99999,99999999,23942,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7489252,-086.7320683,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4416,3,000,20,1,55,2,01,2,1,0,0,2,01,089,011012,3030,3,9999,99999,99999999,9,99999,99999999,23942,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,92052,S,00165867,290,6,99999,99999999,+34.7489252,-086.7320683,L,1,99999,99999,99999,9,N,N,45784,A,02404989,00402,3,99999,99999,00008,025,002,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000090,35758 +4417,3,000,25,2,0,1,01,2,1,0,0,1,29,149,480100,1037,1,9999,99999,99999999,9,99999,99999999,4578,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6931746,-091.4000567,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4418,3,000,25,2,0,1,01,2,1,0,0,1,29,149,480100,1037,1,9999,99999,99999999,9,99999,99999999,4578,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6931746,-091.4000567,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4419,3,000,25,2,17,1,01,2,1,0,0,1,29,149,480100,1037,1,9999,99999,99999999,9,99999,99999999,4578,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6931746,-091.4000567,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4420,3,000,20,1,20,1,01,2,1,0,0,2,29,149,480100,1038,1,9999,99999,99999999,9,99999,99999999,3654,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6935480,-091.4000521,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4421,3,000,20,1,61,1,01,2,1,0,0,2,29,149,480100,1038,1,9999,99999,99999999,9,99999,99999999,3654,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6935480,-091.4000521,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4422,3,000,21,1,63,1,01,2,1,0,0,2,29,149,480100,1038,1,9999,99999,99999999,9,99999,99999999,3654,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6935480,-091.4000521,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4423,3,000,25,1,12,1,01,2,1,0,0,1,29,149,480100,1038,1,9999,99999,99999999,9,99999,99999999,3654,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6935480,-091.4000521,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4424,3,000,21,1,62,1,01,2,1,0,0,2,29,149,480100,1044,1,9999,99999,99999999,9,99999,99999999,6148,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6944004,-091.3973067,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4425,3,000,21,1,64,1,01,2,1,0,0,2,29,149,480100,1044,1,9999,99999,99999999,9,99999,99999999,6148,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6944004,-091.3973067,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4426,3,000,25,1,5,1,11,2,2,0,0,1,29,149,480100,1044,1,9999,99999,99999999,9,99999,99999999,6148,0,0,0,0,0,99999,08,999,99999,99999999,A,00758529,57854,N,00767114,999,4,99999,99999999,+36.6944004,-091.3973067,L,9,99999,99999,99999,9,N,N,00964,A,02393937,02600,2,99999,99999,03060,143,033,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65606 +4427,3,000,20,1,55,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4428,3,000,20,1,55,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4429,3,000,20,1,62,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4430,3,000,20,1,62,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4431,3,000,20,1,63,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4432,3,000,20,1,67,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4433,3,000,20,1,67,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4434,3,000,20,1,67,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4435,3,000,20,1,67,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4436,3,000,20,1,71,1,01,2,1,0,0,2,05,005,950300,3025,3,9999,99999,99999999,9,99999,99999999,224947,0,0,0,0,0,34260,01,999,99999,99999999,A,00069895,91818,N,00069561,999,7,99999,99999999,+36.3586574,-092.4264987,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00043,100,017,00068085,99999,99999999,9,999,99999,99999999,999999,59680,U,99999,U,0006-3,72653 +4437,3,000,20,1,29,1,01,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4438,3,000,20,1,31,1,02,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4439,3,000,20,1,31,1,02,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4440,3,000,20,1,32,1,02,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4441,3,000,20,1,33,1,01,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4442,3,000,20,1,42,1,01,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4443,3,000,20,1,42,1,01,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4444,3,000,20,1,53,1,02,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4445,3,000,20,1,55,1,01,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4446,3,000,20,1,55,1,01,1,1,0,0,2,22,055,001906,2005,2,9999,99999,99999999,9,99999,99999999,3676262,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95752,N,01930300,318,7,99999,99999999,+30.2204097,-092.1642237,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01201,3,99999,99999,00870,031,026,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,70529 +4447,3,000,21,2,55,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4448,3,000,21,2,55,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4449,3,000,21,2,56,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4450,3,000,21,2,56,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4451,3,000,21,2,56,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4452,3,000,21,2,56,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4453,3,000,21,2,56,1,01,2,1,0,0,2,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4454,3,000,25,1,5,1,01,2,1,0,0,1,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4455,3,000,25,1,5,1,01,2,1,0,0,1,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4456,3,000,25,1,5,1,01,2,1,0,0,1,25,009,211300,1005,1,9999,99999,99999999,9,99999,99999999,81207,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,16250,A,00618295,148,1,99999,99999999,+42.5715719,-070.9213038,L,1,15764,76524,71650,1,N,N,16285,S,02378003,00704,1,99999,99999,03990,095,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000635,01923 +4457,3,000,30,1,8,1,01,2,1,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4458,3,000,30,1,9,1,01,2,1,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4459,3,000,30,1,9,1,01,2,1,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4460,3,000,30,1,10,1,07,2,2,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4461,3,000,30,1,10,1,07,2,2,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4462,3,000,30,1,11,1,02,2,1,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4463,3,000,30,2,0,1,01,2,1,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4464,3,000,30,2,2,1,07,2,2,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4465,3,000,30,2,2,1,07,2,2,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4466,3,000,30,2,2,1,07,2,2,0,0,1,55,059,002100,4005,4,9999,99999,99999999,9,99999,99999999,441395,0,0,0,0,0,16980,01,999,99999,99999999,A,01581089,39225,F,01583472,176,3,99999,99999999,+42.5454932,-087.8226233,L,1,29404,99999,99999,9,N,N,39225,A,01583472,03000,2,99999,99999,07320,065,022,01779806,99999,99999999,9,999,99999,99999999,999999,44506,U,99999,U,002665,53143 +4467,3,000,20,2,38,1,02,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4468,3,000,20,2,38,1,04,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4469,3,000,20,2,43,1,04,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4470,3,000,20,2,45,1,02,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4471,3,000,20,2,45,1,02,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4472,3,000,20,2,48,1,02,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4473,3,000,20,2,48,1,02,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4474,3,000,20,2,48,1,02,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4475,3,000,20,2,54,1,01,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4476,3,000,20,2,57,1,01,2,1,0,0,2,05,119,002103,2003,2,9999,99999,99999999,9,99999,99999999,9230,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7496560,-092.3460123,L,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,033,032,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000111,72205 +4477,3,000,29,1,68,2,11,2,2,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4478,3,000,29,1,68,2,11,2,2,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4479,3,000,29,1,69,2,11,2,2,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4480,3,000,29,1,71,2,06,2,1,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4481,3,000,29,1,85,2,11,2,2,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4482,3,000,29,2,44,2,06,2,1,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4483,3,000,29,2,46,2,06,2,1,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4484,3,000,29,2,46,2,06,2,1,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4485,3,000,29,2,48,2,06,2,1,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4486,3,000,29,2,48,2,06,2,1,0,0,2,06,037,109500,2011,2,9999,99999,99999999,9,99999,99999999,46971,0,0,0,0,0,31080,29,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2680480,-118.4432266,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03707,4,99999,99999,22710,039,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91340 +4487,3,000,20,2,22,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4488,3,000,20,2,22,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4489,3,000,20,2,22,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4490,3,000,20,2,27,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4491,3,000,20,2,27,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4492,3,000,20,2,27,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4493,3,000,20,2,27,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4494,3,000,20,2,28,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4495,3,000,20,2,28,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4496,3,000,20,2,28,1,01,2,1,0,0,2,16,065,950501,1013,1,9999,99999,99999999,9,99999,99999999,201051,0,0,0,0,0,39940,02,999,99999,99999999,A,00394803,92956,S,01936819,292,8,99999,99999999,+43.8137077,-111.8207284,L,2,99999,99999,99999,9,Y,N,67420,A,02410929,01100,4,99999,99999,01920,034,034,01779783,99999,99999999,9,999,99999,99999999,999999,74260,U,99999,U,653402,83440 +4497,3,000,25,1,1,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4498,3,000,25,1,5,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4499,3,000,25,1,5,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4500,3,000,25,1,5,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4501,3,000,25,1,5,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4502,3,000,25,1,5,1,07,2,2,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4503,3,000,25,1,6,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4504,3,000,25,1,6,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4505,3,000,25,1,6,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4506,3,000,25,1,6,1,02,2,1,0,0,1,39,095,001202,1006,1,9999,99999,99999999,9,99999,99999999,62257,0,0,0,0,0,45780,09,999,99999,99999999,A,01074060,77000,F,01086537,534,3,99999,99999999,+41.6876623,-083.4910235,L,1,99999,99999,99999,9,Y,N,77000,A,01086537,00303,2,99999,99999,04490,044,011,01085497,99999,99999999,9,999,99999,99999999,999999,87868,U,99999,U,048ADH,43611 +4507,3,000,20,2,79,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4508,3,000,20,2,79,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4509,3,000,20,2,86,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4510,3,000,20,2,86,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4511,3,000,20,2,86,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4512,3,000,20,2,86,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4513,3,000,20,2,86,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4514,3,000,20,2,86,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4515,3,000,20,2,87,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4516,3,000,20,2,88,1,01,1,1,0,0,2,42,043,022401,1000,1,9999,99999,99999999,9,99999,99999999,468093,0,0,0,0,0,25420,10,999,99999,99999999,A,01213667,45056,A,01216360,276,2,99999,99999999,+40.3322900,-076.8327955,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02401,1,99999,99999,05400,105,015,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000766,17112 +4517,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4518,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4519,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4520,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4521,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4522,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4523,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4524,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4525,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4526,5,104,37,1,33,1,02,0,1,1,1,2,12,095,014503,1002,1,9999,99999,99999999,9,99999,99999999,158061,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5042608,-081.4151016,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000632,32839 +4527,3,000,20,2,65,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4528,3,000,20,2,65,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4529,3,000,20,2,65,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4530,3,000,20,2,67,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4531,3,000,20,2,67,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4532,3,000,20,2,67,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4533,3,000,20,2,67,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4534,3,000,20,2,67,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4535,3,000,20,2,68,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4536,3,000,20,2,68,1,01,2,1,0,0,2,12,099,005300,4002,4,9999,99999,99999999,9,99999,99999999,185253,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6419365,-080.0476005,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,089,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000322,33460 +4537,3,000,25,2,18,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4538,3,000,25,2,18,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4539,3,000,25,2,19,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4540,3,000,25,2,19,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4541,3,000,25,2,19,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4542,3,000,25,2,19,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4543,3,000,25,2,19,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4544,3,000,25,2,21,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4545,3,000,25,2,21,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4546,3,000,25,2,24,2,06,2,1,0,0,2,37,063,000600,2015,2,9999,99999,99999999,9,99999,99999999,66927,0,0,0,0,0,20500,01,999,99999,99999999,A,01008550,90932,N,01026653,450,5,99999,99999999,+35.9891131,-078.9314842,L,1,99999,99999,99999,9,Y,N,19000,A,02403521,01301,3,99999,99999,01260,029,020,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,000006,27707 +4547,3,000,30,1,7,2,11,2,2,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4548,3,000,30,1,9,1,01,2,1,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4549,3,000,30,1,15,2,06,2,1,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4550,3,000,30,1,15,2,06,2,1,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4551,3,000,30,2,8,1,02,2,1,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4552,3,000,30,2,8,1,02,2,1,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4553,3,000,30,2,10,1,04,2,1,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4554,3,000,30,2,21,1,01,2,1,0,0,2,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4555,3,000,33,1,0,2,11,2,2,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4556,3,000,33,1,0,2,11,2,2,0,0,1,13,121,010129,4000,4,9999,99999,99999999,9,99999,99999999,483138,4838,0,0,4838,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9065833,-084.3760854,B,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,052,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS11A,30342 +4557,3,000,30,2,7,1,02,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4558,3,000,30,2,7,1,02,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4559,3,000,30,2,7,1,02,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4560,3,000,30,2,7,1,02,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4561,3,000,30,2,7,1,02,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4562,3,000,30,2,7,1,02,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4563,3,000,30,2,9,1,01,2,1,0,0,1,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4564,3,000,30,2,19,2,06,2,1,0,0,2,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4565,3,000,30,2,19,2,06,2,1,0,0,2,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4566,3,000,33,1,21,2,06,2,1,0,0,2,42,101,028902,3003,3,9999,99999,99999999,9,99999,99999999,10079,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0244208,-075.1170851,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,197,003,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004211,19120 +4567,3,000,25,1,35,1,01,2,1,0,0,2,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4568,3,000,25,1,35,1,01,2,1,0,0,2,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4569,3,000,25,1,35,1,01,2,1,0,0,2,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4570,3,000,25,2,4,2,01,2,1,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4571,3,000,25,2,5,1,01,2,1,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4572,3,000,25,2,5,1,01,2,1,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4573,3,000,25,2,5,1,01,2,1,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4574,3,000,25,2,8,2,01,2,1,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4575,3,000,25,2,8,2,20,2,2,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4576,3,000,25,2,9,2,01,2,1,0,0,1,06,037,571101,4003,4,9999,99999,99999999,9,99999,99999999,30743,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.8450347,-118.1186671,L,1,31084,99999,99999,9,N,N,39892,A,02411613,03764,4,99999,99999,22500,063,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90713 +4577,3,000,21,2,77,1,01,2,1,0,0,2,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4578,3,000,21,2,77,1,01,2,1,0,0,2,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4579,3,000,21,2,77,1,01,2,1,0,0,2,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4580,3,000,21,2,77,1,01,2,1,0,0,2,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4581,3,000,25,2,10,1,01,2,1,0,0,1,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4582,3,000,27,2,5,1,01,2,1,0,0,1,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4583,3,000,27,2,5,1,01,2,1,0,0,1,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4584,3,000,36,1,63,1,01,2,1,0,0,2,33,007,950200,2006,2,9999,99999,99999999,9,99999,99999999,34313,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8939708,-071.4977990,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4585,3,000,20,1,70,1,01,1,1,0,0,2,33,007,950200,2007,2,9999,99999,99999999,9,99999,99999999,112392,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8969936,-071.4993018,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4586,3,000,20,1,70,1,01,1,1,0,0,2,33,007,950200,2007,2,9999,99999,99999999,9,99999,99999999,112392,0,0,0,0,0,13620,02,999,99999,99999999,A,00873177,13780,A,00871097,999,1,99999,99999999,+44.8969936,-071.4993018,L,2,99999,99999,99999,9,N,N,13700,S,02629721,00100,1,99999,99999,02400,301,001,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,COLE01,03576 +4587,3,000,25,2,7,1,01,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4588,3,000,25,2,8,2,06,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4589,3,000,25,2,10,1,04,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4590,3,000,25,2,10,2,06,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4591,3,000,25,2,10,2,06,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4592,3,000,25,2,12,1,02,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4593,3,000,25,2,12,1,02,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4594,3,000,25,2,13,1,04,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4595,3,000,25,2,13,1,04,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4596,3,000,25,2,13,1,04,2,1,0,0,1,18,003,011302,3006,3,9999,99999,99999999,9,99999,99999999,67532,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00298,A,00453073,258,3,99999,99999999,+41.0310889,-085.0976156,L,1,99999,99999,99999,9,Y,N,25000,A,02394798,01002,2,99999,99999,02850,080,014,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001760,46816 +4597,3,000,25,2,13,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4598,3,000,25,2,13,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4599,3,000,25,2,13,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4600,3,000,25,2,13,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4601,3,000,25,2,14,1,11,2,2,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4602,3,000,25,2,17,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4603,3,000,25,2,17,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4604,3,000,25,2,17,1,01,2,1,0,0,1,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4605,3,000,25,2,19,1,01,2,1,0,0,2,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4606,3,000,25,2,19,1,01,2,1,0,0,2,19,153,010209,2007,2,9999,99999,99999999,9,99999,99999999,162709,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7405455,-093.5925164,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,037,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153364,50021 +4607,3,000,33,1,19,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4608,3,000,34,1,25,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4609,3,000,34,1,25,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4610,3,000,34,1,25,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4611,3,000,34,1,25,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4612,3,000,34,1,27,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4613,3,000,34,1,27,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4614,3,000,34,1,28,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4615,3,000,34,1,28,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4616,3,000,34,1,28,1,04,2,1,0,0,2,26,125,160900,3004,3,9999,99999,99999999,9,99999,99999999,138024,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,74900,F,01627095,220,3,99999,99999999,+42.4988934,-083.2978860,L,1,47664,99999,99999,9,Y,N,74900,A,01627095,02907,2,99999,99999,32310,035,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125385,48034 +4617,3,000,29,2,65,1,04,2,1,0,0,2,29,183,312096,3017,3,9999,99999,99999999,9,99999,99999999,24405,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8338278,-090.8664592,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4618,3,000,31,2,61,1,01,2,1,0,0,2,29,183,312096,3017,3,9999,99999,99999999,9,99999,99999999,24405,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8338278,-090.8664592,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4619,3,000,36,1,28,1,02,2,1,0,0,2,29,183,312096,3017,3,9999,99999,99999999,9,99999,99999999,24405,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8338278,-090.8664592,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4620,3,000,20,1,55,1,01,2,1,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4621,3,000,20,1,55,1,01,2,1,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4622,3,000,20,1,55,1,01,2,1,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4623,3,000,20,1,55,1,01,2,1,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4624,3,000,20,2,26,1,08,2,2,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4625,3,000,20,2,27,1,01,2,1,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4626,3,000,20,2,27,1,01,2,1,0,0,2,29,183,312096,3018,3,9999,99999,99999999,9,99999,99999999,61660,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,78448,N,00767307,476,4,99999,99999999,+38.8374597,-090.8650805,L,1,99999,99999,99999,9,N,N,78442,A,02397257,01802,2,99999,99999,31650,063,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000187,63385 +4627,3,000,20,2,47,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4628,3,000,20,2,47,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4629,3,000,20,2,48,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4630,3,000,20,2,48,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4631,3,000,20,2,48,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4632,3,000,20,2,48,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4633,3,000,20,2,48,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4634,3,000,20,2,56,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4635,3,000,20,2,56,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4636,3,000,20,2,56,1,01,2,1,0,0,2,26,081,011001,1010,1,9999,99999,99999999,9,99999,99999999,32033,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,64660,A,01626912,266,3,99999,99999999,+43.0777630,-085.5831694,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081201,49341 +4637,3,000,25,1,4,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4638,3,000,25,1,4,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4639,3,000,25,1,6,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4640,3,000,25,1,6,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4641,3,000,25,1,6,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4642,3,000,25,1,6,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4643,3,000,25,1,6,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4644,3,000,25,1,6,1,01,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4645,3,000,25,1,7,1,04,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4646,3,000,25,1,11,1,04,2,1,0,0,1,06,095,253208,1009,1,9999,99999,99999999,9,99999,99999999,104424,0,0,0,0,0,46700,03,999,99999,99999999,A,00277312,93520,S,01935357,488,9,99999,99999999,+38.3885817,-121.9790428,L,1,99999,99999,99999,9,N,N,81554,A,02412139,09503,4,99999,99999,40590,011,003,01779778,99999,99999999,9,999,99999,99999999,999999,89866,U,99999,U,,95688 +4647,3,000,20,1,63,1,01,1,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4648,3,000,20,1,64,1,01,1,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4649,3,000,20,1,64,1,01,1,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4650,3,000,20,1,35,1,02,2,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4651,3,000,20,1,35,1,11,2,2,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4652,3,000,20,1,69,1,01,2,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4653,3,000,20,1,69,1,01,2,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4654,3,000,20,1,69,1,01,2,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4655,3,000,20,1,69,1,01,2,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4656,3,000,20,2,37,1,03,2,1,0,0,2,40,143,007632,2013,2,5620,18170,01925077,R,99999,99999999,17690,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0383010,-095.9182008,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,039,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000118,74137 +4657,3,000,20,2,34,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4658,3,000,20,2,34,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4659,3,000,20,2,34,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4660,3,000,20,2,34,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4661,3,000,20,2,51,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4662,3,000,21,1,22,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4663,3,000,21,1,47,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4664,3,000,21,1,47,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4665,3,000,21,1,70,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4666,3,000,21,1,70,1,02,2,1,0,0,2,13,121,010308,1003,1,9999,99999,99999999,9,99999,99999999,52836,0,0,0,0,0,12060,13,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6611845,-084.5572739,L,1,99999,99999,99999,9,N,N,72122,A,02786574,01408,3,99999,99999,02280,062,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00SC20,30331 +4667,3,000,25,2,13,2,06,2,1,0,0,1,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4668,3,000,25,2,13,2,06,2,1,0,0,1,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4669,3,000,25,2,18,2,06,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4670,3,000,25,2,21,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4671,3,000,25,2,21,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4672,3,000,25,2,22,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4673,3,000,25,2,22,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4674,3,000,25,2,22,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4675,3,000,25,2,22,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4676,3,000,25,2,22,1,01,2,1,0,0,2,17,031,824123,2018,2,9999,99999,99999999,9,99999,99999999,15839,0,0,0,0,0,16980,01,999,99999,99999999,A,01784766,56614,A,00429505,176,3,99999,99999999,+41.5962760,-087.8110001,L,1,16984,99999,99999,9,N,N,75484,A,02399987,03116,2,21270,08400,99999,028,014,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,860006,60477 +4677,3,000,25,2,15,1,08,2,2,0,0,1,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4678,3,000,25,2,16,1,01,2,1,0,0,1,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4679,3,000,25,2,17,1,01,2,1,0,0,1,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4680,3,000,25,2,17,1,01,2,1,0,0,1,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4681,3,000,25,2,17,2,01,2,1,0,0,1,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4682,3,000,25,2,19,1,03,2,1,0,0,2,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4683,3,000,25,2,22,1,03,2,1,0,0,2,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4684,3,000,25,2,22,2,11,2,2,0,0,2,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4685,3,000,25,2,29,1,08,2,2,0,0,2,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4686,3,000,25,2,30,1,08,2,2,0,0,2,40,145,030512,1012,1,5620,18170,01925077,R,99999,99999999,2199030,0,0,0,0,0,46140,01,999,99999,99999999,A,01101860,90676,S,01937679,538,7,99999,99999999,+35.9949429,-095.6991965,L,1,99999,99999,99999,9,9,9,99999,9,99999999,20700,3,99999,99999,05490,016,018,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000307,74014 +4687,3,000,20,1,80,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4688,3,000,20,2,41,1,04,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4689,3,000,20,2,43,1,04,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4690,3,000,20,2,47,2,06,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4691,3,000,20,2,62,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4692,3,000,20,2,62,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4693,3,000,20,2,62,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4694,3,000,20,2,62,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4695,3,000,20,2,62,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4696,3,000,20,2,62,1,01,2,1,0,0,2,06,055,200302,1010,1,9999,99999,99999999,9,99999,99999999,55012,0,0,0,0,0,34900,05,999,99999,99999999,A,00277292,92070,S,01935212,488,9,99999,99999999,+38.2876778,-122.2630761,L,1,99999,99999,99999,9,Y,N,50258,A,02411209,05500,4,99999,99999,26640,004,003,01779778,99999,99999999,9,999,99999,99999999,999999,61057,U,99999,U,,94559 +4697,3,000,20,2,64,1,02,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4698,3,000,20,2,66,1,02,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4699,3,000,20,2,67,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4700,3,000,20,2,67,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4701,3,000,20,2,67,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4702,3,000,20,2,67,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4703,3,000,20,2,68,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4704,3,000,20,2,68,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4705,3,000,20,2,68,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4706,3,000,20,2,68,1,01,2,1,0,0,2,51,019,030601,1005,1,9999,99999,99999999,9,99999,99999999,3964760,49167,0,0,49167,0,31340,05,999,99999,99999999,A,01674818,91209,N,02750017,999,5,99999,99999999,+37.2421981,-079.7101031,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,022,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000103,24095 +4707,3,000,28,1,48,1,02,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4708,3,000,28,2,31,1,01,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4709,3,000,28,2,32,1,01,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4710,3,000,28,2,32,1,01,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4711,3,000,29,1,56,1,02,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4712,3,000,29,2,45,1,03,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4713,3,000,32,1,32,1,01,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4714,3,000,36,2,42,1,02,2,1,0,0,2,27,003,050707,4010,4,9999,99999,99999999,9,99999,99999999,51769,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2103015,-093.3306013,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4715,3,000,20,1,69,1,01,1,1,0,0,2,27,003,050707,4011,4,9999,99999,99999999,9,99999,99999999,32768,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2094129,-093.3298311,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4716,3,000,20,1,30,1,04,2,1,0,0,2,27,003,050707,4011,4,9999,99999,99999999,9,99999,99999999,32768,0,0,0,0,0,33460,03,999,99999,99999999,A,00659447,13114,F,02393628,378,4,99999,99999999,+45.2094129,-093.3298311,L,1,99999,99999,99999,9,N,N,13114,A,02393628,01302,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001005,55448 +4717,3,000,20,1,29,2,06,2,1,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4718,3,000,20,2,29,2,01,2,1,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4719,3,000,20,2,29,2,01,2,1,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4720,3,000,20,2,29,2,01,2,1,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4721,3,000,20,2,29,2,11,2,2,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4722,3,000,20,2,29,2,11,2,2,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4723,3,000,20,2,29,2,11,2,2,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4724,3,000,20,2,29,2,11,2,2,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4725,3,000,20,2,35,2,11,2,2,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4726,3,000,20,2,41,1,03,2,1,0,0,2,06,099,003002,4014,4,9999,99999,99999999,9,99999,99999999,9915,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.5582023,-120.9091655,L,1,99999,99999,99999,9,N,N,38422,S,02408477,09901,4,19620,06013,99999,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95328 +4727,3,000,20,1,79,1,01,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4728,3,000,20,1,79,1,01,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4729,3,000,20,2,25,1,02,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4730,3,000,20,2,25,1,02,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4731,3,000,20,2,27,1,02,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4732,3,000,20,2,29,1,01,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4733,3,000,20,2,29,1,01,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4734,3,000,20,2,29,1,01,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4735,3,000,20,2,31,1,02,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4736,3,000,20,2,33,1,02,2,1,0,0,2,22,093,040400,2058,2,9999,99999,99999999,9,99999,99999999,6237988,0,0,0,0,0,35380,02,999,99999,99999999,A,01629464,94678,N,01930032,406,7,99999,99999999,+30.0106350,-090.8190870,L,1,99999,99999,99999,9,N,N,17180,S,02583534,01900,3,99999,99999,01500,058,018,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,70723 +4737,3,000,25,1,12,1,09,2,2,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4738,3,000,25,1,12,1,09,2,2,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4739,3,000,25,1,12,2,06,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4740,3,000,25,1,12,2,08,2,2,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4741,3,000,25,1,13,1,04,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4742,3,000,25,1,13,1,04,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4743,3,000,25,1,13,1,04,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4744,3,000,25,1,13,1,04,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4745,3,000,25,1,13,1,04,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4746,3,000,25,1,13,1,04,2,1,0,0,1,06,067,009622,3007,3,9999,99999,99999999,9,99999,99999999,160090,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4057999,-121.4698335,L,1,99999,99999,99999,9,N,N,22020,A,02410425,06715,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95758 +4747,3,000,32,2,33,1,01,2,1,0,0,2,39,029,951600,1007,1,9999,99999,99999999,9,99999,99999999,133679,0,0,0,0,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7711680,-080.5986899,L,2,99999,99999,99999,9,N,N,41597,S,02628921,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44441 +4748,3,000,20,2,70,1,01,1,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4749,3,000,20,2,73,1,01,1,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4750,3,000,20,2,73,1,01,1,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4751,3,000,20,1,60,1,01,2,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4752,3,000,20,1,60,1,01,2,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4753,3,000,20,1,60,1,01,2,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4754,3,000,20,1,64,1,01,2,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4755,3,000,20,1,66,1,01,2,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4756,3,000,20,1,66,1,01,2,1,0,0,2,39,029,951600,1008,1,9999,99999,99999999,9,99999,99999999,2183376,26409,0,0,26409,0,41400,06,999,99999,99999999,A,01074027,49784,A,01085899,566,3,99999,99999999,+40.7663089,-080.6093488,B,2,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04642,005,033,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,015ADS,44455 +4757,3,000,20,2,26,1,02,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4758,3,000,20,2,30,1,02,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4759,3,000,20,2,31,1,01,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4760,3,000,20,2,31,1,01,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4761,3,000,20,2,31,1,01,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4762,3,000,20,2,31,1,01,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4763,3,000,20,2,31,1,01,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4764,3,000,20,2,31,1,02,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4765,3,000,20,2,31,1,02,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4766,3,000,20,2,33,1,02,2,1,0,0,2,01,073,014404,2024,2,9999,99999,99999999,9,99999,99999999,35344,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91656,S,00165819,142,6,99999,99999999,+33.4175825,-086.8075204,L,1,99999,99999,99999,9,N,N,78552,A,02405646,01404,3,99999,99999,03430,047,016,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,005030,35216 +4767,3,000,20,1,46,2,06,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4768,3,000,21,2,56,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4769,3,000,21,2,58,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4770,3,000,21,2,58,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4771,3,000,21,2,58,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4772,3,000,21,2,58,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4773,3,000,21,2,58,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4774,3,000,21,2,59,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4775,3,000,21,2,67,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4776,3,000,21,2,83,1,01,2,1,0,0,2,42,075,003902,2058,2,9999,99999,99999999,9,99999,99999999,6396,0,0,0,0,0,30140,09,999,99999,99999999,A,01214034,57720,F,01215368,276,2,99999,99999999,+40.3081684,-076.5887773,L,1,99999,99999,99999,9,N,N,57720,A,01215368,02500,1,99999,99999,18390,101,048,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000400,17078 +4777,3,000,25,1,12,2,11,2,2,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4778,3,000,25,1,12,2,11,2,2,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4779,3,000,25,2,3,1,07,2,2,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4780,3,000,25,2,3,1,07,2,2,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4781,3,000,25,2,7,1,07,2,2,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4782,3,000,25,2,10,1,01,2,1,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4783,3,000,25,2,10,1,01,2,1,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4784,3,000,25,2,12,2,11,2,2,0,0,1,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4785,3,000,27,1,18,2,06,2,1,0,0,2,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4786,3,000,27,1,40,2,11,2,2,0,0,2,25,009,260700,1011,1,9999,99999,99999999,9,99999,99999999,16105,0,0,0,0,0,14460,03,715,99999,99999999,N,00606931,29405,F,00619447,148,1,99999,99999999,+42.7908367,-071.1013609,L,1,15764,73604,71650,1,N,N,29405,A,00619447,00701,1,99999,99999,05970,085,019,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000901,01832 +4787,3,000,30,2,22,1,01,2,1,0,0,2,04,019,003503,2019,2,9999,99999,99999999,9,99999,99999999,34009,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1969821,-110.8685430,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4788,3,000,33,2,7,1,01,2,1,0,0,1,04,019,003503,2019,2,9999,99999,99999999,9,99999,99999999,34009,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1969821,-110.8685430,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4789,3,000,34,1,24,1,01,2,1,0,0,2,04,019,003503,2019,2,9999,99999,99999999,9,99999,99999999,34009,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1969821,-110.8685430,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4790,3,000,34,1,54,2,11,2,2,0,0,2,04,019,003503,2019,2,9999,99999,99999999,9,99999,99999999,34009,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1969821,-110.8685430,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4791,3,000,36,1,45,1,01,2,1,0,0,2,04,019,003503,2019,2,9999,99999,99999999,9,99999,99999999,34009,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1969821,-110.8685430,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4792,3,000,20,1,22,1,02,1,1,0,0,2,04,019,003503,2020,2,9999,99999,99999999,9,99999,99999999,31376,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1962082,-110.8685375,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4793,3,000,20,1,30,1,01,1,1,0,0,2,04,019,003503,2020,2,9999,99999,99999999,9,99999,99999999,31376,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1962082,-110.8685375,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4794,3,000,20,1,32,1,01,1,1,0,0,2,04,019,003503,2020,2,9999,99999,99999999,9,99999,99999999,31376,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1962082,-110.8685375,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4795,3,000,20,1,32,1,01,1,1,0,0,2,04,019,003503,2020,2,9999,99999,99999999,9,99999,99999999,31376,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1962082,-110.8685375,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4796,3,000,20,1,34,1,01,1,1,0,0,2,04,019,003503,2020,2,9999,99999,99999999,9,99999,99999999,31376,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.1962082,-110.8685375,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,010,010,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000113,85711 +4797,3,000,25,2,5,1,01,2,1,0,0,1,25,017,368400,2017,2,9999,99999,99999999,9,99999,99999999,14049,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3573445,-071.2559377,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4798,3,000,25,2,5,1,01,2,1,0,0,1,25,017,368400,2017,2,9999,99999,99999999,9,99999,99999999,14049,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3573445,-071.2559377,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4799,3,000,25,2,11,1,01,2,1,0,0,1,25,017,368400,2017,2,9999,99999,99999999,9,99999,99999999,14049,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3573445,-071.2559377,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4800,3,000,25,2,12,1,01,2,1,0,0,1,25,017,368400,2017,2,9999,99999,99999999,9,99999,99999999,14049,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3573445,-071.2559377,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4801,3,000,25,2,12,1,01,2,1,0,0,1,25,017,368400,2017,2,9999,99999,99999999,9,99999,99999999,14049,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3573445,-071.2559377,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4802,3,000,25,2,12,1,01,2,1,0,0,1,25,017,368400,2017,2,9999,99999,99999999,9,99999,99999999,14049,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3573445,-071.2559377,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4803,3,000,20,1,26,1,04,2,1,0,0,2,25,017,368400,2018,2,9999,99999,99999999,9,99999,99999999,10859,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3588157,-071.2581079,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4804,3,000,20,1,26,1,04,2,1,0,0,2,25,017,368400,2018,2,9999,99999,99999999,9,99999,99999999,10859,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3588157,-071.2581079,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4805,3,000,20,1,26,1,04,2,1,0,0,2,25,017,368400,2018,2,9999,99999,99999999,9,99999,99999999,10859,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3588157,-071.2581079,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4806,3,000,20,1,26,1,04,2,1,0,0,2,25,017,368400,2018,2,9999,99999,99999999,9,99999,99999999,10859,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,72600,F,00618241,148,1,99999,99999999,+42.3588157,-071.2581079,L,1,15764,71634,71650,1,Y,Y,72600,A,00618241,00613,1,99999,99999,12000,127,016,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001918,02453 +4807,3,000,25,1,0,2,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4808,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4809,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4810,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4811,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4812,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4813,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4814,3,000,25,1,4,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4815,3,000,25,1,5,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4816,3,000,25,1,5,1,01,2,1,0,0,1,51,177,020311,5007,5,9999,99999,99999999,9,99999,99999999,72264,0,0,0,0,0,47900,07,999,99999,99999999,A,01480172,94311,N,01927378,548,5,99999,99999999,+38.1994320,-077.5956435,L,1,47894,99999,99999,9,N,N,74470,S,02390330,17700,3,99999,99999,03640,054,017,01779803,99999,99999999,9,999,99999,99999999,999999,31600,U,99999,U,000504,22551 +4817,3,000,20,1,45,1,04,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4818,3,000,20,1,45,1,04,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4819,3,000,20,1,45,1,04,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4820,3,000,20,1,45,1,04,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4821,3,000,20,1,46,1,01,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4822,3,000,20,1,46,1,01,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4823,3,000,20,1,47,1,04,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4824,3,000,20,1,47,2,11,2,2,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4825,3,000,20,1,47,2,11,2,2,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4826,3,000,20,1,48,1,01,2,1,0,0,2,06,001,443002,3003,3,9999,99999,99999999,9,99999,99999999,377602,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5191355,-121.9608115,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94538 +4827,3,000,21,2,32,2,11,2,2,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4828,3,000,21,2,32,2,11,2,2,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4829,3,000,21,2,32,2,11,2,2,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4830,3,000,21,2,43,2,18,2,2,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4831,3,000,21,2,51,2,06,2,1,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4832,3,000,21,2,53,2,06,2,1,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4833,3,000,21,2,53,2,06,2,1,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4834,3,000,21,2,53,2,06,2,1,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4835,3,000,21,2,56,2,01,2,1,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4836,3,000,21,2,57,2,06,2,1,0,0,2,06,037,535503,1002,1,9999,99999,99999999,9,99999,99999999,36699,0,0,0,0,0,31080,44,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+33.9566657,-118.2148753,L,1,31084,99999,99999,9,N,N,73080,A,02411935,03752,4,99999,99999,22710,063,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90280 +4837,3,000,21,2,73,2,11,2,2,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4838,3,000,21,2,73,2,11,2,2,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4839,3,000,21,2,79,2,01,2,1,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4840,3,000,21,2,83,2,11,2,2,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4841,3,000,21,2,83,2,11,2,2,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4842,3,000,22,1,81,2,11,2,2,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4843,3,000,24,1,59,2,11,2,2,0,0,2,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4844,3,000,25,1,3,2,01,2,1,0,0,1,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4845,3,000,25,1,4,2,11,2,2,0,0,1,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4846,3,000,25,1,4,2,11,2,2,0,0,1,12,086,015001,3000,3,9999,99999,99999999,9,99999,99999999,75415,0,0,0,0,0,33100,26,999,99999,99999999,A,00295755,91705,S,01935814,370,5,99999,99999999,+25.7498526,-080.4186165,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08618,3,99999,99999,00390,119,039,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000376,33175 +4847,3,000,21,1,26,1,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4848,3,000,21,1,26,1,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4849,3,000,21,1,26,2,11,2,2,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4850,3,000,21,1,26,2,11,2,2,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4851,3,000,21,1,29,1,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4852,3,000,21,1,29,1,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4853,3,000,21,1,43,2,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4854,3,000,21,1,45,1,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4855,3,000,21,1,46,1,01,2,1,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4856,3,000,21,1,52,1,11,2,2,0,0,2,16,039,960201,3016,3,9999,99999,99999999,9,99999,99999999,51842,0,0,0,0,0,34300,02,999,99999,99999999,A,00400252,92300,S,01936766,147,8,99999,99999999,+43.1474210,-115.6815875,L,2,99999,99999,99999,9,Y,N,54730,A,02411185,01000,4,99999,99999,02250,023,023,01779783,99999,99999999,9,999,99999,99999999,999999,59707,U,99999,U,392312,83647 +4857,3,000,20,1,67,2,06,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4858,3,000,20,1,70,2,06,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4859,3,000,20,1,70,2,06,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4860,3,000,20,1,71,1,01,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4861,3,000,20,1,74,2,06,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4862,3,000,20,2,27,1,02,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4863,3,000,20,2,27,1,02,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4864,3,000,20,2,27,1,02,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4865,3,000,20,2,27,1,02,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4866,3,000,20,2,27,1,02,2,1,0,0,2,34,039,030400,2009,2,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,35620,08,999,99999,99999999,A,00882235,21000,F,00885205,408,2,99999,99999999,+40.6549708,-074.1876874,L,1,35084,99999,99999,9,N,N,21000,A,00885205,01905,1,99999,99999,04590,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,020108,07206 +4867,3,000,34,1,67,2,06,2,1,0,0,2,48,029,170500,3003,3,9999,99999,99999999,9,99999,99999999,32558,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4539922,-098.5314216,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4868,3,000,34,2,66,1,01,2,1,0,0,2,48,029,170500,3003,3,9999,99999,99999999,9,99999,99999999,32558,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4539922,-098.5314216,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4869,3,000,20,2,47,2,11,1,2,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4870,3,000,20,1,36,2,03,2,1,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4871,3,000,20,1,36,2,06,2,1,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4872,3,000,20,1,38,2,06,2,1,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4873,3,000,20,1,38,2,06,2,1,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4874,3,000,20,1,55,2,11,2,2,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4875,3,000,20,1,55,2,11,2,2,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4876,3,000,20,1,55,2,11,2,2,0,0,2,48,029,170500,3004,3,9999,99999,99999999,9,99999,99999999,19260,0,0,0,0,0,41700,35,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4529757,-098.5312802,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05904,3,99999,99999,38730,116,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002005,78201 +4877,3,000,20,1,42,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4878,3,000,20,1,42,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4879,3,000,20,1,42,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4880,3,000,20,1,43,1,09,2,2,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4881,3,000,20,1,45,1,03,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4882,3,000,20,1,45,1,03,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4883,3,000,20,1,55,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4884,3,000,20,1,57,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4885,3,000,20,1,59,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4886,3,000,20,1,59,1,01,2,1,0,0,2,29,047,020604,2004,2,9999,99999,99999999,9,99999,99999999,28605,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1720487,-094.5208880,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000034,64117 +4887,3,000,30,1,18,2,01,2,1,0,0,2,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4888,3,000,30,2,1,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4889,3,000,30,2,1,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4890,3,000,30,2,1,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4891,3,000,30,2,2,2,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4892,3,000,30,2,4,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4893,3,000,30,2,4,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4894,3,000,30,2,4,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4895,3,000,30,2,4,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4896,3,000,30,2,4,1,01,2,1,0,0,1,49,049,010121,2019,2,9999,99999,99999999,9,99999,99999999,19696,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3762831,-111.9685074,L,1,99999,99999,99999,9,N,N,20810,A,02410380,49001,4,99999,99999,00030,002,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,EM0006,84005 +4897,3,000,25,2,27,1,02,2,1,0,0,2,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4898,3,000,26,1,15,1,02,2,1,0,0,1,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4899,3,000,27,1,15,2,06,2,1,0,0,1,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4900,3,000,27,1,15,2,06,2,1,0,0,1,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4901,3,000,28,2,55,2,06,2,1,0,0,2,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4902,3,000,31,2,63,1,02,2,1,0,0,2,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4903,3,000,34,1,61,1,02,2,1,0,0,2,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4904,3,000,34,1,61,1,02,2,1,0,0,2,48,201,240400,3041,3,9999,99999,99999999,9,99999,99999999,19231,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9691359,-095.3781319,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04625,3,99999,99999,07710,141,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000283,77073 +4905,3,000,20,1,44,2,06,1,1,0,0,2,48,201,233105,2029,2,9999,99999,99999999,9,99999,99999999,16750,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7841388,-095.1687150,L,1,99999,99999,99999,9,N,N,15628,S,02407640,04606,3,99999,99999,20250,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000375,77015 +4906,3,000,20,1,44,2,11,1,2,0,0,2,48,201,233105,2029,2,9999,99999,99999999,9,99999,99999999,16750,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7841388,-095.1687150,L,1,99999,99999,99999,9,N,N,15628,S,02407640,04606,3,99999,99999,20250,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000375,77015 +4907,3,000,20,2,52,2,11,1,2,0,0,2,29,161,890800,3003,3,9999,99999,99999999,9,99999,99999999,5477,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9361745,-091.7726685,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4908,3,000,20,1,52,1,08,2,2,0,0,2,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4909,3,000,22,1,38,1,01,2,1,0,0,2,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4910,3,000,22,1,39,1,01,2,1,0,0,2,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4911,3,000,25,2,0,2,08,2,2,0,0,1,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4912,3,000,29,1,50,1,08,2,2,0,0,2,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4913,3,000,30,1,14,1,01,2,1,0,0,1,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4914,3,000,30,2,7,1,01,2,1,0,0,1,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4915,3,000,34,1,29,1,04,2,1,0,0,2,29,161,890800,3004,3,9999,99999,99999999,9,99999,99999999,3146,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9356082,-091.7726397,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4916,3,000,20,1,25,1,01,1,1,0,0,2,29,161,890800,3005,3,9999,99999,99999999,9,99999,99999999,18958,0,0,0,0,0,40620,08,999,99999,99999999,A,00758535,62930,N,00767183,999,4,99999,99999999,+37.9309709,-091.7725210,L,2,99999,99999,99999,9,Y,N,62912,A,02396418,01600,2,99999,99999,26890,121,016,01779791,99999,99999999,9,999,99999,99999999,999999,76123,U,99999,U,000021,65401 +4917,3,000,20,1,38,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4918,3,000,20,1,39,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4919,3,000,20,1,42,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4920,3,000,20,1,42,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4921,3,000,20,1,42,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4922,3,000,20,1,42,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4923,3,000,20,1,49,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4924,3,000,20,1,51,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4925,3,000,20,1,51,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4926,3,000,20,1,51,2,06,2,1,0,0,2,48,201,540502,3006,3,9999,99999,99999999,9,99999,99999999,50437,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8497580,-095.6383826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04636,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000523,77084 +4927,3,000,20,2,37,2,06,2,1,0,0,2,12,057,003400,3026,3,9999,99999,99999999,9,99999,99999999,3866,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9752415,-082.4283033,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4928,3,000,22,2,22,2,06,2,1,0,0,2,12,057,003400,3026,3,9999,99999,99999999,9,99999,99999999,3866,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9752415,-082.4283033,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4929,3,000,28,2,35,2,06,2,1,0,0,2,12,057,003400,3026,3,9999,99999,99999999,9,99999,99999999,3866,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9752415,-082.4283033,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4930,3,000,28,2,38,2,06,2,1,0,0,2,12,057,003400,3026,3,9999,99999,99999999,9,99999,99999999,3866,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9752415,-082.4283033,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4931,3,000,36,2,22,2,01,2,1,0,0,2,12,057,003400,3026,3,9999,99999,99999999,9,99999,99999999,3866,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9752415,-082.4283033,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4932,3,000,20,1,71,1,02,1,1,0,0,2,12,057,003400,3027,3,9999,99999,99999999,9,99999,99999999,25955,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9748630,-082.4272467,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4933,3,000,20,2,57,1,02,1,1,0,0,2,12,057,003400,3027,3,9999,99999,99999999,9,99999,99999999,25955,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9748630,-082.4272467,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4934,3,000,20,2,66,2,02,1,1,0,0,2,12,057,003400,3027,3,9999,99999,99999999,9,99999,99999999,25955,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9748630,-082.4272467,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4935,3,000,20,1,42,1,02,2,1,0,0,2,12,057,003400,3027,3,9999,99999,99999999,9,99999,99999999,25955,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9748630,-082.4272467,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4936,3,000,20,1,42,1,02,2,1,0,0,2,12,057,003400,3027,3,9999,99999,99999999,9,99999,99999999,25955,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+27.9748630,-082.4272467,L,1,99999,99999,99999,9,Y,N,71000,A,02405568,05701,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000321,33605 +4937,3,000,25,2,17,1,06,2,1,0,0,1,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4938,3,000,25,2,18,1,07,2,2,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4939,3,000,25,2,18,1,07,2,2,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4940,3,000,25,2,18,1,07,2,2,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4941,3,000,25,2,21,2,25,2,3,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4942,3,000,25,2,47,2,15,2,2,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4943,3,000,26,1,26,1,04,2,1,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4944,3,000,27,1,42,2,06,2,1,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4945,3,000,29,1,50,2,25,2,3,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4946,3,000,29,1,58,1,04,2,1,0,0,2,09,011,702500,3006,3,9999,99999,99999999,9,99999,99999999,20776,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3459683,-072.0754987,L,1,99999,99999,76450,1,N,N,34180,A,02378275,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-014,06340 +4947,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4948,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4949,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4950,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4951,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4952,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4953,3,000,25,1,16,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4954,3,000,25,1,17,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4955,3,000,25,1,17,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4956,3,000,25,1,17,1,01,2,1,0,0,1,25,001,013400,2005,2,9999,99999,99999999,9,99999,99999999,446500,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,59735,A,00618259,148,1,99999,99999999,+41.7432960,-070.4909795,L,1,99999,99999,70900,1,N,N,20380,S,02378015,01201,1,99999,99999,10470,156,039,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,001643,02563 +4957,3,000,34,1,23,1,01,2,1,0,0,2,15,003,008414,1014,1,9999,99999,99999999,9,99999,99999999,9339,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3316535,-158.0145923,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4958,3,000,34,1,23,1,01,2,1,0,0,2,15,003,008414,1014,1,9999,99999,99999999,9,99999,99999999,9339,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3316535,-158.0145923,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4959,3,000,34,1,23,1,01,2,1,0,0,2,15,003,008414,1014,1,9999,99999,99999999,9,99999,99999999,9339,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3316535,-158.0145923,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4960,3,000,34,1,29,2,06,2,1,0,0,2,15,003,008414,1014,1,9999,99999,99999999,9,99999,99999999,9339,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3316535,-158.0145923,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4961,3,000,20,1,57,1,01,1,1,0,0,2,15,003,008414,1015,1,9999,99999,99999999,9,99999,99999999,6402,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3310689,-158.0148218,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4962,3,000,20,1,57,1,01,1,1,0,0,2,15,003,008414,1015,1,9999,99999,99999999,9,99999,99999999,6402,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3310689,-158.0148218,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4963,3,000,20,1,71,1,04,1,1,0,0,2,15,003,008414,1015,1,9999,99999,99999999,9,99999,99999999,6402,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3310689,-158.0148218,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4964,3,000,20,1,72,1,04,1,1,0,0,2,15,003,008414,1015,1,9999,99999,99999999,9,99999,99999999,6402,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3310689,-158.0148218,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4965,3,000,20,2,42,1,04,1,1,0,0,2,15,003,008414,1015,1,9999,99999,99999999,9,99999,99999999,6402,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3310689,-158.0148218,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4966,3,000,20,2,44,1,04,1,1,0,0,2,15,003,008414,1015,1,9999,99999,99999999,9,99999,99999999,6402,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3310689,-158.0148218,L,1,99999,99999,99999,9,N,N,07470,S,02414015,00308,4,99999,99999,00030,040,019,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96706 +4967,3,000,20,1,62,1,01,2,1,0,0,2,08,123,001500,3092,3,9999,99999,99999999,9,99999,99999999,975720,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4607814,-104.6470948,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4968,3,000,20,2,26,1,01,2,1,0,0,2,08,123,001500,3092,3,9999,99999,99999999,9,99999,99999999,975720,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4607814,-104.6470948,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4969,3,000,25,2,17,2,06,2,1,0,0,1,08,123,001500,3092,3,9999,99999,99999999,9,99999,99999999,975720,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4607814,-104.6470948,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4970,3,000,20,2,63,1,01,1,1,0,0,2,08,123,001500,3093,3,9999,99999,99999999,9,99999,99999999,279658,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4608740,-104.6566529,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4971,3,000,21,1,36,1,01,2,1,0,0,2,08,123,001500,3093,3,9999,99999,99999999,9,99999,99999999,279658,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4608740,-104.6566529,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4972,3,000,21,1,37,1,01,2,1,0,0,2,08,123,001500,3093,3,9999,99999,99999999,9,99999,99999999,279658,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4608740,-104.6566529,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4973,3,000,25,2,51,1,01,2,1,0,0,2,08,123,001500,3093,3,9999,99999,99999999,9,99999,99999999,279658,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4608740,-104.6566529,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4974,3,000,20,1,60,1,01,1,1,0,0,2,08,123,001500,3094,3,9999,99999,99999999,9,99999,99999999,167201,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4673982,-104.6574790,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4975,3,000,20,1,60,1,01,1,1,0,0,2,08,123,001500,3094,3,9999,99999,99999999,9,99999,99999999,167201,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4673982,-104.6574790,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4976,3,000,20,1,32,1,01,2,1,0,0,2,08,123,001500,3094,3,9999,99999,99999999,9,99999,99999999,167201,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4673982,-104.6574790,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,4,99999,99999,04410,048,013,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123120,80631 +4977,3,000,25,2,1,1,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4978,3,000,25,2,6,2,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4979,3,000,25,2,7,1,03,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4980,3,000,25,2,8,1,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4981,3,000,25,2,8,2,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4982,3,000,25,2,10,1,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4983,3,000,25,2,10,1,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4984,3,000,25,2,10,1,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4985,3,000,25,2,11,2,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4986,3,000,25,2,11,2,01,2,1,0,0,1,06,111,005906,1018,1,9999,99999,99999999,9,99999,99999999,52976,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1552809,-118.8340888,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91361 +4987,3,000,25,2,0,1,22,2,3,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4988,3,000,25,2,0,1,22,2,3,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4989,3,000,25,2,1,1,11,2,2,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4990,3,000,26,2,16,1,01,2,1,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4991,3,000,28,1,19,1,02,2,1,0,0,2,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4992,3,000,30,1,14,1,02,2,1,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4993,3,000,30,1,14,1,02,2,1,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4994,3,000,30,1,18,1,01,2,1,0,0,2,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4995,3,000,30,1,19,1,01,2,1,0,0,2,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4996,3,000,30,2,7,1,11,2,2,0,0,1,29,183,311203,1009,1,9999,99999,99999999,9,99999,99999999,27558,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,69434,N,02397874,476,4,99999,99999999,+38.7839997,-090.5934960,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000107,63376 +4997,3,000,29,2,61,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +4998,3,000,29,2,61,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +4999,3,000,29,2,61,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5000,3,000,29,2,64,1,05,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5001,3,000,29,2,65,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5002,3,000,29,2,65,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5003,3,000,29,2,65,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5004,3,000,29,2,65,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5005,3,000,29,2,65,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5006,3,000,29,2,70,1,01,2,1,0,0,2,32,003,005839,1019,1,9999,99999,99999999,9,99999,99999999,1202379,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94182,S,01937428,332,8,99999,99999999,+35.9748805,-115.1963974,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00415,4,99999,99999,00060,035,009,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006610,89141 +5007,3,000,21,1,69,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5008,3,000,21,1,69,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5009,3,000,21,1,70,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5010,3,000,21,2,35,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5011,3,000,21,2,35,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5012,3,000,21,2,35,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5013,3,000,21,2,35,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5014,3,000,21,2,36,1,01,2,1,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5015,3,000,21,2,41,1,08,2,2,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5016,3,000,21,2,41,1,08,2,2,0,0,2,25,027,719100,4013,4,9999,99999,99999999,9,99999,99999999,1427771,0,0,0,0,0,49340,02,715,99999,99999999,N,00606940,67385,A,00619490,148,1,99999,99999999,+42.4223509,-071.7651909,L,1,99999,99999,79600,1,9,9,99999,9,99999999,00501,1,99999,99999,11880,214,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001802,01564 +5017,3,000,20,1,66,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5018,3,000,20,1,66,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5019,3,000,20,1,66,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5020,3,000,21,1,43,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5021,3,000,21,1,65,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5022,3,000,21,2,28,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5023,3,000,21,2,28,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5024,3,000,21,2,28,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5025,3,000,21,2,29,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5026,3,000,21,2,75,1,01,2,1,0,0,2,18,087,970401,3041,3,9999,99999,99999999,9,99999,99999999,1614003,0,0,0,0,0,99999,03,999,99999,99999999,A,00450368,13132,A,00453213,999,3,99999,99999999,+41.6153584,-085.5091753,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13110,051,013,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,46761 +5027,3,000,25,2,2,1,01,2,1,0,0,1,32,021,970700,1043,1,9999,99999,99999999,9,99999,99999999,7300,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5236413,-118.6228935,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5028,3,000,25,2,2,1,01,2,1,0,0,1,32,021,970700,1043,1,9999,99999,99999999,9,99999,99999999,7300,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5236413,-118.6228935,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5029,3,000,30,2,6,1,01,2,1,0,0,1,32,021,970700,1043,1,9999,99999,99999999,9,99999,99999999,7300,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5236413,-118.6228935,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5030,3,000,20,1,30,2,01,2,1,0,0,2,32,021,970700,1044,1,9999,99999,99999999,9,99999,99999999,7429,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5236490,-118.6233739,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5031,3,000,27,2,23,2,01,2,1,0,0,2,32,021,970700,1044,1,9999,99999,99999999,9,99999,99999999,7429,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5236490,-118.6233739,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5032,3,000,27,2,23,2,01,2,1,0,0,2,32,021,970700,1044,1,9999,99999,99999999,9,99999,99999999,7429,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5236490,-118.6233739,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5033,3,000,20,2,27,1,01,1,1,0,0,2,32,021,970700,1046,1,9999,99999,99999999,9,99999,99999999,6929,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5220776,-118.6223987,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5034,3,000,20,2,47,1,01,1,1,0,0,2,32,021,970700,1046,1,9999,99999,99999999,9,99999,99999999,6929,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5220776,-118.6223987,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5035,3,000,20,2,48,2,06,1,1,0,0,2,32,021,970700,1046,1,9999,99999,99999999,9,99999,99999999,6929,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5220776,-118.6223987,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5036,3,000,20,2,50,1,01,1,1,0,0,2,32,021,970700,1046,1,9999,99999,99999999,9,99999,99999999,6929,0,0,0,0,0,99999,04,999,99999,99999999,A,00858644,94434,S,01937444,999,8,99999,99999999,+38.5220776,-118.6223987,L,9,99999,99999,99999,9,N,N,31300,S,02408359,00200,4,99999,99999,00330,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,89415 +5037,3,000,25,2,27,2,31,2,3,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5038,3,000,27,1,12,1,01,2,1,0,0,1,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5039,3,000,27,1,19,2,06,2,1,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5040,3,000,27,1,22,2,06,2,1,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5041,3,000,28,1,41,1,01,2,1,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5042,3,000,28,1,49,1,01,2,1,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5043,3,000,28,1,59,1,01,2,1,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5044,3,000,28,1,60,1,11,2,2,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5045,3,000,28,2,21,2,11,2,2,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5046,3,000,28,2,53,1,01,2,1,0,0,2,12,071,020600,3004,3,9999,99999,99999999,9,99999,99999999,176343,0,0,0,0,0,15980,17,999,99999,99999999,A,00295758,92392,S,01935870,163,5,99999,99999999,+26.6797086,-081.8928697,L,1,99999,99999,99999,9,N,N,49350,S,02403350,07104,3,99999,99999,01080,079,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000038,33903 +5047,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5048,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5049,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5050,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5051,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5052,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5053,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5054,3,000,25,1,6,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5055,3,000,25,1,10,1,02,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5056,3,000,25,1,11,2,06,2,1,0,0,1,51,059,421600,2001,2,9999,99999,99999999,9,99999,99999999,7516,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7395840,-077.0922290,L,1,47894,99999,99999,9,N,N,87410,S,02584939,05908,3,99999,99999,01260,044,036,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000413,22309 +5057,3,000,20,1,41,2,06,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5058,3,000,20,1,41,2,06,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5059,3,000,20,1,42,2,06,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5060,3,000,20,1,47,2,06,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5061,3,000,20,1,59,1,02,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5062,3,000,20,1,61,1,01,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5063,3,000,20,1,61,1,01,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5064,3,000,20,1,61,1,01,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5065,3,000,20,2,41,2,01,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5066,3,000,20,2,41,2,01,2,1,0,0,2,26,159,010600,1040,1,9999,99999,99999999,9,99999,99999999,571646,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,18560,A,01626138,999,3,99999,99999999,+42.3054149,-086.3029345,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,10980,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,159013,49043 +5067,3,000,20,1,62,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5068,3,000,20,1,62,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5069,3,000,20,1,62,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5070,3,000,20,1,63,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5071,3,000,20,1,64,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5072,3,000,20,1,71,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5073,3,000,20,1,71,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5074,3,000,20,1,73,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5075,3,000,20,1,80,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5076,3,000,20,1,83,1,01,1,1,0,0,2,55,085,970601,2020,2,9999,99999,99999999,9,99999,99999999,3662476,119254,0,0,119254,0,99999,07,999,99999,99999999,A,01581103,56425,A,01583800,999,3,99999,99999999,+45.6821144,-089.4912639,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,12720,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004242,54501 +5077,3,000,21,2,47,1,02,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5078,3,000,21,2,47,1,02,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5079,3,000,21,2,48,1,02,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5080,3,000,21,2,48,1,02,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5081,3,000,21,2,48,1,02,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5082,3,000,21,2,51,1,02,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5083,3,000,21,2,68,1,01,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5084,3,000,21,2,68,1,01,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5085,3,000,21,2,68,1,01,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5086,3,000,21,2,68,1,01,2,1,0,0,2,01,051,030802,1052,1,9999,99999,99999999,9,99999,99999999,182106,0,0,0,0,0,33860,02,999,99999,99999999,A,00161551,93456,S,00165763,388,6,99999,99999999,+32.5409657,-086.2221270,L,1,99999,99999,99999,9,N,N,81720,A,02405723,01901,3,99999,99999,01290,031,030,01779775,99999,99999999,9,999,99999,99999999,999999,94618,U,99999,U,000261,36092 +5087,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5088,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5089,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5090,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5091,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5092,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5093,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5094,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5095,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5096,3,000,20,2,79,1,02,1,1,0,0,2,36,005,002800,2000,2,9999,99999,99999999,9,99999,99999999,76371,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8209691,-073.8745568,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04209,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000753,10473 +5097,3,000,25,1,15,1,01,2,1,0,0,1,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5098,3,000,25,1,20,2,06,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5099,3,000,25,1,20,2,06,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5100,3,000,25,1,20,2,06,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5101,3,000,25,1,20,2,06,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5102,3,000,25,1,21,1,01,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5103,3,000,25,1,21,1,01,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5104,3,000,25,1,21,1,01,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5105,3,000,25,1,21,1,04,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5106,3,000,25,1,23,1,01,2,1,0,0,2,20,173,009504,3002,3,9999,99999,99999999,9,99999,99999999,40152,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7218836,-097.4505177,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,09140,100,027,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501550,67212 +5107,5,801,38,1,67,1,01,0,1,2,7,2,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5108,5,801,38,2,54,1,08,0,2,2,7,2,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5109,5,801,38,2,65,1,01,0,1,2,7,2,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5110,5,801,38,2,65,1,01,0,1,2,7,2,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5111,5,801,38,2,66,1,01,0,1,2,7,2,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5112,5,997,38,1,12,1,02,0,1,2,7,1,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5113,5,997,38,1,12,1,02,0,1,2,7,1,06,037,191710,2000,2,9999,99999,99999999,9,99999,99999999,34587,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0862820,-118.3115165,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5114,3,000,20,1,23,2,06,1,1,0,0,2,06,037,191710,2004,2,9999,99999,99999999,9,99999,99999999,16008,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0842055,-118.3097085,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5115,3,000,20,1,36,2,01,1,1,0,0,2,06,037,191710,2004,2,9999,99999,99999999,9,99999,99999999,16008,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0842055,-118.3097085,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5116,3,000,20,1,37,2,01,1,1,0,0,2,06,037,191710,2004,2,9999,99999,99999999,9,99999,99999999,16008,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0842055,-118.3097085,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03732,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90038 +5117,3,000,20,2,64,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5118,3,000,20,2,64,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5119,3,000,20,2,64,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5120,3,000,20,2,64,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5121,3,000,20,2,64,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5122,3,000,20,2,64,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5123,3,000,21,1,40,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5124,3,000,21,1,40,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5125,3,000,21,1,40,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5126,3,000,21,1,43,1,01,2,1,0,0,2,39,017,010904,4006,4,9999,99999,99999999,9,99999,99999999,58594,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3461425,-084.5532928,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAM,45014 +5127,5,103,37,1,41,2,06,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5128,5,103,37,1,41,2,06,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5129,5,103,37,1,41,2,06,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5130,5,103,37,1,41,2,06,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5131,5,103,37,1,41,2,06,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5132,5,103,37,1,41,2,06,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5133,5,103,37,1,42,1,01,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5134,5,103,37,1,42,1,01,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5135,5,103,37,1,42,1,02,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5136,5,103,37,1,42,1,02,0,1,1,1,2,34,021,003708,2002,2,9999,99999,99999999,9,99999,99999999,26599,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,22185,A,00882128,408,2,99999,99999999,+40.2479066,-074.8045381,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02301,1,99999,99999,04920,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,010027,08618 +5137,3,000,21,2,33,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5138,3,000,21,2,37,2,11,2,2,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5139,3,000,21,2,37,2,11,2,2,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5140,3,000,21,2,65,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5141,3,000,21,2,66,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5142,3,000,21,2,70,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5143,3,000,21,2,70,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5144,3,000,21,2,71,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5145,3,000,21,2,71,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5146,3,000,21,2,71,1,01,2,1,0,0,2,42,077,006303,2003,2,9999,99999,99999999,9,99999,99999999,8718,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,46392,F,01215378,999,2,99999,99999999,+40.5139488,-075.5571190,L,1,99999,99999,99999,9,N,N,46392,A,01215378,02802,1,99999,99999,08550,134,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000980,18062 +5147,3,000,20,2,76,1,01,1,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5148,3,000,20,2,78,1,01,1,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5149,3,000,20,1,73,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5150,3,000,20,1,73,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5151,3,000,20,1,73,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5152,3,000,20,1,86,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5153,3,000,20,2,82,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5154,3,000,20,2,82,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5155,3,000,22,1,63,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5156,3,000,22,1,64,1,01,2,1,0,0,2,36,021,000700,4048,4,9999,99999,99999999,9,99999,99999999,704577,0,0,0,0,0,26460,19,999,99999,99999999,A,00974109,28871,A,00979000,104,2,99999,99999999,+42.2847672,-073.7232622,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02100,1,99999,99999,14940,106,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,12534 +5157,3,000,25,2,21,1,01,2,1,0,0,2,19,049,050814,1006,1,9999,99999,99999999,9,99999,99999999,15179,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5856282,-093.7979068,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5158,3,000,25,2,21,1,01,2,1,0,0,2,19,049,050814,1006,1,9999,99999,99999999,9,99999,99999999,15179,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5856282,-093.7979068,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5159,3,000,25,2,21,1,01,2,1,0,0,2,19,049,050814,1006,1,9999,99999,99999999,9,99999,99999999,15179,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5856282,-093.7979068,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5160,3,000,25,2,21,1,01,2,1,0,0,2,19,049,050814,1006,1,9999,99999,99999999,9,99999,99999999,15179,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5856282,-093.7979068,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5161,3,000,20,1,27,1,01,1,1,0,0,2,19,049,050814,1007,1,9999,99999,99999999,9,99999,99999999,4215,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5861149,-093.8013443,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5162,3,000,20,1,27,1,01,1,1,0,0,2,19,049,050814,1007,1,9999,99999,99999999,9,99999,99999999,4215,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5861149,-093.8013443,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5163,3,000,20,1,27,1,01,1,1,0,0,2,19,049,050814,1007,1,9999,99999,99999999,9,99999,99999999,4215,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5861149,-093.8013443,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5164,3,000,20,1,27,1,01,1,1,0,0,2,19,049,050814,1007,1,9999,99999,99999999,9,99999,99999999,4215,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5861149,-093.8013443,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5165,3,000,20,1,29,1,01,1,1,0,0,2,19,049,050814,1007,1,9999,99999,99999999,9,99999,99999999,4215,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5861149,-093.8013443,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5166,3,000,20,1,29,1,01,1,1,0,0,2,19,049,050814,1007,1,9999,99999,99999999,9,99999,99999999,4215,0,0,0,0,0,19780,03,999,99999,99999999,A,00465213,90300,G,00467474,218,4,99999,99999999,+41.5861149,-093.8013443,L,1,99999,99999,99999,9,Y,N,83910,A,02397266,01600,2,99999,99999,30510,044,022,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,049039,50266 +5167,3,000,20,1,43,2,06,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5168,3,000,21,2,45,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5169,3,000,21,2,46,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5170,3,000,22,2,27,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5171,3,000,22,2,27,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5172,3,000,22,2,27,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5173,3,000,22,2,27,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5174,3,000,22,2,27,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5175,3,000,22,2,31,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5176,3,000,22,2,33,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +5177,3,000,25,2,12,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5178,3,000,25,2,12,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5179,3,000,25,2,15,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5180,3,000,25,2,16,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5181,3,000,25,2,25,1,01,2,1,0,0,2,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5182,3,000,26,1,18,1,01,2,1,0,0,2,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5183,3,000,26,1,18,1,01,2,1,0,0,2,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5184,3,000,27,1,6,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5185,3,000,27,1,12,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5186,3,000,27,2,5,1,01,2,1,0,0,1,38,059,020302,1000,1,9999,99999,99999999,9,99999,99999999,955430,0,0,0,0,0,13900,00,999,99999,99999999,A,01034207,49900,F,01036146,999,4,99999,99999999,+46.8128085,-100.8895620,L,1,99999,99999,99999,9,N,N,49900,A,01036146,00300,2,99999,99999,11820,034,034,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003401,58554 +5187,3,000,34,1,34,1,04,2,1,0,0,2,06,037,311700,3005,3,9999,99999,99999999,9,99999,99999999,10385,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1622549,-118.3296036,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91505 +5188,3,000,34,1,36,1,04,2,1,0,0,2,06,037,311700,3005,3,9999,99999,99999999,9,99999,99999999,10385,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1622549,-118.3296036,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91505 +5189,3,000,34,2,31,1,02,2,1,0,0,2,06,037,311700,3005,3,9999,99999,99999999,9,99999,99999999,10385,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1622549,-118.3296036,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91505 +5190,3,000,34,2,43,1,01,2,1,0,0,2,06,037,311700,3005,3,9999,99999,99999999,9,99999,99999999,10385,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1622549,-118.3296036,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91505 +5191,3,000,36,1,34,1,04,2,1,0,0,2,06,037,311700,3005,3,9999,99999,99999999,9,99999,99999999,10385,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1622549,-118.3296036,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91505 +5192,3,000,20,1,26,1,01,1,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +5193,3,000,20,1,26,1,01,1,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +5194,3,000,20,1,26,1,01,1,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +5195,3,000,20,1,38,1,01,1,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +5196,3,000,20,1,38,1,01,1,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +5197,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5198,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5199,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5200,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5201,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5202,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5203,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5204,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5205,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5206,5,501,38,1,19,1,01,0,1,2,5,2,51,760,040300,2015,2,9999,99999,99999999,9,99999,99999999,59738,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5485568,-077.4531008,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000214,23284 +5207,3,000,20,2,62,1,01,1,1,0,0,2,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5208,3,000,25,2,2,1,01,2,1,0,0,1,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5209,3,000,25,2,2,1,01,2,1,0,0,1,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5210,3,000,25,2,10,1,01,2,1,0,0,1,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5211,3,000,25,2,10,1,01,2,1,0,0,1,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5212,3,000,25,2,10,1,01,2,1,0,0,1,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5213,3,000,25,2,17,1,01,2,1,0,0,1,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5214,3,000,32,2,34,1,01,2,1,0,0,2,36,113,073500,1022,1,9999,99999,99999999,9,99999,99999999,70548,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.4949761,-073.8490324,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12810 +5215,3,000,20,2,60,1,01,1,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +5216,3,000,20,2,70,1,01,1,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +5217,3,000,25,2,7,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5218,3,000,25,2,8,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5219,3,000,25,2,9,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5220,3,000,25,2,9,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5221,3,000,25,2,9,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5222,3,000,25,2,9,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5223,3,000,25,2,9,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5224,3,000,25,2,9,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5225,3,000,25,2,11,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5226,3,000,25,2,11,1,04,2,1,0,0,1,39,061,024322,3000,3,9999,99999,99999999,9,99999,99999999,260937,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,76028,A,01086232,178,3,99999,99999999,+39.2694832,-084.3267242,L,1,99999,99999,99999,9,N,N,72620,S,02585527,04701,2,99999,99999,04486,027,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031BNR,45249 +5227,3,000,21,1,30,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5228,3,000,21,2,44,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5229,3,000,21,2,44,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5230,3,000,22,1,35,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5231,3,000,22,1,45,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5232,3,000,22,1,45,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5233,3,000,25,1,0,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5234,3,000,25,1,0,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5235,3,000,25,1,17,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5236,3,000,25,1,17,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +5237,3,000,20,2,49,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5238,3,000,20,2,50,1,04,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5239,3,000,20,2,53,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5240,3,000,20,2,57,2,03,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5241,3,000,20,2,67,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5242,3,000,20,2,79,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5243,3,000,21,1,24,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5244,3,000,21,1,33,2,11,2,2,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5245,3,000,21,1,33,2,11,2,2,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5246,3,000,21,1,34,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +5247,3,000,25,1,42,1,01,2,1,0,0,2,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5248,3,000,25,1,56,1,01,2,1,0,0,2,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5249,3,000,25,1,56,1,01,2,1,0,0,2,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5250,3,000,25,2,0,2,01,2,1,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5251,3,000,25,2,0,2,01,2,1,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5252,3,000,25,2,0,2,06,2,1,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5253,3,000,25,2,0,2,06,2,1,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5254,3,000,25,2,1,2,01,2,1,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5255,3,000,25,2,1,2,11,2,2,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5256,3,000,25,2,1,2,11,2,2,0,0,1,48,113,015403,1002,1,9999,99999,99999999,9,99999,99999999,29574,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7561484,-097.0199555,L,1,19124,99999,99999,9,N,N,30464,A,02410632,02320,3,99999,99999,21420,104,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004513,75050 +5257,3,000,20,2,63,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5258,3,000,20,2,63,1,08,2,2,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5259,3,000,20,2,64,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5260,3,000,20,2,84,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5261,3,000,21,1,36,2,11,2,2,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5262,3,000,21,1,37,2,11,2,2,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5263,3,000,21,1,55,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5264,3,000,21,1,61,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5265,3,000,21,1,70,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5266,3,000,21,2,23,2,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +5267,3,000,20,1,60,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5268,3,000,20,1,60,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5269,3,000,20,1,60,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5270,3,000,20,1,62,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5271,3,000,20,1,62,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5272,3,000,20,1,68,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5273,3,000,20,1,68,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5274,3,000,20,1,68,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5275,3,000,20,1,68,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5276,3,000,20,1,68,1,01,2,1,0,0,2,42,003,473500,2001,2,9999,99999,99999999,9,99999,99999999,167538,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,51696,A,01215817,430,2,99999,99999999,+40.3688508,-080.0573331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01806,1,99999,99999,16110,042,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004440,15228 +5277,3,000,20,1,21,1,06,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5278,3,000,20,1,24,1,06,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5279,3,000,20,1,27,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5280,3,000,20,1,27,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5281,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5282,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5283,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5284,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5285,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5286,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +5287,3,000,20,1,63,2,15,2,2,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5288,3,000,20,2,21,1,01,2,1,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5289,3,000,20,2,38,2,15,2,2,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5290,3,000,20,2,63,1,01,2,1,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5291,3,000,20,2,63,1,01,2,1,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5292,3,000,20,2,65,2,15,2,2,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5293,3,000,20,2,71,1,02,2,1,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5294,3,000,20,2,81,2,11,2,2,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5295,3,000,20,2,88,2,11,2,2,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5296,3,000,20,2,92,1,02,2,1,0,0,2,12,097,042201,2010,2,9999,99999,99999999,9,99999,99999999,15405,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,91768,S,01935819,422,5,99999,99999999,+28.3203348,-081.4121678,L,1,99999,99999,99999,9,Y,N,36950,A,02404839,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000411,34741 +5297,3,000,20,1,44,1,01,1,1,0,0,2,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5298,3,000,20,1,44,1,01,1,1,0,0,2,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5299,3,000,20,1,44,1,01,1,1,0,0,2,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5300,3,000,20,2,53,1,01,2,1,0,0,2,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5301,3,000,20,2,54,1,01,2,1,0,0,2,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5302,3,000,25,2,13,1,01,2,1,0,0,1,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5303,3,000,25,2,13,1,01,2,1,0,0,1,21,107,971300,5044,5,9999,99999,99999999,9,99999,99999999,30421,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1804152,-087.5501085,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5304,3,000,20,2,29,1,01,2,1,0,0,2,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5305,3,000,20,2,57,1,01,2,1,0,0,2,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5306,3,000,20,2,57,1,01,2,1,0,0,2,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +5307,3,000,25,2,18,1,02,2,1,0,0,2,01,015,000600,1050,1,9999,99999,99999999,9,99999,99999999,64502,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6513586,-085.8348126,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5308,3,000,25,2,18,1,02,2,1,0,0,2,01,015,000600,1050,1,9999,99999,99999999,9,99999,99999999,64502,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6513586,-085.8348126,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5309,3,000,36,2,53,1,02,2,1,0,0,2,01,015,000600,1050,1,9999,99999,99999999,9,99999,99999999,64502,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6513586,-085.8348126,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5310,3,000,20,1,64,1,01,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5311,3,000,20,2,29,1,02,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5312,3,000,20,2,57,1,01,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5313,3,000,25,1,26,1,02,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5314,3,000,25,1,26,1,02,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5315,3,000,25,1,26,1,02,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5316,3,000,25,1,26,1,02,2,1,0,0,2,01,015,000600,1051,1,9999,99999,99999999,9,99999,99999999,24293,0,0,0,0,0,11500,03,999,99999,99999999,A,00161533,90099,S,00161600,999,6,99999,99999999,+33.6525864,-085.8369759,L,1,99999,99999,99999,9,Y,N,01852,A,02403101,00800,3,99999,99999,00090,032,012,01779775,99999,99999999,9,999,99999,99999999,999999,02629,U,99999,U,000015,36201 +5317,3,000,30,2,16,2,11,2,2,0,0,1,48,209,010401,2021,2,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8536986,-097.9424338,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000114,78666 +5318,3,000,33,1,46,2,06,2,1,0,0,2,48,209,010401,2021,2,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8536986,-097.9424338,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000114,78666 +5319,3,000,33,1,70,1,01,2,1,0,0,2,48,209,010401,2021,2,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8536986,-097.9424338,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000114,78666 +5320,3,000,36,1,36,2,06,2,1,0,0,2,48,209,010401,2021,2,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8536986,-097.9424338,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000114,78666 +5321,3,000,36,1,54,1,01,2,1,0,0,2,48,209,010401,2021,2,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8536986,-097.9424338,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000114,78666 +5322,3,000,36,2,62,1,02,2,1,0,0,2,48,209,010401,2021,2,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8536986,-097.9424338,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000114,78666 +5323,3,000,20,1,65,1,01,1,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +5324,3,000,20,1,65,1,01,1,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +5325,3,000,20,2,53,2,01,1,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +5326,3,000,20,2,63,2,08,1,2,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +5327,3,000,20,2,48,2,11,2,2,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5328,3,000,20,2,48,2,11,2,2,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5329,3,000,20,2,48,2,11,2,2,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5330,3,000,20,2,48,2,11,2,2,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5331,3,000,20,2,48,2,11,2,2,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5332,3,000,20,2,49,2,01,2,1,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5333,3,000,20,2,49,2,01,2,1,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5334,3,000,20,2,49,2,01,2,1,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5335,3,000,20,2,49,2,01,2,1,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5336,3,000,20,2,49,2,11,2,2,0,0,2,06,073,010005,1003,1,9999,99999,99999999,9,99999,99999999,43975,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5640397,-117.0436378,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92173 +5337,3,000,25,1,33,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5338,3,000,25,1,33,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5339,3,000,25,1,33,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5340,3,000,25,1,33,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5341,3,000,25,1,33,1,07,2,2,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5342,3,000,25,1,34,2,06,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5343,3,000,25,1,35,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5344,3,000,25,1,35,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5345,3,000,25,1,35,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5346,3,000,25,1,35,1,02,2,1,0,0,2,36,047,025100,2001,2,9999,99999,99999999,9,99999,99999999,23103,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6874887,-073.9493156,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001378,11216 +5347,3,000,20,1,51,1,02,1,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5348,3,000,20,1,53,2,01,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5349,3,000,20,1,55,2,01,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5350,3,000,20,1,73,1,02,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5351,3,000,20,1,88,1,01,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5352,3,000,20,2,53,1,15,2,2,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5353,3,000,20,2,65,1,01,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5354,3,000,21,2,29,2,05,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5355,3,000,21,2,38,2,18,2,2,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5356,3,000,25,1,45,1,01,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +5357,3,000,20,1,37,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5358,3,000,20,1,37,2,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5359,3,000,20,1,38,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5360,3,000,20,1,38,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5361,3,000,20,1,38,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5362,3,000,20,1,39,2,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5363,3,000,20,1,41,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5364,3,000,20,1,42,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5365,3,000,20,1,42,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5366,3,000,20,1,42,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +5367,3,000,25,2,6,1,02,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5368,3,000,25,2,6,2,06,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5369,3,000,25,2,6,2,06,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5370,3,000,25,2,6,2,06,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5371,3,000,25,2,7,1,01,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5372,3,000,25,2,7,1,04,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5373,3,000,25,2,7,1,04,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5374,3,000,25,2,7,2,06,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5375,3,000,25,2,7,2,06,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5376,3,000,25,2,7,2,06,2,1,0,0,1,48,113,019202,1009,1,9999,99999,99999999,9,99999,99999999,293021,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9423087,-096.7477294,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001501,75080 +5377,3,000,20,1,54,2,06,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5378,3,000,20,1,54,2,06,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5379,3,000,20,1,58,2,06,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5380,3,000,20,1,58,2,06,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5381,3,000,20,1,61,1,01,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5382,3,000,20,1,61,1,01,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5383,3,000,20,1,62,2,06,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5384,3,000,20,1,66,1,01,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5385,3,000,20,1,66,1,01,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5386,3,000,20,1,75,2,11,1,2,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +5387,3,000,34,2,23,1,01,2,1,0,0,2,21,231,920300,2024,2,9999,99999,99999999,9,99999,99999999,597525,19897,0,0,19897,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8333581,-084.8605676,B,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5388,3,000,34,2,23,1,01,2,1,0,0,2,21,231,920300,2024,2,9999,99999,99999999,9,99999,99999999,597525,19897,0,0,19897,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8333581,-084.8605676,B,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5389,3,000,36,2,3,1,01,2,1,0,0,1,21,231,920300,2024,2,9999,99999,99999999,9,99999,99999999,597525,19897,0,0,19897,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8333581,-084.8605676,B,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5390,3,000,36,2,3,1,01,2,1,0,0,1,21,231,920300,2024,2,9999,99999,99999999,9,99999,99999999,597525,19897,0,0,19897,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8333581,-084.8605676,B,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5391,3,000,36,2,3,1,01,2,1,0,0,1,21,231,920300,2024,2,9999,99999,99999999,9,99999,99999999,597525,19897,0,0,19897,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8333581,-084.8605676,B,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5392,3,000,36,2,52,1,01,2,1,0,0,2,21,231,920300,2024,2,9999,99999,99999999,9,99999,99999999,597525,19897,0,0,19897,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8333581,-084.8605676,B,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5393,3,000,20,1,27,2,06,2,1,0,0,2,21,231,920300,2025,2,9999,99999,99999999,9,99999,99999999,20628,0,0,0,0,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8307297,-084.8552938,L,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5394,3,000,20,1,27,2,06,2,1,0,0,2,21,231,920300,2025,2,9999,99999,99999999,9,99999,99999999,20628,0,0,0,0,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8307297,-084.8552938,L,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5395,3,000,21,2,29,1,01,2,1,0,0,2,21,231,920300,2025,2,9999,99999,99999999,9,99999,99999999,20628,0,0,0,0,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8307297,-084.8552938,L,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5396,3,000,21,2,29,2,06,2,1,0,0,2,21,231,920300,2025,2,9999,99999,99999999,9,99999,99999999,20628,0,0,0,0,0,99999,05,999,99999,99999999,A,00516962,92368,S,01937151,999,6,99999,99999999,+36.8307297,-084.8552938,L,9,99999,99999,99999,9,N,N,53130,A,02404291,00700,3,99999,99999,05790,052,016,01779786,99999,99999999,9,999,99999,99999999,999999,58816,U,99999,U,00A102,42633 +5397,3,000,25,1,6,2,01,2,1,0,0,1,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5398,3,000,25,2,32,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5399,3,000,25,2,32,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5400,3,000,25,2,32,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5401,3,000,25,2,32,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5402,3,000,25,2,33,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5403,3,000,28,2,47,1,03,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5404,3,000,28,2,59,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5405,3,000,29,2,64,1,01,2,1,0,0,2,48,085,030542,3039,3,9999,99999,99999999,9,99999,99999999,14870,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1428802,-096.7148553,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5406,3,000,20,1,42,1,02,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +5407,3,000,20,1,25,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5408,3,000,20,1,45,1,01,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5409,3,000,20,1,45,1,01,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5410,3,000,20,1,45,1,01,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5411,3,000,20,1,45,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5412,3,000,20,1,48,1,01,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5413,3,000,20,1,59,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5414,3,000,20,1,59,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5415,3,000,20,1,59,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5416,3,000,20,2,27,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +5417,3,000,20,1,42,1,04,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5418,3,000,20,1,42,1,04,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5419,3,000,20,1,42,1,04,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5420,3,000,20,1,42,1,04,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5421,3,000,20,1,42,1,04,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5422,3,000,20,1,42,1,04,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5423,3,000,20,1,44,1,01,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5424,3,000,20,1,44,1,01,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5425,3,000,20,1,44,1,01,2,1,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5426,3,000,20,1,46,2,18,2,2,0,0,2,36,061,006400,2000,2,9999,99999,99999999,9,99999,99999999,16997,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7373837,-073.9827368,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04165,1,99999,99999,20580,074,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001071,10010 +5427,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5428,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5429,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5430,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5431,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5432,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5433,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5434,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5435,3,000,21,2,57,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5436,3,000,21,2,58,1,01,2,1,0,0,2,51,041,100931,2011,2,9999,99999,99999999,9,99999,99999999,904246,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,90896,N,01927153,999,5,99999,99999999,+37.4889440,-077.6044674,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04102,3,99999,99999,00840,068,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000406,23236 +5437,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5438,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5439,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5440,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5441,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5442,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5443,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5444,5,203,37,1,18,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5445,5,203,37,1,19,1,03,0,1,1,2,2,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5446,5,203,37,2,13,1,03,0,1,1,2,1,02,020,001602,1025,1,9999,99999,99999999,9,17140,02418878,206516,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1860584,-149.8299407,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,017,00I,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,17-405,99508 +5447,3,000,20,1,39,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5448,3,000,20,1,39,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5449,3,000,20,1,39,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5450,3,000,20,1,39,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5451,3,000,20,1,39,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5452,3,000,20,1,40,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5453,3,000,20,1,41,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5454,3,000,20,1,41,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5455,3,000,20,1,67,1,10,2,2,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5456,3,000,20,2,27,1,01,2,1,0,0,2,32,003,003215,4003,4,9999,99999,99999999,9,99999,99999999,10162,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1987163,-115.2636461,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00405,4,99999,99999,00060,034,006,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,003754,89128 +5457,3,000,20,1,47,1,01,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5458,3,000,20,1,48,1,01,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5459,3,000,20,1,48,1,01,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5460,3,000,20,1,48,1,01,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5461,3,000,20,1,49,1,01,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5462,3,000,20,1,49,1,04,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5463,3,000,20,1,49,1,04,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5464,3,000,20,1,49,1,04,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5465,3,000,20,1,49,1,04,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5466,3,000,20,1,49,1,04,2,1,0,0,2,32,003,003660,1008,1,9999,99999,99999999,9,99999,99999999,80918,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.2827542,-115.1695880,L,1,99999,99999,99999,9,N,N,51800,A,02411273,00403,4,99999,99999,00060,017,001,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002484,89084 +5467,3,000,32,1,24,2,06,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5468,3,000,32,2,39,2,06,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5469,3,000,34,1,30,1,01,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5470,3,000,34,1,47,1,01,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5471,3,000,34,1,47,1,01,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5472,3,000,34,1,47,1,01,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5473,3,000,34,1,69,1,01,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5474,3,000,34,2,35,2,06,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5475,3,000,34,2,66,2,06,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5476,3,000,34,2,76,1,01,2,1,0,0,2,34,021,002701,1015,1,9999,99999,99999999,9,99999,99999999,41119,0,0,0,0,0,45940,04,999,99999,99999999,A,00882229,29310,A,00882127,408,2,99999,99999999,+40.2171195,-074.7214648,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02303,1,99999,99999,06540,014,014,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,015017,08610 +5477,3,000,25,2,8,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5478,3,000,25,2,8,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5479,3,000,25,2,8,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5480,3,000,25,2,11,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5481,3,000,25,2,11,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5482,3,000,25,2,11,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5483,3,000,25,2,11,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5484,3,000,25,2,11,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5485,3,000,25,2,13,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5486,3,000,25,2,13,1,01,2,1,0,0,1,22,003,950501,3031,3,9999,99999,99999999,9,99999,99999999,14013779,1956,0,0,1956,0,99999,04,999,99999,99999999,A,00558397,95095,N,01930173,999,7,99999,99999999,+30.4708080,-092.8834217,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,00060,032,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0002-2,70648 +5487,3,000,20,2,24,1,01,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5488,3,000,20,2,24,1,01,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5489,3,000,20,2,24,1,01,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5490,3,000,20,2,24,1,01,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5491,3,000,20,2,24,1,04,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5492,3,000,20,2,24,1,04,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5493,3,000,20,2,24,2,01,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5494,3,000,20,2,24,2,06,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5495,3,000,20,2,24,2,06,2,1,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5496,3,000,20,2,24,2,28,2,3,0,0,2,06,099,000807,2011,2,9999,99999,99999999,9,99999,99999999,152990,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,91980,S,01935203,488,9,99999,99999999,+37.6837868,-121.0475332,L,1,99999,99999,99999,9,Y,N,48354,A,02411130,09902,4,37950,25150,99999,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,58006,U,99999,U,,95350 +5497,3,000,21,1,52,1,01,2,1,0,0,2,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5498,3,000,21,2,36,1,04,2,1,0,0,2,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5499,3,000,21,2,38,1,04,2,1,0,0,2,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5500,3,000,21,2,43,1,08,2,2,0,0,2,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5501,3,000,25,1,5,1,01,2,1,0,0,1,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5502,3,000,25,1,5,1,01,2,1,0,0,1,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5503,3,000,25,1,5,1,01,2,1,0,0,1,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5504,3,000,25,1,5,1,01,2,1,0,0,1,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5505,3,000,25,1,5,1,01,2,1,0,0,1,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5506,3,000,25,1,12,1,01,2,1,0,0,1,05,007,020605,2001,2,9999,99999,99999999,9,99999,99999999,51110,0,0,0,0,0,22220,03,999,99999,99999999,A,00069896,93640,N,01989192,999,7,99999,99999999,+36.3889739,-094.2191829,L,1,99999,99999,99999,9,Y,N,05320,A,02403857,00102,3,99999,99999,03060,093,001,00068085,99999,99999999,9,999,99999,99999999,999999,29494,U,99999,U,000113,72712 +5507,3,000,20,1,87,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5508,3,000,20,2,55,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5509,3,000,20,2,55,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5510,3,000,20,2,55,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5511,3,000,20,2,56,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5512,3,000,20,2,56,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5513,3,000,20,2,56,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5514,3,000,20,2,56,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5515,3,000,20,2,58,1,02,1,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5516,3,000,20,1,29,1,02,2,1,0,0,2,26,163,533400,1016,1,9999,99999,99999999,9,99999,99999999,37032,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3632758,-083.1210295,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163511,48204 +5517,3,000,21,1,26,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5518,3,000,21,1,28,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5519,3,000,21,1,29,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5520,3,000,21,1,29,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5521,3,000,21,1,44,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5522,3,000,21,1,44,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5523,3,000,21,1,44,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5524,3,000,21,1,44,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5525,3,000,21,1,44,1,04,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5526,3,000,21,1,48,1,01,2,1,0,0,2,48,201,555304,4010,4,9999,99999,99999999,9,99999,99999999,388648,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.1270222,-095.5507702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04630,3,99999,99999,25740,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000690,77389 +5527,3,000,20,2,57,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5528,3,000,20,2,57,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5529,3,000,20,2,58,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5530,3,000,20,2,58,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5531,3,000,20,2,58,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5532,3,000,21,2,59,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5533,3,000,25,1,3,1,01,2,1,0,0,1,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5534,3,000,25,1,3,1,01,2,1,0,0,1,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5535,3,000,25,1,31,1,04,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5536,3,000,25,1,47,1,01,2,1,0,0,2,47,179,061200,2017,2,9999,99999,99999999,9,99999,99999999,54868,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3516254,-082.3389854,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +5537,3,000,21,2,53,1,01,2,1,0,0,2,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5538,3,000,21,2,53,1,01,2,1,0,0,2,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5539,3,000,21,2,54,1,01,2,1,0,0,2,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5540,3,000,22,2,50,1,01,2,1,0,0,2,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5541,3,000,25,1,12,1,01,2,1,0,0,1,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5542,3,000,25,1,12,1,01,2,1,0,0,1,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5543,3,000,25,1,12,1,01,2,1,0,0,1,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5544,3,000,25,1,12,1,01,2,1,0,0,1,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5545,3,000,25,1,12,1,01,2,1,0,0,1,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5546,3,000,25,1,12,1,01,2,1,0,0,1,05,031,000102,3026,3,9999,99999,99999999,9,99999,99999999,29305,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.8303844,-090.6838329,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,08280,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000025,72401 +5547,3,000,25,2,4,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5548,3,000,25,2,4,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5549,3,000,25,2,4,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5550,3,000,25,2,12,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5551,3,000,25,2,12,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5552,3,000,25,2,12,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5553,3,000,25,2,12,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5554,3,000,25,2,12,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5555,3,000,25,2,12,1,01,2,1,0,0,1,17,031,805502,3002,3,9999,99999,99999999,9,99999,99999999,28563,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0124220,-087.8225818,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5556,3,000,20,1,65,1,01,1,1,0,0,2,17,031,805502,3003,3,9999,99999,99999999,9,99999,99999999,18892,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0142351,-087.8225674,L,1,16984,99999,99999,9,N,N,57875,A,02396148,03108,2,30840,24090,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800030,60068 +5557,3,000,25,1,26,1,01,2,1,0,0,2,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5558,3,000,25,2,7,1,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5559,3,000,25,2,7,1,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5560,3,000,25,2,7,1,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5561,3,000,25,2,31,2,15,2,2,0,0,2,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5562,3,000,30,1,2,1,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5563,3,000,30,1,2,2,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5564,3,000,30,1,10,1,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5565,3,000,30,1,10,1,01,2,1,0,0,1,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5566,3,000,33,1,56,1,01,2,1,0,0,2,24,005,400900,1025,1,9999,99999,99999999,9,99999,99999999,38484,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2756205,-076.7476549,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,012,012,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-010,21228 +5567,3,000,21,2,81,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5568,3,000,21,2,84,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5569,3,000,21,2,84,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5570,3,000,21,2,84,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5571,3,000,21,2,84,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5572,3,000,21,2,90,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5573,3,000,21,2,90,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5574,3,000,21,2,90,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5575,3,000,22,1,69,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5576,3,000,22,1,75,1,01,2,1,0,0,2,34,029,731204,2000,2,9999,99999,99999999,9,99999,99999999,102423,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.9514330,-074.2496088,L,1,35154,99999,99999,9,N,N,32424,S,02389943,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025332,08757 +5577,3,000,21,2,57,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5578,3,000,21,2,57,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5579,3,000,21,2,58,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5580,3,000,21,2,58,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5581,3,000,21,2,65,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5582,3,000,21,2,65,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5583,3,000,21,2,66,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5584,3,000,21,2,66,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5585,3,000,21,2,66,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5586,3,000,22,1,59,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +5587,3,000,21,2,69,1,01,2,1,0,0,2,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5588,3,000,21,2,78,1,01,2,1,0,0,2,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5589,3,000,21,2,79,1,01,2,1,0,0,2,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5590,3,000,22,1,24,1,01,2,1,0,0,2,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5591,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5592,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5593,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5594,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5595,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5596,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +5597,3,000,22,2,23,1,03,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5598,3,000,22,2,23,2,06,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5599,3,000,22,2,27,1,02,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5600,3,000,22,2,32,2,06,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5601,3,000,22,2,32,2,06,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5602,3,000,22,2,36,1,01,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5603,3,000,22,2,36,2,11,2,2,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5604,3,000,22,2,38,2,11,2,2,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5605,3,000,22,2,39,1,01,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5606,3,000,22,2,39,1,01,2,1,0,0,2,06,029,002902,1000,1,9999,99999,99999999,9,99999,99999999,232424,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3301543,-119.0242578,L,1,99999,99999,99999,9,Y,N,03526,A,02409774,02904,4,16050,19540,99999,034,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93304 +5607,3,000,20,1,27,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5608,3,000,20,1,31,1,01,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5609,3,000,20,1,31,1,01,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5610,3,000,20,1,40,1,01,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5611,3,000,20,1,40,1,01,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5612,3,000,20,1,40,1,04,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5613,3,000,20,1,40,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5614,3,000,20,1,41,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5615,3,000,20,1,42,1,01,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5616,3,000,20,1,44,1,04,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +5617,3,000,25,1,0,1,09,2,2,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5618,3,000,25,1,0,1,09,2,2,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5619,3,000,25,1,0,2,06,2,1,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5620,3,000,25,1,1,1,04,2,1,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5621,3,000,25,1,1,1,04,2,1,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5622,3,000,25,1,6,2,01,2,1,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5623,3,000,25,1,6,2,01,2,1,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5624,3,000,25,1,6,2,01,2,1,0,0,1,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5625,3,000,25,1,18,1,02,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5626,3,000,25,1,18,1,08,2,2,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +5627,3,000,25,1,1,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5628,3,000,25,1,1,1,09,2,2,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5629,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5630,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5631,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5632,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5633,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5634,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5635,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5636,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +5637,3,000,34,2,32,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5638,3,000,34,2,32,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5639,3,000,34,2,32,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5640,3,000,34,2,53,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5641,3,000,34,2,53,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5642,3,000,34,2,59,1,02,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5643,3,000,34,2,62,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5644,3,000,34,2,63,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5645,3,000,34,2,63,1,01,2,1,0,0,2,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5646,3,000,36,2,12,1,04,2,1,0,0,1,06,067,007403,2007,2,9999,99999,99999999,9,99999,99999999,55324,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6830255,-121.3682782,L,1,99999,99999,99999,9,N,N,51924,S,02408941,06704,4,99999,99999,01332,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95660 +5647,3,000,21,2,57,2,06,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5648,3,000,21,2,57,2,06,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5649,3,000,21,2,58,1,04,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5650,3,000,22,1,42,1,02,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5651,3,000,22,1,42,1,02,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5652,3,000,22,1,45,1,04,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5653,3,000,23,2,43,1,01,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5654,3,000,23,2,43,1,01,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5655,3,000,25,1,9,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5656,3,000,25,1,9,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +5657,3,000,30,1,15,1,02,2,1,0,0,1,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5658,3,000,30,1,24,1,02,2,1,0,0,2,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5659,3,000,30,1,24,1,02,2,1,0,0,2,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5660,3,000,30,1,27,1,02,2,1,0,0,2,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5661,3,000,30,1,43,1,02,2,1,0,0,2,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5662,3,000,30,2,1,1,02,2,1,0,0,1,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5663,3,000,30,2,1,1,02,2,1,0,0,1,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5664,3,000,30,2,3,1,02,2,1,0,0,1,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5665,3,000,30,2,3,1,02,2,1,0,0,1,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5666,3,000,30,2,3,2,06,2,1,0,0,1,13,063,040634,1010,1,9999,99999,99999999,9,99999,99999999,463586,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.5198954,-084.3715766,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,075,034,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00JB10,30238 +5667,3,000,20,2,26,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5668,3,000,20,2,29,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5669,3,000,20,2,29,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5670,3,000,21,1,45,2,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5671,3,000,21,1,50,2,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5672,3,000,21,2,27,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5673,3,000,21,2,31,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5674,3,000,21,2,32,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5675,3,000,21,2,33,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5676,3,000,21,2,33,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +5677,3,000,25,1,19,2,06,2,1,0,0,2,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5678,3,000,25,1,36,2,06,2,1,0,0,2,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5679,3,000,25,2,1,1,01,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5680,3,000,25,2,1,2,06,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5681,3,000,25,2,1,2,06,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5682,3,000,25,2,2,2,07,2,2,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5683,3,000,25,2,2,2,11,2,2,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5684,3,000,25,2,4,1,01,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5685,3,000,25,2,4,1,14,2,2,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5686,3,000,25,2,8,2,11,2,2,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +5687,3,000,25,2,5,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5688,3,000,25,2,5,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5689,3,000,25,2,5,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5690,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5691,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5692,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5693,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5694,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5695,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5696,3,000,25,2,9,1,01,2,1,0,0,1,16,055,000703,2023,2,9999,99999,99999999,9,99999,99999999,21906,0,0,0,0,0,17660,01,999,99999,99999999,A,00395661,90621,S,01936692,518,8,99999,99999999,+47.7323506,-116.8243157,L,1,99999,99999,99999,9,Y,N,16750,A,02410187,00200,4,99999,99999,00780,004,004,01779783,99999,99999999,9,999,99999,99999999,999999,18451,U,99999,U,554039,83815 +5697,3,000,20,2,63,2,11,2,2,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5698,3,000,20,2,66,2,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5699,3,000,20,2,75,2,11,2,2,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5700,3,000,20,2,82,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5701,3,000,20,2,82,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5702,3,000,21,1,36,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5703,3,000,21,1,36,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5704,3,000,21,1,36,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5705,3,000,21,1,36,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5706,3,000,21,1,37,1,02,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +5707,3,000,36,2,36,1,01,2,1,0,0,2,06,073,020810,2002,2,9999,99999,99999999,9,99999,99999999,3757247,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0061362,-116.8484288,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5708,3,000,36,2,37,1,01,2,1,0,0,2,06,073,020810,2002,2,9999,99999,99999999,9,99999,99999999,3757247,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0061362,-116.8484288,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5709,3,000,20,2,45,2,01,2,1,0,0,2,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5710,3,000,21,1,56,1,11,2,2,0,0,2,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5711,3,000,21,1,66,1,01,2,1,0,0,2,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5712,3,000,21,1,80,1,01,2,1,0,0,2,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5713,3,000,21,2,33,1,01,2,1,0,0,2,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5714,3,000,21,2,45,2,01,2,1,0,0,2,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5715,3,000,25,1,12,1,01,2,1,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5716,3,000,25,1,15,1,08,2,2,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +5717,3,000,21,2,48,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5718,3,000,21,2,48,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5719,3,000,21,2,48,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5720,3,000,21,2,48,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5721,3,000,21,2,48,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5722,3,000,21,2,48,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5723,3,000,21,2,53,2,11,2,2,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5724,3,000,22,1,35,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5725,3,000,22,1,37,1,01,2,1,0,0,2,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5726,3,000,25,1,15,2,06,2,1,0,0,1,48,085,031425,1018,1,9999,99999,99999999,9,99999,99999999,23858,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0946105,-096.6330779,L,1,19124,99999,99999,9,N,N,01924,A,02409684,01904,3,99999,99999,07890,089,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000080,75002 +5727,3,000,25,1,4,1,01,2,1,0,0,1,45,019,004620,1035,1,9999,99999,99999999,9,99999,99999999,51653,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8174013,-079.8187619,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000321,29464 +5728,3,000,25,2,18,1,01,2,1,0,0,2,45,019,004620,1035,1,9999,99999,99999999,9,99999,99999999,51653,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8174013,-079.8187619,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000321,29464 +5729,3,000,25,2,22,1,01,2,1,0,0,2,45,019,004620,1035,1,9999,99999,99999999,9,99999,99999999,51653,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8174013,-079.8187619,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000321,29464 +5730,3,000,25,2,56,1,01,2,1,0,0,2,45,019,004620,1035,1,9999,99999,99999999,9,99999,99999999,51653,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8174013,-079.8187619,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000321,29464 +5731,3,000,25,2,56,1,01,2,1,0,0,2,45,019,004620,1035,1,9999,99999,99999999,9,99999,99999999,51653,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8174013,-079.8187619,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000321,29464 +5732,3,000,20,1,27,1,09,1,2,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +5733,3,000,20,1,65,1,01,1,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +5734,3,000,20,1,65,1,01,1,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +5735,3,000,20,1,45,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +5736,3,000,20,1,45,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +5737,3,000,21,2,25,1,13,2,2,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5738,3,000,21,2,61,2,03,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5739,3,000,25,1,13,2,11,2,2,0,0,1,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5740,3,000,25,1,25,2,30,2,3,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5741,3,000,25,2,3,2,29,2,3,0,0,1,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5742,3,000,27,1,40,2,03,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5743,3,000,28,1,26,2,06,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5744,3,000,28,1,53,2,03,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5745,3,000,29,1,87,2,01,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5746,3,000,34,1,32,2,11,2,2,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +5747,3,000,20,2,33,1,01,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5748,3,000,20,2,35,1,01,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5749,3,000,20,2,39,2,06,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5750,3,000,20,2,43,1,01,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5751,3,000,20,2,43,1,01,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5752,3,000,20,2,45,2,11,2,2,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5753,3,000,20,2,45,2,11,2,2,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5754,3,000,20,2,50,2,06,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5755,3,000,21,1,40,1,01,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5756,3,000,21,1,40,2,06,2,1,0,0,2,04,013,816100,1022,1,9999,99999,99999999,9,99999,99999999,58859,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2638697,-111.7120787,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00135,4,99999,99999,03780,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000679,85297 +5757,3,000,25,2,10,1,01,2,1,0,0,1,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5758,3,000,25,2,10,1,01,2,1,0,0,1,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5759,3,000,25,2,15,1,01,2,1,0,0,1,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5760,3,000,25,2,15,1,01,2,1,0,0,1,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5761,3,000,25,2,17,1,01,2,1,0,0,1,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5762,3,000,25,2,33,1,08,2,2,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5763,3,000,25,2,33,1,08,2,2,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5764,3,000,25,2,57,1,01,2,1,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5765,3,000,25,2,58,1,01,2,1,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5766,3,000,25,2,59,1,01,2,1,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +5767,3,000,20,1,73,1,04,1,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5768,3,000,20,2,58,1,01,1,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5769,3,000,20,2,59,1,01,1,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5770,3,000,20,2,59,1,01,1,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5771,3,000,20,1,21,1,13,2,2,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5772,3,000,20,1,36,2,02,2,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5773,3,000,20,1,49,1,11,2,2,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5774,3,000,20,1,55,1,01,2,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5775,3,000,20,1,59,1,01,2,1,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5776,3,000,20,2,23,1,13,2,2,0,0,2,48,201,451603,1006,1,9999,99999,99999999,9,99999,99999999,16106,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7625538,-095.6360448,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,23640,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000461,77077 +5777,3,000,21,2,30,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5778,3,000,21,2,32,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5779,3,000,21,2,32,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5780,3,000,21,2,32,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5781,3,000,21,2,32,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5782,3,000,21,2,32,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5783,3,000,21,2,32,2,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5784,3,000,21,2,32,2,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5785,3,000,21,2,34,1,02,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5786,3,000,21,2,34,1,02,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +5787,3,000,21,2,60,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5788,3,000,21,2,60,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5789,3,000,21,2,60,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5790,3,000,21,2,60,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5791,3,000,21,2,60,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5792,3,000,22,1,28,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5793,3,000,22,1,28,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5794,3,000,22,1,28,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5795,3,000,22,2,22,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5796,3,000,25,1,8,1,11,2,2,0,0,1,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +5797,3,000,21,1,76,1,01,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5798,3,000,21,1,77,1,01,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5799,3,000,21,1,77,1,01,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5800,3,000,21,2,27,1,04,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5801,3,000,21,2,29,1,04,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5802,3,000,21,2,36,1,11,2,2,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5803,3,000,21,2,38,1,04,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5804,3,000,21,2,38,1,04,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5805,3,000,21,2,38,1,04,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5806,3,000,21,2,47,1,04,2,1,0,0,2,41,047,002002,2024,2,9999,99999,99999999,9,99999,99999999,9533,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.8662776,-123.0166171,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97306 +5807,5,301,37,2,73,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5808,5,301,37,2,73,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5809,5,301,37,2,73,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5810,5,301,37,2,73,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5811,5,301,37,2,74,1,02,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5812,5,301,37,2,74,1,02,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5813,5,301,37,2,74,1,02,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5814,5,301,37,2,76,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5815,5,301,37,2,81,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5816,5,301,37,2,81,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +5817,3,000,21,1,76,1,01,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5818,3,000,21,1,78,1,01,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5819,3,000,21,2,23,2,06,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5820,3,000,21,2,26,2,06,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5821,3,000,21,2,26,2,06,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5822,3,000,21,2,76,1,01,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5823,3,000,21,2,76,1,01,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5824,3,000,21,2,76,1,01,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5825,3,000,21,2,91,1,01,2,1,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5826,3,000,22,1,23,2,20,2,2,0,0,2,41,059,951000,2003,2,9999,99999,99999999,9,99999,99999999,7388,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,91334,S,01938084,999,9,99999,99999999,+45.8571157,-119.2954776,L,2,99999,99999,99999,9,Y,N,33700,A,02410748,06501,4,99999,99999,06300,057,029,01155107,99999,99999999,9,999,99999,99999999,999999,38485,U,33700,U,,97838 +5827,3,000,25,1,15,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5828,3,000,25,1,15,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5829,3,000,25,1,15,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5830,3,000,25,1,15,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5831,3,000,25,1,15,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5832,3,000,25,1,15,1,26,2,3,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5833,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5834,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5835,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5836,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +5837,3,000,21,2,85,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5838,3,000,21,2,85,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5839,3,000,22,1,43,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5840,3,000,22,1,43,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5841,3,000,22,1,69,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5842,3,000,22,2,28,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5843,3,000,23,2,45,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5844,3,000,25,1,15,1,01,2,1,0,0,1,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5845,3,000,25,1,16,2,01,2,1,0,0,1,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5846,3,000,25,1,16,2,01,2,1,0,0,1,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +5847,3,000,25,2,6,1,01,2,1,0,0,1,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5848,3,000,25,2,7,1,01,2,1,0,0,1,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5849,3,000,25,2,9,1,01,2,1,0,0,1,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5850,3,000,25,2,17,1,01,2,1,0,0,1,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5851,3,000,27,1,13,1,01,2,1,0,0,1,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5852,3,000,30,2,20,1,11,2,2,0,0,2,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5853,3,000,36,2,12,1,01,2,1,0,0,1,39,157,020400,4022,4,9999,99999,99999999,9,99999,99999999,527455,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.5449233,-081.3284664,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44656 +5854,3,000,20,1,54,1,01,1,1,0,0,2,39,157,021200,2000,2,9999,99999,99999999,9,99999,99999999,1373988,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.4860255,-081.3105494,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44675 +5855,3,000,20,2,43,1,01,1,1,0,0,2,39,157,021200,2000,2,9999,99999,99999999,9,99999,99999999,1373988,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.4860255,-081.3105494,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44675 +5856,3,000,20,1,42,1,01,2,1,0,0,2,39,157,021200,2000,2,9999,99999,99999999,9,99999,99999999,1373988,0,0,0,0,0,35420,07,999,99999,99999999,A,01074090,80920,A,01087068,184,3,99999,99999999,+40.4860255,-081.3105494,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,05030,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEI,44675 +5857,3,000,21,1,44,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5858,3,000,21,1,44,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5859,3,000,21,2,37,2,11,2,2,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5860,3,000,21,2,41,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5861,3,000,21,2,58,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5862,3,000,25,1,18,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5863,3,000,25,1,19,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5864,3,000,25,1,19,1,01,2,1,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5865,3,000,25,2,21,2,11,2,2,0,0,2,27,111,960900,3003,3,9999,99999,99999999,9,99999,99999999,16656,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912389,-096.0805849,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5866,3,000,20,2,60,1,01,1,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +5867,3,000,20,2,67,1,01,1,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5868,3,000,20,2,68,1,01,1,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5869,3,000,20,2,69,1,01,1,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5870,3,000,20,2,69,1,01,1,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5871,3,000,20,2,74,1,01,1,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5872,3,000,20,2,74,1,01,1,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5873,3,000,20,1,21,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5874,3,000,20,1,21,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5875,3,000,20,1,21,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5876,3,000,20,1,24,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +5877,3,000,25,2,13,1,01,2,1,0,0,1,39,157,021200,2023,2,9999,99999,99999999,9,99999,99999999,23002,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4731798,-081.3411098,L,2,99999,99999,99999,9,N,N,68742,A,02399128,02900,2,99999,99999,05028,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079ACR,44663 +5878,3,000,29,1,86,1,01,2,1,0,0,2,39,157,021200,2023,2,9999,99999,99999999,9,99999,99999999,23002,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4731798,-081.3411098,L,2,99999,99999,99999,9,N,N,68742,A,02399128,02900,2,99999,99999,05028,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079ACR,44663 +5879,3,000,33,1,61,1,01,2,1,0,0,2,39,157,021200,2023,2,9999,99999,99999999,9,99999,99999999,23002,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4731798,-081.3411098,L,2,99999,99999,99999,9,N,N,68742,A,02399128,02900,2,99999,99999,05028,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079ACR,44663 +5880,3,000,34,2,88,1,01,2,1,0,0,2,39,157,021200,2023,2,9999,99999,99999999,9,99999,99999999,23002,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4731798,-081.3411098,L,2,99999,99999,99999,9,N,N,68742,A,02399128,02900,2,99999,99999,05028,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079ACR,44663 +5881,3,000,25,1,8,1,01,2,1,0,0,1,39,157,021200,2025,2,9999,99999,99999999,9,99999,99999999,25506,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4739088,-081.3442011,L,2,99999,99999,99999,9,N,N,68742,A,02399128,02900,2,99999,99999,05028,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079ACR,44663 +5882,3,000,25,2,16,1,01,2,1,0,0,1,39,157,021200,2025,2,9999,99999,99999999,9,99999,99999999,25506,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4739088,-081.3442011,L,2,99999,99999,99999,9,N,N,68742,A,02399128,02900,2,99999,99999,05028,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079ACR,44663 +5883,3,000,20,1,48,1,01,1,1,0,0,2,39,157,021600,5000,5,9999,99999,99999999,9,99999,99999999,584997,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4031693,-081.2801256,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,04377,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEG,44621 +5884,3,000,20,2,74,1,01,1,1,0,0,2,39,157,021600,5000,5,9999,99999,99999999,9,99999,99999999,584997,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4031693,-081.2801256,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,04377,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEG,44621 +5885,3,000,20,1,26,1,01,2,1,0,0,2,39,157,021600,5000,5,9999,99999,99999999,9,99999,99999999,584997,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4031693,-081.2801256,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,04377,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEG,44621 +5886,3,000,20,1,40,1,08,2,2,0,0,2,39,157,021600,5000,5,9999,99999,99999999,9,99999,99999999,584997,0,0,0,0,0,35420,06,999,99999,99999999,A,01074090,78568,A,01087067,184,3,99999,99999999,+40.4031693,-081.2801256,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,04377,098,031,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,079AEG,44621 +5887,3,000,20,1,32,1,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5888,3,000,20,1,32,1,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5889,3,000,20,1,32,1,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5890,3,000,20,1,32,1,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5891,3,000,20,1,34,1,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5892,3,000,20,1,47,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5893,3,000,20,1,48,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5894,3,000,20,1,68,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5895,3,000,20,1,68,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5896,3,000,20,1,68,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +5897,3,000,20,2,74,1,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5898,3,000,20,2,78,1,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5899,3,000,20,2,78,1,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5900,3,000,20,2,78,1,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5901,3,000,20,2,78,1,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5902,3,000,21,1,26,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5903,3,000,21,1,26,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5904,3,000,21,1,28,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5905,3,000,21,1,51,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5906,3,000,21,1,51,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +5907,3,000,25,1,9,1,11,2,2,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5908,3,000,25,1,9,2,08,2,2,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5909,3,000,25,1,9,2,08,2,2,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5910,3,000,25,1,12,1,01,2,1,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5911,3,000,25,1,12,1,01,2,1,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5912,3,000,25,1,12,2,20,2,2,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5913,3,000,25,1,13,1,01,2,1,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5914,3,000,25,1,13,2,03,2,1,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5915,3,000,25,1,13,2,03,2,1,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5916,3,000,25,1,13,2,06,2,1,0,0,1,06,059,087103,3000,3,9999,99999,99999999,9,99999,99999999,92737,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8236404,-117.9429619,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,02610,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +5917,3,000,25,2,23,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5918,3,000,25,2,23,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5919,3,000,25,2,23,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5920,3,000,25,2,23,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5921,3,000,25,2,24,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5922,3,000,25,2,24,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5923,3,000,25,2,24,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5924,3,000,25,2,24,2,11,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5925,3,000,30,1,0,2,01,2,1,0,0,1,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5926,3,000,30,2,29,1,01,2,1,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +5927,3,000,25,1,4,1,06,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5928,3,000,25,1,6,1,01,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5929,3,000,25,1,6,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5930,3,000,25,1,6,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5931,3,000,25,1,6,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5932,3,000,25,1,6,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5933,3,000,25,1,6,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5934,3,000,25,1,6,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5935,3,000,25,1,7,2,11,2,2,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5936,3,000,25,1,7,2,11,2,2,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +5937,3,000,21,2,68,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5938,3,000,21,2,68,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5939,3,000,21,2,69,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5940,3,000,21,2,75,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5941,3,000,21,2,76,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5942,3,000,22,1,56,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5943,3,000,22,2,27,1,01,2,1,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5944,3,000,22,2,28,2,11,2,2,0,0,2,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5945,3,000,25,1,0,2,01,2,1,0,0,1,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5946,3,000,25,1,9,1,01,2,1,0,0,1,26,155,031401,3049,3,9999,99999,99999999,9,99999,99999999,2572295,13563,0,0,13563,0,29620,04,999,99999,99999999,A,01623018,07280,A,01625913,999,3,99999,99999999,+42.8998159,-084.2121961,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01704,2,99999,99999,27900,085,024,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,155002,48867 +5947,3,000,25,1,2,1,01,2,1,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5948,3,000,25,1,2,1,01,2,1,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5949,3,000,25,1,2,1,01,2,1,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5950,3,000,25,1,2,1,01,2,1,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5951,3,000,25,1,6,2,11,2,2,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5952,3,000,25,1,6,2,11,2,2,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5953,3,000,25,1,10,2,11,2,2,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5954,3,000,25,1,11,2,11,2,2,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5955,3,000,25,1,18,1,02,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5956,3,000,25,1,43,1,04,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +5957,3,000,20,2,45,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5958,3,000,20,2,48,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5959,3,000,20,2,48,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5960,3,000,20,2,48,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5961,3,000,20,2,48,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5962,3,000,21,1,38,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5963,3,000,21,1,39,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5964,3,000,21,1,39,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5965,3,000,21,2,37,2,01,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5966,3,000,21,2,40,2,06,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +5967,5,301,37,1,60,1,02,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5968,5,301,37,1,61,1,07,0,2,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5969,5,301,37,1,62,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5970,5,301,37,1,62,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5971,5,301,37,1,65,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5972,5,301,37,1,65,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5973,5,301,37,1,66,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5974,5,301,37,1,67,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5975,5,301,37,1,67,1,02,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5976,5,301,37,1,69,1,01,0,1,1,3,2,37,153,970900,1026,1,9999,99999,99999999,9,99999,99999999,60350,0,0,0,0,0,40460,09,999,99999,99999999,A,01008581,91988,N,01027096,999,5,99999,99999999,+34.8675802,-079.7330769,L,2,99999,99999,99999,9,N,N,29160,A,02403787,05200,3,99999,99999,03870,066,025,01027616,99999,99999999,9,999,99999,99999999,999999,75772,U,99999,U,000009,28345 +5977,3,000,21,2,61,1,01,2,1,0,0,2,01,073,001600,3016,3,9999,99999,99999999,9,99999,99999999,8402,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5384820,-086.8101554,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5978,3,000,33,2,35,1,02,2,1,0,0,2,01,073,001600,3016,3,9999,99999,99999999,9,99999,99999999,8402,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5384820,-086.8101554,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5979,3,000,34,1,44,1,01,2,1,0,0,2,01,073,001600,3016,3,9999,99999,99999999,9,99999,99999999,8402,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5384820,-086.8101554,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5980,3,000,20,1,62,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5981,3,000,20,1,62,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5982,3,000,20,1,62,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5983,3,000,20,1,62,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5984,3,000,20,1,64,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5985,3,000,20,1,64,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5986,3,000,20,2,73,1,02,1,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +5987,3,000,20,1,39,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5988,3,000,20,1,39,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5989,3,000,20,1,39,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5990,3,000,20,1,39,1,11,2,2,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5991,3,000,20,1,39,1,11,2,2,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5992,3,000,20,1,39,2,06,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5993,3,000,20,1,40,1,02,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5994,3,000,20,1,42,1,02,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5995,3,000,20,1,42,1,09,2,2,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5996,3,000,20,1,50,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +5997,3,000,22,2,23,2,11,2,2,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +5998,3,000,22,2,23,2,11,2,2,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +5999,3,000,22,2,24,1,01,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6000,3,000,22,2,24,1,01,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6001,3,000,22,2,30,1,01,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6002,3,000,22,2,30,1,04,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6003,3,000,22,2,30,1,04,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6004,3,000,22,2,30,1,04,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6005,3,000,22,2,31,1,04,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6006,3,000,22,2,32,1,04,2,1,0,0,2,51,013,101409,1003,1,9999,99999,99999999,9,99999,99999999,14213,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8816227,-077.1110982,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01301,3,99999,99999,00270,047,031,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000046,22203 +6007,3,000,25,1,5,2,11,2,2,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6008,3,000,25,1,15,1,04,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6009,3,000,25,1,32,2,11,2,2,0,0,2,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6010,3,000,25,2,3,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6011,3,000,25,2,3,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6012,3,000,25,2,4,1,07,2,2,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6013,3,000,25,2,5,1,02,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6014,3,000,25,2,5,2,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6015,3,000,25,2,8,2,11,2,2,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6016,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +6017,3,000,20,1,45,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6018,3,000,20,1,45,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6019,3,000,20,1,45,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6020,3,000,20,1,45,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6021,3,000,20,1,46,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6022,3,000,20,1,47,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6023,3,000,20,1,47,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6024,3,000,20,1,47,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6025,3,000,20,1,47,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6026,3,000,20,1,47,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +6027,3,000,20,1,55,2,11,2,2,0,0,2,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6028,3,000,20,2,46,2,01,2,1,0,0,2,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6029,3,000,20,2,46,2,01,2,1,0,0,2,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6030,3,000,20,2,61,1,02,2,1,0,0,2,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6031,3,000,20,2,61,1,02,2,1,0,0,2,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6032,3,000,25,2,5,1,02,2,1,0,0,1,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6033,3,000,30,2,6,1,01,2,1,0,0,1,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6034,3,000,36,1,6,1,02,2,1,0,0,1,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6035,3,000,36,1,6,1,02,2,1,0,0,1,48,201,252800,2022,2,9999,99999,99999999,9,99999,99999999,16390,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8794807,-095.0668670,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6036,3,000,20,1,55,1,02,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +6037,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6038,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6039,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6040,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6041,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6042,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6043,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6044,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6045,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6046,3,000,21,2,60,1,01,2,1,0,0,2,13,255,160202,1001,1,9999,99999,99999999,9,99999,99999999,2844090,0,0,0,0,0,12060,03,999,99999,99999999,A,00353055,93071,S,01936499,122,5,99999,99999999,+33.3171580,-084.2295280,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,3,99999,99999,02520,130,016,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,30223 +6047,3,000,25,2,7,2,11,2,2,0,0,1,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6048,3,000,25,2,19,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6049,3,000,25,2,19,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6050,3,000,25,2,51,2,01,2,1,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6051,3,000,28,1,43,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6052,3,000,28,2,33,1,02,2,1,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6053,3,000,29,1,63,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6054,3,000,29,2,54,2,18,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6055,3,000,29,2,68,2,06,2,1,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6056,3,000,29,2,70,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +6057,3,000,21,1,43,1,01,2,1,0,0,2,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6058,3,000,21,1,71,1,01,2,1,0,0,2,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6059,3,000,21,2,32,1,01,2,1,0,0,2,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6060,3,000,21,2,32,1,01,2,1,0,0,2,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6061,3,000,21,2,34,1,01,2,1,0,0,2,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6062,3,000,21,2,60,1,01,2,1,0,0,2,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6063,3,000,25,1,1,1,01,2,1,0,0,1,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6064,3,000,25,1,8,1,01,2,1,0,0,1,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6065,3,000,25,1,12,1,01,2,1,0,0,1,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6066,3,000,25,1,14,1,01,2,1,0,0,1,31,089,974000,2195,2,9999,99999,99999999,9,99999,99999999,33889,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,47535,A,00838274,999,4,99999,99999999,+42.6010464,-099.1390978,L,9,99999,99999,99999,9,N,N,47500,A,02399923,00100,2,99999,99999,00082,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00007P,68780 +6067,3,000,25,1,6,1,04,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6068,3,000,25,1,9,2,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6069,3,000,25,1,13,2,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6070,3,000,25,1,13,2,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6071,3,000,25,1,45,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6072,3,000,25,1,48,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6073,3,000,25,2,2,1,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6074,3,000,25,2,6,1,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6075,3,000,25,2,6,1,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6076,3,000,25,2,6,1,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +6077,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6078,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6079,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6080,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6081,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6082,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6083,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6084,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6085,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6086,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +6087,3,000,20,1,51,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6088,3,000,20,1,51,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6089,3,000,20,1,52,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6090,3,000,20,1,53,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6091,3,000,20,1,53,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6092,3,000,20,2,48,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6093,3,000,20,2,48,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6094,3,000,20,2,49,1,02,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6095,3,000,22,1,75,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6096,3,000,25,2,5,1,02,2,1,0,0,1,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +6097,3,000,20,2,60,1,08,2,2,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6098,3,000,21,1,39,1,11,2,2,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6099,3,000,21,2,35,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6100,3,000,21,2,36,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6101,3,000,21,2,37,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6102,3,000,21,2,39,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6103,3,000,21,2,39,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6104,3,000,21,2,51,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6105,3,000,21,2,53,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6106,3,000,21,2,53,1,01,2,1,0,0,2,36,037,950200,3001,3,9999,99999,99999999,9,99999,99999999,1354251,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,54166,A,00979299,464,2,99999,99999999,+43.0699509,-078.2896680,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01000,1,99999,99999,21510,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000042,14125 +6107,3,000,25,1,14,2,11,2,2,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6108,3,000,25,1,15,1,07,2,2,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6109,3,000,25,1,15,1,07,2,2,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6110,3,000,25,1,20,2,08,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6111,3,000,25,1,20,2,08,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6112,3,000,25,1,20,2,08,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6113,3,000,25,1,21,1,07,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6114,3,000,25,1,25,1,07,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6115,3,000,25,1,30,1,07,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6116,3,000,25,1,45,1,07,2,2,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +6117,3,000,21,2,64,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6118,3,000,21,2,70,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6119,3,000,21,2,70,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6120,3,000,21,2,70,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6121,3,000,21,2,71,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6122,3,000,21,2,71,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6123,3,000,21,2,71,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6124,3,000,21,2,71,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6125,3,000,21,2,72,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6126,3,000,21,2,72,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +6127,3,000,20,2,66,1,01,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6128,3,000,21,1,45,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6129,3,000,21,1,45,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6130,3,000,21,1,45,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6131,3,000,21,1,45,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6132,3,000,21,1,45,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6133,3,000,21,1,48,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6134,3,000,21,1,49,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6135,3,000,22,1,38,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6136,3,000,22,1,39,2,06,2,1,0,0,2,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +6137,3,000,20,2,48,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6138,3,000,20,2,48,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6139,3,000,20,2,50,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6140,3,000,20,2,50,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6141,3,000,20,2,52,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6142,3,000,20,2,52,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6143,3,000,20,2,52,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6144,3,000,20,2,52,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6145,3,000,20,2,53,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6146,3,000,20,2,55,1,01,2,1,0,0,2,42,133,020421,2024,2,9999,99999,99999999,9,99999,99999999,56187,0,0,0,0,0,49620,10,999,99999,99999999,A,01209193,19208,F,01215739,276,2,99999,99999999,+40.1043946,-077.0285688,L,1,99999,99999,99999,9,N,N,19208,A,01215739,03602,1,99999,99999,17760,092,031,01779798,99999,99999999,9,999,99999,99999999,999999,37081,U,99999,U,000140,17019 +6147,3,000,25,2,4,1,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6148,3,000,25,2,4,1,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6149,3,000,25,2,16,1,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6150,3,000,25,2,16,1,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6151,3,000,25,2,17,2,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6152,3,000,26,1,22,1,01,2,1,0,0,2,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6153,3,000,26,1,24,1,01,2,1,0,0,2,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6154,3,000,26,2,18,1,01,2,1,0,0,2,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6155,3,000,26,2,19,1,01,2,1,0,0,2,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6156,3,000,27,2,15,2,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +6157,3,000,20,1,30,1,04,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6158,3,000,20,1,33,1,07,2,2,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6159,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6160,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6161,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6162,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6163,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6164,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6165,3,000,20,1,34,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6166,3,000,20,1,87,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +6167,3,000,25,2,15,1,02,2,1,0,0,1,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6168,3,000,25,2,21,2,11,2,2,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6169,3,000,25,2,21,2,11,2,2,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6170,3,000,25,2,22,2,01,2,1,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6171,3,000,25,2,31,1,01,2,1,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6172,3,000,25,2,33,2,01,2,1,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6173,3,000,25,2,39,1,02,2,1,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6174,3,000,27,2,18,1,01,2,1,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6175,3,000,28,2,21,1,02,2,1,0,0,2,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6176,3,000,30,1,4,1,01,2,1,0,0,1,12,095,017116,3015,3,9999,99999,99999999,9,99999,99999999,51329,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,93198,S,01935935,422,5,99999,99999999,+28.5372507,-081.5980222,L,1,99999,99999,99999,9,N,N,78250,A,02405772,09502,3,99999,99999,01440,044,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00109B,34787 +6177,3,000,20,1,32,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6178,3,000,20,1,37,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6179,3,000,20,1,37,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6180,3,000,20,1,37,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6181,3,000,20,1,38,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6182,3,000,20,1,38,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6183,3,000,20,1,52,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6184,3,000,20,1,52,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6185,3,000,20,1,52,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6186,3,000,20,1,73,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +6187,3,000,20,1,29,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6188,3,000,20,1,57,1,09,2,2,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6189,3,000,21,1,27,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6190,3,000,21,1,27,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6191,3,000,21,1,27,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6192,3,000,21,1,27,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6193,3,000,21,1,28,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6194,3,000,21,1,28,1,01,2,1,0,0,2,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6195,3,000,25,2,6,2,06,2,1,0,0,1,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6196,3,000,25,2,6,2,06,2,1,0,0,1,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +6197,3,000,20,1,49,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6198,3,000,20,1,51,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6199,3,000,20,1,51,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6200,3,000,20,1,51,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6201,3,000,20,1,54,2,06,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6202,3,000,20,1,55,1,02,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6203,3,000,20,1,55,2,11,1,2,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6204,3,000,20,1,56,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6205,3,000,20,1,58,2,06,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6206,3,000,20,1,58,2,06,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +6207,3,000,29,2,71,1,01,2,1,0,0,2,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6208,3,000,30,1,1,1,02,2,1,0,0,1,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6209,3,000,30,1,1,1,02,2,1,0,0,1,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6210,3,000,30,1,6,2,03,2,1,0,0,1,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6211,3,000,30,1,6,2,03,2,1,0,0,1,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6212,3,000,30,1,6,2,03,2,1,0,0,1,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6213,3,000,30,2,30,2,11,2,2,0,0,2,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6214,3,000,33,1,2,1,12,2,2,0,0,1,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6215,3,000,34,2,23,1,01,2,1,0,0,2,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6216,3,000,34,2,23,1,01,2,1,0,0,2,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6217,3,000,21,1,68,1,02,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6218,3,000,21,1,68,1,02,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6219,3,000,21,1,70,1,06,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6220,3,000,21,1,71,2,06,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6221,3,000,21,1,72,1,02,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6222,3,000,21,1,72,1,02,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6223,3,000,21,1,72,1,02,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6224,3,000,21,1,73,2,11,2,2,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6225,3,000,21,1,73,2,11,2,2,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6226,3,000,21,1,73,2,15,2,2,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +6227,3,000,30,2,1,1,01,2,1,0,0,1,34,003,011400,2000,2,9999,99999,99999999,9,99999,99999999,8750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9064823,-074.1203829,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6228,3,000,31,1,61,1,01,2,1,0,0,2,34,003,011400,2000,2,9999,99999,99999999,9,99999,99999999,8750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9064823,-074.1203829,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6229,3,000,20,1,54,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6230,3,000,20,1,54,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6231,3,000,20,1,54,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6232,3,000,20,1,54,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6233,3,000,20,1,54,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6234,3,000,20,1,75,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6235,3,000,20,2,62,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6236,3,000,20,2,62,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +6237,3,000,25,2,12,2,11,2,2,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6238,3,000,25,2,15,2,06,2,1,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6239,3,000,25,2,17,1,01,2,1,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6240,3,000,25,2,17,2,11,2,2,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6241,3,000,27,1,14,2,11,2,2,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6242,3,000,30,1,9,1,04,2,1,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6243,3,000,32,1,54,1,02,2,1,0,0,2,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6244,3,000,33,2,4,2,11,2,2,0,0,1,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6245,3,000,34,1,59,1,05,2,1,0,0,2,12,086,012701,1057,1,9999,99999,99999999,9,99999,99999999,5398,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068750,-080.3522807,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6246,3,000,20,1,32,2,02,2,1,0,0,2,12,086,012701,1058,1,9999,99999,99999999,9,99999,99999999,10317,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.9068338,-080.3554880,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08601,3,99999,99999,00390,103,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000363,33018 +6247,3,000,25,1,54,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6248,3,000,28,1,87,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6249,3,000,28,2,31,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6250,3,000,31,2,69,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6251,3,000,33,2,67,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6252,3,000,36,2,71,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6253,3,000,36,2,71,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6254,3,000,36,2,84,1,01,2,1,0,0,2,12,101,031804,3000,3,9999,99999,99999999,9,99999,99999999,334162,608,0,0,608,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4226525,-082.6188848,B,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6255,3,000,20,1,79,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6256,3,000,20,1,79,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +6257,3,000,20,2,38,2,03,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6258,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6259,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6260,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6261,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6262,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6263,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6264,3,000,20,2,43,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6265,3,000,20,2,57,1,01,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6266,3,000,20,2,57,1,01,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +6267,3,000,21,2,45,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6268,3,000,21,2,52,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6269,3,000,21,2,62,1,02,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6270,3,000,21,2,66,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6271,3,000,25,1,41,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6272,3,000,25,1,44,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6273,3,000,25,2,7,1,01,2,1,0,0,1,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6274,3,000,25,2,42,1,02,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6275,3,000,26,2,18,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6276,3,000,26,2,30,1,02,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +6277,3,000,25,1,8,1,01,2,1,0,0,1,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6278,3,000,25,1,8,1,01,2,1,0,0,1,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6279,3,000,25,1,8,1,01,2,1,0,0,1,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6280,3,000,25,1,19,2,03,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6281,3,000,25,1,29,1,01,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6282,3,000,25,1,29,1,01,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6283,3,000,25,1,29,1,01,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6284,3,000,25,1,29,1,01,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6285,3,000,25,1,29,1,01,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6286,3,000,25,1,29,1,01,2,1,0,0,2,26,027,001801,2008,2,9999,99999,99999999,9,99999,99999999,46685,0,0,0,0,0,43780,06,999,99999,99999999,A,01622956,54460,A,01626748,515,3,99999,99999999,+41.7698933,-086.2227031,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,06600,078,021,01779789,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,027012,49120 +6287,3,000,20,1,31,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6288,3,000,20,1,31,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6289,3,000,20,1,33,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6290,3,000,20,1,48,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6291,3,000,20,1,48,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6292,3,000,20,1,48,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6293,3,000,20,1,48,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6294,3,000,20,1,52,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6295,3,000,20,1,53,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6296,3,000,20,1,60,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +6297,3,000,33,2,7,1,01,2,1,0,0,1,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6298,3,000,33,2,11,2,06,2,1,0,0,1,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6299,3,000,33,2,11,2,06,2,1,0,0,1,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6300,3,000,33,2,20,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6301,3,000,33,2,20,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6302,3,000,33,2,22,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6303,3,000,33,2,72,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6304,3,000,33,2,75,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6305,3,000,34,1,19,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6306,3,000,34,1,19,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +6307,3,000,25,1,0,2,11,2,2,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6308,3,000,25,1,1,2,11,2,2,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6309,3,000,25,1,8,1,01,2,1,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6310,3,000,25,1,8,1,01,2,1,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6311,3,000,25,1,9,2,01,2,1,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6312,3,000,25,1,14,1,01,2,1,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6313,3,000,25,1,14,1,01,2,1,0,0,1,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6314,3,000,25,1,41,1,01,2,1,0,0,2,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6315,3,000,25,1,41,1,01,2,1,0,0,2,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6316,3,000,25,1,50,1,01,2,1,0,0,2,04,013,104226,2006,2,9999,99999,99999999,9,99999,99999999,14209,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6359690,-112.1352355,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000335,85053 +6317,3,000,20,2,82,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6318,3,000,21,1,22,1,08,2,2,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6319,3,000,21,1,24,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6320,3,000,21,1,25,1,01,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6321,3,000,21,1,25,1,01,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6322,3,000,21,1,26,1,09,2,2,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6323,3,000,21,1,27,1,01,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6324,3,000,21,1,33,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6325,3,000,21,1,33,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6326,3,000,21,1,40,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +6327,3,000,20,1,26,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6328,3,000,20,1,26,2,06,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6329,3,000,20,1,28,2,06,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6330,3,000,20,1,30,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6331,3,000,20,1,30,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6332,3,000,20,1,31,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6333,3,000,20,1,31,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6334,3,000,20,1,31,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6335,3,000,20,1,31,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6336,3,000,20,1,33,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +6337,3,000,21,2,35,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6338,3,000,21,2,35,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6339,3,000,21,2,35,1,04,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6340,3,000,21,2,35,1,04,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6341,3,000,21,2,40,1,04,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6342,3,000,21,2,40,1,04,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6343,3,000,21,2,44,1,09,2,2,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6344,3,000,21,2,45,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6345,3,000,21,2,45,1,04,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6346,3,000,21,2,46,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +6347,3,000,21,2,60,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6348,3,000,21,2,60,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6349,3,000,21,2,67,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6350,3,000,21,2,67,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6351,3,000,21,2,68,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6352,3,000,21,2,68,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6353,3,000,21,2,68,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6354,3,000,21,2,69,1,01,2,1,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6355,3,000,25,2,7,2,11,2,2,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6356,3,000,25,2,10,2,11,2,2,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +6357,3,000,20,2,46,2,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6358,3,000,20,2,46,2,06,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6359,3,000,20,2,48,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6360,3,000,20,2,48,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6361,3,000,20,2,48,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6362,3,000,20,2,50,2,06,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6363,3,000,20,2,50,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6364,3,000,20,2,50,2,26,2,3,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6365,3,000,20,2,51,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6366,3,000,20,2,56,1,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +6367,3,000,25,1,7,1,15,2,2,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6368,3,000,25,1,22,1,11,2,2,0,0,2,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6369,3,000,25,2,0,2,11,2,2,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6370,3,000,25,2,1,1,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6371,3,000,25,2,1,1,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6372,3,000,25,2,1,1,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6373,3,000,25,2,1,1,08,2,2,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6374,3,000,25,2,11,2,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6375,3,000,25,2,11,2,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6376,3,000,25,2,11,2,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +6377,3,000,20,1,81,1,01,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6378,3,000,20,2,35,1,04,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6379,3,000,20,2,35,1,04,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6380,3,000,20,2,35,2,01,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6381,3,000,20,2,35,2,01,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6382,3,000,20,2,35,2,01,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6383,3,000,20,2,38,1,04,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6384,3,000,20,2,38,1,04,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6385,3,000,20,2,39,2,01,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6386,3,000,20,2,42,2,01,2,1,0,0,2,06,071,010031,2012,2,9999,99999,99999999,9,99999,99999999,15571,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,93555,S,02583204,348,9,99999,99999999,+34.4172892,-117.3557760,L,1,99999,99999,99999,9,N,N,33434,A,02410751,07103,4,99999,99999,00014,033,021,01779778,99999,99999999,9,999,99999,99999999,999999,90541,U,99999,U,,92344 +6387,3,000,25,2,10,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6388,3,000,25,2,10,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6389,3,000,25,2,10,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6390,3,000,25,2,13,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6391,3,000,25,2,13,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6392,3,000,25,2,13,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6393,3,000,25,2,13,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6394,3,000,25,2,13,1,04,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6395,3,000,25,2,13,1,04,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6396,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +6397,3,000,20,1,37,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6398,3,000,20,1,37,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6399,3,000,20,1,37,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6400,3,000,20,1,37,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6401,3,000,20,1,37,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6402,3,000,20,1,37,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6403,3,000,20,1,39,1,11,2,2,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6404,3,000,20,1,41,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6405,3,000,20,1,41,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6406,3,000,20,1,41,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +6407,3,000,20,2,35,1,01,1,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6408,3,000,20,2,35,1,01,1,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6409,3,000,20,2,35,1,01,1,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6410,3,000,20,2,35,1,01,1,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6411,3,000,20,1,40,2,11,2,2,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6412,3,000,20,1,63,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6413,3,000,20,1,64,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6414,3,000,20,1,64,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6415,3,000,20,1,64,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6416,3,000,20,1,64,1,11,2,2,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +6417,3,000,25,1,4,2,09,2,2,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6418,3,000,25,1,5,1,10,2,2,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6419,3,000,25,1,5,1,10,2,2,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6420,3,000,25,1,6,1,01,2,1,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6421,3,000,25,1,6,1,07,2,2,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6422,3,000,25,1,6,1,09,2,2,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6423,3,000,25,1,6,2,06,2,1,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6424,3,000,25,1,6,2,06,2,1,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6425,3,000,25,1,6,2,06,2,1,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6426,3,000,25,1,7,1,10,2,2,0,0,1,53,061,041606,4010,4,9999,99999,99999999,9,99999,99999999,46641,0,0,0,0,0,42660,01,999,99999,99999999,A,01529222,91120,S,01939508,500,9,99999,99999999,+47.8789319,-122.1971091,L,1,42644,99999,99999,9,N,N,19630,S,02584969,26106,4,99999,99999,02670,044,044,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,22640,U,004784,98208 +6427,3,000,25,1,6,2,11,2,2,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6428,3,000,25,1,6,2,11,2,2,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6429,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6430,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6431,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6432,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6433,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6434,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6435,3,000,25,1,7,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6436,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +6437,3,000,25,2,25,2,11,2,2,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6438,3,000,25,2,27,1,01,2,1,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6439,3,000,25,2,40,1,01,2,1,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6440,3,000,25,2,40,1,01,2,1,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6441,3,000,25,2,47,1,01,2,1,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6442,3,000,25,2,47,1,01,2,1,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6443,3,000,30,2,16,1,01,2,1,0,0,1,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6444,3,000,32,2,33,1,01,2,1,0,0,2,18,089,043001,1013,1,9999,99999,99999999,9,99999,99999999,1828383,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4257986,-087.4136520,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6445,3,000,20,1,50,2,06,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6446,3,000,20,1,63,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +6447,3,000,27,2,8,1,01,2,1,0,0,1,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6448,3,000,28,2,28,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6449,3,000,29,2,32,2,06,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6450,3,000,30,2,8,1,01,2,1,0,0,1,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6451,3,000,30,2,8,1,01,2,1,0,0,1,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6452,3,000,30,2,8,1,01,2,1,0,0,1,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6453,3,000,33,1,46,2,06,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6454,3,000,33,2,6,1,01,2,1,0,0,1,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6455,3,000,33,2,14,1,01,2,1,0,0,1,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6456,3,000,34,1,26,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +6457,3,000,20,2,24,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6458,3,000,21,2,40,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6459,3,000,21,2,40,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6460,3,000,21,2,40,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6461,3,000,22,1,24,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6462,3,000,22,1,31,2,11,2,2,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6463,3,000,22,2,25,2,01,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6464,3,000,25,1,11,2,01,2,1,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6465,3,000,25,1,11,2,01,2,1,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6466,3,000,25,1,13,2,09,2,2,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +6467,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6468,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6469,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6470,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6471,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6472,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6473,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6474,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6475,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6476,3,000,34,1,19,1,01,2,1,0,0,2,19,167,070100,1041,1,9999,99999,99999999,9,99999,99999999,207546,0,0,0,0,0,99999,04,999,99999,99999999,A,00465272,91701,G,00467954,999,4,99999,99999999,+43.1835984,-095.8793672,L,9,99999,99999,99999,9,N,N,72390,A,02395868,00100,2,99999,99999,25980,003,002,01779785,99999,99999999,9,999,99999,99999999,999999,81361,U,99999,U,167006,51201 +6477,3,000,25,2,51,1,01,2,1,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6478,3,000,28,1,25,1,14,2,2,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6479,3,000,28,1,49,1,03,2,1,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6480,3,000,28,1,63,1,01,2,1,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6481,3,000,28,2,29,1,02,2,1,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6482,3,000,29,2,55,2,11,2,2,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6483,3,000,29,2,55,2,11,2,2,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6484,3,000,29,2,55,2,11,2,2,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6485,3,000,29,2,78,1,01,2,1,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6486,3,000,36,1,20,1,01,2,1,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +6487,3,000,20,2,46,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6488,3,000,20,2,46,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6489,3,000,20,2,46,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6490,3,000,20,2,46,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6491,3,000,20,2,51,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6492,3,000,20,2,55,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6493,3,000,20,2,55,1,01,2,1,0,0,2,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6494,3,000,25,2,2,1,01,2,1,0,0,1,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6495,3,000,30,2,4,1,01,2,1,0,0,1,42,017,103400,3029,3,9999,99999,99999999,9,99999,99999999,53365,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5356937,-075.2260790,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6496,3,000,20,1,65,1,01,1,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +6497,3,000,25,2,10,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6498,3,000,25,2,12,1,02,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6499,3,000,25,2,12,1,02,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6500,3,000,25,2,13,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6501,3,000,25,2,13,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6502,3,000,25,2,13,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6503,3,000,25,2,13,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6504,3,000,25,2,15,2,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6505,3,000,25,2,16,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6506,3,000,25,2,16,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +6507,3,000,20,1,26,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6508,3,000,20,1,28,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6509,3,000,20,1,28,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6510,3,000,20,1,38,2,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6511,3,000,20,1,38,2,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6512,3,000,20,1,41,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6513,3,000,20,1,44,1,13,2,2,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6514,3,000,20,1,53,1,11,2,2,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6515,3,000,20,1,69,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6516,3,000,20,1,69,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +6517,3,000,25,1,15,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6518,3,000,25,1,15,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6519,3,000,25,1,16,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6520,3,000,25,1,34,1,05,2,1,0,0,2,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6521,3,000,25,2,0,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6522,3,000,25,2,0,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6523,3,000,25,2,0,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6524,3,000,25,2,0,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6525,3,000,25,2,0,1,01,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6526,3,000,25,2,1,2,03,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +6527,3,000,33,2,37,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6528,3,000,33,2,39,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6529,3,000,33,2,39,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6530,3,000,34,1,25,2,06,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6531,3,000,34,1,25,2,06,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6532,3,000,34,1,27,2,06,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6533,3,000,34,1,28,2,06,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6534,3,000,34,1,37,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6535,3,000,34,1,38,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6536,3,000,34,1,38,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +6537,3,000,20,1,39,2,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6538,3,000,20,1,39,2,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6539,3,000,20,1,40,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6540,3,000,20,1,40,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6541,3,000,20,1,40,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6542,3,000,20,1,41,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6543,3,000,20,1,41,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6544,3,000,20,1,41,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6545,3,000,20,1,41,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6546,3,000,20,1,42,1,01,2,1,0,0,2,37,183,052509,3001,3,9999,99999,99999999,9,99999,99999999,268211,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92036,N,01027267,450,5,99999,99999999,+35.8418495,-078.7215235,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01202,3,99999,99999,04720,049,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,004-05,27612 +6547,3,000,21,1,26,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6548,3,000,21,1,26,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6549,3,000,21,1,29,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6550,3,000,21,1,55,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6551,3,000,21,1,55,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6552,3,000,21,1,57,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6553,3,000,21,1,57,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6554,3,000,21,1,71,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6555,3,000,21,1,71,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6556,3,000,25,1,7,1,01,2,1,0,0,1,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +6557,3,000,25,2,11,1,01,2,1,0,0,1,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6558,3,000,25,2,22,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6559,3,000,25,2,22,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6560,3,000,25,2,22,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6561,3,000,25,2,24,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6562,3,000,25,2,56,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6563,3,000,25,2,65,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6564,3,000,28,1,10,1,01,2,1,0,0,1,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6565,3,000,29,1,83,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6566,3,000,29,2,69,1,05,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +6567,3,000,25,2,1,1,02,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6568,3,000,25,2,5,1,02,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6569,3,000,25,2,5,1,09,2,2,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6570,3,000,25,2,6,1,01,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6571,3,000,25,2,6,1,09,2,2,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6572,3,000,25,2,15,1,01,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6573,3,000,25,2,18,1,13,2,2,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6574,3,000,25,2,62,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6575,3,000,27,1,9,1,02,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6576,3,000,27,1,15,1,02,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +6577,3,000,21,1,75,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6578,3,000,21,1,75,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6579,3,000,21,1,75,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6580,3,000,21,1,77,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6581,3,000,21,1,77,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6582,3,000,21,2,31,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6583,3,000,21,2,32,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6584,3,000,21,2,35,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6585,3,000,21,2,35,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6586,3,000,21,2,35,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +6587,3,000,20,1,55,2,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6588,3,000,20,1,56,1,02,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6589,3,000,20,1,57,1,02,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6590,3,000,20,1,58,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6591,3,000,20,1,58,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6592,3,000,20,1,59,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6593,3,000,20,1,59,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6594,3,000,20,1,75,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6595,3,000,20,1,75,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6596,3,000,20,1,77,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +6597,3,000,21,1,68,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6598,3,000,21,1,73,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6599,3,000,21,1,73,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6600,3,000,21,2,25,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6601,3,000,21,2,25,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6602,3,000,21,2,35,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6603,3,000,21,2,43,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6604,3,000,21,2,43,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6605,3,000,21,2,46,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6606,3,000,21,2,57,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +6607,3,000,21,2,56,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6608,3,000,21,2,58,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6609,3,000,21,2,58,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6610,3,000,21,2,58,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6611,3,000,21,2,58,1,04,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6612,3,000,21,2,62,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6613,3,000,21,2,62,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6614,3,000,21,2,62,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6615,3,000,21,2,62,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6616,3,000,22,1,71,1,01,2,1,0,0,2,20,173,005300,7014,7,9999,99999,99999999,9,99999,99999999,26130,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6402139,-097.3624591,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,096,028,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501170,67217 +6617,3,000,20,1,63,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6618,3,000,20,1,63,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6619,3,000,20,1,83,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6620,3,000,20,1,93,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6621,3,000,20,1,95,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6622,3,000,20,1,95,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6623,3,000,20,2,43,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6624,3,000,20,2,46,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6625,3,000,20,2,46,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6626,3,000,20,2,46,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +6627,3,000,20,2,68,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6628,3,000,20,2,70,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6629,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6630,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6631,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6632,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6633,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6634,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6635,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6636,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +6637,3,000,21,1,35,2,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6638,3,000,21,1,35,2,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6639,3,000,21,1,48,1,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6640,3,000,21,1,48,1,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6641,3,000,21,1,53,2,06,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6642,3,000,21,1,53,2,06,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6643,3,000,21,1,54,2,06,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6644,3,000,21,1,54,2,06,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6645,3,000,21,2,15,2,02,2,1,0,0,1,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6646,3,000,21,2,44,2,11,2,2,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +6647,3,000,20,2,41,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6648,3,000,20,2,41,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6649,3,000,20,2,41,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6650,3,000,20,2,41,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6651,3,000,20,2,41,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6652,3,000,20,2,42,1,01,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6653,3,000,20,2,42,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6654,3,000,20,2,42,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6655,3,000,20,2,43,1,01,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6656,3,000,20,2,43,1,01,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +6657,3,000,20,2,72,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6658,3,000,21,1,28,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6659,3,000,21,1,28,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6660,3,000,21,1,35,2,18,2,2,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6661,3,000,21,1,50,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6662,3,000,21,1,50,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6663,3,000,21,1,50,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6664,3,000,21,1,54,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6665,3,000,21,1,58,2,06,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6666,3,000,21,2,51,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +6667,3,000,21,2,72,1,01,2,1,0,0,2,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6668,3,000,21,2,72,1,01,2,1,0,0,2,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6669,3,000,22,1,52,1,01,2,1,0,0,2,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6670,3,000,22,1,52,1,01,2,1,0,0,2,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6671,3,000,25,1,8,1,01,2,1,0,0,1,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6672,3,000,25,1,8,1,01,2,1,0,0,1,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6673,3,000,25,1,8,1,01,2,1,0,0,1,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6674,3,000,25,1,13,1,01,2,1,0,0,1,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6675,3,000,25,1,13,1,01,2,1,0,0,1,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6676,3,000,25,1,13,1,01,2,1,0,0,1,37,159,051001,2044,2,9999,99999,99999999,9,99999,99999999,281925,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,91256,N,01027145,172,5,99999,99999999,+35.5563810,-080.4205056,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,04050,076,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000025,28138 +6677,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6678,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6679,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6680,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6681,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6682,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6683,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6684,3,000,25,2,19,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6685,3,000,25,2,35,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6686,3,000,25,2,36,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +6687,3,000,20,1,46,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6688,3,000,20,1,46,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6689,3,000,20,1,46,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6690,3,000,20,1,46,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6691,3,000,20,1,48,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6692,3,000,20,1,53,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6693,3,000,20,1,53,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6694,3,000,20,1,61,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6695,3,000,20,1,65,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6696,3,000,20,1,65,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +6697,3,000,22,2,40,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6698,3,000,22,2,41,2,11,2,2,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6699,3,000,22,2,42,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6700,3,000,22,2,45,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6701,3,000,22,2,45,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6702,3,000,22,2,45,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6703,3,000,22,2,46,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6704,3,000,22,2,46,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6705,3,000,22,2,56,1,01,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6706,3,000,22,2,65,2,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +6707,3,000,20,2,42,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6708,3,000,20,2,42,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6709,3,000,20,2,42,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6710,3,000,20,2,57,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6711,3,000,20,2,57,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6712,3,000,20,2,57,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6713,3,000,20,2,61,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6714,3,000,20,2,61,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6715,3,000,21,1,68,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6716,3,000,21,2,29,1,01,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +6717,3,000,21,2,64,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6718,3,000,21,2,69,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6719,3,000,21,2,69,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6720,3,000,21,2,69,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6721,3,000,21,2,69,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6722,3,000,21,2,69,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6723,3,000,22,1,42,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6724,3,000,22,1,43,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6725,3,000,22,2,39,1,01,2,1,0,0,2,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6726,3,000,25,1,2,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +6727,3,000,21,2,56,2,11,2,2,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6728,3,000,21,2,60,1,02,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6729,3,000,21,2,60,1,02,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6730,3,000,21,2,60,1,02,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6731,3,000,21,2,60,1,02,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6732,3,000,21,2,61,1,02,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6733,3,000,21,2,61,1,02,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6734,3,000,21,2,62,1,01,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6735,3,000,21,2,62,1,01,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6736,3,000,21,2,62,1,01,2,1,0,0,2,37,119,006005,2010,2,9999,99999,99999999,9,99999,99999999,1218874,1822,0,0,1822,0,16740,12,999,99999,99999999,A,01008570,93720,N,01026941,172,5,99999,99999999,+35.2891343,-080.9874165,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03108,3,99999,99999,02970,101,041,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000224,28214 +6737,3,000,20,2,48,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6738,3,000,20,2,48,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6739,3,000,20,2,48,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6740,3,000,20,2,48,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6741,3,000,21,1,72,1,08,2,2,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6742,3,000,22,1,22,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6743,3,000,25,1,12,1,01,2,1,0,0,1,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6744,3,000,25,1,19,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6745,3,000,25,1,19,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6746,3,000,25,1,19,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +6747,3,000,20,1,60,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6748,3,000,20,1,60,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6749,3,000,20,1,70,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6750,3,000,20,1,70,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6751,3,000,20,1,70,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6752,3,000,20,1,70,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6753,3,000,20,1,72,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6754,3,000,20,1,72,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6755,3,000,20,1,72,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6756,3,000,20,1,72,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +6757,3,000,25,2,2,2,11,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6758,3,000,25,2,3,2,11,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6759,3,000,25,2,3,2,11,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6760,3,000,25,2,4,2,11,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6761,3,000,25,2,4,2,11,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6762,3,000,25,2,5,1,23,2,3,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6763,3,000,25,2,5,2,11,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6764,3,000,25,2,6,2,18,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6765,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6766,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +6767,3,000,36,1,40,2,06,2,1,0,0,2,32,003,001801,4011,4,9999,99999,99999999,9,99999,99999999,48237,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1305115,-115.0928193,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6768,3,000,20,1,56,1,04,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6769,3,000,20,1,56,1,04,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6770,3,000,20,1,67,1,01,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6771,3,000,20,1,67,1,01,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6772,3,000,20,1,67,1,01,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6773,3,000,20,1,67,1,01,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6774,3,000,20,1,67,1,01,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6775,3,000,20,1,68,1,01,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6776,3,000,20,1,75,2,06,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +6777,3,000,20,1,26,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6778,3,000,20,1,26,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6779,3,000,20,1,27,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6780,3,000,20,1,27,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6781,3,000,20,1,28,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6782,3,000,20,1,33,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6783,3,000,20,1,33,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6784,3,000,20,1,34,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6785,3,000,20,1,34,2,06,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6786,3,000,20,1,38,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +6787,3,000,20,2,42,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6788,3,000,20,2,42,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6789,3,000,20,2,42,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6790,3,000,20,2,42,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6791,3,000,20,2,44,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6792,3,000,20,2,49,2,11,2,2,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6793,3,000,20,2,51,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6794,3,000,20,2,51,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6795,3,000,20,2,51,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6796,3,000,20,2,51,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +6797,3,000,20,1,35,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6798,3,000,20,1,35,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6799,3,000,20,1,35,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6800,3,000,20,1,35,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6801,3,000,20,1,35,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6802,3,000,20,2,29,1,11,2,2,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6803,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6804,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6805,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6806,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +6807,3,000,20,1,69,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6808,3,000,20,1,69,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6809,3,000,20,1,86,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6810,3,000,20,2,38,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6811,3,000,20,2,38,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6812,3,000,20,2,62,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6813,3,000,21,1,57,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6814,3,000,21,1,64,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6815,3,000,21,1,64,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6816,3,000,21,1,64,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +6817,3,000,20,2,43,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6818,3,000,20,2,43,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6819,3,000,20,2,43,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6820,3,000,20,2,44,1,01,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6821,3,000,20,2,45,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6822,3,000,20,2,45,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6823,3,000,20,2,47,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6824,3,000,20,2,50,1,02,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6825,3,000,20,2,50,1,02,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6826,3,000,20,2,50,1,02,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +6827,3,000,25,2,0,2,06,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6828,3,000,25,2,0,2,06,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6829,3,000,25,2,0,2,06,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6830,3,000,25,2,1,1,01,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6831,3,000,25,2,1,1,01,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6832,3,000,25,2,1,1,02,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6833,3,000,25,2,1,1,07,2,2,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6834,3,000,25,2,1,1,07,2,2,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6835,3,000,25,2,1,1,07,2,2,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6836,3,000,25,2,1,2,06,2,1,0,0,1,51,085,320602,2024,2,9999,99999,99999999,9,99999,99999999,42350,0,0,0,0,0,40060,01,999,99999,99999999,A,01480132,90096,N,01927080,999,5,99999,99999999,+37.7520445,-077.4650801,L,1,99999,99999,99999,9,N,N,03368,A,02390708,14501,3,99999,99999,01830,055,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000101,23005 +6837,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6838,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6839,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6840,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6841,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6842,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6843,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6844,3,000,21,2,65,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6845,3,000,21,2,66,1,02,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6846,3,000,21,2,77,1,01,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +6847,3,000,25,1,20,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6848,3,000,25,1,20,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6849,3,000,25,1,20,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6850,3,000,25,1,22,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6851,3,000,25,1,22,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6852,3,000,25,1,24,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6853,3,000,25,1,24,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6854,3,000,25,1,24,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6855,3,000,25,1,24,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6856,3,000,25,2,26,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +6857,3,000,21,1,42,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6858,3,000,21,1,42,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6859,3,000,21,1,42,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6860,3,000,21,1,49,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6861,3,000,21,1,51,2,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6862,3,000,21,1,51,2,06,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6863,3,000,21,1,51,2,06,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6864,3,000,21,1,51,2,06,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6865,3,000,21,1,51,2,06,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6866,3,000,21,1,52,1,04,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +6867,5,801,38,2,94,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6868,5,801,38,2,94,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6869,5,801,38,2,96,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6870,5,801,38,2,96,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6871,5,801,38,2,96,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6872,5,801,38,2,96,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6873,5,801,38,2,97,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6874,5,801,38,2,98,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6875,5,801,38,2,99,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6876,5,801,38,2,99,1,01,0,1,2,7,2,55,139,002601,2007,2,9999,99999,99999999,9,99999,99999999,166868,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2286452,-088.4302329,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007155,54952 +6877,3,000,25,1,20,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6878,3,000,25,1,20,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6879,3,000,25,1,20,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6880,3,000,25,1,22,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6881,3,000,25,1,22,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6882,3,000,25,1,22,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6883,3,000,25,1,22,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6884,3,000,25,1,22,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6885,3,000,25,1,31,1,11,2,2,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6886,3,000,25,1,31,1,11,2,2,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +6887,3,000,20,2,58,2,11,2,2,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6888,3,000,20,2,60,2,06,2,1,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6889,3,000,20,2,62,2,11,2,2,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6890,3,000,20,2,63,1,09,2,2,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6891,3,000,20,2,64,2,11,2,2,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6892,3,000,20,2,67,1,04,2,1,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6893,3,000,20,2,67,1,04,2,1,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6894,3,000,20,2,67,1,04,2,1,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6895,3,000,20,2,68,2,11,2,2,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6896,3,000,20,2,69,1,04,2,1,0,0,2,06,037,134720,1000,1,9999,99999,99999999,9,99999,99999999,69694,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2074415,-118.5633990,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03725,4,99999,99999,22710,045,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91306 +6897,3,000,36,1,42,1,02,2,1,0,0,2,45,085,001701,2031,2,9999,99999,99999999,9,99999,99999999,216956,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9166177,-080.4217676,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000138,29154 +6898,3,000,20,1,59,1,02,1,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6899,3,000,20,1,59,1,02,1,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6900,3,000,20,1,59,1,02,1,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6901,3,000,20,2,49,1,02,1,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6902,3,000,20,2,57,1,02,1,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6903,3,000,20,2,57,1,02,1,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6904,3,000,20,2,64,1,12,1,2,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6905,3,000,20,1,55,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6906,3,000,20,1,55,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +6907,3,000,20,2,40,1,01,1,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6908,3,000,20,2,62,1,01,1,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6909,3,000,20,2,62,1,01,1,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6910,3,000,20,1,19,2,11,2,2,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6911,3,000,20,1,19,2,11,2,2,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6912,3,000,20,1,35,2,06,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6913,3,000,20,1,38,2,06,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6914,3,000,20,1,39,2,06,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6915,3,000,20,1,40,2,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6916,3,000,20,1,43,2,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +6917,3,000,20,2,67,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6918,3,000,20,2,67,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6919,3,000,20,2,67,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6920,3,000,20,2,67,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6921,3,000,20,2,67,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6922,3,000,20,2,68,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6923,3,000,20,2,69,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6924,3,000,20,2,69,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6925,3,000,20,2,69,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6926,3,000,20,2,69,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +6927,3,000,20,1,37,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6928,3,000,20,1,37,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6929,3,000,20,1,37,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6930,3,000,20,1,37,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6931,3,000,20,1,45,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6932,3,000,20,1,45,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6933,3,000,20,1,47,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6934,3,000,20,1,48,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6935,3,000,20,1,48,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6936,3,000,20,1,48,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +6937,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6938,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6939,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6940,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6941,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6942,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6943,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6944,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6945,3,000,21,2,60,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6946,3,000,21,2,67,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +6947,3,000,20,1,92,1,01,1,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6948,3,000,20,2,53,1,01,1,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6949,3,000,20,2,66,1,01,1,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6950,3,000,20,2,66,1,01,1,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6951,3,000,20,1,50,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6952,3,000,20,1,51,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6953,3,000,20,1,56,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6954,3,000,20,1,56,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6955,3,000,20,1,63,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6956,3,000,20,1,63,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +6957,3,000,20,1,33,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6958,3,000,20,1,33,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6959,3,000,20,1,45,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6960,3,000,20,1,45,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6961,3,000,20,1,45,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6962,3,000,20,1,45,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6963,3,000,20,1,47,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6964,3,000,20,1,48,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6965,3,000,20,1,60,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6966,3,000,20,1,61,1,01,2,1,0,0,2,41,029,001100,4016,4,9999,99999,99999999,9,99999,99999999,37848,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3894002,-122.8909478,L,1,99999,99999,99999,9,N,N,12400,A,02409428,02901,4,99999,99999,02940,004,002,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,12400,U,,97502 +6967,3,000,30,2,4,1,23,2,3,0,0,1,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6968,3,000,30,2,19,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6969,3,000,30,2,19,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6970,3,000,31,2,67,1,02,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6971,3,000,31,2,67,1,02,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6972,3,000,33,1,9,2,03,2,1,0,0,1,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6973,3,000,33,1,32,2,11,2,2,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6974,3,000,33,2,13,1,02,2,1,0,0,1,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6975,3,000,33,2,15,1,01,2,1,0,0,1,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6976,3,000,33,2,19,1,04,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +6977,3,000,20,1,42,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6978,3,000,20,1,44,2,06,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6979,3,000,20,1,45,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6980,3,000,20,1,45,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6981,3,000,20,1,45,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6982,3,000,20,1,45,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6983,3,000,20,1,45,2,11,2,2,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6984,3,000,20,1,47,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6985,3,000,20,1,47,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6986,3,000,20,1,47,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +6987,3,000,27,2,24,1,01,2,1,0,0,2,45,051,030104,2038,2,9999,99999,99999999,9,99999,99999999,37910,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9284313,-078.7478699,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6988,3,000,28,2,29,1,01,2,1,0,0,2,45,051,030104,2038,2,9999,99999,99999999,9,99999,99999999,37910,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9284313,-078.7478699,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6989,3,000,30,2,0,1,02,2,1,0,0,1,45,051,030104,2038,2,9999,99999,99999999,9,99999,99999999,37910,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9284313,-078.7478699,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6990,3,000,33,2,32,1,01,2,1,0,0,2,45,051,030104,2038,2,9999,99999,99999999,9,99999,99999999,37910,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9284313,-078.7478699,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6991,3,000,33,2,32,1,01,2,1,0,0,2,45,051,030104,2038,2,9999,99999,99999999,9,99999,99999999,37910,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9284313,-078.7478699,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6992,3,000,34,2,53,1,01,2,1,0,0,2,45,051,030104,2038,2,9999,99999,99999999,9,99999,99999999,37910,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9284313,-078.7478699,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6993,3,000,20,1,35,2,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6994,3,000,20,1,43,1,08,2,2,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6995,3,000,20,1,43,1,08,2,2,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6996,3,000,20,1,71,1,02,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +6997,3,000,34,1,33,1,01,2,1,0,0,2,48,231,961402,3082,3,9999,99999,99999999,9,99999,99999999,1098356,2003,0,0,2003,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0363104,-096.2676200,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +6998,3,000,36,1,18,1,01,2,1,0,0,2,48,231,961402,3082,3,9999,99999,99999999,9,99999,99999999,1098356,2003,0,0,2003,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0363104,-096.2676200,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +6999,3,000,20,1,28,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7000,3,000,20,1,28,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7001,3,000,20,1,28,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7002,3,000,20,1,52,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7003,3,000,20,1,54,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7004,3,000,20,1,70,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7005,3,000,20,1,70,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7006,3,000,20,2,41,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +7007,3,000,20,1,75,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7008,3,000,20,1,75,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7009,3,000,20,1,75,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7010,3,000,20,1,75,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7011,3,000,20,1,76,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7012,3,000,20,2,21,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7013,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7014,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7015,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7016,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +7017,3,000,25,2,34,2,11,2,2,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7018,3,000,25,2,35,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7019,3,000,25,2,35,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7020,3,000,25,2,42,1,01,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7021,3,000,25,2,42,1,01,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7022,3,000,25,2,43,1,01,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7023,3,000,25,2,43,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7024,3,000,25,2,45,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7025,3,000,26,1,22,2,11,2,2,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7026,3,000,27,1,12,2,01,2,1,0,0,1,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +7027,3,000,20,1,65,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7028,3,000,20,1,78,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7029,3,000,20,1,81,2,06,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7030,3,000,20,2,36,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7031,3,000,20,2,53,2,03,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7032,3,000,20,2,60,2,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7033,3,000,20,2,61,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7034,3,000,20,2,61,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7035,3,000,21,2,39,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7036,3,000,21,2,39,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +7037,3,000,25,1,10,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7038,3,000,25,1,10,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7039,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7040,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7041,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7042,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7043,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7044,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7045,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7046,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +7047,3,000,20,1,37,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7048,3,000,20,1,46,2,11,1,2,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7049,3,000,20,1,47,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7050,3,000,20,1,49,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7051,3,000,20,1,51,2,11,1,2,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7052,3,000,20,1,54,2,11,1,2,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7053,3,000,20,1,54,2,11,1,2,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7054,3,000,20,1,60,2,06,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7055,3,000,20,1,71,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7056,3,000,20,2,28,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +7057,3,000,21,2,58,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7058,3,000,21,2,58,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7059,3,000,21,2,58,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7060,3,000,21,2,67,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7061,3,000,21,2,67,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7062,3,000,21,2,67,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7063,3,000,21,2,67,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7064,3,000,21,2,68,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7065,3,000,21,2,69,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7066,3,000,21,2,69,1,01,2,1,0,0,2,47,157,020836,4035,4,9999,99999,99999999,9,99999,99999999,325126,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90538,N,02464196,368,6,99999,99999999,+35.2661836,-089.7246571,L,1,99999,99999,99999,9,N,N,40350,A,02404871,02504,3,00154,47002,99999,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008096,38002 +7067,3,000,29,1,60,1,01,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7068,3,000,29,1,60,1,01,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7069,3,000,30,2,4,1,02,2,1,0,0,1,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7070,3,000,30,2,4,1,02,2,1,0,0,1,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7071,3,000,30,2,4,1,02,2,1,0,0,1,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7072,3,000,30,2,13,1,07,2,2,0,0,1,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7073,3,000,34,1,20,1,02,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7074,3,000,34,2,22,1,01,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7075,3,000,34,2,24,1,01,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7076,3,000,34,2,24,1,01,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +7077,3,000,20,2,83,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7078,3,000,20,2,83,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7079,3,000,20,2,83,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7080,3,000,20,2,83,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7081,3,000,20,2,83,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7082,3,000,20,2,84,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7083,3,000,20,2,84,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7084,3,000,20,2,95,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7085,3,000,20,2,96,1,01,1,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7086,3,000,20,2,69,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +7087,3,000,20,1,28,2,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7088,3,000,20,1,57,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7089,3,000,20,1,77,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7090,3,000,20,1,82,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7091,3,000,20,1,82,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7092,3,000,20,1,86,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7093,3,000,20,2,38,2,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7094,3,000,20,2,62,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7095,3,000,20,2,71,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7096,3,000,20,2,72,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +7097,3,000,20,2,61,1,01,1,1,0,0,2,17,019,010500,4094,4,9999,99999,99999999,9,99999,99999999,2598431,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3473555,-088.3563454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61843 +7098,3,000,20,2,63,1,03,2,1,0,0,2,17,019,010500,4094,4,9999,99999,99999999,9,99999,99999999,2598431,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3473555,-088.3563454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61843 +7099,3,000,21,2,56,1,01,2,1,0,0,2,17,019,010500,4094,4,9999,99999,99999999,9,99999,99999999,2598431,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3473555,-088.3563454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61843 +7100,3,000,21,2,56,1,01,2,1,0,0,2,17,019,010500,4094,4,9999,99999,99999999,9,99999,99999999,2598431,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3473555,-088.3563454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61843 +7101,3,000,21,2,59,1,01,2,1,0,0,2,17,019,010500,4094,4,9999,99999,99999999,9,99999,99999999,2598431,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3473555,-088.3563454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61843 +7102,3,000,21,1,56,1,01,2,1,0,0,2,17,019,010500,4095,4,9999,99999,99999999,9,99999,99999999,403356,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3558235,-088.3565435,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61845 +7103,3,000,21,1,58,1,01,2,1,0,0,2,17,019,010500,4095,4,9999,99999,99999999,9,99999,99999999,403356,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3558235,-088.3565435,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61845 +7104,3,000,25,1,25,1,01,2,1,0,0,2,17,019,010500,4095,4,9999,99999,99999999,9,99999,99999999,403356,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3558235,-088.3565435,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61845 +7105,3,000,25,2,46,1,01,2,1,0,0,2,17,019,010500,4095,4,9999,99999,99999999,9,99999,99999999,403356,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3558235,-088.3565435,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BF1000,61845 +7106,3,000,20,2,46,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +7107,3,000,25,1,15,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7108,3,000,25,1,15,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7109,3,000,25,1,15,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7110,3,000,25,1,15,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7111,3,000,25,1,15,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7112,3,000,25,1,15,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7113,3,000,25,1,15,2,01,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7114,3,000,25,1,16,1,02,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7115,3,000,25,1,16,1,02,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7116,3,000,25,1,16,1,02,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +7117,3,000,30,2,4,1,02,2,1,0,0,1,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7118,3,000,33,2,22,1,02,2,1,0,0,2,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7119,3,000,33,2,24,1,02,2,1,0,0,2,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7120,3,000,33,2,24,1,02,2,1,0,0,2,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7121,3,000,33,2,24,1,02,2,1,0,0,2,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7122,3,000,33,2,24,1,02,2,1,0,0,2,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7123,3,000,36,2,32,1,02,2,1,0,0,2,37,119,004700,1029,1,9999,99999,99999999,9,99999,99999999,19541,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2378603,-080.8582443,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,101,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000011,28216 +7124,3,000,20,1,67,1,02,1,1,0,0,2,37,119,004600,2000,2,9999,99999,99999999,9,99999,99999999,28589,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2616892,-080.8555298,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000025,28216 +7125,3,000,20,1,67,1,02,1,1,0,0,2,37,119,004600,2000,2,9999,99999,99999999,9,99999,99999999,28589,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2616892,-080.8555298,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000025,28216 +7126,3,000,20,2,61,1,02,1,1,0,0,2,37,119,004600,2000,2,9999,99999,99999999,9,99999,99999999,28589,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2616892,-080.8555298,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03102,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000025,28216 +7127,3,000,25,1,20,1,01,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7128,3,000,25,1,20,1,01,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7129,3,000,25,1,20,1,01,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7130,3,000,25,1,20,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7131,3,000,25,1,20,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7132,3,000,25,1,20,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7133,3,000,25,1,20,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7134,3,000,25,1,20,2,01,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7135,3,000,25,1,20,2,01,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7136,3,000,25,1,21,1,08,2,2,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +7137,3,000,20,2,43,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7138,3,000,20,2,43,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7139,3,000,20,2,43,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7140,3,000,20,2,44,2,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7141,3,000,20,2,54,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7142,3,000,20,2,54,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7143,3,000,20,2,54,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7144,3,000,20,2,54,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7145,3,000,20,2,54,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7146,3,000,20,2,54,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +7147,3,000,20,1,58,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7148,3,000,20,1,58,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7149,3,000,20,1,58,1,04,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7150,3,000,20,1,59,1,04,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7151,3,000,20,1,67,2,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7152,3,000,20,1,72,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7153,3,000,20,1,72,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7154,3,000,20,1,72,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7155,3,000,20,1,86,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7156,3,000,20,1,86,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +7157,3,000,26,2,10,1,02,2,1,0,0,1,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7158,3,000,26,2,19,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7159,3,000,26,2,19,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7160,3,000,30,1,11,2,06,2,1,0,0,1,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7161,3,000,30,1,11,2,06,2,1,0,0,1,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7162,3,000,30,2,2,1,01,2,1,0,0,1,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7163,3,000,33,1,59,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7164,3,000,33,2,26,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7165,3,000,33,2,26,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7166,3,000,33,2,26,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +7167,3,000,30,1,16,1,09,2,2,0,0,1,04,013,061402,1009,1,9999,99999,99999999,9,99999,99999999,13156,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216617,-112.3510244,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7168,3,000,31,1,80,2,06,2,1,0,0,2,04,013,061402,1009,1,9999,99999,99999999,9,99999,99999999,13156,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216617,-112.3510244,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7169,3,000,31,1,80,2,06,2,1,0,0,2,04,013,061402,1009,1,9999,99999,99999999,9,99999,99999999,13156,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216617,-112.3510244,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7170,3,000,36,1,65,2,06,2,1,0,0,2,04,013,061402,1009,1,9999,99999,99999999,9,99999,99999999,13156,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216617,-112.3510244,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7171,3,000,36,1,65,2,06,2,1,0,0,2,04,013,061402,1009,1,9999,99999,99999999,9,99999,99999999,13156,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216617,-112.3510244,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7172,3,000,20,1,25,2,01,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7173,3,000,20,2,22,2,06,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7174,3,000,20,2,22,2,06,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7175,3,000,20,2,22,2,06,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7176,3,000,20,2,22,2,06,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +7177,3,000,22,2,63,1,01,2,1,0,0,2,54,039,001700,2002,2,9999,99999,99999999,9,99999,99999999,6848,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3223898,-081.5858212,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7178,3,000,25,2,33,1,01,2,1,0,0,2,54,039,001700,2002,2,9999,99999,99999999,9,99999,99999999,6848,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3223898,-081.5858212,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7179,3,000,25,2,33,1,01,2,1,0,0,2,54,039,001700,2002,2,9999,99999,99999999,9,99999,99999999,6848,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3223898,-081.5858212,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7180,3,000,25,2,33,1,01,2,1,0,0,2,54,039,001700,2002,2,9999,99999,99999999,9,99999,99999999,6848,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3223898,-081.5858212,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7181,3,000,21,1,67,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7182,3,000,21,1,68,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7183,3,000,21,1,69,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7184,3,000,21,1,69,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7185,3,000,21,2,67,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7186,3,000,21,2,67,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +7187,3,000,26,1,16,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7188,3,000,26,1,16,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7189,3,000,27,1,2,2,07,2,2,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7190,3,000,27,1,16,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7191,3,000,30,1,3,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7192,3,000,30,1,3,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7193,3,000,36,1,10,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7194,3,000,36,1,12,1,01,2,1,0,0,1,39,165,032009,1042,1,9999,99999,99999999,9,99999,99999999,3372,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3070216,-084.3197129,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7195,3,000,20,1,43,1,25,2,3,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7196,3,000,20,2,25,1,01,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +7197,3,000,25,1,21,1,02,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7198,3,000,25,1,22,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7199,3,000,25,1,22,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7200,3,000,25,1,22,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7201,3,000,25,1,22,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7202,3,000,25,1,22,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7203,3,000,25,1,23,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7204,3,000,25,1,23,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7205,3,000,25,1,23,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7206,3,000,25,1,23,1,01,2,1,0,0,2,28,121,020208,2002,2,9999,99999,99999999,9,99999,99999999,195068,0,0,0,0,0,27140,03,999,99999,99999999,A,00695781,92763,N,00704463,298,6,99999,99999999,+32.3032388,-090.0215196,L,1,99999,99999,99999,9,N,N,08300,A,02403914,01300,3,99999,99999,03830,074,020,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000412,39042 +7207,3,000,21,2,27,1,11,2,2,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7208,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7209,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7210,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7211,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7212,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7213,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7214,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7215,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7216,3,000,21,2,28,1,04,2,1,0,0,2,34,017,007702,1003,1,9999,99999,99999999,9,99999,99999999,20504,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,36000,F,00885264,408,2,99999,99999999,+40.7309362,-074.0360035,L,1,35614,99999,99999,9,Y,N,36000,A,00885264,00601,1,99999,99999,07830,033,033,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,030E20,07310 +7217,3,000,21,1,34,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7218,3,000,21,1,36,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7219,3,000,21,1,37,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7220,3,000,21,1,38,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7221,3,000,21,1,38,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7222,3,000,21,1,38,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7223,3,000,21,1,38,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7224,3,000,21,1,39,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7225,3,000,21,1,39,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7226,3,000,21,1,42,1,04,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +7227,3,000,20,1,40,1,01,1,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7228,3,000,20,2,70,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7229,3,000,20,2,70,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7230,3,000,20,2,72,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7231,3,000,21,1,31,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7232,3,000,21,1,48,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7233,3,000,21,1,60,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7234,3,000,21,1,60,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7235,3,000,21,1,61,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7236,3,000,21,2,51,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +7237,3,000,25,1,63,1,02,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7238,3,000,25,2,5,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7239,3,000,25,2,5,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7240,3,000,25,2,5,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7241,3,000,25,2,5,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7242,3,000,25,2,9,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7243,3,000,25,2,9,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7244,3,000,25,2,9,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7245,3,000,25,2,9,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7246,3,000,25,2,13,1,01,2,1,0,0,1,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +7247,3,000,20,2,37,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7248,3,000,20,2,37,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7249,3,000,20,2,37,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7250,3,000,20,2,37,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7251,3,000,20,2,37,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7252,3,000,20,2,38,1,22,2,3,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7253,3,000,20,2,38,2,03,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7254,3,000,20,2,39,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7255,3,000,20,2,39,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7256,3,000,20,2,39,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +7257,3,000,22,1,41,2,13,2,2,0,0,2,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7258,3,000,25,1,2,2,06,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7259,3,000,25,1,3,1,03,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7260,3,000,25,1,3,2,11,2,2,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7261,3,000,25,1,4,2,11,2,2,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7262,3,000,25,1,4,2,11,2,2,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7263,3,000,25,1,4,2,11,2,2,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7264,3,000,25,1,5,2,11,2,2,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7265,3,000,25,1,10,1,02,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7266,3,000,25,1,10,1,02,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +7267,3,000,21,2,37,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7268,3,000,21,2,38,1,01,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7269,3,000,21,2,38,1,01,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7270,3,000,21,2,38,1,01,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7271,3,000,21,2,38,1,01,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7272,3,000,21,2,41,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7273,3,000,21,2,41,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7274,3,000,21,2,42,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7275,3,000,21,2,42,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7276,3,000,21,2,42,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +7277,3,000,21,1,38,1,04,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7278,3,000,21,1,40,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7279,3,000,21,1,40,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7280,3,000,21,1,40,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7281,3,000,21,1,40,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7282,3,000,21,1,43,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7283,3,000,21,1,43,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7284,3,000,21,1,43,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7285,3,000,21,1,44,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7286,3,000,21,1,45,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +7287,3,000,21,2,75,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7288,3,000,21,2,87,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7289,3,000,21,2,87,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7290,3,000,22,1,28,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7291,3,000,22,1,29,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7292,3,000,22,1,45,1,02,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7293,3,000,22,2,47,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7294,3,000,22,2,47,1,01,2,1,0,0,2,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7295,3,000,25,1,0,1,01,2,1,0,0,1,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7296,3,000,25,1,0,1,01,2,1,0,0,1,47,163,043302,1040,1,9999,99999,99999999,9,99999,99999999,295523,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,90924,N,02464495,304,6,99999,99999999,+36.4648783,-082.2661289,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,008512,37618 +7297,3,000,34,2,71,1,01,2,1,0,0,2,37,175,960502,3007,3,9999,99999,99999999,9,99999,99999999,3565894,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2394688,-082.8634163,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7298,3,000,34,2,71,1,01,2,1,0,0,2,37,175,960502,3007,3,9999,99999,99999999,9,99999,99999999,3565894,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2394688,-082.8634163,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7299,3,000,34,2,71,1,01,2,1,0,0,2,37,175,960502,3007,3,9999,99999,99999999,9,99999,99999999,3565894,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2394688,-082.8634163,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7300,3,000,36,2,17,1,01,2,1,0,0,1,37,175,960502,3007,3,9999,99999,99999999,9,99999,99999999,3565894,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2394688,-082.8634163,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7301,3,000,36,2,33,1,01,2,1,0,0,2,37,175,960502,3007,3,9999,99999,99999999,9,99999,99999999,3565894,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2394688,-082.8634163,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7302,3,000,20,1,50,1,01,1,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7303,3,000,20,1,71,1,01,1,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7304,3,000,20,1,73,1,01,1,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7305,3,000,20,1,58,1,01,2,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7306,3,000,20,1,58,1,01,2,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +7307,3,000,20,2,54,1,01,1,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7308,3,000,20,2,69,1,01,1,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7309,3,000,20,2,69,1,01,1,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7310,3,000,20,1,77,1,01,2,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7311,3,000,20,1,77,1,01,2,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7312,3,000,20,1,79,1,01,2,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7313,3,000,20,1,79,1,01,2,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7314,3,000,20,2,43,1,01,2,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7315,3,000,21,1,63,1,01,2,1,0,0,2,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7316,3,000,25,2,1,1,01,2,1,0,0,1,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +7317,3,000,20,1,69,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7318,3,000,20,2,33,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7319,3,000,20,2,34,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7320,3,000,20,2,34,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7321,3,000,20,2,34,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7322,3,000,20,2,34,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7323,3,000,20,2,34,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7324,3,000,20,2,38,2,11,2,2,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7325,3,000,20,2,61,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7326,3,000,20,2,61,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +7327,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7328,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7329,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7330,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7331,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7332,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7333,3,000,25,2,16,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7334,3,000,25,2,17,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7335,3,000,25,2,17,2,06,2,1,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7336,3,000,25,2,17,2,11,2,2,0,0,1,06,025,011002,5028,5,9999,99999,99999999,9,99999,99999999,126533,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,91380,S,01935143,999,9,99999,99999999,+32.8435474,-115.5894998,L,1,99999,99999,99999,9,N,N,36280,A,02410097,02500,4,99999,99999,18210,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,26405,U,99999,U,,92251 +7337,3,000,25,2,16,2,11,2,2,0,0,1,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7338,3,000,25,2,23,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7339,3,000,25,2,23,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7340,3,000,25,2,23,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7341,3,000,25,2,23,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7342,3,000,25,2,23,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7343,3,000,25,2,25,2,11,2,2,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7344,3,000,25,2,26,2,11,2,2,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7345,3,000,25,2,36,1,04,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7346,3,000,25,2,39,1,04,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +7347,3,000,30,2,12,1,01,2,1,0,0,1,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7348,3,000,33,1,61,1,02,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7349,3,000,33,1,61,1,02,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7350,3,000,33,1,63,1,01,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7351,3,000,33,1,63,1,01,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7352,3,000,33,1,63,1,01,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7353,3,000,33,2,48,1,08,2,2,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7354,3,000,36,1,34,1,01,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7355,3,000,36,1,34,1,01,2,1,0,0,2,13,059,150800,4014,4,9999,99999,99999999,9,99999,99999999,1411899,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8882082,-083.3070536,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7356,3,000,20,1,25,1,09,1,2,0,0,2,13,059,150800,4015,4,9999,99999,99999999,9,99999,99999999,256664,0,0,0,0,0,12020,10,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.8831838,-083.3092329,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,119,047,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00001D,30605 +7357,3,000,22,2,61,1,01,2,1,0,0,2,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7358,3,000,25,1,0,2,29,2,3,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7359,3,000,25,1,1,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7360,3,000,25,1,1,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7361,3,000,25,1,1,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7362,3,000,25,1,1,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7363,3,000,25,1,7,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7364,3,000,25,1,7,1,04,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7365,3,000,25,1,7,1,04,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7366,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +7367,3,000,25,1,4,1,01,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7368,3,000,25,1,4,1,01,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7369,3,000,25,1,4,1,01,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7370,3,000,25,1,4,1,01,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7371,3,000,25,1,5,1,01,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7372,3,000,25,1,5,2,02,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7373,3,000,25,1,7,1,04,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7374,3,000,25,1,7,1,04,2,1,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7375,3,000,25,1,8,1,11,2,2,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7376,3,000,25,1,9,1,11,2,2,0,0,1,42,003,151700,6000,6,9999,99999,99999999,9,99999,99999999,47429,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4269948,-079.9303788,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009900,15217 +7377,3,000,20,2,65,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7378,3,000,20,2,65,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7379,3,000,20,2,71,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7380,3,000,20,2,71,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7381,3,000,20,2,73,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7382,3,000,20,2,74,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7383,3,000,20,2,74,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7384,3,000,21,1,43,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7385,3,000,21,1,49,2,06,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7386,3,000,21,1,50,2,06,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +7387,3,000,20,2,72,1,01,1,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7388,3,000,20,2,78,1,01,1,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7389,3,000,20,1,25,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7390,3,000,20,1,28,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7391,3,000,20,1,28,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7392,3,000,20,1,75,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7393,3,000,20,1,75,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7394,3,000,20,1,75,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7395,3,000,20,1,75,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7396,3,000,20,1,76,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +7397,3,000,21,2,61,1,01,2,1,0,0,2,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7398,3,000,21,2,61,1,01,2,1,0,0,2,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7399,3,000,25,1,6,1,04,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7400,3,000,25,1,8,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7401,3,000,25,1,8,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7402,3,000,25,1,8,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7403,3,000,25,1,8,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7404,3,000,25,1,8,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7405,3,000,25,1,17,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7406,3,000,25,1,17,1,01,2,1,0,0,1,09,003,524200,1010,1,9999,99999,99999999,9,99999,99999999,47201,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,65370,A,00213497,278,1,99999,99999999,+41.6771878,-072.6600271,L,1,99999,99999,73450,1,9,9,99999,9,99999999,20205,1,99999,99999,03840,029,009,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-129,06067 +7407,3,000,25,2,23,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7408,3,000,25,2,23,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7409,3,000,25,2,23,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7410,3,000,25,2,23,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7411,3,000,25,2,43,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7412,3,000,25,2,44,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7413,3,000,25,2,66,1,06,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7414,3,000,27,1,16,1,11,2,2,0,0,1,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7415,3,000,27,1,18,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7416,3,000,27,2,5,1,11,2,2,0,0,1,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +7417,3,000,20,1,86,1,01,1,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7418,3,000,20,1,39,1,11,2,2,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7419,3,000,20,1,52,1,01,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7420,3,000,20,1,55,2,06,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7421,3,000,20,1,60,2,18,2,2,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7422,3,000,20,2,31,1,01,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7423,3,000,20,2,36,1,01,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7424,3,000,20,2,67,1,01,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7425,3,000,20,2,78,1,01,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7426,3,000,21,1,35,1,01,2,1,0,0,2,21,015,070316,3001,3,9999,99999,99999999,9,99999,99999999,14497,0,0,0,0,0,17140,04,999,99999,99999999,A,00516854,91272,S,01937004,178,6,99999,99999999,+38.9565902,-084.6646658,L,1,99999,99999,99999,9,N,N,27982,A,02403620,02500,3,99999,99999,00510,060,011,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00C134,41091 +7427,3,000,25,2,25,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7428,3,000,25,2,52,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7429,3,000,25,2,52,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7430,3,000,33,1,64,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7431,3,000,33,2,12,1,01,2,1,0,0,1,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7432,3,000,33,2,55,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7433,3,000,33,2,55,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7434,3,000,33,2,55,1,01,2,1,0,0,2,12,007,000302,1017,1,9999,99999,99999999,9,99999,99999999,438716,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8684564,-082.1328858,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7435,3,000,20,2,42,1,01,1,1,0,0,2,12,007,000302,1018,1,9999,99999,99999999,9,99999,99999999,3114,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8646510,-082.1352260,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7436,3,000,20,2,59,1,01,1,1,0,0,2,12,007,000302,1018,1,9999,99999,99999999,9,99999,99999999,3114,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8646510,-082.1352260,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +7437,3,000,20,2,68,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7438,3,000,20,2,69,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7439,3,000,21,2,50,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7440,3,000,21,2,53,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7441,3,000,25,2,12,1,02,2,1,0,0,1,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7442,3,000,25,2,20,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7443,3,000,26,1,1,1,02,2,1,0,0,1,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7444,3,000,28,1,15,1,02,2,1,0,0,1,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7445,3,000,28,1,56,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7446,3,000,28,1,59,1,02,2,1,0,0,2,13,163,960300,1028,1,9999,99999,99999999,9,99999,99999999,503884,0,0,0,0,0,99999,10,999,99999,99999999,A,00345714,91812,S,01936373,999,5,99999,99999999,+33.0862439,-082.4121185,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03100,3,99999,99999,03060,127,023,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,30434 +7447,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7448,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7449,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7450,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7451,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7452,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7453,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7454,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7455,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7456,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +7457,3,000,25,2,8,1,04,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7458,3,000,25,2,8,1,04,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7459,3,000,25,2,8,1,04,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7460,3,000,25,2,8,2,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7461,3,000,25,2,8,2,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7462,3,000,25,2,9,1,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7463,3,000,25,2,9,1,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7464,3,000,25,2,9,1,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7465,3,000,25,2,9,1,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7466,3,000,25,2,9,1,01,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +7467,3,000,30,1,27,1,01,2,1,0,0,2,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7468,3,000,30,1,27,1,01,2,1,0,0,2,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7469,3,000,30,1,31,1,01,2,1,0,0,2,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7470,3,000,30,1,31,1,01,2,1,0,0,2,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7471,3,000,30,2,2,1,01,2,1,0,0,1,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7472,3,000,30,2,2,1,01,2,1,0,0,1,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7473,3,000,30,2,5,1,07,2,2,0,0,1,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7474,3,000,30,2,17,1,01,2,1,0,0,1,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7475,3,000,31,2,51,1,01,2,1,0,0,2,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7476,3,000,32,2,21,2,01,2,1,0,0,2,47,165,021104,2000,2,9999,99999,99999999,9,99999,99999999,177443,0,0,0,0,0,34980,06,999,99999,99999999,A,01639794,91306,N,02464646,400,6,99999,99999999,+36.3137460,-086.6118388,L,1,99999,99999,99999,9,N,N,33280,A,02404684,00501,3,99999,99999,04020,045,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,008622,37075 +7477,3,000,32,2,30,1,01,2,1,0,0,2,47,061,955200,1050,1,9999,99999,99999999,9,99999,99999999,63232,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3541732,-085.5667118,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7478,3,000,20,1,46,1,01,2,1,0,0,2,47,061,955200,1051,1,9999,99999,99999999,9,99999,99999999,56153,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3524482,-085.5660769,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7479,3,000,20,1,49,1,01,2,1,0,0,2,47,061,955200,1051,1,9999,99999,99999999,9,99999,99999999,56153,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3524482,-085.5660769,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7480,3,000,25,1,11,1,01,2,1,0,0,1,47,061,955200,1051,1,9999,99999,99999999,9,99999,99999999,56153,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3524482,-085.5660769,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7481,3,000,25,1,11,1,01,2,1,0,0,1,47,061,955200,1051,1,9999,99999,99999999,9,99999,99999999,56153,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3524482,-085.5660769,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7482,3,000,20,1,58,1,01,1,1,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7483,3,000,20,1,58,1,01,1,1,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7484,3,000,20,1,49,1,01,2,1,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7485,3,000,20,1,49,1,01,2,1,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7486,3,000,20,1,61,1,01,2,1,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +7487,3,000,20,2,64,1,01,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7488,3,000,20,2,64,1,01,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7489,3,000,20,2,73,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7490,3,000,20,2,86,2,01,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7491,3,000,21,1,36,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7492,3,000,21,1,36,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7493,3,000,21,1,36,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7494,3,000,21,1,37,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7495,3,000,21,1,37,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7496,3,000,21,1,38,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +7497,3,000,21,2,73,1,04,2,1,0,0,2,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7498,3,000,25,1,2,1,01,2,1,0,0,1,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 diff --git a/examples/getting_started/sample_inputs/csv_samples/0002.csv b/examples/getting_started/sample_inputs/csv_samples/0002.csv new file mode 100644 index 000000000..831610d93 --- /dev/null +++ b/examples/getting_started/sample_inputs/csv_samples/0002.csv @@ -0,0 +1,7501 @@ +EPNUM,RTYPE,GQTYPE,RELSHIP,QSEX,QAGE,CENHISP,CENRACE,LIVE_ALONE,NUMRACE,PGQSHRT,GQTYPE_PL,VOTING_AGE,TABBLKST,TABBLKCOU,TABTRACTCE,TABBLK,TABBLKGRPCE,AIANNHCE,AIANNHFP,AIANNHNS,AIHHTLI,ANRCFP,ANRCNS,AREALAND,AREAWATER,AREAWATERCSTL,AREAWATERGRLK,AREAWATERINLD,AREAWATERTSEA,CBSAFP,CD116FP,CNECTAFP,CONCITFP,CONCITNS,COUNTYFS,COUNTYNS,COUSUBFP,COUSUBFS,COUSUBNS,CSAFP,DIVISIONCE,ESTATEFP,ESTATENS,INTPTLAT,INTPTLON,LWBLKTYP,MEMI,METDIVFP,NECTADIVFP,NECTAFP,NMEMI,PCICBSA,PCINECTA,PLACEFP,PLACEFS,PLACENS,PUMA,REGIONCE,SDELMLEA,SDSECLEA,SDUNILEA,SLDLST,SLDUST,STATENS,SUBMCDFP,SUBMCDNS,TBLKGRPCE,TRIBALSUBCE,TRIBALSUBFP,TRIBALSUBNS,TTRACTCE,UACE,UATYP,UGACE,UR,VTDST,ZCTA5CE +7499,3,000,25,1,2,1,01,2,1,0,0,1,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7500,3,000,25,1,8,1,01,2,1,0,0,1,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7501,3,000,29,2,86,1,01,2,1,0,0,2,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7502,3,000,29,2,86,1,01,2,1,0,0,2,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7503,3,000,30,1,0,1,01,2,1,0,0,1,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7504,3,000,30,2,9,2,06,2,1,0,0,1,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7505,3,000,32,2,31,1,01,2,1,0,0,2,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7506,3,000,34,1,31,1,01,2,1,0,0,2,36,099,950500,3036,3,9999,99999,99999999,9,99999,99999999,59046,0,0,0,0,0,42900,23,999,99999,99999999,A,00974147,78564,A,00979603,464,2,99999,99999999,+42.9104004,-076.8486232,L,2,99999,99999,99999,9,N,N,78553,A,02391198,00800,1,99999,99999,00014,131,054,01779796,99999,99999999,9,999,99999,99999999,999999,32842,U,99999,U,000027,13165 +7507,3,000,25,2,1,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7508,3,000,25,2,2,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7509,3,000,25,2,4,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7510,3,000,25,2,4,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7511,3,000,25,2,4,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7512,3,000,25,2,4,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7513,3,000,25,2,5,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7514,3,000,25,2,5,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7515,3,000,25,2,10,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7516,3,000,25,2,10,1,01,2,1,0,0,1,45,055,970401,1014,1,9999,99999,99999999,9,99999,99999999,1452814,0,0,0,0,0,17900,05,999,99999,99999999,A,01248007,91027,S,01938259,192,5,99999,99999999,+34.2554540,-080.7295952,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,02550,052,027,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000143,29078 +7517,3,000,20,2,80,1,01,1,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7518,3,000,20,2,83,1,01,1,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7519,3,000,20,1,45,2,06,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7520,3,000,20,1,47,2,06,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7521,3,000,20,1,49,2,06,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7522,3,000,20,1,56,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7523,3,000,20,1,56,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7524,3,000,20,1,56,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7525,3,000,20,1,64,1,02,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7526,3,000,20,1,76,1,04,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +7527,3,000,25,1,4,1,01,2,1,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7528,3,000,25,1,4,1,01,2,1,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7529,3,000,25,1,15,1,01,2,1,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7530,3,000,25,1,18,2,11,2,2,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7531,3,000,25,1,18,2,11,2,2,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7532,3,000,25,1,21,1,06,2,1,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7533,3,000,25,1,23,1,06,2,1,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7534,3,000,25,1,30,1,01,2,1,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7535,3,000,25,1,37,1,03,2,1,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7536,3,000,25,2,8,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +7537,3,000,21,1,54,1,01,2,1,0,0,2,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7538,3,000,21,1,62,1,01,2,1,0,0,2,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7539,3,000,21,2,48,1,01,2,1,0,0,2,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7540,3,000,21,2,48,1,01,2,1,0,0,2,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7541,3,000,21,2,48,1,01,2,1,0,0,2,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7542,3,000,25,1,2,1,01,2,1,0,0,1,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7543,3,000,25,1,5,1,01,2,1,0,0,1,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7544,3,000,25,1,12,1,01,2,1,0,0,1,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7545,3,000,25,1,12,1,01,2,1,0,0,1,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7546,3,000,25,1,12,1,01,2,1,0,0,1,42,079,215400,2062,2,9999,99999,99999999,9,99999,99999999,252295,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,84552,F,01215415,999,2,99999,99999999,+41.0501721,-075.7740956,L,1,99999,99999,99999,9,N,N,84552,A,01215415,00801,1,99999,99999,05460,119,014,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002620,18661 +7547,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7548,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7549,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7550,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7551,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7552,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7553,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7554,3,000,20,2,50,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7555,3,000,20,2,53,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7556,3,000,20,2,53,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +7557,3,000,29,1,79,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7558,3,000,29,2,65,2,06,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7559,3,000,29,2,65,2,06,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7560,3,000,29,2,65,2,06,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7561,3,000,29,2,66,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7562,3,000,29,2,66,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7563,3,000,29,2,71,1,02,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7564,3,000,29,2,89,1,01,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7565,3,000,29,2,89,1,01,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7566,3,000,29,2,89,1,01,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +7567,3,000,30,2,8,1,02,2,1,0,0,1,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7568,3,000,30,2,17,2,06,2,1,0,0,1,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7569,3,000,33,1,55,1,02,2,1,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7570,3,000,33,2,34,2,06,2,1,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7571,3,000,34,1,41,2,02,2,1,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7572,3,000,34,1,79,1,02,2,1,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7573,3,000,34,2,6,2,06,2,1,0,0,1,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7574,3,000,34,2,6,2,06,2,1,0,0,1,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7575,3,000,34,2,33,2,11,2,2,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7576,3,000,34,2,43,1,14,2,2,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +7577,3,000,20,1,41,1,01,2,1,0,0,2,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7578,3,000,20,1,44,1,01,2,1,0,0,2,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7579,3,000,21,1,30,1,01,2,1,0,0,2,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7580,3,000,21,1,31,1,01,2,1,0,0,2,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7581,3,000,21,1,31,1,01,2,1,0,0,2,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7582,3,000,21,1,33,1,01,2,1,0,0,2,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7583,3,000,25,1,10,1,01,2,1,0,0,1,55,031,030101,2076,2,9999,99999,99999999,9,99999,99999999,181933,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5437844,-091.9294556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7584,3,000,20,1,44,1,01,2,1,0,0,2,55,031,030101,2077,2,9999,99999,99999999,9,99999,99999999,517222,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5365219,-091.8932602,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7585,3,000,20,1,44,1,01,2,1,0,0,2,55,031,030101,2077,2,9999,99999,99999999,9,99999,99999999,517222,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5365219,-091.8932602,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7586,3,000,22,1,25,1,03,2,1,0,0,2,55,031,030101,2077,2,9999,99999,99999999,9,99999,99999999,517222,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5365219,-091.8932602,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +7587,3,000,25,1,14,1,01,2,1,0,0,1,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7588,3,000,25,1,17,1,01,2,1,0,0,1,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7589,3,000,25,1,22,1,01,2,1,0,0,2,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7590,3,000,25,1,22,1,01,2,1,0,0,2,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7591,3,000,25,1,35,1,01,2,1,0,0,2,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7592,3,000,25,1,35,1,01,2,1,0,0,2,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7593,3,000,25,1,36,1,01,2,1,0,0,2,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7594,3,000,25,2,0,1,01,2,1,0,0,1,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7595,3,000,25,2,0,1,01,2,1,0,0,1,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7596,3,000,25,2,6,1,01,2,1,0,0,1,08,069,001712,2008,2,9999,99999,99999999,9,99999,99999999,23140,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4569884,-105.0638517,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00303,4,99999,99999,05400,051,015,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069549,80538 +7597,3,000,20,1,65,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7598,3,000,20,1,65,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7599,3,000,20,1,67,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7600,3,000,20,1,71,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7601,3,000,20,1,71,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7602,3,000,20,1,71,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7603,3,000,20,1,71,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7604,3,000,20,1,74,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7605,3,000,20,1,75,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7606,3,000,20,1,75,1,01,2,1,0,0,2,53,015,000802,3002,3,9999,99999,99999999,9,99999,99999999,295034,0,0,0,0,0,31020,03,999,99999,99999999,A,01529156,91664,S,01939542,440,9,99999,99999999,+46.1813662,-122.9735748,L,1,99999,99999,99999,9,N,N,40270,S,02408128,21500,4,99999,99999,04470,019,019,01779804,99999,99999999,9,999,99999,99999999,999999,51283,U,99999,U,000035,98632 +7607,3,000,25,1,1,1,04,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7608,3,000,25,1,6,1,04,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7609,3,000,25,1,6,1,04,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7610,3,000,25,1,6,1,04,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7611,3,000,25,1,6,1,04,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7612,3,000,25,1,6,1,04,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7613,3,000,25,1,12,1,02,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7614,3,000,25,1,12,1,02,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7615,3,000,25,1,12,1,02,2,1,0,0,1,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7616,3,000,25,1,20,1,04,2,1,0,0,2,48,113,014410,2005,2,9999,99999,99999999,9,99999,99999999,14290,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.8341430,-097.0140873,L,1,19124,99999,99999,9,Y,N,37000,A,02410117,02320,3,99999,99999,24420,105,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004608,75061 +7617,3,000,20,1,31,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7618,3,000,20,1,31,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7619,3,000,20,1,31,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7620,3,000,20,1,34,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7621,3,000,20,1,34,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7622,3,000,20,1,34,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7623,3,000,20,1,50,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7624,3,000,20,1,50,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7625,3,000,21,1,36,2,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7626,3,000,21,2,40,2,11,2,2,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +7627,3,000,25,2,9,1,02,2,1,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7628,3,000,25,2,9,2,02,2,1,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7629,3,000,25,2,10,2,08,2,2,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7630,3,000,25,2,11,2,01,2,1,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7631,3,000,25,2,12,2,11,2,2,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7632,3,000,25,2,12,2,11,2,2,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7633,3,000,25,2,15,1,02,2,1,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7634,3,000,25,2,18,2,07,2,2,0,0,2,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7635,3,000,25,2,22,2,11,2,2,0,0,2,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7636,3,000,26,1,20,2,28,2,3,0,0,2,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +7637,3,000,21,1,36,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7638,3,000,21,1,36,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7639,3,000,21,1,37,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7640,3,000,21,1,46,1,02,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7641,3,000,21,1,51,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7642,3,000,21,1,51,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7643,3,000,21,1,51,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7644,3,000,21,1,52,1,02,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7645,3,000,21,1,54,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7646,3,000,21,1,57,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +7647,3,000,20,1,67,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7648,3,000,20,1,67,1,07,2,2,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7649,3,000,20,1,78,1,01,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7650,3,000,20,1,78,1,01,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7651,3,000,20,1,78,2,03,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7652,3,000,20,2,30,2,06,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7653,3,000,20,2,37,2,30,2,3,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7654,3,000,20,2,39,1,06,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7655,3,000,20,2,43,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7656,3,000,20,2,43,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +7657,3,000,20,2,73,1,01,1,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7658,3,000,20,2,73,1,01,1,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7659,3,000,20,2,73,1,01,1,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7660,3,000,20,1,34,1,04,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7661,3,000,20,1,36,1,07,2,2,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7662,3,000,20,1,43,1,06,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7663,3,000,20,1,52,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7664,3,000,20,1,54,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7665,3,000,20,1,54,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7666,3,000,20,1,54,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +7667,3,000,20,1,44,1,01,2,1,0,0,2,17,073,031100,3025,3,9999,99999,99999999,9,99999,99999999,11015,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646543,-090.0377400,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7668,3,000,20,1,44,1,01,2,1,0,0,2,17,073,031100,3025,3,9999,99999,99999999,9,99999,99999999,11015,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646543,-090.0377400,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7669,3,000,20,1,57,1,01,2,1,0,0,2,17,073,031100,3025,3,9999,99999,99999999,9,99999,99999999,11015,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646543,-090.0377400,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7670,3,000,21,2,30,1,01,2,1,0,0,2,17,073,031100,3025,3,9999,99999,99999999,9,99999,99999999,11015,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646543,-090.0377400,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7671,3,000,25,1,6,1,01,2,1,0,0,1,17,073,031100,3025,3,9999,99999,99999999,9,99999,99999999,11015,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646543,-090.0377400,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7672,3,000,25,1,7,1,01,2,1,0,0,1,17,073,031100,3026,3,9999,99999,99999999,9,99999,99999999,11116,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646567,-090.0364936,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7673,3,000,27,1,3,1,01,2,1,0,0,1,17,073,031100,3026,3,9999,99999,99999999,9,99999,99999999,11116,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1646567,-090.0364936,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7674,3,000,20,1,68,1,01,2,1,0,0,2,17,073,031100,3027,3,9999,99999,99999999,9,99999,99999999,11411,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1636891,-090.0364936,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7675,3,000,20,1,69,1,01,2,1,0,0,2,17,073,031100,3027,3,9999,99999,99999999,9,99999,99999999,11411,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1636891,-090.0364936,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7676,3,000,20,1,21,1,01,1,1,0,0,2,17,073,031100,3028,3,9999,99999,99999999,9,99999,99999999,11196,0,0,0,0,0,19340,17,999,99999,99999999,A,00424238,28443,A,00429037,209,3,99999,99999999,+41.1636937,-090.0377393,L,1,99999,99999,99999,9,N,N,28430,A,02394847,07300,2,99999,99999,16140,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002401,61434 +7677,3,000,20,1,30,1,02,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7678,3,000,20,1,32,1,04,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7679,3,000,20,1,33,1,02,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7680,3,000,20,1,33,2,02,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7681,3,000,20,1,34,1,02,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7682,3,000,20,1,34,1,02,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7683,3,000,20,1,34,2,01,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7684,3,000,20,1,35,2,06,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7685,3,000,20,1,35,2,06,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7686,3,000,20,1,36,1,01,2,1,0,0,2,29,047,020602,5000,5,9999,99999,99999999,9,99999,99999999,282104,0,0,0,0,0,28140,05,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.1680261,-094.5061671,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,017,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000044,64117 +7687,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7688,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7689,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7690,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7691,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7692,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7693,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7694,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7695,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7696,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +7697,3,000,21,1,60,1,06,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7698,3,000,21,1,62,1,01,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7699,3,000,21,1,62,1,01,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7700,3,000,21,2,75,2,06,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7701,3,000,21,2,75,2,06,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7702,3,000,21,2,94,2,06,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7703,3,000,21,2,94,2,06,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7704,3,000,22,1,39,1,01,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7705,3,000,22,1,39,1,01,2,1,0,0,2,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7706,3,000,25,1,3,1,01,2,1,0,0,1,06,045,010801,5000,5,9999,99999,99999999,9,99999,99999999,1927135,378,0,0,378,0,46380,02,999,99999,99999999,A,00277287,92592,S,01935264,999,9,99999,99999999,+39.2772082,-123.2509785,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03300,4,99999,99999,40300,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95470 +7707,3,000,20,1,71,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7708,3,000,20,1,71,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7709,3,000,20,1,71,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7710,3,000,20,1,72,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7711,3,000,20,1,72,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7712,3,000,20,1,72,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7713,3,000,20,1,72,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7714,3,000,20,1,72,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7715,3,000,20,1,72,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7716,3,000,20,1,73,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +7717,3,000,20,2,25,1,02,2,1,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7718,3,000,20,2,26,1,02,2,1,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7719,3,000,20,2,26,2,06,2,1,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7720,3,000,20,2,26,2,06,2,1,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7721,3,000,20,2,26,2,06,2,1,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7722,3,000,20,2,26,2,11,2,2,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7723,3,000,20,2,26,2,11,2,2,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7724,3,000,20,2,26,2,11,2,2,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7725,3,000,20,2,26,2,11,2,2,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7726,3,000,20,2,26,2,15,2,2,0,0,2,48,439,113121,1004,1,9999,99999,99999999,9,99999,99999999,44795,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.7984211,-097.0571871,L,1,23104,99999,99999,9,N,N,30464,A,02410632,02502,3,99999,99999,08700,092,009,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001382,75050 +7727,3,000,25,2,12,1,02,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7728,3,000,25,2,14,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7729,3,000,25,2,14,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7730,3,000,25,2,16,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7731,3,000,25,2,16,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7732,3,000,25,2,19,1,01,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7733,3,000,25,2,32,1,01,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7734,3,000,25,2,32,1,01,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7735,3,000,27,2,6,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7736,3,000,27,2,6,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +7737,3,000,29,2,86,1,04,2,1,0,0,2,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7738,3,000,30,1,2,1,24,2,3,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7739,3,000,30,1,7,1,19,2,2,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7740,3,000,30,1,12,1,09,2,2,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7741,3,000,30,1,17,1,29,2,3,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7742,3,000,30,1,17,1,29,2,3,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7743,3,000,30,1,17,1,29,2,3,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7744,3,000,30,1,17,2,19,2,2,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7745,3,000,30,2,0,2,48,2,4,0,0,1,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7746,3,000,30,2,20,1,43,2,4,0,0,2,15,003,008005,4006,4,9999,99999,99999999,9,99999,99999999,21931,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.4295579,-157.9508116,L,1,99999,99999,99999,9,N,N,62600,S,02414121,00306,4,99999,99999,00030,034,017,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96782 +7747,3,000,20,1,63,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7748,3,000,20,1,64,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7749,3,000,20,1,64,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7750,3,000,20,1,64,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7751,3,000,20,1,64,2,11,2,2,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7752,3,000,20,1,65,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7753,3,000,20,1,65,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7754,3,000,20,1,65,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7755,3,000,20,1,65,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7756,3,000,20,1,70,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +7757,3,000,20,1,68,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7758,3,000,20,1,68,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7759,3,000,20,1,68,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7760,3,000,20,1,68,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7761,3,000,20,1,68,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7762,3,000,20,1,68,2,06,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7763,3,000,20,1,68,2,06,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7764,3,000,20,1,89,2,11,2,2,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7765,3,000,20,1,89,2,11,2,2,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7766,3,000,20,1,89,2,11,2,2,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +7767,3,000,21,2,52,1,04,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7768,3,000,21,2,58,1,08,2,2,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7769,3,000,22,1,21,1,01,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7770,3,000,22,1,23,1,01,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7771,3,000,22,1,24,1,01,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7772,3,000,22,1,24,1,01,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7773,3,000,22,1,24,1,01,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7774,3,000,22,1,37,1,01,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7775,3,000,22,1,37,1,02,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7776,3,000,22,1,37,1,02,2,1,0,0,2,04,013,420704,1012,1,9999,99999,99999999,9,99999,99999999,31577,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4252312,-111.7601245,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000383,85213 +7777,3,000,21,1,30,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7778,3,000,21,1,31,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7779,3,000,21,1,34,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7780,3,000,21,1,34,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7781,3,000,21,1,34,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7782,3,000,21,1,42,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7783,3,000,21,1,42,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7784,3,000,21,1,42,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7785,3,000,21,1,43,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7786,3,000,21,1,43,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +7787,3,000,20,2,51,2,01,2,1,0,0,2,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7788,3,000,21,1,46,2,04,2,1,0,0,2,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7789,3,000,22,1,36,1,01,2,1,0,0,2,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7790,3,000,22,1,39,1,01,2,1,0,0,2,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7791,3,000,25,2,9,1,01,2,1,0,0,1,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7792,3,000,25,2,12,1,01,2,1,0,0,1,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7793,3,000,25,2,12,1,01,2,1,0,0,1,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7794,3,000,25,2,12,1,01,2,1,0,0,1,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7795,3,000,25,2,12,1,01,2,1,0,0,1,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7796,3,000,33,2,45,2,01,2,1,0,0,2,34,007,607502,3014,3,9999,99999,99999999,9,99999,99999999,49212,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8418596,-075.0031884,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +7797,3,000,33,2,8,1,02,2,1,0,0,1,12,099,006011,2004,2,9999,99999,99999999,9,99999,99999999,2489,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5294304,-080.1092805,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7798,3,000,20,2,67,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7799,3,000,20,2,67,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7800,3,000,20,2,67,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7801,3,000,20,2,69,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7802,3,000,20,2,69,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7803,3,000,20,2,69,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7804,3,000,20,2,69,1,01,1,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7805,3,000,20,1,25,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7806,3,000,20,1,25,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +7807,3,000,21,2,42,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7808,3,000,21,2,42,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7809,3,000,21,2,42,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7810,3,000,21,2,42,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7811,3,000,21,2,42,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7812,3,000,21,2,42,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7813,3,000,21,2,43,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7814,3,000,21,2,43,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7815,3,000,21,2,43,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7816,3,000,21,2,43,1,04,2,1,0,0,2,06,001,442100,1002,1,9999,99999,99999999,9,99999,99999999,150701,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5548901,-121.9500816,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00121,4,99999,99999,14400,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94539 +7817,3,000,21,2,67,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7818,3,000,21,2,84,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7819,3,000,25,1,20,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7820,3,000,25,1,20,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7821,3,000,25,1,22,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7822,3,000,25,1,23,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7823,3,000,25,2,68,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7824,3,000,32,1,29,1,01,2,1,0,0,2,48,035,950700,1057,1,9999,99999,99999999,9,99999,99999999,12808901,20777,0,0,20777,0,99999,25,999,99999,99999999,A,01383803,93990,S,01939280,999,7,99999,99999999,+31.6834267,-097.6397157,B,9,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,14400,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76634 +7825,3,000,20,2,31,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7826,3,000,20,2,32,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7827,3,000,20,2,32,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7828,3,000,20,2,34,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7829,3,000,20,2,34,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7830,3,000,20,2,34,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7831,3,000,20,2,38,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7832,3,000,20,2,38,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7833,3,000,20,2,38,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7834,3,000,20,2,38,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +7835,3,000,20,2,60,1,04,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7836,3,000,21,1,27,1,01,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7837,3,000,21,2,50,1,04,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7838,3,000,21,2,61,1,04,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7839,3,000,21,2,67,1,01,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7840,3,000,21,2,67,1,01,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7841,3,000,21,2,67,1,01,2,1,0,0,2,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7842,3,000,25,1,13,1,01,2,1,0,0,1,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7843,3,000,25,2,15,1,09,2,2,0,0,1,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7844,3,000,25,2,15,1,09,2,2,0,0,1,41,007,951200,1020,1,9999,99999,99999999,9,99999,99999999,443393,0,0,0,0,0,11820,01,999,99999,99999999,A,01135846,91598,S,01938042,999,9,99999,99999999,+46.2000805,-123.5260430,L,2,99999,99999,99999,9,9,9,99999,9,99999999,09000,4,99999,99999,00040,032,016,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97103 +7845,3,000,27,2,5,1,01,2,1,0,0,1,36,065,025700,2014,2,9999,99999,99999999,9,99999,99999999,460004,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9254018,-075.3880059,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7846,3,000,27,2,17,1,01,2,1,0,0,1,36,065,025700,2014,2,9999,99999,99999999,9,99999,99999999,460004,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9254018,-075.3880059,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7847,3,000,29,2,61,1,01,2,1,0,0,2,36,065,025700,2014,2,9999,99999,99999999,9,99999,99999999,460004,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9254018,-075.3880059,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7848,3,000,30,2,31,1,01,2,1,0,0,2,36,065,025700,2014,2,9999,99999,99999999,9,99999,99999999,460004,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9254018,-075.3880059,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7849,3,000,34,2,15,1,01,2,1,0,0,1,36,065,025700,2014,2,9999,99999,99999999,9,99999,99999999,460004,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9254018,-075.3880059,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7850,3,000,36,2,21,1,01,2,1,0,0,2,36,065,025700,2014,2,9999,99999,99999999,9,99999,99999999,460004,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9254018,-075.3880059,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7851,3,000,20,2,46,1,01,2,1,0,0,2,36,065,025700,2046,2,9999,99999,99999999,9,99999,99999999,7978,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,65134,A,00979458,999,2,99999,99999999,+42.9311684,-075.3810282,L,1,99999,99999,99999,9,N,N,78663,A,02391199,00403,1,99999,99999,30160,121,047,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000097,13480 +7852,3,000,20,1,26,1,01,1,1,0,0,2,36,065,026300,2015,2,9999,99999,99999999,9,99999,99999999,37377,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,63418,F,00979430,999,2,99999,99999999,+43.2188345,-075.4547569,L,1,99999,99999,99999,9,Y,N,63418,A,00979430,00402,1,99999,99999,24900,119,047,01779796,99999,99999999,9,999,99999,99999999,999999,76231,U,99999,U,000084,13440 +7853,3,000,20,1,36,1,01,1,1,0,0,2,36,065,026300,2015,2,9999,99999,99999999,9,99999,99999999,37377,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,63418,F,00979430,999,2,99999,99999999,+43.2188345,-075.4547569,L,1,99999,99999,99999,9,Y,N,63418,A,00979430,00402,1,99999,99999,24900,119,047,01779796,99999,99999999,9,999,99999,99999999,999999,76231,U,99999,U,000084,13440 +7854,3,000,20,1,49,1,01,1,1,0,0,2,36,065,026300,2015,2,9999,99999,99999999,9,99999,99999999,37377,0,0,0,0,0,46540,22,999,99999,99999999,A,00974131,63418,F,00979430,999,2,99999,99999999,+43.2188345,-075.4547569,L,1,99999,99999,99999,9,Y,N,63418,A,00979430,00402,1,99999,99999,24900,119,047,01779796,99999,99999999,9,999,99999,99999999,999999,76231,U,99999,U,000084,13440 +7855,3,000,25,2,3,1,01,2,1,0,0,1,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7856,3,000,25,2,3,1,01,2,1,0,0,1,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7857,3,000,25,2,9,1,01,2,1,0,0,1,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7858,3,000,25,2,9,1,01,2,1,0,0,1,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7859,3,000,25,2,9,1,01,2,1,0,0,1,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7860,3,000,25,2,31,1,01,2,1,0,0,2,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7861,3,000,25,2,40,1,01,2,1,0,0,2,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7862,3,000,29,2,77,1,01,2,1,0,0,2,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7863,3,000,34,1,25,1,01,2,1,0,0,2,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7864,3,000,34,1,25,1,01,2,1,0,0,2,53,033,002600,4009,4,9999,99999,99999999,9,99999,99999999,18833,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6857818,-122.3127590,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +7865,3,000,28,2,44,2,02,2,1,0,0,2,17,201,003602,3007,3,9999,99999,99999999,9,99999,99999999,2239,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3075179,-089.1046777,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7866,3,000,29,2,80,1,02,2,1,0,0,2,17,201,003602,3007,3,9999,99999,99999999,9,99999,99999999,2239,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3075179,-089.1046777,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7867,3,000,30,2,0,1,02,2,1,0,0,1,17,201,003602,3007,3,9999,99999,99999999,9,99999,99999999,2239,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3075179,-089.1046777,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7868,3,000,30,1,3,1,07,2,2,0,0,1,17,201,003602,3008,3,9999,99999,99999999,9,99999,99999999,1954,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3082465,-089.1046833,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7869,3,000,20,1,35,1,06,1,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7870,3,000,20,1,71,1,01,1,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7871,3,000,20,1,71,1,01,1,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7872,3,000,20,1,71,1,01,1,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7873,3,000,20,2,52,1,06,2,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7874,3,000,22,2,34,1,06,2,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +7875,3,000,20,1,33,1,04,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7876,3,000,20,1,33,1,04,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7877,3,000,20,1,33,1,04,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7878,3,000,20,1,34,1,01,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7879,3,000,20,1,42,1,04,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7880,3,000,20,1,42,1,04,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7881,3,000,20,2,27,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7882,3,000,20,2,27,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7883,3,000,20,2,27,1,04,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7884,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +7885,3,000,20,2,42,1,15,2,2,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7886,3,000,20,2,47,2,07,2,2,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7887,3,000,20,2,56,1,11,2,2,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7888,3,000,20,2,57,2,18,2,2,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7889,3,000,20,2,67,1,01,2,1,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7890,3,000,20,2,67,1,01,2,1,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7891,3,000,20,2,70,1,02,2,1,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7892,3,000,20,2,71,1,01,2,1,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7893,3,000,20,2,71,1,01,2,1,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7894,3,000,20,2,75,1,01,2,1,0,0,2,17,197,880111,2006,2,9999,99999,99999999,9,99999,99999999,53023,0,0,0,0,0,16980,11,999,99999,99999999,A,01785190,21241,A,00428920,176,3,99999,99999999,+41.7010659,-088.0594766,L,1,16984,99999,99999,9,Y,N,07133,A,02398147,19701,2,99999,99999,40070,085,043,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,00DU21,60440 +7895,3,000,21,2,36,1,01,2,1,0,0,2,05,045,030201,1055,1,9999,99999,99999999,9,99999,99999999,2218000,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1940219,-092.2572424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7896,3,000,21,2,36,1,01,2,1,0,0,2,05,045,030201,1055,1,9999,99999,99999999,9,99999,99999999,2218000,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1940219,-092.2572424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7897,3,000,21,2,36,1,01,2,1,0,0,2,05,045,030201,1055,1,9999,99999,99999999,9,99999,99999999,2218000,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1940219,-092.2572424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7898,3,000,21,2,38,1,01,2,1,0,0,2,05,045,030201,1055,1,9999,99999,99999999,9,99999,99999999,2218000,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1940219,-092.2572424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7899,3,000,21,2,59,1,01,2,1,0,0,2,05,045,030201,1055,1,9999,99999,99999999,9,99999,99999999,2218000,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1940219,-092.2572424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7900,3,000,25,1,38,1,01,2,1,0,0,2,05,045,030201,1055,1,9999,99999,99999999,9,99999,99999999,2218000,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1940219,-092.2572424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7901,3,000,20,1,44,1,01,2,1,0,0,2,05,045,030201,1056,1,9999,99999,99999999,9,99999,99999999,547928,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1914968,-092.2390431,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,066,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7902,3,000,21,2,37,1,11,2,2,0,0,2,05,045,030201,1056,1,9999,99999,99999999,9,99999,99999999,547928,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1914968,-092.2390431,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,066,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7903,3,000,21,2,46,1,01,2,1,0,0,2,05,045,030201,1056,1,9999,99999,99999999,9,99999,99999999,547928,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1914968,-092.2390431,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,066,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7904,3,000,21,2,46,1,01,2,1,0,0,2,05,045,030201,1056,1,9999,99999,99999999,9,99999,99999999,547928,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1914968,-092.2390431,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,066,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +7905,3,000,20,1,76,1,01,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7906,3,000,20,1,76,1,01,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7907,3,000,20,1,76,1,01,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7908,3,000,20,1,76,1,01,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7909,3,000,20,1,76,1,01,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7910,3,000,20,1,76,1,01,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7911,3,000,20,1,78,1,04,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7912,3,000,20,1,79,1,04,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7913,3,000,20,1,79,1,04,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7914,3,000,20,1,79,1,04,2,1,0,0,2,48,201,454302,3005,3,9999,99999,99999999,9,99999,99999999,31777,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7185483,-095.6687972,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04635,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000600,77082 +7915,3,000,20,2,36,1,02,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7916,3,000,20,2,37,1,02,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7917,3,000,20,2,37,1,02,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7918,3,000,20,2,37,1,02,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7919,3,000,20,2,38,1,01,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7920,3,000,20,2,38,1,01,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7921,3,000,20,2,39,1,01,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7922,3,000,20,2,39,1,01,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7923,3,000,20,2,39,1,02,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7924,3,000,20,2,39,1,02,2,1,0,0,2,48,201,541006,3000,3,9999,99999,99999999,9,99999,99999999,383339,18031,0,0,18031,0,26420,07,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9340818,-095.6780313,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04633,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000862,77095 +7925,3,000,20,2,74,1,01,1,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7926,3,000,20,2,74,1,01,1,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7927,3,000,20,2,74,1,01,1,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7928,3,000,20,2,74,1,01,1,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7929,3,000,20,2,74,1,01,1,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7930,3,000,20,1,70,2,06,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7931,3,000,20,2,36,1,22,2,3,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7932,3,000,20,2,50,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7933,3,000,20,2,50,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7934,3,000,20,2,50,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +7935,3,000,20,2,59,2,06,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7936,3,000,20,2,59,2,06,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7937,3,000,20,2,80,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7938,3,000,20,2,84,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7939,3,000,21,1,40,2,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7940,3,000,21,1,44,2,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7941,3,000,22,1,41,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7942,3,000,25,1,8,1,01,2,1,0,0,1,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7943,3,000,25,1,8,1,01,2,1,0,0,1,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7944,3,000,25,1,10,1,01,2,1,0,0,1,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +7945,3,000,31,2,57,1,01,2,1,0,0,2,48,313,000400,1027,1,9999,99999,99999999,9,99999,99999999,304553,3666,0,0,3666,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9356222,-095.9087557,B,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7946,3,000,31,2,58,1,01,2,1,0,0,2,48,313,000400,1027,1,9999,99999,99999999,9,99999,99999999,304553,3666,0,0,3666,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9356222,-095.9087557,B,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7947,3,000,20,2,68,1,01,1,1,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7948,3,000,20,2,68,1,01,1,1,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7949,3,000,20,2,68,1,01,1,1,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7950,3,000,20,1,33,1,04,2,1,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7951,3,000,20,1,45,2,11,2,2,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7952,3,000,20,1,45,2,11,2,2,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7953,3,000,20,2,39,1,02,2,1,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7954,3,000,21,1,24,1,01,2,1,0,0,2,48,313,000400,1029,1,9999,99999,99999999,9,99999,99999999,40567,0,0,0,0,0,99999,08,999,99999,99999999,A,01383939,92370,S,01938955,999,7,99999,99999999,+30.9427927,-095.9112318,L,9,99999,99999,99999,9,N,N,45996,A,02410908,03600,3,99999,99999,28710,057,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000404,77864 +7955,3,000,20,1,83,1,02,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7956,3,000,20,1,85,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7957,3,000,20,1,89,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7958,3,000,20,1,93,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7959,3,000,20,1,93,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7960,3,000,20,1,93,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7961,3,000,20,1,93,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7962,3,000,20,2,21,1,04,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7963,3,000,20,2,21,1,04,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7964,3,000,20,2,22,1,04,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +7965,3,000,25,1,15,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7966,3,000,25,1,15,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7967,3,000,25,1,15,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7968,3,000,25,1,15,2,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7969,3,000,25,1,16,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7970,3,000,25,1,16,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7971,3,000,25,1,16,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7972,3,000,25,1,16,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7973,3,000,25,1,16,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7974,3,000,25,1,16,1,01,2,1,0,0,1,04,013,817000,1015,1,9999,99999,99999999,9,99999,99999999,730265,3209,0,0,3209,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2369943,-111.6612627,B,1,99999,99999,99999,9,N,N,58150,A,02412518,00135,4,99999,99999,06810,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000611,85142 +7975,3,000,21,1,57,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7976,3,000,21,1,57,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7977,3,000,21,1,64,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7978,3,000,21,1,64,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7979,3,000,21,1,64,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7980,3,000,21,1,80,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7981,3,000,21,1,81,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7982,3,000,21,2,25,2,11,2,2,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7983,3,000,21,2,25,2,11,2,2,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7984,3,000,21,2,45,1,01,2,1,0,0,2,12,031,014335,3007,3,9999,99999,99999999,9,99999,99999999,77386,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.3437694,-081.4774306,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03105,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000024,32225 +7985,3,000,20,2,32,1,01,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7986,3,000,20,2,32,1,01,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7987,3,000,20,2,32,1,02,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7988,3,000,20,2,32,1,02,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7989,3,000,20,2,32,1,02,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7990,3,000,20,2,32,1,04,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7991,3,000,20,2,32,1,04,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7992,3,000,20,2,32,1,04,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7993,3,000,20,2,33,1,01,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7994,3,000,20,2,33,1,01,1,1,0,0,2,36,047,030500,2001,2,9999,99999,99999999,9,99999,99999999,20317,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6768340,-073.9581346,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04308,1,99999,99999,20580,057,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001549,11238 +7995,3,000,21,1,71,1,02,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +7996,3,000,21,1,77,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +7997,3,000,21,1,77,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +7998,3,000,21,1,81,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +7999,3,000,21,1,81,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +8000,3,000,21,1,87,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +8001,3,000,21,2,26,1,02,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +8002,3,000,21,2,91,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +8003,3,000,26,1,6,1,02,2,1,0,0,1,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +8004,3,000,28,1,66,1,01,2,1,0,0,2,05,027,950401,2009,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,31620,04,999,99999,99999999,A,00063761,92355,N,00063751,999,7,99999,99999999,+33.2904945,-093.2221189,L,2,99999,99999,99999,9,Y,N,43460,A,02404998,01700,3,99999,99999,00044,002,012,00068085,99999,99999999,9,999,99999,99999999,999999,53362,U,99999,U,000005,71753 +8005,3,000,21,2,22,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8006,3,000,21,2,22,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8007,3,000,21,2,23,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8008,3,000,21,2,33,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8009,3,000,21,2,33,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8010,3,000,21,2,33,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8011,3,000,21,2,41,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8012,3,000,21,2,41,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8013,3,000,21,2,44,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8014,3,000,21,2,44,2,06,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +8015,3,000,20,2,30,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8016,3,000,20,2,30,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8017,3,000,20,2,30,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8018,3,000,20,2,31,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8019,3,000,20,2,31,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8020,3,000,20,2,34,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8021,3,000,20,2,34,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8022,3,000,20,2,34,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8023,3,000,20,2,34,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8024,3,000,20,2,45,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +8025,3,000,21,2,42,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8026,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8027,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8028,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8029,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8030,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8031,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8032,3,000,21,2,44,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8033,3,000,21,2,46,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8034,3,000,21,2,46,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +8035,3,000,20,2,63,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8036,3,000,20,2,63,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8037,3,000,20,2,63,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8038,3,000,20,2,63,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8039,3,000,20,2,63,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8040,3,000,20,2,64,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8041,3,000,20,2,64,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8042,3,000,20,2,64,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8043,3,000,20,2,64,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8044,3,000,20,2,64,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +8045,3,000,25,1,8,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8046,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8047,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8048,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8049,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8050,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8051,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8052,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8053,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8054,3,000,25,1,9,1,01,2,1,0,0,1,13,223,120104,1012,1,9999,99999,99999999,9,99999,99999999,1392550,6814,0,0,6814,0,12060,14,999,99999,99999999,A,00349912,92210,S,01936326,122,5,99999,99999999,+34.0570328,-084.8335779,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,017,031,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00002B,30132 +8055,3,000,20,1,80,1,01,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8056,3,000,20,1,81,2,01,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8057,3,000,20,2,36,2,18,2,2,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8058,3,000,20,2,38,2,18,2,2,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8059,3,000,20,2,40,2,18,2,2,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8060,3,000,20,2,45,1,05,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8061,3,000,20,2,47,2,11,2,2,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8062,3,000,20,2,47,2,11,2,2,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8063,3,000,20,2,47,2,11,2,2,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8064,3,000,20,2,55,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +8065,3,000,20,1,41,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8066,3,000,20,1,41,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8067,3,000,20,1,41,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8068,3,000,20,1,45,1,04,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8069,3,000,20,1,45,1,04,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8070,3,000,20,1,47,2,01,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8071,3,000,20,1,49,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8072,3,000,20,1,49,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8073,3,000,20,1,49,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8074,3,000,20,1,49,1,02,2,1,0,0,2,29,019,001508,3009,3,9999,99999,99999999,9,99999,99999999,206257,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9970964,-092.3165965,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002H,65202 +8075,3,000,20,2,43,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8076,3,000,20,2,43,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8077,3,000,20,2,43,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8078,3,000,20,2,43,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8079,3,000,20,2,43,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8080,3,000,20,2,48,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8081,3,000,20,2,48,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8082,3,000,20,2,48,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8083,3,000,20,2,48,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8084,3,000,20,2,48,1,02,2,1,0,0,2,42,101,009300,4001,4,9999,99999,99999999,9,99999,99999999,8255,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9624509,-075.2254144,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03227,1,99999,99999,18990,190,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004406,19139 +8085,3,000,25,1,21,1,07,2,2,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8086,3,000,25,1,23,1,01,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8087,3,000,25,1,35,1,04,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8088,3,000,25,1,35,1,04,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8089,3,000,25,1,41,2,06,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8090,3,000,25,1,41,2,06,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8091,3,000,25,1,44,2,06,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8092,3,000,25,1,53,1,02,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8093,3,000,25,2,7,1,01,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8094,3,000,25,2,7,1,06,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +8095,3,000,25,1,24,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8096,3,000,25,1,24,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8097,3,000,25,1,27,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8098,3,000,25,1,27,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8099,3,000,25,2,11,1,01,2,1,0,0,1,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8100,3,000,25,2,11,1,01,2,1,0,0,1,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8101,3,000,25,2,11,1,01,2,1,0,0,1,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8102,3,000,25,2,39,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8103,3,000,28,1,25,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8104,3,000,28,2,69,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +8105,3,000,22,2,22,1,01,2,1,0,0,2,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8106,3,000,22,2,48,1,01,2,1,0,0,2,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8107,3,000,25,1,1,2,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8108,3,000,25,1,2,1,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8109,3,000,25,1,2,1,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8110,3,000,25,1,2,1,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8111,3,000,25,1,10,1,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8112,3,000,25,1,13,2,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8113,3,000,25,1,13,2,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8114,3,000,25,1,13,2,01,2,1,0,0,1,29,183,310802,2003,2,9999,99999,99999999,9,99999,99999999,154296,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,43026,N,02397828,476,4,99999,99999999,+38.8089472,-090.5419352,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01803,2,99999,99999,28920,106,023,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000062,63301 +8115,3,000,21,1,66,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8116,3,000,21,2,62,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8117,3,000,21,2,62,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8118,3,000,21,2,62,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8119,3,000,21,2,63,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8120,3,000,21,2,64,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8121,3,000,21,2,64,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8122,3,000,21,2,64,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8123,3,000,21,2,64,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8124,3,000,21,2,67,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +8125,3,000,20,2,25,1,01,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8126,3,000,20,2,25,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8127,3,000,20,2,25,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8128,3,000,20,2,25,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8129,3,000,20,2,25,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8130,3,000,20,2,25,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8131,3,000,20,2,25,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8132,3,000,20,2,26,1,01,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8133,3,000,20,2,26,1,01,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8134,3,000,20,2,27,1,02,2,1,0,0,2,28,071,950505,2013,2,9999,99999,99999999,9,99999,99999999,521644,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3457915,-089.5464212,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000406,38655 +8135,3,000,20,1,69,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8136,3,000,20,2,38,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8137,3,000,20,2,39,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8138,3,000,20,2,45,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8139,3,000,20,2,45,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8140,3,000,20,2,45,1,02,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8141,3,000,20,2,45,1,02,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8142,3,000,20,2,72,1,02,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8143,3,000,20,2,89,1,02,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8144,3,000,21,1,49,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +8145,3,000,20,1,76,1,08,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8146,3,000,21,1,37,1,11,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8147,3,000,21,1,45,1,08,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8148,3,000,21,1,68,1,01,2,1,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8149,3,000,21,1,77,1,01,2,1,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8150,3,000,25,1,18,1,08,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8151,3,000,28,2,26,1,11,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8152,3,000,28,2,26,1,11,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8153,3,000,29,2,89,1,08,2,2,0,0,2,27,095,970200,3016,3,2270,42200,02419017,R,99999,99999999,1436798,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738660,-093.7989923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8154,3,000,20,1,76,1,01,1,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +8155,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8156,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8157,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8158,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8159,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8160,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8161,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8162,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8163,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8164,3,000,25,2,12,1,01,2,1,0,0,1,12,021,010436,2004,2,9999,99999,99999999,9,99999,99999999,53210,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2547328,-081.6916863,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02101,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000066,34119 +8165,3,000,22,2,46,1,01,2,1,0,0,2,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8166,3,000,22,2,49,1,01,2,1,0,0,2,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8167,3,000,25,1,0,2,01,2,1,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8168,3,000,25,1,1,1,09,2,2,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8169,3,000,25,1,1,2,01,2,1,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8170,3,000,25,1,4,1,09,2,2,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8171,3,000,25,1,7,1,04,2,1,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8172,3,000,25,1,7,1,04,2,1,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8173,3,000,25,1,7,2,06,2,1,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8174,3,000,25,1,7,2,11,2,2,0,0,1,17,097,864107,1035,1,9999,99999,99999999,9,99999,99999999,96674,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,27923,A,00429031,176,3,99999,99999999,+42.2605642,-088.0209488,L,1,29404,99999,99999,9,N,N,51349,A,02399428,09704,2,27540,27570,99999,051,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Fre124,60060 +8175,3,000,26,2,6,1,01,2,1,0,0,1,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8176,3,000,27,1,11,1,01,2,1,0,0,1,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8177,3,000,27,1,34,1,01,2,1,0,0,2,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8178,3,000,29,2,54,1,01,2,1,0,0,2,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8179,3,000,29,2,75,1,01,2,1,0,0,2,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8180,3,000,30,2,9,1,01,2,1,0,0,1,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8181,3,000,30,2,9,1,01,2,1,0,0,1,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8182,3,000,30,2,9,1,01,2,1,0,0,1,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8183,3,000,34,1,68,1,01,2,1,0,0,2,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8184,3,000,34,2,69,1,01,2,1,0,0,2,20,199,954100,1151,1,9999,99999,99999999,9,99999,99999999,44154709,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7848532,-101.5183238,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67761 +8185,3,000,29,1,72,2,06,2,1,0,0,2,18,143,967000,4035,4,9999,99999,99999999,9,99999,99999999,161062,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6767588,-085.7707469,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8186,3,000,32,1,25,1,01,2,1,0,0,2,18,143,967000,4035,4,9999,99999,99999999,9,99999,99999999,161062,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6767588,-085.7707469,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8187,3,000,34,1,26,1,01,2,1,0,0,2,18,143,967000,4035,4,9999,99999,99999999,9,99999,99999999,161062,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6767588,-085.7707469,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8188,3,000,34,1,26,1,01,2,1,0,0,2,18,143,967000,4035,4,9999,99999,99999999,9,99999,99999999,161062,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6767588,-085.7707469,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8189,3,000,34,1,27,1,01,2,1,0,0,2,18,143,967000,4035,4,9999,99999,99999999,9,99999,99999999,161062,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6767588,-085.7707469,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8190,3,000,20,1,35,1,01,1,1,0,0,2,18,143,967000,4038,4,9999,99999,99999999,9,99999,99999999,267902,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6675712,-085.7732025,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8191,3,000,20,1,36,1,01,1,1,0,0,2,18,143,967000,4038,4,9999,99999,99999999,9,99999,99999999,267902,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6675712,-085.7732025,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8192,3,000,20,1,86,1,01,1,1,0,0,2,18,143,967000,4038,4,9999,99999,99999999,9,99999,99999999,267902,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6675712,-085.7732025,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8193,3,000,20,2,68,1,01,1,1,0,0,2,18,143,967000,4038,4,9999,99999,99999999,9,99999,99999999,267902,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6675712,-085.7732025,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8194,3,000,20,2,68,1,01,1,1,0,0,2,18,143,967000,4038,4,9999,99999,99999999,9,99999,99999999,267902,0,0,0,0,0,42500,09,999,99999,99999999,A,00450386,79100,A,00453959,350,3,99999,99999999,+38.6675712,-085.7732025,L,2,99999,99999,99999,9,Y,N,68526,A,02396560,03100,2,99999,99999,10020,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,80119,U,99999,U,000120,47170 +8195,3,000,27,2,17,1,01,2,1,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8196,3,000,27,2,17,1,01,2,1,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8197,3,000,27,2,23,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8198,3,000,27,2,39,1,02,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8199,3,000,30,1,17,1,01,2,1,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8200,3,000,30,1,33,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8201,3,000,30,1,33,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8202,3,000,33,1,8,1,02,2,1,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8203,3,000,33,2,12,2,55,2,4,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8204,3,000,33,2,59,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +8205,3,000,20,1,33,2,01,2,1,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8206,3,000,20,1,37,2,18,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8207,3,000,20,1,41,1,09,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8208,3,000,20,1,41,1,09,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8209,3,000,20,1,41,1,09,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8210,3,000,20,1,42,2,02,2,1,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8211,3,000,20,1,44,1,09,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8212,3,000,20,1,44,1,09,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8213,3,000,20,1,45,2,11,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8214,3,000,20,1,47,2,11,2,2,0,0,2,12,095,014504,3005,3,9999,99999,99999999,9,99999,99999999,32184,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4920444,-081.4159160,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000633,32839 +8215,3,000,25,1,5,1,04,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8216,3,000,25,1,5,1,04,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8217,3,000,25,1,6,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8218,3,000,25,1,6,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8219,3,000,25,1,6,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8220,3,000,25,1,6,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8221,3,000,25,1,6,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8222,3,000,25,1,6,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8223,3,000,25,1,6,2,06,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8224,3,000,25,1,7,1,01,2,1,0,0,1,36,109,001100,1028,1,9999,99999,99999999,9,99999,99999999,1598935,14470,0,0,14470,0,27060,23,999,99999,99999999,A,00974152,38088,A,00979100,296,2,99999,99999999,+42.4013282,-076.4938496,B,1,99999,99999,99999,9,N,N,69199,S,02390318,02300,1,99999,99999,15570,125,058,01779796,99999,99999999,9,999,99999,99999999,999999,41914,U,99999,U,000035,14850 +8225,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8226,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8227,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8228,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8229,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8230,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8231,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8232,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8233,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8234,5,501,38,1,20,1,01,0,1,2,5,2,25,025,010103,3007,3,9999,99999,99999999,9,99999,99999999,10129,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3502937,-071.1019056,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,192,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000510,02215 +8235,3,000,20,1,51,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8236,3,000,21,1,34,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8237,3,000,21,1,34,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8238,3,000,21,1,39,2,18,2,2,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8239,3,000,21,1,40,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8240,3,000,21,1,40,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8241,3,000,21,1,41,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8242,3,000,21,1,41,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8243,3,000,21,2,48,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8244,3,000,21,2,48,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +8245,3,000,25,2,19,1,02,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8246,3,000,25,2,23,1,16,2,2,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8247,3,000,25,2,27,1,03,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8248,3,000,29,2,69,1,02,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8249,3,000,29,2,69,1,02,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8250,3,000,30,1,0,1,04,2,1,0,0,1,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8251,3,000,30,1,0,1,04,2,1,0,0,1,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8252,3,000,33,2,10,1,06,2,1,0,0,1,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8253,3,000,33,2,23,2,06,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8254,3,000,34,1,28,2,06,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +8255,3,000,25,1,10,1,09,2,2,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8256,3,000,25,1,12,1,03,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8257,3,000,25,1,13,1,03,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8258,3,000,25,1,13,1,09,2,2,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8259,3,000,25,1,13,2,06,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8260,3,000,25,1,13,2,06,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8261,3,000,25,1,13,2,06,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8262,3,000,25,1,13,2,06,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8263,3,000,25,1,16,1,01,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8264,3,000,25,1,16,1,01,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +8265,3,000,25,2,25,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8266,3,000,25,2,25,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8267,3,000,25,2,25,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8268,3,000,25,2,25,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8269,3,000,25,2,35,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8270,3,000,25,2,38,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8271,3,000,25,2,40,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8272,3,000,25,2,43,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8273,3,000,25,2,56,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8274,3,000,25,2,56,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +8275,3,000,20,1,67,2,11,2,2,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8276,3,000,20,1,67,2,11,2,2,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8277,3,000,20,1,71,2,06,2,1,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8278,3,000,20,1,71,2,06,2,1,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8279,3,000,20,1,71,2,06,2,1,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8280,3,000,20,1,73,2,06,2,1,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8281,3,000,20,1,73,2,06,2,1,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8282,3,000,20,1,73,2,06,2,1,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8283,3,000,20,2,29,2,11,2,2,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8284,3,000,20,2,51,2,11,2,2,0,0,2,48,029,171200,1005,1,9999,99999,99999999,9,99999,99999999,27798,0,0,0,0,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.4327248,-098.5591942,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,18150,125,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,002015,78237 +8285,3,000,20,2,63,1,06,1,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8286,3,000,20,2,76,1,01,1,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8287,3,000,20,2,77,1,01,1,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8288,3,000,20,2,77,1,01,1,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8289,3,000,20,2,77,1,01,1,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8290,3,000,20,2,79,1,01,1,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8291,3,000,20,1,37,1,01,2,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8292,3,000,20,1,37,1,01,2,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8293,3,000,20,1,70,1,01,2,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8294,3,000,20,1,70,1,01,2,1,0,0,2,26,125,171000,2011,2,9999,99999,99999999,9,99999,99999999,30868,0,0,0,0,0,19820,14,999,99999,99999999,A,01623005,59920,F,01626834,220,3,99999,99999999,+42.4773098,-083.1877409,L,1,47664,99999,99999,9,N,N,59920,A,01626834,02908,2,99999,99999,05010,027,011,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125235,48237 +8295,3,000,20,1,70,1,01,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8296,3,000,20,1,71,1,01,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8297,3,000,20,1,72,1,02,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8298,3,000,20,1,72,1,02,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8299,3,000,20,1,74,1,01,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8300,3,000,20,1,74,1,01,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8301,3,000,20,2,39,1,02,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8302,3,000,20,2,39,1,02,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8303,3,000,20,2,39,1,02,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8304,3,000,20,2,39,1,02,2,1,0,0,2,47,157,021139,1019,1,9999,99999,99999999,9,99999,99999999,136952,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90728,N,02464086,368,6,99999,99999999,+35.1151497,-089.7687267,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02505,3,99999,99999,00148,096,031,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008080,38018 +8305,3,000,25,2,17,1,01,2,1,0,0,1,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8306,3,000,25,2,18,1,02,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8307,3,000,25,2,18,1,02,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8308,3,000,25,2,18,1,02,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8309,3,000,25,2,19,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8310,3,000,25,2,19,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8311,3,000,25,2,19,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8312,3,000,25,2,19,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8313,3,000,25,2,19,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8314,3,000,25,2,19,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +8315,3,000,25,1,5,1,02,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8316,3,000,25,1,5,1,02,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8317,3,000,25,1,7,1,04,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8318,3,000,25,1,7,1,04,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8319,3,000,25,1,7,1,04,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8320,3,000,25,1,10,1,01,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8321,3,000,25,1,10,1,01,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8322,3,000,25,1,11,1,01,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8323,3,000,25,1,11,1,01,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8324,3,000,25,1,11,1,01,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +8325,3,000,20,2,70,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8326,3,000,20,2,70,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8327,3,000,20,2,72,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8328,3,000,20,2,72,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8329,3,000,20,2,72,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8330,3,000,20,2,72,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8331,3,000,20,2,89,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8332,3,000,21,1,32,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8333,3,000,21,1,33,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8334,3,000,21,1,33,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +8335,3,000,25,1,2,2,26,2,3,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8336,3,000,25,1,4,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8337,3,000,25,1,4,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8338,3,000,25,1,4,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8339,3,000,25,1,4,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8340,3,000,25,1,4,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8341,3,000,25,1,7,2,11,2,2,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8342,3,000,25,1,10,2,11,2,2,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8343,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8344,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +8345,3,000,21,1,84,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8346,3,000,21,1,84,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8347,3,000,21,1,84,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8348,3,000,21,2,67,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8349,3,000,21,2,67,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8350,3,000,21,2,68,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8351,3,000,21,2,68,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8352,3,000,21,2,68,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8353,3,000,21,2,68,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8354,3,000,22,1,51,1,01,2,1,0,0,2,06,059,042111,2003,2,9999,99999,99999999,9,99999,99999999,42966,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.4617131,-117.6366737,L,1,11244,99999,99999,9,N,N,65084,A,02411781,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92673 +8355,3,000,20,2,58,2,06,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8356,3,000,20,2,58,2,06,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8357,3,000,20,2,59,2,03,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8358,3,000,20,2,59,2,06,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8359,3,000,20,2,59,2,06,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8360,3,000,20,2,59,2,06,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8361,3,000,20,2,60,1,01,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8362,3,000,20,2,60,1,02,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8363,3,000,20,2,60,1,02,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8364,3,000,20,2,61,1,01,2,1,0,0,2,06,037,554403,2002,2,9999,99999,99999999,9,99999,99999999,56109,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8720472,-118.1410367,L,1,31084,99999,99999,9,N,N,04982,A,02409822,03782,4,99999,99999,04440,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90706 +8365,3,000,20,1,66,1,01,2,1,0,0,2,17,159,977900,3047,3,9999,99999,99999999,9,99999,99999999,830460,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,19486,A,00428889,999,3,99999,99999999,+38.8041688,-088.2521621,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,2,99999,99999,10340,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00DENV,62868 +8366,3,000,20,1,92,1,01,2,1,0,0,2,17,159,977900,3047,3,9999,99999,99999999,9,99999,99999999,830460,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,19486,A,00428889,999,3,99999,99999999,+38.8041688,-088.2521621,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,2,99999,99999,10340,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00DENV,62868 +8367,3,000,21,2,75,1,01,2,1,0,0,2,17,159,977900,3047,3,9999,99999,99999999,9,99999,99999999,830460,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,19486,A,00428889,999,3,99999,99999999,+38.8041688,-088.2521621,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,2,99999,99999,10340,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00DENV,62868 +8368,3,000,22,1,65,1,01,2,1,0,0,2,17,159,977900,3047,3,9999,99999,99999999,9,99999,99999999,830460,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,19486,A,00428889,999,3,99999,99999999,+38.8041688,-088.2521621,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,2,99999,99999,10340,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00DENV,62868 +8369,3,000,25,1,19,1,01,2,1,0,0,2,17,159,977900,3047,3,9999,99999,99999999,9,99999,99999999,830460,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,19486,A,00428889,999,3,99999,99999999,+38.8041688,-088.2521621,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,2,99999,99999,10340,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00DENV,62868 +8370,3,000,30,2,23,1,01,2,1,0,0,2,17,159,977900,3047,3,9999,99999,99999999,9,99999,99999999,830460,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,19486,A,00428889,999,3,99999,99999999,+38.8041688,-088.2521621,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,2,99999,99999,10340,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00DENV,62868 +8371,3,000,20,1,37,1,01,1,1,0,0,2,17,159,978300,4009,4,9999,99999,99999999,9,99999,99999999,542669,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,46006,A,00429307,999,3,99999,99999999,+38.6548687,-088.0395413,L,9,99999,99999,99999,9,N,N,10448,A,02397531,04900,2,99999,99999,13290,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00MAD2,62419 +8372,3,000,20,1,45,1,01,1,1,0,0,2,17,159,978300,4009,4,9999,99999,99999999,9,99999,99999999,542669,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,46006,A,00429307,999,3,99999,99999999,+38.6548687,-088.0395413,L,9,99999,99999,99999,9,N,N,10448,A,02397531,04900,2,99999,99999,13290,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00MAD2,62419 +8373,3,000,20,1,54,1,01,1,1,0,0,2,17,159,978300,4009,4,9999,99999,99999999,9,99999,99999999,542669,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,46006,A,00429307,999,3,99999,99999999,+38.6548687,-088.0395413,L,9,99999,99999,99999,9,N,N,10448,A,02397531,04900,2,99999,99999,13290,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00MAD2,62419 +8374,3,000,20,1,64,1,01,1,1,0,0,2,17,159,978300,4009,4,9999,99999,99999999,9,99999,99999999,542669,0,0,0,0,0,99999,15,999,99999,99999999,A,00424281,46006,A,00429307,999,3,99999,99999999,+38.6548687,-088.0395413,L,9,99999,99999,99999,9,N,N,10448,A,02397531,04900,2,99999,99999,13290,109,055,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00MAD2,62419 +8375,3,000,25,2,5,1,01,2,1,0,0,1,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8376,3,000,25,2,5,1,01,2,1,0,0,1,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8377,3,000,29,2,56,1,01,2,1,0,0,2,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8378,3,000,29,2,56,1,01,2,1,0,0,2,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8379,3,000,30,1,1,1,01,2,1,0,0,1,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8380,3,000,30,1,9,1,01,2,1,0,0,1,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8381,3,000,30,1,13,1,01,2,1,0,0,1,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8382,3,000,30,1,20,1,02,2,1,0,0,2,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8383,3,000,36,2,44,1,01,2,1,0,0,2,39,149,972000,3014,3,9999,99999,99999999,9,99999,99999999,13739,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837516,-084.1587649,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8384,3,000,20,1,65,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +8385,3,000,20,2,36,1,02,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8386,3,000,20,2,57,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8387,3,000,21,1,47,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8388,3,000,21,1,47,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8389,3,000,21,1,49,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8390,3,000,21,2,31,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8391,3,000,21,2,31,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8392,3,000,24,2,48,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8393,3,000,25,1,4,1,01,2,1,0,0,1,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8394,3,000,25,1,4,1,01,2,1,0,0,1,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +8395,3,000,20,1,40,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8396,3,000,20,1,45,2,11,2,2,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8397,3,000,20,1,53,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8398,3,000,20,1,63,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8399,3,000,20,1,67,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8400,3,000,20,1,67,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8401,3,000,20,1,67,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8402,3,000,20,1,67,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8403,3,000,20,1,67,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8404,3,000,20,1,67,1,01,2,1,0,0,2,12,015,020103,1014,1,9999,99999,99999999,9,99999,99999999,1014294,0,0,0,0,0,39460,17,999,99999,99999999,A,00295742,92834,S,01935903,412,5,99999,99999999,+27.0199678,-081.9912148,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01500,3,99999,99999,00240,075,026,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000015,33983 +8405,3,000,20,2,60,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8406,3,000,20,2,60,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8407,3,000,20,2,60,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8408,3,000,20,2,60,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8409,3,000,20,2,61,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8410,3,000,21,1,31,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8411,3,000,21,1,34,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8412,3,000,21,2,45,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8413,3,000,21,2,47,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8414,3,000,21,2,47,1,01,2,1,0,0,2,51,069,050401,1024,1,9999,99999,99999999,9,99999,99999999,3351530,550,0,0,550,0,49020,10,999,99999,99999999,A,01480124,90120,N,01927082,548,5,99999,99999999,+39.0994958,-078.4264185,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06900,3,99999,99999,01470,029,027,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,22654 +8415,3,000,25,1,10,2,15,2,2,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8416,3,000,25,1,12,2,01,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8417,3,000,25,1,12,2,01,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8418,3,000,25,1,12,2,06,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8419,3,000,25,1,12,2,11,2,2,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8420,3,000,25,1,13,2,01,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8421,3,000,25,1,13,2,01,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8422,3,000,25,1,13,2,01,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8423,3,000,25,1,13,2,06,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8424,3,000,25,1,13,2,06,2,1,0,0,1,34,031,175200,2001,2,9999,99999,99999999,9,99999,99999999,10750,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,56550,F,00885342,408,2,99999,99999999,+40.8652549,-074.1162540,L,1,35614,99999,99999,9,N,N,56550,A,00885342,00501,1,99999,99999,12540,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035103,07055 +8425,3,000,20,1,63,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8426,3,000,20,1,64,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8427,3,000,20,1,64,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8428,3,000,20,1,79,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8429,3,000,20,1,79,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8430,3,000,20,1,79,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8431,3,000,20,1,81,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8432,3,000,20,1,84,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8433,3,000,20,1,85,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8434,3,000,20,2,69,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +8435,3,000,25,2,9,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8436,3,000,25,2,9,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8437,3,000,25,2,9,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8438,3,000,25,2,9,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8439,3,000,25,2,9,2,11,2,2,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8440,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8441,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8442,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8443,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8444,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +8445,3,000,20,1,50,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8446,3,000,20,1,50,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8447,3,000,20,1,60,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8448,3,000,20,1,61,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8449,3,000,20,1,65,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8450,3,000,20,1,65,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8451,3,000,20,2,40,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8452,3,000,20,2,40,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8453,3,000,20,2,40,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8454,3,000,20,2,40,1,01,2,1,0,0,2,31,055,007514,4021,4,9999,99999,99999999,9,99999,99999999,100718,0,0,0,0,0,36540,02,999,99999,99999999,A,00835849,90505,N,01928779,420,4,99999,99999999,+41.2460151,-096.2313251,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00902,2,99999,99999,70110,999,039,01779792,99999,99999999,9,999,99999,99999999,999999,65269,U,99999,U,008-45,68130 +8455,3,000,20,2,90,2,11,1,2,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8456,3,000,20,2,90,2,11,1,2,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8457,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8458,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8459,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8460,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8461,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8462,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8463,3,000,20,1,30,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8464,3,000,20,1,32,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +8465,3,000,25,1,1,1,01,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8466,3,000,25,1,1,1,01,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8467,3,000,25,1,15,1,01,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8468,3,000,25,1,15,1,01,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8469,3,000,25,1,15,1,01,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8470,3,000,25,1,15,1,01,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8471,3,000,25,1,15,1,04,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8472,3,000,25,1,20,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8473,3,000,25,1,21,1,01,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8474,3,000,25,1,21,1,01,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +8475,3,000,25,1,15,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8476,3,000,25,1,15,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8477,3,000,25,1,15,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8478,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8479,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8480,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8481,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8482,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8483,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8484,3,000,25,1,16,1,01,2,1,0,0,1,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +8485,3,000,25,2,40,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8486,3,000,25,2,40,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8487,3,000,25,2,40,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8488,3,000,25,2,40,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8489,3,000,25,2,44,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8490,3,000,28,1,21,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8491,3,000,28,1,21,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8492,3,000,29,2,82,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8493,3,000,29,2,83,1,01,2,1,0,0,2,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8494,3,000,30,1,9,2,11,2,2,0,0,1,36,047,075800,1001,1,9999,99999,99999999,9,99999,99999999,21240,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6177321,-073.9514599,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04314,1,99999,99999,20580,042,017,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000165,11210 +8495,3,000,21,1,57,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8496,3,000,21,1,57,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8497,3,000,21,1,57,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8498,3,000,21,1,58,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8499,3,000,21,1,58,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8500,3,000,21,1,59,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8501,3,000,21,1,59,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8502,3,000,21,1,59,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8503,3,000,21,1,59,1,01,2,1,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8504,3,000,21,2,63,2,11,2,2,0,0,2,25,017,373500,2004,2,9999,99999,99999999,9,99999,99999999,45658,0,0,0,0,0,14460,04,715,99999,99999999,N,00606935,45560,F,00619408,148,1,99999,99999999,+42.3506964,-071.1922007,L,1,15764,71634,71650,1,Y,Y,45560,A,00619408,00613,1,99999,99999,08610,128,029,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001349,02458 +8505,3,000,20,1,54,2,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8506,3,000,20,1,61,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8507,3,000,20,1,62,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8508,3,000,20,1,62,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8509,3,000,20,2,38,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8510,3,000,20,2,38,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8511,3,000,20,2,38,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8512,3,000,20,2,49,1,11,2,2,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8513,3,000,20,2,49,1,11,2,2,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8514,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +8515,3,000,25,1,24,2,11,2,2,0,0,2,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8516,3,000,25,1,24,2,11,2,2,0,0,2,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8517,3,000,25,2,2,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8518,3,000,25,2,9,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8519,3,000,25,2,9,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8520,3,000,25,2,9,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8521,3,000,25,2,9,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8522,3,000,25,2,9,2,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8523,3,000,25,2,11,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8524,3,000,25,2,14,1,01,2,1,0,0,1,48,139,061000,1060,1,9999,99999,99999999,9,99999,99999999,31656,0,0,0,0,0,19100,06,999,99999,99999999,A,01383856,91895,S,01938860,206,7,99999,99999999,+32.1823733,-096.8799618,L,1,19124,99999,99999,9,N,N,37072,A,02412797,02101,3,99999,99999,24450,010,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000131,76651 +8525,3,000,20,2,59,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8526,3,000,20,2,59,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8527,3,000,20,2,59,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8528,3,000,21,1,32,2,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8529,3,000,21,1,37,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8530,3,000,21,1,37,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8531,3,000,21,1,46,2,11,2,2,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8532,3,000,21,1,55,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8533,3,000,21,1,57,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8534,3,000,21,1,57,1,01,2,1,0,0,2,48,157,671700,2041,2,9999,99999,99999999,9,99999,99999999,215069,1133,0,0,1133,0,26420,22,999,99999,99999999,A,01383864,93780,S,01939238,288,7,99999,99999999,+29.6054260,-095.5907558,B,1,99999,99999,99999,9,Y,N,70808,A,02411994,04902,3,99999,99999,19650,026,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,004140,77478 +8535,3,000,21,1,65,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8536,3,000,21,1,65,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8537,3,000,21,1,65,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8538,3,000,21,1,65,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8539,3,000,21,1,65,1,02,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8540,3,000,21,2,50,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8541,3,000,21,2,53,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8542,3,000,21,2,53,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8543,3,000,21,2,62,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8544,3,000,21,2,62,1,01,2,1,0,0,2,06,109,001200,1014,1,9999,99999,99999999,9,99999,99999999,612472,0,0,0,0,0,43760,04,999,99999,99999999,A,00277319,93080,S,01935313,999,9,99999,99999999,+37.9908855,-120.3610633,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,37230,37260,99999,005,008,01779778,99999,99999999,9,999,99999,99999999,999999,83073,U,99999,U,,95370 +8545,3,000,20,1,27,1,01,1,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8546,3,000,20,1,30,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8547,3,000,20,1,33,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8548,3,000,20,1,35,1,08,2,2,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8549,3,000,20,1,40,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8550,3,000,20,1,42,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8551,3,000,20,1,42,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8552,3,000,20,1,45,1,08,2,2,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8553,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8554,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +8555,3,000,20,1,69,2,06,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8556,3,000,20,2,42,2,06,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8557,3,000,20,2,42,2,06,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8558,3,000,20,2,56,1,04,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8559,3,000,20,2,59,1,04,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8560,3,000,25,2,5,2,06,2,1,0,0,1,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8561,3,000,28,1,34,2,06,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8562,3,000,28,1,34,2,06,2,1,0,0,2,37,089,931000,1003,1,9999,99999,99999999,9,99999,99999999,103778,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3502697,-082.4609051,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000NE,28792 +8563,3,000,20,2,53,1,01,1,1,0,0,2,37,089,931000,1004,1,9999,99999,99999999,9,99999,99999999,55991,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3506221,-082.4593364,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000GM,28792 +8564,3,000,20,2,53,1,01,1,1,0,0,2,37,089,931000,1004,1,9999,99999,99999999,9,99999,99999999,55991,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91456,N,01026791,120,5,99999,99999999,+35.3506221,-082.4593364,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000GM,28792 +8565,3,000,21,1,29,1,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8566,3,000,21,1,29,1,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8567,3,000,21,1,29,1,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8568,3,000,21,1,29,1,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8569,3,000,21,1,29,1,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8570,3,000,21,1,30,1,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8571,3,000,21,1,32,1,04,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8572,3,000,21,1,32,1,04,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8573,3,000,21,1,32,2,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8574,3,000,21,1,32,2,01,2,1,0,0,2,06,085,505901,2002,2,9999,99999,99999999,9,99999,99999999,107356,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3271925,-121.9639224,L,1,99999,99999,99999,9,Y,N,69084,A,02411816,08517,4,07200,07230,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95050 +8575,3,000,30,2,14,1,01,2,1,0,0,1,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8576,3,000,30,2,14,1,01,2,1,0,0,1,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8577,3,000,30,2,14,1,01,2,1,0,0,1,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8578,3,000,33,2,4,1,01,2,1,0,0,1,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8579,3,000,34,1,16,1,03,2,1,0,0,1,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8580,3,000,34,1,67,1,02,2,1,0,0,2,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8581,3,000,34,2,52,1,02,2,1,0,0,2,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8582,3,000,34,2,52,1,02,2,1,0,0,2,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8583,3,000,36,2,4,1,01,2,1,0,0,1,47,093,003100,1019,1,9999,99999,99999999,9,99999,99999999,169513,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0176055,-083.8714968,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8584,3,000,20,1,45,1,08,1,2,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +8585,3,000,20,1,76,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8586,3,000,20,1,76,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8587,3,000,20,1,78,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8588,3,000,20,1,78,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8589,3,000,20,1,78,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8590,3,000,20,1,78,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8591,3,000,20,1,85,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8592,3,000,20,1,85,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8593,3,000,20,1,85,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8594,3,000,20,1,85,1,01,1,1,0,0,2,51,013,103405,1000,1,9999,99999,99999999,9,99999,99999999,47556,0,0,0,0,0,47900,08,999,99999,99999999,A,01480097,90072,F,01480097,548,5,99999,99999999,+38.8616921,-077.0501910,L,1,47894,99999,99999,9,Y,N,03000,S,02389148,01302,3,99999,99999,00270,048,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000006,22202 +8595,3,000,25,1,24,1,04,2,1,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8596,3,000,25,1,24,1,04,2,1,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8597,3,000,25,1,24,2,11,2,2,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8598,3,000,25,1,26,1,01,2,1,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8599,3,000,25,1,26,1,01,2,1,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8600,3,000,25,1,42,1,02,2,1,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8601,3,000,25,1,43,1,04,2,1,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8602,3,000,25,1,49,1,09,2,2,0,0,2,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8603,3,000,25,2,0,2,02,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8604,3,000,25,2,7,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +8605,3,000,20,2,49,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8606,3,000,20,2,49,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8607,3,000,20,2,49,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8608,3,000,20,2,49,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8609,3,000,20,2,70,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8610,3,000,20,2,70,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8611,3,000,20,2,71,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8612,3,000,20,2,71,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8613,3,000,20,2,72,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8614,3,000,21,1,28,1,02,2,1,0,0,2,17,031,827000,3003,3,9999,99999,99999999,9,99999,99999999,97000,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,75198,A,00422238,176,3,99999,99999999,+41.6265963,-087.6533645,L,1,16984,99999,99999,9,N,N,33383,A,02394317,03117,2,18450,38970,99999,030,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,950101,60426 +8615,3,000,20,1,58,1,04,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8616,3,000,20,1,58,1,04,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8617,3,000,20,1,59,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8618,3,000,20,1,59,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8619,3,000,20,1,59,1,11,2,2,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8620,3,000,20,1,59,1,11,2,2,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8621,3,000,20,1,61,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8622,3,000,20,1,61,1,11,2,2,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8623,3,000,20,1,62,1,04,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8624,3,000,20,1,63,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +8625,3,000,25,1,23,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8626,3,000,25,1,23,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8627,3,000,25,1,23,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8628,3,000,25,1,40,2,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8629,3,000,25,1,40,2,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8630,3,000,25,2,3,1,01,2,1,0,0,1,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8631,3,000,25,2,19,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8632,3,000,25,2,19,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8633,3,000,25,2,19,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8634,3,000,25,2,61,1,01,2,1,0,0,2,53,053,073302,2019,2,9999,99999,99999999,9,99999,99999999,23519,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,92672,S,01939605,500,9,99999,99999999,+47.1959019,-122.2328107,L,1,45104,99999,99999,9,N,N,68435,A,02412001,25303,4,99999,99999,08610,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,68435,U,031827,98390 +8635,3,000,20,1,47,1,02,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8636,3,000,20,1,58,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8637,3,000,20,1,58,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8638,3,000,20,1,63,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8639,3,000,20,1,63,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8640,3,000,20,1,63,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8641,3,000,20,1,63,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8642,3,000,20,1,63,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8643,3,000,20,1,81,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8644,3,000,20,1,81,1,01,2,1,0,0,2,06,065,045123,2004,2,9999,99999,99999999,9,99999,99999999,26890,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90410,S,01935045,348,9,99999,99999999,+33.7318258,-116.3541163,L,1,99999,99999,99999,9,Y,N,55184,A,02411356,06515,4,99999,99999,11110,042,028,01779778,99999,99999999,9,999,99999,99999999,999999,41347,U,99999,U,,92211 +8645,3,000,25,1,3,1,01,2,1,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8646,3,000,25,1,3,1,01,2,1,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8647,3,000,25,1,3,1,09,2,2,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8648,3,000,25,1,3,1,09,2,2,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8649,3,000,25,1,3,1,09,2,2,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8650,3,000,25,1,3,1,09,2,2,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8651,3,000,25,1,4,1,09,2,2,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8652,3,000,25,1,5,1,01,2,1,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8653,3,000,25,1,6,1,04,2,1,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8654,3,000,25,1,8,1,01,2,1,0,0,1,34,039,037000,2012,2,9999,99999,99999999,9,99999,99999999,47081,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,15640,A,00882214,408,2,99999,99999999,+40.6592071,-074.2906838,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,03570,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,015008,07016 +8655,3,000,34,1,58,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8656,3,000,34,1,67,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8657,3,000,34,1,67,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8658,3,000,34,2,2,2,06,2,1,0,0,1,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8659,3,000,34,2,3,2,06,2,1,0,0,1,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8660,3,000,34,2,5,2,06,2,1,0,0,1,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8661,3,000,34,2,5,2,06,2,1,0,0,1,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8662,3,000,34,2,21,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8663,3,000,34,2,24,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8664,3,000,34,2,41,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +8665,3,000,25,1,15,2,11,2,2,0,0,1,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8666,3,000,25,1,15,2,11,2,2,0,0,1,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8667,3,000,25,1,16,2,01,2,1,0,0,1,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8668,3,000,25,1,17,2,11,2,2,0,0,1,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8669,3,000,25,1,18,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8670,3,000,25,1,18,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8671,3,000,25,1,19,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8672,3,000,25,1,19,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8673,3,000,25,1,19,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8674,3,000,25,1,19,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +8675,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8676,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8677,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8678,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8679,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8680,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8681,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8682,3,000,20,1,39,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8683,3,000,20,1,40,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8684,3,000,20,1,40,1,01,2,1,0,0,2,37,183,053211,1023,1,9999,99999,99999999,9,99999,99999999,594319,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92056,N,01027268,450,5,99999,99999999,+35.6554177,-078.7763315,L,1,99999,99999,99999,9,N,N,32260,A,02405854,01208,3,99999,99999,04720,037,017,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,012-05,27540 +8685,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8686,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8687,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8688,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8689,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8690,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8691,3,000,25,2,9,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8692,3,000,25,2,13,1,02,2,1,0,0,1,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8693,3,000,25,2,22,1,04,2,1,0,0,2,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8694,3,000,25,2,25,1,02,2,1,0,0,2,12,011,020209,1010,1,9999,99999,99999999,9,99999,99999999,21214,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2394767,-080.2075514,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G006,33063 +8695,3,000,20,1,70,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8696,3,000,20,1,70,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8697,3,000,20,1,70,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8698,3,000,20,1,70,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8699,3,000,20,1,71,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8700,3,000,20,1,71,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8701,3,000,20,1,71,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8702,3,000,20,1,71,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8703,3,000,20,1,71,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8704,3,000,20,1,72,1,01,1,1,0,0,2,55,079,100300,2011,2,9999,99999,99999999,9,99999,99999999,44308,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0111335,-088.0049149,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003909,53214 +8705,3,000,20,2,30,2,27,2,3,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8706,3,000,20,2,50,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8707,3,000,20,2,64,1,04,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8708,3,000,21,1,37,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8709,3,000,21,1,37,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8710,3,000,21,1,70,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8711,3,000,21,2,42,1,11,2,2,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8712,3,000,21,2,50,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8713,3,000,21,2,53,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8714,3,000,21,2,54,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +8715,3,000,25,1,16,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8716,3,000,25,1,16,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8717,3,000,25,1,16,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8718,3,000,25,1,21,1,01,2,1,0,0,2,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8719,3,000,25,1,23,1,01,2,1,0,0,2,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8720,3,000,25,1,23,1,01,2,1,0,0,2,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8721,3,000,25,1,24,1,01,2,1,0,0,2,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8722,3,000,25,1,24,1,01,2,1,0,0,2,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8723,3,000,25,1,24,1,01,2,1,0,0,2,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8724,3,000,25,2,5,1,04,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +8725,3,000,25,1,31,1,01,2,1,0,0,2,42,091,204800,1008,1,9999,99999,99999999,9,99999,99999999,82472,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0596201,-075.3082061,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8726,3,000,25,2,2,1,08,2,2,0,0,1,42,091,204800,1008,1,9999,99999,99999999,9,99999,99999999,82472,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0596201,-075.3082061,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8727,3,000,25,2,12,1,07,2,2,0,0,1,42,091,204800,1008,1,9999,99999,99999999,9,99999,99999999,82472,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0596201,-075.3082061,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8728,3,000,33,2,25,1,04,2,1,0,0,2,42,091,204800,1008,1,9999,99999,99999999,9,99999,99999999,82472,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0596201,-075.3082061,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8729,3,000,20,2,46,1,01,1,1,0,0,2,42,091,204800,1009,1,9999,99999,99999999,9,99999,99999999,254817,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0634905,-075.3072055,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8730,3,000,20,2,61,1,02,1,1,0,0,2,42,091,204800,1009,1,9999,99999,99999999,9,99999,99999999,254817,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0634905,-075.3072055,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8731,3,000,20,2,95,1,01,1,1,0,0,2,42,091,204800,1009,1,9999,99999,99999999,9,99999,99999999,254817,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0634905,-075.3072055,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8732,3,000,20,2,95,1,01,1,1,0,0,2,42,091,204800,1009,1,9999,99999,99999999,9,99999,99999999,254817,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0634905,-075.3072055,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8733,3,000,20,1,61,1,02,2,1,0,0,2,42,091,204800,1009,1,9999,99999,99999999,9,99999,99999999,254817,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0634905,-075.3072055,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8734,3,000,20,2,38,1,04,2,1,0,0,2,42,091,204800,1009,1,9999,99999,99999999,9,99999,99999999,254817,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,44976,A,01216860,428,2,99999,99999999,+40.0634905,-075.3072055,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03116,1,99999,99999,14160,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001550,19085 +8735,3,000,30,1,1,1,23,2,3,0,0,1,06,067,007105,3001,3,9999,99999,99999999,9,99999,99999999,18349,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6745355,-121.4984763,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8736,3,000,30,1,11,2,02,2,1,0,0,1,06,067,007105,3001,3,9999,99999,99999999,9,99999,99999999,18349,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6745355,-121.4984763,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8737,3,000,33,2,26,1,05,2,1,0,0,2,06,067,007105,3001,3,9999,99999,99999999,9,99999,99999999,18349,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6745355,-121.4984763,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8738,3,000,34,2,37,1,01,2,1,0,0,2,06,067,007105,3001,3,9999,99999,99999999,9,99999,99999999,18349,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6745355,-121.4984763,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8739,3,000,20,1,43,1,04,1,1,0,0,2,06,067,007105,3002,3,9999,99999,99999999,9,99999,99999999,30245,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6740444,-121.5001612,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8740,3,000,20,1,43,1,04,1,1,0,0,2,06,067,007105,3002,3,9999,99999,99999999,9,99999,99999999,30245,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6740444,-121.5001612,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8741,3,000,20,1,43,1,04,1,1,0,0,2,06,067,007105,3002,3,9999,99999,99999999,9,99999,99999999,30245,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6740444,-121.5001612,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8742,3,000,20,1,48,1,22,1,3,0,0,2,06,067,007105,3002,3,9999,99999,99999999,9,99999,99999999,30245,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6740444,-121.5001612,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8743,3,000,20,1,50,2,11,1,2,0,0,2,06,067,007105,3002,3,9999,99999,99999999,9,99999,99999999,30245,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6740444,-121.5001612,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8744,3,000,20,1,62,1,01,1,1,0,0,2,06,067,007105,3002,3,9999,99999,99999999,9,99999,99999999,30245,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6740444,-121.5001612,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,01332,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95835 +8745,3,000,20,2,34,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8746,3,000,20,2,38,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8747,3,000,20,2,38,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8748,3,000,20,2,39,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8749,3,000,20,2,39,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8750,3,000,20,2,39,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8751,3,000,20,2,39,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8752,3,000,20,2,39,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8753,3,000,20,2,47,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8754,3,000,20,2,48,1,02,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +8755,3,000,21,1,45,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8756,3,000,21,1,46,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8757,3,000,21,2,59,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8758,3,000,21,2,59,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8759,3,000,21,2,59,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8760,3,000,21,2,59,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8761,3,000,21,2,59,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8762,3,000,21,2,69,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8763,3,000,21,2,69,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8764,3,000,21,2,69,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +8765,3,000,20,1,47,1,01,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8766,3,000,20,1,47,1,01,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8767,3,000,20,1,47,1,01,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8768,3,000,20,1,47,1,01,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8769,3,000,20,1,47,1,01,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8770,3,000,20,1,59,1,02,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8771,3,000,21,1,53,1,02,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8772,3,000,21,1,62,1,02,2,1,0,0,2,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8773,3,000,25,1,4,1,01,2,1,0,0,1,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8774,3,000,25,1,14,1,02,2,1,0,0,1,28,147,950101,1045,1,9999,99999,99999999,9,99999,99999999,1369444,0,0,0,0,0,99999,03,999,99999,99999999,A,00695794,92880,N,00712118,999,6,99999,99999999,+31.2950372,-090.1306858,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,04440,099,039,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000401,39641 +8775,3,000,21,1,32,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8776,3,000,21,1,33,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8777,3,000,21,1,35,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8778,3,000,21,1,38,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8779,3,000,21,1,39,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8780,3,000,21,1,39,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8781,3,000,21,1,70,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8782,3,000,21,1,72,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8783,3,000,21,1,72,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8784,3,000,21,1,74,1,01,2,1,0,0,2,34,029,731103,1029,1,9999,99999,99999999,9,99999,99999999,60671,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,05305,A,00882073,408,2,99999,99999999,+39.8978122,-074.1789021,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01202,1,01560,02910,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025235,08721 +8785,3,000,34,2,33,1,01,2,1,0,0,2,17,031,100200,1016,1,9999,99999,99999999,9,99999,99999999,18710,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9981463,-087.7891919,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8786,3,000,36,2,34,1,04,2,1,0,0,2,17,031,100200,1016,1,9999,99999,99999999,9,99999,99999999,18710,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9981463,-087.7891919,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8787,3,000,20,1,60,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8788,3,000,20,1,60,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8789,3,000,20,1,61,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8790,3,000,20,1,61,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8791,3,000,20,1,61,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8792,3,000,20,1,61,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8793,3,000,20,1,61,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8794,3,000,20,1,71,1,01,1,1,0,0,2,17,031,100200,1017,1,9999,99999,99999999,9,99999,99999999,7201,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9983731,-087.7905122,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041032,60631 +8795,3,000,20,1,47,1,01,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8796,3,000,20,1,47,1,01,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8797,3,000,20,1,47,1,01,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8798,3,000,20,1,47,1,01,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8799,3,000,20,1,55,1,02,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8800,3,000,20,1,57,1,02,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8801,3,000,21,1,31,1,01,2,1,0,0,2,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8802,3,000,25,1,11,1,08,2,2,0,0,1,45,007,011001,3053,3,9999,99999,99999999,9,99999,99999999,313046,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5045485,-082.7692493,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,29626 +8803,3,000,20,1,28,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +8804,3,000,20,1,44,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +8805,3,000,30,1,7,1,07,2,2,0,0,1,12,073,001801,3006,3,9999,99999,99999999,9,99999,99999999,6809,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3951794,-084.2969626,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001317,32305 +8806,3,000,30,1,14,1,07,2,2,0,0,1,12,073,001801,3006,3,9999,99999,99999999,9,99999,99999999,6809,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3951794,-084.2969626,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001317,32305 +8807,3,000,30,1,14,1,07,2,2,0,0,1,12,073,001801,3006,3,9999,99999,99999999,9,99999,99999999,6809,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3951794,-084.2969626,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001317,32305 +8808,3,000,34,1,40,1,01,2,1,0,0,2,12,073,001801,3006,3,9999,99999,99999999,9,99999,99999999,6809,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3951794,-084.2969626,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001317,32305 +8809,3,000,20,1,61,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +8810,3,000,20,2,35,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +8811,3,000,20,2,35,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +8812,3,000,20,2,36,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +8813,3,000,20,2,36,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +8814,3,000,20,2,38,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +8815,3,000,20,2,39,2,06,2,1,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8816,3,000,20,2,39,2,06,2,1,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8817,3,000,20,2,39,2,06,2,1,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8818,3,000,20,2,58,1,02,2,1,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8819,3,000,20,2,80,2,11,2,2,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8820,3,000,21,2,21,1,04,2,1,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8821,3,000,25,1,4,1,03,2,1,0,0,1,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8822,3,000,25,1,4,1,03,2,1,0,0,1,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8823,3,000,25,1,12,1,03,2,1,0,0,1,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8824,3,000,25,1,20,1,02,2,1,0,0,2,04,019,004322,1010,1,9999,99999,99999999,9,99999,99999999,17420,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,90153,S,01934920,536,8,99999,99999999,+32.1258982,-111.0234177,L,1,99999,99999,99999,9,N,N,20540,S,02408687,01901,4,99999,99999,08800,004,004,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000152,85746 +8825,3,000,25,2,17,2,02,2,1,0,0,1,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8826,3,000,25,2,17,2,06,2,1,0,0,1,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8827,3,000,25,2,17,2,06,2,1,0,0,1,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8828,3,000,25,2,17,2,06,2,1,0,0,1,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8829,3,000,25,2,17,2,06,2,1,0,0,1,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8830,3,000,25,2,19,2,06,2,1,0,0,2,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8831,3,000,25,2,19,2,06,2,1,0,0,2,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8832,3,000,25,2,19,2,06,2,1,0,0,2,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8833,3,000,25,2,21,1,07,2,2,0,0,2,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8834,3,000,25,2,21,1,07,2,2,0,0,2,09,009,170400,1020,1,9999,99999,99999999,9,99999,99999999,55681,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,46520,C,00213458,408,1,99999,99999999,+41.5430538,-072.8247585,L,1,99999,99999,75700,1,N,N,46450,A,02378280,20603,1,99999,99999,02400,082,013,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-060,06451 +8835,3,000,25,1,2,2,02,2,1,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8836,3,000,25,1,2,2,11,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8837,3,000,25,1,2,2,11,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8838,3,000,25,1,2,2,11,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8839,3,000,25,1,3,1,07,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8840,3,000,25,1,3,2,15,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8841,3,000,25,1,6,1,02,2,1,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8842,3,000,25,1,6,1,07,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8843,3,000,25,1,6,2,06,2,1,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8844,3,000,25,1,6,2,11,2,2,0,0,1,17,043,846511,1005,1,9999,99999,99999999,9,99999,99999999,29087,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7358479,-088.2496996,L,1,16984,99999,99999,9,N,N,03012,A,02394031,04305,2,99999,99999,41690,084,042,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006086,60504 +8845,3,000,25,2,23,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8846,3,000,25,2,24,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8847,3,000,25,2,24,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8848,3,000,25,2,24,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8849,3,000,25,2,26,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8850,3,000,25,2,26,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8851,3,000,28,1,69,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8852,3,000,30,1,12,1,08,2,2,0,0,1,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8853,3,000,30,1,13,1,01,2,1,0,0,1,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8854,3,000,32,1,40,1,02,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +8855,3,000,20,2,71,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8856,3,000,20,2,71,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8857,3,000,20,2,71,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8858,3,000,20,2,73,2,06,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8859,3,000,20,2,76,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8860,3,000,20,2,76,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8861,3,000,20,2,76,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8862,3,000,20,2,78,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8863,3,000,20,2,78,1,02,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8864,3,000,21,1,32,1,06,2,1,0,0,2,36,047,073800,2001,2,9999,99999,99999999,9,99999,99999999,3340,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6226307,-073.9380157,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04318,1,99999,99999,20580,041,019,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000025,11210 +8865,3,000,25,2,15,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8866,3,000,25,2,15,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8867,3,000,25,2,15,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8868,3,000,25,2,15,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8869,3,000,25,2,15,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8870,3,000,25,2,15,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8871,3,000,25,2,16,2,20,2,2,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8872,3,000,25,2,20,2,06,2,1,0,0,2,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8873,3,000,25,2,22,2,06,2,1,0,0,2,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8874,3,000,25,2,22,2,06,2,1,0,0,2,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +8875,3,000,20,2,43,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8876,3,000,20,2,43,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8877,3,000,20,2,43,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8878,3,000,21,1,61,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8879,3,000,21,1,61,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8880,3,000,21,1,61,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8881,3,000,21,2,34,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8882,3,000,21,2,38,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8883,3,000,22,2,32,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8884,3,000,25,1,7,1,06,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +8885,3,000,20,1,78,1,01,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8886,3,000,20,1,85,2,11,1,2,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8887,3,000,20,1,88,2,11,1,2,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8888,3,000,20,2,28,2,01,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8889,3,000,20,2,43,1,01,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8890,3,000,20,2,47,2,06,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8891,3,000,20,2,60,2,01,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8892,3,000,20,2,60,2,06,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8893,3,000,20,2,60,2,06,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8894,3,000,20,2,60,2,06,1,1,0,0,2,34,017,014900,2002,2,9999,99999,99999999,9,99999,99999999,23895,0,0,0,0,0,35620,08,999,99999,99999999,A,00882278,52470,A,00882223,408,2,99999,99999999,+40.7611013,-074.0488884,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00604,1,99999,99999,11460,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040705,07047 +8895,3,000,34,2,21,2,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8896,3,000,34,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8897,3,000,34,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8898,3,000,34,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8899,3,000,34,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8900,3,000,34,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8901,3,000,34,2,24,2,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8902,3,000,36,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8903,3,000,36,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8904,3,000,36,2,22,1,01,2,1,0,0,2,53,063,002501,2015,2,9999,99999,99999999,9,99999,99999999,7423,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6730864,-117.4022329,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003118,99207 +8905,3,000,20,2,60,1,02,1,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8906,3,000,20,2,71,1,02,1,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8907,3,000,20,2,71,1,02,1,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8908,3,000,20,2,71,1,02,1,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8909,3,000,20,2,71,1,02,1,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8910,3,000,20,2,81,1,02,1,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8911,3,000,20,2,70,1,07,2,2,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8912,3,000,25,2,6,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8913,3,000,25,2,10,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8914,3,000,26,2,12,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +8915,3,000,25,2,18,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8916,3,000,25,2,18,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8917,3,000,25,2,35,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8918,3,000,25,2,35,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8919,3,000,25,2,36,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8920,3,000,25,2,39,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8921,3,000,25,2,40,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8922,3,000,25,2,42,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8923,3,000,25,2,43,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8924,3,000,25,2,60,1,02,2,1,0,0,2,22,071,001753,3003,3,9999,99999,99999999,9,99999,99999999,352131,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+30.0164743,-090.0076895,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02401,3,99999,99999,01170,099,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,009-35,70126 +8925,3,000,20,2,67,1,01,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8926,3,000,20,2,68,1,01,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8927,3,000,21,1,41,1,04,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8928,3,000,21,1,52,2,06,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8929,3,000,21,1,55,2,06,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8930,3,000,21,1,56,2,06,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8931,3,000,21,2,37,1,04,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8932,3,000,22,1,60,1,02,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8933,3,000,22,2,35,1,01,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8934,3,000,22,2,39,1,01,2,1,0,0,2,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +8935,3,000,25,1,15,1,01,2,1,0,0,1,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8936,3,000,25,2,1,1,01,2,1,0,0,1,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8937,3,000,25,2,2,1,01,2,1,0,0,1,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8938,3,000,25,2,6,2,07,2,2,0,0,1,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8939,3,000,25,2,11,1,01,2,1,0,0,1,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8940,3,000,25,2,18,2,11,2,2,0,0,2,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8941,3,000,25,2,21,2,08,2,2,0,0,2,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8942,3,000,29,1,91,1,01,2,1,0,0,2,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8943,3,000,29,2,72,2,11,2,2,0,0,2,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8944,3,000,30,2,0,2,07,2,2,0,0,1,06,111,005202,1014,1,9999,99999,99999999,9,99999,99999999,3151104,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2583203,-119.0450906,L,1,99999,99999,99999,9,9,9,99999,9,99999999,11109,4,24720,29270,99999,037,019,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,93066 +8945,3,000,20,1,38,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8946,3,000,20,1,70,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8947,3,000,20,1,70,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8948,3,000,20,1,80,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8949,3,000,20,2,44,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8950,3,000,20,2,44,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8951,3,000,20,2,44,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8952,3,000,20,2,44,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8953,3,000,20,2,44,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8954,3,000,20,2,44,1,01,2,1,0,0,2,55,031,020500,3012,3,9999,99999,99999999,9,99999,99999999,11357,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,78650,F,01584257,999,3,99999,99999999,+46.7174414,-092.0956712,L,1,99999,99999,99999,9,N,N,78650,A,01584257,00100,2,99999,99999,14670,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,24850,U,99999,U,001720,54880 +8955,3,000,20,2,79,1,01,1,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8956,3,000,21,1,68,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8957,3,000,21,2,51,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8958,3,000,21,2,54,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8959,3,000,21,2,66,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8960,3,000,21,2,66,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8961,3,000,21,2,66,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8962,3,000,21,2,75,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8963,3,000,21,2,75,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8964,3,000,21,2,76,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +8965,3,000,20,2,46,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8966,3,000,20,2,47,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8967,3,000,20,2,47,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8968,3,000,20,2,47,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8969,3,000,20,2,47,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8970,3,000,20,2,47,1,09,2,2,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8971,3,000,20,2,48,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8972,3,000,20,2,48,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8973,3,000,20,2,48,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8974,3,000,20,2,48,1,01,2,1,0,0,2,06,061,022002,2043,2,9999,99999,99999999,9,99999,99999999,2272432,0,0,0,0,0,40900,01,999,99999,99999999,A,00277295,90548,S,01935059,472,9,99999,99999999,+39.0367873,-120.9545760,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06103,4,30720,30750,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95713 +8975,3,000,22,2,33,2,11,2,2,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8976,3,000,22,2,47,2,06,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8977,3,000,24,2,23,2,06,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8978,3,000,25,1,6,1,01,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8979,3,000,25,1,6,1,01,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8980,3,000,25,1,8,2,06,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8981,3,000,25,1,12,2,06,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8982,3,000,25,2,4,2,06,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8983,3,000,25,2,14,1,01,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8984,3,000,25,2,14,1,01,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +8985,5,301,37,1,56,1,02,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8986,5,301,37,1,56,1,02,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8987,5,301,37,1,56,1,04,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8988,5,301,37,1,56,1,04,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8989,5,301,37,1,56,2,06,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8990,5,301,37,1,57,1,01,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8991,5,301,37,1,57,1,01,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8992,5,301,37,1,58,1,01,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8993,5,301,37,1,58,1,01,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8994,5,301,37,1,58,1,01,0,1,1,3,2,06,037,403902,3021,3,9999,99999,99999999,9,99999,99999999,49584,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.1061770,-117.8771584,L,1,31084,99999,99999,9,N,N,30014,A,02410601,03711,4,99999,99999,10050,048,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91740 +8995,3,000,20,2,65,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +8996,3,000,20,2,65,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +8997,3,000,20,2,65,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +8998,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +8999,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +9000,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +9001,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +9002,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +9003,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +9004,3,000,20,2,66,1,01,1,1,0,0,2,48,113,013202,4005,4,9999,99999,99999999,9,99999,99999999,384207,24253,0,0,24253,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9200431,-096.7818020,B,1,19124,99999,99999,9,Y,N,19000,A,02410288,02311,3,99999,99999,16230,114,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002016,75230 +9005,3,000,20,1,29,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9006,3,000,20,1,29,1,06,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9007,3,000,20,1,30,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9008,3,000,20,1,32,2,11,1,2,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9009,3,000,20,1,37,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9010,3,000,20,1,37,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9011,3,000,20,1,37,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9012,3,000,20,1,38,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9013,3,000,20,1,39,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9014,3,000,20,1,39,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +9015,3,000,20,1,71,2,11,2,2,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9016,3,000,20,1,71,2,11,2,2,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9017,3,000,20,1,73,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9018,3,000,20,1,73,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9019,3,000,20,1,80,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9020,3,000,20,1,80,2,06,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9021,3,000,20,1,80,2,11,2,2,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9022,3,000,20,1,83,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9023,3,000,20,1,83,2,11,2,2,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9024,3,000,20,1,83,2,11,2,2,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +9025,3,000,25,2,14,1,03,2,1,0,0,1,34,031,256805,1037,1,9999,99999,99999999,9,99999,99999999,412913,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0584471,-074.4932818,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9026,3,000,25,2,22,1,04,2,1,0,0,2,34,031,256805,1037,1,9999,99999,99999999,9,99999,99999999,412913,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0584471,-074.4932818,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9027,3,000,29,1,73,2,01,2,1,0,0,2,34,031,256805,1037,1,9999,99999,99999999,9,99999,99999999,412913,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0584471,-074.4932818,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9028,3,000,30,1,3,1,01,2,1,0,0,1,34,031,256805,1037,1,9999,99999,99999999,9,99999,99999999,412913,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0584471,-074.4932818,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9029,3,000,31,2,93,1,01,2,1,0,0,2,34,031,256805,1037,1,9999,99999,99999999,9,99999,99999999,412913,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0584471,-074.4932818,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9030,3,000,20,1,51,1,01,1,1,0,0,2,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9031,3,000,20,1,51,1,01,1,1,0,0,2,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9032,3,000,20,1,54,1,01,2,1,0,0,2,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9033,3,000,20,1,54,1,01,2,1,0,0,2,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9034,3,000,25,2,15,1,01,2,1,0,0,1,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +9035,3,000,20,2,63,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9036,3,000,20,2,63,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9037,3,000,20,2,63,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9038,3,000,20,2,63,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9039,3,000,20,2,63,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9040,3,000,20,2,64,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9041,3,000,20,2,64,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9042,3,000,20,2,64,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9043,3,000,20,2,76,2,06,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9044,3,000,20,2,78,1,01,1,1,0,0,2,06,071,000821,1008,1,9999,99999,99999999,9,99999,99999999,140703,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0983142,-117.6841359,L,1,99999,99999,99999,9,N,N,81344,A,02412137,07112,4,99999,99999,00016,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91786 +9045,3,000,25,2,11,1,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9046,3,000,25,2,12,1,11,2,2,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9047,3,000,25,2,14,2,02,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9048,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9049,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9050,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9051,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9052,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9053,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9054,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +9055,3,000,22,2,30,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9056,3,000,22,2,30,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9057,3,000,22,2,31,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9058,3,000,22,2,31,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9059,3,000,22,2,31,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9060,3,000,22,2,31,1,11,2,2,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9061,3,000,22,2,37,1,01,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9062,3,000,22,2,45,1,01,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9063,3,000,22,2,55,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9064,3,000,22,2,55,1,04,2,1,0,0,2,15,003,003701,3001,3,9999,99999,99999999,9,99999,99999999,27923,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2909995,-157.8388186,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00304,4,99999,99999,00030,026,012,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96814 +9065,3,000,25,2,17,1,02,2,1,0,0,1,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9066,3,000,25,2,17,1,02,2,1,0,0,1,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9067,3,000,25,2,17,1,02,2,1,0,0,1,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9068,3,000,25,2,25,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9069,3,000,25,2,29,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9070,3,000,25,2,29,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9071,3,000,25,2,37,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9072,3,000,25,2,37,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9073,3,000,25,2,37,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9074,3,000,25,2,41,1,02,2,1,0,0,2,17,031,530600,1006,1,9999,99999,99999999,9,99999,99999999,87816,0,0,0,0,0,16980,02,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.6716952,-087.6164160,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03167,2,99999,99999,09930,029,015,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,009045,60628 +9075,3,000,20,1,69,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9076,3,000,20,1,69,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9077,3,000,20,1,69,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9078,3,000,20,1,69,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9079,3,000,20,1,70,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9080,3,000,20,1,70,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9081,3,000,20,1,72,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9082,3,000,20,1,72,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9083,3,000,20,1,72,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9084,3,000,20,1,72,1,01,2,1,0,0,2,29,047,021209,3010,3,9999,99999,99999999,9,99999,99999999,113329,0,0,0,0,0,28140,06,999,99999,99999999,A,00758478,13780,N,00766504,312,4,99999,99999999,+39.2380753,-094.5588955,L,1,99999,99999,99999,9,Y,N,38000,A,02395492,00902,2,99999,99999,22800,016,017,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000030,64118 +9085,3,000,21,1,66,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9086,3,000,21,2,31,1,04,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9087,3,000,21,2,57,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9088,3,000,21,2,57,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9089,3,000,21,2,58,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9090,3,000,21,2,59,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9091,3,000,21,2,59,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9092,3,000,21,2,59,1,01,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9093,3,000,21,2,61,1,02,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9094,3,000,21,2,61,1,02,2,1,0,0,2,01,077,011504,2040,2,9999,99999,99999999,9,99999,99999999,279924,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8536774,-087.6246300,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,002,001,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000112,35630 +9095,3,000,20,1,40,1,04,1,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9096,3,000,20,1,40,1,04,1,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9097,3,000,20,1,63,1,01,1,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9098,3,000,20,1,63,1,01,1,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9099,3,000,20,1,50,1,04,2,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9100,3,000,20,1,61,1,01,2,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9101,3,000,20,1,61,1,01,2,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9102,3,000,20,1,61,1,01,2,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9103,3,000,20,1,66,1,04,2,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9104,3,000,21,1,47,1,04,2,1,0,0,2,27,123,042202,1008,1,9999,99999,99999999,9,99999,99999999,20736,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,40382,F,02395846,378,4,99999,99999999,+45.0055059,-093.0668171,L,1,99999,99999,99999,9,N,N,40382,A,02395846,01502,2,99999,99999,32430,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000140,55109 +9105,3,000,20,1,29,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9106,3,000,20,1,29,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9107,3,000,20,1,30,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9108,3,000,20,1,33,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9109,3,000,20,1,33,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9110,3,000,20,1,33,2,06,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9111,3,000,20,1,33,2,06,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9112,3,000,20,1,34,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9113,3,000,20,1,34,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9114,3,000,20,1,34,1,01,2,1,0,0,2,26,121,003100,2011,2,9999,99999,99999999,9,99999,99999999,246273,0,0,0,0,0,34740,02,999,99999,99999999,A,01623003,25080,A,01626220,266,3,99999,99999999,+43.2316907,-086.0991467,L,1,99999,99999,99999,9,N,N,88220,S,02393864,00700,2,99999,99999,26220,091,034,01779789,99999,99999999,9,999,99999,99999999,999999,60841,U,99999,U,121009,49442 +9115,3,000,33,2,69,1,04,2,1,0,0,2,36,081,004401,2001,2,9999,99999,99999999,9,99999,99999999,11410,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6772776,-073.8614007,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9116,3,000,33,2,69,1,04,2,1,0,0,2,36,081,004401,2001,2,9999,99999,99999999,9,99999,99999999,11410,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6772776,-073.8614007,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9117,3,000,33,2,69,1,04,2,1,0,0,2,36,081,004401,2001,2,9999,99999,99999999,9,99999,99999999,11410,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6772776,-073.8614007,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9118,3,000,33,2,85,1,06,2,1,0,0,2,36,081,004401,2001,2,9999,99999,99999999,9,99999,99999999,11410,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6772776,-073.8614007,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9119,3,000,34,2,34,1,06,2,1,0,0,2,36,081,004401,2001,2,9999,99999,99999999,9,99999,99999999,11410,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6772776,-073.8614007,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9120,3,000,20,1,48,1,04,1,1,0,0,2,36,081,004401,2002,2,9999,99999,99999999,9,99999,99999999,3645,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6769045,-073.8603957,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9121,3,000,20,1,48,1,04,1,1,0,0,2,36,081,004401,2002,2,9999,99999,99999999,9,99999,99999999,3645,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6769045,-073.8603957,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9122,3,000,20,1,49,1,04,1,1,0,0,2,36,081,004401,2002,2,9999,99999,99999999,9,99999,99999999,3645,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6769045,-073.8603957,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9123,3,000,20,1,54,1,20,1,2,0,0,2,36,081,004401,2002,2,9999,99999,99999999,9,99999,99999999,3645,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6769045,-073.8603957,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9124,3,000,20,2,61,2,11,1,2,0,0,2,36,081,004401,2002,2,9999,99999,99999999,9,99999,99999999,3645,0,0,0,0,0,35620,08,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6769045,-073.8603957,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04410,1,99999,99999,20580,023,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000066,11417 +9125,3,000,20,2,62,1,01,1,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9126,3,000,20,2,62,1,01,1,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9127,3,000,20,2,64,1,01,1,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9128,3,000,20,2,64,1,01,1,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9129,3,000,20,1,40,2,11,2,2,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9130,3,000,20,1,40,2,11,2,2,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9131,3,000,20,1,41,1,01,2,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9132,3,000,20,1,41,1,01,2,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9133,3,000,20,1,43,2,06,2,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9134,3,000,20,1,49,1,01,2,1,0,0,2,06,059,086902,5004,5,9999,99999,99999999,9,99999,99999999,23852,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8293903,-117.9997124,L,1,11244,99999,99999,9,Y,N,02000,A,02409704,05909,4,08070,02630,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92804 +9135,3,000,30,2,15,2,15,2,2,0,0,1,34,023,004900,2001,2,9999,99999,99999999,9,99999,99999999,11383,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5102706,-074.2689051,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9136,3,000,33,1,19,2,12,2,2,0,0,2,34,023,004900,2001,2,9999,99999,99999999,9,99999,99999999,11383,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5102706,-074.2689051,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9137,3,000,33,2,1,2,01,2,1,0,0,1,34,023,004900,2001,2,9999,99999,99999999,9,99999,99999999,11383,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5102706,-074.2689051,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9138,3,000,34,2,77,2,11,2,2,0,0,2,34,023,004900,2001,2,9999,99999,99999999,9,99999,99999999,11383,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5102706,-074.2689051,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9139,3,000,36,2,8,2,11,2,2,0,0,1,34,023,004900,2001,2,9999,99999,99999999,9,99999,99999999,11383,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5102706,-074.2689051,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9140,3,000,20,2,26,2,15,1,2,0,0,2,34,023,004900,2002,2,9999,99999,99999999,9,99999,99999999,17240,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5107483,-074.2703877,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9141,3,000,20,2,51,1,02,1,1,0,0,2,34,023,004900,2002,2,9999,99999,99999999,9,99999,99999999,17240,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5107483,-074.2703877,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9142,3,000,20,2,73,1,07,1,2,0,0,2,34,023,004900,2002,2,9999,99999,99999999,9,99999,99999999,17240,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5107483,-074.2703877,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9143,3,000,20,2,75,2,15,1,2,0,0,2,34,023,004900,2002,2,9999,99999,99999999,9,99999,99999999,17240,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5107483,-074.2703877,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9144,3,000,20,2,78,2,15,1,2,0,0,2,34,023,004900,2002,2,9999,99999,99999999,9,99999,99999999,17240,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,58200,F,00885349,408,2,99999,99999999,+40.5107483,-074.2703877,L,1,35154,99999,99999,9,N,N,58200,A,00885349,00907,1,99999,99999,12930,019,019,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,080302,08861 +9145,3,000,20,1,58,1,01,1,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9146,3,000,20,1,60,1,01,1,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9147,3,000,20,1,74,1,01,1,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9148,3,000,20,1,35,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9149,3,000,20,1,37,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9150,3,000,20,1,37,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9151,3,000,20,1,37,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9152,3,000,20,1,37,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9153,3,000,20,1,38,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9154,3,000,20,1,38,1,01,2,1,0,0,2,23,019,031300,1017,1,9999,99999,99999999,9,99999,99999999,394935,0,0,0,0,0,12620,02,999,99999,99999999,A,00581295,36325,A,00582538,999,1,99999,99999999,+44.9287396,-068.9724877,L,1,99999,99999,70750,1,9,9,99999,9,99999999,00300,1,99999,99999,14440,102,010,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04450 +9155,3,000,20,2,58,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9156,3,000,20,2,58,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9157,3,000,20,2,58,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9158,3,000,20,2,62,2,07,2,2,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9159,3,000,20,2,81,2,06,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9160,3,000,20,2,86,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9161,3,000,20,2,87,1,02,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9162,3,000,20,2,89,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9163,3,000,20,2,89,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9164,3,000,20,2,89,1,01,2,1,0,0,2,48,339,693401,2009,2,9999,99999,99999999,9,99999,99999999,51095,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2999786,-095.4624918,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04501,3,99999,99999,15000,016,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000051,77301 +9165,3,000,20,2,47,2,06,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9166,3,000,20,2,56,1,01,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9167,3,000,20,2,56,1,01,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9168,3,000,20,2,56,1,01,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9169,3,000,20,2,56,2,11,2,2,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9170,3,000,20,2,57,1,01,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9171,3,000,20,2,59,1,01,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9172,3,000,20,2,59,1,01,2,1,0,0,2,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9173,3,000,25,1,3,1,01,2,1,0,0,1,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9174,3,000,25,1,4,1,01,2,1,0,0,1,27,147,960700,1008,1,9999,99999,99999999,9,99999,99999999,24174,0,0,0,0,0,36940,01,999,99999,99999999,A,00659518,49300,F,02396114,378,4,99999,99999999,+44.0789861,-093.2222416,L,2,99999,99999,99999,9,Y,N,49300,A,02396114,02500,2,99999,99999,28050,24A,024,00662849,99999,99999999,9,999,99999,99999999,999999,66430,U,99999,U,000115,55060 +9175,3,000,21,1,51,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9176,3,000,21,1,52,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9177,3,000,21,1,52,1,02,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9178,3,000,21,1,53,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9179,3,000,21,1,53,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9180,3,000,21,1,61,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9181,3,000,21,1,61,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9182,3,000,21,1,63,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9183,3,000,21,1,63,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9184,3,000,21,1,63,1,01,2,1,0,0,2,01,073,014205,2023,2,9999,99999,99999999,9,99999,99999999,1198744,0,0,0,0,0,13820,06,999,99999,99999999,A,00161562,91431,S,00165818,142,6,99999,99999999,+33.2908559,-086.9395177,L,1,99999,99999,99999,9,N,N,34024,A,02404677,01401,3,99999,99999,01920,015,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,003080,35022 +9185,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9186,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9187,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9188,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9189,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9190,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9191,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9192,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9193,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9194,5,501,38,1,19,1,01,0,1,2,5,2,42,001,031501,1018,1,9999,99999,99999999,9,99999,99999999,172399,0,0,0,0,0,23900,13,999,99999,99999999,A,01213656,28960,F,01214758,276,2,99999,99999999,+39.8350913,-077.2357145,L,1,99999,99999,99999,9,Y,N,28960,A,01214758,03701,1,99999,99999,10710,091,033,01779798,99999,99999999,9,999,99999,99999999,999999,33139,U,99999,U,000230,17325 +9195,3,000,30,1,15,1,02,2,1,0,0,1,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9196,3,000,30,1,18,1,02,2,1,0,0,2,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9197,3,000,30,1,21,1,02,2,1,0,0,2,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9198,3,000,30,1,21,1,02,2,1,0,0,2,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9199,3,000,30,1,23,1,02,2,1,0,0,2,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9200,3,000,30,1,29,1,02,2,1,0,0,2,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9201,3,000,30,2,4,2,06,2,1,0,0,1,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9202,3,000,30,2,11,1,07,2,2,0,0,1,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9203,3,000,30,2,12,1,02,2,1,0,0,1,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9204,3,000,30,2,14,1,01,2,1,0,0,1,13,299,950600,3002,3,9999,99999,99999999,9,99999,99999999,128839,0,0,0,0,0,48180,01,999,99999,99999999,A,00357722,93294,S,01936633,999,5,99999,99999999,+31.2153425,-082.3351647,L,2,99999,99999,99999,9,Y,N,80956,A,02405694,04400,3,99999,99999,05430,180,007,01705317,99999,99999999,9,999,99999,99999999,999999,93187,U,99999,U,00200A,31501 +9205,3,000,21,1,28,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9206,3,000,21,1,59,1,02,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9207,3,000,21,1,60,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9208,3,000,21,1,61,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9209,3,000,21,1,61,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9210,3,000,22,1,46,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9211,3,000,22,1,46,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9212,3,000,22,1,82,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9213,3,000,22,2,48,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9214,3,000,22,2,49,1,01,2,1,0,0,2,34,041,031500,3020,3,9999,99999,99999999,9,99999,99999999,1242379,875,0,0,875,0,10900,05,999,99999,99999999,A,00882237,43320,A,00882249,999,2,99999,99999999,+40.8040448,-074.8882193,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,1,09540,16970,99999,023,023,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,080003,07865 +9215,3,000,25,2,8,1,04,2,1,0,0,1,10,001,043400,1084,1,9999,99999,99999999,9,99999,99999999,50572,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9942885,-075.5025454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9216,3,000,28,2,35,1,02,2,1,0,0,2,10,001,043400,1084,1,9999,99999,99999999,9,99999,99999999,50572,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9942885,-075.5025454,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9217,3,000,20,2,31,1,01,2,1,0,0,2,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9218,3,000,20,2,70,1,01,2,1,0,0,2,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9219,3,000,20,2,70,1,01,2,1,0,0,2,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9220,3,000,22,2,26,1,12,2,2,0,0,2,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9221,3,000,25,1,14,2,32,2,3,0,0,1,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9222,3,000,25,2,3,1,15,2,2,0,0,1,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9223,3,000,33,1,71,2,15,2,2,0,0,2,10,001,043400,1085,1,9999,99999,99999999,9,99999,99999999,29191,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9950091,-075.5024173,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,016,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9224,3,000,20,1,21,1,01,1,1,0,0,2,10,001,043400,1086,1,9999,99999,99999999,9,99999,99999999,885990,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,92220,S,01935616,428,5,99999,99999999,+38.9801611,-075.4863644,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,00790,033,018,01779781,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006-33,19943 +9225,3,000,20,1,62,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9226,3,000,20,1,62,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9227,3,000,20,1,62,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9228,3,000,20,2,72,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9229,3,000,20,2,74,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9230,3,000,20,2,74,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9231,3,000,20,2,75,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9232,3,000,20,2,75,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9233,3,000,20,2,75,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9234,3,000,20,2,77,1,01,2,1,0,0,2,51,143,011001,1029,1,9999,99999,99999999,9,99999,99999999,1538480,0,0,0,0,0,19260,05,999,99999,99999999,A,01480157,96127,N,01927541,999,5,99999,99999999,+36.6214445,-079.5748370,L,2,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02940,014,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000603,24541 +9235,3,000,20,2,85,1,01,1,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9236,3,000,20,2,87,2,01,1,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9237,3,000,20,2,88,1,01,1,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9238,3,000,20,1,36,1,08,2,2,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9239,3,000,20,1,38,1,01,2,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9240,3,000,20,1,38,1,01,2,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9241,3,000,20,1,41,1,01,2,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9242,3,000,20,1,41,1,01,2,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9243,3,000,20,1,41,1,01,2,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9244,3,000,20,1,41,1,01,2,1,0,0,2,36,027,300000,3003,3,9999,99999,99999999,9,99999,99999999,144406,43192,0,0,43192,0,39100,18,999,99999,99999999,A,00974112,78157,A,00979595,408,2,99999,99999999,+41.6025221,-073.9151193,B,1,99999,99999,99999,9,N,N,78168,A,02391193,02804,1,99999,99999,29880,105,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000196,12590 +9245,3,000,30,2,0,1,07,2,2,0,0,1,08,031,002300,3024,3,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513410,-104.9640791,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9246,3,000,33,1,12,1,15,2,2,0,0,1,08,031,002300,3024,3,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513410,-104.9640791,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9247,3,000,33,2,9,1,15,2,2,0,0,1,08,031,002300,3024,3,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513410,-104.9640791,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9248,3,000,35,1,20,1,44,2,4,0,0,2,08,031,002300,3024,3,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513410,-104.9640791,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9249,3,000,36,1,3,1,12,2,2,0,0,1,08,031,002300,3024,3,9999,99999,99999999,9,99999,99999999,14880,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513410,-104.9640791,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9250,3,000,20,1,35,1,01,1,1,0,0,2,08,031,002300,3025,3,9999,99999,99999999,9,99999,99999999,14688,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513412,-104.9653241,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9251,3,000,20,1,35,1,01,1,1,0,0,2,08,031,002300,3025,3,9999,99999,99999999,9,99999,99999999,14688,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513412,-104.9653241,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9252,3,000,20,1,36,1,02,1,1,0,0,2,08,031,002300,3025,3,9999,99999,99999999,9,99999,99999999,14688,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513412,-104.9653241,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9253,3,000,20,1,37,1,01,1,1,0,0,2,08,031,002300,3025,3,9999,99999,99999999,9,99999,99999999,14688,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513412,-104.9653241,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9254,3,000,20,1,37,1,01,1,1,0,0,2,08,031,002300,3025,3,9999,99999,99999999,9,99999,99999999,14688,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7513412,-104.9653241,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,008,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031816,80205 +9255,3,000,28,2,26,1,01,2,1,0,0,2,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9256,3,000,28,2,33,1,01,2,1,0,0,2,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9257,3,000,28,2,33,1,01,2,1,0,0,2,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9258,3,000,28,2,33,1,02,2,1,0,0,2,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9259,3,000,28,2,74,1,01,2,1,0,0,2,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9260,3,000,28,2,78,1,01,2,1,0,0,2,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9261,3,000,30,1,11,1,01,2,1,0,0,1,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9262,3,000,30,1,11,1,01,2,1,0,0,1,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9263,3,000,30,1,13,1,01,2,1,0,0,1,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9264,3,000,30,1,13,2,01,2,1,0,0,1,12,009,064302,3008,3,9999,99999,99999999,9,99999,99999999,226110,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1234293,-080.6472815,L,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000502,32935 +9265,3,000,25,2,17,1,08,2,2,0,0,1,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9266,3,000,25,2,17,1,08,2,2,0,0,1,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9267,3,000,25,2,20,1,11,2,2,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9268,3,000,25,2,21,1,04,2,1,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9269,3,000,25,2,23,1,01,2,1,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9270,3,000,25,2,24,1,04,2,1,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9271,3,000,25,2,27,1,01,2,1,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9272,3,000,25,2,59,1,01,2,1,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9273,3,000,25,2,59,1,01,2,1,0,0,2,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9274,3,000,26,2,10,1,04,2,1,0,0,1,41,005,024100,1035,1,9999,99999,99999999,9,99999,99999999,2167001,0,0,0,0,0,38900,05,999,99999,99999999,A,01155127,90595,S,01937983,440,9,99999,99999999,+45.1647849,-122.4465405,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00503,4,99999,99999,03270,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97017 +9275,3,000,25,2,17,1,01,2,1,0,0,1,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9276,3,000,25,2,17,1,01,2,1,0,0,1,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9277,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9278,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9279,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9280,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9281,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9282,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9283,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9284,3,000,25,2,20,1,01,2,1,0,0,2,06,037,262604,5000,5,9999,99999,99999999,9,99999,99999999,888978,0,0,0,0,0,31080,33,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0524104,-118.5493289,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03774,4,99999,99999,22710,050,026,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90272 +9285,3,000,20,2,53,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9286,3,000,20,2,53,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9287,3,000,20,2,53,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9288,3,000,20,2,53,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9289,3,000,20,2,53,1,02,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9290,3,000,20,2,54,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9291,3,000,20,2,54,1,04,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9292,3,000,20,2,58,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9293,3,000,20,2,58,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9294,3,000,20,2,58,1,01,2,1,0,0,2,24,013,507703,1014,1,9999,99999,99999999,9,99999,99999999,648844,3394,0,0,3394,0,12580,08,999,99999,99999999,A,01696228,90576,N,01929683,548,5,99999,99999999,+39.5671975,-077.0286706,B,1,99999,99999,99999,9,N,N,83100,A,02390669,00400,3,99999,99999,00210,005,005,01714934,99999,99999999,9,999,99999,99999999,999999,94285,U,99999,U,07-007,21158 +9295,3,000,20,2,85,1,11,2,2,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9296,3,000,21,1,50,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9297,3,000,21,1,50,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9298,3,000,21,1,51,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9299,3,000,21,1,51,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9300,3,000,21,1,52,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9301,3,000,21,1,52,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9302,3,000,21,1,53,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9303,3,000,21,1,53,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9304,3,000,21,1,53,1,01,2,1,0,0,2,53,033,021904,1006,1,9999,99999,99999999,9,99999,99999999,31650,0,0,0,0,0,42660,01,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.7231759,-122.1616939,L,1,42644,99999,99999,9,N,N,35940,A,02411552,23303,4,99999,99999,04230,045,045,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35940,U,002560,98034 +9305,3,000,21,2,90,1,01,2,1,0,0,2,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9306,3,000,23,1,52,1,04,2,1,0,0,2,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9307,3,000,25,1,14,1,01,2,1,0,0,1,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9308,3,000,25,1,14,1,01,2,1,0,0,1,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9309,3,000,25,1,43,2,01,2,1,0,0,2,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9310,3,000,26,1,37,2,01,2,1,0,0,2,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9311,3,000,27,2,42,2,01,2,1,0,0,2,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9312,3,000,29,1,75,1,04,2,1,0,0,2,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9313,3,000,36,1,15,1,01,2,1,0,0,1,04,013,116732,3009,3,9999,99999,99999999,9,99999,99999999,59751,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3542160,-112.0936545,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9314,3,000,20,1,59,1,02,1,1,0,0,2,04,013,116732,3010,3,9999,99999,99999999,9,99999,99999999,9845,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3549819,-112.0934128,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00120,4,07080,06330,99999,027,027,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000092,85041 +9315,3,000,25,2,15,2,01,2,1,0,0,1,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9316,3,000,25,2,15,2,01,2,1,0,0,1,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9317,3,000,25,2,15,2,01,2,1,0,0,1,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9318,3,000,25,2,15,2,01,2,1,0,0,1,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9319,3,000,25,2,16,2,01,2,1,0,0,1,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9320,3,000,36,1,25,1,02,2,1,0,0,2,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9321,3,000,36,1,25,1,02,2,1,0,0,2,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9322,3,000,36,1,28,1,02,2,1,0,0,2,12,083,002503,4019,4,9999,99999,99999999,9,99999,99999999,32857,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2435982,-082.2122947,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9323,3,000,20,1,40,2,06,2,1,0,0,2,12,083,002503,4020,4,9999,99999,99999999,9,99999,99999999,14750,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2382346,-082.2123243,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9324,3,000,20,1,43,2,06,2,1,0,0,2,12,083,002503,4020,4,9999,99999,99999999,9,99999,99999999,14750,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2382346,-082.2123243,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +9325,3,000,20,2,60,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9326,3,000,20,2,60,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9327,3,000,20,2,61,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9328,3,000,20,2,61,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9329,3,000,20,2,61,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9330,3,000,20,2,61,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9331,3,000,20,2,61,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9332,3,000,20,2,61,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9333,3,000,21,1,32,2,06,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9334,3,000,21,1,37,1,01,2,1,0,0,2,51,107,611029,2007,2,9999,99999,99999999,9,99999,99999999,2943451,8622,0,0,8622,0,47900,10,999,99999,99999999,A,01480141,90400,N,01927106,548,5,99999,99999999,+38.9781137,-077.5946365,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,013,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000318,20175 +9335,3,000,34,1,51,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9336,3,000,34,1,51,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9337,3,000,34,1,51,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9338,3,000,34,1,69,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9339,3,000,34,1,70,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9340,3,000,34,1,75,1,04,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9341,3,000,34,2,21,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9342,3,000,34,2,62,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9343,3,000,34,2,63,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9344,3,000,34,2,63,1,01,2,1,0,0,2,09,015,904500,2011,2,9999,99999,99999999,9,99999,99999999,33096,0,0,0,0,0,49340,02,715,99999,99999999,N,00212801,40500,A,00213447,148,1,99999,99999999,+41.8083564,-071.8810724,L,1,99999,99999,79600,1,N,N,18780,A,02378272,20301,1,99999,99999,02070,044,029,01779780,99999,99999999,9,999,99999,99999999,999999,72868,U,99999,U,15-007,06239 +9345,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9346,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9347,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9348,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9349,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9350,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9351,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9352,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9353,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9354,5,103,37,1,32,1,01,0,1,1,1,2,47,007,953200,2003,2,9999,99999,99999999,9,99999,99999999,2183636,0,0,0,0,0,99999,04,999,99999,99999999,A,01639725,90008,N,02464209,999,6,99999,99999999,+35.7469827,-085.2592375,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,00270,031,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000309,37367 +9355,3,000,27,1,9,2,01,2,1,0,0,1,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9356,3,000,27,1,31,1,01,2,1,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9357,3,000,27,1,52,2,01,2,1,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9358,3,000,28,2,55,2,01,2,1,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9359,3,000,30,1,34,1,09,2,2,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9360,3,000,31,2,56,1,01,2,1,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9361,3,000,31,2,65,2,01,2,1,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9362,3,000,31,2,73,2,11,2,2,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9363,3,000,32,1,32,1,02,2,1,0,0,2,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9364,3,000,33,1,12,2,11,2,2,0,0,1,48,029,171915,1006,1,9999,99999,99999999,9,99999,99999999,225825,17172,0,0,17172,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4194055,-098.6826092,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9365,3,000,25,1,21,2,02,2,1,0,0,2,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9366,3,000,25,2,4,2,11,2,2,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9367,3,000,25,2,6,1,01,2,1,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9368,3,000,25,2,6,1,01,2,1,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9369,3,000,25,2,6,1,04,2,1,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9370,3,000,25,2,7,2,06,2,1,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9371,3,000,25,2,8,1,04,2,1,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9372,3,000,25,2,8,1,04,2,1,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9373,3,000,25,2,8,2,11,2,2,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9374,3,000,25,2,9,2,18,2,2,0,0,1,08,031,008389,2051,2,9999,99999,99999999,9,99999,99999999,19570,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7857774,-104.7596348,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,007,033,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031729,80249 +9375,3,000,21,1,53,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9376,3,000,21,1,53,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9377,3,000,21,1,53,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9378,3,000,21,1,53,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9379,3,000,21,1,55,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9380,3,000,21,1,56,2,18,2,2,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9381,3,000,21,1,59,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9382,3,000,21,1,60,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9383,3,000,21,1,73,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9384,3,000,21,1,73,1,01,2,1,0,0,2,36,061,006900,2001,2,9999,99999,99999999,9,99999,99999999,9930,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7315847,-074.0095792,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04121,1,99999,99999,20580,066,027,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000172,10014 +9385,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9386,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9387,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9388,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9389,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9390,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9391,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9392,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9393,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9394,5,501,38,1,19,1,09,0,2,2,5,2,44,007,012601,1044,1,9999,99999,99999999,9,99999,99999999,43625,0,0,0,0,0,39300,01,715,99999,99999999,N,01219781,66200,A,01219817,148,1,99999,99999999,+41.9186438,-071.5369451,L,1,99999,99999,77200,1,9,9,99999,9,99999999,00105,1,99999,99999,00990,053,022,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443106,02917 +9395,3,000,21,2,36,2,06,2,1,0,0,2,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9396,3,000,25,1,5,1,06,2,1,0,0,1,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9397,3,000,25,1,17,1,06,2,1,0,0,1,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9398,3,000,25,1,19,1,02,2,1,0,0,2,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9399,3,000,25,1,58,1,01,2,1,0,0,2,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9400,3,000,25,1,59,1,01,2,1,0,0,2,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9401,3,000,25,2,18,2,06,2,1,0,0,2,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9402,3,000,27,1,17,2,06,2,1,0,0,1,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9403,3,000,27,1,22,2,01,2,1,0,0,2,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9404,3,000,30,2,14,2,06,2,1,0,0,1,17,187,870500,5047,5,9999,99999,99999999,9,99999,99999999,13972,0,0,0,0,0,99999,17,999,99999,99999999,A,01785134,50023,A,00429384,999,3,99999,99999999,+40.9010786,-090.6479742,L,9,99999,99999,99999,9,N,N,50010,A,02395371,07300,2,99999,99999,00320,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,58222,U,99999,U,00MN08,61462 +9405,3,000,36,1,2,1,01,2,1,0,0,1,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9406,3,000,36,2,26,1,01,2,1,0,0,2,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9407,3,000,36,2,26,1,01,2,1,0,0,2,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9408,3,000,36,2,58,1,02,2,1,0,0,2,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9409,3,000,36,2,58,1,02,2,1,0,0,2,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9410,3,000,36,2,58,1,02,2,1,0,0,2,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9411,3,000,36,2,58,1,02,2,1,0,0,2,29,510,115700,2009,2,9999,99999,99999999,9,99999,99999999,5021,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5820308,-090.2365316,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9412,3,000,20,1,49,1,02,1,1,0,0,2,29,510,115700,2010,2,9999,99999,99999999,9,99999,99999999,4939,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5818847,-090.2353951,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9413,3,000,20,1,64,1,02,1,1,0,0,2,29,510,115700,2010,2,9999,99999,99999999,9,99999,99999999,4939,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5818847,-090.2353951,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9414,3,000,20,1,64,1,02,1,1,0,0,2,29,510,115700,2010,2,9999,99999,99999999,9,99999,99999999,4939,0,0,0,0,0,41180,01,999,99999,99999999,F,00767557,65000,F,00767557,476,4,99999,99999999,+38.5818847,-090.2353951,L,1,99999,99999,99999,9,Y,N,65000,A,00767557,02002,2,99999,99999,29280,078,005,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,16-206,63118 +9415,3,000,20,1,28,2,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9416,3,000,20,1,28,2,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9417,3,000,20,1,35,2,08,2,2,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9418,3,000,20,1,42,1,02,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9419,3,000,20,1,66,1,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9420,3,000,20,1,66,1,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9421,3,000,20,2,20,1,08,2,2,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9422,3,000,20,2,50,1,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9423,3,000,20,2,50,1,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9424,3,000,20,2,50,1,01,2,1,0,0,2,26,099,218002,1000,1,9999,99999,99999999,9,99999,99999999,1359512,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,46900,A,01626604,220,3,99999,99999999,+42.7429965,-082.7359936,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,02790,033,008,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,099104,48048 +9425,3,000,22,1,29,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9426,3,000,22,1,29,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9427,3,000,22,1,29,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9428,3,000,22,1,29,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9429,3,000,22,1,30,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9430,3,000,22,1,30,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9431,3,000,22,1,30,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9432,3,000,22,1,34,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9433,3,000,22,1,34,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9434,3,000,22,1,39,1,01,2,1,0,0,2,54,061,010601,2014,2,9999,99999,99999999,9,99999,99999999,43569,0,0,0,0,0,34060,01,999,99999,99999999,A,01550037,90983,N,01928263,390,5,99999,99999999,+39.6633965,-079.9519737,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,013,01779805,99999,99999999,9,999,99999,99999999,999999,59275,U,99999,U,000086,26505 +9435,3,000,20,2,62,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9436,3,000,20,2,62,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9437,3,000,20,2,64,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9438,3,000,20,2,64,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9439,3,000,20,2,64,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9440,3,000,20,2,64,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9441,3,000,21,1,45,2,06,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9442,3,000,22,2,45,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9443,3,000,22,2,45,1,02,2,1,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9444,3,000,25,1,24,1,12,2,2,0,0,2,37,091,950202,1047,1,9825,42274,02418704,R,99999,99999999,2413,0,0,0,0,0,99999,01,999,99999,99999999,A,01026127,94076,N,01026799,999,5,99999,99999999,+36.3879719,-076.9404217,L,9,99999,99999,99999,9,N,N,75080,A,02406906,00600,3,99999,99999,02160,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WN,27986 +9445,3,000,21,2,29,1,01,2,1,0,0,2,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9446,3,000,21,2,34,1,01,2,1,0,0,2,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9447,3,000,21,2,34,1,01,2,1,0,0,2,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9448,3,000,21,2,34,1,01,2,1,0,0,2,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9449,3,000,24,2,49,1,01,2,1,0,0,2,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9450,3,000,25,1,5,1,01,2,1,0,0,1,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9451,3,000,25,1,5,1,01,2,1,0,0,1,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9452,3,000,25,1,5,1,01,2,1,0,0,1,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9453,3,000,25,1,8,1,01,2,1,0,0,1,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9454,3,000,25,1,8,1,01,2,1,0,0,1,41,043,030802,2011,2,9999,99999,99999999,9,99999,99999999,861801,0,0,0,0,0,10540,04,999,99999,99999999,A,01135857,91666,S,01938046,440,9,99999,99999999,+44.5581083,-122.9025668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04301,4,99999,99999,07380,017,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97355 +9455,3,000,20,1,72,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9456,3,000,20,1,72,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9457,3,000,20,1,72,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9458,3,000,20,1,72,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9459,3,000,20,1,76,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9460,3,000,20,1,76,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9461,3,000,20,2,45,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9462,3,000,20,2,46,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9463,3,000,20,2,48,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9464,3,000,20,2,48,1,01,2,1,0,0,2,45,001,950100,1041,1,9999,99999,99999999,9,99999,99999999,4689838,18647,0,0,18647,0,99999,03,999,99999,99999999,A,01245666,90897,S,01938249,999,5,99999,99999999,+34.4062710,-082.3613477,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00690,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000006,29654 +9465,3,000,25,2,3,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9466,3,000,25,2,3,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9467,3,000,25,2,3,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9468,3,000,25,2,3,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9469,3,000,25,2,3,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9470,3,000,25,2,4,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9471,3,000,25,2,4,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9472,3,000,25,2,4,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9473,3,000,25,2,4,1,01,2,1,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9474,3,000,25,2,7,1,11,2,2,0,0,1,27,003,050208,4001,4,9999,99999,99999999,9,99999,99999999,311904,986,0,0,986,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2153505,-093.3172836,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000050,55304 +9475,3,000,25,2,5,1,01,2,1,0,0,1,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9476,3,000,25,2,5,1,01,2,1,0,0,1,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9477,3,000,25,2,11,1,01,2,1,0,0,1,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9478,3,000,25,2,11,1,01,2,1,0,0,1,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9479,3,000,25,2,16,1,01,2,1,0,0,1,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9480,3,000,25,2,20,1,01,2,1,0,0,2,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9481,3,000,25,2,20,1,01,2,1,0,0,2,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9482,3,000,25,2,42,1,01,2,1,0,0,2,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9483,3,000,25,2,50,1,01,2,1,0,0,2,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9484,3,000,25,2,50,1,01,2,1,0,0,2,27,153,790800,1019,1,9999,99999,99999999,9,99999,99999999,15410177,870720,0,0,870720,0,99999,07,999,99999,99999999,A,00659521,06022,A,00663596,999,4,99999,99999999,+45.8112591,-094.8882074,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,32850,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,56378 +9485,5,601,38,1,36,1,01,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9486,5,601,38,1,36,1,02,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9487,5,601,38,1,36,1,02,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9488,5,601,38,1,36,1,02,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9489,5,601,38,1,36,1,02,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9490,5,601,38,1,36,2,01,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9491,5,601,38,1,36,2,01,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9492,5,601,38,1,36,2,01,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9493,5,601,38,1,36,2,01,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9494,5,601,38,1,36,2,01,0,1,2,6,2,09,011,980000,1000,1,9999,99999,99999999,9,99999,99999999,133939,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,34250,A,00213437,278,1,99999,99999999,+41.3942132,-072.0809371,L,1,99999,99999,76450,1,N,N,16960,S,02377810,20401,1,99999,99999,01770,040,018,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-015,06340 +9495,3,000,20,2,65,1,01,2,1,0,0,2,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9496,3,000,20,2,65,1,01,2,1,0,0,2,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9497,3,000,21,2,38,2,11,2,2,0,0,2,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9498,3,000,22,2,27,1,01,2,1,0,0,2,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9499,3,000,22,2,29,1,06,2,1,0,0,2,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9500,3,000,22,2,64,1,01,2,1,0,0,2,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9501,3,000,25,1,3,1,01,2,1,0,0,1,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9502,3,000,25,1,3,1,01,2,1,0,0,1,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9503,3,000,25,1,3,1,01,2,1,0,0,1,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9504,3,000,25,1,11,1,01,2,1,0,0,1,12,009,071341,3035,3,9999,99999,99999999,9,99999,99999999,266022,0,0,0,0,0,37340,08,999,99999,99999999,A,00295749,92587,S,01935886,999,5,99999,99999999,+27.9751314,-080.6407843,L,1,99999,99999,99999,9,Y,N,54000,A,02404463,00904,3,99999,99999,00150,053,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000322,32909 +9505,3,000,21,1,37,2,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9506,3,000,21,2,37,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9507,3,000,21,2,37,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9508,3,000,21,2,37,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9509,3,000,21,2,40,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9510,3,000,21,2,40,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9511,3,000,21,2,40,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9512,3,000,21,2,43,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9513,3,000,21,2,50,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9514,3,000,21,2,50,1,01,2,1,0,0,2,46,029,954501,1022,1,9999,99999,99999999,9,99999,99999999,548432,0,0,0,0,0,47980,00,999,99999,99999999,A,01265791,69300,F,01267627,999,4,99999,99999999,+44.8815544,-097.1781756,L,2,99999,99999,99999,9,Y,N,69300,A,01267627,00300,2,99999,99999,76620,005,005,01785534,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,VTD-C4,57201 +9515,3,000,30,1,1,1,01,2,1,0,0,1,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9516,3,000,30,1,10,2,11,2,2,0,0,1,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9517,3,000,30,2,23,1,01,2,1,0,0,2,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9518,3,000,30,2,23,2,08,2,2,0,0,2,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9519,3,000,33,1,18,1,01,2,1,0,0,2,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9520,3,000,34,1,24,1,11,2,2,0,0,2,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9521,3,000,36,1,13,1,07,2,2,0,0,1,20,177,003401,2014,2,9999,99999,99999999,9,99999,99999999,89536,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1280138,-095.7305018,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9522,3,000,20,1,26,2,02,2,1,0,0,2,20,177,003401,2015,2,9999,99999,99999999,9,99999,99999999,30222,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1244164,-095.7290424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9523,3,000,20,1,26,2,02,2,1,0,0,2,20,177,003401,2015,2,9999,99999,99999999,9,99999,99999999,30222,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1244164,-095.7290424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9524,3,000,20,1,43,1,04,2,1,0,0,2,20,177,003401,2015,2,9999,99999,99999999,9,99999,99999999,30222,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,66225,A,00478472,999,4,99999,99999999,+39.1244164,-095.7290424,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,11490,050,018,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,400100,66618 +9525,3,000,20,1,65,1,01,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9526,3,000,20,1,65,1,01,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9527,3,000,20,1,65,1,01,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9528,3,000,20,2,28,1,01,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9529,3,000,20,2,32,1,09,1,2,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9530,3,000,20,2,40,1,02,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9531,3,000,20,2,40,1,02,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9532,3,000,20,2,41,1,02,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9533,3,000,20,2,41,1,02,1,1,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9534,3,000,20,2,49,2,11,1,2,0,0,2,25,017,332202,3003,3,9999,99999,99999999,9,99999,99999999,43029,2614,0,0,2614,0,14460,06,715,99999,99999999,N,00606935,09840,A,00618219,148,1,99999,99999999,+42.4992089,-071.1753127,B,1,15764,71634,71650,1,N,N,09875,S,02377997,00607,1,99999,99999,03240,138,024,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000512,01803 +9535,3,000,22,1,27,2,01,2,1,0,0,2,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9536,3,000,25,1,19,1,01,2,1,0,0,2,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9537,3,000,25,1,19,1,01,2,1,0,0,2,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9538,3,000,25,1,19,1,01,2,1,0,0,2,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9539,3,000,25,1,19,1,01,2,1,0,0,2,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9540,3,000,25,2,0,1,01,2,1,0,0,1,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9541,3,000,25,2,5,1,01,2,1,0,0,1,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9542,3,000,25,2,5,1,01,2,1,0,0,1,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9543,3,000,27,2,18,1,01,2,1,0,0,2,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9544,3,000,33,2,7,1,01,2,1,0,0,1,27,159,480300,2020,2,9999,99999,99999999,9,99999,99999999,13647,0,0,0,0,0,99999,08,999,99999,99999999,A,00659524,67504,F,02397160,999,4,99999,99999999,+46.4413854,-095.1391997,L,9,99999,99999,99999,9,N,N,67504,A,02397160,00600,2,99999,99999,00022,09A,009,00662849,99999,99999999,9,999,99999,99999999,999999,91081,U,99999,U,000105,56482 +9545,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9546,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9547,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9548,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9549,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9550,3,000,20,1,63,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9551,3,000,20,1,63,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9552,3,000,20,1,63,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9553,3,000,20,1,63,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9554,3,000,20,1,65,1,01,2,1,0,0,2,13,135,050530,4000,4,9999,99999,99999999,9,99999,99999999,530885,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9975916,-084.0535191,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01605,3,99999,99999,02550,101,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000097,30043 +9555,3,000,20,2,81,1,01,1,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9556,3,000,20,2,81,1,01,1,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9557,3,000,20,2,81,1,01,1,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9558,3,000,20,2,81,1,01,1,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9559,3,000,20,2,83,1,01,1,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9560,3,000,20,1,35,1,04,2,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9561,3,000,20,1,35,1,04,2,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9562,3,000,20,1,57,1,01,2,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9563,3,000,20,1,58,1,01,2,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9564,3,000,20,1,83,1,01,2,1,0,0,2,30,111,001404,2009,2,9999,99999,99999999,9,99999,99999999,13002,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,91995,S,01940656,999,8,99999,99999999,+45.7793502,-108.6603744,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00700,4,03870,03900,99999,053,027,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0053.1,59106 +9565,3,000,20,1,61,1,02,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9566,3,000,20,1,77,1,01,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9567,3,000,20,1,77,1,01,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9568,3,000,20,1,79,1,01,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9569,3,000,20,2,36,1,02,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9570,3,000,20,2,36,1,02,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9571,3,000,20,2,37,1,02,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9572,3,000,20,2,52,1,02,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9573,3,000,20,2,60,1,01,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9574,3,000,20,2,60,1,01,1,1,0,0,2,26,081,013600,1019,1,9999,99999,99999999,9,99999,99999999,39773,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.9117969,-085.6683842,L,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16110,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081231,49548 +9575,3,000,25,2,22,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9576,3,000,25,2,24,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9577,3,000,25,2,24,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9578,3,000,25,2,24,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9579,3,000,25,2,54,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9580,3,000,27,1,10,1,08,2,2,0,0,1,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9581,3,000,27,1,14,1,01,2,1,0,0,1,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9582,3,000,27,1,14,1,01,2,1,0,0,1,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9583,3,000,29,2,40,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9584,3,000,33,1,20,1,01,2,1,0,0,2,53,063,013102,4000,4,9999,99999,99999999,9,99999,99999999,120698,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6555612,-117.1348814,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26302,4,99999,99999,01110,004,004,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,73882,U,004027,99016 +9585,3,000,25,1,14,1,02,2,1,0,0,1,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9586,3,000,25,1,16,1,02,2,1,0,0,1,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9587,3,000,25,1,17,1,09,2,2,0,0,1,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9588,3,000,25,1,18,1,02,2,1,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9589,3,000,25,1,18,1,02,2,1,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9590,3,000,25,1,19,1,02,2,1,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9591,3,000,25,1,19,2,11,2,2,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9592,3,000,25,1,19,2,11,2,2,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9593,3,000,25,1,60,1,02,2,1,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9594,3,000,25,1,60,1,02,2,1,0,0,2,12,095,014607,2016,2,9999,99999,99999999,9,99999,99999999,83091,0,0,0,0,0,36740,10,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4845220,-081.4460564,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09506,3,99999,99999,01440,046,011,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00615A,32811 +9595,3,000,25,2,25,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9596,3,000,25,2,25,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9597,3,000,25,2,25,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9598,3,000,25,2,25,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9599,3,000,25,2,25,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9600,3,000,25,2,43,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9601,3,000,25,2,44,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9602,3,000,25,2,44,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9603,3,000,25,2,44,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9604,3,000,29,2,46,1,01,2,1,0,0,2,42,003,425000,3000,3,9999,99999,99999999,9,99999,99999999,48181,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,24160,F,01214795,430,2,99999,99999999,+40.5003973,-079.9452518,L,1,99999,99999,99999,9,N,N,24160,A,01214795,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,002111,15223 +9605,3,000,25,1,22,1,04,2,1,0,0,2,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9606,3,000,25,1,22,1,04,2,1,0,0,2,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9607,3,000,25,1,37,1,02,2,1,0,0,2,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9608,3,000,25,1,37,1,02,2,1,0,0,2,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9609,3,000,25,2,1,2,01,2,1,0,0,1,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9610,3,000,25,2,1,2,01,2,1,0,0,1,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9611,3,000,25,2,1,2,01,2,1,0,0,1,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9612,3,000,25,2,2,2,11,2,2,0,0,1,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9613,3,000,25,2,2,2,11,2,2,0,0,1,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9614,3,000,25,2,3,1,01,2,1,0,0,1,17,177,001000,2003,2,9999,99999,99999999,9,99999,99999999,158349,0,0,0,0,0,23300,17,999,99999,99999999,A,01785076,27897,B,00429030,466,3,99999,99999999,+42.2955367,-089.6616435,L,2,99999,99999,99999,9,Y,N,27884,A,02394821,19500,2,99999,99999,15900,089,045,01779784,99999,99999999,9,999,99999,99999999,999999,31681,U,99999,U,001817,61032 +9615,3,000,20,1,30,2,11,2,2,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9616,3,000,20,1,30,2,11,2,2,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9617,3,000,20,1,30,2,11,2,2,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9618,3,000,20,1,31,1,01,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9619,3,000,20,1,31,1,01,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9620,3,000,20,1,32,1,02,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9621,3,000,20,1,33,1,01,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9622,3,000,20,1,33,1,01,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9623,3,000,20,1,34,1,01,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9624,3,000,20,1,34,1,01,2,1,0,0,2,51,059,421101,3002,3,9999,99999,99999999,9,99999,99999999,469540,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94207,N,01927372,548,5,99999,99999999,+38.7450848,-077.1742919,L,1,47894,99999,99999,9,N,N,29552,S,02389809,05906,3,99999,99999,01260,043,039,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000427,22315 +9625,3,000,20,2,29,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9626,3,000,20,2,29,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9627,3,000,20,2,29,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9628,3,000,20,2,32,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9629,3,000,20,2,40,1,04,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9630,3,000,20,2,44,1,04,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9631,3,000,20,2,50,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9632,3,000,20,2,50,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9633,3,000,20,2,50,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9634,3,000,20,2,53,1,01,1,1,0,0,2,36,029,010804,3003,3,9999,99999,99999999,9,99999,99999999,1488718,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,15011,A,00978817,160,2,99999,99999999,+42.8869447,-078.7382592,L,1,99999,99999,99999,9,Y,N,15000,S,02389308,01204,1,99999,99999,07230,143,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000473,14227 +9635,3,000,20,1,69,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9636,3,000,20,1,69,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9637,3,000,20,1,69,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9638,3,000,20,1,69,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9639,3,000,20,1,69,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9640,3,000,20,1,70,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9641,3,000,20,1,72,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9642,3,000,20,1,73,1,01,1,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9643,3,000,20,1,20,1,01,2,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9644,3,000,20,1,21,1,01,2,1,0,0,2,06,061,020402,1011,1,9999,99999,99999999,9,99999,99999999,70419,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,90160,S,01935020,472,9,99999,99999999,+38.8919476,-121.0651360,L,1,99999,99999,99999,9,N,N,03204,A,02409754,06103,4,03480,30750,99999,005,001,01779778,99999,99999999,9,999,99999,99999999,999999,04130,U,99999,U,,95603 +9645,3,000,20,2,32,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9646,3,000,20,2,32,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9647,3,000,20,2,32,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9648,3,000,20,2,33,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9649,3,000,20,2,33,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9650,3,000,20,2,34,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9651,3,000,20,2,34,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9652,3,000,20,2,34,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9653,3,000,20,2,48,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9654,3,000,20,2,48,1,01,2,1,0,0,2,39,135,470102,1058,1,9999,99999,99999999,9,99999,99999999,113263,0,0,0,0,0,99999,08,999,99999,99999999,A,01074080,72964,A,01086854,999,3,99999,99999999,+39.6325212,-084.6493983,L,9,99999,99999,99999,9,N,N,11024,A,02397539,02200,2,99999,99999,04928,043,005,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,068ABN,45311 +9655,3,000,29,1,66,1,04,2,1,0,0,2,34,001,010300,2011,2,9999,99999,99999999,9,99999,99999999,1015497,19901,0,0,19901,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4082135,-074.4945046,B,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9656,3,000,30,1,18,2,05,2,1,0,0,2,34,001,010300,2011,2,9999,99999,99999999,9,99999,99999999,1015497,19901,0,0,19901,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4082135,-074.4945046,B,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9657,3,000,33,1,29,2,06,2,1,0,0,2,34,001,010300,2011,2,9999,99999,99999999,9,99999,99999999,1015497,19901,0,0,19901,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4082135,-074.4945046,B,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9658,3,000,20,1,36,2,02,1,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9659,3,000,20,1,61,1,01,2,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9660,3,000,20,1,61,1,01,2,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9661,3,000,20,1,61,1,01,2,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9662,3,000,20,1,61,1,01,2,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9663,3,000,20,1,61,1,01,2,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9664,3,000,20,1,79,1,01,2,1,0,0,2,34,001,010300,2013,2,9999,99999,99999999,9,99999,99999999,157972,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,00100,F,00885134,428,2,99999,99999999,+39.4149578,-074.4979245,L,1,99999,99999,99999,9,N,N,00100,A,00885134,00101,1,99999,99999,00660,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,005201,08201 +9665,3,000,30,1,4,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9666,3,000,30,1,4,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9667,3,000,30,1,13,2,02,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9668,3,000,30,1,16,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9669,3,000,30,2,0,1,01,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9670,3,000,30,2,8,2,01,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9671,3,000,30,2,10,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9672,3,000,30,2,10,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9673,3,000,30,2,10,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9674,3,000,30,2,10,2,06,2,1,0,0,1,48,201,541701,2002,2,9999,99999,99999999,9,99999,99999999,208301,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8325957,-095.6494634,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000650,77084 +9675,3,000,25,2,4,1,11,2,2,0,0,1,02,122,000300,1181,1,9999,99999,99999999,9,17140,02418878,800327,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3379946,-149.3505169,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9676,3,000,25,2,10,1,01,2,1,0,0,1,02,122,000300,1181,1,9999,99999,99999999,9,17140,02418878,800327,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3379946,-149.3505169,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9677,3,000,30,1,0,1,11,2,2,0,0,1,02,122,000300,1181,1,9999,99999,99999999,9,17140,02418878,800327,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3379946,-149.3505169,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9678,3,000,20,1,35,1,01,2,1,0,0,2,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9679,3,000,20,1,37,1,01,2,1,0,0,2,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9680,3,000,20,1,37,1,01,2,1,0,0,2,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9681,3,000,20,1,37,1,01,2,1,0,0,2,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9682,3,000,20,2,51,1,01,2,1,0,0,2,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9683,3,000,20,2,51,1,01,2,1,0,0,2,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9684,3,000,25,1,7,1,01,2,1,0,0,1,02,122,000300,1182,1,9999,99999,99999999,9,17140,02418878,204332,0,0,0,0,0,99999,00,999,99999,99999999,A,01419972,68610,S,01939944,999,9,99999,99999999,+60.3623668,-149.3491630,L,9,99999,99999,99999,9,N,N,64240,S,02419191,00200,4,99999,99999,00390,029,00O,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,29-140,99664 +9685,3,000,25,1,10,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9686,3,000,25,1,11,1,23,2,3,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9687,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9688,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9689,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9690,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9691,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9692,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9693,3,000,25,1,17,1,01,2,1,0,0,1,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9694,3,000,25,1,20,1,01,2,1,0,0,2,36,119,005500,3015,3,9999,99999,99999999,9,99999,99999999,9616,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,57012,A,00979349,408,2,99999,99999999,+40.8979498,-073.8128478,L,1,35614,99999,99999,9,N,N,57023,A,02391056,03113,1,99999,99999,22680,088,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000524,10803 +9695,3,000,36,2,40,1,01,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9696,3,000,36,2,40,1,01,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9697,3,000,36,2,45,1,01,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9698,3,000,36,2,49,2,06,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9699,3,000,36,2,58,1,01,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9700,3,000,36,2,58,1,01,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9701,3,000,36,2,58,1,01,2,1,0,0,2,36,119,010500,3002,3,9999,99999,99999999,9,99999,99999999,32461,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0139177,-073.8612398,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9702,3,000,20,1,77,1,01,1,1,0,0,2,36,119,010500,4001,4,9999,99999,99999999,9,99999,99999999,12000,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0128705,-073.8656499,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9703,3,000,20,1,77,1,01,1,1,0,0,2,36,119,010500,4001,4,9999,99999,99999999,9,99999,99999999,12000,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0128705,-073.8656499,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9704,3,000,20,1,77,1,01,1,1,0,0,2,36,119,010500,4001,4,9999,99999,99999999,9,99999,99999999,12000,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,30367,A,00979017,408,2,99999,99999999,+41.0128705,-073.8656499,L,1,35614,99999,99999,9,N,N,20698,A,02391643,03111,1,99999,99999,09120,092,035,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000106,10522 +9705,3,000,31,2,74,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9706,3,000,31,2,74,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9707,3,000,33,2,45,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9708,3,000,33,2,45,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9709,3,000,33,2,47,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9710,3,000,33,2,49,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9711,3,000,33,2,49,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9712,3,000,34,1,30,2,06,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9713,3,000,34,1,38,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9714,3,000,34,1,38,1,04,2,1,0,0,2,06,059,099204,2003,2,9999,99999,99999999,9,99999,99999999,19619,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.7406407,-117.9474366,L,1,11244,99999,99999,9,N,N,84550,A,02412236,05912,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92683 +9715,3,000,25,2,22,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9716,3,000,25,2,22,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9717,3,000,25,2,22,1,04,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9718,3,000,25,2,23,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9719,3,000,25,2,23,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9720,3,000,25,2,23,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9721,3,000,25,2,23,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9722,3,000,27,2,15,1,01,2,1,0,0,1,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9723,3,000,27,2,15,1,01,2,1,0,0,1,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9724,3,000,27,2,22,1,01,2,1,0,0,2,37,179,021018,2018,2,9999,99999,99999999,9,99999,99999999,677732,13751,0,0,13751,0,16740,09,999,99999,99999999,A,01008590,92836,N,01027248,172,5,99999,99999999,+35.0180703,-080.7277398,B,1,99999,99999,99999,9,N,N,71680,A,02406850,05401,3,99999,99999,04620,068,035,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000041,28104 +9725,5,301,37,1,78,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9726,5,301,37,1,78,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9727,5,301,37,1,78,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9728,5,301,37,1,79,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9729,5,301,37,1,79,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9730,5,301,37,1,79,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9731,5,301,37,1,80,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9732,5,301,37,1,81,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9733,5,301,37,1,81,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9734,5,301,37,1,81,1,01,0,1,1,3,2,38,017,000802,3005,3,9999,99999,99999999,9,99999,99999999,25836,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,25700,F,01036030,244,4,99999,99999999,+46.8723874,-096.7997110,L,1,99999,99999,99999,9,Y,N,25700,A,01036030,00600,2,99999,99999,06780,021,021,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,021-01,58103 +9735,3,000,25,1,13,2,01,2,1,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9736,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9737,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9738,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9739,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9740,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9741,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9742,3,000,25,1,13,2,11,2,2,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9743,3,000,25,1,14,1,01,2,1,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9744,3,000,25,1,15,2,01,2,1,0,0,1,48,029,171913,2008,2,9999,99999,99999999,9,99999,99999999,63633,0,0,0,0,0,41700,23,999,99999,99999999,A,01383800,93414,S,02628573,484,7,99999,99999999,+29.4269776,-098.6718948,L,1,99999,99999,99999,9,Y,N,65000,A,02411774,05908,3,99999,99999,33120,124,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001076,78245 +9745,3,000,20,2,69,1,02,1,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9746,3,000,20,2,69,1,02,1,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9747,3,000,25,1,7,1,01,2,1,0,0,1,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9748,3,000,29,2,84,1,02,2,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9749,3,000,32,1,71,1,02,2,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9750,3,000,32,1,72,1,02,2,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9751,3,000,33,2,66,1,02,2,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9752,3,000,33,2,66,1,02,2,1,0,0,2,13,099,090500,2015,2,9999,99999,99999999,9,99999,99999999,191467,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1368069,-085.0189268,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9753,3,000,20,1,77,1,02,1,1,0,0,2,13,099,090500,2016,2,9999,99999,99999999,9,99999,99999999,5288808,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1237740,-085.0161391,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9754,3,000,20,1,20,1,02,2,1,0,0,2,13,099,090500,2016,2,9999,99999,99999999,9,99999,99999999,5288808,0,0,0,0,0,99999,02,999,99999,99999999,A,00345041,91584,S,01936334,999,5,99999,99999999,+31.1237740,-085.0161391,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,01920,151,011,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000CS,39861 +9755,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9756,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9757,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9758,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9759,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9760,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9761,3,000,21,2,54,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9762,3,000,21,2,64,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9763,3,000,21,2,64,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9764,3,000,21,2,67,1,01,2,1,0,0,2,26,081,010903,1007,1,9999,99999,99999999,9,99999,99999999,2450350,3260,0,0,3260,0,24340,03,999,99999,99999999,A,01622983,13080,A,01626029,266,3,99999,99999999,+43.1043786,-085.5155753,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01004,2,99999,99999,30030,073,028,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,081040,49341 +9765,3,000,25,2,12,2,01,2,1,0,0,1,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9766,3,000,25,2,12,2,01,2,1,0,0,1,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9767,3,000,25,2,16,1,01,2,1,0,0,1,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9768,3,000,25,2,16,1,01,2,1,0,0,1,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9769,3,000,25,2,18,1,01,2,1,0,0,2,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9770,3,000,25,2,27,2,06,2,1,0,0,2,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9771,3,000,25,2,38,1,01,2,1,0,0,2,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9772,3,000,27,1,19,1,01,2,1,0,0,2,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9773,3,000,27,1,19,1,01,2,1,0,0,2,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9774,3,000,27,1,20,1,04,2,1,0,0,2,55,131,420106,1002,1,9999,99999,99999999,9,99999,99999999,84661,0,0,0,0,0,33340,05,999,99999,99999999,A,01581125,85350,F,01584399,376,3,99999,99999999,+43.4408678,-088.1975718,L,1,99999,99999,99999,9,N,N,85350,A,01584399,02600,2,99999,99999,16290,058,020,01779806,99999,99999999,9,999,99999,99999999,999999,93916,U,99999,U,006404,53090 +9775,3,000,20,1,46,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9776,3,000,20,1,46,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9777,3,000,20,1,46,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9778,3,000,20,1,46,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9779,3,000,20,1,48,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9780,3,000,20,1,65,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9781,3,000,20,1,65,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9782,3,000,20,1,65,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9783,3,000,20,1,65,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9784,3,000,20,1,65,1,01,2,1,0,0,2,36,029,014209,2014,2,9999,99999,99999999,9,99999,99999999,18081,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.9162411,-078.6749709,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000661,14086 +9785,3,000,21,2,64,1,01,2,1,0,0,2,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9786,3,000,21,2,64,1,01,2,1,0,0,2,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9787,3,000,21,2,67,1,01,2,1,0,0,2,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9788,3,000,21,2,70,1,01,2,1,0,0,2,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9789,3,000,25,1,6,1,01,2,1,0,0,1,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9790,3,000,25,1,12,1,01,2,1,0,0,1,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9791,3,000,25,1,12,1,01,2,1,0,0,1,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9792,3,000,25,1,12,1,01,2,1,0,0,1,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9793,3,000,25,1,13,1,01,2,1,0,0,1,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9794,3,000,25,1,14,1,01,2,1,0,0,1,49,005,000301,1034,1,9999,99999,99999999,9,99999,99999999,851309,53058,0,0,53058,0,30860,01,999,99999,99999999,A,01448017,93096,S,01939416,999,8,99999,99999999,+41.8595813,-111.8925163,B,1,99999,99999,99999,9,N,N,01090,A,02412359,05000,4,99999,99999,00120,003,025,01455989,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,AMA0I0,84335 +9795,3,000,20,2,36,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9796,3,000,20,2,36,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9797,3,000,20,2,36,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9798,3,000,20,2,36,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9799,3,000,20,2,38,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9800,3,000,20,2,38,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9801,3,000,20,2,38,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9802,3,000,20,2,41,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9803,3,000,20,2,41,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9804,3,000,20,2,41,1,01,2,1,0,0,2,55,025,001804,2000,2,9999,99999,99999999,9,99999,99999999,20393,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0860090,-089.3730826,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02101,2,99999,99999,08520,076,026,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001114,53703 +9805,3,000,21,1,68,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9806,3,000,21,1,68,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9807,3,000,21,1,68,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9808,3,000,21,1,68,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9809,3,000,21,1,90,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9810,3,000,21,2,65,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9811,3,000,21,2,65,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9812,3,000,21,2,66,1,01,2,1,0,0,2,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9813,3,000,25,1,6,1,01,2,1,0,0,1,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9814,3,000,25,1,8,1,01,2,1,0,0,1,39,123,051100,3008,3,9999,99999,99999999,9,99999,99999999,993100,0,0,0,0,0,45780,05,999,99999,99999999,A,01074074,01322,A,01086754,534,3,99999,99999999,+41.5923450,-083.4051020,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,2,99999,99999,04894,089,002,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,062AAO,43447 +9815,3,000,22,2,25,1,01,2,1,0,0,2,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9816,3,000,24,1,30,1,01,2,1,0,0,2,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9817,3,000,25,1,0,1,01,2,1,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9818,3,000,25,1,0,1,01,2,1,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9819,3,000,25,1,0,1,01,2,1,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9820,3,000,25,1,0,1,08,2,2,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9821,3,000,25,1,0,1,08,2,2,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9822,3,000,25,1,0,1,20,2,2,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9823,3,000,25,1,2,1,01,2,1,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9824,3,000,25,1,2,1,01,2,1,0,0,1,55,009,021304,1009,1,9999,99999,99999999,9,99999,99999999,123774,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,03425,F,01582725,267,3,99999,99999999,+44.4770139,-088.0858488,L,1,99999,99999,99999,9,N,N,03425,A,01582725,00502,2,99999,99999,00540,004,002,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000284,54304 +9825,3,000,21,1,49,1,04,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9826,3,000,21,1,49,1,04,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9827,3,000,21,1,49,1,04,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9828,3,000,21,1,69,1,04,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9829,3,000,21,2,64,2,06,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9830,3,000,21,2,64,2,06,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9831,3,000,21,2,64,2,06,2,1,0,0,2,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9832,3,000,25,1,13,1,04,2,1,0,0,1,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9833,3,000,25,1,13,1,04,2,1,0,0,1,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9834,3,000,25,1,13,1,04,2,1,0,0,1,06,075,026003,2006,2,9999,99999,99999999,9,99999,99999999,10602,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,91964,S,02804909,488,9,99999,99999999,+37.7175295,-122.4267984,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07507,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94112 +9835,3,000,25,1,23,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9836,3,000,25,1,23,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9837,3,000,25,1,23,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9838,3,000,25,1,24,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9839,3,000,25,1,40,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9840,3,000,25,1,40,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9841,3,000,25,1,40,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9842,3,000,25,1,40,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9843,3,000,25,1,52,2,06,2,1,0,0,2,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9844,3,000,25,2,0,2,06,2,1,0,0,1,06,039,000603,3004,3,9999,99999,99999999,9,99999,99999999,22334,0,0,0,0,0,31460,16,999,99999,99999999,A,00277284,91830,S,01935188,260,9,99999,99999999,+36.9796270,-120.0489507,L,1,99999,99999,99999,9,Y,N,45022,A,02410906,03900,4,99999,99999,23340,005,012,01779778,99999,99999999,9,999,99999,99999999,999999,52984,U,99999,U,,93638 +9845,3,000,20,2,74,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9846,3,000,21,1,42,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9847,3,000,21,1,63,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9848,3,000,21,1,63,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9849,3,000,21,1,72,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9850,3,000,21,1,72,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9851,3,000,21,1,72,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9852,3,000,21,1,76,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9853,3,000,21,1,76,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9854,3,000,21,1,76,1,01,2,1,0,0,2,32,023,960405,1022,1,9999,99999,99999999,9,99999,99999999,455605,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1436327,-115.9618312,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,66943,U,99999,U,000029,89048 +9855,3,000,25,2,11,1,09,2,2,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9856,3,000,25,2,12,1,01,2,1,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9857,3,000,25,2,12,1,01,2,1,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9858,3,000,25,2,12,1,01,2,1,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9859,3,000,25,2,12,1,01,2,1,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9860,3,000,25,2,12,1,01,2,1,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9861,3,000,25,2,16,2,01,2,1,0,0,1,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9862,3,000,25,2,56,1,01,2,1,0,0,2,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9863,3,000,25,2,58,1,01,2,1,0,0,2,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9864,3,000,25,2,58,1,01,2,1,0,0,2,36,029,009402,4001,4,9999,99999,99999999,9,99999,99999999,62426,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9724080,-078.7793421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,02920,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000025,14226 +9865,3,000,20,1,35,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9866,3,000,20,1,35,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9867,3,000,20,1,35,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9868,3,000,20,1,35,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9869,3,000,20,1,35,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9870,3,000,20,1,35,2,11,2,2,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9871,3,000,20,1,35,2,11,2,2,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9872,3,000,20,1,38,2,11,2,2,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9873,3,000,20,1,56,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9874,3,000,20,1,56,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +9875,3,000,21,2,74,1,01,2,1,0,0,2,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9876,3,000,21,2,74,1,01,2,1,0,0,2,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9877,3,000,25,1,10,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9878,3,000,25,1,10,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9879,3,000,25,1,10,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9880,3,000,25,1,16,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9881,3,000,25,1,32,1,11,2,2,0,0,2,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9882,3,000,25,2,14,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9883,3,000,25,2,17,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9884,3,000,25,2,17,1,01,2,1,0,0,1,37,061,090503,4007,4,9999,99999,99999999,9,99999,99999999,1539643,1000,0,0,1000,0,99999,07,999,99999,99999999,A,01026132,91820,N,01026645,999,5,99999,99999999,+34.9799032,-077.7025862,B,9,99999,99999,99999,9,N,N,53580,S,02628649,03900,3,99999,99999,01200,004,010,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BEUL,28572 +9885,3,000,25,1,19,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9886,3,000,25,1,19,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9887,3,000,25,1,19,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9888,3,000,25,1,23,2,03,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9889,3,000,25,1,25,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9890,3,000,25,1,25,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9891,3,000,25,1,25,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9892,3,000,25,1,27,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9893,3,000,25,1,27,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9894,3,000,25,1,28,1,04,2,1,0,0,2,06,037,603302,2010,2,9999,99999,99999999,9,99999,99999999,7082,0,0,0,0,0,31080,43,999,99999,99999999,A,00277283,91400,S,01935145,348,9,99999,99999999,+33.8739606,-118.3062446,L,1,31084,99999,99999,9,Y,N,28168,A,02410570,03758,4,99999,99999,22710,066,035,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90248 +9895,3,000,20,1,43,1,02,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9896,3,000,20,2,47,1,01,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9897,3,000,20,2,47,1,01,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9898,3,000,20,2,47,1,01,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9899,3,000,20,2,47,1,01,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9900,3,000,21,2,49,1,04,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9901,3,000,21,2,49,1,04,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9902,3,000,21,2,50,1,04,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9903,3,000,21,2,50,1,04,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9904,3,000,21,2,56,1,04,2,1,0,0,2,34,007,603601,2016,2,9999,99999,99999999,9,99999,99999999,26266,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.8836276,-075.0200343,L,1,15804,99999,99999,9,N,N,01990,S,02389152,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043010,08034 +9905,3,000,25,1,22,2,01,2,1,0,0,2,13,277,960302,3024,3,9999,99999,99999999,9,99999,99999999,15332,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4667013,-083.5075399,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9906,3,000,27,1,25,1,01,2,1,0,0,2,13,277,960302,3024,3,9999,99999,99999999,9,99999,99999999,15332,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4667013,-083.5075399,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9907,3,000,27,1,25,1,01,2,1,0,0,2,13,277,960302,3024,3,9999,99999,99999999,9,99999,99999999,15332,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4667013,-083.5075399,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9908,3,000,28,2,78,1,07,2,2,0,0,2,13,277,960302,3024,3,9999,99999,99999999,9,99999,99999999,15332,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4667013,-083.5075399,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9909,3,000,30,1,22,1,04,2,1,0,0,2,13,277,960302,3024,3,9999,99999,99999999,9,99999,99999999,15332,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4667013,-083.5075399,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9910,3,000,20,2,55,1,01,1,1,0,0,2,13,277,960302,3025,3,9999,99999,99999999,9,99999,99999999,8748,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4661611,-083.5067572,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9911,3,000,20,2,55,1,01,1,1,0,0,2,13,277,960302,3025,3,9999,99999,99999999,9,99999,99999999,8748,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4661611,-083.5067572,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9912,3,000,25,1,5,1,01,2,1,0,0,1,13,277,960302,3025,3,9999,99999,99999999,9,99999,99999999,8748,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4661611,-083.5067572,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9913,3,000,25,1,18,1,01,2,1,0,0,2,13,277,960302,3025,3,9999,99999,99999999,9,99999,99999999,8748,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4661611,-083.5067572,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9914,3,000,25,1,18,1,01,2,1,0,0,2,13,277,960302,3025,3,9999,99999,99999999,9,99999,99999999,8748,0,0,0,0,0,45700,08,999,99999,99999999,A,00344090,93036,S,01936588,999,5,99999,99999999,+31.4661611,-083.5067572,L,2,99999,99999,99999,9,Y,N,76476,A,02405590,04200,3,99999,99999,04980,170,013,01705317,99999,99999999,9,999,99999,99999999,999999,87625,U,99999,U,000001,31794 +9915,3,000,21,2,69,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9916,3,000,21,2,69,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9917,3,000,21,2,69,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9918,3,000,21,2,69,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9919,3,000,21,2,69,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9920,3,000,21,2,69,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9921,3,000,21,2,69,2,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9922,3,000,21,2,70,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9923,3,000,21,2,70,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9924,3,000,21,2,70,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +9925,5,801,38,1,71,1,01,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9926,5,801,38,2,41,1,02,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9927,5,801,38,2,42,1,02,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9928,5,801,38,2,43,1,01,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9929,5,801,38,2,46,1,02,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9930,5,801,38,2,65,1,01,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9931,5,801,38,2,67,1,02,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9932,5,801,38,2,72,1,02,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9933,5,801,38,2,73,1,01,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9934,5,801,38,2,73,1,01,0,1,2,7,2,42,101,025500,2012,2,9999,99999,99999999,9,99999,99999999,12016,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0619436,-075.1817024,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03216,1,99999,99999,18990,200,004,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002224,19119 +9935,3,000,28,1,38,2,06,2,1,0,0,2,46,005,957000,3039,3,9999,99999,99999999,9,99999,99999999,9287,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3636441,-098.2352588,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9936,3,000,30,1,0,2,06,2,1,0,0,1,46,005,957000,3039,3,9999,99999,99999999,9,99999,99999999,9287,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3636441,-098.2352588,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9937,3,000,30,1,0,2,06,2,1,0,0,1,46,005,957000,3039,3,9999,99999,99999999,9,99999,99999999,9287,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3636441,-098.2352588,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9938,3,000,30,1,5,2,06,2,1,0,0,1,46,005,957000,3039,3,9999,99999,99999999,9,99999,99999999,9287,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3636441,-098.2352588,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9939,3,000,20,1,66,1,04,2,1,0,0,2,46,005,957000,3040,3,9999,99999,99999999,9,99999,99999999,8708,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3630540,-098.2352718,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9940,3,000,25,1,7,1,01,2,1,0,0,1,46,005,957000,3040,3,9999,99999,99999999,9,99999,99999999,8708,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3630540,-098.2352718,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9941,3,000,25,1,10,1,01,2,1,0,0,1,46,005,957000,3040,3,9999,99999,99999999,9,99999,99999999,8708,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3630540,-098.2352718,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9942,3,000,20,1,50,1,02,1,1,0,0,2,46,005,957000,3041,3,9999,99999,99999999,9,99999,99999999,8462,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3630706,-098.2369672,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9943,3,000,20,1,50,1,02,1,1,0,0,2,46,005,957000,3041,3,9999,99999,99999999,9,99999,99999999,8462,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3630706,-098.2369672,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9944,3,000,20,1,50,1,02,1,1,0,0,2,46,005,957000,3041,3,9999,99999,99999999,9,99999,99999999,8462,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3630706,-098.2369672,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,0VTD-1,57350 +9945,3,000,20,1,83,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9946,3,000,20,1,84,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9947,3,000,20,2,31,1,11,2,2,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9948,3,000,20,2,31,1,11,2,2,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9949,3,000,20,2,41,1,02,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9950,3,000,20,2,49,1,08,2,2,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9951,3,000,20,2,49,1,08,2,2,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9952,3,000,20,2,52,2,06,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9953,3,000,20,2,56,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9954,3,000,20,2,56,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +9955,3,000,20,1,31,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9956,3,000,20,1,48,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9957,3,000,20,1,48,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9958,3,000,20,1,49,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9959,3,000,20,1,49,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9960,3,000,20,1,49,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9961,3,000,20,1,49,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9962,3,000,20,2,48,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9963,3,000,20,2,48,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9964,3,000,20,2,51,1,01,2,1,0,0,2,01,093,964702,1030,1,9999,99999,99999999,9,99999,99999999,2587031,16990,0,0,16990,0,99999,04,999,99999,99999999,A,00161573,93492,S,00165883,999,6,99999,99999999,+33.9710815,-087.8131487,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02310,017,006,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,35594 +9965,3,000,20,1,29,1,01,2,1,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9966,3,000,20,1,33,2,11,2,2,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9967,3,000,20,1,35,2,01,2,1,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9968,3,000,20,1,35,2,01,2,1,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9969,3,000,20,1,36,2,01,2,1,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9970,3,000,20,1,37,2,01,2,1,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9971,3,000,20,1,45,2,11,2,2,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9972,3,000,20,1,47,2,11,2,2,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9973,3,000,20,1,47,2,11,2,2,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9974,3,000,20,1,54,1,02,2,1,0,0,2,36,071,011302,3006,3,9999,99999,99999999,9,99999,99999999,39966,0,0,0,0,0,39100,18,999,99999,99999999,A,00974134,77992,A,00979592,408,2,99999,99999999,+41.4576576,-074.3946409,L,1,99999,99999,99999,9,N,N,46349,S,02389465,02902,1,99999,99999,19320,100,042,01779796,99999,99999999,9,999,99999,99999999,999999,56899,U,99999,U,000259,10940 +9975,3,000,21,2,46,1,01,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9976,3,000,21,2,46,1,01,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9977,3,000,21,2,46,1,01,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9978,3,000,21,2,48,1,04,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9979,3,000,21,2,48,1,04,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9980,3,000,21,2,48,1,04,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9981,3,000,21,2,48,1,04,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9982,3,000,21,2,48,1,04,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9983,3,000,21,2,49,1,01,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9984,3,000,21,2,55,1,04,2,1,0,0,2,06,037,554900,3004,3,9999,99999,99999999,9,99999,99999999,46532,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.8602974,-118.0804932,L,1,31084,99999,99999,9,N,N,02896,A,02409735,03764,4,99999,99999,01620,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90701 +9985,3,000,25,1,25,1,01,2,1,0,0,2,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9986,3,000,25,1,25,1,01,2,1,0,0,2,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9987,3,000,25,1,48,1,01,2,1,0,0,2,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9988,3,000,25,1,49,1,01,2,1,0,0,2,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9989,3,000,25,1,49,1,01,2,1,0,0,2,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9990,3,000,25,1,49,1,01,2,1,0,0,2,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9991,3,000,25,2,1,1,01,2,1,0,0,1,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9992,3,000,25,2,1,1,01,2,1,0,0,1,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9993,3,000,25,2,1,1,01,2,1,0,0,1,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9994,3,000,25,2,1,1,01,2,1,0,0,1,47,179,061302,3019,3,9999,99999,99999999,9,99999,99999999,84935,0,0,0,0,0,27740,01,999,99999,99999999,A,01639797,90370,N,02463983,304,6,99999,99999999,+36.3802945,-082.3757446,L,1,99999,99999,99999,9,Y,N,38320,A,02404808,01201,3,99999,99999,02130,006,003,01325873,99999,99999999,9,999,99999,99999999,999999,43210,U,99999,U,009324,37601 +9995,3,000,25,1,13,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +9996,3,000,25,1,14,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +9997,3,000,25,1,14,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +9998,3,000,25,1,14,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +9999,3,000,25,1,15,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +10000,3,000,25,1,15,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +10001,3,000,25,1,15,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +10002,3,000,25,1,15,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +10003,3,000,25,1,15,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +10004,3,000,25,1,15,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +10005,3,000,30,1,9,2,01,2,1,0,0,1,40,055,967200,2023,2,5720,40025,02418654,R,99999,99999999,6093,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8821575,-099.5022207,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10006,3,000,20,1,30,1,01,2,1,0,0,2,40,055,967200,2025,2,5720,40025,02418654,R,99999,99999999,6450,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825044,-099.5038942,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10007,3,000,20,1,30,1,01,2,1,0,0,2,40,055,967200,2025,2,5720,40025,02418654,R,99999,99999999,6450,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825044,-099.5038942,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10008,3,000,20,1,30,1,01,2,1,0,0,2,40,055,967200,2025,2,5720,40025,02418654,R,99999,99999999,6450,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825044,-099.5038942,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10009,3,000,20,1,32,1,01,2,1,0,0,2,40,055,967200,2025,2,5720,40025,02418654,R,99999,99999999,6450,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825044,-099.5038942,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10010,3,000,20,1,72,1,01,2,1,0,0,2,40,055,967200,2025,2,5720,40025,02418654,R,99999,99999999,6450,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825044,-099.5038942,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10011,3,000,20,1,72,1,01,2,1,0,0,2,40,055,967200,2025,2,5720,40025,02418654,R,99999,99999999,6450,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825044,-099.5038942,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10012,3,000,20,1,72,1,01,2,1,0,0,2,40,055,967200,2026,2,5720,40025,02418654,R,99999,99999999,12505,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825138,-099.5051642,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10013,3,000,20,1,72,1,01,2,1,0,0,2,40,055,967200,2026,2,5720,40025,02418654,R,99999,99999999,12505,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825138,-099.5051642,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10014,3,000,20,1,80,1,01,2,1,0,0,2,40,055,967200,2026,2,5720,40025,02418654,R,99999,99999999,12505,0,0,0,0,0,99999,03,999,99999,99999999,A,01101815,91768,S,01937764,999,7,99999,99999999,+34.8825138,-099.5051642,L,9,99999,99999,99999,9,N,N,46050,A,02410917,21600,3,99999,99999,18780,052,038,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000102,73554 +10015,3,000,34,1,44,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10016,3,000,34,1,46,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10017,3,000,34,1,46,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10018,3,000,34,1,46,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10019,3,000,34,1,46,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10020,3,000,34,2,20,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10021,3,000,34,2,23,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10022,3,000,34,2,32,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10023,3,000,34,2,48,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10024,3,000,34,2,49,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +10025,3,000,20,2,38,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10026,3,000,20,2,38,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10027,3,000,20,2,39,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10028,3,000,20,2,39,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10029,3,000,20,2,39,2,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10030,3,000,20,2,40,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10031,3,000,20,2,40,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10032,3,000,20,2,40,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10033,3,000,20,2,40,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10034,3,000,20,2,40,1,01,2,1,0,0,2,35,001,003743,3010,3,9999,99999,99999999,9,99999,99999999,108117,0,0,0,0,0,10740,01,999,99999,99999999,A,01702363,90060,S,01937492,106,8,99999,99999999,+35.1773138,-106.5558714,L,1,99999,99999,99999,9,Y,N,02000,A,02409678,00703,4,99999,99999,00060,031,021,00897535,99999,99999999,9,999,99999,99999999,999999,01171,U,99999,U,000424,87113 +10035,3,000,20,2,49,1,01,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10036,3,000,20,2,49,1,01,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10037,3,000,20,2,49,1,02,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10038,3,000,20,2,49,1,12,2,2,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10039,3,000,20,2,49,2,11,2,2,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10040,3,000,20,2,50,1,02,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10041,3,000,20,2,50,1,02,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10042,3,000,20,2,50,1,02,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10043,3,000,20,2,50,2,01,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10044,3,000,20,2,51,1,02,2,1,0,0,2,13,135,050627,1001,1,9999,99999,99999999,9,99999,99999999,877691,6528,0,0,6528,0,12060,10,999,99999,99999999,A,01688166,90846,S,01936210,122,5,99999,99999999,+34.0025188,-083.8909903,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,104,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000003,30019 +10045,3,000,25,2,10,2,15,2,2,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10046,3,000,25,2,13,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10047,3,000,25,2,13,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10048,3,000,25,2,14,2,25,2,3,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10049,3,000,25,2,14,2,25,2,3,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10050,3,000,25,2,16,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10051,3,000,25,2,16,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10052,3,000,25,2,16,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10053,3,000,25,2,16,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10054,3,000,25,2,16,1,02,2,1,0,0,1,25,025,081302,2005,2,9999,99999,99999999,9,99999,99999999,77032,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3204214,-071.0957286,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00804,1,99999,99999,02790,194,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001102,02119 +10055,3,000,25,1,16,1,01,2,1,0,0,1,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10056,3,000,25,1,20,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10057,3,000,25,1,20,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10058,3,000,25,1,20,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10059,3,000,25,1,35,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10060,3,000,25,1,46,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10061,3,000,25,1,47,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10062,3,000,28,2,23,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10063,3,000,30,2,22,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10064,3,000,30,2,24,1,01,2,1,0,0,2,39,065,000700,1127,1,9999,99999,99999999,9,99999,99999999,16726,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.6199091,-083.4692824,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,10025,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43326 +10065,3,000,21,2,72,1,01,2,1,0,0,2,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10066,3,000,23,2,24,1,01,2,1,0,0,2,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10067,3,000,24,1,43,1,01,2,1,0,0,2,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10068,3,000,24,1,44,1,01,2,1,0,0,2,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10069,3,000,24,1,49,1,01,2,1,0,0,2,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10070,3,000,24,1,49,1,01,2,1,0,0,2,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10071,3,000,25,1,3,1,01,2,1,0,0,1,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10072,3,000,25,1,4,1,01,2,1,0,0,1,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10073,3,000,25,1,4,1,01,2,1,0,0,1,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10074,3,000,25,1,4,1,01,2,1,0,0,1,29,095,014702,3017,3,9999,99999,99999999,9,99999,99999999,39346,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,06490,N,00766799,312,4,99999,99999999,+39.0650587,-094.3580996,L,1,99999,99999,99999,9,N,N,35000,A,02395422,01103,2,99999,99999,15480,021,011,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000100,64057 +10075,3,000,20,1,96,1,01,1,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10076,3,000,20,1,45,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10077,3,000,20,1,45,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10078,3,000,20,1,45,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10079,3,000,20,1,55,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10080,3,000,20,1,55,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10081,3,000,20,1,57,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10082,3,000,20,1,58,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10083,3,000,20,1,58,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10084,3,000,20,1,58,1,01,2,1,0,0,2,26,065,000800,1004,1,9999,99999,99999999,9,99999,99999999,18038,0,0,0,0,0,29620,08,999,99999,99999999,A,01622975,46000,F,01626588,999,3,99999,99999999,+42.7494135,-084.5315920,L,1,99999,99999,99999,9,Y,N,46000,A,01626588,01802,2,99999,99999,21150,068,023,01779789,99999,99999999,9,999,99999,99999999,999999,47719,U,99999,U,065034,48906 +10085,3,000,25,2,14,1,01,2,1,0,0,1,48,121,020317,3025,3,9999,99999,99999999,9,99999,99999999,717578,3604,0,0,3604,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0664762,-097.2270049,B,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004035,76226 +10086,3,000,25,2,15,2,01,2,1,0,0,1,48,121,020317,3025,3,9999,99999,99999999,9,99999,99999999,717578,3604,0,0,3604,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0664762,-097.2270049,B,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004035,76226 +10087,3,000,25,2,15,2,01,2,1,0,0,1,48,121,020317,3025,3,9999,99999,99999999,9,99999,99999999,717578,3604,0,0,3604,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0664762,-097.2270049,B,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004035,76226 +10088,3,000,25,2,64,1,04,2,1,0,0,2,48,121,020317,3025,3,9999,99999,99999999,9,99999,99999999,717578,3604,0,0,3604,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0664762,-097.2270049,B,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004035,76226 +10089,3,000,27,1,45,2,06,2,1,0,0,2,48,121,020317,3025,3,9999,99999,99999999,9,99999,99999999,717578,3604,0,0,3604,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0664762,-097.2270049,B,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004035,76226 +10090,3,000,27,2,11,2,11,2,2,0,0,1,48,121,020317,3025,3,9999,99999,99999999,9,99999,99999999,717578,3604,0,0,3604,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0664762,-097.2270049,B,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004035,76226 +10091,3,000,20,1,55,1,01,2,1,0,0,2,48,121,020317,3026,3,9999,99999,99999999,9,99999,99999999,33676,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0696526,-097.2260321,L,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,23513,U,99999,U,004035,76226 +10092,3,000,20,1,55,1,01,2,1,0,0,2,48,121,020317,3026,3,9999,99999,99999999,9,99999,99999999,33676,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0696526,-097.2260321,L,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,23513,U,99999,U,004035,76226 +10093,3,000,20,1,55,1,01,2,1,0,0,2,48,121,020317,3026,3,9999,99999,99999999,9,99999,99999999,33676,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0696526,-097.2260321,L,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,23513,U,99999,U,004035,76226 +10094,3,000,20,1,55,1,01,2,1,0,0,2,48,121,020317,3026,3,9999,99999,99999999,9,99999,99999999,33676,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,91970,S,01938875,206,7,99999,99999999,+33.0696526,-097.2260321,L,1,19124,99999,99999,9,N,N,52212,A,02413055,02003,3,99999,99999,33180,063,012,01779801,99999,99999999,9,999,99999,99999999,999999,23513,U,99999,U,004035,76226 +10095,3,000,22,2,58,2,03,2,1,0,0,2,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10096,3,000,22,2,58,2,03,2,1,0,0,2,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10097,3,000,25,1,2,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10098,3,000,25,1,2,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10099,3,000,25,1,2,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10100,3,000,25,1,2,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10101,3,000,25,1,2,1,04,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10102,3,000,25,1,2,1,04,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10103,3,000,25,1,4,1,27,2,3,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10104,3,000,25,1,8,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +10105,3,000,34,2,62,1,01,2,1,0,0,2,34,003,012002,3009,3,9999,99999,99999999,9,99999,99999999,53215,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8443701,-074.1103031,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10106,3,000,36,1,37,1,01,2,1,0,0,2,34,003,012002,3009,3,9999,99999,99999999,9,99999,99999999,53215,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8443701,-074.1103031,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10107,3,000,36,1,37,1,01,2,1,0,0,2,34,003,012002,3009,3,9999,99999,99999999,9,99999,99999999,53215,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8443701,-074.1103031,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10108,3,000,36,1,39,1,01,2,1,0,0,2,34,003,012002,3009,3,9999,99999,99999999,9,99999,99999999,53215,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8443701,-074.1103031,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10109,3,000,36,1,45,1,01,2,1,0,0,2,34,003,012002,3009,3,9999,99999,99999999,9,99999,99999999,53215,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8443701,-074.1103031,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10110,3,000,36,2,30,1,06,2,1,0,0,2,34,003,012002,3009,3,9999,99999,99999999,9,99999,99999999,53215,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8443701,-074.1103031,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10111,3,000,20,1,50,2,11,1,2,0,0,2,34,003,012002,3010,3,9999,99999,99999999,9,99999,99999999,2934,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8445689,-074.1128676,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10112,3,000,20,1,74,1,02,1,1,0,0,2,34,003,012002,3010,3,9999,99999,99999999,9,99999,99999999,2934,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8445689,-074.1128676,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10113,3,000,20,1,74,1,02,1,1,0,0,2,34,003,012002,3010,3,9999,99999,99999999,9,99999,99999999,2934,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8445689,-074.1128676,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10114,3,000,20,2,40,2,01,1,1,0,0,2,34,003,012002,3010,3,9999,99999,99999999,9,99999,99999999,2934,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,19510,F,00885201,408,2,99999,99999999,+40.8445689,-074.1128676,L,1,35614,99999,99999,9,N,N,19510,A,00885201,00302,1,04290,02800,99999,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,060004,07073 +10115,3,000,21,2,72,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10116,3,000,21,2,73,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10117,3,000,21,2,73,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10118,3,000,21,2,73,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10119,3,000,21,2,73,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10120,3,000,21,2,73,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10121,3,000,21,2,73,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10122,3,000,22,1,35,1,04,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10123,3,000,22,1,35,1,04,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10124,3,000,22,1,60,1,01,2,1,0,0,2,27,123,037403,4000,4,9999,99999,99999999,9,99999,99999999,398179,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9156028,-093.0082198,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01505,2,99999,99999,33840,67B,067,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001550,55119 +10125,3,000,36,1,22,2,06,2,1,0,0,2,06,019,004208,1016,1,9999,99999,99999999,9,99999,99999999,41474,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8405128,-119.8755891,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10126,3,000,36,1,23,1,01,2,1,0,0,2,06,019,004208,1016,1,9999,99999,99999999,9,99999,99999999,41474,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8405128,-119.8755891,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10127,3,000,36,2,22,2,06,2,1,0,0,2,06,019,004208,1016,1,9999,99999,99999999,9,99999,99999999,41474,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8405128,-119.8755891,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10128,3,000,20,1,42,1,01,1,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10129,3,000,20,1,42,1,01,1,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10130,3,000,20,1,42,1,01,1,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10131,3,000,20,1,23,2,02,2,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10132,3,000,20,1,43,1,01,2,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10133,3,000,20,1,47,2,01,2,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10134,3,000,20,1,49,2,01,2,1,0,0,2,06,019,004208,1017,1,9999,99999,99999999,9,99999,99999999,12283,0,0,0,0,0,23420,22,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.8398236,-119.8756845,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01902,4,99999,99999,07970,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93722 +10135,3,000,20,1,72,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10136,3,000,20,1,72,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10137,3,000,20,1,72,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10138,3,000,20,2,53,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10139,3,000,20,2,53,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10140,3,000,20,2,53,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10141,3,000,20,2,84,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10142,3,000,20,2,84,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10143,3,000,21,1,63,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10144,3,000,21,1,82,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +10145,3,000,20,1,77,1,01,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10146,3,000,20,1,77,2,06,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10147,3,000,20,1,77,2,06,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10148,3,000,20,1,78,2,11,1,2,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10149,3,000,20,1,79,2,06,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10150,3,000,20,1,79,2,06,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10151,3,000,20,1,80,2,01,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10152,3,000,20,1,80,2,01,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10153,3,000,20,1,80,2,06,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10154,3,000,20,1,84,2,06,1,1,0,0,2,34,031,180302,2005,2,9999,99999,99999999,9,99999,99999999,35204,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,57000,F,00885343,408,2,99999,99999999,+40.9245155,-074.1786051,L,1,35614,99999,99999,9,N,N,57000,A,00885343,00503,1,99999,99999,12690,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040112,07522 +10155,3,000,21,2,77,1,04,2,1,0,0,2,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10156,3,000,21,2,77,1,04,2,1,0,0,2,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10157,3,000,25,1,0,1,04,2,1,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10158,3,000,25,1,0,1,04,2,1,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10159,3,000,25,1,0,1,04,2,1,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10160,3,000,25,1,0,1,04,2,1,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10161,3,000,25,1,5,1,09,2,2,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10162,3,000,25,1,5,1,09,2,2,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10163,3,000,25,1,6,1,04,2,1,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10164,3,000,25,1,7,1,04,2,1,0,0,1,48,085,032008,1013,1,9999,99999,99999999,9,99999,99999999,205758,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0468880,-096.6774172,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,067,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000050,75074 +10165,3,000,29,2,62,1,01,2,1,0,0,2,08,123,002106,3009,3,9999,99999,99999999,9,99999,99999999,31887,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2442855,-104.9859106,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10166,3,000,30,1,14,2,06,2,1,0,0,1,08,123,002106,3009,3,9999,99999,99999999,9,99999,99999999,31887,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2442855,-104.9859106,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10167,3,000,30,1,35,1,01,2,1,0,0,2,08,123,002106,3009,3,9999,99999,99999999,9,99999,99999999,31887,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2442855,-104.9859106,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10168,3,000,33,1,53,2,11,2,2,0,0,2,08,123,002106,3009,3,9999,99999,99999999,9,99999,99999999,31887,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2442855,-104.9859106,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10169,3,000,20,1,27,1,04,1,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10170,3,000,20,1,53,2,18,1,2,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10171,3,000,20,1,51,2,06,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10172,3,000,20,1,51,2,06,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10173,3,000,20,2,59,2,06,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10174,3,000,20,2,59,2,06,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +10175,3,000,25,1,28,1,02,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10176,3,000,25,1,28,2,06,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10177,3,000,25,1,29,1,01,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10178,3,000,25,1,29,1,01,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10179,3,000,25,1,31,1,01,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10180,3,000,25,1,31,1,01,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10181,3,000,25,1,31,1,01,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10182,3,000,25,1,32,1,02,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10183,3,000,25,1,32,1,02,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10184,3,000,25,1,32,1,02,2,1,0,0,2,51,700,032400,1003,1,9999,99999,99999999,9,99999,99999999,1155219,0,0,0,0,0,47260,03,999,99999,99999999,F,01498555,94851,F,01498555,545,5,99999,99999999,+37.1988300,-076.5808648,L,1,99999,99999,99999,9,Y,N,56000,A,01498555,70000,3,99999,99999,02640,093,001,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000108,23603 +10185,3,000,25,1,12,1,01,2,1,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10186,3,000,25,1,12,1,01,2,1,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10187,3,000,25,1,16,1,01,2,1,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10188,3,000,25,2,1,1,01,2,1,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10189,3,000,25,2,6,2,11,2,2,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10190,3,000,25,2,17,2,01,2,1,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10191,3,000,25,2,17,2,01,2,1,0,0,1,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10192,3,000,25,2,20,1,01,2,1,0,0,2,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10193,3,000,25,2,20,1,01,2,1,0,0,2,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10194,3,000,25,2,20,1,01,2,1,0,0,2,36,093,032200,2024,2,9999,99999,99999999,9,99999,99999999,34255,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,29366,A,00979005,104,2,99999,99999999,+42.8325230,-073.9588122,L,1,99999,99999,99999,9,N,N,65893,A,02391124,01700,1,99999,99999,26310,112,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000014,12302 +10195,3,000,21,1,57,1,01,2,1,0,0,2,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10196,3,000,21,1,59,1,01,2,1,0,0,2,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10197,3,000,21,2,45,1,02,2,1,0,0,2,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10198,3,000,21,2,51,2,08,2,2,0,0,2,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10199,3,000,25,2,2,2,11,2,2,0,0,1,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10200,3,000,25,2,4,1,11,2,2,0,0,1,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10201,3,000,25,2,12,2,11,2,2,0,0,1,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10202,3,000,25,2,14,2,11,2,2,0,0,1,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10203,3,000,27,1,11,1,01,2,1,0,0,1,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10204,3,000,36,1,15,1,01,2,1,0,0,1,20,091,053431,2028,2,9999,99999,99999999,9,99999,99999999,163517,1777,0,0,1777,0,28140,03,999,99999,99999999,A,00485010,53775,F,00485639,312,4,99999,99999999,+38.8297706,-094.6099531,B,1,99999,99999,99999,9,Y,N,53775,A,00485639,00803,2,99999,99999,12000,027,011,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,901160,66085 +10205,3,000,28,1,46,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10206,3,000,28,1,47,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10207,3,000,28,2,26,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10208,3,000,29,1,64,1,12,2,2,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10209,3,000,30,1,4,1,02,2,1,0,0,1,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10210,3,000,33,1,59,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10211,3,000,33,1,59,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10212,3,000,33,1,59,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10213,3,000,33,2,23,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10214,3,000,33,2,24,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +10215,3,000,20,2,51,2,01,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10216,3,000,20,2,65,1,02,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10217,3,000,20,2,83,1,02,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10218,3,000,21,1,34,2,06,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10219,3,000,21,1,35,2,06,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10220,3,000,21,1,35,2,11,2,2,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10221,3,000,21,1,36,1,01,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10222,3,000,21,1,36,1,01,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10223,3,000,21,1,36,1,01,2,1,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10224,3,000,21,1,37,2,11,2,2,0,0,2,12,071,040316,1021,1,9999,99999,99999999,9,99999,99999999,35067,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91937,S,01935832,163,5,99999,99999999,+26.6024570,-081.6363929,L,1,99999,99999,99999,9,N,N,39925,S,02403226,07103,3,99999,99999,01080,079,028,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000058,33936 +10225,3,000,25,1,1,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10226,3,000,25,1,1,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10227,3,000,25,1,12,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10228,3,000,25,1,12,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10229,3,000,25,1,12,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10230,3,000,25,1,12,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10231,3,000,25,1,12,1,02,2,1,0,0,1,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10232,3,000,25,1,18,1,02,2,1,0,0,2,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10233,3,000,25,1,18,1,02,2,1,0,0,2,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10234,3,000,25,1,18,1,02,2,1,0,0,2,39,035,140100,1015,1,9999,99999,99999999,9,99999,99999999,15244,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16014,F,01085964,184,3,99999,99999999,+41.5344872,-081.5468347,L,1,99999,99999,99999,9,N,N,16014,A,01085964,00709,2,99999,99999,04379,009,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BMA,44121 +10235,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10236,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10237,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10238,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10239,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10240,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10241,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10242,3,000,20,1,57,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10243,3,000,20,1,60,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10244,3,000,20,1,60,1,01,2,1,0,0,2,51,041,101008,1000,1,9999,99999,99999999,9,99999,99999999,733080,2398,0,0,2398,0,40060,07,999,99999,99999999,A,01480111,94575,N,01927394,999,5,99999,99999999,+37.4161299,-077.7019816,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04103,3,99999,99999,00840,065,010,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000313,23112 +10245,3,000,20,2,44,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10246,3,000,20,2,53,2,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10247,3,000,20,2,56,2,11,2,2,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10248,3,000,20,2,58,2,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10249,3,000,20,2,62,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10250,3,000,20,2,76,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10251,3,000,20,2,76,1,03,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10252,3,000,21,1,40,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10253,3,000,21,1,55,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10254,3,000,21,1,55,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +10255,3,000,20,2,77,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10256,3,000,20,2,77,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10257,3,000,20,2,77,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10258,3,000,20,2,77,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10259,3,000,20,2,78,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10260,3,000,20,2,78,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10261,3,000,20,2,78,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10262,3,000,20,2,78,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10263,3,000,20,2,79,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10264,3,000,20,2,79,1,01,1,1,0,0,2,26,161,456000,4000,4,9999,99999,99999999,9,99999,99999999,1117211,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,71940,A,01627050,220,3,99999,99999999,+42.2657167,-083.7951939,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,2,99999,99999,02820,052,022,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161101,48103 +10265,3,000,20,1,64,1,01,1,1,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10266,3,000,20,1,64,1,01,1,1,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10267,3,000,20,2,25,1,07,1,2,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10268,3,000,20,2,83,1,01,1,1,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10269,3,000,20,2,99,1,01,1,1,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10270,3,000,20,1,44,1,08,2,2,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10271,3,000,20,1,51,2,11,2,2,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10272,3,000,20,1,53,1,02,2,1,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10273,3,000,20,1,54,1,28,2,3,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10274,3,000,20,1,62,1,01,2,1,0,0,2,39,085,200700,2001,2,9999,99999,99999999,9,99999,99999999,48033,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,85036,F,01086434,184,3,99999,99999999,+41.6160098,-081.4569904,L,1,99999,99999,99999,9,N,N,85036,A,01086434,00801,2,99999,99999,04508,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ADO,44092 +10275,3,000,34,1,20,1,02,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10276,3,000,34,1,20,1,02,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10277,3,000,34,1,20,1,02,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10278,3,000,34,1,22,1,01,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10279,3,000,34,1,24,1,01,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10280,3,000,34,1,27,1,01,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10281,3,000,34,1,27,1,01,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10282,3,000,34,1,30,2,06,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10283,3,000,34,1,33,1,01,2,1,0,0,2,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10284,3,000,34,2,1,1,01,2,1,0,0,1,05,031,000404,2005,2,9999,99999,99999999,9,99999,99999999,200326,0,0,0,0,0,27860,01,999,99999,99999999,A,00066847,92004,N,00066461,308,7,99999,99999999,+35.7941962,-090.6825793,L,1,99999,99999,99999,9,Y,N,35710,A,02404811,00700,3,99999,99999,10440,058,021,00068085,99999,99999999,9,999,99999,99999999,999999,43345,U,99999,U,000014,72404 +10285,3,000,21,1,56,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10286,3,000,21,1,61,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10287,3,000,21,1,76,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10288,3,000,21,1,80,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10289,3,000,21,1,80,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10290,3,000,21,1,89,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10291,3,000,21,1,89,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10292,3,000,21,2,55,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10293,3,000,21,2,55,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10294,3,000,21,2,55,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +10295,3,000,25,1,12,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10296,3,000,25,1,12,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10297,3,000,25,1,12,1,09,2,2,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10298,3,000,25,1,12,1,09,2,2,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10299,3,000,25,1,13,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10300,3,000,25,1,13,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10301,3,000,25,1,13,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10302,3,000,25,1,13,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10303,3,000,25,1,13,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10304,3,000,25,1,13,1,04,2,1,0,0,1,06,085,508204,1000,1,9999,99999,99999999,9,99999,99999999,109501,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3499178,-122.0153573,L,1,99999,99999,99999,9,Y,N,77000,A,02412009,08516,4,10290,14430,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94087 +10305,3,000,25,2,0,1,01,2,1,0,0,1,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10306,3,000,25,2,0,1,01,2,1,0,0,1,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10307,3,000,25,2,2,2,24,2,3,0,0,1,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10308,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10309,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10310,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10311,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10312,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10313,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10314,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +10315,3,000,20,1,43,1,04,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10316,3,000,20,1,43,1,04,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10317,3,000,20,1,43,1,04,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10318,3,000,20,1,43,1,04,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10319,3,000,20,1,45,2,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10320,3,000,20,1,55,1,04,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10321,3,000,20,1,63,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10322,3,000,20,1,63,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10323,3,000,20,1,63,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10324,3,000,20,1,63,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +10325,3,000,21,2,48,1,04,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10326,3,000,21,2,48,1,04,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10327,3,000,21,2,48,1,04,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10328,3,000,21,2,52,2,06,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10329,3,000,21,2,52,2,06,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10330,3,000,21,2,57,2,29,2,3,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10331,3,000,21,2,61,1,05,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10332,3,000,21,2,71,1,04,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10333,3,000,21,2,71,1,04,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10334,3,000,21,2,74,1,04,2,1,0,0,2,06,001,438400,1008,1,9999,99999,99999999,9,99999,99999999,31920,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6203799,-122.0835850,L,1,36084,99999,99999,9,N,N,33000,A,02410724,00122,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94545 +10335,3,000,20,1,57,2,11,1,2,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10336,3,000,20,1,57,2,11,1,2,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10337,3,000,20,1,60,1,01,1,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10338,3,000,20,1,61,1,01,1,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10339,3,000,20,2,60,1,01,1,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10340,3,000,20,2,64,2,06,1,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10341,3,000,20,2,65,1,01,1,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10342,3,000,20,2,65,1,01,1,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10343,3,000,21,1,40,2,03,2,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10344,3,000,21,1,41,1,01,2,1,0,0,2,48,059,030102,1042,1,9999,99999,99999999,9,99999,99999999,238507,0,0,0,0,0,10180,11,999,99999,99999999,A,01383815,90765,S,01938631,999,7,99999,99999999,+32.4088367,-099.5394421,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,3,99999,99999,14450,060,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,79510 +10345,3,000,25,2,8,1,22,2,3,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10346,3,000,25,2,8,2,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10347,3,000,25,2,8,2,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10348,3,000,25,2,9,2,11,2,2,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10349,3,000,25,2,9,2,11,2,2,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10350,3,000,25,2,9,2,11,2,2,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10351,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10352,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10353,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10354,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +10355,3,000,20,2,71,1,01,2,1,0,0,2,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10356,3,000,20,2,71,1,01,2,1,0,0,2,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10357,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10358,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10359,3,000,21,2,68,1,01,2,1,0,0,2,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10360,3,000,22,1,26,1,01,2,1,0,0,2,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10361,3,000,25,1,6,1,13,2,2,0,0,1,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10362,3,000,25,1,12,1,01,2,1,0,0,1,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10363,3,000,25,1,12,1,01,2,1,0,0,1,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10364,3,000,25,1,15,1,01,2,1,0,0,1,23,001,020200,2001,2,9999,99999,99999999,9,99999,99999999,9684,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1075201,-070.2111486,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +10365,3,000,20,1,84,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10366,3,000,20,1,87,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10367,3,000,20,1,87,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10368,3,000,20,1,87,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10369,3,000,20,1,87,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10370,3,000,20,1,88,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10371,3,000,20,1,91,2,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10372,3,000,20,2,22,1,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10373,3,000,20,2,22,1,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10374,3,000,20,2,22,1,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +10375,3,000,21,1,66,1,01,2,1,0,0,2,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10376,3,000,21,1,68,1,01,2,1,0,0,2,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10377,3,000,21,1,74,1,01,2,1,0,0,2,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10378,3,000,24,1,24,2,03,2,1,0,0,2,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10379,3,000,25,1,3,1,08,2,2,0,0,1,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10380,3,000,25,1,4,1,01,2,1,0,0,1,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10381,3,000,25,1,4,1,01,2,1,0,0,1,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10382,3,000,25,1,8,1,08,2,2,0,0,1,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10383,3,000,25,1,8,2,03,2,1,0,0,1,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10384,3,000,25,1,13,2,06,2,1,0,0,1,40,121,486200,2006,2,5590,14190,02418833,R,99999,99999999,30923,0,0,0,0,0,32540,02,999,99999,99999999,A,01101848,91729,S,01937761,999,7,99999,99999999,+34.9543489,-095.7655486,L,2,99999,99999,99999,9,Y,N,44800,A,02411056,21000,3,99999,99999,19440,018,007,01102857,99999,99999999,9,825,17597,02418887,999999,52363,U,99999,U,000011,74501 +10385,3,000,22,2,34,1,01,2,1,0,0,2,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10386,3,000,22,2,34,1,01,2,1,0,0,2,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10387,3,000,22,2,34,1,01,2,1,0,0,2,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10388,3,000,23,2,76,2,22,2,3,0,0,2,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10389,3,000,24,2,34,1,02,2,1,0,0,2,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10390,3,000,25,1,7,1,02,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10391,3,000,25,1,12,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10392,3,000,25,1,12,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10393,3,000,25,1,13,1,02,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10394,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +10395,3,000,20,1,25,1,02,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10396,3,000,20,1,25,2,06,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10397,3,000,20,1,25,2,06,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10398,3,000,20,1,25,2,06,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10399,3,000,20,1,26,1,02,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10400,3,000,20,1,26,1,02,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10401,3,000,20,1,26,1,02,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10402,3,000,20,1,26,2,06,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10403,3,000,20,1,29,2,11,1,2,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10404,3,000,20,1,35,1,01,1,1,0,0,2,48,113,004700,2015,2,9999,99999,99999999,9,99999,99999999,16931,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7476378,-096.8292578,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02315,3,99999,99999,16230,103,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004075,75208 +10405,3,000,20,1,27,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10406,3,000,20,1,27,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10407,3,000,20,1,27,1,11,2,2,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10408,3,000,20,1,28,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10409,3,000,20,1,29,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10410,3,000,20,1,29,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10411,3,000,20,1,74,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10412,3,000,20,1,74,1,01,2,1,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10413,3,000,20,1,94,1,08,2,2,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10414,3,000,21,2,32,1,08,2,2,0,0,2,41,059,950400,5011,5,9999,99999,99999999,9,99999,99999999,7371,0,0,0,0,0,25840,02,999,99999,99999999,A,01156673,92448,S,01938092,999,9,99999,99999999,+45.6777850,-118.7979435,L,2,99999,99999,99999,9,Y,N,57150,A,02411399,05901,4,99999,99999,09510,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,68428,U,57150,U,,97801 +10415,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10416,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10417,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10418,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10419,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10420,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10421,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10422,3,000,25,1,18,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10423,3,000,25,1,18,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10424,3,000,25,1,21,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +10425,3,000,20,2,20,1,12,2,2,0,0,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10426,3,000,22,2,32,1,09,2,2,0,0,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10427,3,000,25,1,13,2,15,2,2,0,0,1,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10428,3,000,30,2,20,1,08,2,2,0,0,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10429,3,000,34,2,23,1,01,2,1,0,0,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10430,5,501,38,1,18,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10431,5,501,38,1,20,1,02,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10432,5,501,38,1,20,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10433,5,501,38,1,20,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10434,5,501,38,1,20,2,06,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +10435,3,000,20,2,44,2,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10436,3,000,20,2,44,2,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10437,3,000,20,2,44,2,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10438,3,000,20,2,44,2,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10439,3,000,20,2,45,1,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10440,3,000,20,2,45,1,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10441,3,000,20,2,45,1,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10442,3,000,20,2,45,1,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10443,3,000,20,2,45,1,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10444,3,000,20,2,45,1,01,2,1,0,0,2,06,071,007604,3011,3,9999,99999,99999999,9,99999,99999999,410882,0,0,0,0,0,40140,08,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1158070,-117.2023707,L,1,99999,99999,99999,9,N,N,33588,A,02410759,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92346 +10445,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10446,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10447,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10448,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10449,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10450,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10451,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10452,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10453,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10454,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +10455,3,000,20,2,32,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10456,3,000,20,2,32,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10457,3,000,20,2,32,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10458,3,000,20,2,32,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10459,3,000,20,2,32,1,04,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10460,3,000,20,2,32,1,04,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10461,3,000,20,2,33,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10462,3,000,20,2,33,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10463,3,000,20,2,33,1,04,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10464,3,000,20,2,33,1,04,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +10465,3,000,30,1,9,2,18,2,2,0,0,1,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10466,3,000,30,1,16,1,02,2,1,0,0,1,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10467,3,000,30,1,16,1,02,2,1,0,0,1,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10468,3,000,30,2,7,2,06,2,1,0,0,1,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10469,3,000,30,2,7,2,06,2,1,0,0,1,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10470,3,000,30,2,7,2,06,2,1,0,0,1,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10471,3,000,33,2,22,2,15,2,2,0,0,2,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10472,3,000,34,1,27,1,19,2,2,0,0,2,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10473,3,000,34,1,28,1,19,2,2,0,0,2,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10474,3,000,34,1,56,1,04,2,1,0,0,2,06,013,374000,1010,1,9999,99999,99999999,9,99999,99999999,29444,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9402934,-122.3368783,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +10475,3,000,25,1,6,1,01,2,1,0,0,1,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10476,3,000,25,1,18,1,02,2,1,0,0,2,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10477,3,000,25,1,18,1,02,2,1,0,0,2,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10478,3,000,25,1,19,1,02,2,1,0,0,2,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10479,3,000,25,1,19,1,02,2,1,0,0,2,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10480,3,000,25,2,17,1,01,2,1,0,0,1,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10481,3,000,28,1,37,1,06,2,1,0,0,2,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10482,3,000,30,1,8,1,02,2,1,0,0,1,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10483,3,000,30,2,17,1,02,2,1,0,0,1,12,071,000600,3010,3,9999,99999,99999999,9,99999,99999999,19964,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334017,-081.8451272,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10484,3,000,20,2,30,1,02,2,1,0,0,2,12,071,000600,3011,3,9999,99999,99999999,9,99999,99999999,19919,0,0,0,0,0,15980,19,999,99999,99999999,A,00295758,91131,S,01935769,163,5,99999,99999999,+26.6334395,-081.8431236,L,1,99999,99999,99999,9,Y,N,24125,A,02403643,07104,3,99999,99999,01080,078,027,00294478,99999,99999999,9,999,99999,99999999,999999,13510,U,99999,U,000008,33916 +10485,3,000,20,2,52,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10486,3,000,20,2,59,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10487,3,000,20,2,59,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10488,3,000,20,2,59,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10489,3,000,20,2,59,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10490,3,000,20,2,63,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10491,3,000,20,2,63,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10492,3,000,20,2,73,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10493,3,000,20,2,73,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10494,3,000,20,2,73,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +10495,3,000,28,1,48,2,11,2,2,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10496,3,000,28,2,11,2,28,2,3,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10497,3,000,28,2,20,1,01,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10498,3,000,28,2,50,1,02,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10499,3,000,28,2,50,1,02,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10500,3,000,28,2,52,1,02,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10501,3,000,29,2,59,2,01,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10502,3,000,29,2,72,1,12,2,2,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10503,3,000,30,1,2,2,11,2,2,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10504,3,000,30,1,2,2,11,2,2,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +10505,3,000,20,1,77,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10506,3,000,20,1,77,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10507,3,000,20,1,77,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10508,3,000,20,1,77,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10509,3,000,20,1,77,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10510,3,000,20,2,56,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10511,3,000,20,2,56,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10512,3,000,21,2,22,1,07,2,2,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10513,3,000,21,2,45,2,11,2,2,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10514,3,000,21,2,58,1,01,2,1,0,0,2,26,125,124000,1000,1,9999,99999,99999999,9,99999,99999999,77907,0,0,0,0,0,19820,08,999,99999,99999999,A,01623005,38720,A,01626480,220,3,99999,99999999,+42.8043625,-083.6393397,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02901,2,99999,99999,18450,051,014,01779789,99999,99999999,9,999,99999,99999999,999999,39538,U,99999,U,125149,48442 +10515,3,000,23,2,44,1,01,2,1,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10516,3,000,23,2,44,1,01,2,1,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10517,3,000,25,1,0,1,04,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10518,3,000,25,1,0,1,08,2,2,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10519,3,000,25,1,2,1,09,2,2,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10520,3,000,25,1,2,1,09,2,2,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10521,3,000,25,1,8,1,04,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10522,3,000,25,1,8,2,01,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10523,3,000,25,1,15,1,01,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10524,3,000,25,1,19,1,09,2,2,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +10525,5,501,38,2,42,1,02,0,1,2,5,2,08,069,000503,2007,2,9999,99999,99999999,9,99999,99999999,41573,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,91330,S,01935463,999,8,99999,99999999,+40.5753135,-105.1020676,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00301,4,99999,99999,03990,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069307,80521 +10526,5,501,38,2,44,1,02,0,1,2,5,2,08,069,000503,2007,2,9999,99999,99999999,9,99999,99999999,41573,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,91330,S,01935463,999,8,99999,99999999,+40.5753135,-105.1020676,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00301,4,99999,99999,03990,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069307,80521 +10527,5,501,38,2,51,2,01,0,1,2,5,2,08,069,000503,2007,2,9999,99999,99999999,9,99999,99999999,41573,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,91330,S,01935463,999,8,99999,99999999,+40.5753135,-105.1020676,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00301,4,99999,99999,03990,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069307,80521 +10528,3,000,21,2,31,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10529,3,000,21,2,31,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10530,3,000,21,2,32,1,01,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10531,3,000,21,2,32,1,01,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10532,3,000,21,2,34,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10533,3,000,21,2,37,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10534,3,000,21,2,37,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10535,3,000,21,2,37,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10536,3,000,21,2,38,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10537,3,000,21,2,38,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +10538,3,000,20,2,29,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10539,3,000,20,2,29,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10540,3,000,20,2,29,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10541,3,000,20,2,29,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10542,3,000,20,2,29,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10543,3,000,20,2,29,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10544,3,000,20,2,40,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10545,3,000,20,2,65,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10546,3,000,20,2,65,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10547,3,000,20,2,65,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +10548,3,000,25,1,12,1,01,2,1,0,0,1,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10549,3,000,25,1,25,1,09,2,2,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10550,3,000,25,1,26,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10551,3,000,25,1,26,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10552,3,000,25,2,6,1,01,2,1,0,0,1,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10553,3,000,25,2,18,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10554,3,000,25,2,19,2,06,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10555,3,000,25,2,19,2,06,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10556,3,000,25,2,25,1,09,2,2,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10557,3,000,25,2,29,1,04,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +10558,3,000,20,2,63,1,01,1,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10559,3,000,20,2,63,1,01,1,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10560,3,000,20,2,63,1,01,1,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10561,3,000,20,2,63,1,01,1,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10562,3,000,20,2,64,1,01,1,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10563,3,000,20,1,40,1,01,2,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10564,3,000,20,1,40,1,01,2,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10565,3,000,20,1,40,1,01,2,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10566,3,000,20,1,40,1,01,2,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10567,3,000,20,1,40,1,01,2,1,0,0,2,29,077,004109,2009,2,9999,99999,99999999,9,99999,99999999,534012,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,80255,N,01990077,999,4,99999,99999999,+37.1214030,-093.3127616,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,28860,134,020,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000113,65810 +10568,3,000,25,2,8,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10569,3,000,25,2,8,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10570,3,000,25,2,10,2,11,2,2,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10571,3,000,25,2,11,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10572,3,000,25,2,11,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10573,3,000,25,2,11,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10574,3,000,25,2,11,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10575,3,000,25,2,13,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10576,3,000,25,2,13,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10577,3,000,25,2,13,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +10578,5,301,37,2,87,2,04,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10579,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10580,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10581,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10582,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10583,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10584,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10585,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10586,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10587,5,301,37,2,88,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +10588,3,000,20,1,44,2,26,1,3,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10589,3,000,20,2,72,1,06,1,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10590,3,000,20,1,55,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10591,3,000,20,1,55,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10592,3,000,20,1,55,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10593,3,000,20,1,55,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10594,3,000,20,1,56,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10595,3,000,20,1,57,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10596,3,000,20,1,58,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10597,3,000,20,1,58,1,04,2,1,0,0,2,06,085,506801,1002,1,9999,99999,99999999,9,99999,99999999,30733,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2377638,-121.9641092,L,1,99999,99999,99999,9,N,N,44112,A,02412917,08507,4,22830,22800,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95032 +10598,3,000,20,1,76,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10599,3,000,20,1,76,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10600,3,000,20,1,76,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10601,3,000,20,1,76,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10602,3,000,20,1,76,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10603,3,000,20,1,76,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10604,3,000,20,1,80,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10605,3,000,20,1,80,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10606,3,000,20,1,82,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10607,3,000,20,1,82,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +10608,3,000,25,1,33,1,01,2,1,0,0,2,18,051,050201,2031,2,9999,99999,99999999,9,99999,99999999,5007,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478234,-087.5756329,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10609,3,000,20,1,57,1,01,1,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10610,3,000,20,1,57,1,01,1,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10611,3,000,20,1,57,1,01,1,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10612,3,000,20,1,95,1,01,1,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10613,3,000,20,2,46,1,01,1,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10614,3,000,20,2,87,1,01,1,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10615,3,000,20,1,27,1,01,2,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10616,3,000,20,1,27,1,01,2,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10617,3,000,24,2,22,1,01,2,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +10618,3,000,25,2,7,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10619,3,000,25,2,7,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10620,3,000,25,2,7,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10621,3,000,25,2,7,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10622,3,000,25,2,7,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10623,3,000,25,2,7,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10624,3,000,25,2,7,1,15,2,2,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10625,3,000,25,2,12,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10626,3,000,25,2,12,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10627,3,000,25,2,12,1,02,2,1,0,0,1,34,013,005400,1002,1,9999,99999,99999999,9,99999,99999999,19118,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7226906,-074.2012791,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S11,07108 +10628,3,000,20,2,51,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10629,3,000,20,2,51,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10630,3,000,20,2,54,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10631,3,000,20,2,54,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10632,3,000,20,2,54,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10633,3,000,20,2,57,1,02,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10634,3,000,20,2,57,1,02,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10635,3,000,20,2,59,1,02,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10636,3,000,20,2,63,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10637,3,000,20,2,63,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +10638,3,000,20,1,24,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10639,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10640,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10641,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10642,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10643,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10644,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10645,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10646,3,000,20,1,35,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10647,3,000,20,1,36,1,01,2,1,0,0,2,36,063,020100,1007,1,9999,99999,99999999,9,99999,99999999,102524,0,0,0,0,0,15380,26,999,99999,99999999,A,00974130,51055,F,00979276,160,2,99999,99999999,+43.1267551,-079.0449444,L,1,99999,99999,99999,9,N,N,51055,A,00979276,01101,1,99999,99999,20820,145,062,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000085,14305 +10648,3,000,25,2,2,1,01,2,1,0,0,1,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10649,3,000,25,2,13,1,01,2,1,0,0,1,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10650,3,000,25,2,13,1,01,2,1,0,0,1,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10651,3,000,25,2,13,1,01,2,1,0,0,1,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10652,3,000,25,2,16,1,01,2,1,0,0,1,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10653,3,000,25,2,19,1,01,2,1,0,0,2,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10654,3,000,25,2,48,1,01,2,1,0,0,2,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10655,3,000,25,2,48,1,01,2,1,0,0,2,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10656,3,000,25,2,48,1,01,2,1,0,0,2,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10657,3,000,25,2,48,1,01,2,1,0,0,2,12,069,030203,3058,3,9999,99999,99999999,9,99999,99999999,460546,79,0,0,79,0,36740,06,999,99999,99999999,A,00308551,91014,S,01935760,422,5,99999,99999999,+28.8408117,-081.6514653,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,48799,U,99999,U,000054,32726 +10658,3,000,22,1,26,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10659,3,000,22,1,28,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10660,3,000,22,1,28,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10661,3,000,22,1,28,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10662,3,000,22,1,28,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10663,3,000,22,1,29,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10664,3,000,22,1,29,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10665,3,000,22,1,29,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10666,3,000,22,1,36,2,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10667,3,000,22,2,23,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +10668,3,000,25,2,0,1,07,2,2,0,0,1,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10669,3,000,25,2,14,1,07,2,2,0,0,1,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10670,3,000,25,2,18,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10671,3,000,25,2,19,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10672,3,000,25,2,19,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10673,3,000,25,2,19,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10674,3,000,27,1,12,1,08,2,2,0,0,1,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10675,3,000,28,2,21,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10676,3,000,30,1,3,1,07,2,2,0,0,1,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10677,3,000,30,1,21,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +10678,3,000,20,1,33,1,01,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10679,3,000,20,1,33,1,01,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10680,3,000,20,1,33,1,01,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10681,3,000,20,1,34,1,01,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10682,3,000,20,1,38,1,01,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10683,3,000,20,1,47,2,06,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10684,3,000,20,1,47,2,06,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10685,3,000,20,1,47,2,06,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10686,3,000,20,1,50,2,06,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10687,3,000,20,1,50,2,06,2,1,0,0,2,41,047,010202,1004,1,9999,99999,99999999,9,99999,99999999,2690011,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91360,S,01938028,440,9,99999,99999999,+45.2455241,-122.7814447,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04705,4,99999,99999,08880,018,009,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97002 +10688,5,997,38,1,96,1,02,0,1,2,7,2,39,137,030200,4006,4,9999,99999,99999999,9,99999,99999999,447575,0,0,0,0,0,99999,05,999,99999,99999999,A,01074081,59612,A,01086865,999,3,99999,99999999,+41.1054496,-084.1265689,L,9,99999,99999,99999,9,N,N,50358,A,02399356,00200,2,99999,99999,04936,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABA,45864 +10689,5,997,38,2,18,1,01,0,1,2,7,2,39,137,030200,4006,4,9999,99999,99999999,9,99999,99999999,447575,0,0,0,0,0,99999,05,999,99999,99999999,A,01074081,59612,A,01086865,999,3,99999,99999999,+41.1054496,-084.1265689,L,9,99999,99999,99999,9,N,N,50358,A,02399356,00200,2,99999,99999,04936,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABA,45864 +10690,5,997,38,2,61,2,06,0,1,2,7,2,39,137,030200,4006,4,9999,99999,99999999,9,99999,99999999,447575,0,0,0,0,0,99999,05,999,99999,99999999,A,01074081,59612,A,01086865,999,3,99999,99999999,+41.1054496,-084.1265689,L,9,99999,99999,99999,9,N,N,50358,A,02399356,00200,2,99999,99999,04936,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABA,45864 +10691,3,000,20,1,52,1,08,1,2,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10692,3,000,20,1,37,1,01,2,1,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10693,3,000,20,1,37,1,01,2,1,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10694,3,000,20,1,39,1,01,2,1,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10695,3,000,20,1,39,1,01,2,1,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10696,3,000,21,2,41,1,01,2,1,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10697,3,000,21,2,41,1,01,2,1,0,0,2,39,137,030302,3000,3,9999,99999,99999999,9,99999,99999999,1310457,7911,0,0,7911,0,99999,05,999,99999,99999999,A,01074081,58996,A,01086864,999,3,99999,99999999,+41.0520277,-084.0973732,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,04937,081,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,069ABZ,45875 +10698,3,000,20,2,44,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10699,3,000,20,2,47,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10700,3,000,20,2,48,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10701,3,000,20,2,48,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10702,3,000,20,2,48,1,04,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10703,3,000,20,2,50,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10704,3,000,20,2,52,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10705,3,000,20,2,52,1,08,1,2,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10706,3,000,20,2,56,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10707,3,000,20,2,56,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +10708,3,000,25,2,11,1,02,2,1,0,0,1,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10709,3,000,25,2,12,2,01,2,1,0,0,1,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10710,3,000,25,2,12,2,01,2,1,0,0,1,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10711,3,000,25,2,13,1,08,2,2,0,0,1,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10712,3,000,26,1,29,1,01,2,1,0,0,2,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10713,3,000,26,1,29,1,01,2,1,0,0,2,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10714,3,000,27,2,25,1,01,2,1,0,0,2,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10715,3,000,27,2,25,1,01,2,1,0,0,2,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10716,3,000,30,1,10,1,02,2,1,0,0,1,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10717,3,000,30,1,22,1,01,2,1,0,0,2,22,073,005306,1007,1,9999,99999,99999999,9,99999,99999999,33150,0,0,0,0,0,33740,05,999,99999,99999999,A,00558114,95740,N,01930295,384,7,99999,99999999,+32.5215219,-092.1634458,L,1,99999,99999,99999,9,N,N,80955,A,02405712,00400,3,99999,99999,01200,017,035,01629543,99999,99999999,9,999,99999,99999999,999999,58330,U,99999,U,000046,71291 +10718,3,000,20,2,86,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10719,3,000,21,1,34,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10720,3,000,21,1,34,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10721,3,000,21,1,34,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10722,3,000,21,1,34,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10723,3,000,21,1,34,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10724,3,000,21,2,61,1,04,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10725,3,000,21,2,64,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10726,3,000,21,2,64,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10727,3,000,21,2,64,1,01,2,1,0,0,2,17,043,846523,2015,2,9999,99999,99999999,9,99999,99999999,26789,0,0,0,0,0,16980,11,999,99999,99999999,A,00422191,51635,A,00429419,176,3,99999,99999999,+41.7527537,-088.1552075,L,1,16984,99999,99999,9,Y,N,51622,A,02395147,04305,2,99999,99999,27710,041,021,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,006013,60540 +10728,3,000,20,2,32,1,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10729,3,000,20,2,32,1,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10730,3,000,20,2,32,1,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10731,3,000,20,2,32,1,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10732,3,000,20,2,32,2,11,2,2,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10733,3,000,20,2,33,1,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10734,3,000,20,2,35,1,13,2,2,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10735,3,000,20,2,39,1,03,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10736,3,000,20,2,41,2,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10737,3,000,20,2,42,2,01,2,1,0,0,2,36,047,037500,2002,2,9999,99999,99999999,9,99999,99999999,16621,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6890232,-073.9227062,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,055,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001242,11221 +10738,3,000,21,2,45,1,04,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10739,3,000,21,2,45,1,04,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10740,3,000,21,2,47,1,04,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10741,3,000,21,2,53,2,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10742,3,000,21,2,54,2,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10743,3,000,21,2,55,2,06,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10744,3,000,21,2,55,2,06,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10745,3,000,21,2,60,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10746,3,000,21,2,60,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10747,3,000,21,2,60,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +10748,3,000,20,2,65,1,12,1,2,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10749,3,000,20,2,68,1,02,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10750,3,000,20,2,85,1,02,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10751,3,000,20,2,87,1,02,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10752,3,000,20,2,89,1,02,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10753,3,000,20,2,89,1,02,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10754,3,000,20,2,90,1,01,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10755,3,000,20,2,90,1,01,1,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10756,3,000,20,1,25,1,02,2,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10757,3,000,20,1,51,1,02,2,1,0,0,2,55,079,001700,4003,4,9999,99999,99999999,9,99999,99999999,20007,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.1059094,-088.0203575,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02801,2,99999,99999,09600,012,004,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003719,53225 +10758,3,000,21,2,62,2,06,2,1,0,0,2,48,425,000101,1038,1,9999,99999,99999999,9,99999,99999999,1285596,0,0,0,0,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2436445,-097.8254988,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +10759,3,000,21,2,83,1,08,2,2,0,0,2,48,425,000101,1038,1,9999,99999,99999999,9,99999,99999999,1285596,0,0,0,0,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2436445,-097.8254988,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +10760,3,000,21,2,83,1,08,2,2,0,0,2,48,425,000101,1038,1,9999,99999,99999999,9,99999,99999999,1285596,0,0,0,0,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2436445,-097.8254988,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +10761,3,000,25,1,22,1,08,2,2,0,0,2,48,425,000101,1038,1,9999,99999,99999999,9,99999,99999999,1285596,0,0,0,0,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2436445,-097.8254988,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +10762,3,000,20,1,67,2,06,1,1,0,0,2,48,425,000101,1041,1,9999,99999,99999999,9,99999,99999999,1318827,3226,0,0,3226,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2090780,-097.8778823,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76433 +10763,3,000,20,1,68,2,06,1,1,0,0,2,48,425,000101,1041,1,9999,99999,99999999,9,99999,99999999,1318827,3226,0,0,3226,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2090780,-097.8778823,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76433 +10764,3,000,20,1,76,1,11,2,2,0,0,2,48,425,000101,1041,1,9999,99999,99999999,9,99999,99999999,1318827,3226,0,0,3226,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2090780,-097.8778823,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76433 +10765,3,000,25,2,2,1,08,2,2,0,0,1,48,425,000101,1041,1,9999,99999,99999999,9,99999,99999999,1318827,3226,0,0,3226,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2090780,-097.8778823,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76433 +10766,3,000,27,1,14,1,08,2,2,0,0,1,48,425,000101,1041,1,9999,99999,99999999,9,99999,99999999,1318827,3226,0,0,3226,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2090780,-097.8778823,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76433 +10767,3,000,30,1,15,2,01,2,1,0,0,1,48,425,000101,1041,1,9999,99999,99999999,9,99999,99999999,1318827,3226,0,0,3226,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2090780,-097.8778823,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76433 +10768,3,000,20,1,81,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10769,3,000,20,1,81,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10770,3,000,20,1,87,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10771,3,000,20,1,87,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10772,3,000,20,2,25,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10773,3,000,20,2,25,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10774,3,000,20,2,43,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10775,3,000,20,2,49,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10776,3,000,20,2,50,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10777,3,000,20,2,50,1,01,2,1,0,0,2,25,021,410100,5027,5,9999,99999,99999999,9,99999,99999999,57288,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,24820,A,00618320,148,1,99999,99999999,+42.0682889,-071.2503071,L,1,14454,71634,71650,1,N,N,24855,S,02378021,00906,1,99999,99999,04950,069,031,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000780,02035 +10778,3,000,25,1,57,1,04,2,1,0,0,2,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10779,3,000,25,2,2,1,09,2,2,0,0,1,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10780,3,000,25,2,6,1,01,2,1,0,0,1,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10781,3,000,25,2,14,1,02,2,1,0,0,1,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10782,3,000,25,2,17,1,01,2,1,0,0,1,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10783,3,000,25,2,19,1,02,2,1,0,0,2,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10784,3,000,25,2,21,2,11,2,2,0,0,2,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10785,3,000,25,2,21,2,11,2,2,0,0,2,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10786,3,000,25,2,21,2,11,2,2,0,0,2,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10787,3,000,25,2,28,2,06,2,1,0,0,2,24,031,702200,1018,1,9999,99999,99999999,9,99999,99999999,17869,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0087789,-076.9995949,L,1,23224,99999,99999,9,N,N,72450,S,02390301,01007,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20901 +10788,3,000,21,2,45,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10789,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10790,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10791,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10792,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10793,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10794,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10795,3,000,21,2,47,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10796,3,000,21,2,49,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10797,3,000,21,2,49,1,01,2,1,0,0,2,42,129,805903,1003,1,9999,99999,99999999,9,99999,99999999,3271480,0,0,0,0,0,38300,14,999,99999,99999999,A,01209191,66376,A,01201654,430,2,99999,99999999,+40.1994023,-079.8070043,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02013,1,99999,99999,03210,058,032,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002340,15012 +10798,3,000,25,2,26,1,02,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10799,3,000,25,2,26,1,02,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10800,3,000,25,2,26,1,02,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10801,3,000,25,2,26,1,02,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10802,3,000,25,2,26,1,04,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10803,3,000,25,2,26,1,04,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10804,3,000,25,2,26,1,04,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10805,3,000,25,2,26,2,11,2,2,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10806,3,000,25,2,27,1,02,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10807,3,000,25,2,27,1,02,2,1,0,0,2,06,077,005137,4012,4,9999,99999,99999999,9,99999,99999999,428218,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,91870,S,01935192,488,9,99999,99999999,+37.7815636,-121.2097238,L,1,99999,99999,99999,9,N,N,45484,A,02411024,07709,4,99999,99999,23610,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,54145,U,99999,U,,95337 +10808,3,000,21,1,50,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10809,3,000,21,1,50,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10810,3,000,21,1,50,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10811,3,000,21,1,51,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10812,3,000,21,1,51,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10813,3,000,21,1,51,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10814,3,000,21,1,51,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10815,3,000,21,1,53,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10816,3,000,21,1,53,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10817,3,000,21,1,53,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +10818,3,000,20,1,53,1,04,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10819,3,000,20,1,53,1,04,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10820,3,000,20,1,53,1,04,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10821,3,000,20,1,53,1,04,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10822,3,000,20,1,53,1,04,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10823,3,000,20,1,53,1,04,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10824,3,000,20,1,53,2,11,2,2,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10825,3,000,20,1,53,2,11,2,2,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10826,3,000,20,1,53,2,11,2,2,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10827,3,000,20,1,77,1,01,2,1,0,0,2,06,037,108202,3012,3,9999,99999,99999999,9,99999,99999999,76778,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2759733,-118.5805376,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03705,4,99999,99999,22710,038,027,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91326 +10828,3,000,20,1,55,1,02,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10829,3,000,20,1,57,1,27,2,3,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10830,3,000,20,1,61,1,01,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10831,3,000,20,1,63,1,11,2,2,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10832,3,000,20,1,64,2,03,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10833,3,000,20,1,65,1,01,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10834,3,000,20,1,65,1,01,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10835,3,000,20,1,66,1,01,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10836,3,000,20,1,66,1,01,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10837,3,000,20,1,66,1,03,2,1,0,0,2,40,027,201612,2004,2,9999,99999,99999999,9,99999,99999999,331198,10458,0,0,10458,0,36420,04,999,99999,99999999,A,01101801,92093,S,01937788,416,7,99999,99999999,+35.3419943,-097.5271069,B,1,99999,99999,99999,9,Y,N,55000,A,02411311,21301,3,99999,99999,20250,054,024,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000005,73170 +10838,3,000,21,2,76,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10839,3,000,21,2,76,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10840,3,000,21,2,76,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10841,3,000,21,2,76,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10842,3,000,21,2,76,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10843,3,000,21,2,90,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10844,3,000,22,1,29,2,06,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10845,3,000,22,1,31,2,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10846,3,000,22,1,35,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10847,3,000,22,1,35,1,01,2,1,0,0,2,09,011,870501,3012,3,9999,99999,99999999,9,99999,99999999,3246126,0,0,0,0,0,35980,02,999,99999,99999999,N,00212799,48900,A,00213464,278,1,99999,99999999,+41.4657857,-072.0890057,L,1,99999,99999,76450,1,9,9,99999,9,99999999,20402,1,99999,99999,02580,042,019,01779780,99999,99999999,9,999,99999,99999999,999999,64135,U,99999,U,11-028,06382 +10848,3,000,20,1,22,1,04,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10849,3,000,20,1,22,1,04,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10850,3,000,20,1,23,1,04,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10851,3,000,20,1,25,2,01,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10852,3,000,20,1,26,1,09,2,2,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10853,3,000,20,1,27,1,09,2,2,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10854,3,000,20,1,28,1,09,2,2,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10855,3,000,20,1,28,2,01,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10856,3,000,20,1,28,2,01,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10857,3,000,20,1,29,1,04,2,1,0,0,2,53,033,023808,2002,2,9999,99999,99999999,9,99999,99999999,44249,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.6110281,-122.1922256,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,003593,98004 +10858,3,000,20,2,40,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10859,3,000,20,2,40,2,11,2,2,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10860,3,000,20,2,43,2,06,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10861,3,000,20,2,46,1,02,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10862,3,000,20,2,63,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10863,3,000,20,2,63,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10864,3,000,20,2,63,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10865,3,000,20,2,63,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10866,3,000,20,2,64,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10867,3,000,20,2,64,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +10868,3,000,25,1,7,1,01,2,1,0,0,1,05,083,950300,2052,2,9999,99999,99999999,9,99999,99999999,5836,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2885716,-093.7303683,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10869,3,000,25,2,8,1,01,2,1,0,0,1,05,083,950300,2052,2,9999,99999,99999999,9,99999,99999999,5836,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2885716,-093.7303683,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10870,3,000,25,2,8,1,01,2,1,0,0,1,05,083,950300,2052,2,9999,99999,99999999,9,99999,99999999,5836,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2885716,-093.7303683,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10871,3,000,25,2,8,1,01,2,1,0,0,1,05,083,950300,2052,2,9999,99999,99999999,9,99999,99999999,5836,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2885716,-093.7303683,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10872,3,000,34,2,20,1,01,2,1,0,0,2,05,083,950300,2052,2,9999,99999,99999999,9,99999,99999999,5836,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2885716,-093.7303683,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10873,3,000,34,2,24,1,01,2,1,0,0,2,05,083,950300,2052,2,9999,99999,99999999,9,99999,99999999,5836,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2885716,-093.7303683,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10874,3,000,20,2,56,1,01,1,1,0,0,2,05,083,950300,2054,2,9999,99999,99999999,9,99999,99999999,6027,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2878835,-093.7312179,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10875,3,000,20,2,56,1,01,1,1,0,0,2,05,083,950300,2054,2,9999,99999,99999999,9,99999,99999999,6027,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2878835,-093.7312179,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10876,3,000,20,2,56,1,01,1,1,0,0,2,05,083,950300,2054,2,9999,99999,99999999,9,99999,99999999,6027,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2878835,-093.7312179,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10877,3,000,20,2,58,1,01,1,1,0,0,2,05,083,950300,2054,2,9999,99999,99999999,9,99999,99999999,6027,0,0,0,0,0,99999,04,999,99999,99999999,A,00082850,93372,N,00068804,999,7,99999,99999999,+35.2878835,-093.7312179,L,9,99999,99999,99999,9,N,N,53480,A,02404472,01200,3,99999,99999,11130,074,006,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000115,72855 +10878,3,000,30,1,23,1,01,2,1,0,0,2,42,079,216502,1007,1,9999,99999,99999999,9,99999,99999999,40297,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0213983,-076.0650207,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10879,3,000,30,2,0,1,01,2,1,0,0,1,42,079,216502,1007,1,9999,99999,99999999,9,99999,99999999,40297,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0213983,-076.0650207,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10880,3,000,33,1,39,2,11,2,2,0,0,2,42,079,216502,1007,1,9999,99999,99999999,9,99999,99999999,40297,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0213983,-076.0650207,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10881,3,000,20,1,76,1,01,1,1,0,0,2,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10882,3,000,20,2,68,1,01,1,1,0,0,2,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10883,3,000,20,2,69,1,01,1,1,0,0,2,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10884,3,000,20,2,73,1,01,1,1,0,0,2,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10885,3,000,25,1,9,1,01,2,1,0,0,1,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10886,3,000,25,1,51,1,01,2,1,0,0,2,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10887,3,000,25,1,51,1,01,2,1,0,0,2,42,079,216502,1008,1,9999,99999,99999999,9,99999,99999999,588200,0,0,0,0,0,42540,09,999,99999,99999999,A,01209183,75064,A,01216734,999,2,99999,99999999,+41.0214344,-076.0729440,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00802,1,99999,99999,11700,116,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002406,18222 +10888,3,000,21,2,66,2,11,2,2,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10889,3,000,21,2,66,2,11,2,2,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10890,3,000,22,1,20,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10891,3,000,22,2,32,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10892,3,000,22,2,34,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10893,3,000,22,2,50,2,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10894,3,000,22,2,54,2,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10895,3,000,25,1,9,1,11,2,2,0,0,1,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10896,3,000,25,1,18,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10897,3,000,25,1,18,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +10898,3,000,25,1,8,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10899,3,000,25,1,8,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10900,3,000,25,1,8,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10901,3,000,25,1,9,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10902,3,000,25,1,9,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10903,3,000,25,1,9,1,09,2,2,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10904,3,000,25,1,46,1,02,2,1,0,0,2,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10905,3,000,25,1,46,1,02,2,1,0,0,2,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10906,3,000,25,2,1,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10907,3,000,25,2,1,1,01,2,1,0,0,1,27,037,060907,6018,6,9999,99999,99999999,9,99999,99999999,40442,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,20618,F,02394747,378,4,99999,99999999,+44.6751007,-093.1637372,L,1,99999,99999,99999,9,N,N,20618,A,02394747,01704,2,99999,99999,11820,58B,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002250,55024 +10908,3,000,25,1,18,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10909,3,000,25,1,18,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10910,3,000,25,1,18,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10911,3,000,25,1,18,1,09,2,2,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10912,3,000,25,1,19,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10913,3,000,25,1,19,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10914,3,000,25,1,19,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10915,3,000,25,1,20,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10916,3,000,25,1,20,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10917,3,000,25,1,20,1,01,2,1,0,0,2,12,085,001302,1008,1,9999,99999,99999999,9,99999,99999999,761332,952,0,0,952,0,38940,18,999,99999,99999999,A,00308550,92873,S,01935908,370,5,99999,99999999,+27.1587439,-080.1800555,B,1,99999,99999,99999,9,N,N,58727,S,02403441,08500,3,99999,99999,01290,082,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000100,34997 +10918,3,000,21,2,32,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10919,3,000,21,2,32,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10920,3,000,21,2,33,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10921,3,000,21,2,33,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10922,3,000,21,2,33,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10923,3,000,21,2,33,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10924,3,000,21,2,33,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10925,3,000,21,2,34,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10926,3,000,21,2,34,2,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10927,3,000,21,2,35,1,01,2,1,0,0,2,48,439,111546,3007,3,9999,99999,99999999,9,99999,99999999,48836,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6879258,-097.1857989,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02507,3,99999,99999,08700,094,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002313,76016 +10928,3,000,20,1,83,2,11,1,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10929,3,000,20,2,35,2,11,1,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10930,3,000,20,2,35,2,11,1,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10931,3,000,20,2,38,2,11,1,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10932,3,000,20,2,70,2,01,1,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10933,3,000,20,2,70,2,01,1,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10934,3,000,20,2,70,2,01,1,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10935,3,000,20,2,71,2,01,1,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10936,3,000,20,2,71,2,11,1,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10937,3,000,20,1,68,2,11,2,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +10938,3,000,20,1,55,2,06,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10939,3,000,20,1,55,2,06,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10940,3,000,20,1,55,2,06,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10941,3,000,20,1,62,2,11,2,2,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10942,3,000,20,1,62,2,11,2,2,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10943,3,000,20,1,62,2,11,2,2,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10944,3,000,20,1,64,1,02,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10945,3,000,20,1,64,1,02,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10946,3,000,20,1,64,1,02,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10947,3,000,20,1,64,2,06,2,1,0,0,2,12,011,020323,1006,1,9999,99999,99999999,9,99999,99999999,64316,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2585628,-080.2474711,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E028,33065 +10948,3,000,25,2,21,2,11,2,2,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10949,3,000,25,2,22,2,11,2,2,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10950,3,000,25,2,26,2,01,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10951,3,000,25,2,30,2,01,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10952,3,000,25,2,35,1,01,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10953,3,000,25,2,39,1,01,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10954,3,000,25,2,39,1,01,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10955,3,000,27,1,12,1,01,2,1,0,0,1,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10956,3,000,27,2,27,2,06,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10957,3,000,28,2,67,1,01,2,1,0,0,2,12,086,007902,3018,3,9999,99999,99999999,9,99999,99999999,94661,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,91714,S,01935815,370,5,99999,99999999,+25.6916508,-080.2746718,L,1,33124,99999,99999,9,9,9,99999,9,99999999,08616,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000641,33143 +10958,3,000,21,1,55,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10959,3,000,21,1,55,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10960,3,000,21,1,55,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10961,3,000,21,1,72,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10962,3,000,21,1,72,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10963,3,000,21,2,31,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10964,3,000,21,2,37,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10965,3,000,21,2,51,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10966,3,000,21,2,51,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10967,3,000,22,1,46,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +10968,3,000,20,2,67,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10969,3,000,20,2,76,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10970,3,000,20,2,76,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10971,3,000,20,2,79,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10972,3,000,21,2,72,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10973,3,000,21,2,72,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10974,3,000,21,2,72,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10975,3,000,21,2,72,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10976,3,000,21,2,72,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10977,3,000,21,2,76,1,01,2,1,0,0,2,06,053,012800,1003,1,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,41500,20,999,99999,99999999,A,00277291,92970,S,01935302,999,9,99999,99999999,+36.5914338,-121.9049616,L,1,99999,99999,99999,9,N,N,48872,A,02411145,05301,4,99999,99999,25530,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,80362,U,99999,U,,93940 +10978,3,000,21,2,86,1,01,2,1,0,0,2,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10979,3,000,22,1,53,1,01,2,1,0,0,2,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10980,3,000,22,2,35,1,01,2,1,0,0,2,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10981,3,000,22,2,40,1,01,2,1,0,0,2,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10982,3,000,24,1,40,1,01,2,1,0,0,2,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10983,3,000,25,1,7,1,01,2,1,0,0,1,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10984,3,000,25,1,7,1,01,2,1,0,0,1,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10985,3,000,25,1,7,1,01,2,1,0,0,1,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10986,3,000,25,1,7,1,01,2,1,0,0,1,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10987,3,000,25,1,7,1,01,2,1,0,0,1,23,001,020500,3000,3,9999,99999,99999999,9,99999,99999999,31879,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.0971338,-070.1943030,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,060,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387405,04240 +10988,3,000,20,2,50,1,01,2,1,0,0,2,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10989,3,000,21,2,46,1,01,2,1,0,0,2,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10990,3,000,21,2,78,1,01,2,1,0,0,2,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10991,3,000,25,1,3,1,01,2,1,0,0,1,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10992,3,000,25,1,3,1,01,2,1,0,0,1,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10993,3,000,25,1,14,1,01,2,1,0,0,1,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10994,3,000,25,1,14,1,01,2,1,0,0,1,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10995,3,000,25,1,16,2,08,2,2,0,0,1,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10996,3,000,25,2,8,1,01,2,1,0,0,1,40,039,960701,3019,3,5560,13905,02418814,R,99999,99999999,15847,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351190,-098.6982934,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10997,3,000,20,2,76,1,01,1,1,0,0,2,40,039,960701,3020,3,5560,13905,02418814,R,99999,99999999,14445,0,0,0,0,0,48220,03,999,99999,99999999,A,01101807,93614,S,01937908,999,7,99999,99999999,+35.5351173,-098.6977215,L,2,99999,99999,99999,9,Y,N,79450,A,02412198,21600,3,99999,99999,32070,057,038,01102857,99999,99999999,9,130,13911,02804809,999999,93457,U,99999,U,000019,73096 +10998,3,000,20,1,33,2,06,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +10999,3,000,20,1,35,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11000,3,000,20,1,35,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11001,3,000,20,1,36,2,03,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11002,3,000,20,1,36,2,03,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11003,3,000,20,1,37,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11004,3,000,20,1,37,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11005,3,000,20,1,39,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11006,3,000,20,1,39,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11007,3,000,20,1,39,1,02,2,1,0,0,2,47,157,008200,1000,1,9999,99999,99999999,9,99999,99999999,501590,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0821128,-089.9440283,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,093,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008159,38111 +11008,3,000,25,1,35,1,04,2,1,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11009,3,000,25,1,35,1,04,2,1,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11010,3,000,25,1,35,2,06,2,1,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11011,3,000,25,1,38,2,06,2,1,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11012,3,000,25,1,38,2,06,2,1,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11013,3,000,25,1,52,2,11,2,2,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11014,3,000,25,1,53,2,11,2,2,0,0,2,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11015,3,000,25,2,0,1,01,2,1,0,0,1,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11016,3,000,25,2,2,1,04,2,1,0,0,1,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11017,3,000,25,2,10,1,15,2,2,0,0,1,06,037,432101,1005,1,9999,99999,99999999,9,99999,99999999,48316,0,0,0,0,0,31080,27,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.0946023,-118.0366990,L,1,31084,99999,99999,9,N,N,78148,A,02412047,03717,4,12090,12120,99999,049,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91780 +11018,3,000,25,2,19,2,11,2,2,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11019,3,000,25,2,19,2,15,2,2,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11020,3,000,25,2,22,2,01,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11021,3,000,25,2,25,2,11,2,2,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11022,3,000,25,2,27,1,01,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11023,3,000,25,2,42,2,06,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11024,3,000,25,2,50,2,02,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11025,3,000,25,2,50,2,02,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11026,3,000,25,2,55,2,02,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11027,3,000,25,2,60,2,06,2,1,0,0,2,12,086,002404,2002,2,9999,99999,99999999,9,99999,99999999,76711,0,0,0,0,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.8039877,-080.2266589,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,111,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005911,33142 +11028,3,000,27,1,13,1,04,2,1,0,0,1,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11029,3,000,27,1,19,2,06,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11030,3,000,27,2,19,1,04,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11031,3,000,27,2,24,2,03,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11032,3,000,28,1,14,2,06,2,1,0,0,1,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11033,3,000,28,1,20,2,06,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11034,3,000,28,1,23,2,06,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11035,3,000,28,1,24,2,06,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11036,3,000,28,1,24,2,06,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11037,3,000,28,1,24,2,06,2,1,0,0,2,06,059,011504,2018,2,9999,99999,99999999,9,99999,99999999,79194,0,0,0,0,0,31080,39,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.8758143,-117.8822575,L,1,11244,99999,99999,9,N,N,28000,A,02410556,05907,4,14730,14760,99999,065,029,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92831 +11038,3,000,25,2,16,2,11,2,2,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11039,3,000,25,2,17,2,06,2,1,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11040,3,000,30,1,0,1,01,2,1,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11041,3,000,30,1,0,1,01,2,1,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11042,3,000,30,1,2,2,01,2,1,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11043,3,000,30,2,0,2,11,2,2,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11044,3,000,30,2,8,2,06,2,1,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11045,3,000,30,2,15,2,11,2,2,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11046,3,000,33,1,24,2,06,2,1,0,0,2,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11047,3,000,33,2,0,2,06,2,1,0,0,1,48,439,104400,3029,3,9999,99999,99999999,9,99999,99999999,16003,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997646,-097.3434228,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004097,76110 +11048,3,000,20,2,57,1,02,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11049,3,000,20,2,59,1,01,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11050,3,000,20,2,59,2,11,2,2,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11051,3,000,20,2,69,2,06,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11052,3,000,21,1,24,2,06,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11053,3,000,21,1,27,2,11,2,2,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11054,3,000,21,1,28,1,01,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11055,3,000,21,1,28,2,06,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11056,3,000,21,1,29,2,06,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11057,3,000,21,1,31,1,01,2,1,0,0,2,06,097,153001,4006,4,9999,99999,99999999,9,99999,99999999,169905,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4478360,-122.7340276,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95401 +11058,3,000,20,1,27,2,06,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11059,3,000,20,1,28,1,01,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11060,3,000,20,1,28,1,01,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11061,3,000,20,1,29,2,11,2,2,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11062,3,000,20,1,29,2,11,2,2,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11063,3,000,20,1,45,2,11,2,2,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11064,3,000,20,1,51,1,06,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11065,3,000,20,1,57,1,04,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11066,3,000,20,1,57,1,04,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11067,3,000,20,1,57,1,04,2,1,0,0,2,06,071,002021,2000,2,9999,99999,99999999,9,99999,99999999,93976,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1420570,-117.5516195,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,12960,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91737 +11068,3,000,25,1,14,1,01,2,1,0,0,1,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11069,3,000,25,1,15,1,01,2,1,0,0,1,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11070,3,000,25,1,26,1,02,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11071,3,000,25,1,28,1,02,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11072,3,000,25,1,43,1,02,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11073,3,000,25,2,19,1,01,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11074,3,000,25,2,19,1,01,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11075,3,000,25,2,19,1,01,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11076,3,000,25,2,66,1,01,2,1,0,0,2,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11077,3,000,27,1,12,2,06,2,1,0,0,1,13,309,780100,2025,2,9999,99999,99999999,9,99999,99999999,312602,972,0,0,972,0,99999,12,999,99999,99999999,A,00351278,91308,S,01936288,999,5,99999,99999999,+32.1765783,-082.6807792,B,9,99999,99999,99999,9,N,N,33392,A,02403708,04500,3,99999,99999,05640,149,019,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,30428 +11078,3,000,20,1,56,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11079,3,000,20,1,59,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11080,3,000,20,1,59,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11081,3,000,20,1,60,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11082,3,000,20,1,60,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11083,3,000,20,1,60,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11084,3,000,20,1,61,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11085,3,000,20,1,61,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11086,3,000,20,1,66,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11087,3,000,20,1,66,1,01,1,1,0,0,2,12,105,014201,1003,1,9999,99999,99999999,9,99999,99999999,6075944,79838,0,0,79838,0,29460,09,999,99999,99999999,A,00295747,91859,S,01935826,422,5,99999,99999999,+27.9496121,-081.5773016,B,1,99999,99999,99999,9,9,9,99999,9,99999999,10504,3,99999,99999,01590,042,026,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000524,33898 +11088,3,000,25,2,20,1,01,2,1,0,0,2,37,167,931204,2014,2,9999,99999,99999999,9,99999,99999999,7669,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3689200,-080.1840643,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11089,3,000,25,2,20,1,01,2,1,0,0,2,37,167,931204,2014,2,9999,99999,99999999,9,99999,99999999,7669,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3689200,-080.1840643,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11090,3,000,25,2,20,1,01,2,1,0,0,2,37,167,931204,2014,2,9999,99999,99999999,9,99999,99999999,7669,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3689200,-080.1840643,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11091,3,000,25,2,20,1,01,2,1,0,0,2,37,167,931204,2014,2,9999,99999,99999999,9,99999,99999999,7669,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3689200,-080.1840643,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11092,3,000,30,1,28,1,07,2,2,0,0,2,37,167,931204,2014,2,9999,99999,99999999,9,99999,99999999,7669,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3689200,-080.1840643,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11093,3,000,20,1,44,1,01,1,1,0,0,2,37,167,931204,2015,2,9999,99999,99999999,9,99999,99999999,67192,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3679633,-080.1831442,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11094,3,000,20,1,39,1,01,2,1,0,0,2,37,167,931204,2015,2,9999,99999,99999999,9,99999,99999999,67192,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3679633,-080.1831442,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11095,3,000,20,1,39,1,01,2,1,0,0,2,37,167,931204,2015,2,9999,99999,99999999,9,99999,99999999,67192,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3679633,-080.1831442,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11096,3,000,20,1,39,1,01,2,1,0,0,2,37,167,931204,2015,2,9999,99999,99999999,9,99999,99999999,67192,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3679633,-080.1831442,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11097,3,000,20,1,46,1,01,2,1,0,0,2,37,167,931204,2015,2,9999,99999,99999999,9,99999,99999999,67192,0,0,0,0,0,10620,08,999,99999,99999999,A,01025844,92296,N,01027197,172,5,99999,99999999,+35.3679633,-080.1831442,L,2,99999,99999,99999,9,Y,N,00680,A,02403073,03300,3,99999,99999,04320,066,033,01027616,99999,99999999,9,999,99999,99999999,999999,00982,U,99999,U,000003,28001 +11098,3,000,21,2,39,1,01,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11099,3,000,21,2,45,1,04,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11100,3,000,21,2,45,1,04,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11101,3,000,21,2,51,1,01,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11102,3,000,21,2,51,1,01,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11103,3,000,21,2,51,1,01,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11104,3,000,21,2,51,1,01,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11105,3,000,21,2,51,1,01,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11106,3,000,21,2,51,1,04,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11107,3,000,21,2,51,1,04,2,1,0,0,2,06,085,506502,1012,1,9999,99999,99999999,9,99999,99999999,89983,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2925223,-121.9388498,L,1,99999,99999,99999,9,N,N,10345,A,02409971,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95008 +11108,3,000,22,2,22,2,11,2,2,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11109,3,000,25,1,31,1,01,2,1,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11110,3,000,25,1,45,1,01,2,1,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11111,3,000,25,1,48,1,01,2,1,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11112,3,000,25,1,49,2,11,2,2,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11113,3,000,25,2,2,2,06,2,1,0,0,1,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11114,3,000,25,2,47,1,11,2,2,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11115,3,000,29,2,66,1,01,2,1,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11116,3,000,29,2,73,1,01,2,1,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11117,3,000,29,2,80,2,06,2,1,0,0,2,12,049,970301,2052,2,9999,99999,99999999,9,99999,99999999,16212,0,0,0,0,0,48100,17,999,99999,99999999,A,00295746,93549,S,01935965,422,5,99999,99999999,+27.5487193,-081.8161569,L,2,99999,99999,99999,9,Y,N,75375,A,02405690,02799,3,99999,99999,00750,056,026,00294478,99999,99999999,9,999,99999,99999999,999999,92917,U,99999,U,000004,33873 +11118,3,000,21,1,58,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11119,3,000,21,1,59,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11120,3,000,21,1,59,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11121,3,000,21,1,59,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11122,3,000,21,1,59,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11123,3,000,21,1,59,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11124,3,000,21,1,59,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11125,3,000,21,1,60,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11126,3,000,21,1,60,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11127,3,000,21,1,60,1,01,2,1,0,0,2,09,009,155000,4011,4,9999,99999,99999999,9,99999,99999999,18258,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,82870,C,00213530,408,1,99999,99999999,+41.2707682,-072.9369517,L,1,99999,99999,75700,1,N,N,82800,A,02378295,20602,1,99999,99999,04950,115,014,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-181,06516 +11128,3,000,21,1,27,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11129,3,000,21,1,31,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11130,3,000,21,1,31,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11131,3,000,21,1,32,1,02,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11132,3,000,21,1,41,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11133,3,000,21,1,42,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11134,3,000,21,1,42,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11135,3,000,21,1,42,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11136,3,000,21,1,45,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11137,3,000,21,1,48,1,01,2,1,0,0,2,39,017,013300,1007,1,9999,99999,99999999,9,99999,99999999,175812,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,49840,F,01085814,178,3,99999,99999999,+39.5096193,-084.3674517,L,1,99999,99999,99999,9,N,N,49840,A,01085814,03801,2,99999,99999,04440,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AEE,45044 +11138,3,000,25,1,17,2,06,2,1,0,0,1,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11139,3,000,25,1,20,2,06,2,1,0,0,2,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11140,3,000,25,1,22,2,06,2,1,0,0,2,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11141,3,000,25,1,37,1,02,2,1,0,0,2,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11142,3,000,25,1,38,1,02,2,1,0,0,2,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11143,3,000,25,1,38,1,02,2,1,0,0,2,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11144,3,000,25,2,1,1,02,2,1,0,0,1,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11145,3,000,25,2,1,1,02,2,1,0,0,1,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11146,3,000,25,2,2,1,02,2,1,0,0,1,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11147,3,000,25,2,2,1,02,2,1,0,0,1,34,013,012000,3003,3,9999,99999,99999999,9,99999,99999999,10040,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,34450,A,00877363,408,2,99999,99999999,+40.7140410,-074.2473646,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01402,1,99999,99999,07680,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045W09,07111 +11148,3,000,20,2,52,2,11,2,2,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11149,3,000,21,1,38,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11150,3,000,21,1,48,1,08,2,2,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11151,3,000,21,1,65,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11152,3,000,21,1,65,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11153,3,000,21,1,65,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11154,3,000,21,1,70,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11155,3,000,21,1,72,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11156,3,000,21,1,72,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11157,3,000,21,2,32,1,01,2,1,0,0,2,12,115,002742,3082,3,9999,99999,99999999,9,99999,99999999,195380,0,0,0,0,0,35840,17,999,99999,99999999,A,00295741,92431,S,01935873,412,5,99999,99999999,+27.0511966,-082.1459353,L,1,99999,99999,99999,9,Y,N,49675,A,02404398,11503,3,99999,99999,01680,074,023,00294478,99999,99999999,9,999,99999,99999999,999999,71060,U,99999,U,000079,34288 +11158,3,000,20,1,39,1,09,1,2,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11159,3,000,20,1,55,1,04,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11160,3,000,20,1,55,1,04,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11161,3,000,20,1,86,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11162,3,000,20,1,86,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11163,3,000,20,1,86,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11164,3,000,20,1,90,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11165,3,000,20,2,56,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11166,3,000,20,2,60,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11167,3,000,20,2,60,1,01,1,1,0,0,2,17,031,804203,1022,1,9999,99999,99999999,9,99999,99999999,1285353,0,0,0,0,0,16980,08,999,99999,99999999,A,01784766,03831,A,00428638,176,3,99999,99999999,+42.0744340,-088.1484470,L,1,16984,99999,99999,9,N,N,70564,A,02399841,03101,2,99999,99999,05050,052,026,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,700011,60010 +11168,3,000,20,1,49,1,01,2,1,0,0,2,19,041,080100,3030,3,9999,99999,99999999,9,99999,99999999,1314038,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2308663,-095.1214490,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11169,3,000,20,1,64,1,01,2,1,0,0,2,19,041,080100,3030,3,9999,99999,99999999,9,99999,99999999,1314038,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2308663,-095.1214490,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11170,3,000,20,1,40,1,01,2,1,0,0,2,19,041,080100,3032,3,9999,99999,99999999,9,99999,99999999,709042,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2088784,-095.0968937,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11171,3,000,20,1,42,1,01,2,1,0,0,2,19,041,080100,3032,3,9999,99999,99999999,9,99999,99999999,709042,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2088784,-095.0968937,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11172,3,000,21,1,65,1,01,2,1,0,0,2,19,041,080100,3032,3,9999,99999,99999999,9,99999,99999999,709042,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2088784,-095.0968937,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11173,3,000,25,2,9,2,01,2,1,0,0,1,19,041,080100,3032,3,9999,99999,99999999,9,99999,99999999,709042,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2088784,-095.0968937,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11174,3,000,21,1,32,2,01,2,1,0,0,2,19,041,080100,3033,3,9999,99999,99999999,9,99999,99999999,1271794,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2092277,-095.0821451,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11175,3,000,21,2,31,1,01,2,1,0,0,2,19,041,080100,3033,3,9999,99999,99999999,9,99999,99999999,1271794,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2092277,-095.0821451,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11176,3,000,21,2,34,1,01,2,1,0,0,2,19,041,080100,3033,3,9999,99999,99999999,9,99999,99999999,1271794,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2092277,-095.0821451,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11177,3,000,21,2,34,1,01,2,1,0,0,2,19,041,080100,3033,3,9999,99999,99999999,9,99999,99999999,1271794,0,0,0,0,0,43980,04,999,99999,99999999,A,00465625,92901,G,00468370,517,4,99999,99999999,+43.2092277,-095.0821451,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,26910,002,001,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041003,51301 +11178,3,000,20,1,35,1,01,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11179,3,000,20,1,35,1,01,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11180,3,000,20,1,35,1,01,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11181,3,000,20,1,35,2,03,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11182,3,000,20,1,38,2,03,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11183,3,000,20,1,41,2,03,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11184,3,000,20,1,43,2,11,2,2,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11185,3,000,20,1,44,2,01,2,1,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11186,3,000,20,1,44,2,11,2,2,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11187,3,000,20,1,44,2,11,2,2,0,0,2,17,043,840704,2002,2,9999,99999,99999999,9,99999,99999999,282008,5173,0,0,5173,0,16980,05,999,99999,99999999,A,00422191,00250,A,00428571,176,3,99999,99999999,+41.9330715,-087.9496822,B,1,16984,99999,99999,9,N,N,05248,A,02398095,04302,2,99999,99999,13970,077,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,001045,60106 +11188,3,000,20,2,49,1,01,2,1,0,0,2,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11189,3,000,20,2,77,1,01,2,1,0,0,2,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11190,3,000,21,2,43,1,01,2,1,0,0,2,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11191,3,000,25,1,12,2,07,2,2,0,0,1,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11192,3,000,25,2,1,1,01,2,1,0,0,1,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11193,3,000,25,2,77,1,01,2,1,0,0,2,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11194,3,000,33,2,83,1,01,2,1,0,0,2,13,087,970600,3046,3,9999,99999,99999999,9,99999,99999999,37880,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8956224,-084.5545429,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11195,3,000,20,1,42,2,06,2,1,0,0,2,13,087,970600,3047,3,9999,99999,99999999,9,99999,99999999,17782,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8943295,-084.5587301,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11196,3,000,20,2,43,1,02,2,1,0,0,2,13,087,970600,3047,3,9999,99999,99999999,9,99999,99999999,17782,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8943295,-084.5587301,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11197,3,000,20,2,43,1,02,2,1,0,0,2,13,087,970600,3047,3,9999,99999,99999999,9,99999,99999999,17782,0,0,0,0,0,12460,02,999,99999,99999999,A,00352234,90192,S,01936097,999,5,99999,99999999,+30.8943295,-084.5587301,L,2,99999,99999,99999,9,Y,N,04896,A,02403146,03900,3,99999,99999,01710,171,011,01705317,99999,99999999,9,999,99999,99999999,999999,04627,U,99999,U,000513,39819 +11198,3,000,33,2,45,2,06,2,1,0,0,2,06,065,042624,2020,2,9999,99999,99999999,9,99999,99999999,40889,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9205661,-117.1545011,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11199,3,000,36,2,60,2,06,2,1,0,0,2,06,065,042624,2020,2,9999,99999,99999999,9,99999,99999999,40889,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9205661,-117.1545011,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11200,3,000,36,2,60,2,06,2,1,0,0,2,06,065,042624,2020,2,9999,99999,99999999,9,99999,99999999,40889,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9205661,-117.1545011,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11201,3,000,20,1,20,2,06,2,1,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11202,3,000,20,1,28,2,08,2,2,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11203,3,000,20,1,32,1,01,2,1,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11204,3,000,20,1,34,1,01,2,1,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11205,3,000,20,1,34,1,01,2,1,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11206,3,000,20,1,34,1,04,2,1,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11207,3,000,20,1,48,1,02,2,1,0,0,2,06,065,042624,2021,2,9999,99999,99999999,9,99999,99999999,87835,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92450,S,01935250,348,9,99999,99999999,+33.9251066,-117.1575880,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06519,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92555 +11208,3,000,20,2,44,2,01,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11209,3,000,20,2,50,1,02,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11210,3,000,20,2,50,1,02,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11211,3,000,20,2,61,1,02,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11212,3,000,20,2,61,1,02,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11213,3,000,21,1,35,1,01,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11214,3,000,21,1,39,1,01,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11215,3,000,21,1,46,1,02,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11216,3,000,21,1,46,1,02,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11217,3,000,21,2,40,1,01,2,1,0,0,2,37,125,950304,1042,1,9999,99999,99999999,9,99999,99999999,1794330,0,0,0,0,0,38240,08,999,99999,99999999,A,01008573,93648,N,01026975,246,5,99999,99999999,+35.2135724,-079.6370507,L,2,99999,99999,99999,9,N,N,34160,S,02812798,03700,3,99999,99999,03090,052,025,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000WND,27281 +11218,3,000,25,2,11,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11219,3,000,25,2,11,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11220,3,000,25,2,11,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11221,3,000,25,2,11,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11222,3,000,25,2,11,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11223,3,000,25,2,13,2,01,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11224,3,000,25,2,13,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11225,3,000,25,2,13,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11226,3,000,25,2,13,2,06,2,1,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11227,3,000,25,2,14,2,11,2,2,0,0,1,06,083,002310,1005,1,9999,99999,99999999,9,99999,99999999,26974,0,0,0,0,0,42200,24,999,99999,99999999,A,00277306,92908,S,01935296,999,9,99999,99999999,+34.9731678,-120.4388920,L,1,99999,99999,99999,9,Y,N,69196,A,02411824,08301,4,05580,35670,99999,035,019,01779778,99999,99999999,9,999,99999,99999999,999999,79417,U,99999,U,,93458 +11228,3,000,25,1,11,2,44,2,4,0,0,1,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11229,3,000,25,1,20,1,01,2,1,0,0,2,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11230,3,000,25,1,45,2,06,2,1,0,0,2,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11231,3,000,25,2,3,2,44,2,4,0,0,1,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11232,3,000,25,2,14,1,01,2,1,0,0,1,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11233,3,000,25,2,14,1,01,2,1,0,0,1,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11234,3,000,25,2,14,2,01,2,1,0,0,1,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11235,3,000,27,2,23,1,11,2,2,0,0,2,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11236,3,000,30,1,12,2,11,2,2,0,0,1,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11237,3,000,30,1,21,1,11,2,2,0,0,2,09,009,180500,2006,2,9999,99999,99999999,9,99999,99999999,24131,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,22910,A,00213425,408,1,99999,99999999,+41.3208562,-072.8563999,L,1,99999,99999,75700,1,N,N,22980,S,02377819,20604,1,99999,99999,01290,099,034,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-033,06512 +11238,3,000,21,2,29,1,01,2,1,0,0,2,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11239,3,000,21,2,41,1,02,2,1,0,0,2,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11240,3,000,22,1,31,1,08,2,2,0,0,2,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11241,3,000,25,1,7,1,15,2,2,0,0,1,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11242,3,000,25,1,10,2,11,2,2,0,0,1,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11243,3,000,25,2,10,1,01,2,1,0,0,1,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11244,3,000,36,1,58,1,08,2,2,0,0,2,39,049,000820,1008,1,9999,99999,99999999,9,99999,99999999,27189,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0250302,-082.9631202,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43224 +11245,3,000,20,1,51,1,02,1,1,0,0,2,39,049,000820,1009,1,9999,99999,99999999,9,99999,99999999,84930,730,0,0,730,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0237862,-082.9566470,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43211 +11246,3,000,20,1,51,1,02,1,1,0,0,2,39,049,000820,1009,1,9999,99999,99999999,9,99999,99999999,84930,730,0,0,730,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0237862,-082.9566470,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43211 +11247,3,000,20,1,52,1,02,1,1,0,0,2,39,049,000820,1009,1,9999,99999,99999999,9,99999,99999999,84930,730,0,0,730,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0237862,-082.9566470,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AEW,43211 +11248,3,000,21,1,48,1,01,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11249,3,000,21,1,64,1,01,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11250,3,000,21,2,37,1,01,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11251,3,000,21,2,37,1,01,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11252,3,000,21,2,37,1,01,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11253,3,000,21,2,48,2,11,2,2,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11254,3,000,21,2,49,2,11,2,2,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11255,3,000,21,2,54,1,04,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11256,3,000,21,2,67,2,11,2,2,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11257,3,000,21,2,77,1,01,2,1,0,0,2,06,067,008135,4004,4,9999,99999,99999999,9,99999,99999999,42212,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6793043,-121.3089760,L,1,99999,99999,99999,9,N,N,13588,A,02409464,06701,4,99999,99999,34620,008,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95621 +11258,3,000,20,1,72,1,01,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11259,3,000,20,1,72,1,01,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11260,3,000,20,1,72,1,01,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11261,3,000,20,1,73,1,01,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11262,3,000,20,1,74,1,02,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11263,3,000,20,1,74,2,11,2,2,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11264,3,000,20,1,75,1,04,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11265,3,000,20,1,78,1,04,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11266,3,000,20,1,79,1,02,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11267,3,000,20,1,79,1,02,2,1,0,0,2,06,071,002103,3000,3,9999,99999,99999999,9,99999,99999999,364382,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.1032290,-117.6085400,L,1,99999,99999,99999,9,N,N,59451,A,02411514,07111,4,07950,08160,99999,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91730 +11268,3,000,20,2,64,1,01,2,1,0,0,2,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11269,3,000,20,2,64,1,01,2,1,0,0,2,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11270,3,000,25,1,12,1,07,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11271,3,000,25,2,8,1,07,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11272,3,000,25,2,9,1,07,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11273,3,000,25,2,9,1,07,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11274,3,000,25,2,10,2,11,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11275,3,000,25,2,11,1,07,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11276,3,000,27,2,15,1,07,2,2,0,0,1,17,019,010204,1015,1,9999,99999,99999999,9,99999,99999999,5913,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3091481,-088.1440754,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11277,3,000,20,1,19,2,01,1,1,0,0,2,17,019,010204,1016,1,9999,99999,99999999,9,99999,99999999,12214,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,62796,A,00429618,999,3,99999,99999999,+40.3053558,-088.1418517,L,1,99999,99999,99999,9,N,N,62783,A,02399042,01902,2,33210,33240,99999,104,052,01779784,99999,99999999,9,999,99999,99999999,999999,73369,U,99999,U,RA5000,61866 +11278,3,000,25,1,22,1,01,2,1,0,0,2,28,117,950201,3044,3,9999,99999,99999999,9,99999,99999999,480770,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6912018,-088.6113877,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11279,3,000,25,1,22,1,01,2,1,0,0,2,28,117,950201,3044,3,9999,99999,99999999,9,99999,99999999,480770,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6912018,-088.6113877,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11280,3,000,25,1,23,1,01,2,1,0,0,2,28,117,950201,3044,3,9999,99999,99999999,9,99999,99999999,480770,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6912018,-088.6113877,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11281,3,000,25,1,67,1,01,2,1,0,0,2,28,117,950201,3044,3,9999,99999,99999999,9,99999,99999999,480770,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6912018,-088.6113877,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11282,3,000,33,1,3,1,02,2,1,0,0,1,28,117,950201,3044,3,9999,99999,99999999,9,99999,99999999,480770,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6912018,-088.6113877,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11283,3,000,20,2,61,1,02,1,1,0,0,2,28,117,950201,3045,3,9999,99999,99999999,9,99999,99999999,21595,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6923518,-088.6150029,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11284,3,000,20,2,84,1,01,1,1,0,0,2,28,117,950201,3045,3,9999,99999,99999999,9,99999,99999999,21595,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6923518,-088.6150029,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11285,3,000,20,2,84,1,01,1,1,0,0,2,28,117,950201,3045,3,9999,99999,99999999,9,99999,99999999,21595,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6923518,-088.6150029,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11286,3,000,20,1,30,1,01,2,1,0,0,2,28,117,950201,3045,3,9999,99999,99999999,9,99999,99999999,21595,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6923518,-088.6150029,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11287,3,000,20,1,30,1,01,2,1,0,0,2,28,117,950201,3045,3,9999,99999,99999999,9,99999,99999999,21595,0,0,0,0,0,46180,01,999,99999,99999999,A,00695779,91269,N,00712042,539,6,99999,99999999,+34.6923518,-088.6150029,L,2,99999,99999,99999,9,N,N,07780,A,02403898,00200,3,99999,99999,03750,003,005,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000205,38829 +11288,3,000,20,2,26,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11289,3,000,20,2,26,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11290,3,000,20,2,26,2,06,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11291,3,000,20,2,27,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11292,3,000,20,2,27,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11293,3,000,20,2,27,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11294,3,000,20,2,27,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11295,3,000,20,2,29,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11296,3,000,20,2,29,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11297,3,000,20,2,29,1,04,2,1,0,0,2,27,123,030800,1000,1,9999,99999,99999999,9,99999,99999999,233145,20952,0,0,20952,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9800478,-093.1153768,B,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,66B,066,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001190,55117 +11298,5,501,38,2,29,1,04,0,1,2,5,2,08,101,000903,1002,1,9999,99999,99999999,9,99999,99999999,489355,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.3104088,-104.5761272,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101006,81001 +11299,5,501,38,2,29,1,04,0,1,2,5,2,08,101,000903,1002,1,9999,99999,99999999,9,99999,99999999,489355,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.3104088,-104.5761272,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101006,81001 +11300,5,501,38,2,32,2,01,0,1,2,5,2,08,101,000903,1002,1,9999,99999,99999999,9,99999,99999999,489355,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.3104088,-104.5761272,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101006,81001 +11301,5,501,38,2,39,1,03,0,1,2,5,2,08,101,000903,1002,1,9999,99999,99999999,9,99999,99999999,489355,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.3104088,-104.5761272,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101006,81001 +11302,5,501,38,2,60,2,31,0,3,2,5,2,08,101,000903,1002,1,9999,99999,99999999,9,99999,99999999,489355,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.3104088,-104.5761272,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101006,81001 +11303,5,501,38,2,60,2,31,0,3,2,5,2,08,101,000903,1002,1,9999,99999,99999999,9,99999,99999999,489355,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.3104088,-104.5761272,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101006,81001 +11304,3,000,20,1,50,2,18,1,2,0,0,2,08,101,000904,2000,2,9999,99999,99999999,9,99999,99999999,26764,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.2981214,-104.5931667,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101009,81001 +11305,3,000,20,1,81,1,01,1,1,0,0,2,08,101,000904,2000,2,9999,99999,99999999,9,99999,99999999,26764,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.2981214,-104.5931667,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101009,81001 +11306,3,000,20,2,33,2,08,1,2,0,0,2,08,101,000904,2000,2,9999,99999,99999999,9,99999,99999999,26764,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.2981214,-104.5931667,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101009,81001 +11307,3,000,20,2,56,1,01,1,1,0,0,2,08,101,000904,2000,2,9999,99999,99999999,9,99999,99999999,26764,0,0,0,0,0,39380,03,999,99999,99999999,A,00198166,92983,S,01935550,444,8,99999,99999999,+38.2981214,-104.5931667,L,1,99999,99999,99999,9,Y,N,62000,A,02411501,02301,4,99999,99999,06120,047,003,01779779,99999,99999999,9,999,99999,99999999,999999,72613,U,99999,U,101009,81001 +11308,3,000,20,2,29,2,03,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11309,3,000,20,2,30,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11310,3,000,20,2,30,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11311,3,000,20,2,30,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11312,3,000,20,2,30,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11313,3,000,20,2,31,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11314,3,000,20,2,31,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11315,3,000,20,2,31,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11316,3,000,20,2,31,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11317,3,000,20,2,31,1,01,2,1,0,0,2,08,041,003308,1000,1,9999,99999,99999999,9,99999,99999999,241349,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.7723317,-104.8079281,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02003,4,99999,99999,04530,020,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041604,80906 +11318,3,000,21,2,63,2,06,2,1,0,0,2,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11319,3,000,21,2,65,1,19,2,2,0,0,2,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11320,3,000,22,1,35,1,01,2,1,0,0,2,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11321,3,000,22,1,37,1,01,2,1,0,0,2,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11322,3,000,25,1,0,1,04,2,1,0,0,1,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11323,3,000,25,1,0,1,04,2,1,0,0,1,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11324,3,000,25,1,0,1,04,2,1,0,0,1,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11325,3,000,25,1,1,1,04,2,1,0,0,1,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11326,3,000,25,1,1,2,11,2,2,0,0,1,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11327,3,000,25,1,3,1,04,2,1,0,0,1,06,081,608600,3009,3,9999,99999,99999999,9,99999,99999999,29269,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.5289437,-122.2844808,L,1,41884,99999,99999,9,N,N,05108,A,02409826,08105,4,04530,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94002 +11328,3,000,20,1,62,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11329,3,000,20,1,62,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11330,3,000,20,1,66,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11331,3,000,20,1,68,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11332,3,000,20,1,69,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11333,3,000,20,1,69,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11334,3,000,20,1,69,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11335,3,000,20,1,69,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11336,3,000,20,1,69,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11337,3,000,20,1,69,1,01,2,1,0,0,2,08,005,005633,1001,1,9999,99999,99999999,9,99999,99999999,42083,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5795601,-105.0022230,L,1,99999,99999,99999,9,N,N,45255,A,02410845,01501,4,99999,99999,05310,038,026,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005172,80120 +11338,3,000,21,2,62,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11339,3,000,21,2,62,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11340,3,000,21,2,64,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11341,3,000,21,2,64,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11342,3,000,21,2,64,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11343,3,000,21,2,64,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11344,3,000,21,2,65,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11345,3,000,21,2,65,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11346,3,000,21,2,65,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11347,3,000,21,2,65,1,01,2,1,0,0,2,34,007,603301,3000,3,9999,99999,99999999,9,99999,99999999,133392,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,12280,A,00882155,428,2,99999,99999999,+39.9382450,-075.0123366,L,1,15804,99999,99999,9,N,N,12385,S,02389309,02104,1,99999,99999,03000,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,043023,08002 +11348,3,000,34,1,32,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11349,3,000,34,2,20,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11350,3,000,34,2,20,2,11,2,2,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11351,3,000,34,2,21,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11352,3,000,34,2,21,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11353,3,000,34,2,21,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11354,3,000,34,2,21,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11355,3,000,34,2,23,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11356,3,000,34,2,23,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11357,3,000,34,2,23,1,01,2,1,0,0,2,50,007,004200,3002,3,9999,99999,99999999,9,99999,99999999,38054,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,10675,F,01462060,162,1,99999,99999999,+44.4832527,-073.2204854,L,1,99999,99999,72400,1,Y,Y,10675,A,01462060,00300,1,99999,99999,02820,C62,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500705,05401 +11358,3,000,21,2,29,1,08,2,2,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11359,3,000,21,2,40,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11360,3,000,21,2,42,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11361,3,000,21,2,43,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11362,3,000,21,2,44,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11363,3,000,21,2,44,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11364,3,000,21,2,44,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11365,3,000,21,2,44,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11366,3,000,21,2,44,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11367,3,000,21,2,44,1,01,2,1,0,0,2,47,157,020700,1012,1,9999,99999,99999999,9,99999,99999999,358598,0,0,0,0,0,32820,08,999,99999,99999999,A,01639790,90158,N,02464284,368,6,99999,99999999,+35.3733963,-089.7769134,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02504,3,99999,99999,00150,099,032,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008270,38053 +11368,3,000,20,2,41,2,06,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11369,3,000,20,2,43,1,01,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11370,3,000,20,2,43,2,06,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11371,3,000,20,2,60,2,08,2,2,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11372,3,000,20,2,60,2,11,2,2,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11373,3,000,21,1,41,2,06,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11374,3,000,21,1,42,2,06,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11375,3,000,21,1,45,1,08,2,2,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11376,3,000,21,1,59,2,06,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11377,3,000,21,2,33,1,01,2,1,0,0,2,06,099,003607,2043,2,9999,99999,99999999,9,99999,99999999,1908781,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,93460,S,01935351,488,9,99999,99999999,+37.4740844,-120.8122461,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09903,4,99999,99999,00158,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95380 +11378,3,000,20,2,46,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11379,3,000,21,1,64,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11380,3,000,21,1,64,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11381,3,000,21,2,36,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11382,3,000,21,2,36,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11383,3,000,21,2,39,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11384,3,000,21,2,42,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11385,3,000,21,2,42,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11386,3,000,21,2,42,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11387,3,000,21,2,42,1,01,2,1,0,0,2,51,005,080302,1001,1,9999,99999,99999999,9,99999,99999999,410376,0,0,0,0,0,99999,09,999,99999,99999999,A,01673675,91016,N,01927581,999,5,99999,99999999,+37.8154983,-080.0914044,L,9,99999,99999,99999,9,N,N,12136,S,02584819,16101,3,99999,99999,00152,019,025,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,005201,24426 +11388,3,000,21,2,46,1,04,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11389,3,000,21,2,48,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11390,3,000,21,2,48,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11391,3,000,21,2,48,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11392,3,000,21,2,48,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11393,3,000,21,2,49,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11394,3,000,21,2,49,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11395,3,000,21,2,49,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11396,3,000,21,2,49,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11397,3,000,21,2,49,1,01,2,1,0,0,2,12,057,013926,3013,3,9999,99999,99999999,9,99999,99999999,274684,0,0,0,0,0,45300,16,999,99999,99999999,A,00295757,93693,S,02585634,999,5,99999,99999999,+27.8588180,-082.2295308,L,1,99999,99999,99999,9,N,N,22387,S,02402482,05709,3,99999,99999,00870,057,021,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000154,33547 +11398,3,000,20,2,49,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11399,3,000,20,2,49,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11400,3,000,21,1,35,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11401,3,000,21,1,35,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11402,3,000,21,1,38,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11403,3,000,21,1,38,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11404,3,000,21,1,38,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11405,3,000,21,1,38,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11406,3,000,21,1,39,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11407,3,000,21,1,39,1,01,2,1,0,0,2,33,017,086000,2016,2,9999,99999,99999999,9,99999,99999999,1313995,0,0,0,0,0,14460,01,999,99999,99999999,A,00873182,73860,A,00873726,148,1,99999,99999999,+43.2651924,-071.2111357,L,1,40484,99999,73050,1,9,9,99999,9,99999999,00301,1,06420,99999,99999,803,017,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,STFD01,03884 +11408,3,000,20,1,33,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11409,3,000,20,1,43,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11410,3,000,20,1,43,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11411,3,000,20,1,43,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11412,3,000,20,2,31,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11413,3,000,21,2,63,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11414,3,000,21,2,68,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11415,3,000,21,2,68,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11416,3,000,25,1,6,2,01,2,1,0,0,1,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11417,3,000,25,2,10,2,01,2,1,0,0,1,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +11418,3,000,20,2,52,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11419,3,000,20,2,56,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11420,3,000,20,2,57,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11421,3,000,20,2,72,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11422,3,000,20,2,72,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11423,3,000,20,2,72,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11424,3,000,20,2,72,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11425,3,000,20,2,73,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11426,3,000,20,2,87,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11427,3,000,20,2,87,1,01,2,1,0,0,2,55,085,970800,1057,1,9999,99999,99999999,9,99999,99999999,1059896,10388,0,0,10388,0,99999,07,999,99999,99999999,A,01581103,53225,A,01583727,999,3,99999,99999999,+45.8875621,-089.7357489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,09690,09630,99999,034,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004243,54548 +11428,3,000,27,2,13,1,01,2,1,0,0,1,27,171,101002,1005,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0438147,-093.7885754,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11429,3,000,30,2,15,2,01,2,1,0,0,1,27,171,101002,1009,1,9999,99999,99999999,9,99999,99999999,9151,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413090,-093.7888932,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11430,3,000,36,2,17,1,03,2,1,0,0,1,27,171,101002,1009,1,9999,99999,99999999,9,99999,99999999,9151,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413090,-093.7888932,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11431,3,000,36,2,17,1,03,2,1,0,0,1,27,171,101002,1009,1,9999,99999,99999999,9,99999,99999999,9151,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413090,-093.7888932,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11432,3,000,36,2,17,1,03,2,1,0,0,1,27,171,101002,1009,1,9999,99999,99999999,9,99999,99999999,9151,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413090,-093.7888932,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11433,3,000,20,1,45,1,03,1,1,0,0,2,27,171,101002,1010,1,9999,99999,99999999,9,99999,99999999,6868,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413099,-093.7881565,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11434,3,000,20,2,53,2,01,2,1,0,0,2,27,171,101002,1010,1,9999,99999,99999999,9,99999,99999999,6868,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413099,-093.7881565,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11435,3,000,21,1,40,2,01,2,1,0,0,2,27,171,101002,1010,1,9999,99999,99999999,9,99999,99999999,6868,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413099,-093.7881565,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11436,3,000,21,1,40,2,01,2,1,0,0,2,27,171,101002,1010,1,9999,99999,99999999,9,99999,99999999,6868,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413099,-093.7881565,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11437,3,000,21,2,45,1,01,2,1,0,0,2,27,171,101002,1010,1,9999,99999,99999999,9,99999,99999999,6868,0,0,0,0,0,33460,06,999,99999,99999999,A,00659530,15454,F,02394495,378,4,99999,99999999,+45.0413099,-093.7881565,L,1,99999,99999,99999,9,N,N,15454,A,02394495,02001,2,99999,99999,10170,29A,029,00662849,99999,99999999,9,999,99999,99999999,999999,22995,U,99999,U,000075,55328 +11438,3,000,20,2,59,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11439,3,000,20,2,59,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11440,3,000,20,2,70,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11441,3,000,20,2,70,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11442,3,000,20,2,70,1,04,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11443,3,000,20,2,74,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11444,3,000,20,2,74,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11445,3,000,20,2,74,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11446,3,000,20,2,75,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11447,3,000,20,2,75,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +11448,3,000,21,1,25,2,06,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11449,3,000,21,1,25,2,06,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11450,3,000,21,1,26,2,06,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11451,3,000,21,1,28,1,02,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11452,3,000,21,1,31,2,11,2,2,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11453,3,000,21,1,32,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11454,3,000,21,1,32,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11455,3,000,21,1,43,2,07,2,2,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11456,3,000,21,1,47,1,01,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11457,3,000,21,1,47,1,01,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +11458,3,000,22,2,30,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11459,3,000,22,2,30,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11460,3,000,22,2,44,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11461,3,000,22,2,44,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11462,3,000,22,2,49,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11463,3,000,23,2,40,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11464,3,000,24,1,26,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11465,3,000,24,1,28,1,01,2,1,0,0,2,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11466,3,000,25,1,13,1,01,2,1,0,0,1,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11467,3,000,25,1,14,1,01,2,1,0,0,1,51,051,040300,2013,2,9999,99999,99999999,9,99999,99999999,488861,0,0,0,0,0,99999,09,999,99999,99999999,A,01497376,90880,N,01927151,999,5,99999,99999999,+37.1542457,-082.4449429,L,9,99999,99999,99999,9,N,N,17552,A,02390807,18500,3,99999,99999,01140,004,038,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,24228 +11468,3,000,25,2,6,2,06,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11469,3,000,25,2,8,1,01,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11470,3,000,25,2,8,1,01,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11471,3,000,25,2,9,1,02,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11472,3,000,25,2,9,1,02,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11473,3,000,25,2,10,1,01,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11474,3,000,25,2,10,1,04,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11475,3,000,25,2,10,1,04,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11476,3,000,25,2,10,2,15,2,2,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11477,3,000,25,2,12,2,06,2,1,0,0,1,39,049,007959,1001,1,9999,99999,99999999,9,99999,99999999,467768,31457,0,0,31457,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9938485,-083.1677532,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03405,2,99999,99999,04380,023,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGN,43026 +11478,3,000,21,2,72,1,01,2,1,0,0,2,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11479,3,000,25,1,7,1,01,2,1,0,0,1,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11480,3,000,25,1,12,1,01,2,1,0,0,1,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11481,3,000,25,1,12,1,01,2,1,0,0,1,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11482,3,000,25,1,12,1,01,2,1,0,0,1,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11483,3,000,25,1,16,1,02,2,1,0,0,1,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11484,3,000,25,2,40,1,01,2,1,0,0,2,28,015,950201,1035,1,9999,99999,99999999,9,99999,99999999,5086928,101407,0,0,101407,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4487929,-089.8898915,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11485,3,000,20,1,77,1,02,1,1,0,0,2,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11486,3,000,20,1,77,1,02,1,1,0,0,2,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11487,3,000,20,1,72,1,01,2,1,0,0,2,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +11488,3,000,20,2,64,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11489,3,000,20,2,64,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11490,3,000,20,2,65,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11491,3,000,20,2,65,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11492,3,000,20,2,65,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11493,3,000,20,2,65,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11494,3,000,20,2,65,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11495,3,000,20,2,65,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11496,3,000,20,2,66,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11497,3,000,20,2,70,1,01,1,1,0,0,2,51,059,415200,3006,3,9999,99999,99999999,9,99999,99999999,33025,0,0,0,0,0,47900,08,999,99999,99999999,A,01480119,94783,N,01927413,548,5,99999,99999999,+38.7738749,-077.0564316,L,1,47894,99999,99999,9,N,N,05928,S,02389195,05908,3,99999,99999,01260,045,030,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000602,22307 +11498,3,000,33,2,93,1,01,2,1,0,0,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11499,3,000,36,1,14,2,01,2,1,0,0,1,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11500,3,000,36,2,1,1,01,2,1,0,0,1,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11501,3,000,36,2,18,1,01,2,1,0,0,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11502,5,801,38,1,33,1,04,0,1,2,7,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11503,5,801,38,1,91,1,01,0,1,2,7,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11504,5,801,38,1,92,1,01,0,1,2,7,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11505,5,801,38,1,93,1,01,0,1,2,7,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11506,5,801,38,2,52,2,04,0,1,2,7,2,53,011,041335,2002,2,9999,99999,99999999,9,99999,99999999,68751,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,92448,S,01939591,440,9,99999,99999999,+45.6383610,-122.5005796,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,02700,017,017,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000649,98684 +11507,3,000,20,1,57,1,04,1,1,0,0,2,53,011,041325,3005,3,9999,99999,99999999,9,99999,99999999,157811,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.5923993,-122.4706911,L,1,99999,99999,99999,9,9,9,99999,9,99999999,21102,4,99999,99999,00810,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,09480,U,000958,98607 +11508,3,000,20,1,37,1,01,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11509,3,000,20,1,37,1,04,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11510,3,000,20,1,37,2,06,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11511,3,000,20,1,37,2,06,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11512,3,000,20,1,38,1,01,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11513,3,000,20,1,38,1,01,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11514,3,000,20,1,38,1,01,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11515,3,000,20,1,38,1,01,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11516,3,000,20,1,38,1,01,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11517,3,000,20,1,38,2,06,2,1,0,0,2,06,065,050901,2013,2,9999,99999,99999999,9,99999,99999999,301735,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9423843,-117.3098618,L,1,99999,99999,99999,9,Y,N,62000,A,02410965,06520,4,99999,99999,33150,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92507 +11518,3,000,20,2,49,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11519,3,000,20,2,49,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11520,3,000,20,2,55,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11521,3,000,20,2,55,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11522,3,000,20,2,55,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11523,3,000,20,2,55,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11524,3,000,20,2,55,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11525,3,000,20,2,55,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11526,3,000,20,2,58,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11527,3,000,20,2,58,1,01,2,1,0,0,2,06,017,031800,3022,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,40900,04,999,99999,99999999,A,00277273,93150,S,01935320,472,9,99999,99999999,+38.6776619,-121.0496629,L,1,99999,99999,99999,9,N,N,21880,S,02408055,01700,4,06270,12070,99999,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95762 +11528,3,000,20,2,29,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11529,3,000,20,2,29,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11530,3,000,20,2,29,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11531,3,000,20,2,29,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11532,3,000,20,2,37,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11533,3,000,20,2,37,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11534,3,000,21,2,28,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11535,3,000,21,2,72,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11536,3,000,21,2,72,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11537,3,000,21,2,72,1,01,2,1,0,0,2,42,013,011400,1012,1,9999,99999,99999999,9,99999,99999999,18064,0,0,0,0,0,11020,13,999,99999,99999999,A,01213659,65256,F,01214945,107,2,99999,99999999,+40.3379627,-078.4007123,L,1,99999,99999,99999,9,N,N,65256,A,01214945,02200,1,99999,99999,22530,080,030,01779798,99999,99999999,9,999,99999,99999999,999999,75475,U,99999,U,000810,16673 +11538,3,000,25,2,15,2,06,2,1,0,0,1,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11539,3,000,25,2,16,1,03,2,1,0,0,1,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11540,3,000,25,2,17,1,01,2,1,0,0,1,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11541,3,000,25,2,17,1,01,2,1,0,0,1,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11542,3,000,25,2,18,2,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11543,3,000,25,2,18,2,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11544,3,000,25,2,18,2,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11545,3,000,25,2,18,2,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11546,3,000,25,2,18,2,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11547,3,000,25,2,18,2,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +11548,3,000,21,2,29,1,01,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11549,3,000,21,2,29,1,01,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11550,3,000,21,2,29,1,01,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11551,3,000,21,2,29,1,01,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11552,3,000,21,2,62,1,06,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11553,3,000,22,1,36,1,01,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11554,3,000,22,1,37,1,01,2,1,0,0,2,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11555,3,000,25,1,6,1,01,2,1,0,0,1,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11556,3,000,25,1,6,1,01,2,1,0,0,1,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11557,3,000,25,1,6,1,01,2,1,0,0,1,16,045,960301,1031,1,9999,99999,99999999,9,99999,99999999,27563,0,0,0,0,0,14260,01,999,99999,99999999,A,00395442,90966,S,01936707,147,8,99999,99999999,+43.8760607,-116.4833548,L,1,99999,99999,99999,9,N,N,25570,A,02410437,00400,4,99999,99999,01020,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,27469,U,99999,U,458003,83617 +11558,3,000,21,2,38,1,01,2,1,0,0,2,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11559,3,000,21,2,39,1,01,2,1,0,0,2,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11560,3,000,21,2,39,1,01,2,1,0,0,2,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11561,3,000,21,2,55,1,11,2,2,0,0,2,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11562,3,000,25,1,1,1,01,2,1,0,0,1,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11563,3,000,25,1,1,1,01,2,1,0,0,1,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11564,3,000,25,1,1,1,01,2,1,0,0,1,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11565,3,000,25,1,1,1,01,2,1,0,0,1,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11566,3,000,25,1,5,1,01,2,1,0,0,1,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11567,3,000,25,1,9,1,01,2,1,0,0,1,13,077,170101,1074,1,9999,99999,99999999,9,99999,99999999,103889,0,0,0,0,0,12060,03,999,99999,99999999,A,00326666,92154,S,01936432,122,5,99999,99999999,+33.4423051,-084.9085059,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,01500,070,028,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,30263 +11568,3,000,20,1,75,2,01,2,1,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11569,3,000,20,1,92,2,11,2,2,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11570,3,000,20,2,29,2,01,2,1,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11571,3,000,20,2,34,2,09,2,2,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11572,3,000,20,2,35,2,01,2,1,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11573,3,000,20,2,35,2,01,2,1,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11574,3,000,20,2,37,1,01,2,1,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11575,3,000,20,2,37,2,11,2,2,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11576,3,000,20,2,37,2,11,2,2,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11577,3,000,20,2,40,2,01,2,1,0,0,2,06,037,502003,1015,1,9999,99999,99999999,9,99999,99999999,95634,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93730,S,01935379,348,9,99999,99999999,+33.9595953,-118.0378108,L,1,31084,99999,99999,9,N,N,85292,A,02412260,03739,4,11850,42480,99999,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90602 +11578,3,000,20,2,73,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11579,3,000,20,2,73,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11580,3,000,20,2,73,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11581,3,000,20,2,73,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11582,3,000,20,2,73,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11583,3,000,20,2,73,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11584,3,000,20,2,74,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11585,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11586,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11587,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +11588,3,000,21,2,35,2,06,2,1,0,0,2,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11589,3,000,21,2,35,2,06,2,1,0,0,2,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11590,3,000,22,1,54,1,01,2,1,0,0,2,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11591,3,000,25,1,0,2,06,2,1,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11592,3,000,25,1,0,2,11,2,2,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11593,3,000,25,1,7,1,01,2,1,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11594,3,000,25,1,7,1,01,2,1,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11595,3,000,25,1,7,1,01,2,1,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11596,3,000,25,1,7,1,01,2,1,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11597,3,000,25,1,15,2,06,2,1,0,0,1,36,103,123401,2021,2,9999,99999,99999999,9,99999,99999999,10028,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.6983135,-073.3924402,L,1,35004,99999,99999,9,N,N,53198,S,02389573,03313,1,99999,99999,17380,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000028,11757 +11598,3,000,25,1,7,1,01,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11599,3,000,25,1,7,1,01,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11600,3,000,25,1,7,1,01,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11601,3,000,25,1,7,1,01,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11602,3,000,25,1,7,1,01,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11603,3,000,25,1,7,1,02,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11604,3,000,25,1,7,1,02,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11605,3,000,25,1,7,1,02,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11606,3,000,25,1,8,1,02,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11607,3,000,25,1,8,1,02,2,1,0,0,1,22,105,954601,2002,2,9999,99999,99999999,9,99999,99999999,5734841,0,0,0,0,0,25220,01,999,99999,99999999,A,00559500,95443,N,01930285,406,7,99999,99999999,+30.4566629,-090.3883538,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,01680,073,011,01629543,99999,99999999,9,999,99999,99999999,999999,36514,U,99999,U,000145,70454 +11608,3,000,25,1,23,1,01,2,1,0,0,2,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11609,3,000,25,1,29,1,02,2,1,0,0,2,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11610,3,000,25,2,0,1,01,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11611,3,000,25,2,0,1,01,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11612,3,000,25,2,0,1,01,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11613,3,000,25,2,0,2,06,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11614,3,000,25,2,0,2,06,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11615,3,000,25,2,5,1,01,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11616,3,000,25,2,6,2,11,2,2,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11617,3,000,25,2,8,1,01,2,1,0,0,1,17,031,010201,2003,2,9999,99999,99999999,9,99999,99999999,32741,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+42.0134982,-087.6767851,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03153,2,99999,99999,09930,014,007,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,049033,60626 +11618,3,000,25,2,8,1,11,2,2,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11619,3,000,25,2,9,1,01,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11620,3,000,25,2,10,1,01,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11621,3,000,25,2,10,1,01,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11622,3,000,25,2,13,1,01,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11623,3,000,25,2,13,1,01,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11624,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11625,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11626,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11627,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +11628,3,000,25,1,6,2,03,2,1,0,0,1,08,003,960201,1009,1,9999,99999,99999999,9,99999,99999999,30959,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4797655,-105.8561113,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11629,3,000,28,1,58,2,06,2,1,0,0,2,08,003,960201,1009,1,9999,99999,99999999,9,99999,99999999,30959,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4797655,-105.8561113,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11630,3,000,30,2,5,2,01,2,1,0,0,1,08,003,960201,1009,1,9999,99999,99999999,9,99999,99999999,30959,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4797655,-105.8561113,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11631,3,000,33,2,21,1,01,2,1,0,0,2,08,003,960201,1009,1,9999,99999,99999999,9,99999,99999999,30959,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4797655,-105.8561113,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11632,3,000,20,1,53,2,11,1,2,0,0,2,08,003,960201,1010,1,9999,99999,99999999,9,99999,99999999,17252,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4785086,-105.8566821,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11633,3,000,20,1,69,1,01,1,1,0,0,2,08,003,960201,1010,1,9999,99999,99999999,9,99999,99999999,17252,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4785086,-105.8566821,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11634,3,000,20,1,75,1,01,1,1,0,0,2,08,003,960201,1010,1,9999,99999,99999999,9,99999,99999999,17252,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4785086,-105.8566821,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11635,3,000,20,1,75,1,01,1,1,0,0,2,08,003,960201,1010,1,9999,99999,99999999,9,99999,99999999,17252,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4785086,-105.8566821,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11636,3,000,20,2,29,1,04,1,1,0,0,2,08,003,960201,1010,1,9999,99999,99999999,9,99999,99999999,17252,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4785086,-105.8566821,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11637,3,000,20,2,66,2,06,1,1,0,0,2,08,003,960201,1010,1,9999,99999,99999999,9,99999,99999999,17252,0,0,0,0,0,99999,03,999,99999,99999999,A,00198117,90076,S,01935395,999,8,99999,99999999,+37.4785086,-105.8566821,L,9,99999,99999,99999,9,N,N,01145,S,02407709,01900,4,99999,99999,02070,062,035,01779779,99999,99999999,9,999,99999,99999999,999999,00847,U,99999,U,003004,81101 +11638,3,000,20,1,91,1,11,2,2,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11639,3,000,20,2,28,1,04,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11640,3,000,21,1,39,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11641,3,000,21,1,48,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11642,3,000,21,1,48,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11643,3,000,21,1,48,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11644,3,000,21,1,48,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11645,3,000,21,1,48,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11646,3,000,21,1,51,1,04,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11647,3,000,21,1,51,1,04,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +11648,3,000,20,2,47,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11649,3,000,20,2,47,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11650,3,000,20,2,49,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11651,3,000,20,2,49,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11652,3,000,20,2,57,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11653,3,000,20,2,60,2,11,2,2,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11654,3,000,20,2,62,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11655,3,000,20,2,62,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11656,3,000,20,2,65,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11657,3,000,20,2,69,1,01,2,1,0,0,2,32,003,000101,3003,3,9999,99999,99999999,9,99999,99999999,64435,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1850755,-115.1912981,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00406,4,99999,99999,00060,010,003,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,004633,89108 +11658,3,000,25,2,5,2,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11659,3,000,25,2,6,2,08,2,2,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11660,3,000,25,2,9,2,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11661,3,000,25,2,9,2,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11662,3,000,25,2,11,2,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11663,3,000,25,2,15,1,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11664,3,000,25,2,15,1,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11665,3,000,25,2,15,1,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11666,3,000,25,2,15,1,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11667,3,000,25,2,15,1,01,2,1,0,0,1,47,093,004607,1028,1,9999,99999,99999999,9,99999,99999999,22774,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90474,N,02464164,315,6,99999,99999999,+35.9684623,-084.0523240,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01503,3,99999,99999,02220,018,007,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004854,37921 +11668,3,000,20,2,65,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11669,3,000,20,2,67,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11670,3,000,20,2,67,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11671,3,000,20,2,67,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11672,3,000,20,2,67,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11673,3,000,20,2,68,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11674,3,000,20,2,69,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11675,3,000,20,2,69,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11676,3,000,20,2,69,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11677,3,000,20,2,69,1,01,1,1,0,0,2,39,017,010909,3003,3,9999,99999,99999999,9,99999,99999999,419718,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,25970,F,01085670,178,3,99999,99999999,+39.3105759,-084.5003236,L,1,99999,99999,99999,9,N,N,25970,A,01085670,03802,2,99999,99999,04610,051,004,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,009AAK,45014 +11678,3,000,36,2,85,1,01,2,1,0,0,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11679,3,000,36,2,87,1,01,2,1,0,0,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11680,3,000,36,2,96,1,01,2,1,0,0,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11681,3,000,36,2,96,1,01,2,1,0,0,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11682,5,801,38,1,27,1,02,0,1,2,7,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11683,5,801,38,1,55,1,08,0,2,2,7,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11684,5,801,38,1,58,1,01,0,1,2,7,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11685,5,801,38,1,58,1,08,0,2,2,7,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11686,5,801,38,1,73,1,02,0,1,2,7,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11687,5,801,38,1,74,2,06,0,1,2,7,2,04,013,104207,2023,2,9999,99999,99999999,9,99999,99999999,24526,0,0,0,0,0,38060,06,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.6257192,-112.1248441,L,1,99999,99999,99999,9,Y,N,55000,A,02411414,00128,4,09060,03450,99999,020,020,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000344,85053 +11688,3,000,20,2,27,1,01,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11689,3,000,20,2,31,2,11,1,2,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11690,3,000,20,2,35,1,02,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11691,3,000,20,2,39,1,01,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11692,3,000,20,2,50,2,06,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11693,3,000,20,2,50,2,06,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11694,3,000,20,2,50,2,06,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11695,3,000,20,2,52,2,11,1,2,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11696,3,000,20,2,54,2,11,1,2,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11697,3,000,20,2,59,2,06,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +11698,3,000,25,2,19,2,01,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11699,3,000,25,2,20,2,06,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11700,3,000,26,1,26,2,02,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11701,3,000,27,1,15,1,06,2,1,0,0,1,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11702,3,000,28,1,58,1,02,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11703,3,000,28,1,67,1,02,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11704,3,000,28,2,17,1,02,2,1,0,0,1,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11705,3,000,28,2,17,1,02,2,1,0,0,1,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11706,3,000,29,2,68,1,01,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11707,3,000,29,2,77,1,02,2,1,0,0,2,22,055,001201,3002,3,9999,99999,99999999,9,99999,99999999,43592,0,0,0,0,0,29180,03,999,99999,99999999,B,00558059,95767,N,01930306,318,7,99999,99999999,+30.2377711,-091.9971498,L,1,99999,99999,99999,9,Y,N,40735,B,02404854,01201,3,99999,99999,00870,044,024,01629543,99999,99999999,9,999,99999,99999999,999999,46045,U,99999,U,000053,70501 +11708,3,000,20,2,70,1,01,1,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11709,3,000,20,2,85,1,01,1,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11710,3,000,20,2,88,1,01,1,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11711,3,000,20,2,88,1,01,1,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11712,3,000,20,2,47,1,02,2,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11713,3,000,20,2,50,1,01,2,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11714,3,000,20,2,53,1,01,2,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11715,3,000,20,2,58,1,01,2,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11716,3,000,20,2,59,1,01,2,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11717,3,000,20,2,59,1,01,2,1,0,0,2,51,117,930600,2030,2,9999,99999,99999999,9,99999,99999999,249153,0,0,0,0,0,99999,05,999,99999,99999999,A,01500747,91403,N,01927204,999,5,99999,99999999,+36.6695514,-078.3913291,L,9,99999,99999,99999,9,N,N,09016,A,02390744,08300,3,99999,99999,02460,061,015,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,23917 +11718,3,000,25,2,17,1,06,2,1,0,0,1,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11719,3,000,25,2,21,1,01,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11720,3,000,25,2,22,1,06,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11721,3,000,25,2,23,1,01,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11722,3,000,25,2,23,1,01,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11723,3,000,25,2,23,1,01,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11724,3,000,25,2,23,1,01,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11725,3,000,25,2,23,1,02,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11726,3,000,25,2,23,1,02,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11727,3,000,25,2,23,1,02,2,1,0,0,2,36,059,405100,3006,3,9999,99999,99999999,9,99999,99999999,14259,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6909567,-073.6927970,L,1,35004,99999,99999,9,N,N,24273,S,02389038,03205,1,29430,29520,99999,022,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000641,11003 +11728,3,000,21,2,54,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11729,3,000,21,2,54,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11730,3,000,21,2,54,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11731,3,000,21,2,76,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11732,3,000,21,2,78,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11733,3,000,21,2,78,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11734,3,000,21,2,78,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11735,3,000,21,2,78,1,01,2,1,0,0,2,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11736,3,000,25,1,5,1,01,2,1,0,0,1,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11737,3,000,25,2,0,1,01,2,1,0,0,1,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +11738,3,000,20,2,44,1,02,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11739,3,000,20,2,44,1,02,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11740,3,000,20,2,44,2,06,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11741,3,000,20,2,44,2,06,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11742,3,000,20,2,44,2,06,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11743,3,000,20,2,44,2,06,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11744,3,000,20,2,44,2,06,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11745,3,000,20,2,45,1,01,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11746,3,000,20,2,45,2,15,2,2,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11747,3,000,20,2,46,1,02,2,1,0,0,2,24,033,805906,1000,1,9999,99999,99999999,9,99999,99999999,126732,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91532,N,01929506,548,5,99999,99999999,+39.0054037,-076.9727638,L,1,47894,99999,99999,9,N,N,00400,S,02389119,01101,3,99999,99999,00510,47B,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,17-012,20783 +11748,3,000,36,2,24,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11749,3,000,36,2,26,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11750,3,000,36,2,26,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11751,3,000,36,2,26,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11752,3,000,36,2,26,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11753,3,000,36,2,27,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11754,3,000,36,2,32,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11755,3,000,36,2,34,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11756,3,000,36,2,43,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11757,3,000,36,2,46,1,04,2,1,0,0,2,15,003,008938,2003,2,9999,99999,99999999,9,99999,99999999,14118,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3824270,-158.0179515,L,1,99999,99999,99999,9,N,N,79700,S,02414167,00307,4,99999,99999,00030,038,020,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96797 +11758,3,000,25,2,18,1,01,2,1,0,0,2,08,123,002502,3000,3,9999,99999,99999999,9,99999,99999999,2560241,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660571,-104.4234684,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11759,3,000,25,2,18,1,01,2,1,0,0,2,08,123,002502,3000,3,9999,99999,99999999,9,99999,99999999,2560241,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660571,-104.4234684,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11760,3,000,28,1,34,1,09,2,2,0,0,2,08,123,002502,3000,3,9999,99999,99999999,9,99999,99999999,2560241,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660571,-104.4234684,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11761,3,000,34,1,21,2,06,2,1,0,0,2,08,123,002502,3000,3,9999,99999,99999999,9,99999,99999999,2560241,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660571,-104.4234684,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11762,3,000,20,1,62,1,01,2,1,0,0,2,08,123,002502,3001,3,9999,99999,99999999,9,99999,99999999,1271894,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660440,-104.4374062,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11763,3,000,20,1,62,1,01,2,1,0,0,2,08,123,002502,3001,3,9999,99999,99999999,9,99999,99999999,1271894,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660440,-104.4374062,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11764,3,000,20,1,62,1,01,2,1,0,0,2,08,123,002502,3001,3,9999,99999,99999999,9,99999,99999999,1271894,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660440,-104.4374062,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11765,3,000,20,2,42,1,08,2,2,0,0,2,08,123,002502,3001,3,9999,99999,99999999,9,99999,99999999,1271894,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660440,-104.4374062,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11766,3,000,21,2,61,1,01,2,1,0,0,2,08,123,002502,3001,3,9999,99999,99999999,9,99999,99999999,1271894,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660440,-104.4374062,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11767,3,000,21,2,61,1,01,2,1,0,0,2,08,123,002502,3001,3,9999,99999,99999999,9,99999,99999999,1271894,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91938,S,01935495,216,8,99999,99999999,+40.0660440,-104.4374062,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,4,99999,99999,04920,063,001,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123345,80643 +11768,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11769,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11770,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11771,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11772,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11773,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11774,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11775,3,000,20,2,83,1,01,1,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11776,3,000,20,1,27,1,03,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11777,3,000,20,1,48,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +11778,3,000,25,2,4,2,01,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11779,3,000,25,2,4,2,01,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11780,3,000,25,2,4,2,01,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11781,3,000,25,2,5,2,01,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11782,3,000,25,2,6,1,01,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11783,3,000,25,2,8,1,02,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11784,3,000,25,2,8,1,02,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11785,3,000,25,2,9,1,01,2,1,0,0,1,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11786,3,000,25,2,20,2,06,2,1,0,0,2,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11787,3,000,25,2,20,2,06,2,1,0,0,2,48,423,000600,1026,1,9999,99999,99999999,9,99999,99999999,19960,0,0,0,0,0,46340,01,999,99999,99999999,A,01383997,93970,S,01939276,540,7,99999,99999999,+32.3496655,-095.2812550,L,1,99999,99999,99999,9,Y,N,74144,A,02412122,01502,3,99999,99999,43470,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,89326,U,99999,U,000020,75702 +11788,3,000,20,2,65,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11789,3,000,20,2,65,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11790,3,000,20,2,67,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11791,3,000,20,2,72,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11792,3,000,20,2,72,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11793,3,000,20,2,72,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11794,3,000,20,2,72,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11795,3,000,20,2,72,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11796,3,000,20,2,73,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11797,3,000,20,2,73,1,01,1,1,0,0,2,08,089,968300,3057,3,9999,99999,99999999,9,99999,99999999,15540,0,0,0,0,0,99999,04,999,99999,99999999,A,00198160,92090,S,01935503,999,8,99999,99999999,+37.9781707,-103.5618249,L,9,99999,99999,99999,9,N,N,42110,A,02411574,01900,4,99999,99999,05130,047,035,01779779,99999,99999999,9,999,99999,99999999,999999,46450,U,99999,U,089002,81050 +11798,3,000,20,2,78,1,01,1,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11799,3,000,20,2,78,1,01,1,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11800,3,000,20,2,78,1,01,1,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11801,3,000,20,2,79,1,01,1,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11802,3,000,20,2,79,1,01,1,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11803,3,000,20,2,88,1,01,1,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11804,3,000,20,1,20,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11805,3,000,20,1,25,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11806,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11807,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +11808,3,000,20,2,75,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11809,3,000,20,2,75,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11810,3,000,20,2,76,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11811,3,000,20,2,76,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11812,3,000,20,2,77,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11813,3,000,20,2,77,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11814,3,000,20,2,77,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11815,3,000,20,2,77,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11816,3,000,20,2,83,1,01,1,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11817,3,000,20,1,21,1,01,2,1,0,0,2,32,031,003513,2009,2,9999,99999,99999999,9,99999,99999999,146752,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.5606249,-119.7025016,L,1,99999,99999,99999,9,N,N,68400,A,02411949,00101,4,99999,99999,00480,031,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,006313,89434 +11818,3,000,20,2,43,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11819,3,000,20,2,44,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11820,3,000,20,2,44,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11821,3,000,21,1,39,1,07,2,2,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11822,3,000,21,1,55,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11823,3,000,21,1,55,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11824,3,000,21,1,55,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11825,3,000,21,1,56,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11826,3,000,21,1,62,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11827,3,000,21,1,62,1,01,2,1,0,0,2,26,087,331500,2028,2,9999,99999,99999999,9,99999,99999999,52941,0,0,0,0,0,19820,10,999,99999,99999999,A,01622986,51420,A,01626682,220,3,99999,99999999,+43.1578030,-083.4107109,L,1,47664,99999,99999,9,N,N,17460,A,02398604,01701,2,99999,99999,20940,082,031,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,087027,48421 +11828,3,000,20,2,60,1,01,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11829,3,000,20,2,61,1,01,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11830,3,000,20,2,61,1,01,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11831,3,000,20,2,61,1,01,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11832,3,000,20,2,61,1,01,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11833,3,000,20,2,61,1,01,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11834,3,000,20,2,62,1,02,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11835,3,000,20,2,62,1,02,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11836,3,000,20,2,63,1,02,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11837,3,000,20,2,63,1,02,2,1,0,0,2,22,033,004504,3010,3,9999,99999,99999999,9,99999,99999999,112300,0,0,0,0,0,12940,06,999,99999,99999999,B,00558530,95266,N,01930231,999,7,99999,99999999,+30.4477760,-091.0178169,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01504,3,99999,99999,00540,065,006,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,003-32,70816 +11838,3,000,25,2,17,1,02,2,1,0,0,1,29,089,960300,3042,3,9999,99999,99999999,9,99999,99999999,10623,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1415675,-092.6856731,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11839,3,000,25,2,18,1,01,2,1,0,0,2,29,089,960300,3042,3,9999,99999,99999999,9,99999,99999999,10623,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1415675,-092.6856731,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11840,3,000,34,1,36,1,01,2,1,0,0,2,29,089,960300,3042,3,9999,99999,99999999,9,99999,99999999,10623,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1415675,-092.6856731,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11841,3,000,20,1,37,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11842,3,000,20,1,50,1,07,2,2,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11843,3,000,20,1,53,1,07,2,2,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11844,3,000,20,1,60,1,02,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11845,3,000,20,1,61,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11846,3,000,20,2,25,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11847,3,000,20,2,26,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +11848,3,000,25,1,9,1,09,2,2,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11849,3,000,25,1,9,1,09,2,2,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11850,3,000,25,1,9,1,09,2,2,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11851,3,000,25,1,9,1,09,2,2,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11852,3,000,25,1,11,1,04,2,1,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11853,3,000,25,1,12,1,04,2,1,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11854,3,000,25,1,12,1,04,2,1,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11855,3,000,25,1,12,1,04,2,1,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11856,3,000,25,1,13,1,01,2,1,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11857,3,000,25,1,13,1,01,2,1,0,0,1,25,017,366202,2003,2,9999,99999,99999999,9,99999,99999999,370746,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,73790,A,00618243,148,1,99999,99999999,+42.3417790,-071.3638144,L,1,15764,71634,71650,1,N,N,14570,S,02378001,00606,1,99999,99999,12210,130,017,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001948,01778 +11858,3,000,20,2,31,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11859,3,000,20,2,32,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11860,3,000,20,2,32,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11861,3,000,20,2,33,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11862,3,000,20,2,35,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11863,3,000,20,2,35,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11864,3,000,20,2,36,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11865,3,000,20,2,36,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11866,3,000,20,2,37,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11867,3,000,20,2,38,1,01,1,1,0,0,2,42,003,141200,3002,3,9999,99999,99999999,9,99999,99999999,72366,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4490866,-079.9059019,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01701,1,99999,99999,19170,024,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009410,15208 +11868,3,000,28,1,28,1,01,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11869,3,000,28,1,30,2,11,2,2,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11870,3,000,28,1,31,1,01,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11871,3,000,28,1,61,1,02,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11872,3,000,28,2,13,1,01,2,1,0,0,1,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11873,3,000,28,2,19,1,04,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11874,3,000,28,2,19,1,04,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11875,3,000,28,2,21,1,01,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11876,3,000,28,2,21,1,01,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11877,3,000,28,2,21,1,01,2,1,0,0,2,48,453,044200,1003,1,9999,99999,99999999,9,99999,99999999,943211,0,0,0,0,0,12420,17,999,99999,99999999,A,01384012,92807,S,01939268,999,7,99999,99999999,+30.4352699,-097.6646568,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05303,3,99999,99999,34830,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000113,78660 +11878,3,000,34,2,24,1,01,2,1,0,0,2,29,019,001807,1016,1,9999,99999,99999999,9,99999,99999999,60445,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9405819,-092.4021869,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11879,3,000,36,1,55,1,02,2,1,0,0,2,29,019,001807,1016,1,9999,99999,99999999,9,99999,99999999,60445,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9405819,-092.4021869,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11880,3,000,36,1,55,1,02,2,1,0,0,2,29,019,001807,1016,1,9999,99999,99999999,9,99999,99999999,60445,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9405819,-092.4021869,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11881,3,000,20,1,42,1,01,1,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11882,3,000,20,2,39,1,01,2,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11883,3,000,20,2,39,1,01,2,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11884,3,000,20,2,39,1,01,2,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11885,3,000,20,2,39,1,01,2,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11886,3,000,20,2,39,1,01,2,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11887,3,000,20,2,57,2,03,2,1,0,0,2,29,019,001807,1022,1,9999,99999,99999999,9,99999,99999999,51092,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,48944,N,00766333,190,4,99999,99999999,+38.9386449,-092.4016813,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00601,2,99999,99999,01000,047,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,000021,65203 +11888,3,000,21,2,40,1,01,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11889,3,000,21,2,43,1,01,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11890,3,000,21,2,45,1,04,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11891,3,000,21,2,45,1,04,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11892,3,000,21,2,45,1,04,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11893,3,000,21,2,45,1,04,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11894,3,000,21,2,48,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11895,3,000,21,2,53,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11896,3,000,21,2,64,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11897,3,000,21,2,64,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +11898,3,000,34,1,22,2,11,2,2,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11899,3,000,34,1,23,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11900,3,000,34,1,24,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11901,3,000,34,1,24,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11902,3,000,34,1,24,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11903,3,000,34,1,24,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11904,3,000,34,1,24,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11905,3,000,34,1,28,1,02,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11906,3,000,34,2,21,2,11,2,2,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11907,3,000,34,2,23,1,01,2,1,0,0,2,04,013,318800,1011,1,9999,99999,99999999,9,99999,99999999,16443,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4224650,-111.9486943,L,1,99999,99999,99999,9,Y,N,73000,A,02412045,00109,4,08310,08340,99999,026,026,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000539,85281 +11908,3,000,20,2,82,1,01,1,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11909,3,000,20,2,82,1,01,1,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11910,3,000,20,2,84,1,01,1,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11911,3,000,20,2,84,1,01,1,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11912,3,000,20,2,84,1,01,1,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11913,3,000,20,2,84,1,01,1,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11914,3,000,20,1,30,1,08,2,2,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11915,3,000,20,1,31,1,01,2,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11916,3,000,20,1,31,1,01,2,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11917,3,000,20,1,31,1,01,2,1,0,0,2,26,099,250000,3003,3,9999,99999,99999999,9,99999,99999999,39368,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,70760,F,01627026,220,3,99999,99999999,+42.5390234,-082.8802940,L,1,47664,99999,99999,9,N,N,70760,A,01627026,03005,2,99999,99999,32670,018,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099199,48082 +11918,3,000,20,1,57,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11919,3,000,20,1,57,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11920,3,000,20,1,59,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11921,3,000,20,1,59,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11922,3,000,20,1,59,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11923,3,000,20,1,59,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11924,3,000,20,1,59,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11925,3,000,20,1,59,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11926,3,000,20,2,33,1,22,2,3,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11927,3,000,20,2,33,1,22,2,3,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +11928,3,000,20,2,26,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11929,3,000,20,2,26,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11930,3,000,20,2,34,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11931,3,000,20,2,49,1,11,2,2,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11932,3,000,20,2,83,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11933,3,000,20,2,83,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11934,3,000,21,1,40,2,02,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11935,3,000,21,1,40,2,02,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11936,3,000,21,2,78,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11937,3,000,21,2,78,1,01,2,1,0,0,2,09,003,466101,2025,2,9999,99999,99999999,9,99999,99999999,10621,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,68940,A,00213506,278,1,99999,99999999,+41.8612219,-072.8267333,L,1,99999,99999,73450,1,N,N,69010,S,02377861,20207,1,99999,99999,04110,016,008,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-131,06070 +11938,3,000,25,2,12,2,11,2,2,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11939,3,000,25,2,12,2,11,2,2,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11940,3,000,25,2,13,1,01,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11941,3,000,25,2,13,2,01,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11942,3,000,25,2,13,2,01,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11943,3,000,25,2,13,2,06,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11944,3,000,25,2,13,2,06,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11945,3,000,25,2,13,2,06,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11946,3,000,25,2,13,2,06,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11947,3,000,25,2,13,2,06,2,1,0,0,1,41,047,010309,1000,1,9999,99999,99999999,9,99999,99999999,196641,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,93570,S,01938158,440,9,99999,99999999,+45.1492400,-122.8504240,L,1,99999,99999,99999,9,N,N,83750,A,02412296,04705,4,99999,99999,13530,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,96913,U,83750,U,,97071 +11948,3,000,32,1,42,1,04,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11949,3,000,32,2,35,1,04,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11950,3,000,33,1,35,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11951,3,000,33,1,39,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11952,3,000,33,2,20,1,02,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11953,3,000,33,2,21,1,02,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11954,3,000,33,2,23,1,02,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11955,3,000,33,2,26,1,04,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11956,3,000,34,1,18,2,06,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11957,3,000,34,1,24,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +11958,3,000,21,2,69,1,04,2,1,0,0,2,32,023,960408,3091,3,9999,99999,99999999,9,99999,99999999,81026,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737309,-116.0600535,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11959,3,000,20,2,68,1,01,1,1,0,0,2,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11960,3,000,20,2,76,1,01,2,1,0,0,2,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11961,3,000,20,2,76,1,01,2,1,0,0,2,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11962,3,000,25,1,8,1,08,2,2,0,0,1,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11963,3,000,25,1,14,1,01,2,1,0,0,1,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11964,3,000,25,1,14,1,01,2,1,0,0,1,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11965,3,000,27,1,15,1,01,2,1,0,0,1,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11966,3,000,27,1,15,1,01,2,1,0,0,1,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11967,3,000,27,2,4,1,01,2,1,0,0,1,32,023,960408,3092,3,9999,99999,99999999,9,99999,99999999,80889,0,0,0,0,0,37220,04,999,99999,99999999,A,00863599,94644,S,01937460,332,8,99999,99999999,+36.1737278,-116.0622948,L,2,99999,99999,99999,9,Y,N,53800,S,02409016,00200,4,99999,99999,00360,036,019,01779793,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,89048 +11968,3,000,20,2,46,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11969,3,000,20,2,47,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11970,3,000,20,2,47,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11971,3,000,20,2,47,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11972,3,000,20,2,47,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11973,3,000,20,2,47,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11974,3,000,20,2,69,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11975,3,000,21,2,35,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11976,3,000,21,2,36,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11977,3,000,21,2,36,1,01,2,1,0,0,2,28,109,950201,2052,2,9999,99999,99999999,9,99999,99999999,3222976,15427,0,0,15427,0,38100,04,999,99999,99999999,A,00695777,91233,N,00704462,406,6,99999,99999999,+30.8282440,-089.7485170,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,03720,106,040,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000240,39470 +11978,3,000,33,2,10,1,02,2,1,0,0,1,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11979,3,000,33,2,20,1,01,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11980,3,000,33,2,22,1,01,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11981,3,000,33,2,24,1,01,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11982,3,000,33,2,24,1,01,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11983,3,000,34,1,39,1,02,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11984,3,000,34,1,39,1,02,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11985,3,000,34,1,43,1,02,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11986,3,000,34,1,45,2,06,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11987,3,000,34,1,57,1,01,2,1,0,0,2,01,069,040900,3020,3,9550,14144,02418812,R,99999,99999999,1229531,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.1879393,-085.3625569,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,086,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000181,36301 +11988,3,000,34,1,35,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11989,3,000,34,1,54,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11990,3,000,34,1,54,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11991,3,000,34,1,56,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11992,3,000,34,2,49,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11993,3,000,34,2,49,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11994,3,000,34,2,50,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11995,3,000,34,2,58,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11996,3,000,34,2,62,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11997,3,000,34,2,75,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +11998,3,000,20,1,32,1,01,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +11999,3,000,20,1,33,1,01,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12000,3,000,20,1,33,1,01,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12001,3,000,20,1,34,1,01,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12002,3,000,20,1,36,1,02,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12003,3,000,20,1,36,1,02,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12004,3,000,20,1,53,2,06,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12005,3,000,20,1,53,2,06,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12006,3,000,20,2,22,1,01,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12007,3,000,20,2,22,1,01,2,1,0,0,2,22,071,006300,1006,1,9999,99999,99999999,9,99999,99999999,13127,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9665256,-090.0961003,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,097,005,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,003-12,70119 +12008,3,000,23,2,45,1,02,2,1,0,0,2,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12009,3,000,24,1,30,1,03,2,1,0,0,2,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12010,3,000,24,2,50,1,02,2,1,0,0,2,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12011,3,000,25,1,22,2,23,2,3,0,0,2,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12012,3,000,25,1,37,2,11,2,2,0,0,2,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12013,3,000,25,2,0,2,18,2,2,0,0,1,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12014,3,000,25,2,3,1,02,2,1,0,0,1,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12015,3,000,25,2,3,1,02,2,1,0,0,1,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12016,3,000,25,2,3,1,02,2,1,0,0,1,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12017,3,000,25,2,3,1,02,2,1,0,0,1,13,135,050732,1000,1,9999,99999,99999999,9,99999,99999999,764997,0,0,0,0,0,12060,04,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.7765428,-084.0166198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01607,3,99999,99999,02550,093,055,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000122,30039 +12018,3,000,34,2,54,2,11,2,2,0,0,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12019,3,000,34,2,82,1,01,2,1,0,0,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12020,3,000,35,1,15,1,01,2,1,0,0,1,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12021,3,000,36,2,16,2,11,2,2,0,0,1,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12022,5,997,38,1,39,1,01,0,1,2,7,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12023,5,997,38,1,44,1,01,0,1,2,7,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12024,5,997,38,1,53,1,01,0,1,2,7,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12025,5,997,38,1,58,1,01,0,1,2,7,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12026,5,997,38,1,59,1,01,0,1,2,7,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12027,5,997,38,2,34,1,01,0,1,2,7,2,12,009,064602,1002,1,9999,99999,99999999,9,99999,99999999,305806,123578,0,0,123578,0,37340,08,999,99999,99999999,A,00295749,92106,S,01935847,999,5,99999,99999999,+28.1150500,-080.7038575,B,1,99999,99999,99999,9,Y,N,43975,A,02405067,00903,3,99999,99999,00150,052,017,00294478,99999,99999999,9,999,99999,99999999,999999,67105,U,99999,U,000507,32934 +12028,5,301,37,2,68,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12029,5,301,37,2,68,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12030,5,301,37,2,68,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12031,5,301,37,2,69,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12032,5,301,37,2,70,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12033,5,301,37,2,70,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12034,5,301,37,2,70,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12035,5,301,37,2,70,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12036,5,301,37,2,70,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12037,5,301,37,2,70,1,01,0,1,1,3,2,12,031,014424,3010,3,9999,99999,99999999,9,99999,99999999,561002,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2141958,-081.5056528,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000265,32256 +12038,3,000,26,2,29,1,01,2,1,0,0,2,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12039,3,000,26,2,29,1,01,2,1,0,0,2,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12040,3,000,27,2,9,1,01,2,1,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12041,3,000,27,2,9,1,01,2,1,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12042,3,000,27,2,9,1,08,2,2,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12043,3,000,28,1,29,1,08,2,2,0,0,2,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12044,3,000,30,1,4,2,01,2,1,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12045,3,000,33,1,14,1,01,2,1,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12046,3,000,33,1,14,1,01,2,1,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12047,3,000,33,1,14,1,01,2,1,0,0,1,53,067,011720,2021,2,9999,99999,99999999,9,99999,99999999,1013353,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92352,S,01939585,500,9,99999,99999999,+46.9689162,-122.8767898,L,1,99999,99999,99999,9,Y,N,72905,A,02412111,26702,4,99999,99999,09100,035,035,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,72905,U,000433,98501 +12048,3,000,20,2,43,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12049,3,000,20,2,43,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12050,3,000,20,2,43,1,03,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12051,3,000,20,2,50,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12052,3,000,20,2,50,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12053,3,000,20,2,50,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12054,3,000,20,2,53,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12055,3,000,20,2,53,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12056,3,000,20,2,53,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12057,3,000,20,2,53,1,02,2,1,0,0,2,22,071,000604,3019,3,9999,99999,99999999,9,99999,99999999,67574,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9321968,-090.0208806,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02403,3,99999,99999,01170,102,007,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,15-14E,70114 +12058,3,000,29,2,82,1,01,2,1,0,0,2,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12059,3,000,29,2,83,1,01,2,1,0,0,2,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12060,3,000,29,2,83,1,01,2,1,0,0,2,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12061,3,000,29,2,97,1,01,2,1,0,0,2,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12062,3,000,29,2,97,1,01,2,1,0,0,2,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12063,3,000,30,1,1,2,06,2,1,0,0,1,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12064,3,000,30,1,7,2,01,2,1,0,0,1,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12065,3,000,30,1,10,2,06,2,1,0,0,1,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12066,3,000,30,1,10,2,06,2,1,0,0,1,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12067,3,000,30,1,10,2,06,2,1,0,0,1,06,097,153006,4000,4,9999,99999,99999999,9,99999,99999999,82829,0,0,0,0,0,42220,05,999,99999,99999999,A,01657246,92940,S,01935299,488,9,99999,99999999,+38.4515377,-122.7533350,L,1,99999,99999,99999,9,Y,N,70098,A,02411827,09705,4,35810,35830,99999,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,79498,U,99999,U,,95403 +12068,3,000,25,1,48,1,01,2,1,0,0,2,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12069,3,000,25,1,48,1,01,2,1,0,0,2,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12070,3,000,25,1,48,1,01,2,1,0,0,2,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12071,3,000,25,2,2,1,01,2,1,0,0,1,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12072,3,000,25,2,2,1,01,2,1,0,0,1,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12073,3,000,25,2,15,2,11,2,2,0,0,1,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12074,3,000,27,2,7,1,01,2,1,0,0,1,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12075,3,000,27,2,7,1,01,2,1,0,0,1,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12076,3,000,27,2,7,1,01,2,1,0,0,1,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12077,3,000,32,1,56,1,01,2,1,0,0,2,48,183,010402,1035,1,9999,99999,99999999,9,99999,99999999,48462,0,0,0,0,0,30980,01,999,99999,99999999,A,01383877,92193,S,01939158,999,7,99999,99999999,+32.3903300,-094.9661855,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,38460,007,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,75662 +12078,3,000,20,2,52,2,18,2,2,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12079,3,000,20,2,55,1,04,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12080,3,000,20,2,57,1,11,2,2,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12081,3,000,20,2,74,1,04,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12082,3,000,21,1,36,2,15,2,2,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12083,3,000,21,1,45,1,01,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12084,3,000,21,1,45,1,01,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12085,3,000,21,1,45,1,01,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12086,3,000,21,1,46,1,01,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12087,3,000,21,1,46,1,01,2,1,0,0,2,36,047,005100,3005,3,9999,99999,99999999,9,99999,99999999,14963,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6830146,-074.0048575,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04306,1,99999,99999,20580,051,026,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000856,11231 +12088,3,000,20,2,65,2,06,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12089,3,000,20,2,67,1,02,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12090,3,000,20,2,69,1,02,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12091,3,000,20,2,74,1,02,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12092,3,000,20,2,74,1,02,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12093,3,000,20,2,76,1,01,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12094,3,000,20,2,77,1,01,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12095,3,000,20,2,79,1,01,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12096,3,000,20,2,79,1,01,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12097,3,000,21,1,25,1,02,2,1,0,0,2,13,073,030203,4011,4,9999,99999,99999999,9,99999,99999999,659224,0,0,0,0,0,12260,12,999,99999,99999999,A,00348865,91110,S,01936255,999,5,99999,99999999,+33.4863470,-082.1231579,L,1,99999,99999,99999,9,N,N,50036,S,02403257,03200,3,99999,99999,01410,123,023,01705317,99999,99999999,9,999,99999,99999999,999999,04222,U,99999,U,000076,30907 +12098,3,000,20,2,31,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12099,3,000,20,2,31,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12100,3,000,20,2,32,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12101,3,000,20,2,32,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12102,3,000,20,2,33,1,01,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12103,3,000,20,2,33,1,01,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12104,3,000,20,2,34,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12105,3,000,20,2,34,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12106,3,000,20,2,40,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12107,3,000,20,2,40,1,02,2,1,0,0,2,39,049,007550,2018,2,9999,99999,99999999,9,99999,99999999,208803,1,0,0,1,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0119948,-082.9319133,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03407,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BET,43219 +12108,3,000,25,1,18,1,01,2,1,0,0,2,36,103,146705,2022,2,9999,99999,99999999,9,99999,99999999,12019,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7239593,-073.3046877,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12109,3,000,36,2,64,1,04,2,1,0,0,2,36,103,146705,2022,2,9999,99999,99999999,9,99999,99999999,12019,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7239593,-073.3046877,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12110,3,000,20,2,76,1,01,1,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12111,3,000,20,2,77,1,01,1,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12112,3,000,20,2,77,1,01,1,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12113,3,000,20,2,77,1,01,1,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12114,3,000,20,2,77,1,01,1,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12115,3,000,20,2,85,1,01,1,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12116,3,000,20,1,61,1,01,2,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12117,3,000,20,1,61,1,01,2,1,0,0,2,36,103,146705,2023,2,9999,99999,99999999,9,99999,99999999,12107,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7238177,-073.3027461,L,1,35004,99999,99999,9,N,N,80302,S,02390479,03311,1,99999,99999,30690,009,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000692,11795 +12118,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12119,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12120,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12121,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12122,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12123,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12124,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12125,3,000,20,2,30,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12126,3,000,20,2,32,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12127,3,000,20,2,32,1,02,2,1,0,0,2,01,077,010902,1012,1,9999,99999,99999999,9,99999,99999999,32408,0,0,0,0,0,22520,05,999,99999,99999999,A,00161564,91143,S,00165833,999,6,99999,99999999,+34.8228383,-087.6698388,L,1,99999,99999,99999,9,Y,N,26896,A,02403619,00100,3,99999,99999,01530,001,006,01779775,99999,99999999,9,999,99999,99999999,999999,29953,U,99999,U,000111,35630 +12128,3,000,21,2,42,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12129,3,000,21,2,42,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12130,3,000,21,2,42,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12131,3,000,21,2,43,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12132,3,000,21,2,43,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12133,3,000,21,2,43,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12134,3,000,21,2,43,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12135,3,000,21,2,43,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12136,3,000,21,2,43,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12137,3,000,21,2,66,1,01,2,1,0,0,2,19,153,010205,3000,3,9999,99999,99999999,9,99999,99999999,63755,0,0,0,0,0,19780,03,999,99999,99999999,A,00465265,90858,G,00467667,218,4,99999,99999999,+41.7304955,-093.6204924,L,1,99999,99999,99999,9,N,N,02305,A,02393960,01502,2,99999,99999,03690,038,019,01779785,99999,99999999,9,999,99999,99999999,999999,23743,U,99999,U,153369,50023 +12138,3,000,24,2,52,2,06,2,1,0,0,2,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12139,3,000,25,1,0,1,13,2,2,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12140,3,000,25,1,0,2,06,2,1,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12141,3,000,25,1,1,2,11,2,2,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12142,3,000,25,1,1,2,11,2,2,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12143,3,000,25,1,2,2,06,2,1,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12144,3,000,25,1,5,2,07,2,2,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12145,3,000,25,1,5,2,11,2,2,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12146,3,000,25,1,6,2,11,2,2,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12147,3,000,25,1,7,1,01,2,1,0,0,1,48,039,661502,1004,1,9999,99999,99999999,9,99999,99999999,850318,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3959543,-095.2787324,L,1,99999,99999,99999,9,N,N,02272,A,02409692,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000003,77511 +12148,3,000,20,1,44,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12149,3,000,20,1,44,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12150,3,000,20,1,54,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12151,3,000,20,1,60,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12152,3,000,20,1,60,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12153,3,000,20,1,65,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12154,3,000,20,1,66,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12155,3,000,20,1,67,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12156,3,000,20,1,67,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12157,3,000,20,1,67,1,02,1,1,0,0,2,01,063,060102,3045,3,9999,99999,99999999,9,99999,99999999,2881294,6045,0,0,6045,0,46220,07,999,99999,99999999,A,00161557,91026,S,00161613,999,6,99999,99999999,+32.8503718,-087.8861312,B,1,99999,99999,99999,9,N,N,24664,A,02406470,01100,3,99999,99999,01680,072,024,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,35462 +12158,3,000,20,1,74,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12159,3,000,20,2,29,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12160,3,000,20,2,35,1,04,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12161,3,000,20,2,58,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12162,3,000,20,2,59,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12163,3,000,20,2,59,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12164,3,000,20,2,85,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12165,3,000,20,2,85,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12166,3,000,20,2,91,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12167,3,000,20,2,91,1,01,1,1,0,0,2,36,029,009008,4003,4,9999,99999,99999999,9,99999,99999999,100119,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,02000,A,00978675,160,2,99999,99999999,+42.9973713,-078.7044791,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01202,1,99999,99999,31470,146,061,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000054,14221 +12168,3,000,32,1,33,2,06,2,1,0,0,2,34,001,011902,2023,2,9999,99999,99999999,9,99999,99999999,16944,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.3990359,-074.5171406,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12169,3,000,34,2,49,1,02,2,1,0,0,2,34,001,011902,2023,2,9999,99999,99999999,9,99999,99999999,16944,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.3990359,-074.5171406,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12170,3,000,34,2,49,1,02,2,1,0,0,2,34,001,011902,2023,2,9999,99999,99999999,9,99999,99999999,16944,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.3990359,-074.5171406,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12171,3,000,20,1,40,2,06,1,1,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12172,3,000,20,1,40,2,06,1,1,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12173,3,000,20,1,40,2,06,1,1,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12174,3,000,20,1,40,2,06,1,1,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12175,3,000,20,1,60,2,15,1,2,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12176,3,000,20,1,61,1,01,1,1,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12177,3,000,20,2,26,1,01,1,1,0,0,2,34,001,011902,2024,2,9999,99999,99999999,9,99999,99999999,17352,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,59640,F,00885356,428,2,99999,99999999,+39.4003704,-074.5185553,L,1,99999,99999,99999,9,N,N,59640,A,00885356,00101,1,99999,99999,13200,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,095103,08232 +12178,3,000,20,1,51,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12179,3,000,20,1,51,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12180,3,000,20,1,51,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12181,3,000,20,1,51,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12182,3,000,20,1,51,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12183,3,000,20,1,54,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12184,3,000,20,1,54,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12185,3,000,20,1,54,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12186,3,000,20,1,68,1,02,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12187,3,000,20,1,84,1,01,2,1,0,0,2,24,003,707001,2019,2,9999,99999,99999999,9,99999,99999999,10824,0,0,0,0,0,12580,05,999,99999,99999999,A,01710958,90560,N,01929664,548,5,99999,99999999,+38.8319328,-076.4979429,L,1,99999,99999,99999,9,N,N,71450,S,02390281,01205,3,99999,99999,00060,30B,030,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,07-003,20764 +12188,3,000,20,2,21,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12189,3,000,20,2,21,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12190,3,000,20,2,21,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12191,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12192,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12193,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12194,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12195,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12196,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12197,3,000,20,2,22,1,01,2,1,0,0,2,39,049,001302,3002,3,9999,99999,99999999,9,99999,99999999,27347,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9972515,-083.0053002,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03406,2,99999,99999,04380,018,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AII,43201 +12198,3,000,26,1,31,1,01,2,1,0,0,2,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12199,3,000,27,1,20,2,11,2,2,0,0,2,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12200,3,000,27,1,21,2,11,2,2,0,0,2,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12201,3,000,27,1,21,2,11,2,2,0,0,2,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12202,3,000,27,1,47,1,01,2,1,0,0,2,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12203,3,000,27,2,11,1,01,2,1,0,0,1,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12204,3,000,27,2,11,1,01,2,1,0,0,1,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12205,3,000,27,2,11,1,01,2,1,0,0,1,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12206,3,000,27,2,11,1,01,2,1,0,0,1,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12207,3,000,27,2,22,1,01,2,1,0,0,2,16,027,021105,2019,2,9999,99999,99999999,9,99999,99999999,17958,0,0,0,0,0,14260,01,999,99999,99999999,A,00399406,92438,S,01936772,147,8,99999,99999999,+43.6362616,-116.6043668,L,1,99999,99999,99999,9,N,N,12250,A,02409956,00600,4,99999,99999,00600,010,010,01779783,99999,99999999,9,999,99999,99999999,999999,60976,U,99999,U,271016,83687 +12208,3,000,20,1,37,1,04,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12209,3,000,20,1,37,1,04,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12210,3,000,20,1,37,2,03,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12211,3,000,20,1,38,2,06,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12212,3,000,20,1,38,2,06,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12213,3,000,20,1,40,2,06,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12214,3,000,20,1,40,2,06,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12215,3,000,20,1,40,2,06,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12216,3,000,20,1,40,2,06,2,1,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12217,3,000,20,1,41,2,11,2,2,0,0,2,36,005,039902,5001,5,9999,99999,99999999,9,99999,99999999,14084,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8592166,-073.8965801,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000882,10458 +12218,3,000,25,2,1,2,06,2,1,0,0,1,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12219,3,000,25,2,12,2,06,2,1,0,0,1,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12220,3,000,25,2,12,2,06,2,1,0,0,1,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12221,3,000,25,2,15,1,01,2,1,0,0,1,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12222,3,000,25,2,15,1,01,2,1,0,0,1,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12223,3,000,27,1,21,2,06,2,1,0,0,2,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12224,3,000,29,1,45,2,06,2,1,0,0,2,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12225,3,000,29,1,51,2,06,2,1,0,0,2,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12226,3,000,29,1,53,2,06,2,1,0,0,2,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12227,3,000,33,1,1,2,15,2,2,0,0,1,34,003,036100,1008,1,9999,99999,99999999,9,99999,99999999,78306,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,68970,A,00882226,408,2,99999,99999999,+40.8705437,-074.0506296,L,1,35614,99999,99999,9,9,9,99999,9,99999999,00302,1,99999,99999,15240,036,036,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,295001,07606 +12228,3,000,20,1,25,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12229,3,000,20,1,25,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12230,3,000,20,1,25,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12231,3,000,20,1,27,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12232,3,000,20,1,27,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12233,3,000,20,1,27,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12234,3,000,20,1,27,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12235,3,000,20,1,28,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12236,3,000,20,1,28,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12237,3,000,20,1,28,1,01,2,1,0,0,2,28,049,000100,3010,3,9999,99999,99999999,9,99999,99999999,28217,0,0,0,0,0,27140,03,999,99999,99999999,A,00695748,90225,N,00711876,298,6,99999,99999999,+32.3719086,-090.1336136,L,1,99999,99999,99999,9,Y,N,36000,A,02404779,01101,3,99999,99999,02190,064,025,01779790,99999,99999999,9,999,99999,99999999,999999,42211,U,99999,U,000113,39211 +12238,3,000,33,2,3,2,02,2,1,0,0,1,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12239,3,000,33,2,45,1,02,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12240,3,000,33,2,62,1,02,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12241,3,000,34,1,23,1,02,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12242,3,000,34,1,23,1,02,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12243,3,000,34,1,28,1,02,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12244,3,000,34,1,33,2,11,2,2,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12245,3,000,34,1,49,2,06,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12246,3,000,34,1,64,2,06,2,1,0,0,2,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12247,3,000,34,2,14,1,02,2,1,0,0,1,09,009,141301,1001,1,9999,99999,99999999,9,99999,99999999,46873,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3270813,-072.9518634,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-125,06515 +12248,3,000,20,2,73,1,01,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12249,3,000,20,2,74,1,04,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12250,3,000,20,2,75,1,01,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12251,3,000,20,2,75,1,01,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12252,3,000,20,2,75,1,01,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12253,3,000,20,2,77,2,11,1,2,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12254,3,000,20,2,77,2,11,1,2,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12255,3,000,20,2,78,1,01,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12256,3,000,20,2,78,1,01,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12257,3,000,20,2,86,1,02,1,1,0,0,2,13,135,050205,1004,1,9999,99999,99999999,9,99999,99999999,1312449,6032,0,0,6032,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0132140,-084.1745645,B,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000111,30096 +12258,3,000,20,2,94,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12259,3,000,20,2,94,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12260,3,000,22,2,70,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12261,3,000,22,2,70,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12262,3,000,22,2,74,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12263,3,000,22,2,74,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12264,3,000,22,2,74,1,01,2,1,0,0,2,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12265,3,000,25,2,5,1,01,2,1,0,0,1,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12266,3,000,25,2,5,1,01,2,1,0,0,1,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12267,3,000,25,2,11,1,01,2,1,0,0,1,44,003,022100,1061,1,9999,99999,99999999,9,99999,99999999,6486,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.7188687,-071.4554374,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,020,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443509,02886 +12268,3,000,20,2,56,2,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12269,3,000,20,2,62,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12270,3,000,20,2,62,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12271,3,000,20,2,62,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12272,3,000,20,2,62,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12273,3,000,21,1,53,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12274,3,000,21,1,54,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12275,3,000,21,1,54,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12276,3,000,21,1,54,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12277,3,000,21,1,54,1,01,2,1,0,0,2,06,037,101300,1000,1,9999,99999,99999999,9,99999,99999999,715343,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.2569717,-118.2725221,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03708,4,99999,99999,22710,039,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91042 +12278,3,000,21,2,70,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12279,3,000,21,2,70,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12280,3,000,21,2,73,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12281,3,000,21,2,73,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12282,3,000,21,2,73,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12283,3,000,21,2,73,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12284,3,000,27,2,18,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12285,3,000,27,2,49,1,01,2,1,0,0,2,21,057,950100,2020,2,9999,99999,99999999,9,99999,99999999,205866,0,0,0,0,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8364158,-085.5605645,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12286,3,000,20,2,51,1,01,1,1,0,0,2,21,057,950100,2021,2,9999,99999,99999999,9,99999,99999999,5491040,552,0,0,552,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8565076,-085.5822080,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12287,3,000,20,2,51,1,01,1,1,0,0,2,21,057,950100,2021,2,9999,99999,99999999,9,99999,99999999,5491040,552,0,0,552,0,99999,01,999,99999,99999999,A,00516875,90432,S,01936899,999,6,99999,99999999,+36.8565076,-085.5822080,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,01410,083,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00D102,42717 +12288,3,000,20,1,73,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12289,3,000,20,1,75,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12290,3,000,20,1,78,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12291,3,000,20,1,81,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12292,3,000,20,1,81,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12293,3,000,20,1,81,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12294,3,000,20,1,85,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12295,3,000,20,2,24,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12296,3,000,20,2,24,1,01,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12297,3,000,20,2,30,2,06,2,1,0,0,2,36,029,008001,5009,5,9999,99999,99999999,9,99999,99999999,44660,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,75000,A,00979551,160,2,99999,99999999,+42.9747966,-078.8350753,L,1,99999,99999,99999,9,N,N,75021,S,02390395,01201,1,99999,99999,16230,140,060,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000775,14223 +12298,3,000,21,2,66,1,01,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12299,3,000,21,2,67,2,03,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12300,3,000,21,2,70,2,03,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12301,3,000,21,2,77,1,01,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12302,3,000,21,2,77,1,01,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12303,3,000,21,2,87,1,01,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12304,3,000,22,1,50,2,06,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12305,3,000,22,1,52,2,06,2,1,0,0,2,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12306,3,000,25,1,0,2,06,2,1,0,0,1,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12307,3,000,25,1,0,2,06,2,1,0,0,1,06,071,001310,4004,4,9999,99999,99999999,9,99999,99999999,152638,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0834180,-117.6347540,L,1,99999,99999,99999,9,Y,N,53896,A,02411323,07118,4,28470,08160,99999,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91764 +12308,3,000,20,2,40,2,06,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12309,3,000,20,2,41,2,06,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12310,3,000,20,2,42,2,06,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12311,3,000,20,2,43,2,18,2,2,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12312,3,000,20,2,44,1,01,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12313,3,000,20,2,44,1,01,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12314,3,000,20,2,46,2,11,2,2,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12315,3,000,20,2,46,2,11,2,2,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12316,3,000,20,2,51,1,02,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12317,3,000,20,2,52,1,01,2,1,0,0,2,34,021,000700,1000,1,9999,99999,99999999,9,99999,99999999,42139,0,0,0,0,0,45940,12,999,99999,99999999,A,00882229,74000,F,00885421,408,2,99999,99999999,+40.2124157,-074.7461235,L,1,99999,99999,99999,9,Y,N,74000,A,00885421,02301,1,99999,99999,16290,015,015,01779795,99999,99999999,9,999,99999,99999999,999999,88462,U,99999,U,055E05,08611 +12318,3,000,20,2,76,1,01,2,1,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12319,3,000,21,1,35,1,09,2,2,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12320,3,000,21,2,68,1,01,2,1,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12321,3,000,21,2,68,1,01,2,1,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12322,3,000,22,1,45,1,01,2,1,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12323,3,000,22,1,46,1,01,2,1,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12324,3,000,22,1,46,1,01,2,1,0,0,2,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12325,3,000,25,1,0,1,06,2,1,0,0,1,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12326,3,000,25,1,7,2,06,2,1,0,0,1,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12327,3,000,25,1,12,1,04,2,1,0,0,1,31,109,003402,2024,2,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,30700,01,999,99999,99999999,A,00835876,91776,F,02395713,339,4,99999,99999999,+40.8021010,-096.7290485,L,1,99999,99999,99999,9,Y,N,28000,A,02395713,00802,2,99999,99999,72840,999,027,01779792,99999,99999999,9,999,99999,99999999,999999,49933,U,99999,U,00154P,68522 +12328,3,000,36,2,37,1,01,2,1,0,0,2,06,023,000600,5002,5,9999,99999,99999999,9,99999,99999999,6420,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7944235,-124.1473126,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12329,3,000,20,1,55,1,08,1,2,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12330,3,000,20,1,30,1,01,2,1,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12331,3,000,20,1,31,1,01,2,1,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12332,3,000,20,1,40,1,11,2,2,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12333,3,000,20,1,43,1,11,2,2,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12334,3,000,20,2,37,1,09,2,2,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12335,3,000,20,2,46,1,01,2,1,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12336,3,000,20,2,46,1,01,2,1,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12337,3,000,20,2,46,1,01,2,1,0,0,2,06,023,000600,5003,5,9999,99999,99999999,9,99999,99999999,11138,0,0,0,0,0,21700,02,999,99999,99999999,A,01681908,90930,S,01935097,999,9,99999,99999999,+40.7932258,-124.1475883,L,2,99999,99999,99999,9,Y,N,23042,A,02410463,02300,4,99999,99999,00052,002,002,01779778,99999,99999999,9,999,99999,99999999,999999,28198,U,99999,U,,95501 +12338,3,000,20,2,70,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12339,3,000,20,2,71,2,11,2,2,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12340,3,000,20,2,72,1,02,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12341,3,000,20,2,74,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12342,3,000,21,1,32,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12343,3,000,21,1,32,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12344,3,000,21,1,32,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12345,3,000,21,1,44,2,06,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12346,3,000,21,2,46,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12347,3,000,21,2,46,1,04,2,1,0,0,2,06,073,003213,2014,2,9999,99999,99999999,9,99999,99999999,30122,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6843557,-117.0308178,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07327,4,99999,99999,34320,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92139 +12348,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12349,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12350,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12351,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12352,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12353,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12354,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12355,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12356,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12357,5,501,38,1,20,1,01,0,1,2,5,2,36,027,410000,1009,1,9999,99999,99999999,9,99999,99999999,200167,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59652,A,00979393,408,2,99999,99999999,+41.6884932,-073.8974460,L,1,99999,99999,99999,9,N,N,76985,S,02806933,02804,1,99999,99999,03270,106,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000145,12604 +12358,3,000,25,1,21,1,04,2,1,0,0,2,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12359,3,000,25,1,21,1,04,2,1,0,0,2,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12360,3,000,25,1,42,1,04,2,1,0,0,2,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12361,3,000,25,1,42,1,04,2,1,0,0,2,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12362,3,000,25,2,3,1,04,2,1,0,0,1,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12363,3,000,25,2,3,1,04,2,1,0,0,1,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12364,3,000,25,2,3,1,04,2,1,0,0,1,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12365,3,000,25,2,3,1,04,2,1,0,0,1,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12366,3,000,25,2,3,1,04,2,1,0,0,1,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12367,3,000,25,2,3,1,04,2,1,0,0,1,06,001,450752,1042,1,9999,99999,99999999,9,99999,99999999,147314,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91660,S,01935171,488,9,99999,99999999,+37.7290169,-121.8693859,L,1,36084,99999,99999,9,N,N,20018,A,02410362,00120,4,99999,99999,00019,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,50533,U,99999,U,,94568 +12368,3,000,34,2,22,1,01,2,1,0,0,2,11,001,001003,3003,3,9999,99999,99999999,9,99999,99999999,18887,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9475048,-077.0955550,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12369,3,000,34,2,43,1,02,2,1,0,0,2,11,001,001003,3003,3,9999,99999,99999999,9,99999,99999999,18887,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9475048,-077.0955550,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12370,3,000,34,2,53,2,28,2,3,0,0,2,11,001,001003,3003,3,9999,99999,99999999,9,99999,99999999,18887,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9475048,-077.0955550,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12371,3,000,20,2,70,1,01,1,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12372,3,000,20,2,36,1,01,2,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12373,3,000,20,2,36,1,01,2,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12374,3,000,20,2,40,1,01,2,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12375,3,000,20,2,41,1,01,2,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12376,3,000,20,2,41,1,01,2,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12377,3,000,20,2,41,1,01,2,1,0,0,2,11,001,001003,3004,3,9999,99999,99999999,9,99999,99999999,28055,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.9472207,-077.0977098,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00101,3,99999,99999,00030,999,003,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-030,20016 +12378,3,000,27,2,64,1,01,2,1,0,0,2,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12379,3,000,32,2,24,1,01,2,1,0,0,2,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12380,3,000,32,2,50,1,01,2,1,0,0,2,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12381,3,000,32,2,52,1,01,2,1,0,0,2,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12382,3,000,33,1,62,1,01,2,1,0,0,2,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12383,3,000,33,1,62,1,01,2,1,0,0,2,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12384,3,000,33,2,3,1,01,2,1,0,0,1,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12385,3,000,33,2,8,1,01,2,1,0,0,1,54,039,011500,4014,4,9999,99999,99999999,9,99999,99999999,11840,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2309418,-081.5383406,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12386,3,000,20,1,45,1,01,1,1,0,0,2,54,039,011500,4015,4,9999,99999,99999999,9,99999,99999999,27064,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2292939,-081.5361328,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12387,3,000,20,1,45,1,01,1,1,0,0,2,54,039,011500,4015,4,9999,99999,99999999,9,99999,99999999,27064,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.2292939,-081.5361328,L,1,99999,99999,99999,9,N,N,05836,A,02390719,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25015 +12388,3,000,20,1,68,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12389,3,000,20,1,69,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12390,3,000,20,1,69,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12391,3,000,20,1,69,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12392,3,000,20,1,69,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12393,3,000,20,1,69,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12394,3,000,20,2,66,1,04,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12395,3,000,21,1,40,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12396,3,000,21,1,41,1,01,2,1,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12397,3,000,21,2,28,1,22,2,3,0,0,2,48,339,690701,3001,3,9999,99999,99999999,9,99999,99999999,270735,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2264688,-095.4602089,L,1,99999,99999,99999,9,Y,N,16432,A,02410218,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000075,77384 +12398,3,000,25,2,12,2,01,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12399,3,000,25,2,12,2,01,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12400,3,000,25,2,12,2,01,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12401,3,000,25,2,12,2,02,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12402,3,000,25,2,12,2,02,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12403,3,000,25,2,12,2,02,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12404,3,000,25,2,12,2,02,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12405,3,000,25,2,12,2,02,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12406,3,000,25,2,12,2,02,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12407,3,000,25,2,12,2,06,2,1,0,0,1,12,057,010805,2005,2,9999,99999,99999999,9,99999,99999999,195330,0,0,0,0,0,45300,14,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0639329,-082.4457741,L,1,99999,99999,99999,9,N,N,73163,S,02402946,05705,3,99999,99999,00870,061,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000566,33612 +12408,3,000,25,1,8,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12409,3,000,25,1,8,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12410,3,000,25,1,8,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12411,3,000,25,1,8,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12412,3,000,25,1,8,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12413,3,000,25,1,8,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12414,3,000,25,1,9,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12415,3,000,25,1,9,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12416,3,000,25,1,9,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12417,3,000,25,1,9,1,01,2,1,0,0,1,12,021,011214,1009,1,9999,99999,99999999,9,99999,99999999,2397253,0,0,0,0,0,34940,25,999,99999,99999999,A,00295754,91560,S,01935803,163,5,99999,99999999,+26.2558226,-081.5866703,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02103,3,99999,99999,00330,080,028,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,34120 +12418,3,000,20,1,58,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12419,3,000,20,1,58,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12420,3,000,20,1,59,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12421,3,000,20,1,59,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12422,3,000,20,1,59,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12423,3,000,20,1,59,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12424,3,000,20,1,62,1,04,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12425,3,000,20,1,62,1,04,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12426,3,000,20,1,62,1,04,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12427,3,000,20,1,69,1,01,1,1,0,0,2,25,017,352900,2006,2,9999,99999,99999999,9,99999,99999999,22088,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,11000,F,00619396,148,1,99999,99999999,+42.3726565,-071.1067630,L,1,15764,71634,71650,1,Y,Y,11000,A,00619396,00611,1,99999,99999,03270,142,026,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000541,02139 +12428,3,000,20,1,70,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12429,3,000,20,1,70,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12430,3,000,20,1,71,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12431,3,000,20,1,71,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12432,3,000,20,1,73,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12433,3,000,20,1,73,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12434,3,000,20,1,73,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12435,3,000,20,1,74,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12436,3,000,20,1,74,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12437,3,000,20,1,74,1,01,2,1,0,0,2,13,029,920101,2046,2,9999,99999,99999999,9,99999,99999999,1449801,0,0,0,0,0,42340,01,999,99999,99999999,A,00350496,92346,S,01936466,496,5,99999,99999999,+32.1720884,-081.4974124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04600,3,99999,99999,00570,160,001,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,31308 +12438,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12439,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12440,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12441,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12442,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12443,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12444,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12445,3,000,20,1,68,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12446,3,000,20,1,69,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12447,3,000,20,1,70,1,01,2,1,0,0,2,26,159,011900,3001,3,9999,99999,99999999,9,99999,99999999,48413,0,0,0,0,0,99999,06,999,99999,99999999,A,01623020,03140,A,01625841,999,3,99999,99999999,+42.2424329,-085.7735920,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02300,2,99999,99999,23250,066,026,01779789,99999,99999999,9,999,99999,99999999,999999,55534,U,99999,U,159004,49071 +12448,3,000,20,1,44,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12449,3,000,20,1,44,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12450,3,000,20,1,44,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12451,3,000,20,1,44,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12452,3,000,20,2,36,1,04,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12453,3,000,20,2,39,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12454,3,000,20,2,72,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12455,3,000,20,2,92,1,01,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12456,3,000,21,1,43,1,02,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12457,3,000,21,1,74,1,02,2,1,0,0,2,45,059,920301,1041,1,9999,99999,99999999,9,99999,99999999,52798,0,0,0,0,0,24860,03,999,99999,99999999,A,01248009,91924,S,01938329,273,5,99999,99999999,+34.4967418,-082.0446944,L,1,99999,99999,99999,9,N,N,40615,A,02404891,00800,3,99999,99999,02610,014,009,01779799,99999,99999999,9,999,99999,99999999,999999,48151,U,99999,U,000006,29360 +12458,3,000,20,2,50,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12459,3,000,20,2,50,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12460,3,000,20,2,50,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12461,3,000,20,2,51,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12462,3,000,20,2,51,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12463,3,000,20,2,51,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12464,3,000,20,2,52,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12465,3,000,20,2,52,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12466,3,000,20,2,52,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12467,3,000,20,2,52,1,02,2,1,0,0,2,12,011,020204,2004,2,9999,99999,99999999,9,99999,99999999,392044,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2652430,-080.2259243,L,1,22744,99999,99999,9,N,N,43125,A,02405016,01102,3,99999,99999,00180,096,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00G016,33063 +12468,3,000,25,2,14,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12469,3,000,25,2,14,2,06,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12470,3,000,25,2,14,2,06,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12471,3,000,25,2,14,2,06,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12472,3,000,25,2,15,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12473,3,000,25,2,15,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12474,3,000,25,2,15,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12475,3,000,25,2,15,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12476,3,000,25,2,16,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12477,3,000,25,2,16,1,02,2,1,0,0,1,13,097,080505,2007,2,9999,99999,99999999,9,99999,99999999,198460,0,0,0,0,0,12060,13,999,99999,99999999,A,01686467,90276,S,01936111,122,5,99999,99999999,+33.7244956,-084.7879670,L,1,99999,99999,99999,9,N,N,23900,A,02404241,01200,3,99999,99999,01860,067,035,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,001259,30134 +12478,3,000,21,2,54,1,02,2,1,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12479,3,000,21,2,54,1,02,2,1,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12480,3,000,22,1,50,2,11,2,2,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12481,3,000,22,2,23,2,01,2,1,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12482,3,000,22,2,27,2,11,2,2,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12483,3,000,22,2,28,2,11,2,2,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12484,3,000,22,2,35,2,06,2,1,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12485,3,000,22,2,35,2,06,2,1,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12486,3,000,22,2,38,2,11,2,2,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12487,3,000,22,2,38,2,11,2,2,0,0,2,48,439,114013,4054,4,9999,99999,99999999,9,99999,99999999,31596,0,0,0,0,0,19100,12,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.8397321,-097.3784253,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02516,3,99999,99999,17700,099,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004703,76179 +12488,3,000,20,2,52,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12489,3,000,20,2,52,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12490,3,000,20,2,52,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12491,3,000,20,2,52,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12492,3,000,20,2,52,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12493,3,000,20,2,52,1,04,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12494,3,000,20,2,53,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12495,3,000,20,2,53,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12496,3,000,20,2,55,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12497,3,000,20,2,55,1,01,2,1,0,0,2,32,031,003514,2000,2,9999,99999,99999999,9,99999,99999999,608789,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94871,S,01937483,456,8,99999,99999999,+39.6470133,-119.6937275,L,1,99999,99999,99999,9,N,N,68350,S,02408785,00101,4,99999,99999,00480,032,014,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007418,89441 +12498,3,000,25,1,4,1,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12499,3,000,25,1,4,1,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12500,3,000,25,1,9,2,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12501,3,000,25,1,9,2,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12502,3,000,25,1,9,2,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12503,3,000,25,1,12,2,11,2,2,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12504,3,000,25,1,14,1,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12505,3,000,25,1,14,1,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12506,3,000,25,1,14,1,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12507,3,000,25,1,16,2,01,2,1,0,0,1,48,039,660302,2016,2,9999,99999,99999999,9,99999,99999999,170421,0,0,0,0,0,26420,22,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.5374086,-095.2607370,L,1,99999,99999,99999,9,N,N,56348,A,02411392,04801,3,99999,99999,34440,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000018,77581 +12508,3,000,25,2,24,2,06,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12509,3,000,25,2,28,2,11,2,2,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12510,3,000,25,2,28,2,11,2,2,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12511,3,000,25,2,29,1,09,2,2,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12512,3,000,25,2,39,1,01,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12513,3,000,25,2,39,1,01,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12514,3,000,25,2,39,1,01,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12515,3,000,29,1,78,1,04,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12516,3,000,29,1,78,1,04,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12517,3,000,29,2,68,1,04,2,1,0,0,2,06,085,511907,1014,1,9999,99999,99999999,9,99999,99999999,43241,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2243681,-121.8630734,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08512,4,99999,99999,34590,029,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95120 +12518,3,000,20,2,40,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12519,3,000,20,2,42,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12520,3,000,20,2,45,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12521,3,000,20,2,46,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12522,3,000,20,2,49,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12523,3,000,20,2,49,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12524,3,000,20,2,49,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12525,3,000,20,2,49,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12526,3,000,20,2,65,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12527,3,000,20,2,65,1,01,2,1,0,0,2,40,017,301201,5014,5,5560,13905,02418814,R,99999,99999999,22111,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4938518,-097.7480929,L,1,99999,99999,99999,9,N,N,82950,A,02412327,21500,3,99999,99999,33480,043,022,01102857,99999,99999999,9,120,13909,02804808,999999,65080,U,99999,U,000208,73099 +12528,3,000,30,1,1,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12529,3,000,30,1,2,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12530,3,000,30,1,2,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12531,3,000,30,1,4,1,01,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12532,3,000,30,1,5,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12533,3,000,30,1,5,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12534,3,000,30,1,5,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12535,3,000,30,1,5,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12536,3,000,30,1,7,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12537,3,000,30,2,0,2,06,2,1,0,0,1,36,047,000200,1015,1,9999,99999,99999999,9,99999,99999999,19039,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6503836,-074.0137802,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000899,11220 +12538,3,000,25,2,19,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12539,3,000,25,2,19,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12540,3,000,25,2,20,2,11,2,2,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12541,3,000,25,2,20,2,11,2,2,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12542,3,000,25,2,20,2,11,2,2,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12543,3,000,25,2,21,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12544,3,000,25,2,22,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12545,3,000,25,2,22,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12546,3,000,25,2,22,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12547,3,000,25,2,22,1,01,2,1,0,0,2,34,003,013002,3000,3,9999,99999,99999999,9,99999,99999999,98234,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,20020,F,00885203,408,2,99999,99999999,+40.8280896,-073.9759736,L,1,35614,99999,99999,9,N,N,20020,A,00885203,00303,1,99999,99999,04440,032,032,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065002,07020 +12548,3,000,20,2,67,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12549,3,000,20,2,68,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12550,3,000,20,2,68,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12551,3,000,20,2,68,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12552,3,000,20,2,72,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12553,3,000,20,2,78,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12554,3,000,20,2,78,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12555,3,000,21,1,71,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12556,3,000,21,1,71,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12557,3,000,21,1,71,1,01,2,1,0,0,2,42,045,403701,1007,1,9999,99999,99999999,9,99999,99999999,15732,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,76792,A,01216393,428,2,99999,99999999,+39.8734245,-075.2857714,L,1,37964,99999,99999,9,9,9,99999,9,99999999,03313,1,99999,99999,12170,162,026,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002990,19029 +12558,3,000,25,1,12,2,06,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12559,3,000,25,1,14,1,02,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12560,3,000,25,1,14,1,02,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12561,3,000,25,1,14,1,02,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12562,3,000,25,1,14,1,02,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12563,3,000,25,1,14,2,06,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12564,3,000,25,1,14,2,06,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12565,3,000,25,1,17,2,06,2,1,0,0,1,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12566,3,000,25,1,29,1,01,2,1,0,0,2,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12567,3,000,25,1,37,1,01,2,1,0,0,2,13,113,140103,1001,1,9999,99999,99999999,9,99999,99999999,972910,26753,0,0,26753,0,12060,13,999,99999,99999999,A,01687740,91164,S,01936264,122,5,99999,99999999,+33.5162371,-084.5033811,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02130,064,034,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,30214 +12568,3,000,25,2,20,1,09,2,2,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12569,3,000,25,2,20,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12570,3,000,25,2,20,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12571,3,000,25,2,20,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12572,3,000,25,2,48,1,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12573,3,000,25,2,48,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12574,3,000,25,2,48,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12575,3,000,25,2,48,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12576,3,000,25,2,48,2,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12577,3,000,25,2,50,1,01,2,1,0,0,2,32,031,002703,1004,1,9999,99999,99999999,9,99999,99999999,98835,0,0,0,0,0,39900,02,999,99999,99999999,A,00858608,94804,S,01937477,456,8,99999,99999999,+39.5869450,-119.7876641,L,1,99999,99999,99999,9,N,N,71600,S,02410028,00102,4,99999,99999,00480,027,015,01779793,99999,99999999,9,999,99999,99999999,999999,74179,U,99999,U,007316,89433 +12578,3,000,25,1,18,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12579,3,000,25,1,18,2,11,2,2,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12580,3,000,25,1,19,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12581,3,000,25,1,19,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12582,3,000,25,1,19,2,11,2,2,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12583,3,000,25,1,20,1,04,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12584,3,000,25,1,21,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12585,3,000,25,1,21,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12586,3,000,25,1,21,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12587,3,000,25,1,21,1,01,2,1,0,0,2,04,013,815000,2009,2,9999,99999,99999999,9,99999,99999999,230157,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.3104417,-111.7615099,L,1,99999,99999,99999,9,N,N,27400,A,02412682,00105,4,99999,99999,03400,012,012,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000416,85295 +12588,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12589,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12590,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12591,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12592,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12593,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12594,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12595,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12596,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12597,3,000,25,1,5,1,01,2,1,0,0,1,18,043,071003,4012,4,9999,99999,99999999,9,99999,99999999,956191,0,0,0,0,0,31140,09,999,99999,99999999,A,00450350,40734,A,00453531,350,3,99999,99999999,+38.3313266,-085.8623170,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03600,2,99999,99999,07410,072,046,00448508,99999,99999999,9,999,99999,99999999,999999,51755,U,99999,U,000150,47119 +12598,3,000,20,2,47,1,04,1,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12599,3,000,20,2,47,1,04,1,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12600,3,000,20,1,38,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12601,3,000,20,1,38,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12602,3,000,20,1,38,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12603,3,000,20,1,38,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12604,3,000,20,1,38,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12605,3,000,20,1,41,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12606,3,000,20,1,41,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12607,3,000,20,1,41,1,04,2,1,0,0,2,06,077,005223,1031,1,9999,99999,99999999,9,99999,99999999,20434,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7640409,-121.5426275,L,1,99999,99999,99999,9,N,N,49582,S,02628761,07707,4,99999,99999,01410,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95391 +12608,3,000,20,1,77,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12609,3,000,20,1,81,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12610,3,000,20,1,82,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12611,3,000,20,2,47,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12612,3,000,20,2,57,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12613,3,000,20,2,63,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12614,3,000,20,2,64,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12615,3,000,20,2,64,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12616,3,000,20,2,65,1,01,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12617,3,000,20,2,67,1,03,1,1,0,0,2,48,181,000302,1074,1,9999,99999,99999999,9,99999,99999999,6003439,145728,0,0,145728,0,43300,04,999,99999,99999999,A,01383876,92840,S,01939049,206,7,99999,99999999,+33.7849165,-096.6186972,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,16710,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000204,75020 +12618,3,000,20,1,32,1,01,2,1,0,0,2,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12619,3,000,20,1,33,1,01,2,1,0,0,2,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12620,3,000,20,1,65,1,01,2,1,0,0,2,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12621,3,000,21,1,55,1,01,2,1,0,0,2,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12622,3,000,21,1,57,1,01,2,1,0,0,2,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12623,3,000,25,1,3,1,01,2,1,0,0,1,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12624,3,000,25,1,3,1,01,2,1,0,0,1,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12625,3,000,25,1,3,1,01,2,1,0,0,1,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12626,3,000,25,1,3,1,01,2,1,0,0,1,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12627,3,000,25,1,3,1,01,2,1,0,0,1,01,103,005500,1073,1,9999,99999,99999999,9,99999,99999999,658553,4927,0,0,4927,0,19460,05,999,99999,99999999,A,00161578,91071,S,00165913,290,6,99999,99999999,+34.3970052,-087.0154863,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02480,009,003,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002801,35640 +12628,3,000,25,1,8,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12629,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12630,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12631,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12632,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12633,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12634,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12635,3,000,25,1,10,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12636,3,000,25,1,11,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12637,3,000,25,1,11,1,01,2,1,0,0,1,47,119,010203,2048,2,9999,99999,99999999,9,99999,99999999,309666,0,0,0,0,0,34980,04,999,99999,99999999,A,01639772,90880,N,02464475,400,6,99999,99999999,+35.7106855,-086.9204383,L,1,99999,99999,99999,9,N,N,70580,A,02405506,02200,3,99999,99999,02760,064,028,01325873,99999,99999999,9,999,99999,99999999,999999,84088,U,99999,U,005971,37174 +12638,3,000,28,1,49,1,01,2,1,0,0,2,55,079,101700,4009,4,9999,99999,99999999,9,99999,99999999,17858,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018484,-088.0145936,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12639,3,000,30,2,8,1,01,2,1,0,0,1,55,079,101700,4009,4,9999,99999,99999999,9,99999,99999999,17858,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018484,-088.0145936,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12640,3,000,33,1,12,1,09,2,2,0,0,1,55,079,101700,4009,4,9999,99999,99999999,9,99999,99999999,17858,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018484,-088.0145936,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12641,3,000,33,1,12,1,09,2,2,0,0,1,55,079,101700,4009,4,9999,99999,99999999,9,99999,99999999,17858,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018484,-088.0145936,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12642,3,000,20,1,28,1,01,1,1,0,0,2,55,079,101700,4010,4,9999,99999,99999999,9,99999,99999999,17669,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018408,-088.0156718,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12643,3,000,20,1,29,1,01,1,1,0,0,2,55,079,101700,4010,4,9999,99999,99999999,9,99999,99999999,17669,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018408,-088.0156718,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12644,3,000,20,1,25,1,01,2,1,0,0,2,55,079,101700,4010,4,9999,99999,99999999,9,99999,99999999,17669,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018408,-088.0156718,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12645,3,000,20,1,27,1,01,2,1,0,0,2,55,079,101700,4010,4,9999,99999,99999999,9,99999,99999999,17669,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018408,-088.0156718,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12646,3,000,20,1,28,1,01,2,1,0,0,2,55,079,101700,4010,4,9999,99999,99999999,9,99999,99999999,17669,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018408,-088.0156718,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12647,3,000,20,1,28,1,01,2,1,0,0,2,55,079,101700,4010,4,9999,99999,99999999,9,99999,99999999,17669,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0018408,-088.0156718,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003905,53219 +12648,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12649,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12650,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12651,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12652,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12653,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12654,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12655,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12656,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12657,3,000,21,2,34,1,01,2,1,0,0,2,42,095,016001,3005,3,9999,99999,99999999,9,99999,99999999,624270,1163,0,0,1163,0,10900,07,999,99999,99999999,A,01209185,42424,A,01216902,999,2,99999,99999999,+40.7742962,-075.5461138,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02902,1,99999,99999,17370,183,040,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000710,18088 +12658,3,000,20,2,38,1,02,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12659,3,000,20,2,38,1,02,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12660,3,000,20,2,38,2,11,2,2,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12661,3,000,20,2,40,1,01,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12662,3,000,20,2,42,1,01,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12663,3,000,20,2,44,1,01,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12664,3,000,20,2,44,1,02,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12665,3,000,20,2,44,1,02,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12666,3,000,20,2,50,1,01,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12667,3,000,20,2,50,1,01,2,1,0,0,2,09,003,496900,1000,1,9999,99999,99999999,9,99999,99999999,30872,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,82590,A,00213529,278,1,99999,99999999,+41.7575867,-072.7306787,L,1,99999,99999,73450,1,N,N,82660,S,02377879,20207,1,99999,99999,04920,018,005,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-153,06119 +12668,3,000,20,1,55,1,04,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12669,3,000,20,1,55,1,04,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12670,3,000,20,1,55,1,04,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12671,3,000,20,1,56,1,04,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12672,3,000,20,2,46,1,08,2,2,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12673,3,000,20,2,46,1,08,2,2,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12674,3,000,20,2,51,1,01,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12675,3,000,20,2,51,1,01,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12676,3,000,20,2,51,1,01,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12677,3,000,20,2,51,1,01,2,1,0,0,2,37,135,011208,1003,1,9999,99999,99999999,9,99999,99999999,38596,0,0,0,0,0,20500,04,999,99999,99999999,A,01008576,90620,N,01027013,450,5,99999,99999999,+35.9547984,-079.1014347,L,1,99999,99999,99999,9,N,N,10620,A,02405383,01400,3,99999,99999,00720,056,023,01027616,99999,99999999,9,999,99999,99999999,999999,25228,U,99999,U,0000HF,27516 +12678,3,000,22,1,23,1,01,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12679,3,000,22,1,32,1,06,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12680,3,000,22,1,32,1,06,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12681,3,000,22,1,32,1,12,2,2,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12682,3,000,22,1,33,1,02,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12683,3,000,22,1,33,1,06,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12684,3,000,22,1,34,1,02,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12685,3,000,22,1,38,1,02,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12686,3,000,22,1,38,1,02,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12687,3,000,22,1,39,1,01,2,1,0,0,2,36,061,018000,1002,1,9999,99999,99999999,9,99999,99999999,18498,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7923717,-073.9396145,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04111,1,99999,99999,20580,068,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000362,10029 +12688,3,000,21,2,41,2,11,2,2,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12689,3,000,21,2,50,1,01,2,1,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12690,3,000,21,2,50,1,01,2,1,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12691,3,000,21,2,50,1,01,2,1,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12692,3,000,21,2,52,1,01,2,1,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12693,3,000,21,2,53,1,08,2,2,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12694,3,000,21,2,53,1,08,2,2,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12695,3,000,21,2,53,1,08,2,2,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12696,3,000,21,2,54,1,01,2,1,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12697,3,000,21,2,54,1,01,2,1,0,0,2,26,099,222104,2005,2,9999,99999,99999999,9,99999,99999999,97407,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6843000,-082.8158790,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099023,48051 +12698,3,000,25,1,16,1,01,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12699,3,000,25,1,16,1,01,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12700,3,000,25,1,16,1,01,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12701,3,000,25,1,16,1,02,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12702,3,000,25,1,17,1,01,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12703,3,000,25,1,17,1,01,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12704,3,000,25,1,17,1,01,2,1,0,0,1,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12705,3,000,25,1,18,1,02,2,1,0,0,2,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12706,3,000,25,1,20,1,01,2,1,0,0,2,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12707,3,000,25,1,20,1,01,2,1,0,0,2,18,095,001700,1008,1,9999,99999,99999999,9,99999,99999999,491179,0,0,0,0,0,26900,05,999,99999,99999999,A,00450370,01486,A,00453087,294,3,99999,99999999,+40.1059334,-085.7222119,L,1,99999,99999,99999,9,Y,N,01468,A,02393952,02000,2,99999,99999,00150,036,026,00448508,99999,99999999,9,999,99999,99999999,999999,02386,U,99999,U,000440,46011 +12708,3,000,25,2,7,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12709,3,000,25,2,7,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12710,3,000,25,2,7,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12711,3,000,25,2,7,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12712,3,000,25,2,7,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12713,3,000,25,2,7,2,01,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12714,3,000,25,2,10,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12715,3,000,25,2,10,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12716,3,000,25,2,10,1,02,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12717,3,000,25,2,11,1,01,2,1,0,0,1,12,011,110338,1002,1,9999,99999,99999999,9,99999,99999999,333156,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0108582,-080.2829141,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X014,33026 +12718,3,000,21,1,48,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12719,3,000,21,1,49,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12720,3,000,21,1,53,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12721,3,000,21,1,54,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12722,3,000,21,1,54,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12723,3,000,21,1,54,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12724,3,000,21,1,60,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12725,3,000,21,1,61,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12726,3,000,21,1,85,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12727,3,000,21,2,22,1,01,2,1,0,0,2,49,057,210203,1023,1,9999,99999,99999999,9,99999,99999999,185286,0,0,0,0,0,36260,01,999,99999,99999999,A,01448042,92322,S,01939399,482,8,99999,99999999,+41.3082768,-111.9442770,L,1,99999,99999,99999,9,N,N,55100,A,02411275,57001,4,99999,99999,01200,007,019,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,NOG009,84414 +12728,3,000,21,2,72,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12729,3,000,21,2,73,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12730,3,000,21,2,73,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12731,3,000,21,2,73,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12732,3,000,21,2,73,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12733,3,000,21,2,73,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12734,3,000,21,2,79,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12735,3,000,21,2,79,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12736,3,000,21,2,79,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12737,3,000,22,1,35,1,01,2,1,0,0,2,21,059,001601,3017,3,9999,99999,99999999,9,99999,99999999,375968,48800,0,0,48800,0,36980,02,999,99999,99999999,A,00516876,93692,S,01936971,999,6,99999,99999999,+37.7419749,-087.0669036,B,1,99999,99999,99999,9,Y,N,58620,A,02404448,01500,3,99999,99999,01470,007,008,01779786,99999,99999999,9,999,99999,99999999,999999,66484,U,99999,U,00A115,42303 +12738,3,000,21,2,68,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12739,3,000,21,2,68,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12740,3,000,21,2,70,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12741,3,000,21,2,70,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12742,3,000,21,2,70,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12743,3,000,21,2,70,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12744,3,000,21,2,70,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12745,3,000,23,2,65,1,01,2,1,0,0,2,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12746,3,000,25,1,6,1,01,2,1,0,0,1,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12747,3,000,25,1,11,2,02,2,1,0,0,1,34,035,053402,4010,4,9999,99999,99999999,9,99999,99999999,1526517,5734,0,0,5734,0,35620,12,999,99999,99999999,A,00882234,24900,A,00882170,408,2,99999,99999999,+40.4425630,-074.5910994,B,1,35154,99999,99999,9,N,N,28470,S,02583995,01002,1,99999,99999,05490,017,017,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,040102,08540 +12748,3,000,25,2,16,2,11,2,2,0,0,1,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12749,3,000,25,2,17,2,01,2,1,0,0,1,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12750,3,000,25,2,19,2,11,2,2,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12751,3,000,25,2,20,1,02,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12752,3,000,25,2,20,1,04,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12753,3,000,25,2,20,1,04,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12754,3,000,25,2,20,1,04,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12755,3,000,25,2,21,2,01,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12756,3,000,25,2,25,1,01,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12757,3,000,25,2,25,1,01,2,1,0,0,2,29,095,014122,1030,1,9999,99999,99999999,9,99999,99999999,18419,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0045485,-094.2436076,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,032,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000629,64014 +12758,3,000,25,1,32,2,01,2,1,0,0,2,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12759,3,000,25,1,54,2,06,2,1,0,0,2,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12760,3,000,25,2,0,2,01,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12761,3,000,25,2,0,2,01,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12762,3,000,25,2,0,2,01,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12763,3,000,25,2,0,2,06,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12764,3,000,25,2,0,2,06,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12765,3,000,25,2,1,1,02,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12766,3,000,25,2,7,1,01,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12767,3,000,25,2,7,1,01,2,1,0,0,1,04,013,420800,3006,3,9999,99999,99999999,9,99999,99999999,34426,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4236412,-111.7973765,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00102,4,99999,99999,04970,025,025,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000471,85203 +12768,3,000,25,1,4,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12769,3,000,25,1,4,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12770,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12771,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12772,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12773,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12774,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12775,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12776,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12777,3,000,25,1,5,1,01,2,1,0,0,1,39,035,186203,2003,2,9999,99999,99999999,9,99999,99999999,455232,0,0,0,0,0,17460,16,999,99999,99999999,A,01074030,75098,F,01086001,184,3,99999,99999999,+41.2896258,-081.7927660,L,1,99999,99999,99999,9,N,N,75098,A,01086001,00705,2,99999,99999,04484,007,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018CVD,44136 +12778,3,000,20,2,52,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12779,3,000,20,2,53,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12780,3,000,20,2,53,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12781,3,000,20,2,53,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12782,3,000,20,2,53,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12783,3,000,20,2,54,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12784,3,000,20,2,54,1,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12785,3,000,20,2,56,2,11,2,2,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12786,3,000,20,2,58,2,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12787,3,000,20,2,58,2,01,2,1,0,0,2,53,005,010204,2000,2,9999,99999,99999999,9,99999,99999999,320949,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.2975477,-119.2777140,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006185,99354 +12788,3,000,20,2,51,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12789,3,000,20,2,65,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12790,3,000,20,2,65,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12791,3,000,21,1,35,2,28,2,3,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12792,3,000,21,1,62,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12793,3,000,21,1,62,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12794,3,000,21,1,62,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12795,3,000,21,1,63,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12796,3,000,21,1,63,1,01,2,1,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12797,3,000,21,2,35,2,11,2,2,0,0,2,12,011,030903,2012,2,9999,99999,99999999,9,99999,99999999,23464,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2158582,-080.1284494,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,093,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C010,33060 +12798,3,000,25,1,24,1,02,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12799,3,000,25,1,24,1,02,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12800,3,000,25,1,24,1,02,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12801,3,000,25,1,24,2,02,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12802,3,000,25,1,26,2,25,2,3,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12803,3,000,25,1,27,1,01,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12804,3,000,25,1,27,1,01,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12805,3,000,25,1,29,1,07,2,2,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12806,3,000,25,1,30,1,02,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12807,3,000,25,1,30,1,02,2,1,0,0,2,36,047,026300,1004,1,9999,99999,99999999,9,99999,99999999,19937,0,0,0,0,0,35620,08,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6885730,-073.9464020,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04303,1,99999,99999,20580,056,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001377,11216 +12808,3,000,29,2,39,2,11,2,2,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12809,3,000,29,2,47,1,02,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12810,3,000,29,2,70,1,01,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12811,3,000,29,2,70,1,01,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12812,3,000,29,2,70,1,01,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12813,3,000,29,2,74,1,01,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12814,3,000,29,2,78,1,04,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12815,3,000,29,2,81,1,02,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12816,3,000,29,2,82,1,04,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12817,3,000,29,2,84,1,02,2,1,0,0,2,13,135,050526,1000,1,9999,99999,99999999,9,99999,99999999,241241,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+33.9404466,-084.1380292,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01606,3,99999,99999,02550,100,005,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000086,30096 +12818,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12819,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12820,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12821,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12822,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12823,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12824,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12825,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12826,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12827,5,103,37,2,28,1,01,0,1,1,1,2,20,177,003100,1008,1,9999,99999,99999999,9,99999,99999999,366217,0,0,0,0,0,45820,02,999,99999,99999999,A,00485051,71000,F,00485655,999,4,99999,99999999,+39.0405963,-095.6256866,L,1,99999,99999,99999,9,Y,N,71000,A,00485655,00501,2,99999,99999,12260,057,019,00481813,99999,99999999,9,999,99999,99999999,999999,88084,U,99999,U,000690,66607 +12828,3,000,25,2,14,1,09,2,2,0,0,1,48,453,035900,2001,2,9999,99999,99999999,9,99999,99999999,681280,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5859612,-097.9585782,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12829,3,000,27,1,33,1,01,2,1,0,0,2,48,453,035900,2001,2,9999,99999,99999999,9,99999,99999999,681280,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5859612,-097.9585782,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12830,3,000,34,1,40,1,01,2,1,0,0,2,48,453,035900,2001,2,9999,99999,99999999,9,99999,99999999,681280,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5859612,-097.9585782,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12831,3,000,34,1,40,1,01,2,1,0,0,2,48,453,035900,2001,2,9999,99999,99999999,9,99999,99999999,681280,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5859612,-097.9585782,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12832,3,000,34,1,40,1,01,2,1,0,0,2,48,453,035900,2001,2,9999,99999,99999999,9,99999,99999999,681280,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5859612,-097.9585782,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12833,3,000,20,2,65,1,01,1,1,0,0,2,48,453,035900,2002,2,9999,99999,99999999,9,99999,99999999,952689,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5909908,-097.9621700,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12834,3,000,20,2,65,1,01,1,1,0,0,2,48,453,035900,2002,2,9999,99999,99999999,9,99999,99999999,952689,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5909908,-097.9621700,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12835,3,000,20,2,66,1,01,1,1,0,0,2,48,453,035900,2002,2,9999,99999,99999999,9,99999,99999999,952689,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5909908,-097.9621700,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12836,3,000,20,2,66,1,01,1,1,0,0,2,48,453,035900,2002,2,9999,99999,99999999,9,99999,99999999,952689,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5909908,-097.9621700,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12837,3,000,20,2,66,1,01,1,1,0,0,2,48,453,035900,2002,2,9999,99999,99999999,9,99999,99999999,952689,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.5909908,-097.9621700,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05309,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000370,78641 +12838,3,000,21,2,64,2,11,2,2,0,0,2,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12839,3,000,22,2,39,2,11,2,2,0,0,2,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12840,3,000,25,1,5,2,11,2,2,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12841,3,000,25,1,5,2,11,2,2,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12842,3,000,25,1,14,2,01,2,1,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12843,3,000,25,1,14,2,01,2,1,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12844,3,000,25,1,23,1,01,2,1,0,0,2,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12845,3,000,25,2,0,2,07,2,2,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12846,3,000,25,2,3,2,01,2,1,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12847,3,000,25,2,7,2,11,2,2,0,0,1,12,105,012602,4022,4,9999,99999,99999999,9,99999,99999999,16891,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1131238,-081.6149637,L,1,99999,99999,99999,9,N,N,28400,A,02403781,10502,3,99999,99999,01590,041,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000407,33844 +12848,3,000,21,1,31,2,06,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12849,3,000,21,1,32,2,06,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12850,3,000,21,1,32,2,06,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12851,3,000,21,1,33,1,04,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12852,3,000,21,1,33,2,06,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12853,3,000,21,1,35,1,04,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12854,3,000,21,1,52,2,01,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12855,3,000,21,1,54,1,15,2,2,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12856,3,000,21,1,56,2,06,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12857,3,000,21,1,62,1,01,2,1,0,0,2,06,037,575803,1004,1,9999,99999,99999999,9,99999,99999999,16222,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7801858,-118.1947282,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03766,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90813 +12858,3,000,20,2,39,1,01,1,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12859,3,000,20,1,64,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12860,3,000,20,1,64,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12861,3,000,20,1,64,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12862,3,000,20,1,64,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12863,3,000,20,2,35,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12864,3,000,20,2,37,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12865,3,000,20,2,37,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12866,3,000,20,2,37,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12867,3,000,20,2,39,1,01,2,1,0,0,2,22,057,021700,3049,3,9960,77225,02419278,R,99999,99999999,18265,0,0,0,0,0,26380,01,999,99999,99999999,A,00558065,95155,N,01930193,999,7,99999,99999999,+29.6409871,-090.5399914,L,1,99999,99999,99999,9,N,N,44900,A,02406035,02000,3,99999,99999,00900,054,020,01629543,99999,99999999,9,999,99999,99999999,999999,40375,U,99999,U,0004-3,70374 +12868,3,000,21,2,28,1,01,2,1,0,0,2,47,039,955003,1065,1,9999,99999,99999999,9,99999,99999999,70235,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,91180,N,02464601,999,6,99999,99999999,+35.6227899,-088.0425673,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002062,38363 +12869,3,000,33,2,14,1,01,2,1,0,0,1,47,039,955003,1065,1,9999,99999,99999999,9,99999,99999999,70235,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,91180,N,02464601,999,6,99999,99999999,+35.6227899,-088.0425673,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002062,38363 +12870,3,000,36,2,19,1,01,2,1,0,0,2,47,039,955003,1065,1,9999,99999,99999999,9,99999,99999999,70235,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,91180,N,02464601,999,6,99999,99999999,+35.6227899,-088.0425673,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002062,38363 +12871,3,000,20,1,69,1,01,1,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12872,3,000,20,1,69,1,01,1,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12873,3,000,20,1,72,1,01,1,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12874,3,000,20,1,72,1,01,1,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12875,3,000,20,2,74,1,01,1,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12876,3,000,21,1,30,1,01,2,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12877,3,000,21,1,31,1,01,2,1,0,0,2,47,039,955003,1066,1,9999,99999,99999999,9,99999,99999999,553302,0,0,0,0,0,99999,07,999,99999,99999999,A,01639739,90800,N,02464436,999,6,99999,99999999,+35.6224973,-088.0704674,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02900,3,99999,99999,00960,072,026,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002055,38363 +12878,3,000,25,1,39,1,02,2,1,0,0,2,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12879,3,000,25,1,39,1,02,2,1,0,0,2,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12880,3,000,25,1,39,1,02,2,1,0,0,2,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12881,3,000,25,1,60,1,02,2,1,0,0,2,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12882,3,000,25,1,60,1,02,2,1,0,0,2,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12883,3,000,25,1,70,1,02,2,1,0,0,2,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12884,3,000,25,2,0,1,01,2,1,0,0,1,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12885,3,000,25,2,3,1,07,2,2,0,0,1,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12886,3,000,25,2,7,1,02,2,1,0,0,1,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12887,3,000,25,2,7,1,02,2,1,0,0,1,13,121,008204,1008,1,9999,99999,99999999,9,99999,99999999,371981,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7729314,-084.4912379,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30318 +12888,3,000,30,1,18,1,01,2,1,0,0,2,36,029,015301,2045,2,9999,99999,99999999,9,99999,99999999,222553,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6897552,-078.9306108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000536,14057 +12889,3,000,34,1,19,1,01,2,1,0,0,2,36,029,015301,2045,2,9999,99999,99999999,9,99999,99999999,222553,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6897552,-078.9306108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000536,14057 +12890,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12891,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12892,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12893,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12894,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12895,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12896,3,000,20,2,59,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12897,3,000,20,2,61,1,01,2,1,0,0,2,36,029,015301,2046,2,9999,99999,99999999,9,99999,99999999,1125856,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,23415,A,00978924,160,2,99999,99999999,+42.6463089,-078.9379489,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01207,1,99999,99999,10170,147,059,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000533,14057 +12898,3,000,20,2,67,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12899,3,000,20,2,67,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12900,3,000,20,2,67,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12901,3,000,20,2,67,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12902,3,000,20,2,67,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12903,3,000,20,2,68,1,07,1,2,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12904,3,000,20,2,70,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12905,3,000,20,2,70,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12906,3,000,20,2,70,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12907,3,000,20,2,71,1,02,1,1,0,0,2,36,081,027800,2001,2,9999,99999,99999999,9,99999,99999999,48547,0,0,0,0,0,35620,05,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.6851008,-073.7846506,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04412,1,99999,99999,20580,032,010,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000811,11434 +12908,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12909,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12910,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12911,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12912,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12913,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12914,3,000,25,2,12,1,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12915,3,000,25,2,12,1,02,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12916,3,000,25,2,12,1,02,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12917,3,000,25,2,13,2,01,2,1,0,0,1,28,047,003508,2004,2,9999,99999,99999999,9,99999,99999999,1562347,0,0,0,0,0,25060,04,999,99999,99999999,A,00695747,90954,N,00711872,999,6,99999,99999999,+30.4875618,-089.1757165,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01770,095,049,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000210,39503 +12918,3,000,20,1,70,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12919,3,000,20,1,70,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12920,3,000,20,1,79,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12921,3,000,20,1,85,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12922,3,000,20,1,85,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12923,3,000,20,1,85,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12924,3,000,20,1,85,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12925,3,000,20,1,85,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12926,3,000,20,1,85,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12927,3,000,20,1,89,1,01,2,1,0,0,2,12,081,001002,1006,1,9999,99999,99999999,9,99999,99999999,88554,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,90273,S,01935702,412,5,99999,99999999,+27.4182767,-082.5834369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08103,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000147,34207 +12928,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12929,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12930,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12931,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12932,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12933,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12934,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12935,3,000,25,2,17,1,01,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12936,3,000,25,2,17,1,04,2,1,0,0,1,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12937,3,000,25,2,20,1,01,2,1,0,0,2,06,065,050702,1014,1,9999,99999,99999999,9,99999,99999999,125599,0,0,0,0,0,40140,42,999,99999,99999999,A,00277297,92060,S,01935211,348,9,99999,99999999,+33.6241570,-117.1556333,L,1,99999,99999,99999,9,N,N,50076,A,02411199,06524,4,24540,06034,99999,067,028,01779778,99999,99999999,9,999,99999,99999999,999999,87004,U,99999,U,,92563 +12938,3,000,20,1,34,1,01,2,1,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12939,3,000,20,1,36,1,01,2,1,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12940,3,000,20,1,36,2,11,2,2,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12941,3,000,20,1,36,2,11,2,2,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12942,3,000,20,1,38,2,06,2,1,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12943,3,000,20,1,38,2,06,2,1,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12944,3,000,20,1,38,2,11,2,2,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12945,3,000,20,1,38,2,11,2,2,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12946,3,000,20,1,43,2,06,2,1,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12947,3,000,20,1,43,2,06,2,1,0,0,2,45,063,020505,1008,1,9999,99999,99999999,9,99999,99999999,210822,0,0,0,0,0,17900,02,999,99999,99999999,A,01244251,93653,S,01938462,192,5,99999,99999999,+33.9899538,-081.0846229,L,1,99999,99999,99999,9,N,N,75850,A,02405706,01301,3,99999,99999,02730,089,026,01779799,99999,99999999,9,999,99999,99999999,999999,18964,U,99999,U,000040,29169 +12948,3,000,25,1,6,1,04,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12949,3,000,25,1,6,1,04,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12950,3,000,25,1,7,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12951,3,000,25,1,7,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12952,3,000,25,1,7,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12953,3,000,25,1,7,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12954,3,000,25,1,7,1,09,2,2,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12955,3,000,25,1,8,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12956,3,000,25,1,8,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12957,3,000,25,1,8,1,01,2,1,0,0,1,24,027,602100,1000,1,9999,99999,99999999,9,99999,99999999,1823992,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.3117388,-076.8595076,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09A,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-019,21042 +12958,3,000,20,2,69,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12959,3,000,21,2,41,1,02,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12960,3,000,21,2,41,1,02,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12961,3,000,21,2,41,1,02,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12962,3,000,21,2,45,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12963,3,000,21,2,45,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12964,3,000,21,2,45,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12965,3,000,21,2,45,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12966,3,000,21,2,47,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12967,3,000,21,2,47,1,01,2,1,0,0,2,12,083,002503,1008,1,9999,99999,99999999,9,99999,99999999,61927,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92483,S,01935878,999,5,99999,99999999,+29.2534451,-082.2096690,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08302,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,64567,U,99999,U,000044,34482 +12968,3,000,21,1,44,1,04,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12969,3,000,21,1,45,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12970,3,000,21,1,48,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12971,3,000,21,1,48,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12972,3,000,21,1,50,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12973,3,000,21,1,50,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12974,3,000,21,1,52,1,01,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12975,3,000,21,1,52,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12976,3,000,21,1,52,1,02,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12977,3,000,21,1,53,1,01,2,1,0,0,2,36,047,079802,2001,2,9999,99999,99999999,9,99999,99999999,20969,0,0,0,0,0,35620,09,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6591630,-073.9612181,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04309,1,99999,99999,20580,043,021,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000263,11225 +12978,3,000,29,2,57,1,02,2,1,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12979,3,000,29,2,62,1,02,2,1,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12980,3,000,29,2,63,1,02,2,1,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12981,3,000,29,2,71,1,12,2,2,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12982,3,000,30,1,10,1,01,2,1,0,0,1,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12983,3,000,30,2,1,2,01,2,1,0,0,1,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12984,3,000,30,2,3,2,01,2,1,0,0,1,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12985,3,000,30,2,24,1,01,2,1,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12986,3,000,33,1,49,1,01,2,1,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12987,3,000,33,2,60,1,01,2,1,0,0,2,29,189,211301,1007,1,9999,99999,99999999,9,99999,99999999,67225,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,41825,N,00767348,476,4,99999,99999999,+38.8138566,-090.3369863,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01902,2,99999,99999,13830,069,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0LC018,63031 +12988,3,000,25,2,13,1,02,2,1,0,0,1,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12989,3,000,25,2,13,1,02,2,1,0,0,1,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12990,3,000,25,2,13,1,02,2,1,0,0,1,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12991,3,000,25,2,13,1,02,2,1,0,0,1,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12992,3,000,25,2,41,1,02,2,1,0,0,2,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12993,3,000,25,2,41,1,02,2,1,0,0,2,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12994,3,000,25,2,41,1,02,2,1,0,0,2,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12995,3,000,25,2,41,1,02,2,1,0,0,2,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12996,3,000,27,1,26,2,02,2,1,0,0,2,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12997,3,000,28,2,20,1,02,2,1,0,0,2,34,013,004300,2004,2,9999,99999,99999999,9,99999,99999999,16347,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7181648,-074.2167165,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01407,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070S22,07112 +12998,3,000,27,1,18,1,01,2,1,0,0,2,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +12999,3,000,27,1,19,1,01,2,1,0,0,2,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13000,3,000,28,1,20,2,13,2,2,0,0,2,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13001,3,000,30,1,3,1,01,2,1,0,0,1,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13002,3,000,33,1,5,2,03,2,1,0,0,1,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13003,3,000,33,2,20,1,01,2,1,0,0,2,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13004,3,000,33,2,24,1,01,2,1,0,0,2,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13005,3,000,33,2,25,1,04,2,1,0,0,2,17,031,110100,5019,5,9999,99999,99999999,9,99999,99999999,11432,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912201,-087.7757341,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13006,3,000,20,1,63,1,01,1,1,0,0,2,17,031,110100,5020,5,9999,99999,99999999,9,99999,99999999,12230,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912924,-087.7751224,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13007,3,000,20,1,63,1,01,1,1,0,0,2,17,031,110100,5020,5,9999,99999,99999999,9,99999,99999999,12230,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9912924,-087.7751224,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03156,2,99999,99999,09930,019,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,039023,60646 +13008,3,000,25,2,6,2,11,2,2,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13009,3,000,25,2,7,1,04,2,1,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13010,3,000,25,2,7,1,04,2,1,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13011,3,000,25,2,7,2,01,2,1,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13012,3,000,25,2,10,1,01,2,1,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13013,3,000,25,2,12,1,01,2,1,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13014,3,000,25,2,14,2,01,2,1,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13015,3,000,25,2,14,2,11,2,2,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13016,3,000,25,2,14,2,11,2,2,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13017,3,000,25,2,14,2,11,2,2,0,0,1,17,031,770700,2007,2,9999,99999,99999999,9,99999,99999999,158173,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,43120,A,00429252,176,3,99999,99999999,+41.9905840,-087.8761081,L,1,16984,99999,99999,9,N,N,65819,A,02399123,03109,2,34770,22740,99999,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,780012,60018 +13018,3,000,20,1,61,1,04,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13019,3,000,20,1,61,1,04,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13020,3,000,20,1,61,2,11,2,2,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13021,3,000,20,1,67,1,01,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13022,3,000,20,1,96,1,01,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13023,3,000,20,2,41,1,04,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13024,3,000,20,2,41,1,04,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13025,3,000,20,2,43,1,04,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13026,3,000,20,2,44,1,01,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13027,3,000,20,2,73,1,01,2,1,0,0,2,34,031,124311,3003,3,9999,99999,99999999,9,99999,99999999,16027,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8604340,-074.1767542,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010116,07013 +13028,3,000,20,1,36,1,02,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13029,3,000,20,1,36,1,02,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13030,3,000,20,1,36,1,02,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13031,3,000,20,1,39,2,11,2,2,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13032,3,000,20,1,50,1,01,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13033,3,000,20,1,50,1,01,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13034,3,000,20,1,50,1,01,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13035,3,000,20,1,53,1,02,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13036,3,000,20,1,53,1,02,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13037,3,000,20,1,58,1,02,2,1,0,0,2,37,013,930502,3006,3,9999,99999,99999999,9,99999,99999999,316768,0,0,0,0,0,47820,03,999,99999,99999999,A,01026333,91896,N,01026408,272,5,99999,99999999,+35.5638829,-076.9921482,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,3,99999,99999,00330,079,003,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0BEADM,27889 +13038,3,000,21,2,40,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13039,3,000,21,2,40,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13040,3,000,21,2,40,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13041,3,000,21,2,40,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13042,3,000,21,2,40,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13043,3,000,21,2,40,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13044,3,000,21,2,40,1,04,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13045,3,000,21,2,41,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13046,3,000,21,2,41,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13047,3,000,21,2,41,1,01,2,1,0,0,2,48,251,130215,2022,2,9999,99999,99999999,9,99999,99999999,1246908,0,0,0,0,0,19100,25,999,99999,99999999,A,01383911,90535,S,01938582,206,7,99999,99999999,+32.5214179,-097.3563588,L,1,23104,99999,99999,9,N,N,11428,A,02409943,02102,3,99999,99999,12180,058,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000003,76028 +13048,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13049,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13050,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13051,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13052,3,000,20,1,62,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13053,3,000,20,2,44,1,04,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13054,3,000,20,2,45,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13055,3,000,20,2,46,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13056,3,000,20,2,46,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13057,3,000,20,2,46,1,01,2,1,0,0,2,13,135,050234,2010,2,9999,99999,99999999,9,99999,99999999,309509,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0088820,-084.1452373,L,1,99999,99999,99999,9,N,N,24600,A,02403514,01601,3,99999,99999,02550,097,048,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000007,30096 +13058,3,000,25,2,10,1,01,2,1,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13059,3,000,25,2,10,1,01,2,1,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13060,3,000,25,2,11,1,02,2,1,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13061,3,000,25,2,15,2,01,2,1,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13062,3,000,25,2,15,2,01,2,1,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13063,3,000,25,2,16,2,09,2,2,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13064,3,000,25,2,16,2,09,2,2,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13065,3,000,25,2,16,2,11,2,2,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13066,3,000,25,2,16,2,11,2,2,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13067,3,000,25,2,17,1,02,2,1,0,0,1,06,037,431100,2006,2,9999,99999,99999999,9,99999,99999999,12072,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,93510,S,01935356,348,9,99999,99999999,+34.1423774,-117.9975781,L,1,31084,99999,99999,9,N,N,48648,A,02411138,03710,4,99999,99999,25320,041,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91016 +13068,3,000,20,2,76,2,11,2,2,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13069,3,000,20,2,79,2,11,2,2,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13070,3,000,21,1,36,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13071,3,000,21,1,62,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13072,3,000,21,1,62,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13073,3,000,21,1,62,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13074,3,000,21,1,64,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13075,3,000,21,1,73,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13076,3,000,21,1,73,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13077,3,000,21,1,73,1,01,2,1,0,0,2,08,001,009001,2033,2,9999,99999,99999999,9,99999,99999999,22571,0,0,0,0,0,19740,07,999,99999,99999999,A,00198116,93800,S,01935593,216,8,99999,99999999,+39.8529884,-104.9765765,L,1,99999,99999,99999,9,N,N,83120,S,02409539,01202,4,99999,99999,06900,031,021,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,001117,80229 +13078,3,000,21,2,50,1,03,2,1,0,0,2,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13079,3,000,25,1,0,1,22,2,3,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13080,3,000,25,1,6,1,01,2,1,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13081,3,000,25,1,6,1,08,2,2,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13082,3,000,25,1,6,2,06,2,1,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13083,3,000,25,1,8,1,08,2,2,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13084,3,000,25,1,8,1,08,2,2,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13085,3,000,25,1,8,1,08,2,2,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13086,3,000,25,1,8,1,08,2,2,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13087,3,000,25,1,9,1,08,2,2,0,0,1,40,017,301006,1017,1,9999,99999,99999999,9,99999,99999999,21145,0,0,0,0,0,36420,03,999,99999,99999999,A,01101796,90832,S,01937690,416,7,99999,99999999,+35.4537032,-097.6979686,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21500,3,99999,99999,21000,047,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000225,73099 +13088,3,000,20,2,36,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13089,3,000,20,2,37,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13090,3,000,20,2,37,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13091,3,000,20,2,37,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13092,3,000,20,2,37,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13093,3,000,20,2,38,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13094,3,000,20,2,38,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13095,3,000,20,2,38,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13096,3,000,20,2,39,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13097,3,000,20,2,39,1,01,2,1,0,0,2,18,089,043003,2030,2,9999,99999,99999999,9,99999,99999999,499910,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4222562,-087.3461237,L,1,23844,99999,99999,9,N,N,16138,A,02393682,00104,2,99999,99999,02490,019,006,00448508,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,000330,46307 +13098,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13099,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13100,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13101,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13102,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13103,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13104,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13105,3,000,20,2,26,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13106,3,000,20,2,26,1,02,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13107,3,000,20,2,27,1,01,1,1,0,0,2,12,095,018202,1023,1,9999,99999,99999999,9,99999,99999999,35765,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5732435,-081.3160340,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09507,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00525A,32814 +13108,3,000,20,1,70,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13109,3,000,20,2,34,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13110,3,000,20,2,67,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13111,3,000,20,2,68,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13112,3,000,20,2,68,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13113,3,000,20,2,68,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13114,3,000,21,1,56,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13115,3,000,21,1,58,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13116,3,000,22,2,63,1,01,2,1,0,0,2,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13117,3,000,25,1,4,1,01,2,1,0,0,1,27,169,670101,1133,1,9999,99999,99999999,9,99999,99999999,56880,0,0,0,0,0,49100,01,999,99999,99999999,A,00659529,55294,A,00665449,999,4,99999,99999999,+44.0810350,-091.7321955,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,44070,21B,021,00662849,99999,99999999,9,999,99999,99999999,999999,96562,U,99999,U,000105,55959 +13118,3,000,25,2,17,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13119,3,000,25,2,17,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13120,3,000,30,1,31,1,01,2,1,0,0,2,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13121,3,000,30,2,2,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13122,3,000,30,2,2,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13123,3,000,30,2,2,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13124,3,000,30,2,3,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13125,3,000,30,2,6,1,01,2,1,0,0,1,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13126,3,000,32,2,22,1,03,2,1,0,0,2,47,163,043500,2025,2,9999,99999,99999999,9,99999,99999999,2150030,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4554910,-082.4298557,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13127,3,000,20,1,44,1,01,1,1,0,0,2,47,163,043500,2026,2,9999,99999,99999999,9,99999,99999999,2020408,0,0,0,0,0,28700,01,999,99999,99999999,A,01639793,91304,N,02464645,304,6,99999,99999999,+36.4521227,-082.4209686,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03990,003,004,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,008509,37663 +13128,3,000,20,1,58,1,01,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13129,3,000,20,1,58,1,01,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13130,3,000,20,1,58,1,01,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13131,3,000,20,1,58,1,01,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13132,3,000,20,1,58,1,02,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13133,3,000,20,1,58,2,03,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13134,3,000,20,1,58,2,03,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13135,3,000,20,1,58,2,03,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13136,3,000,20,1,59,1,01,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13137,3,000,20,1,59,1,01,2,1,0,0,2,06,097,150611,4000,4,9999,99999,99999999,9,99999,99999999,152150,0,0,0,0,0,42220,02,999,99999,99999999,A,01657246,92460,S,01935251,488,9,99999,99999999,+38.2391796,-122.5939442,L,1,99999,99999,99999,9,Y,N,56784,A,02411407,09702,4,28320,30250,99999,010,003,01779778,99999,99999999,9,999,99999,99999999,999999,68887,U,99999,U,,94954 +13138,3,000,21,2,65,1,01,2,1,0,0,2,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13139,3,000,21,2,66,1,01,2,1,0,0,2,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13140,3,000,21,2,66,1,01,2,1,0,0,2,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13141,3,000,25,1,1,1,01,2,1,0,0,1,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13142,3,000,25,1,8,1,01,2,1,0,0,1,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13143,3,000,25,1,8,1,01,2,1,0,0,1,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13144,3,000,25,1,8,1,01,2,1,0,0,1,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13145,3,000,25,1,8,1,01,2,1,0,0,1,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13146,3,000,25,1,8,1,01,2,1,0,0,1,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13147,3,000,25,1,28,1,01,2,1,0,0,2,37,113,970200,2034,2,9999,99999,99999999,9,99999,99999999,6853056,1070,0,0,1070,0,99999,11,999,99999,99999999,A,01025833,92204,N,01026909,999,5,99999,99999999,+35.2013994,-083.6197877,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02400,3,99999,99999,02760,120,050,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000013,28781 +13148,3,000,20,1,40,2,06,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13149,3,000,20,1,40,2,06,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13150,3,000,20,1,40,2,06,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13151,3,000,20,1,43,2,06,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13152,3,000,20,1,43,2,06,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13153,3,000,20,1,44,2,06,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13154,3,000,20,1,45,1,04,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13155,3,000,20,1,46,1,04,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13156,3,000,20,1,47,1,04,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13157,3,000,20,1,47,1,04,2,1,0,0,2,17,097,861010,3032,3,9999,99999,99999999,9,99999,99999999,100572,17234,0,0,17234,0,16980,10,999,99999,99999999,A,01784796,41599,A,00429224,176,3,99999,99999999,+42.3897784,-088.0980534,B,1,29404,99999,99999,9,N,N,66053,A,02399133,09701,2,21870,17340,99999,064,032,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,Lak159,60073 +13158,3,000,20,1,58,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13159,3,000,20,1,58,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13160,3,000,20,1,69,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13161,3,000,20,1,78,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13162,3,000,20,1,78,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13163,3,000,20,1,78,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13164,3,000,20,1,78,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13165,3,000,20,1,78,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13166,3,000,20,1,78,1,01,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13167,3,000,20,2,38,1,02,2,1,0,0,2,48,245,010600,4011,4,9999,99999,99999999,9,99999,99999999,65055,0,0,0,0,0,13140,14,999,99999,99999999,A,01383908,93097,S,01938704,999,7,99999,99999999,+29.9471059,-093.9064479,L,1,99999,99999,99999,9,N,N,31328,A,02410669,04302,3,99999,99999,35430,021,004,01779801,99999,99999999,9,999,99999,99999999,999999,70993,U,99999,U,000060,77619 +13168,3,000,21,1,58,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13169,3,000,21,1,58,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13170,3,000,21,1,58,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13171,3,000,21,1,58,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13172,3,000,21,1,58,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13173,3,000,21,1,58,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13174,3,000,21,1,60,1,22,2,3,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13175,3,000,21,1,61,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13176,3,000,21,1,61,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13177,3,000,21,1,61,1,01,2,1,0,0,2,25,021,443104,1004,1,9999,99999,99999999,9,99999,99999999,1054729,0,0,0,0,0,14460,04,715,99999,99999999,A,00606937,04930,A,00618315,148,1,99999,99999999,+42.0730603,-071.4681065,L,1,14454,99999,77200,1,9,9,99999,9,99999999,00906,1,99999,99999,02460,210,012,00606926,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,000133,02019 +13178,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13179,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13180,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13181,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13182,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13183,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13184,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13185,3,000,25,1,16,1,01,2,1,0,0,1,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13186,3,000,25,1,18,1,01,2,1,0,0,2,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13187,3,000,25,1,18,1,01,2,1,0,0,2,40,143,007639,2010,2,5620,18170,01925077,R,99999,99999999,66305,0,0,0,0,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.0399174,-095.8995318,L,1,99999,99999,99999,9,Y,N,75000,A,02412110,20804,3,99999,99999,30600,067,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000159,74133 +13188,3,000,21,1,56,2,30,2,3,0,0,2,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13189,3,000,21,2,33,2,03,2,1,0,0,2,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13190,3,000,21,2,49,1,11,2,2,0,0,2,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13191,3,000,21,2,54,2,20,2,2,0,0,2,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13192,3,000,25,1,3,2,06,2,1,0,0,1,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13193,3,000,25,1,13,1,13,2,2,0,0,1,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13194,3,000,25,1,16,1,11,2,2,0,0,1,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13195,3,000,25,1,17,2,06,2,1,0,0,1,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13196,3,000,25,1,22,2,20,2,2,0,0,2,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13197,3,000,25,2,12,1,02,2,1,0,0,1,06,037,920112,3006,3,9999,99999,99999999,9,99999,99999999,4084,0,0,0,0,0,31080,25,999,99999,99999999,A,00277283,92110,S,01935216,348,9,99999,99999999,+34.4291920,-118.5406796,L,1,31084,99999,99999,9,N,N,69088,A,02411819,03773,4,35970,42510,99999,038,021,01779778,99999,99999999,9,999,99999,99999999,999999,79309,U,99999,U,,91354 +13198,3,000,20,2,44,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13199,3,000,20,2,79,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13200,3,000,20,2,79,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13201,3,000,20,2,79,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13202,3,000,20,2,79,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13203,3,000,20,2,81,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13204,3,000,20,2,82,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13205,3,000,20,2,83,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13206,3,000,20,2,83,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13207,3,000,20,2,83,1,01,2,1,0,0,2,51,001,090700,5038,5,9999,99999,99999999,9,99999,99999999,1834045,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,92396,N,01927293,999,5,99999,99999999,+37.6074837,-075.8661692,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000901,23420 +13208,3,000,20,2,57,1,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13209,3,000,20,2,57,2,11,2,2,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13210,3,000,20,2,57,2,11,2,2,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13211,3,000,20,2,58,1,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13212,3,000,20,2,58,1,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13213,3,000,20,2,58,1,02,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13214,3,000,20,2,59,1,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13215,3,000,20,2,59,1,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13216,3,000,20,2,59,1,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13217,3,000,20,2,59,2,01,2,1,0,0,2,12,099,007741,2003,2,9999,99999,99999999,9,99999,99999999,680829,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3519822,-080.1790735,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000613,33433 +13218,3,000,34,1,42,1,01,2,1,0,0,2,49,035,100100,2007,2,9999,99999,99999999,9,99999,99999999,58205,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769496,-111.9068280,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84116 +13219,3,000,34,2,18,1,02,2,1,0,0,2,49,035,100100,2007,2,9999,99999,99999999,9,99999,99999999,58205,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769496,-111.9068280,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84116 +13220,3,000,34,2,21,2,06,2,1,0,0,2,49,035,100100,2007,2,9999,99999,99999999,9,99999,99999999,58205,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769496,-111.9068280,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84116 +13221,3,000,20,1,22,1,01,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13222,3,000,20,1,23,1,01,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13223,3,000,20,1,23,1,01,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13224,3,000,20,1,23,1,01,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13225,3,000,20,1,25,1,04,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13226,3,000,20,1,26,1,04,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13227,3,000,20,1,26,1,04,1,1,0,0,2,49,035,100100,2009,2,9999,99999,99999999,9,99999,99999999,60665,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7769069,-111.9011205,L,1,99999,99999,99999,9,Y,N,67000,A,02411771,35011,4,99999,99999,00870,024,002,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SLC019,84103 +13228,3,000,20,2,40,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13229,3,000,20,2,40,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13230,3,000,20,2,43,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13231,3,000,20,2,43,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13232,3,000,21,1,82,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13233,3,000,21,2,51,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13234,3,000,21,2,51,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13235,3,000,21,2,51,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13236,3,000,21,2,51,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13237,3,000,21,2,53,1,01,2,1,0,0,2,19,113,010600,1093,1,9999,99999,99999999,9,99999,99999999,1489264,38271,0,0,38271,0,16300,01,999,99999,99999999,A,00465245,92976,G,00468395,168,4,99999,99999999,+42.0702342,-091.7703595,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00301,2,99999,99999,06540,095,048,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,113011,52411 +13238,3,000,20,1,41,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13239,3,000,20,1,41,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13240,3,000,20,1,44,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13241,3,000,20,1,44,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13242,3,000,20,1,44,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13243,3,000,20,1,44,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13244,3,000,20,1,44,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13245,3,000,20,1,44,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13246,3,000,20,1,48,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13247,3,000,20,1,48,1,01,2,1,0,0,2,13,115,000800,1013,1,9999,99999,99999999,9,99999,99999999,2641787,9537,0,0,9537,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2400430,-085.1324665,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,02190,014,052,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,30161 +13248,5,301,37,1,91,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13249,5,301,37,1,95,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13250,5,301,37,2,67,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13251,5,301,37,2,70,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13252,5,301,37,2,70,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13253,5,301,37,2,75,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13254,5,301,37,2,75,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13255,5,301,37,2,75,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13256,5,301,37,2,76,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13257,5,301,37,2,78,1,01,0,1,1,3,2,27,111,960300,2021,2,9999,99999,99999999,9,99999,99999999,274005,1792,0,0,1792,0,22260,07,999,99999,99999999,A,00659501,50164,F,02396173,999,4,99999,99999999,+46.5726082,-096.0792375,B,2,99999,99999,99999,9,N,N,50164,A,02396173,00700,2,99999,99999,28170,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000355,56572 +13258,3,000,20,1,85,1,02,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13259,3,000,20,1,87,1,02,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13260,3,000,20,2,23,1,07,2,2,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13261,3,000,20,2,25,2,06,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13262,3,000,20,2,26,1,02,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13263,3,000,20,2,33,1,02,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13264,3,000,20,2,33,1,02,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13265,3,000,20,2,33,1,02,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13266,3,000,20,2,41,2,06,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13267,3,000,20,2,41,2,06,2,1,0,0,2,37,067,002702,1026,1,9999,99999,99999999,9,99999,99999999,319793,0,0,0,0,0,49180,05,999,99999,99999999,A,01008552,94068,N,01026685,268,5,99999,99999999,+36.1571203,-080.2698843,L,1,99999,99999,99999,9,Y,N,75000,A,02405771,01801,3,99999,99999,01500,072,032,01027616,99999,99999999,9,999,99999,99999999,999999,96670,U,99999,U,000201,27106 +13268,3,000,25,2,13,1,02,2,1,0,0,1,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13269,3,000,25,2,13,1,02,2,1,0,0,1,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13270,3,000,25,2,43,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13271,3,000,25,2,43,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13272,3,000,25,2,43,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13273,3,000,25,2,43,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13274,3,000,25,2,43,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13275,3,000,29,2,62,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13276,3,000,29,2,62,1,02,2,1,0,0,2,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13277,3,000,30,2,12,1,02,2,1,0,0,1,22,017,022000,1001,1,9999,99999,99999999,9,99999,99999999,19898,0,0,0,0,0,43340,04,999,99999,99999999,A,00558458,94222,N,01929881,508,7,99999,99999999,+32.5031374,-093.7834352,L,1,99999,99999,99999,9,Y,N,70000,A,02405463,00101,3,99999,99999,00300,002,039,01629543,99999,99999999,9,999,99999,99999999,999999,81739,U,99999,U,000039,71103 +13278,3,000,25,1,12,1,01,2,1,0,0,1,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13279,3,000,25,1,14,1,01,2,1,0,0,1,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13280,3,000,25,1,17,2,11,2,2,0,0,1,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13281,3,000,25,1,17,2,11,2,2,0,0,1,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13282,3,000,25,1,18,1,01,2,1,0,0,2,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13283,3,000,25,1,18,1,01,2,1,0,0,2,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13284,3,000,25,1,18,1,01,2,1,0,0,2,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13285,3,000,25,1,18,1,01,2,1,0,0,2,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13286,3,000,25,1,18,1,01,2,1,0,0,2,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13287,3,000,25,1,18,1,01,2,1,0,0,2,56,021,001501,2006,2,9999,99999,99999999,9,99999,99999999,738895,0,0,0,0,0,16940,00,999,99999,99999999,A,01605075,90715,S,01939696,999,8,99999,99999999,+41.1880249,-104.7489966,L,1,99999,99999,99999,9,N,N,63800,S,02409130,00300,4,99999,99999,01980,007,004,01779807,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-3,82009 +13288,3,000,21,1,52,1,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13289,3,000,21,1,52,1,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13290,3,000,21,2,26,2,11,2,2,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13291,3,000,21,2,27,2,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13292,3,000,21,2,27,2,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13293,3,000,21,2,28,2,06,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13294,3,000,21,2,29,2,06,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13295,3,000,21,2,40,1,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13296,3,000,21,2,40,1,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13297,3,000,21,2,40,1,01,2,1,0,0,2,06,085,512514,2007,2,9999,99999,99999999,9,99999,99999999,37646,0,0,0,0,0,41940,20,999,99999,99999999,A,00277307,93175,S,02583195,488,9,99999,99999999,+37.0186316,-121.5831355,L,1,99999,99999,99999,9,N,N,29504,A,02410591,08506,4,99999,99999,15180,030,017,01779778,99999,99999999,9,999,99999,99999999,999999,33328,U,99999,U,,95020 +13298,3,000,21,2,61,1,01,2,1,0,0,2,08,031,004003,4020,4,9999,99999,99999999,9,99999,99999999,26282,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6565427,-104.9401596,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13299,3,000,21,2,61,1,01,2,1,0,0,2,08,031,004003,4020,4,9999,99999,99999999,9,99999,99999999,26282,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6565427,-104.9401596,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13300,3,000,29,1,80,2,01,2,1,0,0,2,08,031,004003,4020,4,9999,99999,99999999,9,99999,99999999,26282,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6565427,-104.9401596,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13301,3,000,35,2,19,1,05,2,1,0,0,2,08,031,004003,4020,4,9999,99999,99999999,9,99999,99999999,26282,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6565427,-104.9401596,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13302,3,000,36,1,67,1,01,2,1,0,0,2,08,031,004003,4020,4,9999,99999,99999999,9,99999,99999999,26282,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6565427,-104.9401596,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13303,3,000,20,1,58,1,07,2,2,0,0,2,08,031,004003,4021,4,9999,99999,99999999,9,99999,99999999,35575,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6539359,-104.9396118,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13304,3,000,25,2,3,1,11,2,2,0,0,1,08,031,004003,4021,4,9999,99999,99999999,9,99999,99999999,35575,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6539359,-104.9396118,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13305,3,000,25,2,7,1,11,2,2,0,0,1,08,031,004003,4021,4,9999,99999,99999999,9,99999,99999999,35575,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6539359,-104.9396118,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13306,3,000,25,2,13,2,01,2,1,0,0,1,08,031,004003,4021,4,9999,99999,99999999,9,99999,99999999,35575,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6539359,-104.9396118,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13307,3,000,27,1,14,1,11,2,2,0,0,1,08,031,004003,4021,4,9999,99999,99999999,9,99999,99999999,35575,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.6539359,-104.9396118,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01705,4,99999,99999,03360,009,032,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031914,80222 +13308,3,000,25,2,7,1,01,2,1,0,0,1,25,017,341904,1007,1,9999,99999,99999999,9,99999,99999999,8613,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4355440,-071.0224315,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13309,3,000,25,2,8,1,01,2,1,0,0,1,25,017,341904,1007,1,9999,99999,99999999,9,99999,99999999,8613,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4355440,-071.0224315,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13310,3,000,25,2,22,1,11,2,2,0,0,2,25,017,341904,1007,1,9999,99999,99999999,9,99999,99999999,8613,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4355440,-071.0224315,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13311,3,000,29,2,52,1,01,2,1,0,0,2,25,017,341904,1007,1,9999,99999,99999999,9,99999,99999999,8613,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4355440,-071.0224315,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13312,3,000,29,2,81,1,01,2,1,0,0,2,25,017,341904,1007,1,9999,99999,99999999,9,99999,99999999,8613,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4355440,-071.0224315,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13313,3,000,33,1,23,2,07,2,2,0,0,2,25,017,341904,1007,1,9999,99999,99999999,9,99999,99999999,8613,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4355440,-071.0224315,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13314,3,000,20,1,27,1,06,2,1,0,0,2,25,017,341904,1008,1,9999,99999,99999999,9,99999,99999999,6955,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4343900,-071.0230496,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13315,3,000,20,1,41,2,11,2,2,0,0,2,25,017,341904,1008,1,9999,99999,99999999,9,99999,99999999,6955,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4343900,-071.0230496,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13316,3,000,20,2,34,1,06,2,1,0,0,2,25,017,341904,1008,1,9999,99999,99999999,9,99999,99999999,6955,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4343900,-071.0230496,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13317,3,000,20,2,34,1,06,2,1,0,0,2,25,017,341904,1008,1,9999,99999,99999999,9,99999,99999999,6955,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4343900,-071.0230496,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,150,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001130,02148 +13318,3,000,20,1,37,2,11,2,2,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13319,3,000,20,1,39,2,06,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13320,3,000,20,1,39,2,06,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13321,3,000,20,1,49,2,11,2,2,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13322,3,000,20,1,50,1,01,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13323,3,000,20,1,50,2,06,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13324,3,000,20,1,50,2,06,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13325,3,000,20,1,52,2,06,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13326,3,000,20,1,52,2,06,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13327,3,000,20,1,58,2,01,2,1,0,0,2,48,061,013104,1003,1,9999,99999,99999999,9,99999,99999999,61491,0,0,0,0,0,15180,34,999,99999,99999999,A,01383816,90480,S,01938571,154,7,99999,99999999,+25.9394529,-097.4743701,L,1,99999,99999,99999,9,Y,N,10768,A,02409924,06703,3,99999,99999,11680,037,027,01779801,99999,99999999,9,999,99999,99999999,999999,10972,U,99999,U,000101,78521 +13328,3,000,20,1,66,2,03,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13329,3,000,20,1,66,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13330,3,000,20,1,66,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13331,3,000,20,1,66,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13332,3,000,20,2,26,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13333,3,000,20,2,26,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13334,3,000,20,2,26,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13335,3,000,20,2,27,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13336,3,000,20,2,27,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13337,3,000,20,2,29,2,06,2,1,0,0,2,06,037,531302,1002,1,9999,99999,99999999,9,99999,99999999,24091,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,93155,S,01935318,348,9,99999,99999999,+34.0177847,-118.1886734,L,1,31084,99999,99999,9,N,N,20802,S,02408711,03743,4,99999,99999,22710,051,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90023 +13338,3,000,21,1,37,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13339,3,000,21,1,37,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13340,3,000,21,1,57,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13341,3,000,21,1,58,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13342,3,000,21,1,58,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13343,3,000,21,2,30,2,11,2,2,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13344,3,000,21,2,39,2,07,2,2,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13345,3,000,21,2,45,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13346,3,000,21,2,61,2,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13347,3,000,21,2,63,1,01,2,1,0,0,2,48,039,661601,3010,3,9999,99999,99999999,9,99999,99999999,39242,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90055,S,01938486,288,7,99999,99999999,+29.3930658,-095.2230000,L,1,99999,99999,99999,9,N,N,33980,A,02413558,04802,3,99999,99999,08090,029,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000025,77511 +13348,3,000,20,1,55,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13349,3,000,20,1,55,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13350,3,000,20,1,57,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13351,3,000,20,1,57,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13352,3,000,20,1,57,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13353,3,000,20,1,57,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13354,3,000,20,1,57,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13355,3,000,20,1,57,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13356,3,000,20,1,58,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13357,3,000,20,1,58,1,01,2,1,0,0,2,37,001,021702,2029,2,9999,99999,99999999,9,99999,99999999,106841,0,0,0,0,0,15500,06,999,99999,99999999,A,01008531,93368,N,01026345,268,5,99999,99999999,+36.0862750,-079.5036612,L,1,99999,99999,99999,9,Y,N,09060,A,02403956,01600,3,99999,99999,00030,063,024,01027616,99999,99999999,9,999,99999,99999999,999999,11728,U,99999,U,00003C,27215 +13358,3,000,21,1,49,2,11,2,2,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13359,3,000,21,1,49,2,11,2,2,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13360,3,000,21,1,49,2,11,2,2,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13361,3,000,21,1,50,1,02,2,1,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13362,3,000,21,1,50,1,02,2,1,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13363,3,000,21,1,50,1,02,2,1,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13364,3,000,21,1,50,1,02,2,1,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13365,3,000,21,1,50,2,11,2,2,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13366,3,000,21,1,51,1,04,2,1,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13367,3,000,21,1,51,1,04,2,1,0,0,2,48,113,010808,1001,1,9999,99999,99999999,9,99999,99999999,479078,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7172506,-096.9047096,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004055,75211 +13368,3,000,25,2,8,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13369,3,000,25,2,8,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13370,3,000,25,2,8,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13371,3,000,25,2,9,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13372,3,000,25,2,9,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13373,3,000,25,2,15,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13374,3,000,25,2,15,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13375,3,000,25,2,15,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13376,3,000,25,2,15,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13377,3,000,25,2,17,1,01,2,1,0,0,1,06,081,610000,3015,3,9999,99999,99999999,9,99999,99999999,60544,0,0,0,0,0,41860,14,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4867577,-122.2454355,L,1,41884,99999,99999,9,Y,N,60102,A,02410919,08105,4,32130,36390,99999,022,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94062 +13378,3,000,20,2,65,1,02,1,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13379,3,000,20,2,65,1,02,1,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13380,3,000,20,2,66,1,02,1,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13381,3,000,20,2,69,2,11,1,2,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13382,3,000,20,2,84,1,02,1,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13383,3,000,20,1,21,2,01,2,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13384,3,000,20,1,30,2,11,2,2,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13385,3,000,20,1,33,2,11,2,2,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13386,3,000,20,2,25,2,02,2,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13387,3,000,20,2,26,1,02,2,1,0,0,2,13,179,010402,1051,1,9999,99999,99999999,9,99999,99999999,94772,0,0,0,0,0,25980,01,999,99999,99999999,A,00357095,91488,S,01936318,496,5,99999,99999999,+31.8086130,-081.6047210,L,1,99999,99999,99999,9,Y,N,38964,A,02404703,04600,3,99999,99999,03300,168,001,01705317,99999,99999999,9,999,99999,99999999,999999,39133,U,99999,U,000012,31313 +13388,3,000,20,2,68,1,04,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13389,3,000,20,2,68,1,04,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13390,3,000,20,2,74,1,02,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13391,3,000,21,1,46,1,04,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13392,3,000,21,1,47,1,04,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13393,3,000,21,1,47,1,04,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13394,3,000,21,1,48,1,04,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13395,3,000,21,1,59,1,01,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13396,3,000,21,1,59,1,01,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13397,3,000,21,2,32,1,01,2,1,0,0,2,06,013,347000,3003,3,9999,99999,99999999,9,99999,99999999,14623,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9544960,-122.0912226,L,1,36084,99999,99999,9,N,N,57764,A,02411439,01312,4,99999,99999,26370,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94523 +13398,3,000,20,2,55,2,06,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13399,3,000,20,2,56,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13400,3,000,20,2,58,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13401,3,000,20,2,58,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13402,3,000,20,2,58,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13403,3,000,20,2,58,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13404,3,000,20,2,58,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13405,3,000,20,2,59,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13406,3,000,20,2,59,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13407,3,000,20,2,59,1,02,2,1,0,0,2,24,033,802107,2001,2,9999,99999,99999999,9,99999,99999999,171983,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,90524,N,01929662,548,5,99999,99999999,+38.8452406,-076.9011088,L,1,47894,99999,99999,9,N,N,75725,S,02652341,01104,3,99999,99999,00510,025,025,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-016,20747 +13408,3,000,20,2,71,1,01,1,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13409,3,000,20,2,71,1,01,1,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13410,3,000,20,2,73,1,01,1,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13411,3,000,20,2,80,1,02,1,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13412,3,000,20,2,80,1,02,1,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13413,3,000,20,1,36,1,01,2,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13414,3,000,20,1,36,1,01,2,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13415,3,000,20,1,37,1,01,2,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13416,3,000,20,1,76,1,03,2,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13417,3,000,20,1,79,1,01,2,1,0,0,2,40,101,000100,2009,2,5620,18170,01925077,R,99999,99999999,27861,0,0,0,0,0,34780,02,999,99999,99999999,A,01101838,91924,S,01937776,538,7,99999,99999999,+35.7612444,-095.4141277,L,2,99999,99999,99999,9,Y,N,50050,A,02411201,20700,3,99999,99999,20970,013,009,01102857,99999,99999999,9,999,99999,99999999,999999,60868,U,99999,U,000022,74401 +13418,3,000,20,2,65,1,01,1,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13419,3,000,20,1,25,2,06,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13420,3,000,20,1,35,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13421,3,000,20,1,38,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13422,3,000,20,1,50,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13423,3,000,20,1,50,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13424,3,000,20,1,50,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13425,3,000,20,1,54,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13426,3,000,20,1,55,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13427,3,000,20,1,55,1,01,2,1,0,0,2,53,061,050700,2003,2,9999,99999,99999999,9,99999,99999999,19473,0,0,0,0,0,42660,07,999,99999,99999999,A,01529222,90992,S,01939500,500,9,99999,99999999,+47.7878017,-122.3620426,L,1,42644,99999,99999,9,N,N,20750,A,02410403,26104,4,99999,99999,02400,032,032,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,20750,U,001563,98020 +13428,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13429,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13430,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13431,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13432,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13433,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13434,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13435,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13436,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13437,3,000,20,2,82,1,01,1,1,0,0,2,13,121,009607,1000,1,9999,99999,99999999,9,99999,99999999,144653,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.8557225,-084.3502705,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,054,006,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00007C,30319 +13438,3,000,20,2,36,1,01,2,1,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13439,3,000,20,2,36,1,01,2,1,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13440,3,000,20,2,40,1,01,2,1,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13441,3,000,20,2,47,1,07,2,2,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13442,3,000,20,2,60,1,01,2,1,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13443,3,000,20,2,60,1,01,2,1,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13444,3,000,25,1,42,1,27,2,3,0,0,2,42,131,400600,1019,1,9999,99999,99999999,9,99999,99999999,12750,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5176065,-075.9590346,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13445,3,000,20,1,66,1,01,1,1,0,0,2,42,131,400600,1020,1,9999,99999,99999999,9,99999,99999999,82517,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5168703,-075.9594558,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13446,3,000,20,1,67,1,01,1,1,0,0,2,42,131,400600,1020,1,9999,99999,99999999,9,99999,99999999,82517,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5168703,-075.9594558,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13447,3,000,20,1,82,1,01,1,1,0,0,2,42,131,400600,1020,1,9999,99999,99999999,9,99999,99999999,82517,0,0,0,0,0,42540,12,999,99999,99999999,A,01209192,22112,A,01217264,999,2,99999,99999999,+41.5168703,-075.9594558,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00702,1,99999,99999,23850,117,020,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,18657 +13448,3,000,25,2,10,1,09,2,2,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13449,3,000,25,2,14,1,07,2,2,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13450,3,000,25,2,15,1,07,2,2,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13451,3,000,25,2,16,1,01,2,1,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13452,3,000,30,2,10,1,01,2,1,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13453,3,000,30,2,10,1,01,2,1,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13454,3,000,30,2,10,1,01,2,1,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13455,3,000,30,2,10,1,01,2,1,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13456,3,000,30,2,13,1,11,2,2,0,0,1,08,041,007301,3015,3,9999,99999,99999999,9,99999,99999999,13120,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0636370,-104.8281835,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13457,3,000,20,1,27,1,11,1,2,0,0,2,08,041,007301,3016,3,9999,99999,99999999,9,99999,99999999,16268,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90304,S,01935407,999,8,99999,99999999,+39.0662193,-104.8337979,L,1,99999,99999,99999,9,N,N,51800,A,02413009,02002,4,99999,99999,05820,019,009,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041315,80132 +13458,3,000,34,1,55,2,06,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13459,3,000,34,2,26,2,11,2,2,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13460,3,000,34,2,30,1,01,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13461,3,000,34,2,31,1,02,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13462,3,000,35,1,8,2,11,2,2,0,0,1,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13463,3,000,36,1,10,1,09,2,2,0,0,1,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13464,3,000,36,1,19,1,02,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13465,3,000,36,1,19,1,02,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13466,3,000,36,1,23,1,01,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13467,3,000,36,1,23,1,02,2,1,0,0,2,32,003,003314,4007,4,9999,99999,99999999,9,99999,99999999,874508,0,0,0,0,0,29820,04,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.3161204,-115.2489074,L,1,99999,99999,99999,9,Y,N,40000,A,02411630,00401,4,99999,99999,00060,013,018,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,002635,89131 +13468,3,000,20,1,48,1,03,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13469,3,000,20,1,48,1,03,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13470,3,000,20,1,63,1,01,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13471,3,000,20,1,63,1,01,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13472,3,000,20,1,64,1,01,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13473,3,000,20,1,64,1,01,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13474,3,000,20,1,64,1,01,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13475,3,000,20,2,42,1,16,2,2,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13476,3,000,20,2,47,1,01,2,1,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13477,3,000,20,2,54,1,08,2,2,0,0,2,40,143,008502,2012,2,5620,18170,01925077,R,99999,99999999,162136,1449,0,0,1449,0,46140,01,999,99999,99999999,A,01101859,93380,S,01937890,538,7,99999,99999999,+36.1055615,-095.8835528,B,1,99999,99999,99999,9,Y,N,75000,A,02412110,20803,3,99999,99999,30240,075,025,01102857,99999,99999999,9,999,99999,99999999,999999,88948,U,99999,U,000088,74145 +13478,3,000,20,1,70,1,02,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13479,3,000,20,1,71,1,02,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13480,3,000,20,1,71,1,02,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13481,3,000,20,1,73,1,01,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13482,3,000,20,1,88,1,01,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13483,3,000,20,1,88,1,01,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13484,3,000,20,2,44,1,02,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13485,3,000,20,2,44,1,02,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13486,3,000,20,2,53,1,01,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13487,3,000,20,2,65,1,01,2,1,0,0,2,51,147,930301,2052,2,9999,99999,99999999,9,99999,99999999,4117499,5713,0,0,5713,0,99999,05,999,99999,99999999,A,01492359,92573,N,01927236,999,5,99999,99999999,+37.1326221,-078.3882382,B,9,99999,99999,99999,9,9,9,99999,9,99999999,08300,3,99999,99999,03060,060,022,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23954 +13488,3,000,20,1,38,1,04,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13489,3,000,20,1,38,1,04,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13490,3,000,20,1,49,1,04,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13491,3,000,20,1,52,2,01,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13492,3,000,20,1,53,2,01,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13493,3,000,20,1,67,1,01,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13494,3,000,20,1,68,1,01,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13495,3,000,20,1,83,1,01,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13496,3,000,20,2,49,1,01,2,1,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13497,3,000,22,1,32,1,13,2,2,0,0,2,06,067,007301,3033,3,9999,99999,99999999,9,99999,99999999,4803,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6627130,-121.3843850,L,1,99999,99999,99999,9,N,N,44760,S,02583067,06704,4,99999,99999,01332,008,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95652 +13498,3,000,21,1,64,2,06,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13499,3,000,21,1,69,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13500,3,000,21,1,75,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13501,3,000,21,1,76,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13502,3,000,21,1,76,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13503,3,000,21,1,79,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13504,3,000,21,2,32,2,02,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13505,3,000,21,2,40,1,06,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13506,3,000,21,2,51,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13507,3,000,21,2,52,1,01,2,1,0,0,2,06,073,013506,2005,2,9999,99999,99999999,9,99999,99999999,32893,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7306818,-116.9583723,L,1,99999,99999,99999,9,N,N,73696,S,02408796,07328,4,06810,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91978 +13508,3,000,21,2,75,1,01,2,1,0,0,2,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13509,3,000,21,2,75,1,01,2,1,0,0,2,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13510,3,000,25,2,11,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13511,3,000,25,2,12,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13512,3,000,25,2,12,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13513,3,000,25,2,13,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13514,3,000,25,2,13,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13515,3,000,25,2,14,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13516,3,000,25,2,14,1,01,2,1,0,0,1,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13517,3,000,27,1,38,1,02,2,1,0,0,2,05,133,080100,1068,1,9999,99999,99999999,9,99999,99999999,1803394,0,0,0,0,0,99999,04,999,99999,99999999,A,00069182,92502,N,00069128,999,7,99999,99999999,+34.1074751,-094.3570471,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,00049,020,011,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000017,71832 +13518,3,000,26,2,22,1,02,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13519,3,000,27,1,23,2,21,2,2,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13520,3,000,28,1,25,2,01,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13521,3,000,28,1,43,1,04,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13522,3,000,28,1,43,1,04,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13523,3,000,28,1,44,1,04,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13524,3,000,28,1,45,1,02,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13525,3,000,30,1,4,1,01,2,1,0,0,1,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13526,3,000,30,1,17,1,02,2,1,0,0,1,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13527,3,000,30,1,28,2,06,2,1,0,0,2,06,095,250200,2004,2,9999,99999,99999999,9,99999,99999999,24770,0,0,0,0,0,46700,05,999,99999,99999999,A,00277312,93530,S,01935358,488,9,99999,99999999,+38.1049260,-122.2137891,L,1,99999,99999,99999,9,Y,N,81666,A,02412142,09501,4,99999,99999,40740,014,003,01779778,99999,99999999,9,999,99999,99999999,999999,90028,U,99999,U,,94591 +13528,3,000,22,2,67,1,01,2,1,0,0,2,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13529,3,000,23,1,42,1,02,2,1,0,0,2,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13530,3,000,23,1,64,1,01,2,1,0,0,2,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13531,3,000,23,2,49,1,01,2,1,0,0,2,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13532,3,000,23,2,49,1,01,2,1,0,0,2,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13533,3,000,25,1,0,1,01,2,1,0,0,1,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13534,3,000,25,1,0,1,01,2,1,0,0,1,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13535,3,000,25,1,1,1,01,2,1,0,0,1,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13536,3,000,25,1,1,1,01,2,1,0,0,1,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13537,3,000,25,1,1,1,01,2,1,0,0,1,12,033,003608,3006,3,9999,99999,99999999,9,99999,99999999,3159418,5473,0,0,5473,0,37860,01,999,99999,99999999,A,00295737,90390,S,01935711,426,5,99999,99999999,+30.5565192,-087.2480225,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03301,3,99999,99999,00510,001,001,00294478,99999,99999999,9,999,99999,99999999,999999,68482,U,99999,U,000246,32514 +13538,3,000,20,2,69,1,01,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13539,3,000,20,2,69,1,01,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13540,3,000,20,2,69,1,01,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13541,3,000,20,2,69,1,01,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13542,3,000,20,2,69,1,02,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13543,3,000,20,2,69,1,02,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13544,3,000,20,2,69,1,02,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13545,3,000,20,2,69,1,02,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13546,3,000,20,2,69,1,02,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13547,3,000,20,2,69,1,02,1,1,0,0,2,22,033,001102,2011,2,9999,99999,99999999,9,99999,99999999,584895,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4567993,-091.1101930,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,015,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,01-104,70806 +13548,3,000,34,2,29,2,11,2,2,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13549,3,000,34,2,61,1,04,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13550,3,000,34,2,63,2,06,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13551,3,000,34,2,64,2,06,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13552,3,000,36,2,21,2,06,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13553,3,000,36,2,21,2,06,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13554,3,000,36,2,21,2,06,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13555,3,000,36,2,24,2,06,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13556,3,000,36,2,26,1,04,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13557,3,000,36,2,30,1,01,2,1,0,0,2,36,081,025301,2000,2,9999,99999,99999999,9,99999,99999999,10936,0,0,0,0,0,35620,14,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7439083,-073.9152492,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04402,1,99999,99999,20580,030,012,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000652,11104 +13558,3,000,25,2,21,2,02,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13559,3,000,25,2,31,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13560,3,000,25,2,31,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13561,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13562,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13563,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13564,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13565,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13566,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13567,3,000,25,2,33,1,01,2,1,0,0,2,12,053,040701,1114,1,9999,99999,99999999,9,99999,99999999,672622,0,0,0,0,0,45300,11,999,99999,99999999,A,00295751,93230,S,01935938,999,5,99999,99999999,+28.6276127,-082.5280406,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05300,3,99999,99999,00810,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000025,34614 +13568,3,000,21,2,73,2,11,2,2,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13569,3,000,21,2,74,1,01,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13570,3,000,21,2,78,2,06,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13571,3,000,21,2,78,2,06,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13572,3,000,22,1,27,2,06,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13573,3,000,22,1,39,1,02,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13574,3,000,22,1,42,1,01,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13575,3,000,22,1,42,1,01,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13576,3,000,22,1,42,1,01,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13577,3,000,22,1,44,1,01,2,1,0,0,2,12,057,013505,2000,2,9999,99999,99999999,9,99999,99999999,529335,0,0,0,0,0,45300,15,999,99999,99999999,A,00295757,92614,S,02583400,999,5,99999,99999999,+27.9378007,-082.3633081,L,1,99999,99999,99999,9,N,N,54387,S,02403391,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000967,33619 +13578,3,000,21,1,64,1,02,2,1,0,0,2,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13579,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13580,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13581,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13582,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13583,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13584,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13585,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13586,3,000,25,1,7,1,01,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13587,3,000,25,1,8,1,02,2,1,0,0,1,13,145,120403,1004,1,9999,99999,99999999,9,99999,99999999,84026,0,0,0,0,0,17980,03,999,99999,99999999,A,00326700,93288,S,01936632,194,5,99999,99999999,+32.6298405,-084.7534956,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03700,3,99999,99999,02700,137,029,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000WA,31831 +13588,3,000,20,1,66,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13589,3,000,20,1,76,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13590,3,000,20,1,76,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13591,3,000,20,1,76,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13592,3,000,20,2,21,2,08,2,2,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13593,3,000,20,2,23,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13594,3,000,20,2,41,2,11,2,2,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13595,3,000,20,2,63,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13596,3,000,21,1,35,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13597,3,000,21,1,35,1,01,2,1,0,0,2,40,109,101800,1005,1,9999,99999,99999999,9,99999,99999999,10554,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4917020,-097.5266503,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,088,046,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000204,73106 +13598,3,000,21,1,56,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13599,3,000,21,1,56,2,11,2,2,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13600,3,000,21,1,58,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13601,3,000,21,1,58,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13602,3,000,21,1,58,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13603,3,000,21,1,58,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13604,3,000,21,1,58,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13605,3,000,21,1,59,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13606,3,000,21,1,59,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13607,3,000,21,1,61,1,01,2,1,0,0,2,42,011,010702,1002,1,9999,99999,99999999,9,99999,99999999,554954,0,0,0,0,0,39740,09,999,99999,99999999,A,01209172,72208,A,01215947,428,2,99999,99999999,+40.3200274,-076.0753442,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,1,99999,99999,06780,129,029,01779798,99999,99999999,9,999,99999,99999999,999999,73693,U,99999,U,001485,19565 +13608,3,000,22,1,23,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13609,3,000,22,1,23,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13610,3,000,22,1,23,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13611,3,000,22,1,25,2,01,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13612,3,000,22,1,25,2,01,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13613,3,000,22,1,25,2,01,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13614,3,000,22,1,25,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13615,3,000,22,1,25,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13616,3,000,22,1,26,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13617,3,000,22,1,26,2,06,2,1,0,0,2,48,029,181825,1002,1,9999,99999,99999999,9,99999,99999999,890142,7674,0,0,7674,0,41700,20,999,99999,99999999,A,01383800,93412,S,02628571,484,7,99999,99999999,+29.5526946,-098.6589078,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05910,3,99999,99999,33120,125,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,003127,78249 +13618,3,000,20,2,24,1,01,1,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13619,3,000,20,2,71,1,01,1,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13620,3,000,20,2,26,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13621,3,000,20,2,26,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13622,3,000,20,2,26,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13623,3,000,20,2,26,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13624,3,000,20,2,36,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13625,3,000,20,2,46,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13626,3,000,20,2,46,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13627,3,000,20,2,65,1,01,2,1,0,0,2,49,035,113016,3008,3,9999,99999,99999999,9,99999,99999999,21203,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5168484,-111.9630954,L,1,99999,99999,99999,9,N,N,64340,A,02410967,35017,4,99999,99999,00420,041,011,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,RIV016,84065 +13628,3,000,20,1,46,1,01,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13629,3,000,20,1,46,1,01,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13630,3,000,20,1,46,1,02,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13631,3,000,20,1,46,1,02,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13632,3,000,20,1,47,1,02,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13633,3,000,20,1,47,2,01,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13634,3,000,20,1,49,1,02,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13635,3,000,20,1,63,1,01,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13636,3,000,20,1,63,1,01,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13637,3,000,20,1,63,1,01,2,1,0,0,2,22,051,027817,1018,1,9999,99999,99999999,9,99999,99999999,164307,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94069,N,01929741,406,7,99999,99999999,+29.8467355,-090.1147548,L,1,99999,99999,99999,9,N,N,24390,S,02402460,02501,3,99999,99999,00840,084,008,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000192,70072 +13638,3,000,21,1,51,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13639,3,000,21,1,51,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13640,3,000,21,1,52,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13641,3,000,21,1,52,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13642,3,000,21,1,52,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13643,3,000,21,1,54,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13644,3,000,21,1,55,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13645,3,000,21,1,55,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13646,3,000,21,1,56,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13647,3,000,21,1,58,1,04,2,1,0,0,2,06,075,061101,1007,1,9999,99999,99999999,9,99999,99999999,5603,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7947426,-122.4060722,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94108 +13648,3,000,20,2,35,1,01,2,1,0,0,2,17,091,012300,1009,1,9999,99999,99999999,9,99999,99999999,16719,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1218929,-087.8600363,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13649,3,000,25,1,21,1,07,2,2,0,0,2,17,091,012300,1009,1,9999,99999,99999999,9,99999,99999999,16719,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1218929,-087.8600363,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13650,3,000,25,1,45,1,02,2,1,0,0,2,17,091,012300,1009,1,9999,99999,99999999,9,99999,99999999,16719,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1218929,-087.8600363,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13651,3,000,25,2,7,1,02,2,1,0,0,1,17,091,012300,1009,1,9999,99999,99999999,9,99999,99999999,16719,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1218929,-087.8600363,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13652,3,000,26,1,15,1,02,2,1,0,0,1,17,091,012300,1009,1,9999,99999,99999999,9,99999,99999999,16719,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1218929,-087.8600363,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13653,3,000,20,1,25,1,02,1,1,0,0,2,17,091,012300,1010,1,9999,99999,99999999,9,99999,99999999,16785,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1217397,-087.8586391,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13654,3,000,20,1,63,1,02,1,1,0,0,2,17,091,012300,1010,1,9999,99999,99999999,9,99999,99999999,16785,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1217397,-087.8586391,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13655,3,000,20,2,29,1,02,1,1,0,0,2,17,091,012300,1010,1,9999,99999,99999999,9,99999,99999999,16785,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1217397,-087.8586391,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13656,3,000,20,2,30,1,02,1,1,0,0,2,17,091,012300,1010,1,9999,99999,99999999,9,99999,99999999,16785,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1217397,-087.8586391,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13657,3,000,20,2,30,1,02,1,1,0,0,2,17,091,012300,1010,1,9999,99999,99999999,9,99999,99999999,16785,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,38947,A,00429194,176,3,99999,99999999,+41.1217397,-087.8586391,L,1,99999,99999,99999,9,Y,N,38934,A,02395489,09100,2,99999,99999,20760,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Kank12,60901 +13658,3,000,32,1,19,1,01,2,1,0,0,2,36,103,158411,1016,1,9999,99999,99999999,9,99999,99999999,760844,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9194978,-072.8838929,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13659,3,000,32,2,43,1,02,2,1,0,0,2,36,103,158411,1016,1,9999,99999,99999999,9,99999,99999999,760844,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9194978,-072.8838929,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13660,3,000,36,1,39,1,04,2,1,0,0,2,36,103,158411,1016,1,9999,99999,99999999,9,99999,99999999,760844,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9194978,-072.8838929,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13661,3,000,36,2,48,1,06,2,1,0,0,2,36,103,158411,1016,1,9999,99999,99999999,9,99999,99999999,760844,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9194978,-072.8838929,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13662,3,000,20,1,31,1,04,2,1,0,0,2,36,103,158411,1017,1,9999,99999,99999999,9,99999,99999999,15216,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9151821,-072.8859726,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13663,3,000,21,2,42,1,15,2,2,0,0,2,36,103,158411,1017,1,9999,99999,99999999,9,99999,99999999,15216,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9151821,-072.8859726,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13664,3,000,21,2,48,1,04,2,1,0,0,2,36,103,158411,1017,1,9999,99999,99999999,9,99999,99999999,15216,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9151821,-072.8859726,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13665,3,000,21,2,67,1,04,2,1,0,0,2,36,103,158411,1017,1,9999,99999,99999999,9,99999,99999999,15216,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9151821,-072.8859726,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13666,3,000,21,2,69,1,04,2,1,0,0,2,36,103,158411,1017,1,9999,99999,99999999,9,99999,99999999,15216,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9151821,-072.8859726,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13667,3,000,25,1,1,1,07,2,2,0,0,1,36,103,158411,1017,1,9999,99999,99999999,9,99999,99999999,15216,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.9151821,-072.8859726,L,1,35004,99999,99999,9,N,N,22980,S,02389450,03304,1,99999,99999,19230,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000278,11961 +13668,3,000,25,2,17,1,01,2,1,0,0,1,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13669,3,000,25,2,17,1,01,2,1,0,0,1,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13670,3,000,25,2,23,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13671,3,000,25,2,25,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13672,3,000,25,2,25,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13673,3,000,25,2,25,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13674,3,000,25,2,25,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13675,3,000,25,2,26,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13676,3,000,25,2,26,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13677,3,000,25,2,26,1,01,2,1,0,0,2,36,119,008302,3016,3,9999,99999,99999999,9,99999,99999999,76590,0,0,0,0,0,35620,17,999,99999,99999999,A,00974157,64320,A,00979446,408,2,99999,99999999,+41.0298240,-073.6873803,L,1,35614,99999,99999,9,N,N,64325,A,02391107,03110,1,99999,99999,24630,091,037,01779796,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,000555,10573 +13678,3,000,21,1,63,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13679,3,000,21,1,63,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13680,3,000,21,1,68,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13681,3,000,21,1,76,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13682,3,000,21,2,25,1,29,2,3,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13683,3,000,21,2,66,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13684,3,000,21,2,66,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13685,3,000,21,2,66,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13686,3,000,21,2,66,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13687,3,000,21,2,66,1,01,2,1,0,0,2,36,067,016001,1002,1,9999,99999,99999999,9,99999,99999999,682260,0,0,0,0,0,45060,24,999,99999,99999999,A,00974132,54958,A,00979311,532,2,99999,99999999,+42.9834268,-076.2557923,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00704,1,99999,99999,18480,128,050,01779796,99999,99999999,9,999,99999,99999999,999999,86302,U,99999,U,000222,13215 +13688,3,000,20,2,27,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13689,3,000,20,2,27,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13690,3,000,20,2,27,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13691,3,000,20,2,27,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13692,3,000,20,2,27,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13693,3,000,20,2,27,1,03,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13694,3,000,20,2,28,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13695,3,000,20,2,28,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13696,3,000,20,2,28,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13697,3,000,20,2,28,1,01,2,1,0,0,2,46,099,001801,2002,2,9999,99999,99999999,9,99999,99999999,144107,0,0,0,0,0,43620,00,999,99999,99999999,A,01265772,59020,F,01267566,999,4,99999,99999999,+43.5282071,-096.6878646,L,1,99999,99999,99999,9,Y,N,59020,A,01267566,00601,2,99999,99999,66270,014,014,01785534,99999,99999999,9,999,99999,99999999,999999,82252,U,99999,U,00N2-3,57103 +13698,3,000,21,2,46,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13699,3,000,21,2,54,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13700,3,000,21,2,54,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13701,3,000,21,2,54,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13702,3,000,21,2,66,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13703,3,000,21,2,66,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13704,3,000,21,2,67,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13705,3,000,21,2,67,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13706,3,000,21,2,67,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13707,3,000,21,2,75,1,01,2,1,0,0,2,12,005,000900,4012,4,9999,99999,99999999,9,99999,99999999,261481,0,0,0,0,0,37460,02,999,99999,99999999,A,00295738,92626,S,01935889,999,5,99999,99999999,+30.1171739,-085.5953707,L,1,99999,99999,99999,9,N,N,55075,A,02404479,00500,3,99999,99999,00090,006,002,00294478,99999,99999999,9,999,99999,99999999,999999,67305,U,99999,U,000042,32404 +13708,3,000,20,1,57,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13709,3,000,20,1,58,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13710,3,000,20,1,58,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13711,3,000,20,1,59,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13712,3,000,20,1,59,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13713,3,000,20,1,59,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13714,3,000,20,1,59,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13715,3,000,20,1,75,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13716,3,000,20,2,36,1,23,2,3,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13717,3,000,20,2,39,1,01,2,1,0,0,2,27,039,950500,1050,1,9999,99999,99999999,9,99999,99999999,54653,0,0,0,0,0,40340,01,999,99999,99999999,A,00659465,32498,F,02395495,462,4,99999,99999999,+44.0333516,-092.7670385,L,1,99999,99999,99999,9,N,N,32498,A,02395495,02800,2,99999,99999,16980,25A,025,00662849,99999,99999999,9,999,99999,99999999,999999,44047,U,99999,U,000051,55944 +13718,3,000,21,2,64,1,11,2,2,0,0,2,40,097,040400,1013,1,5550,13735,02418810,R,99999,99999999,4409837,0,0,0,0,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2284144,-095.4265370,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13719,3,000,21,2,82,1,01,2,1,0,0,2,40,097,040400,1013,1,5550,13735,02418810,R,99999,99999999,4409837,0,0,0,0,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2284144,-095.4265370,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13720,3,000,21,2,82,1,01,2,1,0,0,2,40,097,040400,1013,1,5550,13735,02418810,R,99999,99999999,4409837,0,0,0,0,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2284144,-095.4265370,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13721,3,000,20,1,57,1,01,1,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13722,3,000,20,1,31,1,03,2,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13723,3,000,20,1,38,1,01,2,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13724,3,000,20,1,38,1,01,2,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13725,3,000,20,1,64,1,01,2,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13726,3,000,20,1,68,1,01,2,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13727,3,000,20,2,27,1,03,2,1,0,0,2,40,097,040400,1016,1,5550,13735,02418810,R,99999,99999999,2546536,11346,0,0,11346,0,99999,02,999,99999,99999999,A,01101833,92613,S,01937831,999,7,99999,99999999,+36.2132234,-095.4134151,B,9,99999,99999,99999,9,9,9,99999,9,99999999,20500,3,99999,99999,07670,008,003,01102857,99999,99999999,9,353,47002,02631130,999999,99999,9,99999,R,000022,74361 +13728,3,000,25,1,7,1,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13729,3,000,25,1,7,1,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13730,3,000,25,1,7,1,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13731,3,000,25,1,19,2,01,2,1,0,0,2,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13732,3,000,25,1,19,2,01,2,1,0,0,2,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13733,3,000,25,2,6,2,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13734,3,000,25,2,10,2,03,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13735,3,000,26,1,12,1,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13736,3,000,27,1,13,1,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13737,3,000,27,1,17,1,01,2,1,0,0,1,48,471,790103,3009,3,9999,99999,99999999,9,99999,99999999,399930,4684,0,0,4684,0,26660,08,999,99999,99999999,A,01384021,93255,S,01939132,288,7,99999,99999999,+30.7787400,-095.4581841,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03900,3,99999,99999,24030,018,005,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000304,77320 +13738,3,000,21,2,48,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13739,3,000,21,2,48,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13740,3,000,21,2,67,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13741,3,000,21,2,67,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13742,3,000,21,2,79,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13743,3,000,21,2,79,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13744,3,000,21,2,79,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13745,3,000,21,2,79,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13746,3,000,22,1,28,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13747,3,000,22,1,28,1,01,2,1,0,0,2,08,069,001813,1004,1,9999,99999,99999999,9,99999,99999999,65232,0,0,0,0,0,22660,02,999,99999,99999999,A,00198150,92337,S,01935516,999,8,99999,99999999,+40.4935740,-105.0860818,L,1,99999,99999,99999,9,Y,N,27425,A,02410526,00303,4,99999,99999,05400,053,014,01779779,99999,99999999,9,999,99999,99999999,999999,30628,U,99999,U,069330,80525 +13748,3,000,21,2,92,1,01,2,1,0,0,2,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13749,3,000,25,1,2,1,01,2,1,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13750,3,000,25,1,2,1,01,2,1,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13751,3,000,25,1,2,1,01,2,1,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13752,3,000,25,1,4,2,01,2,1,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13753,3,000,25,1,11,2,01,2,1,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13754,3,000,25,1,15,2,11,2,2,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13755,3,000,25,1,15,2,11,2,2,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13756,3,000,25,1,18,1,07,2,2,0,0,2,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13757,3,000,25,2,5,1,01,2,1,0,0,1,06,099,000201,2012,2,9999,99999,99999999,9,99999,99999999,19996,0,0,0,0,0,33700,10,999,99999,99999999,A,00277314,92210,S,01935226,488,9,99999,99999999,+37.7626002,-120.8717935,L,1,99999,99999,99999,9,N,N,52694,A,02411291,09903,4,99999,99999,00062,012,008,01779778,99999,99999999,9,999,99999,99999999,999999,64270,U,99999,U,,95361 +13758,3,000,20,1,28,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13759,3,000,20,1,29,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13760,3,000,20,1,31,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13761,3,000,20,1,31,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13762,3,000,20,1,31,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13763,3,000,20,1,42,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13764,3,000,20,1,42,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13765,3,000,20,1,42,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13766,3,000,20,1,42,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13767,3,000,20,1,53,1,01,1,1,0,0,2,27,053,106400,1004,1,9999,99999,99999999,9,99999,99999999,15771,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9633201,-093.2274401,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01609,2,99999,99999,21240,60B,060,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001450,55406 +13768,3,000,25,2,23,1,01,2,1,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13769,3,000,25,2,23,1,01,2,1,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13770,3,000,25,2,23,1,01,2,1,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13771,3,000,25,2,23,1,01,2,1,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13772,3,000,25,2,23,1,01,2,1,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13773,3,000,25,2,23,1,01,2,1,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13774,3,000,25,2,23,2,11,2,2,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13775,3,000,25,2,23,2,11,2,2,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13776,3,000,25,2,23,2,11,2,2,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13777,3,000,25,2,23,2,11,2,2,0,0,2,06,111,007202,2002,2,9999,99999,99999999,9,99999,99999999,738498,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1674304,-118.8270069,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91362 +13778,3,000,26,1,13,1,01,2,1,0,0,1,17,075,950800,3122,3,9999,99999,99999999,9,99999,99999999,2545067,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,59767,A,00429562,999,3,99999,99999999,+40.5365167,-087.8897609,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,10290,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PI01,60924 +13779,3,000,27,1,13,1,01,2,1,0,0,1,17,075,950800,3122,3,9999,99999,99999999,9,99999,99999999,2545067,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,59767,A,00429562,999,3,99999,99999999,+40.5365167,-087.8897609,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,10290,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PI01,60924 +13780,3,000,27,2,16,1,01,2,1,0,0,1,17,075,950800,3122,3,9999,99999,99999999,9,99999,99999999,2545067,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,59767,A,00429562,999,3,99999,99999999,+40.5365167,-087.8897609,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,10290,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PI01,60924 +13781,3,000,20,1,62,1,01,1,1,0,0,2,17,075,950900,1064,1,9999,99999,99999999,9,99999,99999999,2652999,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5252817,-087.6253467,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13782,3,000,20,1,64,1,01,2,1,0,0,2,17,075,950900,1064,1,9999,99999,99999999,9,99999,99999999,2652999,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5252817,-087.6253467,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13783,3,000,21,2,62,1,01,2,1,0,0,2,17,075,950900,1064,1,9999,99999,99999999,9,99999,99999999,2652999,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5252817,-087.6253467,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13784,3,000,20,2,78,1,01,1,1,0,0,2,17,075,950900,1069,1,9999,99999,99999999,9,99999,99999999,2688846,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5102489,-087.6440278,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13785,3,000,20,2,78,1,01,1,1,0,0,2,17,075,950900,1069,1,9999,99999,99999999,9,99999,99999999,2688846,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5102489,-087.6440278,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13786,3,000,20,1,73,1,01,2,1,0,0,2,17,075,950900,1069,1,9999,99999,99999999,9,99999,99999999,2688846,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5102489,-087.6440278,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13787,3,000,20,1,73,1,01,2,1,0,0,2,17,075,950900,1069,1,9999,99999,99999999,9,99999,99999999,2688846,0,0,0,0,0,99999,16,999,99999,99999999,A,00424239,61665,A,00429601,999,3,99999,99999999,+40.5102489,-087.6440278,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,19660,106,053,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00PR01,60973 +13788,3,000,21,1,34,1,01,2,1,0,0,2,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13789,3,000,21,1,68,1,01,2,1,0,0,2,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13790,3,000,21,1,75,1,01,2,1,0,0,2,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13791,3,000,21,1,79,1,01,2,1,0,0,2,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13792,3,000,21,1,79,1,01,2,1,0,0,2,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13793,3,000,25,1,2,1,01,2,1,0,0,1,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13794,3,000,25,1,2,1,01,2,1,0,0,1,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13795,3,000,25,1,5,1,01,2,1,0,0,1,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13796,3,000,25,1,5,1,01,2,1,0,0,1,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13797,3,000,25,1,6,1,08,2,2,0,0,1,27,053,021503,3008,3,9999,99999,99999999,9,99999,99999999,19596,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,45628,F,02395201,378,4,99999,99999999,+45.0374009,-093.3734188,L,1,99999,99999,99999,9,N,N,45628,A,02395201,01604,2,99999,99999,31780,45A,045,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002315,55428 +13798,3,000,20,2,76,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13799,3,000,20,2,77,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13800,3,000,20,2,77,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13801,3,000,20,2,78,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13802,3,000,20,2,78,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13803,3,000,20,2,79,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13804,3,000,21,1,24,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13805,3,000,21,1,39,1,02,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13806,3,000,21,1,45,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13807,3,000,21,1,45,1,01,2,1,0,0,2,39,049,006950,2000,2,9999,99999,99999999,9,99999,99999999,124751,372,0,0,372,0,18140,12,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0786044,-083.0489327,B,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,021,016,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025ANE,43235 +13808,3,000,21,2,80,1,04,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13809,3,000,22,2,18,1,04,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13810,3,000,22,2,24,1,01,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13811,3,000,22,2,24,1,01,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13812,3,000,22,2,24,1,01,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13813,3,000,22,2,37,1,01,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13814,3,000,22,2,53,1,01,2,1,0,0,2,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13815,3,000,25,1,1,1,01,2,1,0,0,1,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13816,3,000,25,1,1,1,01,2,1,0,0,1,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13817,3,000,25,1,1,1,01,2,1,0,0,1,18,163,010701,1034,1,9999,99999,99999999,9,99999,99999999,519167,5424,0,0,5424,0,21780,08,999,99999,99999999,A,00450396,68472,A,00453839,999,3,99999,99999999,+38.0885445,-087.5080662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,2,99999,99999,03450,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,28333,U,99999,U,000410,47725 +13818,3,000,20,1,72,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13819,3,000,20,1,72,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13820,3,000,20,1,72,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13821,3,000,20,1,74,1,02,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13822,3,000,20,1,75,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13823,3,000,20,1,75,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13824,3,000,20,1,75,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13825,3,000,20,1,76,1,13,2,2,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13826,3,000,20,1,77,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13827,3,000,20,1,78,1,01,2,1,0,0,2,12,099,007736,1003,1,9999,99999,99999999,9,99999,99999999,1418999,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3453231,-080.1791119,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000620,33433 +13828,3,000,21,1,39,1,04,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13829,3,000,21,1,39,1,11,2,2,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13830,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13831,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13832,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13833,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13834,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13835,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13836,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13837,3,000,21,1,40,1,01,2,1,0,0,2,36,085,012806,1013,1,9999,99999,99999999,9,99999,99999999,48919,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5583281,-074.1124652,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04503,1,99999,99999,20580,064,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000270,10306 +13838,3,000,20,2,48,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13839,3,000,20,2,48,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13840,3,000,20,2,49,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13841,3,000,20,2,66,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13842,3,000,20,2,66,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13843,3,000,20,2,66,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13844,3,000,21,1,37,1,09,2,2,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13845,3,000,21,2,29,1,04,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13846,3,000,21,2,29,1,04,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13847,3,000,21,2,37,1,01,2,1,0,0,2,26,163,573100,2001,2,9999,99999,99999999,9,99999,99999999,30100,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,21020,F,01626165,220,3,99999,99999999,+42.3188526,-083.2938221,L,1,19804,99999,99999,9,N,N,21020,A,01626165,03203,2,99999,99999,00016,013,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163136,48127 +13848,3,000,20,2,59,1,01,1,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13849,3,000,20,1,26,1,02,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13850,3,000,20,1,26,1,02,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13851,3,000,20,1,30,2,06,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13852,3,000,20,1,30,2,06,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13853,3,000,20,1,30,2,06,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13854,3,000,20,1,39,2,11,2,2,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13855,3,000,20,1,40,2,01,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13856,3,000,20,1,41,2,06,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13857,3,000,20,1,41,2,06,2,1,0,0,2,42,077,001000,1006,1,9999,99999,99999999,9,99999,99999999,10361,0,0,0,0,0,10900,07,999,99999,99999999,A,01209182,02000,F,01215372,999,2,99999,99999999,+40.6091537,-075.4724029,L,1,99999,99999,99999,9,Y,N,02000,A,01215372,02803,1,99999,99999,02280,022,016,01779798,99999,99999999,9,999,99999,99999999,999999,01495,U,99999,U,000060,18102 +13858,3,000,21,2,27,2,11,2,2,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13859,3,000,21,2,28,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13860,3,000,21,2,28,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13861,3,000,21,2,29,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13862,3,000,21,2,29,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13863,3,000,21,2,32,2,06,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13864,3,000,21,2,35,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13865,3,000,21,2,35,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13866,3,000,21,2,41,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13867,3,000,21,2,41,1,01,2,1,0,0,2,13,129,970601,2007,2,9999,99999,99999999,9,99999,99999999,760956,0,0,0,0,0,15660,14,999,99999,99999999,A,00356672,90504,S,01936151,174,5,99999,99999999,+34.4990116,-084.9806541,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,02430,005,052,01705317,99999,99999999,9,999,99999,99999999,999999,12457,U,99999,U,0849-A,30701 +13868,3,000,20,2,69,1,01,1,1,0,0,2,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13869,3,000,20,2,69,1,01,1,1,0,0,2,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13870,3,000,20,1,23,2,01,2,1,0,0,2,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13871,3,000,20,2,52,1,02,2,1,0,0,2,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13872,3,000,20,2,52,1,02,2,1,0,0,2,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13873,3,000,25,1,16,2,06,2,1,0,0,1,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13874,3,000,25,2,4,1,01,2,1,0,0,1,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13875,3,000,25,2,4,1,01,2,1,0,0,1,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13876,3,000,25,2,10,1,08,2,2,0,0,1,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13877,3,000,27,2,7,2,06,2,1,0,0,1,32,510,000100,3003,3,9999,99999,99999999,9,99999,99999999,5177,0,0,0,0,0,16180,02,999,99999,99999999,F,00863219,94140,S,01937425,456,8,99999,99999999,+39.1603222,-119.7699469,L,1,99999,99999,99999,9,Y,N,09700,A,00863219,00300,4,99999,99999,00390,040,016,01779793,99999,99999999,9,999,99999,99999999,999999,14158,U,99999,U,000401,89703 +13878,3,000,30,1,6,1,04,2,1,0,0,1,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13879,3,000,30,2,4,2,11,2,2,0,0,1,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13880,3,000,30,2,7,1,04,2,1,0,0,1,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13881,3,000,30,2,15,1,04,2,1,0,0,1,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13882,3,000,30,2,18,2,11,2,2,0,0,2,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13883,3,000,30,2,34,2,06,2,1,0,0,2,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13884,3,000,32,1,30,2,11,2,2,0,0,2,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13885,3,000,32,2,29,1,04,2,1,0,0,2,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13886,3,000,33,1,3,1,04,2,1,0,0,1,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13887,3,000,33,1,74,2,01,2,1,0,0,2,06,019,004901,2030,2,9999,99999,99999999,9,99999,99999999,20595,0,0,0,0,0,23420,16,999,99999,99999999,A,00277274,91080,S,01935112,260,9,99999,99999999,+36.7845383,-119.7916528,L,1,99999,99999,99999,9,Y,N,27000,A,02410546,01904,4,99999,99999,14550,023,008,01779778,99999,99999999,9,999,99999,99999999,999999,31843,U,99999,U,,93704 +13888,3,000,20,2,51,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13889,3,000,20,2,53,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13890,3,000,20,2,54,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13891,3,000,20,2,54,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13892,3,000,20,2,54,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13893,3,000,20,2,54,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13894,3,000,20,2,54,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13895,3,000,21,2,30,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13896,3,000,21,2,40,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13897,3,000,22,1,24,1,01,2,1,0,0,2,25,013,811101,4007,4,9999,99999,99999999,9,99999,99999999,11898,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,13660,F,00618181,999,1,99999,99999999,+42.1897601,-072.5981412,L,1,99999,99999,78100,1,N,N,13660,A,00618181,00403,1,99999,99999,03660,109,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,000595,01013 +13898,3,000,20,2,48,1,01,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13899,3,000,20,2,48,1,01,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13900,3,000,20,2,48,1,01,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13901,3,000,21,2,31,2,11,2,2,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13902,3,000,21,2,34,2,11,2,2,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13903,3,000,21,2,34,2,11,2,2,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13904,3,000,21,2,44,1,01,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13905,3,000,21,2,44,1,01,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13906,3,000,21,2,44,1,01,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13907,3,000,21,2,44,2,06,2,1,0,0,2,55,009,001100,1014,1,9999,99999,99999999,9,99999,99999999,25289,0,0,0,0,0,24580,08,999,99999,99999999,A,01581064,31000,F,01583309,267,3,99999,99999999,+44.5126265,-087.9959331,L,1,99999,99999,99999,9,Y,N,31000,A,01583309,00501,2,99999,99999,05820,090,030,01779806,99999,99999999,9,999,99999,99999999,999999,34813,U,99999,U,000320,54302 +13908,3,000,20,1,35,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13909,3,000,20,1,35,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13910,3,000,20,1,39,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13911,3,000,20,1,39,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13912,3,000,20,1,39,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13913,3,000,20,1,39,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13914,3,000,20,1,39,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13915,3,000,20,1,39,1,02,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13916,3,000,20,1,46,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13917,3,000,20,1,46,1,01,2,1,0,0,2,26,081,014503,1003,1,9999,99999,99999999,9,99999,99999999,803314,5793,0,0,5793,0,24340,02,999,99999,99999999,A,01622983,88940,F,01627295,266,3,99999,99999999,+42.8702392,-085.7778890,B,1,99999,99999,99999,9,N,N,88940,A,01627295,01001,2,99999,99999,16470,077,028,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081252,49418 +13918,3,000,25,2,8,1,02,2,1,0,0,1,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13919,3,000,25,2,8,1,02,2,1,0,0,1,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13920,3,000,25,2,26,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13921,3,000,25,2,46,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13922,3,000,25,2,59,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13923,3,000,25,2,59,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13924,3,000,25,2,59,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13925,3,000,28,1,58,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13926,3,000,28,1,58,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13927,3,000,28,1,58,1,02,2,1,0,0,2,42,101,017000,1018,1,9999,99999,99999999,9,99999,99999999,9612,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+40.0050467,-075.1846256,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03225,1,99999,99999,18990,198,007,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003810,19132 +13928,3,000,25,1,64,1,02,2,1,0,0,2,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13929,3,000,25,1,64,1,02,2,1,0,0,2,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13930,3,000,25,1,68,1,02,2,1,0,0,2,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13931,3,000,25,2,1,2,07,2,2,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13932,3,000,25,2,5,1,01,2,1,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13933,3,000,25,2,5,2,01,2,1,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13934,3,000,25,2,6,2,07,2,2,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13935,3,000,25,2,6,2,07,2,2,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13936,3,000,25,2,8,2,46,2,4,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13937,3,000,25,2,10,1,06,2,1,0,0,1,12,011,110339,3001,3,9999,99999,99999999,9,99999,99999999,297058,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+26.0188228,-080.2825607,L,1,22744,99999,99999,9,N,N,55775,A,02404502,01111,3,99999,99999,00180,102,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00X012,33026 +13938,3,000,25,1,0,1,08,2,2,0,0,1,40,105,172200,2010,2,5550,13735,02418810,R,99999,99999999,3141438,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.8216814,-095.6904593,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000202,74027 +13939,3,000,25,1,10,1,01,2,1,0,0,1,40,105,172200,2010,2,5550,13735,02418810,R,99999,99999999,3141438,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.8216814,-095.6904593,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000202,74027 +13940,3,000,25,1,13,1,08,2,2,0,0,1,40,105,172200,2010,2,5550,13735,02418810,R,99999,99999999,3141438,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.8216814,-095.6904593,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000202,74027 +13941,3,000,25,2,7,1,03,2,1,0,0,1,40,105,172200,2010,2,5550,13735,02418810,R,99999,99999999,3141438,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.8216814,-095.6904593,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000202,74027 +13942,3,000,25,2,12,1,01,2,1,0,0,1,40,105,172200,2010,2,5550,13735,02418810,R,99999,99999999,3141438,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.8216814,-095.6904593,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000202,74027 +13943,3,000,20,2,82,1,01,1,1,0,0,2,40,105,172200,2011,2,5550,13735,02418810,R,99999,99999999,2594423,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.7932647,-095.6026836,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000303,74027 +13944,3,000,20,2,83,1,01,1,1,0,0,2,40,105,172200,2011,2,5550,13735,02418810,R,99999,99999999,2594423,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.7932647,-095.6026836,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000303,74027 +13945,3,000,20,1,55,1,01,2,1,0,0,2,40,105,172200,2011,2,5550,13735,02418810,R,99999,99999999,2594423,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.7932647,-095.6026836,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000303,74027 +13946,3,000,20,2,50,1,01,2,1,0,0,2,40,105,172200,2011,2,5550,13735,02418810,R,99999,99999999,2594423,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.7932647,-095.6026836,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000303,74027 +13947,3,000,20,2,64,1,01,2,1,0,0,2,40,105,172200,2011,2,5550,13735,02418810,R,99999,99999999,2594423,0,0,0,0,0,99999,02,999,99999,99999999,A,01101840,91664,S,01937756,999,7,99999,99999999,+36.7932647,-095.6026836,L,9,99999,99999,99999,9,9,9,99999,9,99999999,20400,3,99999,99999,00021,010,029,01102857,99999,99999999,9,405,52902,02631143,999999,99999,9,99999,R,000303,74027 +13948,3,000,25,2,7,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13949,3,000,25,2,7,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13950,3,000,25,2,8,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13951,3,000,25,2,8,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13952,3,000,25,2,9,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13953,3,000,25,2,10,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13954,3,000,25,2,11,1,01,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13955,3,000,25,2,11,1,04,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13956,3,000,25,2,11,1,04,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13957,3,000,25,2,11,1,04,2,1,0,0,1,27,037,060833,2027,2,9999,99999,99999999,9,99999,99999999,119484,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6912187,-093.1998423,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,11820,58A,058,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,003040,55044 +13958,3,000,21,2,24,1,09,2,2,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13959,3,000,21,2,25,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13960,3,000,21,2,25,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13961,3,000,21,2,26,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13962,3,000,21,2,26,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13963,3,000,21,2,26,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13964,3,000,21,2,26,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13965,3,000,21,2,26,1,02,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13966,3,000,21,2,26,1,02,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13967,3,000,21,2,28,1,01,2,1,0,0,2,12,031,014415,1008,1,9999,99999,99999999,9,99999,99999999,64008,0,0,0,0,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.2535322,-081.4943640,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03106,3,99999,99999,00480,012,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000047,32224 +13968,3,000,20,2,40,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13969,3,000,20,2,40,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13970,3,000,20,2,42,1,07,2,2,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13971,3,000,20,2,43,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13972,3,000,20,2,43,2,11,2,2,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13973,3,000,20,2,44,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13974,3,000,20,2,44,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13975,3,000,20,2,44,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13976,3,000,20,2,44,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13977,3,000,20,2,44,1,02,2,1,0,0,2,37,183,054115,1014,1,9999,99999,99999999,9,99999,99999999,404823,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,92792,N,01027274,450,5,99999,99999999,+35.7830513,-078.5050404,L,1,99999,99999,99999,9,N,N,36080,A,02405958,01204,3,99999,99999,04720,039,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,017-12,27545 +13978,3,000,20,1,50,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13979,3,000,20,1,50,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13980,3,000,20,1,51,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13981,3,000,20,1,52,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13982,3,000,20,1,52,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13983,3,000,20,1,53,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13984,3,000,20,1,53,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13985,3,000,20,1,54,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13986,3,000,20,1,62,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13987,3,000,20,1,64,1,01,2,1,0,0,2,39,013,010901,1027,1,9999,99999,99999999,9,99999,99999999,445983,1404,0,0,1404,0,48540,06,999,99999,99999999,A,01065575,80864,A,01085787,999,3,99999,99999999,+40.0085182,-081.1220769,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,04520,095,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007ADB,43713 +13988,3,000,21,1,42,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13989,3,000,21,1,43,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13990,3,000,21,1,43,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13991,3,000,21,1,47,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13992,3,000,21,1,47,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13993,3,000,21,1,47,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13994,3,000,21,1,50,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13995,3,000,21,1,50,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13996,3,000,21,1,52,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13997,3,000,21,1,53,1,01,2,1,0,0,2,17,001,010302,1029,1,9999,99999,99999999,9,99999,99999999,542621,0,0,0,0,0,39500,18,999,99999,99999999,A,00424202,10019,A,00428741,448,3,99999,99999999,+39.9096670,-091.2489979,L,2,99999,99999,99999,9,N,N,10006,S,02804083,00100,2,99999,99999,30990,094,047,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,017001,62305 +13998,3,000,30,2,16,1,01,2,1,0,0,1,20,173,000100,4013,4,9999,99999,99999999,9,99999,99999999,31308,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247618,-097.3522196,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +13999,3,000,30,2,16,1,01,2,1,0,0,1,20,173,000100,4013,4,9999,99999,99999999,9,99999,99999999,31308,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247618,-097.3522196,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14000,3,000,32,2,35,2,11,2,2,0,0,2,20,173,000100,4013,4,9999,99999,99999999,9,99999,99999999,31308,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247618,-097.3522196,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14001,3,000,34,1,50,2,06,2,1,0,0,2,20,173,000100,4013,4,9999,99999,99999999,9,99999,99999999,31308,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247618,-097.3522196,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14002,3,000,34,1,54,2,06,2,1,0,0,2,20,173,000100,4013,4,9999,99999,99999999,9,99999,99999999,31308,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247618,-097.3522196,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14003,3,000,20,1,23,1,01,1,1,0,0,2,20,173,000100,4014,4,9999,99999,99999999,9,99999,99999999,30464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247935,-097.3533592,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14004,3,000,20,1,45,2,06,1,1,0,0,2,20,173,000100,4014,4,9999,99999,99999999,9,99999,99999999,30464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247935,-097.3533592,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14005,3,000,20,1,45,2,06,1,1,0,0,2,20,173,000100,4014,4,9999,99999,99999999,9,99999,99999999,30464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247935,-097.3533592,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14006,3,000,20,1,47,2,06,1,1,0,0,2,20,173,000100,4014,4,9999,99999,99999999,9,99999,99999999,30464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247935,-097.3533592,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14007,3,000,20,1,73,1,02,1,1,0,0,2,20,173,000100,4014,4,9999,99999,99999999,9,99999,99999999,30464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.7247935,-097.3533592,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01301,2,99999,99999,12990,103,029,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,501960,67204 +14008,3,000,25,1,18,2,06,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14009,3,000,25,1,18,2,06,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14010,3,000,25,1,19,1,02,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14011,3,000,25,1,20,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14012,3,000,25,1,20,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14013,3,000,25,1,20,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14014,3,000,25,1,20,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14015,3,000,25,1,21,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14016,3,000,25,1,23,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14017,3,000,25,1,23,2,01,2,1,0,0,2,06,037,228800,2007,2,9999,99999,99999999,9,99999,99999999,31207,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0014084,-118.2459128,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03745,4,99999,99999,22710,059,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90011 +14018,3,000,33,1,19,1,03,2,1,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14019,3,000,33,1,19,1,03,2,1,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14020,3,000,33,2,2,1,03,2,1,0,0,1,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14021,3,000,33,2,2,1,04,2,1,0,0,1,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14022,3,000,33,2,30,1,04,2,1,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14023,3,000,33,2,32,1,04,2,1,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14024,3,000,34,1,21,1,07,2,2,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14025,3,000,34,1,22,1,08,2,2,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14026,3,000,34,1,25,2,11,2,2,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14027,3,000,34,1,25,2,11,2,2,0,0,2,27,053,102800,1008,1,9999,99999,99999999,9,99999,99999999,17218,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9922841,-093.3000531,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001575,55411 +14028,3,000,25,2,16,1,02,2,1,0,0,1,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14029,3,000,25,2,16,2,01,2,1,0,0,1,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14030,3,000,25,2,16,2,01,2,1,0,0,1,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14031,3,000,25,2,49,2,11,2,2,0,0,2,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14032,3,000,25,2,50,1,02,2,1,0,0,2,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14033,3,000,25,2,52,1,02,2,1,0,0,2,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14034,3,000,30,2,7,2,11,2,2,0,0,1,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14035,3,000,30,2,7,2,11,2,2,0,0,1,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14036,3,000,33,2,67,1,01,2,1,0,0,2,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14037,3,000,34,2,36,1,01,2,1,0,0,2,29,095,013309,2018,2,9999,99999,99999999,9,99999,99999999,29818,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,77506,N,00766806,312,4,99999,99999999,+38.8919727,-094.5145790,L,1,99999,99999,99999,9,N,N,28324,A,02394958,01105,2,99999,99999,13140,037,007,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000661,64030 +14038,3,000,27,1,18,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14039,3,000,27,1,19,1,03,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14040,3,000,27,2,2,1,01,2,1,0,0,1,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14041,3,000,27,2,10,1,29,2,3,0,0,1,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14042,3,000,28,1,18,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14043,3,000,28,1,18,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14044,3,000,28,1,19,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14045,3,000,28,1,21,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14046,3,000,28,1,21,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14047,3,000,28,1,23,1,04,2,1,0,0,2,02,150,000200,1000,1,9999,99999,99999999,9,41640,02418991,1459055,93070,0,0,93070,0,99999,00,999,99999,99999999,A,01419974,41200,S,01939949,999,9,99999,99999999,+57.8156229,-152.3435815,B,9,99999,99999,99999,9,N,N,49200,S,02805896,00400,4,99999,99999,00480,032,00P,01785533,99999,99999999,9,999,99999,99999999,999999,45667,U,99999,U,32-830,99615 +14048,3,000,25,2,0,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14049,3,000,25,2,5,1,03,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14050,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14051,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14052,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14053,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14054,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14055,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14056,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14057,3,000,25,2,11,1,04,2,1,0,0,1,37,183,053611,1017,1,9999,99999,99999999,9,99999,99999999,31193,0,0,0,0,0,39580,04,999,99999,99999999,A,01008592,90576,N,01027261,450,5,99999,99999999,+35.8318898,-078.8523735,L,1,99999,99999,99999,9,N,N,44520,A,02406198,01206,3,99999,99999,04720,041,016,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,005-07,27560 +14058,3,000,25,2,0,1,01,2,1,0,0,1,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14059,3,000,25,2,3,1,05,2,1,0,0,1,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14060,3,000,25,2,9,1,01,2,1,0,0,1,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14061,3,000,25,2,9,1,01,2,1,0,0,1,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14062,3,000,28,2,26,1,04,2,1,0,0,2,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14063,3,000,29,2,59,1,01,2,1,0,0,2,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14064,3,000,29,2,61,1,01,2,1,0,0,2,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14065,3,000,35,1,5,1,03,2,1,0,0,1,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14066,3,000,36,2,12,2,01,2,1,0,0,1,46,005,957000,1012,1,9999,99999,99999999,9,99999,99999999,8756,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532024,-098.2145666,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14067,3,000,20,1,24,2,06,2,1,0,0,2,46,005,957000,1013,1,9999,99999,99999999,9,99999,99999999,8317,0,0,0,0,0,26700,00,999,99999,99999999,A,01266986,31060,F,01267433,999,4,99999,99999999,+44.3532057,-098.2154008,L,2,99999,99999,99999,9,Y,N,31060,A,01267433,00400,2,99999,99999,35480,022,022,01785534,99999,99999999,9,999,99999,99999999,999999,40861,U,99999,U,VTD-W3,57350 +14068,3,000,33,1,50,1,01,2,1,0,0,2,33,011,012302,2019,2,9999,99999,99999999,9,99999,99999999,2014700,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7233614,-071.4093318,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14069,3,000,20,2,35,1,01,2,1,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14070,3,000,20,2,37,1,11,2,2,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14071,3,000,21,2,49,1,01,2,1,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14072,3,000,21,2,51,1,01,2,1,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14073,3,000,21,2,75,1,01,2,1,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14074,3,000,21,2,75,1,01,2,1,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14075,3,000,21,2,75,1,01,2,1,0,0,2,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14076,3,000,25,1,4,1,01,2,1,0,0,1,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14077,3,000,25,2,5,2,07,2,2,0,0,1,33,011,012302,2020,2,9999,99999,99999999,9,99999,99999999,35629,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,37940,A,00873631,148,1,99999,99999999,+42.7231651,-071.4059122,L,1,99999,75404,71650,1,9,9,99999,9,99999999,00602,1,99999,99999,03930,537,014,01779794,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,HUDS01,03051 +14078,3,000,25,2,16,2,11,2,2,0,0,1,48,215,022600,1023,1,9999,99999,99999999,9,99999,99999999,5291,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,93650,S,01939212,365,7,99999,99999999,+26.1673014,-097.9898725,L,1,99999,99999,99999,9,N,N,77272,A,02412215,06801,3,99999,99999,44960,039,027,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000022,78596 +14079,3,000,25,2,45,2,11,2,2,0,0,2,48,215,022600,1023,1,9999,99999,99999999,9,99999,99999999,5291,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,93650,S,01939212,365,7,99999,99999999,+26.1673014,-097.9898725,L,1,99999,99999,99999,9,N,N,77272,A,02412215,06801,3,99999,99999,44960,039,027,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000022,78596 +14080,3,000,25,2,49,2,11,2,2,0,0,2,48,215,022600,1023,1,9999,99999,99999999,9,99999,99999999,5291,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,93650,S,01939212,365,7,99999,99999999,+26.1673014,-097.9898725,L,1,99999,99999,99999,9,N,N,77272,A,02412215,06801,3,99999,99999,44960,039,027,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000022,78596 +14081,3,000,29,2,35,2,11,2,2,0,0,2,48,215,022600,1023,1,9999,99999,99999999,9,99999,99999999,5291,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,93650,S,01939212,365,7,99999,99999999,+26.1673014,-097.9898725,L,1,99999,99999,99999,9,N,N,77272,A,02412215,06801,3,99999,99999,44960,039,027,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000022,78596 +14082,3,000,34,1,53,2,11,2,2,0,0,2,48,215,022600,1023,1,9999,99999,99999999,9,99999,99999999,5291,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,93650,S,01939212,365,7,99999,99999999,+26.1673014,-097.9898725,L,1,99999,99999,99999,9,N,N,77272,A,02412215,06801,3,99999,99999,44960,039,027,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000022,78596 +14083,3,000,34,1,54,2,11,2,2,0,0,2,48,215,022600,1023,1,9999,99999,99999999,9,99999,99999999,5291,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,93650,S,01939212,365,7,99999,99999999,+26.1673014,-097.9898725,L,1,99999,99999,99999,9,N,N,77272,A,02412215,06801,3,99999,99999,44960,039,027,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000022,78596 +14084,3,000,28,1,32,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14085,3,000,28,2,40,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14086,3,000,28,2,40,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14087,3,000,28,2,51,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14088,3,000,28,2,51,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14089,3,000,28,2,51,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14090,3,000,28,2,53,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14091,3,000,28,2,54,1,02,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14092,3,000,30,1,3,1,02,2,1,0,0,1,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14093,3,000,31,1,72,1,06,2,1,0,0,2,13,217,100504,3007,3,9999,99999,99999999,9,99999,99999999,31660,0,0,0,0,0,12060,04,999,99999,99999999,A,01673547,90804,S,01936203,122,5,99999,99999999,+33.6096570,-083.9634261,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,3,99999,99999,03930,113,043,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000024,30016 +14094,3,000,21,2,76,1,01,2,1,0,0,2,54,019,020800,2059,2,9999,99999,99999999,9,99999,99999999,10550,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1496744,-081.2152461,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14095,3,000,21,2,76,1,01,2,1,0,0,2,54,019,020800,2059,2,9999,99999,99999999,9,99999,99999999,10550,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1496744,-081.2152461,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14096,3,000,21,2,77,1,01,2,1,0,0,2,54,019,020800,2059,2,9999,99999,99999999,9,99999,99999999,10550,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1496744,-081.2152461,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14097,3,000,21,2,77,1,01,2,1,0,0,2,54,019,020800,2059,2,9999,99999,99999999,9,99999,99999999,10550,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1496744,-081.2152461,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14098,3,000,21,2,90,1,01,2,1,0,0,2,54,019,020800,2059,2,9999,99999,99999999,9,99999,99999999,10550,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1496744,-081.2152461,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14099,3,000,30,1,21,1,03,2,1,0,0,2,54,019,020800,2059,2,9999,99999,99999999,9,99999,99999999,10550,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1496744,-081.2152461,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14100,3,000,20,1,38,1,01,2,1,0,0,2,54,019,020800,2060,2,9999,99999,99999999,9,99999,99999999,27195,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1522900,-081.2155138,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14101,3,000,20,1,38,1,01,2,1,0,0,2,54,019,020800,2060,2,9999,99999,99999999,9,99999,99999999,27195,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1522900,-081.2155138,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14102,3,000,20,1,49,1,01,2,1,0,0,2,54,019,020800,2060,2,9999,99999,99999999,9,99999,99999999,27195,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1522900,-081.2155138,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14103,3,000,20,1,50,1,01,2,1,0,0,2,54,019,020800,2060,2,9999,99999,99999999,9,99999,99999999,27195,0,0,0,0,0,13220,03,999,99999,99999999,A,01560095,93396,N,01928396,999,5,99999,99999999,+38.1522900,-081.2155138,L,1,99999,99999,99999,9,N,N,31732,S,02586812,01000,3,99999,99999,00300,032,010,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000029,25090 +14104,3,000,29,1,64,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14105,3,000,29,1,74,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14106,3,000,29,2,60,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14107,3,000,29,2,66,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14108,3,000,29,2,66,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14109,3,000,29,2,67,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14110,3,000,29,2,67,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14111,3,000,29,2,74,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14112,3,000,29,2,77,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14113,3,000,29,2,77,1,04,2,1,0,0,2,36,081,120100,1001,1,9999,99999,99999999,9,99999,99999999,14642,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7534297,-073.8141076,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,016,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001405,11355 +14114,3,000,20,2,44,2,01,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14115,3,000,20,2,44,2,01,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14116,3,000,20,2,44,2,01,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14117,3,000,20,2,52,2,06,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14118,3,000,20,2,52,2,06,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14119,3,000,20,2,58,2,01,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14120,3,000,20,2,62,1,04,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14121,3,000,20,2,67,1,01,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14122,3,000,20,2,77,1,04,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14123,3,000,20,2,87,1,01,2,1,0,0,2,06,077,005004,4022,4,9999,99999,99999999,9,99999,99999999,137854,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,92620,S,01935267,488,9,99999,99999999,+37.7442967,-121.1371562,L,1,99999,99999,99999,9,N,N,61026,A,02410957,07708,4,99999,99999,32880,012,005,01779778,99999,99999999,9,999,99999,99999999,999999,75198,U,99999,U,,95366 +14124,3,000,21,2,54,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14125,3,000,21,2,54,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14126,3,000,21,2,54,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14127,3,000,21,2,62,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14128,3,000,21,2,62,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14129,3,000,21,2,62,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14130,3,000,21,2,62,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14131,3,000,21,2,63,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14132,3,000,22,1,50,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14133,3,000,22,1,51,1,01,2,1,0,0,2,48,121,021516,2014,2,9999,99999,99999999,9,99999,99999999,62448,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,93892,S,01938636,206,7,99999,99999999,+33.0977528,-096.8938841,L,1,19124,99999,99999,9,N,N,72530,A,02412058,02004,3,99999,99999,27300,106,012,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002027,75056 +14134,3,000,21,1,75,1,01,2,1,0,0,2,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14135,3,000,21,1,75,1,01,2,1,0,0,2,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14136,3,000,21,1,77,1,01,2,1,0,0,2,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14137,3,000,21,2,76,1,01,2,1,0,0,2,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14138,3,000,25,1,27,1,01,2,1,0,0,2,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14139,3,000,25,2,8,1,01,2,1,0,0,1,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14140,3,000,25,2,13,1,01,2,1,0,0,1,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14141,3,000,25,2,15,1,01,2,1,0,0,1,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14142,3,000,25,2,15,1,01,2,1,0,0,1,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14143,3,000,25,2,20,1,01,2,1,0,0,2,18,171,951100,4108,4,9999,99999,99999999,9,99999,99999999,748247,0,0,0,0,0,29200,04,999,99999,99999999,A,00450400,51264,A,00453656,320,3,99999,99999999,+40.1345230,-087.4645018,L,1,99999,99999,99999,9,N,N,25054,S,02806489,01600,2,99999,99999,02430,042,023,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000060,47932 +14144,3,000,22,2,52,1,01,2,1,0,0,2,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14145,3,000,22,2,54,1,01,2,1,0,0,2,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14146,3,000,22,2,56,2,11,2,2,0,0,2,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14147,3,000,22,2,56,2,11,2,2,0,0,2,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14148,3,000,25,1,0,2,11,2,2,0,0,1,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14149,3,000,25,1,0,2,11,2,2,0,0,1,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14150,3,000,25,1,1,1,11,2,2,0,0,1,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14151,3,000,25,1,2,2,06,2,1,0,0,1,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14152,3,000,25,1,4,2,11,2,2,0,0,1,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14153,3,000,25,1,8,1,11,2,2,0,0,1,26,163,578500,3010,3,9999,99999,99999999,9,99999,99999999,40256,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,52940,F,01626720,220,3,99999,99999999,+42.2863361,-083.1807939,L,1,19804,99999,99999,9,N,N,52940,A,01626720,03207,2,99999,99999,23460,014,003,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163788,48122 +14154,3,000,26,2,52,1,01,2,1,0,0,2,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14155,3,000,29,2,55,1,01,2,1,0,0,2,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14156,3,000,30,1,9,1,01,2,1,0,0,1,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14157,3,000,30,1,9,1,01,2,1,0,0,1,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14158,3,000,30,2,20,1,01,2,1,0,0,2,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14159,3,000,30,2,23,1,01,2,1,0,0,2,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14160,3,000,30,2,23,1,01,2,1,0,0,2,08,041,005900,3000,3,9999,99999,99999999,9,99999,99999999,49697,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8610252,-104.7313505,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14161,3,000,20,2,23,1,01,1,1,0,0,2,08,041,005900,3001,3,9999,99999,99999999,9,99999,99999999,10904,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8605334,-104.7309414,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14162,3,000,20,1,32,2,01,2,1,0,0,2,08,041,005900,3001,3,9999,99999,99999999,9,99999,99999999,10904,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8605334,-104.7309414,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14163,3,000,20,1,32,2,01,2,1,0,0,2,08,041,005900,3001,3,9999,99999,99999999,9,99999,99999999,10904,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8605334,-104.7309414,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,015,012,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041162,80915 +14164,3,000,20,2,64,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14165,3,000,20,2,67,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14166,3,000,20,2,67,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14167,3,000,20,2,69,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14168,3,000,20,2,69,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14169,3,000,20,2,69,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14170,3,000,20,2,69,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14171,3,000,20,2,75,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14172,3,000,20,2,75,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14173,3,000,20,2,75,1,02,1,1,0,0,2,47,065,011411,2018,2,9999,99999,99999999,9,99999,99999999,266923,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,90636,N,02464041,174,6,99999,99999999,+35.0872909,-085.1974837,L,1,99999,99999,99999,9,Y,N,14000,A,02404035,03402,3,99999,99999,01590,028,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003432,37416 +14174,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14175,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14176,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14177,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14178,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14179,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14180,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14181,5,501,38,1,19,1,01,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14182,5,501,38,1,19,1,02,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14183,5,501,38,1,19,1,02,0,1,2,5,2,47,055,920200,3037,3,9999,99999,99999999,9,99999,99999999,9418,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,91006,N,02464531,999,6,99999,99999999,+35.2004346,-087.0339144,L,9,99999,99999,99999,9,N,N,61040,A,02404577,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,72667,U,99999,U,002861,38478 +14184,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14185,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14186,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14187,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14188,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14189,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14190,3,000,25,2,4,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14191,3,000,25,2,60,1,07,2,2,0,0,2,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14192,3,000,27,1,16,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14193,3,000,27,1,16,1,01,2,1,0,0,1,08,123,002011,1013,1,9999,99999,99999999,9,99999,99999999,15646,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91216,S,01935457,216,8,99999,99999999,+40.0939516,-104.9939407,L,1,99999,99999,99999,9,N,N,28360,A,02412656,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123339,80516 +14194,3,000,22,2,47,1,01,2,1,0,0,2,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14195,3,000,22,2,52,1,02,2,1,0,0,2,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14196,3,000,23,1,72,1,01,2,1,0,0,2,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14197,3,000,23,1,74,1,01,2,1,0,0,2,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14198,3,000,24,1,50,1,01,2,1,0,0,2,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14199,3,000,24,2,27,1,02,2,1,0,0,2,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14200,3,000,25,1,3,1,01,2,1,0,0,1,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14201,3,000,25,1,3,1,01,2,1,0,0,1,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14202,3,000,25,1,3,1,01,2,1,0,0,1,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14203,3,000,25,1,5,2,01,2,1,0,0,1,39,061,006502,3001,3,9999,99999,99999999,9,99999,99999999,363691,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.1626666,-084.4819271,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04706,2,99999,99999,04375,033,009,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AIE,45229 +14204,3,000,25,2,26,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14205,3,000,25,2,26,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14206,3,000,25,2,34,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14207,3,000,25,2,34,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14208,3,000,25,2,46,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14209,3,000,25,2,46,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14210,3,000,25,2,57,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14211,3,000,26,2,24,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14212,3,000,28,1,32,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14213,3,000,28,1,69,1,01,2,1,0,0,2,29,077,003701,2024,2,9999,99999,99999999,9,99999,99999999,89600,0,0,0,0,0,44180,07,999,99999,99999999,A,00758493,70009,N,00766694,999,4,99999,99999999,+37.1983174,-093.2224431,L,1,99999,99999,99999,9,Y,N,70000,A,02395942,02702,2,99999,99999,28860,135,030,01779791,99999,99999999,9,999,99999,99999999,999999,83953,U,99999,U,000002,65809 +14214,3,000,21,2,41,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14215,3,000,21,2,41,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14216,3,000,21,2,44,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14217,3,000,21,2,44,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14218,3,000,21,2,44,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14219,3,000,21,2,44,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14220,3,000,21,2,44,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14221,3,000,21,2,44,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14222,3,000,21,2,57,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14223,3,000,21,2,57,1,01,2,1,0,0,2,06,085,511501,2004,2,9999,99999,99999999,9,99999,99999999,15928,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.4297716,-122.1452906,L,1,99999,99999,99999,9,Y,N,55282,A,02411362,08515,4,99999,99999,29610,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,94306 +14224,3,000,21,1,60,1,01,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14225,3,000,21,1,60,1,01,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14226,3,000,21,1,61,1,01,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14227,3,000,21,1,61,1,01,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14228,3,000,21,1,61,1,01,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14229,3,000,21,2,38,1,02,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14230,3,000,22,1,22,1,02,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14231,3,000,22,1,22,1,02,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14232,3,000,22,1,23,1,02,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14233,3,000,22,1,30,1,02,2,1,0,0,2,39,035,117201,1003,1,9999,99999,99999999,9,99999,99999999,144329,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5817991,-081.5685580,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWZ,44110 +14234,3,000,21,2,65,1,01,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14235,3,000,21,2,77,1,01,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14236,3,000,22,1,33,2,01,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14237,3,000,22,1,36,2,11,2,2,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14238,3,000,22,1,44,2,11,2,2,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14239,3,000,22,1,44,2,11,2,2,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14240,3,000,22,1,45,2,06,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14241,3,000,22,1,46,2,06,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14242,3,000,22,1,46,2,06,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14243,3,000,22,1,49,2,06,2,1,0,0,2,34,031,125100,2007,2,9999,99999,99999999,9,99999,99999999,10872,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8767726,-074.1245887,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00501,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010403,07011 +14244,3,000,20,2,27,2,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14245,3,000,20,2,28,2,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14246,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14247,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14248,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14249,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14250,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14251,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14252,3,000,20,2,29,1,01,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14253,3,000,20,2,34,1,04,2,1,0,0,2,39,049,007811,4001,4,9999,99999,99999999,9,99999,99999999,36312,0,0,0,0,0,18140,15,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+40.0508580,-083.0483304,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03403,2,99999,99999,04380,022,019,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025APV,43220 +14254,3,000,20,1,59,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14255,3,000,20,1,59,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14256,3,000,20,1,65,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14257,3,000,20,1,71,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14258,3,000,20,1,71,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14259,3,000,20,1,74,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14260,3,000,20,1,74,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14261,3,000,20,1,74,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14262,3,000,20,2,33,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14263,3,000,20,2,33,1,01,2,1,0,0,2,55,069,960600,3007,3,9999,99999,99999999,9,99999,99999999,4831793,0,0,0,0,0,48140,07,999,99999,99999999,A,01581094,72100,A,01584110,554,3,99999,99999999,+45.2210394,-089.5392132,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,09210,035,012,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003055,54452 +14264,3,000,20,1,40,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14265,3,000,20,1,41,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14266,3,000,20,1,43,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14267,3,000,20,1,43,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14268,3,000,20,1,44,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14269,3,000,20,1,44,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14270,3,000,20,1,44,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14271,3,000,20,1,53,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14272,3,000,20,1,53,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14273,3,000,20,1,53,1,01,2,1,0,0,2,30,111,001704,1020,1,9999,99999,99999999,9,99999,99999999,38465,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.7531596,-108.5996253,L,1,99999,99999,99999,9,Y,N,06550,A,02409849,00800,4,03870,03900,99999,051,026,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0051.3,59102 +14274,3,000,25,1,38,1,02,2,1,0,0,2,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14275,3,000,25,1,38,1,02,2,1,0,0,2,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14276,3,000,25,1,38,1,02,2,1,0,0,2,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14277,3,000,25,1,38,1,02,2,1,0,0,2,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14278,3,000,25,1,38,1,02,2,1,0,0,2,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14279,3,000,25,2,0,1,02,2,1,0,0,1,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14280,3,000,25,2,0,1,02,2,1,0,0,1,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14281,3,000,25,2,0,1,02,2,1,0,0,1,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14282,3,000,25,2,0,1,02,2,1,0,0,1,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14283,3,000,25,2,0,1,02,2,1,0,0,1,47,157,011401,2003,2,9999,99999,99999999,9,99999,99999999,48954,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91488,N,02772132,368,6,99999,99999999,+35.1329317,-090.0427122,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02501,3,99999,99999,00148,090,030,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008103,38126 +14284,3,000,20,1,57,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14285,3,000,20,1,57,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14286,3,000,20,1,57,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14287,3,000,20,1,57,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14288,3,000,20,1,58,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14289,3,000,20,1,62,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14290,3,000,20,1,63,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14291,3,000,20,1,64,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14292,3,000,20,1,64,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14293,3,000,20,1,64,1,01,2,1,0,0,2,27,041,450702,1003,1,9999,99999,99999999,9,99999,99999999,1081094,76215,0,0,76215,0,10820,07,999,99999,99999999,A,00659466,00928,F,02393918,999,4,99999,99999999,+45.9035899,-095.3858573,B,2,99999,99999,99999,9,Y,N,00928,A,02393918,00800,2,99999,99999,03060,08B,008,00662849,99999,99999999,9,999,99999,99999999,999999,01306,U,99999,U,000007,56308 +14294,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14295,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14296,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14297,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14298,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14299,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14300,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14301,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14302,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14303,5,104,37,1,35,1,01,0,1,1,1,2,51,169,030200,1008,1,9999,99999,99999999,9,99999,99999999,10478593,0,0,0,0,0,28700,09,999,99999,99999999,A,01498172,92026,N,01927282,304,5,99999,99999999,+36.7321600,-082.8233806,L,1,99999,99999,99999,9,9,9,99999,9,99999999,18500,3,99999,99999,03480,001,040,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000602,24244 +14304,3,000,21,2,51,2,02,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14305,3,000,21,2,67,1,01,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14306,3,000,21,2,67,1,01,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14307,3,000,21,2,68,1,01,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14308,3,000,21,2,68,1,01,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14309,3,000,21,2,68,1,01,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14310,3,000,21,2,68,1,01,2,1,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14311,3,000,22,1,29,1,11,2,2,0,0,2,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14312,3,000,25,1,6,1,01,2,1,0,0,1,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14313,3,000,25,1,6,1,01,2,1,0,0,1,34,001,012401,1012,1,9999,99999,99999999,9,99999,99999999,43333,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,52950,F,00885324,428,2,99999,99999999,+39.3778242,-074.5434942,L,1,99999,99999,99999,9,N,N,52950,A,00885324,00101,1,11790,09360,99999,002,002,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,090104,08225 +14314,3,000,25,2,19,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14315,3,000,25,2,19,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14316,3,000,25,2,19,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14317,3,000,25,2,20,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14318,3,000,25,2,20,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14319,3,000,25,2,23,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14320,3,000,25,2,23,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14321,3,000,25,2,23,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14322,3,000,25,2,23,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14323,3,000,25,2,23,1,01,2,1,0,0,2,26,075,006202,3013,3,9999,99999,99999999,9,99999,99999999,502688,0,0,0,0,0,27100,07,999,99999,99999999,A,01622980,56640,A,01626789,999,3,99999,99999999,+42.1776553,-084.2283233,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02600,2,99999,99999,24960,064,016,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075041,49201 +14324,3,000,21,2,23,1,02,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14325,3,000,21,2,40,1,01,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14326,3,000,21,2,41,1,04,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14327,3,000,21,2,41,1,04,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14328,3,000,21,2,42,1,04,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14329,3,000,21,2,42,1,04,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14330,3,000,21,2,51,1,04,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14331,3,000,21,2,56,1,01,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14332,3,000,21,2,58,1,01,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14333,3,000,21,2,59,1,01,2,1,0,0,2,47,037,015401,3016,3,9999,99999,99999999,9,99999,99999999,463049,0,0,0,0,0,34980,05,999,52004,02405091,C,01639737,91938,N,02464336,400,6,99999,99999999,+36.2180358,-086.5931432,L,1,99999,99999,99999,9,Y,N,52006,F,02405092,02403,3,99999,99999,03180,060,018,01325873,99999,99999999,9,999,99999,99999999,999999,61273,U,99999,U,001851,37076 +14334,3,000,20,1,39,1,06,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14335,3,000,20,1,40,2,11,2,2,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14336,3,000,20,1,45,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14337,3,000,20,1,45,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14338,3,000,20,1,45,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14339,3,000,20,1,45,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14340,3,000,20,1,45,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14341,3,000,20,1,45,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14342,3,000,20,1,46,1,06,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14343,3,000,20,1,49,1,04,2,1,0,0,2,06,059,088107,1002,1,9999,99999,99999999,9,99999,99999999,230756,0,0,0,0,0,31080,47,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7776465,-117.9699695,L,1,11244,99999,99999,9,N,N,29000,A,02410568,05913,4,99999,99999,14880,072,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92841 +14344,3,000,21,2,82,1,01,2,1,0,0,2,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14345,3,000,21,2,82,1,01,2,1,0,0,2,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14346,3,000,22,2,41,2,01,2,1,0,0,2,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14347,3,000,22,2,65,1,01,2,1,0,0,2,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14348,3,000,22,2,65,1,01,2,1,0,0,2,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14349,3,000,25,2,18,2,01,2,1,0,0,2,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14350,3,000,27,2,15,2,06,2,1,0,0,1,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14351,3,000,27,2,15,2,06,2,1,0,0,1,12,105,012412,1005,1,9999,99999,99999999,9,99999,99999999,7879,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3297276,-081.6775973,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14352,3,000,20,1,83,1,02,1,1,0,0,2,12,105,012412,1006,1,9999,99999,99999999,9,99999,99999999,27583,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3393519,-081.6727364,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14353,3,000,20,1,33,1,03,2,1,0,0,2,12,105,012412,1006,1,9999,99999,99999999,9,99999,99999999,27583,0,0,0,0,0,29460,15,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.3393519,-081.6727364,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10505,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,31150,U,99999,U,000103,33897 +14354,3,000,20,2,45,1,01,2,1,0,0,2,12,081,001300,3014,3,9999,99999,99999999,9,99999,99999999,15065,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5203490,-082.5742502,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14355,3,000,20,1,29,1,01,2,1,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14356,3,000,20,1,41,1,07,2,2,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14357,3,000,20,2,37,2,11,2,2,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14358,3,000,20,2,54,1,01,2,1,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14359,3,000,20,2,63,2,11,2,2,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14360,3,000,20,2,69,2,11,2,2,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14361,3,000,21,1,35,1,07,2,2,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14362,3,000,21,2,31,1,07,2,2,0,0,2,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14363,3,000,25,1,11,2,07,2,2,0,0,1,12,081,001300,3015,3,9999,99999,99999999,9,99999,99999999,53416,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92600,S,01935887,412,5,99999,99999999,+27.5186491,-082.5740464,L,1,99999,99999,99999,9,N,N,54250,A,02404467,08101,3,99999,99999,01230,071,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000049,34221 +14364,3,000,30,2,13,1,01,2,1,0,0,1,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14365,3,000,30,2,13,1,01,2,1,0,0,1,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14366,3,000,30,2,15,1,02,2,1,0,0,1,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14367,3,000,30,2,15,1,02,2,1,0,0,1,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14368,3,000,30,2,20,1,01,2,1,0,0,2,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14369,3,000,30,2,21,1,01,2,1,0,0,2,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14370,3,000,30,2,22,2,01,2,1,0,0,2,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14371,3,000,31,1,83,1,01,2,1,0,0,2,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14372,3,000,32,1,49,1,01,2,1,0,0,2,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14373,3,000,32,2,23,2,15,2,2,0,0,2,12,105,012408,1010,1,9999,99999,99999999,9,99999,99999999,573795,0,0,0,0,0,29460,09,999,99999,99999999,A,00295747,91404,S,01935790,422,5,99999,99999999,+28.1439769,-081.8182903,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10502,3,99999,99999,01590,039,022,00294478,99999,99999999,9,999,99999,99999999,999999,96697,U,99999,U,000301,33823 +14374,3,000,20,1,48,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14375,3,000,20,1,53,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14376,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14377,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14378,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14379,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14380,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14381,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14382,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14383,3,000,20,1,70,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +14384,3,000,20,2,68,1,02,1,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14385,3,000,20,2,72,1,02,1,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14386,3,000,21,2,72,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14387,3,000,25,1,19,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14388,3,000,25,1,19,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14389,3,000,25,1,19,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14390,3,000,25,1,19,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14391,3,000,25,2,6,1,02,2,1,0,0,1,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14392,3,000,25,2,26,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14393,3,000,28,2,71,1,02,2,1,0,0,2,28,035,010500,2022,2,9999,99999,99999999,9,99999,99999999,3969,0,0,0,0,0,25620,04,999,99999,99999999,A,00695742,92376,N,00711846,279,6,99999,99999999,+31.3015351,-089.2806358,L,1,99999,99999,99999,9,Y,N,31020,A,02403816,01800,3,99999,99999,01490,103,034,01779790,99999,99999999,9,999,99999,99999999,999999,37594,U,99999,U,000404,39401 +14394,3,000,20,2,23,2,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14395,3,000,20,2,24,1,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14396,3,000,20,2,24,2,09,2,2,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14397,3,000,20,2,25,1,03,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14398,3,000,20,2,26,1,04,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14399,3,000,20,2,26,1,04,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14400,3,000,20,2,29,1,04,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14401,3,000,20,2,29,1,04,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14402,3,000,20,2,30,2,06,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14403,3,000,20,2,30,2,06,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +14404,3,000,21,2,70,1,01,2,1,0,0,2,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14405,3,000,25,1,1,2,01,2,1,0,0,1,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14406,3,000,25,1,6,1,02,2,1,0,0,1,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14407,3,000,25,1,6,2,01,2,1,0,0,1,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14408,3,000,25,1,6,2,01,2,1,0,0,1,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14409,3,000,25,1,17,2,06,2,1,0,0,1,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14410,3,000,25,1,17,2,06,2,1,0,0,1,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14411,3,000,25,1,18,1,04,2,1,0,0,2,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14412,3,000,25,1,21,1,20,2,2,0,0,2,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14413,3,000,25,1,28,1,12,2,2,0,0,2,53,033,029403,1008,1,9999,99999,99999999,9,99999,99999999,86402,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.4097953,-122.2052383,L,1,42644,99999,99999,9,Y,N,35415,A,02410185,23309,4,99999,99999,03960,047,047,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,35415,U,000439,98031 +14414,3,000,20,2,51,1,02,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14415,3,000,20,2,52,1,02,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14416,3,000,20,2,52,1,02,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14417,3,000,21,1,29,2,06,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14418,3,000,21,2,52,1,11,2,2,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14419,3,000,22,1,48,1,01,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14420,3,000,22,1,49,1,01,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14421,3,000,22,1,63,1,01,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14422,3,000,22,2,22,1,02,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14423,3,000,22,2,22,1,02,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +14424,3,000,25,1,9,2,11,2,2,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14425,3,000,25,1,9,2,11,2,2,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14426,3,000,25,1,9,2,11,2,2,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14427,3,000,25,1,12,2,11,2,2,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14428,3,000,25,1,12,2,11,2,2,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14429,3,000,25,1,14,1,02,2,1,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14430,3,000,25,1,14,1,02,2,1,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14431,3,000,25,1,14,1,02,2,1,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14432,3,000,25,1,15,1,02,2,1,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14433,3,000,25,1,15,1,02,2,1,0,0,1,40,109,107104,1012,1,9999,99999,99999999,9,99999,99999999,145500,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.4072846,-097.5688301,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21405,3,99999,99999,22770,090,044,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000226,73119 +14434,3,000,20,2,69,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14435,3,000,20,2,69,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14436,3,000,21,1,31,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14437,3,000,21,1,31,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14438,3,000,21,1,31,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14439,3,000,21,1,33,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14440,3,000,21,1,33,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14441,3,000,21,1,33,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14442,3,000,21,1,34,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14443,3,000,21,2,31,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +14444,3,000,21,1,58,1,02,2,1,0,0,2,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14445,3,000,21,2,26,2,06,2,1,0,0,2,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14446,3,000,25,2,8,1,01,2,1,0,0,1,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14447,3,000,30,1,7,1,01,2,1,0,0,1,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14448,3,000,30,1,7,1,01,2,1,0,0,1,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14449,3,000,30,2,6,2,11,2,2,0,0,1,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14450,3,000,33,1,11,1,01,2,1,0,0,1,37,089,930600,2003,2,9999,99999,99999999,9,99999,99999999,134028,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4441968,-082.4845420,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14451,3,000,20,1,27,1,01,1,1,0,0,2,37,089,930600,2005,2,9999,99999,99999999,9,99999,99999999,153638,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4437553,-082.4914845,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14452,3,000,20,1,28,1,01,1,1,0,0,2,37,089,930600,2005,2,9999,99999,99999999,9,99999,99999999,153638,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4437553,-082.4914845,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14453,3,000,20,1,41,1,01,1,1,0,0,2,37,089,930600,2005,2,9999,99999,99999999,9,99999,99999999,153638,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,91536,N,01026792,120,5,99999,99999999,+35.4437553,-082.4914845,L,1,99999,99999,99999,9,N,N,23760,A,02406499,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,03358,U,99999,U,0000FL,28732 +14454,3,000,20,2,64,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14455,3,000,20,2,64,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14456,3,000,20,2,64,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14457,3,000,20,2,64,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14458,3,000,20,2,65,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14459,3,000,20,2,65,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14460,3,000,20,2,65,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14461,3,000,20,2,65,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14462,3,000,20,2,65,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14463,3,000,20,2,65,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +14464,3,000,21,1,71,1,02,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14465,3,000,21,1,72,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14466,3,000,21,1,72,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14467,3,000,21,1,72,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14468,3,000,21,2,35,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14469,3,000,21,2,37,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14470,3,000,21,2,37,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14471,3,000,21,2,42,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14472,3,000,21,2,44,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14473,3,000,21,2,49,1,01,2,1,0,0,2,26,115,830500,3044,3,9999,99999,99999999,9,99999,99999999,290117,0,0,0,0,0,33780,07,999,99999,99999999,A,01623000,26880,A,01626261,220,3,99999,99999999,+42.0419736,-083.4647143,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03300,2,99999,99999,01980,017,017,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,115028,48117 +14474,3,000,21,2,59,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14475,3,000,21,2,61,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14476,3,000,21,2,62,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14477,3,000,21,2,62,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14478,3,000,21,2,77,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14479,3,000,21,2,77,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14480,3,000,25,1,8,1,01,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14481,3,000,25,1,8,1,01,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14482,3,000,25,2,4,1,01,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14483,3,000,25,2,8,1,01,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +14484,3,000,20,1,48,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14485,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14486,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14487,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14488,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14489,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14490,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14491,3,000,20,1,60,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14492,3,000,20,1,61,1,01,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14493,3,000,20,2,39,2,06,2,1,0,0,2,47,107,970601,2012,2,9999,99999,99999999,9,99999,99999999,1415804,0,0,0,0,0,11940,03,999,99999,99999999,A,01639773,90678,N,02464062,174,6,99999,99999999,+35.3369487,-084.5880460,L,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,02820,023,009,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006063,37303 +14494,3,000,25,1,1,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14495,3,000,25,1,1,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14496,3,000,25,1,1,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14497,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14498,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14499,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14500,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14501,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14502,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14503,3,000,25,1,2,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +14504,3,000,34,2,19,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14505,3,000,34,2,19,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14506,3,000,34,2,19,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14507,3,000,34,2,19,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14508,3,000,34,2,19,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14509,3,000,34,2,20,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14510,3,000,34,2,20,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14511,3,000,34,2,20,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14512,3,000,34,2,20,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14513,3,000,34,2,20,1,01,2,1,0,0,2,17,095,000400,1011,1,9999,99999,99999999,9,99999,99999999,778017,0,0,0,0,0,23660,17,999,99999,99999999,A,00424249,28352,B,00429036,999,3,99999,99999999,+40.9851185,-090.3900338,L,2,99999,99999,99999,9,Y,N,28326,A,02394842,09500,2,99999,99999,16080,074,037,01779784,99999,99999999,9,999,99999,99999999,999999,32329,U,99999,U,000019,61401 +14514,3,000,20,1,75,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14515,3,000,20,2,31,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14516,3,000,20,2,33,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14517,3,000,20,2,33,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14518,3,000,20,2,33,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14519,3,000,20,2,33,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14520,3,000,20,2,33,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14521,3,000,20,2,33,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14522,3,000,20,2,34,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14523,3,000,21,1,30,2,11,2,2,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +14524,3,000,25,1,17,1,01,2,1,0,0,1,17,091,010602,3013,3,9999,99999,99999999,9,99999,99999999,30513,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1640966,-087.8614658,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14525,3,000,25,1,17,1,01,2,1,0,0,1,17,091,010602,3013,3,9999,99999,99999999,9,99999,99999999,30513,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1640966,-087.8614658,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14526,3,000,25,1,17,1,01,2,1,0,0,1,17,091,010602,3013,3,9999,99999,99999999,9,99999,99999999,30513,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1640966,-087.8614658,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14527,3,000,25,2,5,2,15,2,2,0,0,1,17,091,010602,3013,3,9999,99999,99999999,9,99999,99999999,30513,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1640966,-087.8614658,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14528,3,000,34,1,47,1,01,2,1,0,0,2,17,091,010602,3013,3,9999,99999,99999999,9,99999,99999999,30513,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1640966,-087.8614658,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14529,3,000,34,1,47,1,01,2,1,0,0,2,17,091,010602,3013,3,9999,99999,99999999,9,99999,99999999,30513,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1640966,-087.8614658,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14530,3,000,20,2,80,1,01,1,1,0,0,2,17,091,010602,3018,3,9999,99999,99999999,9,99999,99999999,88868,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1635202,-087.8683960,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14531,3,000,20,2,80,1,01,1,1,0,0,2,17,091,010602,3018,3,9999,99999,99999999,9,99999,99999999,88868,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1635202,-087.8683960,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14532,3,000,20,1,36,1,01,2,1,0,0,2,17,091,010602,3018,3,9999,99999,99999999,9,99999,99999999,88868,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1635202,-087.8683960,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14533,3,000,20,1,36,1,01,2,1,0,0,2,17,091,010602,3018,3,9999,99999,99999999,9,99999,99999999,88868,0,0,0,0,0,28100,02,999,99999,99999999,A,00424247,07484,A,00428696,176,3,99999,99999999,+41.1635202,-087.8683960,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09100,2,06750,06960,99999,079,040,01779784,99999,99999999,9,999,99999,99999999,999999,43885,U,99999,U,Bour14,60914 +14534,3,000,20,1,38,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14535,3,000,20,1,38,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14536,3,000,20,1,46,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14537,3,000,20,1,70,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14538,3,000,20,1,70,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14539,3,000,20,1,70,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14540,3,000,20,1,70,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14541,3,000,20,1,70,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14542,3,000,20,1,73,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14543,3,000,20,1,74,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +14544,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14545,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14546,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14547,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14548,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14549,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14550,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14551,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14552,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14553,5,501,38,1,19,1,01,0,1,2,5,2,18,077,966300,3036,3,9999,99999,99999999,9,99999,99999999,32702,0,0,0,0,0,31500,06,999,99999,99999999,A,00450363,31234,A,00453370,999,3,99999,99999999,+38.7133383,-085.4624902,L,2,99999,99999,99999,9,N,N,31216,A,02396984,03100,2,99999,99999,10800,066,045,00448508,99999,99999999,9,999,99999,99999999,999999,53092,U,99999,U,000020,47243 +14554,3,000,25,2,15,1,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14555,3,000,25,2,16,1,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14556,3,000,25,2,16,1,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14557,3,000,25,2,16,1,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14558,3,000,25,2,17,2,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14559,3,000,27,1,20,2,06,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14560,3,000,27,1,20,2,06,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14561,3,000,28,1,61,2,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14562,3,000,28,1,64,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14563,3,000,30,1,1,2,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +14564,3,000,21,2,42,2,01,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14565,3,000,21,2,42,2,01,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14566,3,000,21,2,43,2,06,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14567,3,000,21,2,43,2,06,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14568,3,000,21,2,43,2,06,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14569,3,000,21,2,43,2,11,2,2,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14570,3,000,21,2,43,2,11,2,2,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14571,3,000,21,2,44,2,06,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14572,3,000,21,2,44,2,06,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14573,3,000,21,2,51,1,01,2,1,0,0,2,06,047,000702,3023,3,9999,99999,99999999,9,99999,99999999,1056116,0,0,0,0,0,32900,16,999,99999,99999999,A,00277288,90150,S,01935019,488,9,99999,99999999,+37.3138629,-120.6066470,L,1,99999,99999,99999,9,N,N,45006,S,02583069,04702,4,24360,24660,99999,021,012,01779778,99999,99999999,9,999,99999,99999999,999999,56251,U,99999,U,,95301 +14574,3,000,28,2,38,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14575,3,000,28,2,68,1,01,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14576,3,000,29,2,78,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14577,3,000,29,2,80,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14578,3,000,29,2,81,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14579,3,000,29,2,85,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14580,3,000,29,2,85,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14581,3,000,29,2,89,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14582,3,000,29,2,89,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14583,3,000,29,2,89,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +14584,3,000,20,1,73,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14585,3,000,20,1,73,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14586,3,000,20,1,73,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14587,3,000,20,1,73,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14588,3,000,20,1,74,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14589,3,000,20,1,74,1,04,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14590,3,000,20,1,74,1,04,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14591,3,000,20,2,37,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14592,3,000,20,2,37,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14593,3,000,20,2,37,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +14594,3,000,21,2,59,2,06,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14595,3,000,21,2,61,1,04,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14596,3,000,21,2,61,1,04,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14597,3,000,21,2,62,1,20,2,2,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14598,3,000,21,2,65,1,06,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14599,3,000,21,2,70,1,01,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14600,3,000,21,2,70,1,01,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14601,3,000,21,2,71,1,01,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14602,3,000,21,2,71,1,01,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14603,3,000,21,2,71,1,01,2,1,0,0,2,12,095,016603,3000,3,9999,99999,99999999,9,99999,99999999,696666,1729,0,0,1729,0,36740,07,999,99999,99999999,A,00295750,90910,S,01935752,422,5,99999,99999999,+28.5719364,-081.1221084,B,1,99999,99999,99999,9,N,N,06625,S,02402690,09510,3,99999,99999,01440,050,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,00542B,32820 +14604,3,000,25,2,14,1,01,2,1,0,0,1,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14605,3,000,25,2,14,1,01,2,1,0,0,1,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14606,3,000,25,2,14,1,01,2,1,0,0,1,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14607,3,000,25,2,14,1,01,2,1,0,0,1,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14608,3,000,25,2,14,1,01,2,1,0,0,1,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14609,3,000,25,2,16,1,01,2,1,0,0,1,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14610,3,000,25,2,51,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14611,3,000,25,2,51,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14612,3,000,28,1,28,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14613,3,000,28,1,59,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +14614,3,000,20,1,36,2,11,2,2,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14615,3,000,20,1,38,2,11,2,2,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14616,3,000,20,1,38,2,11,2,2,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14617,3,000,20,1,39,1,01,2,1,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14618,3,000,20,1,39,2,06,2,1,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14619,3,000,20,1,39,2,06,2,1,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14620,3,000,20,1,39,2,06,2,1,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14621,3,000,20,1,40,1,01,2,1,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14622,3,000,20,1,40,2,01,2,1,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14623,3,000,20,1,49,2,11,2,2,0,0,2,09,003,416500,4001,4,9999,99999,99999999,9,99999,99999999,24328,0,0,0,0,0,25540,05,790,99999,99999999,N,00212338,50440,C,00213467,278,1,99999,99999999,+41.6740651,-072.8094240,L,1,99999,99999,73450,1,N,N,50370,A,02378284,20206,1,99999,99999,02670,024,006,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-100,06053 +14624,3,000,25,2,11,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14625,3,000,25,2,13,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14626,3,000,25,2,13,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14627,3,000,25,2,13,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14628,3,000,25,2,14,1,03,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14629,3,000,25,2,14,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14630,3,000,25,2,14,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14631,3,000,25,2,14,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14632,3,000,25,2,14,2,11,2,2,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14633,3,000,25,2,16,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +14634,3,000,36,1,32,2,08,2,2,0,0,2,06,067,007010,2004,2,9999,99999,99999999,9,99999,99999999,28717,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6106841,-121.5209301,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14635,3,000,20,1,55,1,01,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14636,3,000,20,1,55,1,01,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14637,3,000,20,1,55,1,01,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14638,3,000,20,1,63,1,02,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14639,3,000,20,1,63,1,02,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14640,3,000,20,1,64,1,02,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14641,3,000,20,2,25,2,01,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14642,3,000,20,2,48,1,01,1,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14643,3,000,20,1,23,1,01,2,1,0,0,2,06,067,007010,2005,2,9999,99999,99999999,9,99999,99999999,22666,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6114208,-121.5196764,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +14644,3,000,25,1,16,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14645,3,000,25,1,16,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14646,3,000,25,1,16,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14647,3,000,25,2,4,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14648,3,000,25,2,4,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14649,3,000,25,2,5,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14650,3,000,25,2,18,2,01,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14651,3,000,25,2,18,2,01,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14652,3,000,25,2,21,2,01,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14653,3,000,27,1,0,1,02,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +14654,3,000,20,1,58,2,01,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14655,3,000,20,1,58,2,01,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14656,3,000,20,1,59,2,06,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14657,3,000,20,1,60,1,01,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14658,3,000,20,1,60,1,01,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14659,3,000,20,1,60,1,01,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14660,3,000,20,1,60,1,34,2,3,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14661,3,000,20,1,61,2,01,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14662,3,000,20,1,68,2,06,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14663,3,000,20,1,69,2,06,2,1,0,0,2,36,005,026702,5000,5,9999,99999,99999999,9,99999,99999999,17148,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8712633,-073.9007805,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000343,10468 +14664,3,000,20,2,62,1,01,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14665,3,000,20,2,62,1,01,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14666,3,000,20,2,63,1,02,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14667,3,000,20,2,63,1,02,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14668,3,000,20,2,64,1,01,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14669,3,000,20,2,68,1,02,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14670,3,000,20,2,71,1,01,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14671,3,000,25,1,13,1,01,2,1,0,0,1,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14672,3,000,25,1,13,1,01,2,1,0,0,1,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14673,3,000,25,1,13,1,01,2,1,0,0,1,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +14674,3,000,25,2,21,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14675,3,000,25,2,21,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14676,3,000,25,2,21,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14677,3,000,25,2,21,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14678,3,000,25,2,47,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14679,3,000,27,1,9,1,01,2,1,0,0,1,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14680,3,000,27,2,14,1,02,2,1,0,0,1,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14681,3,000,27,2,17,1,02,2,1,0,0,1,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14682,3,000,27,2,30,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14683,3,000,27,2,30,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +14684,3,000,33,2,24,1,01,2,1,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14685,3,000,34,1,20,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14686,3,000,34,1,20,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14687,3,000,34,1,20,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14688,3,000,34,1,21,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14689,3,000,34,1,21,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14690,3,000,34,1,21,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14691,3,000,34,1,21,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14692,3,000,34,1,21,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14693,3,000,34,1,22,2,11,2,2,0,0,2,08,077,001200,2002,2,9999,99999,99999999,9,99999,99999999,3106219,0,0,0,0,0,24300,03,999,99999,99999999,A,00198154,90665,S,01935426,999,8,99999,99999999,+39.0774938,-108.4048198,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02501,4,99999,99999,04350,054,007,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,077015,81526 +14694,3,000,25,2,5,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14695,3,000,25,2,9,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14696,3,000,25,2,9,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14697,3,000,25,2,9,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14698,3,000,25,2,9,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14699,3,000,25,2,10,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14700,3,000,25,2,11,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14701,3,000,25,2,12,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14702,3,000,25,2,12,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14703,3,000,25,2,12,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +14704,3,000,20,1,51,1,01,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14705,3,000,20,1,51,1,04,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14706,3,000,20,1,52,1,02,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14707,3,000,20,1,54,1,01,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14708,3,000,20,1,54,1,01,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14709,3,000,20,1,62,1,01,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14710,3,000,20,1,62,1,01,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14711,3,000,20,1,63,2,11,2,2,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14712,3,000,20,1,63,2,11,2,2,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14713,3,000,20,1,64,1,01,2,1,0,0,2,06,073,018903,3007,3,9999,99999,99999999,9,99999,99999999,49653,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,90960,S,01935100,999,9,99999,99999999,+33.3862652,-117.2467944,L,1,99999,99999,99999,9,N,N,23462,S,02408113,07302,4,13500,13530,99999,075,038,01779778,99999,99999999,9,999,99999,99999999,999999,29024,U,99999,U,,92028 +14714,5,701,38,1,28,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14715,5,701,38,1,29,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14716,5,701,38,1,29,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14717,5,701,38,1,29,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14718,5,701,38,1,29,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14719,5,701,38,1,30,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14720,5,701,38,1,30,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14721,5,701,38,1,30,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14722,5,701,38,1,30,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14723,5,701,38,1,30,1,02,0,1,2,7,2,36,047,010100,3001,3,9999,99999,99999999,9,99999,99999999,15868,0,0,0,0,0,35620,10,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6607509,-073.9992335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04307,1,99999,99999,20580,051,025,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000897,11232 +14724,3,000,21,2,38,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14725,3,000,21,2,38,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14726,3,000,21,2,38,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14727,3,000,21,2,38,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14728,3,000,21,2,39,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14729,3,000,21,2,40,1,04,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14730,3,000,21,2,56,1,04,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14731,3,000,21,2,58,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14732,3,000,21,2,58,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14733,3,000,21,2,58,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +14734,3,000,20,1,73,1,02,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14735,3,000,20,1,73,1,02,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14736,3,000,20,1,76,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14737,3,000,20,1,76,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14738,3,000,20,1,76,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14739,3,000,20,1,76,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14740,3,000,20,1,79,1,02,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14741,3,000,20,1,80,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14742,3,000,20,1,83,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14743,3,000,20,1,84,1,04,2,1,0,0,2,48,113,019034,1002,1,9999,99999,99999999,9,99999,99999999,151176,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9222728,-096.7203814,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02307,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001030,75243 +14744,3,000,20,2,48,2,11,2,2,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14745,3,000,20,2,50,2,11,2,2,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14746,3,000,20,2,50,2,11,2,2,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14747,3,000,20,2,50,2,11,2,2,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14748,3,000,20,2,50,2,11,2,2,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14749,3,000,20,2,56,1,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14750,3,000,20,2,57,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14751,3,000,20,2,57,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14752,3,000,20,2,57,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14753,3,000,20,2,57,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +14754,3,000,21,2,48,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14755,3,000,21,2,48,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14756,3,000,21,2,50,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14757,3,000,21,2,50,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14758,3,000,21,2,51,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14759,3,000,21,2,51,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14760,3,000,21,2,53,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14761,3,000,21,2,53,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14762,3,000,21,2,53,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14763,3,000,21,2,53,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +14764,3,000,20,2,31,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14765,3,000,20,2,31,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14766,3,000,20,2,31,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14767,3,000,20,2,31,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14768,3,000,20,2,31,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14769,3,000,20,2,32,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14770,3,000,20,2,32,1,01,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14771,3,000,21,2,51,1,04,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14772,3,000,21,2,53,1,04,2,1,0,0,2,29,101,960900,1011,1,9999,99999,99999999,9,99999,99999999,118667,0,0,0,0,0,47660,04,999,99999,99999999,A,00758505,38936,N,00766836,312,4,99999,99999999,+38.6867152,-094.1201458,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000021,64040 +14773,3,000,20,1,41,2,01,2,1,0,0,2,29,101,960900,1013,1,9999,99999,99999999,9,99999,99999999,520305,1057,0,0,1057,0,47660,04,999,99999,99999999,A,00758505,63146,N,00766840,312,4,99999,99999999,+38.6809563,-094.1242477,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14490,054,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000007,64040 +14774,3,000,25,1,10,1,04,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14775,3,000,25,1,12,1,01,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14776,3,000,25,1,17,1,01,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14777,3,000,25,2,2,1,01,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14778,3,000,25,2,2,1,01,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14779,3,000,25,2,9,1,01,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14780,3,000,25,2,9,1,04,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14781,3,000,25,2,9,1,04,2,1,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14782,3,000,25,2,16,2,11,2,2,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14783,3,000,25,2,16,2,11,2,2,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +14784,3,000,25,1,24,1,06,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14785,3,000,25,1,24,1,06,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14786,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14787,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14788,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14789,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14790,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14791,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14792,3,000,25,1,25,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14793,3,000,25,1,26,1,04,2,1,0,0,2,36,059,410500,1003,1,9999,99999,99999999,9,99999,99999999,38471,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6617358,-073.6907525,L,1,35004,99999,99999,9,N,N,76705,A,02391182,03211,1,29460,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000686,11580 +14794,3,000,21,2,49,1,09,2,2,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14795,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14796,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14797,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14798,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14799,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14800,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14801,3,000,21,2,54,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14802,3,000,21,2,61,1,01,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14803,3,000,21,2,61,1,01,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +14804,3,000,20,2,78,1,01,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14805,3,000,20,2,79,1,01,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14806,3,000,20,2,79,2,11,2,2,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14807,3,000,21,1,30,2,11,2,2,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14808,3,000,21,1,33,2,11,2,2,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14809,3,000,21,1,35,2,01,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14810,3,000,21,1,35,2,01,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14811,3,000,21,1,35,2,06,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14812,3,000,21,1,40,1,02,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14813,3,000,21,1,40,1,02,2,1,0,0,2,48,201,241105,1009,1,9999,99999,99999999,9,99999,99999999,78833,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0441965,-095.3612816,L,1,99999,99999,99999,9,N,N,69596,S,02408790,04627,3,99999,99999,41220,150,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000596,77373 +14814,3,000,25,1,29,2,06,2,1,0,0,2,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14815,3,000,25,2,0,1,01,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14816,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14817,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14818,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14819,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14820,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14821,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14822,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14823,3,000,25,2,0,1,02,2,1,0,0,1,48,201,452001,2000,2,9999,99999,99999999,9,99999,99999999,139380,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7344160,-095.6175418,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04637,3,99999,99999,07830,149,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000765,77077 +14824,3,000,20,2,24,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14825,3,000,20,2,24,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14826,3,000,20,2,27,1,11,1,2,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14827,3,000,20,2,31,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14828,3,000,20,2,31,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14829,3,000,20,2,31,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14830,3,000,20,2,31,1,07,1,2,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14831,3,000,20,2,63,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14832,3,000,20,2,69,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14833,3,000,20,2,69,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +14834,3,000,25,1,16,1,01,2,1,0,0,1,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14835,3,000,25,1,18,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14836,3,000,25,1,18,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14837,3,000,25,1,18,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14838,3,000,25,1,18,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14839,3,000,25,1,25,2,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14840,3,000,25,1,26,2,11,2,2,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14841,3,000,25,1,28,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14842,3,000,25,1,28,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14843,3,000,25,1,45,1,01,2,1,0,0,2,18,105,001301,4032,4,9999,99999,99999999,9,99999,99999999,5973910,0,0,0,0,0,14020,09,999,99999,99999999,A,00451680,03808,A,00453100,144,3,99999,99999999,+39.2689600,-086.5968315,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02900,2,99999,99999,09480,046,040,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,47429 +14844,3,000,25,1,27,2,11,2,2,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14845,3,000,25,1,28,1,04,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14846,3,000,25,1,28,1,04,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14847,3,000,25,1,28,1,04,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14848,3,000,25,1,32,1,01,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14849,3,000,25,1,53,1,01,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14850,3,000,25,1,55,1,04,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14851,3,000,25,1,57,1,01,2,1,0,0,2,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14852,3,000,25,2,2,2,11,2,2,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14853,3,000,25,2,3,1,01,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +14854,3,000,20,2,75,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14855,3,000,20,2,75,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14856,3,000,20,2,75,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14857,3,000,20,2,75,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14858,3,000,20,2,75,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14859,3,000,20,2,78,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14860,3,000,20,2,78,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14861,3,000,20,2,78,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14862,3,000,20,2,78,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14863,3,000,20,2,80,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +14864,3,000,21,1,70,1,01,2,1,0,0,2,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14865,3,000,21,1,70,1,01,2,1,0,0,2,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14866,3,000,21,1,70,1,01,2,1,0,0,2,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14867,3,000,25,1,13,1,02,2,1,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14868,3,000,25,1,13,1,02,2,1,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14869,3,000,25,1,17,1,02,2,1,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14870,3,000,25,2,2,1,01,2,1,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14871,3,000,25,2,2,1,07,2,2,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14872,3,000,25,2,4,1,02,2,1,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14873,3,000,25,2,4,1,02,2,1,0,0,1,12,083,000201,2013,2,9999,99999,99999999,9,99999,99999999,277855,0,0,0,0,0,36100,03,999,99999,99999999,A,00306922,92951,S,01935914,999,5,99999,99999999,+29.3641129,-082.1661162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,08301,3,99999,99999,01260,020,008,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000041,32113 +14874,3,000,20,2,90,1,01,1,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14875,3,000,20,2,90,1,01,1,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14876,3,000,20,2,94,1,01,1,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14877,3,000,20,1,37,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14878,3,000,20,1,38,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14879,3,000,20,1,38,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14880,3,000,20,1,49,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14881,3,000,20,1,49,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14882,3,000,20,1,49,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14883,3,000,20,1,49,1,01,2,1,0,0,2,06,087,122005,1002,1,9999,99999,99999999,9,99999,99999999,117507,0,0,0,0,0,42100,20,999,99999,99999999,A,00277308,92900,S,01935295,488,9,99999,99999999,+36.9864952,-121.9312349,L,1,99999,99999,99999,9,N,N,72688,S,02408757,08702,4,37290,06015,99999,029,017,01779778,99999,99999999,9,999,99999,99999999,999999,79336,U,99999,U,,95003 +14884,3,000,20,1,38,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14885,3,000,20,1,67,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14886,3,000,20,1,68,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14887,3,000,21,1,23,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14888,3,000,21,1,38,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14889,3,000,21,1,38,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14890,3,000,21,1,56,1,08,2,2,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14891,3,000,21,1,63,1,01,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14892,3,000,21,2,40,1,02,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14893,3,000,21,2,43,1,02,2,1,0,0,2,27,171,100803,3035,3,9999,99999,99999999,9,99999,99999999,876137,47056,0,0,47056,0,33460,06,999,99999,99999999,A,00659530,57346,F,02396509,378,4,99999,99999999,+45.1591538,-093.7609917,B,1,99999,99999,99999,9,N,N,57346,A,02396509,02001,2,99999,99999,07200,30B,030,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000155,55313 +14894,3,000,25,2,33,2,06,2,1,0,0,2,01,043,964300,1045,1,9999,99999,99999999,9,99999,99999999,34127,0,0,0,0,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2290239,-086.8605028,L,2,99999,99999,99999,9,N,N,71900,A,02407373,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,21637,U,99999,U,000181,35058 +14895,3,000,25,2,33,2,06,2,1,0,0,2,01,043,964300,1045,1,9999,99999,99999999,9,99999,99999999,34127,0,0,0,0,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2290239,-086.8605028,L,2,99999,99999,99999,9,N,N,71900,A,02407373,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,21637,U,99999,U,000181,35058 +14896,3,000,25,2,36,1,01,2,1,0,0,2,01,043,964300,1045,1,9999,99999,99999999,9,99999,99999999,34127,0,0,0,0,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2290239,-086.8605028,L,2,99999,99999,99999,9,N,N,71900,A,02407373,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,21637,U,99999,U,000181,35058 +14897,3,000,25,2,36,1,01,2,1,0,0,2,01,043,964300,1045,1,9999,99999,99999999,9,99999,99999999,34127,0,0,0,0,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2290239,-086.8605028,L,2,99999,99999,99999,9,N,N,71900,A,02407373,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,21637,U,99999,U,000181,35058 +14898,3,000,29,2,56,1,01,2,1,0,0,2,01,043,964300,1045,1,9999,99999,99999999,9,99999,99999999,34127,0,0,0,0,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2290239,-086.8605028,L,2,99999,99999,99999,9,N,N,71900,A,02407373,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,21637,U,99999,U,000181,35058 +14899,3,000,20,2,54,1,01,1,1,0,0,2,01,043,964400,1021,1,9999,99999,99999999,9,99999,99999999,798808,4824,0,0,4824,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2427310,-086.9462535,B,2,99999,99999,99999,9,N,N,81528,A,02406865,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000171,35057 +14900,3,000,20,2,54,1,01,1,1,0,0,2,01,043,964400,1021,1,9999,99999,99999999,9,99999,99999999,798808,4824,0,0,4824,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2427310,-086.9462535,B,2,99999,99999,99999,9,N,N,81528,A,02406865,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000171,35057 +14901,3,000,20,2,54,1,01,1,1,0,0,2,01,043,964400,1021,1,9999,99999,99999999,9,99999,99999999,798808,4824,0,0,4824,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2427310,-086.9462535,B,2,99999,99999,99999,9,N,N,81528,A,02406865,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000171,35057 +14902,3,000,20,2,54,1,01,1,1,0,0,2,01,043,964400,1021,1,9999,99999,99999999,9,99999,99999999,798808,4824,0,0,4824,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2427310,-086.9462535,B,2,99999,99999,99999,9,N,N,81528,A,02406865,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000171,35057 +14903,3,000,20,2,80,1,01,1,1,0,0,2,01,043,964400,1021,1,9999,99999,99999999,9,99999,99999999,798808,4824,0,0,4824,0,18980,04,999,99999,99999999,A,00161547,93330,S,00165737,142,6,99999,99999999,+34.2427310,-086.9462535,B,2,99999,99999,99999,9,N,N,81528,A,02406865,01000,3,99999,99999,01020,009,004,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000171,35057 +14904,3,000,21,1,56,1,01,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14905,3,000,21,1,56,1,01,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14906,3,000,21,1,56,1,01,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14907,3,000,21,2,30,1,02,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14908,3,000,21,2,30,2,06,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14909,3,000,21,2,30,2,06,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14910,3,000,21,2,31,1,02,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14911,3,000,21,2,33,1,02,2,1,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14912,3,000,21,2,33,2,11,2,2,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14913,3,000,21,2,44,2,11,2,2,0,0,2,36,103,158714,1005,1,9999,99999,99999999,9,99999,99999999,20268,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8599911,-073.0238032,L,1,35004,99999,99999,9,N,N,18157,S,02389359,03307,1,99999,99999,19200,003,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000418,11784 +14914,3,000,20,2,57,1,01,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14915,3,000,20,2,57,1,04,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14916,3,000,20,2,58,1,01,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14917,3,000,20,2,58,1,04,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14918,3,000,20,2,58,1,04,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14919,3,000,20,2,59,2,06,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14920,3,000,20,2,60,1,01,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14921,3,000,20,2,60,1,01,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14922,3,000,20,2,60,1,01,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14923,3,000,20,2,60,1,01,1,1,0,0,2,06,041,102203,3000,3,9999,99999,99999999,9,99999,99999999,814178,0,0,0,0,0,41860,02,999,99999,99999999,A,00277285,92205,S,01935223,488,9,99999,99999999,+38.1172588,-122.5732859,L,1,42034,99999,99999,9,N,N,52582,A,02411283,04103,4,99999,99999,27720,010,002,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94945 +14924,3,000,25,1,26,1,01,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14925,3,000,25,1,26,1,02,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14926,3,000,25,1,27,1,01,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14927,3,000,25,1,27,1,01,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14928,3,000,25,1,27,1,01,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14929,3,000,25,1,28,1,01,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14930,3,000,25,1,29,1,01,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14931,3,000,25,1,29,1,02,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14932,3,000,25,1,29,1,02,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14933,3,000,25,1,29,1,02,2,1,0,0,2,37,195,001401,2022,2,9999,99999,99999999,9,99999,99999999,1274025,12233,0,0,12233,0,48980,02,999,99999,99999999,A,01008596,93220,N,01027349,468,5,99999,99999999,+35.7853858,-077.9424073,B,2,99999,99999,99999,9,Y,N,74540,A,02405758,01001,3,99999,99999,05020,024,004,01027616,99999,99999999,9,999,99999,99999999,999999,95914,U,99999,U,00PRTA,27896 +14934,3,000,25,1,19,1,02,2,1,0,0,2,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14935,3,000,25,1,19,1,02,2,1,0,0,2,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14936,3,000,25,2,11,1,02,2,1,0,0,1,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14937,3,000,25,2,11,1,02,2,1,0,0,1,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14938,3,000,25,2,11,1,02,2,1,0,0,1,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14939,3,000,25,2,11,1,02,2,1,0,0,1,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14940,3,000,25,2,13,1,02,2,1,0,0,1,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14941,3,000,28,1,37,1,02,2,1,0,0,2,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14942,3,000,28,1,76,1,02,2,1,0,0,2,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14943,3,000,28,1,76,1,02,2,1,0,0,2,45,019,003700,1019,1,9999,99999,99999999,9,99999,99999999,42578,0,0,0,0,0,16700,06,999,99999,99999999,A,01252740,92424,S,02584539,999,5,99999,99999999,+32.8620816,-079.9873935,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02302,3,99999,99999,01440,113,042,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000616,29405 +14944,3,000,25,2,19,2,02,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14945,3,000,25,2,19,2,11,2,2,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14946,3,000,25,2,20,1,03,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14947,3,000,25,2,20,1,03,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14948,3,000,25,2,23,1,03,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14949,3,000,25,2,24,1,03,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14950,3,000,25,2,26,1,01,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14951,3,000,25,2,26,1,01,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14952,3,000,25,2,26,1,01,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14953,3,000,25,2,26,1,01,2,1,0,0,2,16,005,001500,2002,2,9999,99999,99999999,9,99999,99999999,785235,0,0,0,0,0,38540,02,999,99999,99999999,A,00395091,92852,S,01936790,999,8,99999,99999999,+42.9096237,-112.4851713,L,1,99999,99999,99999,9,Y,N,64090,A,02411447,01300,4,99999,99999,02640,029,029,01779783,99999,99999999,9,999,99999,99999999,999999,70426,U,99999,U,052911,83202 +14954,3,000,20,1,44,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14955,3,000,20,1,60,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14956,3,000,20,1,60,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14957,3,000,20,1,70,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14958,3,000,20,1,70,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14959,3,000,20,1,70,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14960,3,000,20,1,70,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14961,3,000,20,1,70,1,01,2,1,0,0,2,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14962,3,000,25,1,9,1,02,2,1,0,0,1,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14963,3,000,25,1,9,1,09,2,2,0,0,1,42,041,011606,1005,1,9999,99999,99999999,9,99999,99999999,293196,0,0,0,0,0,25420,10,999,99999,99999999,A,01209176,78736,A,01216349,276,2,99999,99999999,+40.1835294,-076.9509369,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,1,99999,99999,15030,088,031,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000819,17055 +14964,3,000,25,1,2,2,06,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14965,3,000,25,1,2,2,06,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14966,3,000,25,1,2,2,06,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14967,3,000,25,1,2,2,11,2,2,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14968,3,000,25,1,2,2,11,2,2,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14969,3,000,25,1,3,1,04,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14970,3,000,25,1,3,1,04,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14971,3,000,25,1,3,2,06,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14972,3,000,25,1,4,2,01,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14973,3,000,25,1,4,2,01,2,1,0,0,1,48,201,543201,2004,2,9999,99999,99999999,9,99999,99999999,199404,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7959434,-095.5781021,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04636,3,99999,99999,41100,138,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000120,77043 +14974,3,000,20,2,56,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14975,3,000,20,2,59,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14976,3,000,20,2,62,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14977,3,000,20,2,62,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14978,3,000,20,2,65,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14979,3,000,20,2,67,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14980,3,000,20,2,68,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14981,3,000,20,2,68,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14982,3,000,20,2,68,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14983,3,000,20,2,75,1,01,1,1,0,0,2,48,453,035000,1005,1,9999,99999,99999999,9,99999,99999999,2896357,0,0,0,0,0,12420,25,999,99999,99999999,A,01384012,92857,S,01939269,999,7,99999,99999999,+30.3803455,-097.8589458,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05305,3,99999,99999,27030,047,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000234,78730 +14984,3,000,20,2,57,1,02,2,1,0,0,2,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14985,3,000,20,2,63,1,01,2,1,0,0,2,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14986,3,000,25,2,1,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14987,3,000,25,2,9,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14988,3,000,25,2,9,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14989,3,000,25,2,15,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14990,3,000,25,2,15,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14991,3,000,25,2,15,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14992,3,000,25,2,17,1,01,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14993,3,000,25,2,17,1,02,2,1,0,0,1,12,031,002600,3034,3,9999,99999,99999999,9,99999,99999999,14626,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.3240706,-081.7044392,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03102,3,99999,99999,00480,013,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000176,32254 +14994,3,000,25,2,38,1,01,2,1,0,0,2,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +14995,3,000,25,2,38,1,01,2,1,0,0,2,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +14996,3,000,26,1,9,2,06,2,1,0,0,1,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +14997,3,000,27,1,8,1,01,2,1,0,0,1,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +14998,3,000,34,2,50,1,01,2,1,0,0,2,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 diff --git a/examples/getting_started/sample_inputs/csv_samples/0003.csv b/examples/getting_started/sample_inputs/csv_samples/0003.csv new file mode 100644 index 000000000..bd7d15bc9 --- /dev/null +++ b/examples/getting_started/sample_inputs/csv_samples/0003.csv @@ -0,0 +1,7501 @@ +EPNUM,RTYPE,GQTYPE,RELSHIP,QSEX,QAGE,CENHISP,CENRACE,LIVE_ALONE,NUMRACE,PGQSHRT,GQTYPE_PL,VOTING_AGE,TABBLKST,TABBLKCOU,TABTRACTCE,TABBLK,TABBLKGRPCE,AIANNHCE,AIANNHFP,AIANNHNS,AIHHTLI,ANRCFP,ANRCNS,AREALAND,AREAWATER,AREAWATERCSTL,AREAWATERGRLK,AREAWATERINLD,AREAWATERTSEA,CBSAFP,CD116FP,CNECTAFP,CONCITFP,CONCITNS,COUNTYFS,COUNTYNS,COUSUBFP,COUSUBFS,COUSUBNS,CSAFP,DIVISIONCE,ESTATEFP,ESTATENS,INTPTLAT,INTPTLON,LWBLKTYP,MEMI,METDIVFP,NECTADIVFP,NECTAFP,NMEMI,PCICBSA,PCINECTA,PLACEFP,PLACEFS,PLACENS,PUMA,REGIONCE,SDELMLEA,SDSECLEA,SDUNILEA,SLDLST,SLDUST,STATENS,SUBMCDFP,SUBMCDNS,TBLKGRPCE,TRIBALSUBCE,TRIBALSUBFP,TRIBALSUBNS,TTRACTCE,UACE,UATYP,UGACE,UR,VTDST,ZCTA5CE +14999,3,000,36,2,40,1,01,2,1,0,0,2,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +15000,3,000,36,2,40,1,01,2,1,0,0,2,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +15001,3,000,36,2,40,1,01,2,1,0,0,2,04,019,004109,1061,1,9999,99999,99999999,9,99999,99999999,162598,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685172,-110.8512799,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +15002,3,000,20,1,30,1,01,2,1,0,0,2,04,019,004109,1062,1,9999,99999,99999999,9,99999,99999999,162305,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685201,-110.8470260,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +15003,3,000,20,1,30,1,01,2,1,0,0,2,04,019,004109,1062,1,9999,99999,99999999,9,99999,99999999,162305,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+31.9685201,-110.8470260,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01905,4,99999,99999,08850,014,014,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,85629 +15004,3,000,33,1,17,2,06,2,1,0,0,1,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15005,3,000,33,1,19,2,06,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15006,3,000,33,1,19,2,06,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15007,3,000,33,1,21,2,01,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15008,3,000,33,1,23,2,01,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15009,3,000,33,1,33,2,01,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15010,3,000,33,1,42,2,02,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15011,3,000,33,1,43,1,04,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15012,3,000,33,1,51,1,02,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15013,3,000,33,1,51,1,02,2,1,0,0,2,36,005,027900,3000,3,9999,99999,99999999,9,99999,99999999,23040,0,0,0,0,0,35620,13,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8812148,-073.8976212,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04208,1,99999,99999,20580,081,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000353,10463 +15014,3,000,21,2,65,1,01,2,1,0,0,2,55,141,010100,4011,4,9999,99999,99999999,9,99999,99999999,1587840,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6299121,-090.0558418,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15015,3,000,21,2,65,1,01,2,1,0,0,2,55,141,010100,4011,4,9999,99999,99999999,9,99999,99999999,1587840,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6299121,-090.0558418,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15016,3,000,21,2,76,1,01,2,1,0,0,2,55,141,010100,4011,4,9999,99999,99999999,9,99999,99999999,1587840,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6299121,-090.0558418,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15017,3,000,21,2,76,1,01,2,1,0,0,2,55,141,010100,4011,4,9999,99999,99999999,9,99999,99999999,1587840,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6299121,-090.0558418,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15018,3,000,25,1,5,1,03,2,1,0,0,1,55,141,010100,4011,4,9999,99999,99999999,9,99999,99999999,1587840,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6299121,-090.0558418,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15019,3,000,20,1,60,1,01,2,1,0,0,2,55,141,010100,4018,4,9999,99999,99999999,9,99999,99999999,440911,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6240351,-090.0400782,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15020,3,000,20,1,61,1,01,2,1,0,0,2,55,141,010100,4018,4,9999,99999,99999999,9,99999,99999999,440911,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6240351,-090.0400782,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15021,3,000,21,1,65,1,01,2,1,0,0,2,55,141,010100,4018,4,9999,99999,99999999,9,99999,99999999,440911,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6240351,-090.0400782,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15022,3,000,25,1,6,1,01,2,1,0,0,1,55,141,010100,4018,4,9999,99999,99999999,9,99999,99999999,440911,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6240351,-090.0400782,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15023,3,000,25,1,6,1,01,2,1,0,0,1,55,141,010100,4018,4,9999,99999,99999999,9,99999,99999999,440911,0,0,0,0,0,49220,07,999,99999,99999999,A,01581130,03800,A,01582732,554,3,99999,99999999,+44.6240351,-090.0400782,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,2,99999,99999,00600,086,029,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,007264,54412 +15024,3,000,20,1,49,1,01,2,1,0,0,2,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15025,3,000,21,1,48,1,01,2,1,0,0,2,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15026,3,000,21,1,52,1,11,2,2,0,0,2,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15027,3,000,21,2,48,1,11,2,2,0,0,2,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15028,3,000,25,1,12,1,09,2,2,0,0,1,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15029,3,000,25,1,12,1,09,2,2,0,0,1,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15030,3,000,25,1,45,2,06,2,1,0,0,2,27,161,790200,3016,3,9999,99999,99999999,9,99999,99999999,6881,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8963203,-093.4959616,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15031,3,000,20,2,79,1,01,1,1,0,0,2,27,161,790200,3017,3,9999,99999,99999999,9,99999,99999999,6933,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8968732,-093.4959682,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15032,3,000,22,2,37,1,01,2,1,0,0,2,27,161,790200,3017,3,9999,99999,99999999,9,99999,99999999,6933,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8968732,-093.4959682,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15033,3,000,22,2,38,1,01,2,1,0,0,2,27,161,790200,3017,3,9999,99999,99999999,9,99999,99999999,6933,0,0,0,0,0,99999,01,999,99999,99999999,A,00659525,45862,F,02395213,999,4,99999,99999999,+43.8968732,-093.4959682,L,9,99999,99999,99999,9,N,N,45862,A,02395213,02500,2,99999,99999,00089,23B,023,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000050,56072 +15034,3,000,25,1,2,1,01,2,1,0,0,1,40,111,000300,3065,3,5620,18170,01925077,R,99999,99999999,16113,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6197016,-095.9686407,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15035,3,000,25,1,10,1,01,2,1,0,0,1,40,111,000300,3065,3,5620,18170,01925077,R,99999,99999999,16113,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6197016,-095.9686407,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15036,3,000,25,2,44,1,01,2,1,0,0,2,40,111,000300,3065,3,5620,18170,01925077,R,99999,99999999,16113,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6197016,-095.9686407,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15037,3,000,25,2,44,1,01,2,1,0,0,2,40,111,000300,3065,3,5620,18170,01925077,R,99999,99999999,16113,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6197016,-095.9686407,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15038,3,000,20,2,46,1,01,1,1,0,0,2,40,111,000300,3067,3,5620,18170,01925077,R,99999,99999999,11853,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6186421,-095.9733960,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15039,3,000,20,2,46,1,01,1,1,0,0,2,40,111,000300,3067,3,5620,18170,01925077,R,99999,99999999,11853,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6186421,-095.9733960,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15040,3,000,20,2,40,1,01,2,1,0,0,2,40,111,000300,3067,3,5620,18170,01925077,R,99999,99999999,11853,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6186421,-095.9733960,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15041,3,000,20,2,40,1,01,2,1,0,0,2,40,111,000300,3067,3,5620,18170,01925077,R,99999,99999999,11853,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6186421,-095.9733960,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15042,3,000,20,2,40,1,01,2,1,0,0,2,40,111,000300,3067,3,5620,18170,01925077,R,99999,99999999,11853,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6186421,-095.9733960,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15043,3,000,21,2,26,1,01,2,1,0,0,2,40,111,000300,3067,3,5620,18170,01925077,R,99999,99999999,11853,0,0,0,0,0,46140,02,999,99999,99999999,A,01101843,92431,S,01937817,538,7,99999,99999999,+35.6186421,-095.9733960,L,1,99999,99999,99999,9,N,N,55150,A,02411312,20900,3,99999,99999,22800,016,008,01102857,99999,99999999,9,999,99999,99999999,999999,65107,U,99999,U,000008,74447 +15044,3,000,20,2,40,1,04,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15045,3,000,20,2,42,1,04,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15046,3,000,20,2,42,2,01,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15047,3,000,20,2,43,1,04,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15048,3,000,20,2,43,1,04,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15049,3,000,20,2,43,1,04,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15050,3,000,20,2,43,1,04,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15051,3,000,20,2,62,1,01,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15052,3,000,20,2,62,1,01,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15053,3,000,20,2,62,1,01,2,1,0,0,2,55,025,011000,2004,2,9999,99999,99999999,9,99999,99999999,226825,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,51575,F,01583711,357,3,99999,99999999,+43.0897488,-089.5174985,L,1,99999,99999,99999,9,N,N,51575,A,01583711,02102,2,99999,99999,09510,079,027,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001224,53562 +15054,3,000,21,1,50,1,01,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15055,3,000,21,1,50,1,01,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15056,3,000,21,1,52,1,04,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15057,3,000,21,1,66,1,01,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15058,3,000,21,1,66,1,04,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15059,3,000,21,1,66,1,04,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15060,3,000,21,1,66,1,04,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15061,3,000,21,1,76,1,01,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15062,3,000,21,2,30,1,01,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15063,3,000,21,2,38,1,04,2,1,0,0,2,24,031,703201,2011,2,9999,99999,99999999,9,99999,99999999,128006,0,0,0,0,0,47900,06,999,99999,99999999,A,01712500,91160,N,01929469,548,5,99999,99999999,+39.0808260,-077.0925280,L,1,23224,99999,99999,9,N,N,02825,S,02389154,01005,3,99999,99999,00480,019,019,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-045,20853 +15064,3,000,20,2,44,1,01,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15065,3,000,21,2,86,1,01,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15066,3,000,22,1,26,2,06,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15067,3,000,22,1,28,2,06,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15068,3,000,22,1,40,1,01,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15069,3,000,22,1,43,1,01,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15070,3,000,22,2,21,2,07,2,2,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15071,3,000,22,2,51,1,01,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15072,3,000,22,2,51,1,01,2,1,0,0,2,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15073,3,000,25,1,11,2,06,2,1,0,0,1,51,041,100212,1008,1,9999,99999,99999999,9,99999,99999999,20838,0,0,0,0,0,40060,07,999,99999,99999999,A,01480111,91088,N,01927171,999,5,99999,99999999,+37.4548963,-077.5062497,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04101,3,99999,99999,00840,070,011,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000216,23234 +15074,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15075,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15076,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15077,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15078,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15079,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15080,5,104,37,1,32,2,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15081,5,104,37,1,33,1,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15082,5,104,37,1,33,1,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15083,5,104,37,1,33,1,01,0,1,1,1,2,12,057,012211,1016,1,9999,99999,99999999,9,99999,99999999,219514,510,0,0,510,0,45300,15,999,99999,99999999,A,00295757,90286,S,01935703,999,5,99999,99999999,+27.9606763,-082.3378275,B,1,99999,99999,99999,9,N,N,08150,S,02402711,05707,3,99999,99999,00870,061,019,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000854,33619 +15084,3,000,20,1,21,1,01,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15085,3,000,20,1,21,1,01,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15086,3,000,20,1,21,1,02,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15087,3,000,20,1,21,1,02,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15088,3,000,20,1,21,1,02,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15089,3,000,20,1,21,1,02,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15090,3,000,20,1,22,1,01,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15091,3,000,20,1,22,1,01,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15092,3,000,20,1,22,1,02,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15093,3,000,20,1,23,1,01,2,1,0,0,2,12,031,013404,2005,2,9999,99999,99999999,9,99999,99999999,127709,0,0,0,0,0,27260,05,999,99999,99999999,C,00293656,91646,S,02583399,300,5,99999,99999999,+30.2489678,-081.7202916,L,1,99999,99999,99999,9,Y,N,35000,A,02404783,03103,3,99999,99999,00480,015,006,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000287,32210 +15094,3,000,20,2,60,1,01,1,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15095,3,000,20,2,60,1,01,1,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15096,3,000,20,2,60,1,01,1,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15097,3,000,20,2,61,1,01,1,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15098,3,000,20,2,22,1,01,2,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15099,3,000,20,2,22,1,01,2,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15100,3,000,20,2,24,1,01,2,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15101,3,000,20,2,24,1,01,2,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15102,3,000,20,2,43,1,01,2,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15103,3,000,21,1,61,1,01,2,1,0,0,2,21,133,950403,2012,2,9999,99999,99999999,9,99999,99999999,628348,0,0,0,0,0,99999,05,999,99999,99999999,A,00516913,93688,S,01937317,999,6,99999,99999999,+37.1790038,-082.8602258,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01000,3,99999,99999,03360,094,029,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,41824 +15104,3,000,25,2,3,1,07,2,2,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15105,3,000,25,2,11,1,01,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15106,3,000,25,2,11,1,01,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15107,3,000,25,2,11,1,07,2,2,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15108,3,000,25,2,16,1,01,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15109,3,000,25,2,16,1,01,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15110,3,000,25,2,16,1,09,2,2,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15111,3,000,25,2,25,1,06,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15112,3,000,25,2,26,1,06,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15113,3,000,26,1,33,1,01,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +15114,3,000,25,1,13,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15115,3,000,25,1,13,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15116,3,000,25,1,13,1,02,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15117,3,000,25,1,14,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15118,3,000,25,1,14,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15119,3,000,25,1,15,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15120,3,000,25,1,16,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15121,3,000,25,1,16,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15122,3,000,25,1,16,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15123,3,000,25,1,16,1,01,2,1,0,0,1,50,007,002602,2004,2,9999,99999,99999999,9,99999,99999999,119029,0,0,0,0,0,15540,00,999,99999,99999999,A,01461760,24175,A,01462091,162,1,99999,99999999,+44.4926480,-073.1024870,L,1,99999,99999,72400,1,N,N,24400,A,02378306,00300,1,99999,99999,00395,C82,CHI,01779802,99999,99999999,9,999,99999,99999999,999999,11755,U,99999,U,500715,05452 +15124,3,000,25,1,17,2,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15125,3,000,25,1,33,1,01,2,1,0,0,2,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15126,3,000,25,2,9,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15127,3,000,25,2,9,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15128,3,000,25,2,9,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15129,3,000,25,2,17,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15130,3,000,25,2,17,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15131,3,000,25,2,17,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15132,3,000,25,2,17,1,01,2,1,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15133,3,000,26,1,4,2,11,2,2,0,0,1,06,057,000401,2005,2,9999,99999,99999999,9,99999,99999999,142289,0,0,0,0,0,46020,01,999,99999,99999999,A,01682927,91140,S,01935119,472,9,99999,99999999,+39.2319748,-121.1916039,L,2,99999,99999,99999,9,N,N,39885,S,02408555,05700,4,01427,26880,99999,001,001,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,95946 +15134,3,000,20,2,60,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15135,3,000,20,2,81,2,06,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15136,3,000,20,2,87,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15137,3,000,20,2,87,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15138,3,000,20,2,87,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15139,3,000,21,1,51,1,02,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15140,3,000,21,1,55,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15141,3,000,21,1,56,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15142,3,000,21,2,24,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15143,3,000,21,2,24,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +15144,3,000,26,1,16,1,01,2,1,0,0,1,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15145,3,000,26,2,18,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15146,3,000,29,2,67,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15147,3,000,29,2,67,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15148,3,000,29,2,87,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15149,3,000,29,2,87,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15150,3,000,30,2,20,1,06,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15151,3,000,31,2,72,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15152,3,000,33,2,8,1,01,2,1,0,0,1,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15153,3,000,33,2,24,1,01,2,1,0,0,2,04,025,001904,1001,1,9999,99999,99999999,9,99999,99999999,18924306,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92193,S,01934959,999,8,99999,99999999,+34.6930473,-112.2294080,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000114,86315 +15154,3,000,20,2,28,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15155,3,000,20,2,28,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15156,3,000,20,2,29,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15157,3,000,20,2,29,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15158,3,000,20,2,29,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15159,3,000,20,2,29,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15160,3,000,20,2,29,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15161,3,000,20,2,29,1,10,2,2,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15162,3,000,20,2,72,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15163,3,000,20,2,72,1,01,2,1,0,0,2,40,147,000500,5007,5,5550,13735,02418810,R,99999,99999999,28467,0,0,0,0,0,12780,01,999,99999,99999999,A,01101861,90208,S,01937643,538,7,99999,99999999,+36.7479947,-095.9189320,L,2,99999,99999,99999,9,Y,N,04450,A,02409792,20300,3,99999,99999,03630,010,029,01102857,99999,99999999,9,665,78702,02631195,999999,05329,U,99999,U,000013,74006 +15164,3,000,20,2,70,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15165,3,000,20,2,70,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15166,3,000,20,2,70,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15167,3,000,20,2,70,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15168,3,000,20,2,73,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15169,3,000,20,2,73,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15170,3,000,20,2,73,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15171,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15172,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15173,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +15174,3,000,21,2,32,1,01,2,1,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15175,3,000,21,2,34,1,10,2,2,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15176,3,000,21,2,34,1,10,2,2,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15177,3,000,21,2,35,1,09,2,2,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15178,3,000,21,2,35,1,09,2,2,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15179,3,000,21,2,36,1,04,2,1,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15180,3,000,21,2,40,1,02,2,1,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15181,3,000,21,2,43,2,06,2,1,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15182,3,000,21,2,44,1,01,2,1,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15183,3,000,21,2,44,1,01,2,1,0,0,2,48,201,555503,3025,3,9999,99999,99999999,9,99999,99999999,227652,0,0,0,0,0,26420,08,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+30.0374510,-095.6077861,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04630,3,99999,99999,42960,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000485,77377 +15184,3,000,22,2,43,2,11,2,2,0,0,2,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15185,3,000,23,1,53,1,01,2,1,0,0,2,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15186,3,000,25,1,4,1,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15187,3,000,25,1,4,1,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15188,3,000,25,1,4,1,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15189,3,000,25,1,6,1,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15190,3,000,25,1,6,1,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15191,3,000,25,1,6,2,06,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15192,3,000,25,1,10,2,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15193,3,000,25,1,10,2,01,2,1,0,0,1,20,055,960600,1010,1,9999,99999,99999999,9,99999,99999999,835014,0,0,0,0,0,23780,01,999,99999,99999999,A,00485326,25350,A,00471608,999,4,99999,99999999,+37.9943689,-100.9160632,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,06390,122,039,00481813,99999,99999999,9,999,99999,99999999,999999,32518,U,99999,U,000200,67846 +15194,3,000,21,2,51,1,01,2,1,0,0,2,19,043,070200,2055,2,9999,99999,99999999,9,99999,99999999,2957855,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0339626,-091.4452404,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52156 +15195,3,000,25,2,19,1,09,2,2,0,0,2,19,043,070200,2055,2,9999,99999,99999999,9,99999,99999999,2957855,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0339626,-091.4452404,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52156 +15196,3,000,20,1,65,1,01,1,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15197,3,000,20,1,48,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15198,3,000,20,1,49,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15199,3,000,20,1,49,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15200,3,000,20,1,57,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15201,3,000,20,1,57,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15202,3,000,20,1,57,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15203,3,000,20,1,85,1,01,2,1,0,0,2,19,043,070200,2056,2,9999,99999,99999999,9,99999,99999999,5679994,0,0,0,0,0,99999,01,999,99999,99999999,A,00465210,92961,G,00468390,999,4,99999,99999999,+43.0370147,-091.4126639,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00400,2,99999,99999,18120,056,028,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,043003,52159 +15204,3,000,20,2,76,2,11,2,2,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15205,3,000,20,2,76,2,11,2,2,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15206,3,000,20,2,92,1,02,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15207,3,000,21,1,34,2,11,2,2,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15208,3,000,21,1,46,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15209,3,000,21,1,46,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15210,3,000,21,1,46,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15211,3,000,21,1,46,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15212,3,000,21,1,46,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15213,3,000,21,1,56,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +15214,3,000,20,1,27,1,01,1,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15215,3,000,20,2,90,1,01,1,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15216,3,000,20,1,23,1,01,2,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15217,3,000,20,1,23,1,01,2,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15218,3,000,20,1,24,1,01,2,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15219,3,000,20,1,48,1,01,2,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15220,3,000,20,1,48,1,08,2,2,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15221,3,000,20,1,48,2,11,2,2,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15222,3,000,20,1,51,1,01,2,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15223,3,000,20,1,53,1,01,2,1,0,0,2,51,001,090600,2044,2,9999,99999,99999999,9,99999,99999999,732868,0,0,0,0,0,99999,02,999,99999,99999999,A,01480091,91946,N,01927278,999,5,99999,99999999,+37.7474752,-075.7778206,L,9,99999,99999,99999,9,N,N,74160,S,02584923,07300,3,99999,99999,00060,100,006,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000601,23417 +15224,3,000,21,2,47,1,01,2,1,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15225,3,000,21,2,53,1,06,2,1,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15226,3,000,21,2,85,1,01,2,1,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15227,3,000,22,2,47,2,11,2,2,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15228,3,000,25,1,1,1,11,2,2,0,0,1,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15229,3,000,25,1,4,1,03,2,1,0,0,1,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15230,3,000,25,1,4,2,03,2,1,0,0,1,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15231,3,000,25,1,35,1,01,2,1,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15232,3,000,25,1,36,1,01,2,1,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15233,3,000,25,1,37,1,01,2,1,0,0,2,12,099,007742,2004,2,9999,99999,99999999,9,99999,99999999,33762,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3972653,-080.1880503,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000592,33496 +15234,3,000,21,2,45,2,06,2,1,0,0,2,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15235,3,000,22,2,26,1,01,2,1,0,0,2,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15236,3,000,24,1,42,1,01,2,1,0,0,2,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15237,3,000,25,1,0,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15238,3,000,25,1,0,2,02,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15239,3,000,25,1,1,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15240,3,000,25,1,1,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15241,3,000,25,1,1,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15242,3,000,25,1,1,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15243,3,000,25,1,1,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +15244,3,000,25,1,14,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15245,3,000,25,1,14,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15246,3,000,25,1,15,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15247,3,000,25,1,15,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15248,3,000,25,1,15,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15249,3,000,25,1,15,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15250,3,000,25,1,15,1,01,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15251,3,000,25,1,16,2,06,2,1,0,0,1,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15252,3,000,25,1,19,1,11,2,2,0,0,2,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15253,3,000,25,1,23,1,07,2,2,0,0,2,06,013,333200,4001,4,9999,99999,99999999,9,99999,99999999,27378,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9723319,-121.9827097,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01313,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94521 +15254,3,000,20,1,39,1,02,2,1,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15255,3,000,20,1,52,2,11,2,2,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15256,3,000,20,1,52,2,11,2,2,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15257,3,000,20,1,55,1,02,2,1,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15258,3,000,20,1,56,1,08,2,2,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15259,3,000,20,1,58,1,02,2,1,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15260,3,000,20,2,25,2,11,2,2,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15261,3,000,20,2,26,2,11,2,2,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15262,3,000,20,2,27,2,11,2,2,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15263,3,000,20,2,30,2,06,2,1,0,0,2,21,047,201303,1008,1,9999,99999,99999999,9,99999,99999999,60101,0,0,0,0,0,17300,01,999,99999,99999999,A,00516870,92596,S,01937195,999,6,99999,99999999,+36.6580158,-087.4052476,L,1,99999,99999,99999,9,N,N,57090,A,02404406,00300,3,99999,99999,01150,009,003,01779786,99999,99999999,9,999,99999,99999999,999999,17317,U,99999,U,00F104,42262 +15264,3,000,25,1,13,2,06,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15265,3,000,25,1,18,1,02,2,1,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15266,3,000,25,1,21,1,09,2,2,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15267,3,000,25,1,21,1,09,2,2,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15268,3,000,25,1,21,1,09,2,2,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15269,3,000,25,1,21,2,06,2,1,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15270,3,000,25,1,22,2,06,2,1,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15271,3,000,25,1,24,2,01,2,1,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15272,3,000,25,1,44,1,01,2,1,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15273,3,000,25,1,49,2,06,2,1,0,0,2,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +15274,3,000,20,1,55,1,02,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15275,3,000,20,2,70,2,02,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15276,3,000,21,2,49,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15277,3,000,21,2,59,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15278,3,000,21,2,59,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15279,3,000,21,2,59,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15280,3,000,22,2,56,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15281,3,000,22,2,57,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15282,3,000,22,2,57,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15283,3,000,22,2,57,1,01,2,1,0,0,2,21,001,970200,1036,1,9999,99999,99999999,9,99999,99999999,1786052,0,0,0,0,0,99999,01,999,99999,99999999,A,00516847,90552,S,01936914,999,6,99999,99999999,+37.1936069,-085.3377605,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00030,051,016,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F101,42728 +15284,3,000,21,2,45,1,01,2,1,0,0,2,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15285,3,000,21,2,45,1,01,2,1,0,0,2,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15286,3,000,21,2,45,1,01,2,1,0,0,2,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15287,3,000,21,2,49,1,01,2,1,0,0,2,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15288,3,000,25,1,1,1,08,2,2,0,0,1,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15289,3,000,25,2,3,1,01,2,1,0,0,1,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15290,3,000,25,2,3,1,01,2,1,0,0,1,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15291,3,000,25,2,4,2,06,2,1,0,0,1,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15292,3,000,25,2,6,1,01,2,1,0,0,1,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15293,3,000,25,2,6,1,01,2,1,0,0,1,04,025,000615,4005,4,9999,99999,99999999,9,99999,99999999,38074,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5950853,-112.3198232,L,1,99999,99999,99999,9,Y,N,57450,A,02412507,02502,4,99999,99999,03870,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000012,86314 +15294,3,000,25,2,9,2,11,2,2,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15295,3,000,25,2,14,2,11,2,2,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15296,3,000,25,2,15,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15297,3,000,25,2,16,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15298,3,000,25,2,16,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15299,3,000,25,2,16,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15300,3,000,25,2,25,2,11,2,2,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15301,3,000,25,2,28,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15302,3,000,25,2,28,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15303,3,000,25,2,31,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +15304,3,000,25,1,13,2,03,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15305,3,000,25,1,13,2,03,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15306,3,000,25,1,13,2,03,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15307,3,000,25,1,13,2,04,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15308,3,000,25,1,13,2,06,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15309,3,000,25,1,13,2,06,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15310,3,000,25,1,13,2,06,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15311,3,000,25,1,13,2,06,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15312,3,000,25,1,13,2,06,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15313,3,000,25,1,13,2,06,2,1,0,0,1,36,005,023703,1003,1,9999,99999,99999999,9,99999,99999999,23185,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8608896,-073.8997265,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04205,1,99999,99999,20580,086,033,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000848,10468 +15314,3,000,21,2,32,2,06,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15315,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15316,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15317,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15318,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15319,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15320,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15321,3,000,21,2,33,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15322,3,000,21,2,51,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15323,3,000,21,2,51,1,01,2,1,0,0,2,06,067,008204,2006,2,9999,99999,99999999,9,99999,99999999,17039,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6723052,-121.2406052,L,1,99999,99999,99999,9,N,N,54092,S,02408995,06712,4,99999,99999,34620,006,001,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95662 +15324,3,000,21,1,41,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15325,3,000,21,1,41,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15326,3,000,21,1,42,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15327,3,000,21,1,42,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15328,3,000,22,1,32,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15329,3,000,25,1,8,1,01,2,1,0,0,1,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15330,3,000,25,1,17,1,01,2,1,0,0,1,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15331,3,000,25,1,17,1,01,2,1,0,0,1,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15332,3,000,25,1,30,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15333,3,000,25,1,30,1,01,2,1,0,0,2,44,003,022201,2004,2,9999,99999,99999999,9,99999,99999999,80509,0,0,0,0,0,39300,02,715,99999,99999999,N,01219778,74300,F,01220058,148,1,99999,99999999,+41.6787163,-071.4601137,L,1,99999,99999,77200,1,Y,Y,74300,A,01220058,00200,1,99999,99999,01110,024,031,01219835,99999,99999999,9,999,99999,99999999,999999,72505,U,99999,U,443531,02886 +15334,3,000,20,2,23,1,07,2,2,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15335,3,000,20,2,29,2,11,2,2,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15336,3,000,20,2,29,2,11,2,2,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15337,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15338,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15339,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15340,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15341,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15342,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15343,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +15344,3,000,21,2,28,1,02,2,1,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15345,3,000,21,2,28,2,11,2,2,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15346,3,000,21,2,29,2,06,2,1,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15347,3,000,21,2,29,2,06,2,1,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15348,3,000,21,2,29,2,06,2,1,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15349,3,000,21,2,30,1,02,2,1,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15350,3,000,21,2,32,2,18,2,2,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15351,3,000,21,2,33,2,11,2,2,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15352,3,000,21,2,33,2,11,2,2,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15353,3,000,21,2,34,1,01,2,1,0,0,2,13,089,021813,1002,1,9999,99999,99999999,9,99999,99999999,84615,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.9024562,-084.2351668,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01502,3,99999,99999,01740,088,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000PF,30340 +15354,3,000,20,1,27,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15355,3,000,20,1,39,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15356,3,000,20,1,45,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15357,3,000,20,1,45,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15358,3,000,20,1,45,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15359,3,000,20,1,45,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15360,3,000,20,1,48,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15361,3,000,20,1,48,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15362,3,000,20,1,48,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15363,3,000,20,1,50,1,01,2,1,0,0,2,47,055,920600,1019,1,9999,99999,99999999,9,99999,99999999,11363989,0,0,0,0,0,99999,07,999,99999,99999999,A,01639746,90246,N,02463921,999,6,99999,99999999,+35.0939077,-087.1581568,L,9,99999,99999,99999,9,9,9,99999,9,99999999,03000,3,99999,99999,01410,070,028,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002853,38460 +15364,3,000,20,1,66,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15365,3,000,20,1,66,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15366,3,000,20,1,66,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15367,3,000,20,1,66,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15368,3,000,20,1,68,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15369,3,000,20,2,64,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15370,3,000,20,2,64,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15371,3,000,20,2,64,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15372,3,000,20,2,64,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15373,3,000,20,2,64,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +15374,3,000,21,2,30,2,11,2,2,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15375,3,000,21,2,31,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15376,3,000,21,2,31,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15377,3,000,21,2,31,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15378,3,000,21,2,32,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15379,3,000,21,2,33,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15380,3,000,21,2,33,1,03,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15381,3,000,21,2,34,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15382,3,000,21,2,46,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15383,3,000,21,2,47,1,01,2,1,0,0,2,40,109,108307,2005,2,9999,99999,99999999,9,99999,99999999,106348,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92426,S,02584401,416,7,99999,99999999,+35.5857240,-097.5572580,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21404,3,99999,99999,22770,099,048,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000123,73120 +15384,3,000,20,1,74,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15385,3,000,20,1,74,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15386,3,000,20,1,74,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15387,3,000,20,1,74,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15388,3,000,20,1,76,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15389,3,000,20,1,77,1,02,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15390,3,000,20,1,78,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15391,3,000,20,1,85,1,04,2,1,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15392,3,000,20,1,85,2,11,2,2,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15393,3,000,20,1,86,2,11,2,2,0,0,2,24,031,700606,3002,3,9999,99999,99999999,9,99999,99999999,1251336,27836,0,0,27836,0,47900,06,999,99999,99999999,A,01712500,90520,N,01929645,548,5,99999,99999999,+39.0958132,-077.2439621,B,1,23224,99999,99999,9,N,N,56875,S,02389581,01004,3,99999,99999,00480,015,015,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,06-004,20878 +15394,3,000,25,1,15,1,02,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15395,3,000,25,1,15,1,02,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15396,3,000,25,1,15,1,02,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15397,3,000,25,1,15,1,02,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15398,3,000,25,1,17,1,01,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15399,3,000,25,1,17,1,01,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15400,3,000,25,1,17,1,01,2,1,0,0,1,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15401,3,000,25,1,18,1,09,2,2,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15402,3,000,25,1,18,1,09,2,2,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15403,3,000,25,1,19,1,01,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +15404,3,000,20,1,54,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15405,3,000,20,1,54,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15406,3,000,20,1,54,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15407,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15408,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15409,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15410,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15411,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15412,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15413,3,000,20,1,67,1,01,2,1,0,0,2,42,003,491101,1016,1,9999,99999,99999999,9,99999,99999999,869967,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,37955,F,01217396,430,2,99999,99999999,+40.3046808,-079.9689788,L,1,99999,99999,99999,9,N,N,37955,A,01217396,01807,1,99999,99999,25590,039,037,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,003070,15025 +15414,3,000,25,1,16,1,04,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15415,3,000,25,1,17,1,01,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15416,3,000,25,1,18,1,01,2,1,0,0,2,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15417,3,000,25,1,26,1,01,2,1,0,0,2,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15418,3,000,25,2,9,1,01,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15419,3,000,25,2,9,1,01,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15420,3,000,25,2,14,1,01,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15421,3,000,25,2,14,1,01,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15422,3,000,25,2,14,1,01,2,1,0,0,1,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15423,3,000,25,2,25,1,01,2,1,0,0,2,26,099,268200,2019,2,9999,99999,99999999,9,99999,99999999,224805,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,15340,A,01626074,220,3,99999,99999999,+42.6491806,-082.8144079,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03001,2,99999,99999,21870,032,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099014,48047 +15424,3,000,20,1,61,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15425,3,000,20,1,61,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15426,3,000,20,1,61,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15427,3,000,20,1,61,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15428,3,000,20,1,61,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15429,3,000,20,2,36,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15430,3,000,20,2,36,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15431,3,000,20,2,37,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15432,3,000,20,2,37,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15433,3,000,20,2,37,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +15434,3,000,25,2,19,1,04,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15435,3,000,25,2,19,1,04,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15436,3,000,25,2,19,1,04,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15437,3,000,25,2,20,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15438,3,000,25,2,20,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15439,3,000,25,2,20,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15440,3,000,25,2,20,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15441,3,000,25,2,20,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15442,3,000,25,2,22,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15443,3,000,25,2,23,1,02,2,1,0,0,2,13,089,021712,1004,1,9999,99999,99999999,9,99999,99999999,234795,0,0,0,0,0,12060,06,999,99999,99999999,A,01687424,93096,S,01936599,122,5,99999,99999999,+33.8770777,-084.2574124,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01503,3,99999,99999,01740,081,040,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0000WI,30341 +15444,3,000,20,2,44,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15445,3,000,20,2,44,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15446,3,000,20,2,44,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15447,3,000,20,2,44,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15448,3,000,20,2,44,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15449,3,000,20,2,46,2,06,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15450,3,000,20,2,46,2,06,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15451,3,000,20,2,51,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15452,3,000,20,2,53,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15453,3,000,20,2,54,1,01,2,1,0,0,2,39,153,532701,4008,4,9999,99999,99999999,9,99999,99999999,521488,0,0,0,0,0,10420,14,999,99999,99999999,A,01074088,45976,F,01087006,184,3,99999,99999999,+41.3253153,-081.5213572,L,1,99999,99999,99999,9,N,N,45976,A,01087006,01201,2,99999,99999,05004,037,027,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,077ANJ,44056 +15454,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15455,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15456,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15457,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15458,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15459,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15460,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15461,3,000,20,1,72,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15462,3,000,20,1,73,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15463,3,000,20,1,73,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +15464,3,000,30,2,3,2,30,2,3,0,0,1,06,111,005908,2005,2,9999,99999,99999999,9,99999,99999999,13293,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1810958,-118.9118336,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15465,3,000,33,1,4,2,11,2,2,0,0,1,06,111,005908,2005,2,9999,99999,99999999,9,99999,99999999,13293,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1810958,-118.9118336,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15466,3,000,33,1,4,2,11,2,2,0,0,1,06,111,005908,2005,2,9999,99999,99999999,9,99999,99999999,13293,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1810958,-118.9118336,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15467,3,000,20,1,28,1,04,1,1,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15468,3,000,20,1,43,1,04,2,1,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15469,3,000,20,2,29,2,08,2,2,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15470,3,000,20,2,49,2,08,2,2,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15471,3,000,21,1,64,1,04,2,1,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15472,3,000,21,2,36,2,09,2,2,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15473,3,000,22,1,20,1,09,2,2,0,0,2,06,111,005908,2006,2,9999,99999,99999999,9,99999,99999999,4171,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,93350,S,01935340,348,9,99999,99999999,+34.1803553,-118.9121898,L,1,99999,99999,99999,9,Y,N,78582,A,02412065,11102,4,99999,99999,09640,044,027,01779778,99999,99999999,9,999,99999,99999999,999999,87490,U,99999,U,,91320 +15474,3,000,20,1,22,1,04,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15475,3,000,20,1,23,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15476,3,000,20,1,23,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15477,3,000,20,1,23,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15478,3,000,20,1,23,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15479,3,000,20,1,23,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15480,3,000,20,1,23,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15481,3,000,20,1,24,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15482,3,000,20,1,24,1,01,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15483,3,000,20,1,24,1,04,1,1,0,0,2,51,770,001100,1040,1,9999,99999,99999999,9,99999,99999999,4736,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2686236,-079.9411584,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,011,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000009,24011 +15484,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15485,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15486,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15487,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15488,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15489,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15490,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15491,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15492,3,000,25,2,11,1,01,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15493,3,000,25,2,11,1,04,2,1,0,0,1,39,017,011300,3014,3,9999,99999,99999999,9,99999,99999999,90604,0,0,0,0,0,17140,08,999,99999,99999999,A,01074021,42672,A,01085811,178,3,99999,99999999,+39.4401149,-084.4176891,L,1,99999,99999,99999,9,N,N,51310,A,02395374,03803,2,99999,99999,00094,053,004,01085497,99999,99999999,9,999,99999,99999999,999999,56926,U,99999,U,009AKK,45050 +15494,3,000,25,1,7,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15495,3,000,25,1,7,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15496,3,000,25,1,7,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15497,3,000,25,1,7,1,09,2,2,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15498,3,000,25,1,8,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15499,3,000,25,1,8,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15500,3,000,25,1,8,2,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15501,3,000,25,1,9,2,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15502,3,000,25,1,11,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15503,3,000,25,1,13,1,01,2,1,0,0,1,06,073,008307,1001,1,9999,99999,99999999,9,99999,99999999,396881,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8463680,-117.2155138,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07312,4,99999,99999,34320,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92122 +15504,3,000,21,2,42,1,04,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15505,3,000,21,2,42,1,04,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15506,3,000,21,2,42,1,04,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15507,3,000,22,2,24,1,01,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15508,3,000,22,2,24,1,01,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15509,3,000,25,1,10,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15510,3,000,25,1,10,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15511,3,000,25,1,10,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15512,3,000,25,1,10,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15513,3,000,25,1,13,1,13,2,2,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +15514,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15515,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15516,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15517,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15518,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15519,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15520,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15521,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15522,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15523,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +15524,3,000,20,2,40,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15525,3,000,20,2,40,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15526,3,000,20,2,40,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15527,3,000,20,2,40,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15528,3,000,20,2,40,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15529,3,000,20,2,42,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15530,3,000,20,2,42,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15531,3,000,20,2,43,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15532,3,000,20,2,43,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15533,3,000,20,2,43,1,02,2,1,0,0,2,24,005,400701,2006,2,9999,99999,99999999,9,99999,99999999,9660,0,0,0,0,0,12580,07,999,99999,99999999,A,01695314,90012,N,01929410,548,5,99999,99999999,+39.2844557,-076.7266576,L,1,99999,99999,99999,9,N,N,14125,S,02389287,00507,3,99999,99999,00120,44B,044,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,01-007,21228 +15534,3,000,21,2,64,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15535,3,000,21,2,64,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15536,3,000,21,2,64,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15537,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15538,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15539,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15540,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15541,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15542,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15543,3,000,21,2,65,1,01,2,1,0,0,2,21,117,065100,1007,1,9999,99999,99999999,9,99999,99999999,223634,0,0,0,0,0,17140,04,999,99999,99999999,A,00516905,90864,S,01936953,178,6,99999,99999999,+39.0591080,-084.5193144,L,1,99999,99999,99999,9,N,N,17848,A,02404138,02400,3,99999,99999,01350,065,023,01779786,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,00A109,41011 +15544,3,000,21,1,28,2,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15545,3,000,21,1,28,2,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15546,3,000,21,1,29,1,08,2,2,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15547,3,000,21,1,44,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15548,3,000,21,1,44,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15549,3,000,21,1,46,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15550,3,000,21,1,49,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15551,3,000,21,1,49,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15552,3,000,21,1,50,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15553,3,000,21,1,51,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +15554,3,000,20,1,30,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15555,3,000,20,1,30,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15556,3,000,20,1,30,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15557,3,000,20,1,30,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15558,3,000,20,1,32,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15559,3,000,20,1,32,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15560,3,000,20,1,34,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15561,3,000,20,1,34,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15562,3,000,20,1,34,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15563,3,000,20,1,34,1,01,2,1,0,0,2,53,053,072409,1004,1,9999,99999,99999999,9,99999,99999999,720734,0,0,0,0,0,42660,06,999,99999,99999999,A,01529159,91232,S,01939515,500,9,99999,99999999,+47.2828803,-122.6329721,L,1,45104,99999,99999,9,N,N,02910,S,02407769,25308,4,99999,99999,06690,026,026,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,026342,98335 +15564,3,000,25,1,1,1,01,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15565,3,000,25,1,3,1,01,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15566,3,000,25,1,3,1,01,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15567,3,000,25,1,3,1,01,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15568,3,000,25,1,15,1,04,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15569,3,000,25,1,15,1,04,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15570,3,000,25,1,15,1,04,2,1,0,0,1,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15571,3,000,25,1,24,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15572,3,000,25,1,24,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15573,3,000,25,1,26,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +15574,3,000,20,1,20,1,07,1,2,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15575,3,000,20,1,43,2,11,1,2,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15576,3,000,20,2,42,1,07,1,2,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15577,3,000,20,1,54,1,07,2,2,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15578,3,000,20,1,64,2,11,2,2,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15579,3,000,20,1,89,1,04,2,1,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15580,3,000,20,2,41,1,04,2,1,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15581,3,000,20,2,43,1,04,2,1,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15582,3,000,20,2,80,1,01,2,1,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15583,3,000,20,2,80,1,01,2,1,0,0,2,20,173,003200,3037,3,9999,99999,99999999,9,99999,99999999,22464,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6615857,-097.3361458,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500750,67211 +15584,3,000,25,2,16,1,01,2,1,0,0,1,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15585,3,000,25,2,16,1,01,2,1,0,0,1,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15586,3,000,25,2,18,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15587,3,000,25,2,18,2,18,2,2,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15588,3,000,25,2,19,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15589,3,000,25,2,19,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15590,3,000,25,2,19,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15591,3,000,25,2,19,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15592,3,000,25,2,21,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15593,3,000,25,2,24,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +15594,3,000,21,2,48,1,02,2,1,0,0,2,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15595,3,000,21,2,48,1,02,2,1,0,0,2,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15596,3,000,21,2,50,2,06,2,1,0,0,2,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15597,3,000,21,2,53,1,01,2,1,0,0,2,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15598,3,000,21,2,63,1,04,2,1,0,0,2,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15599,3,000,25,1,0,1,02,2,1,0,0,1,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15600,3,000,25,1,5,2,06,2,1,0,0,1,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15601,3,000,25,1,5,2,06,2,1,0,0,1,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15602,3,000,25,1,10,1,01,2,1,0,0,1,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15603,3,000,25,1,10,1,01,2,1,0,0,1,24,033,801302,1008,1,9999,99999,99999999,9,99999,99999999,194003,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90432,N,01929638,548,5,99999,99999999,+38.6725505,-077.0188376,L,1,47894,99999,99999,9,N,N,00250,S,02389115,01106,3,99999,99999,00510,026,026,01714934,99999,99999999,9,999,99999,99999999,999999,91261,U,99999,U,05-008,20607 +15604,3,000,22,1,27,1,02,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15605,3,000,22,1,27,1,02,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15606,3,000,22,1,30,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15607,3,000,22,1,30,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15608,3,000,22,1,30,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15609,3,000,22,1,32,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15610,3,000,22,1,32,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15611,3,000,22,1,34,1,02,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15612,3,000,22,1,34,1,02,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15613,3,000,22,1,62,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +15614,3,000,25,1,22,2,01,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15615,3,000,25,1,22,2,01,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15616,3,000,25,1,24,1,04,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15617,3,000,25,1,24,2,03,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15618,3,000,25,1,24,2,03,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15619,3,000,25,1,25,1,04,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15620,3,000,25,1,25,1,04,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15621,3,000,25,1,36,2,01,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15622,3,000,25,1,36,2,01,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15623,3,000,25,1,36,2,06,2,1,0,0,2,06,037,408401,2001,2,9999,99999,99999999,9,99999,99999999,33507,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0203870,-117.9824538,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +15624,3,000,30,1,2,1,01,2,1,0,0,1,42,017,101611,1011,1,9999,99999,99999999,9,99999,99999999,11688,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2079394,-075.1256039,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15625,3,000,30,1,2,1,01,2,1,0,0,1,42,017,101611,1011,1,9999,99999,99999999,9,99999,99999999,11688,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2079394,-075.1256039,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15626,3,000,30,1,2,1,01,2,1,0,0,1,42,017,101611,1011,1,9999,99999,99999999,9,99999,99999999,11688,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2079394,-075.1256039,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15627,3,000,20,1,64,1,11,2,2,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15628,3,000,20,1,78,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15629,3,000,20,1,78,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15630,3,000,20,1,78,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15631,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15632,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15633,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +15634,3,000,22,1,51,1,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15635,3,000,22,1,53,1,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15636,3,000,22,1,53,1,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15637,3,000,22,2,22,2,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15638,3,000,22,2,22,2,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15639,3,000,22,2,23,1,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15640,3,000,22,2,23,1,01,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15641,3,000,22,2,60,1,04,2,1,0,0,2,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15642,3,000,25,1,0,2,25,2,3,0,0,1,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15643,3,000,25,1,0,2,34,2,3,0,0,1,32,003,002821,2010,2,9999,99999,99999999,9,99999,99999999,19317,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0764905,-115.0821740,L,1,99999,99999,99999,9,Y,N,31900,A,02410741,00408,4,99999,99999,00060,018,007,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,007012,89014 +15644,3,000,23,1,59,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15645,3,000,23,1,59,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15646,3,000,23,1,59,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15647,3,000,23,1,59,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15648,3,000,23,1,62,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15649,3,000,23,1,62,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15650,3,000,23,1,62,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15651,3,000,23,1,62,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15652,3,000,23,1,62,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15653,3,000,24,1,26,1,01,2,1,0,0,2,25,025,070600,1000,1,9999,99999,99999999,9,99999,99999999,17404,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3449819,-071.0736235,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00802,1,99999,99999,02790,186,002,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000401,02116 +15654,3,000,25,2,14,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15655,3,000,25,2,14,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15656,3,000,25,2,14,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15657,3,000,25,2,14,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15658,3,000,25,2,14,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15659,3,000,25,2,14,2,01,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15660,3,000,25,2,14,2,01,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15661,3,000,25,2,15,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15662,3,000,25,2,15,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15663,3,000,25,2,15,1,04,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +15664,3,000,25,2,18,1,01,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15665,3,000,25,2,18,1,01,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15666,3,000,25,2,22,1,02,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15667,3,000,25,2,23,1,02,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15668,3,000,25,2,23,1,02,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15669,3,000,25,2,24,1,06,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15670,3,000,25,2,32,1,04,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15671,3,000,25,2,41,1,04,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15672,3,000,25,2,44,1,04,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15673,3,000,29,1,83,1,04,2,1,0,0,2,48,121,021716,1015,1,9999,99999,99999999,9,99999,99999999,7444,0,0,0,0,0,19100,26,999,99999,99999999,A,01383847,92186,S,01938918,206,7,99999,99999999,+33.0520616,-097.0183336,L,1,19124,99999,99999,9,N,N,42508,A,02410829,02002,3,99999,99999,27300,065,012,01779801,99999,99999999,9,999,99999,99999999,999999,23500,U,99999,U,003007,75077 +15674,3,000,20,2,27,1,04,2,1,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15675,3,000,20,2,37,1,13,2,2,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15676,3,000,20,2,46,1,13,2,2,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15677,3,000,20,2,61,1,13,2,2,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15678,3,000,21,1,30,1,13,2,2,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15679,3,000,21,1,31,1,07,2,2,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15680,3,000,21,2,30,1,04,2,1,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15681,3,000,21,2,30,1,04,2,1,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15682,3,000,21,2,30,1,04,2,1,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15683,3,000,21,2,32,1,04,2,1,0,0,2,51,540,000600,1002,1,9999,99999,99999999,9,99999,99999999,59526,0,0,0,0,0,16820,05,999,99999,99999999,F,01789068,90780,F,01789068,999,5,99999,99999999,+38.0274035,-078.5148630,L,1,99999,99999,99999,9,Y,N,14968,A,01789068,54001,3,99999,99999,00780,057,025,01779803,99999,99999999,9,999,99999,99999999,999999,15724,U,99999,U,000303,22903 +15684,3,000,20,2,41,1,01,1,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15685,3,000,20,2,41,1,01,1,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15686,3,000,20,2,43,1,01,1,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15687,3,000,20,1,18,2,06,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15688,3,000,20,1,20,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15689,3,000,20,1,25,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15690,3,000,20,1,25,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15691,3,000,20,1,25,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15692,3,000,20,1,26,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15693,3,000,20,1,34,1,15,2,2,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +15694,3,000,29,1,78,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15695,3,000,29,2,68,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15696,3,000,29,2,69,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15697,3,000,29,2,89,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15698,3,000,30,1,14,1,01,2,1,0,0,1,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15699,3,000,31,2,95,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15700,3,000,33,2,45,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15701,3,000,34,1,0,1,04,2,1,0,0,1,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15702,3,000,34,1,53,1,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15703,3,000,34,1,61,2,01,2,1,0,0,2,04,025,000206,1021,1,9999,99999,99999999,9,99999,99999999,1608532,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.7234226,-112.4593565,L,1,99999,99999,99999,9,N,N,12840,A,02413199,02502,4,99999,99999,00003,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,86323 +15704,3,000,25,2,1,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15705,3,000,25,2,1,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15706,3,000,25,2,1,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15707,3,000,25,2,1,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15708,3,000,25,2,3,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15709,3,000,25,2,3,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15710,3,000,25,2,3,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15711,3,000,25,2,3,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15712,3,000,25,2,3,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15713,3,000,25,2,8,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +15714,3,000,22,2,25,2,13,2,2,0,0,2,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15715,3,000,25,1,0,1,01,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15716,3,000,25,1,0,1,04,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15717,3,000,25,1,2,1,02,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15718,3,000,25,1,2,1,02,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15719,3,000,25,1,3,1,01,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15720,3,000,25,1,3,1,01,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15721,3,000,25,1,3,1,01,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15722,3,000,25,1,3,1,09,2,2,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15723,3,000,25,1,7,2,01,2,1,0,0,1,13,135,050579,1010,1,9999,99999,99999999,9,99999,99999999,56631,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,91704,S,01936354,122,5,99999,99999999,+34.0176097,-083.9706306,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01604,3,99999,99999,02550,103,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000031,30043 +15724,3,000,20,2,21,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15725,3,000,20,2,21,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15726,3,000,20,2,22,1,05,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15727,3,000,20,2,24,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15728,3,000,20,2,24,1,05,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15729,3,000,20,2,26,1,02,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15730,3,000,20,2,26,1,04,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15731,3,000,20,2,28,2,06,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15732,3,000,20,2,30,2,11,2,2,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15733,3,000,20,2,33,2,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +15734,3,000,20,1,62,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15735,3,000,20,1,62,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15736,3,000,20,1,62,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15737,3,000,20,1,62,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15738,3,000,20,1,69,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15739,3,000,20,2,30,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15740,3,000,20,2,32,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15741,3,000,20,2,32,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15742,3,000,20,2,32,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15743,3,000,20,2,58,1,01,1,1,0,0,2,33,003,955402,1002,1,9999,99999,99999999,9,99999,99999999,1966460,1024,0,0,1024,0,99999,01,999,99999,99999999,A,00873175,14660,A,00873570,999,1,99999,99999999,+43.9792781,-071.0886160,B,9,99999,99999,99999,9,N,N,14580,S,02378057,00201,1,99999,99999,02490,102,003,01779794,99999,99999999,9,999,99999,99999999,999999,19811,U,99999,U,CONW01,03813 +15744,3,000,20,2,79,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15745,3,000,20,2,81,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15746,3,000,20,2,83,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15747,3,000,21,1,33,1,04,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15748,3,000,21,1,33,1,04,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15749,3,000,21,1,36,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15750,3,000,21,1,36,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15751,3,000,21,1,41,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15752,3,000,21,1,41,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15753,3,000,21,1,62,1,07,2,2,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +15754,3,000,20,1,50,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15755,3,000,20,1,50,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15756,3,000,20,1,51,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15757,3,000,20,1,53,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15758,3,000,20,1,60,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15759,3,000,20,1,64,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15760,3,000,20,1,64,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15761,3,000,21,1,27,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15762,3,000,21,1,48,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15763,3,000,21,1,75,1,01,2,1,0,0,2,39,097,040600,2036,2,9999,99999,99999999,9,99999,99999999,17256,0,0,0,0,0,18140,15,999,99999,99999999,A,01074061,44674,F,01086545,198,3,99999,99999999,+39.8887421,-083.4423840,L,1,99999,99999,99999,9,N,N,44674,A,01086545,02500,2,99999,99999,04425,074,010,01085497,99999,99999999,9,999,99999,99999999,999999,51121,U,99999,U,049AAC,43140 +15764,3,000,20,2,60,1,01,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15765,3,000,20,2,61,1,01,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15766,3,000,20,2,68,1,01,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15767,3,000,20,2,68,1,01,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15768,3,000,21,2,67,1,02,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15769,3,000,22,1,22,1,01,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15770,3,000,22,1,37,1,02,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15771,3,000,22,1,37,1,02,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15772,3,000,22,1,53,1,07,2,2,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15773,3,000,22,1,68,1,02,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +15774,3,000,27,1,19,1,01,2,1,0,0,2,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15775,3,000,27,1,19,1,01,2,1,0,0,2,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15776,3,000,30,1,9,1,06,2,1,0,0,1,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15777,3,000,34,1,21,1,01,2,1,0,0,2,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15778,3,000,34,1,25,1,01,2,1,0,0,2,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15779,3,000,34,1,25,1,01,2,1,0,0,2,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15780,3,000,34,1,26,1,01,2,1,0,0,2,35,041,000100,1015,1,9999,99999,99999999,9,99999,99999999,17265,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1780499,-103.3270724,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15781,3,000,20,2,55,2,01,1,1,0,0,2,35,041,000100,1016,1,9999,99999,99999999,9,99999,99999999,14574,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1791681,-103.3283988,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15782,3,000,20,2,57,2,01,1,1,0,0,2,35,041,000100,1016,1,9999,99999,99999999,9,99999,99999999,14574,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1791681,-103.3283988,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15783,3,000,20,1,69,1,01,2,1,0,0,2,35,041,000100,1016,1,9999,99999,99999999,9,99999,99999999,14574,0,0,0,0,0,38780,03,999,99999,99999999,A,01702369,92430,S,01937570,188,8,99999,99999999,+34.1791681,-103.3283988,L,2,99999,99999,99999,9,Y,N,59260,A,02411469,00400,4,99999,99999,02100,067,027,00897535,99999,99999999,9,999,99999,99999999,999999,70912,U,99999,U,000012,88130 +15784,3,000,30,1,0,2,06,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15785,3,000,30,1,0,2,06,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15786,3,000,30,1,0,2,11,2,2,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15787,3,000,30,1,2,1,04,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15788,3,000,30,1,2,2,06,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15789,3,000,30,1,4,1,02,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15790,3,000,30,1,7,2,06,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15791,3,000,30,1,7,2,06,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15792,3,000,30,1,7,2,06,2,1,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15793,3,000,30,1,23,2,06,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +15794,3,000,21,1,51,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15795,3,000,21,1,62,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15796,3,000,21,1,62,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15797,3,000,21,1,64,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15798,3,000,21,1,64,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15799,3,000,21,1,64,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15800,3,000,21,1,64,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15801,3,000,21,1,67,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15802,3,000,21,1,67,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15803,3,000,21,1,69,1,01,2,1,0,0,2,29,183,312400,3017,3,9999,99999,99999999,9,99999,99999999,99518,0,0,0,0,0,41180,03,999,99999,99999999,A,00758546,54080,N,00767302,476,4,99999,99999999,+38.7983031,-090.6312681,L,1,99999,99999,99999,9,N,N,65126,A,02396518,01803,2,99999,99999,08370,064,002,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000121,63376 +15804,3,000,20,1,63,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15805,3,000,20,1,63,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15806,3,000,20,1,63,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15807,3,000,20,1,64,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15808,3,000,20,1,65,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15809,3,000,20,1,65,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15810,3,000,20,1,65,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15811,3,000,20,1,65,1,02,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15812,3,000,20,1,70,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15813,3,000,20,1,70,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +15814,3,000,25,1,36,2,06,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15815,3,000,25,1,38,1,02,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15816,3,000,25,1,39,1,02,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15817,3,000,25,1,39,2,06,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15818,3,000,25,1,39,2,06,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15819,3,000,25,1,62,1,02,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15820,3,000,25,1,62,1,02,2,1,0,0,2,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15821,3,000,25,2,8,2,06,2,1,0,0,1,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15822,3,000,25,2,8,2,06,2,1,0,0,1,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15823,3,000,25,2,9,2,01,2,1,0,0,1,06,071,003804,3007,3,9999,99999,99999999,9,99999,99999999,83020,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1190377,-117.3507722,L,1,99999,99999,99999,9,N,N,60466,A,02410931,07117,4,99999,99999,32370,047,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92376 +15824,3,000,34,2,25,2,06,2,1,0,0,2,13,059,130300,2005,2,9999,99999,99999999,9,99999,99999999,452262,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9963145,-083.4211879,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15825,3,000,34,2,25,2,06,2,1,0,0,2,13,059,130300,2005,2,9999,99999,99999999,9,99999,99999999,452262,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9963145,-083.4211879,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15826,3,000,34,2,26,2,06,2,1,0,0,2,13,059,130300,2005,2,9999,99999,99999999,9,99999,99999999,452262,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9963145,-083.4211879,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15827,3,000,20,2,31,2,11,1,2,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15828,3,000,20,1,28,2,11,2,2,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15829,3,000,20,2,47,1,01,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15830,3,000,21,1,61,2,06,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15831,3,000,21,1,77,2,11,2,2,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15832,3,000,22,1,34,2,06,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15833,3,000,22,1,51,2,11,2,2,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +15834,3,000,20,2,69,1,01,1,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15835,3,000,20,2,69,1,01,1,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15836,3,000,20,2,69,1,01,1,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15837,3,000,20,2,84,1,01,1,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15838,3,000,20,1,36,1,01,2,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15839,3,000,20,1,36,1,01,2,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15840,3,000,20,1,39,1,01,2,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15841,3,000,20,1,39,1,01,2,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15842,3,000,20,1,40,1,01,2,1,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15843,3,000,20,1,51,2,11,2,2,0,0,2,23,005,002400,1017,1,9999,99999,99999999,9,99999,99999999,433966,0,0,0,0,0,38860,01,775,99999,99999999,A,00581288,60545,F,00582683,438,1,99999,99999999,+43.6551094,-070.1881212,L,1,99999,99999,76750,1,Y,Y,60545,A,00582683,01000,1,99999,99999,09930,039,027,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,605413,04108 +15844,3,000,25,2,18,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15845,3,000,25,2,23,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15846,3,000,25,2,26,1,01,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15847,3,000,25,2,30,1,01,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15848,3,000,25,2,31,1,01,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15849,3,000,25,2,33,2,01,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15850,3,000,25,2,33,2,01,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15851,3,000,25,2,39,1,01,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15852,3,000,25,2,40,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15853,3,000,25,2,40,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +15854,3,000,25,2,1,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15855,3,000,25,2,1,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15856,3,000,25,2,1,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15857,3,000,25,2,1,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15858,3,000,25,2,4,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15859,3,000,25,2,4,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15860,3,000,25,2,4,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15861,3,000,25,2,4,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15862,3,000,25,2,4,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15863,3,000,25,2,4,1,01,2,1,0,0,1,21,079,970300,3000,3,9999,99999,99999999,9,99999,99999999,285019,0,0,0,0,0,99999,02,999,99999,99999999,A,00516886,91976,S,01937096,999,6,99999,99999999,+37.6182085,-084.5868275,L,9,99999,99999,99999,9,N,N,43840,A,02404880,02100,3,99999,99999,02160,071,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B101,40444 +15864,3,000,20,2,58,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15865,3,000,20,2,58,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15866,3,000,20,2,58,1,02,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15867,3,000,20,2,59,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15868,3,000,20,2,59,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15869,3,000,20,2,60,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15870,3,000,20,2,60,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15871,3,000,20,2,61,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15872,3,000,20,2,65,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15873,3,000,20,2,65,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +15874,3,000,25,1,19,1,02,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15875,3,000,25,1,19,1,02,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15876,3,000,25,1,19,1,12,2,2,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15877,3,000,25,1,19,2,01,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15878,3,000,25,1,19,2,01,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15879,3,000,25,1,19,2,02,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15880,3,000,25,1,19,2,06,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15881,3,000,25,1,19,2,06,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15882,3,000,25,1,19,2,06,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15883,3,000,25,1,19,2,06,2,1,0,0,2,48,201,542305,1003,1,9999,99999,99999999,9,99999,99999999,1017298,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8238055,-095.7348990,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04634,3,99999,99999,25170,132,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000813,77449 +15884,3,000,25,1,3,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15885,3,000,25,1,3,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15886,3,000,25,1,3,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15887,3,000,25,1,32,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15888,3,000,25,1,45,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15889,3,000,25,2,1,2,11,2,2,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15890,3,000,25,2,8,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15891,3,000,25,2,8,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15892,3,000,25,2,8,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15893,3,000,25,2,8,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +15894,3,000,20,2,32,2,11,2,2,0,0,2,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15895,3,000,20,2,44,1,02,2,1,0,0,2,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15896,3,000,21,2,42,2,06,2,1,0,0,2,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15897,3,000,21,2,42,2,06,2,1,0,0,2,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15898,3,000,21,2,42,2,06,2,1,0,0,2,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15899,3,000,25,1,4,2,06,2,1,0,0,1,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15900,3,000,25,1,4,2,06,2,1,0,0,1,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15901,3,000,25,1,4,2,06,2,1,0,0,1,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15902,3,000,25,1,4,2,06,2,1,0,0,1,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15903,3,000,25,1,10,2,11,2,2,0,0,1,48,201,230300,1018,1,9999,99999,99999999,9,99999,99999999,31259,0,0,0,0,0,26420,18,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8376337,-095.3074807,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04607,3,99999,99999,23640,141,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000583,77016 +15904,3,000,21,1,32,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15905,3,000,21,1,32,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15906,3,000,21,1,43,2,11,2,2,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15907,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15908,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15909,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15910,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15911,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15912,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15913,3,000,21,1,47,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +15914,3,000,25,2,13,2,44,2,4,0,0,1,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15915,3,000,25,2,14,2,06,2,1,0,0,1,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15916,3,000,27,2,28,2,06,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15917,3,000,27,2,29,2,06,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15918,3,000,27,2,29,2,06,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15919,3,000,27,2,29,2,06,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15920,3,000,34,1,25,2,06,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15921,3,000,36,1,26,1,01,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15922,3,000,36,2,18,1,01,2,1,0,0,2,12,127,091034,1037,1,9999,99999,99999999,9,99999,99999999,27978,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9078404,-081.1805998,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000085,32738 +15923,3,000,20,2,71,2,11,1,2,0,0,2,12,127,091033,2025,2,9999,99999,99999999,9,99999,99999999,25792,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90845,S,01935746,422,5,99999,99999999,+28.9205686,-081.2456782,L,1,99999,99999,99999,9,Y,N,17200,A,02404213,12704,3,99999,99999,01920,027,014,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000078,32725 +15924,3,000,20,1,37,1,01,1,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15925,3,000,20,1,65,1,01,1,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15926,3,000,20,1,71,1,01,1,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15927,3,000,20,1,72,1,01,1,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15928,3,000,20,2,66,1,01,1,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15929,3,000,20,2,73,1,01,1,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15930,3,000,20,1,64,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15931,3,000,20,1,64,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15932,3,000,20,1,67,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15933,3,000,20,2,56,1,04,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +15934,3,000,20,2,57,1,01,2,1,0,0,2,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15935,3,000,20,2,57,1,01,2,1,0,0,2,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15936,3,000,20,2,57,1,01,2,1,0,0,2,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15937,3,000,20,2,59,1,01,2,1,0,0,2,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15938,3,000,20,2,59,1,01,2,1,0,0,2,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15939,3,000,20,2,59,1,01,2,1,0,0,2,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15940,3,000,25,1,13,1,01,2,1,0,0,1,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15941,3,000,26,1,5,1,01,2,1,0,0,1,19,193,003200,4004,4,9999,99999,99999999,9,99999,99999999,7530439,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5541716,-096.0565101,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15942,3,000,20,1,23,1,01,1,1,0,0,2,19,193,003200,4005,4,9999,99999,99999999,9,99999,99999999,1264522,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5539603,-096.0905511,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15943,3,000,20,1,40,1,01,2,1,0,0,2,19,193,003200,4005,4,9999,99999,99999999,9,99999,99999999,1264522,0,0,0,0,0,43580,04,999,99999,99999999,A,00465285,90078,G,00467398,999,4,99999,99999999,+42.5539603,-096.0905511,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02000,2,99999,99999,31950,005,003,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,193003,51028 +15944,3,000,25,2,25,1,02,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15945,3,000,25,2,25,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15946,3,000,25,2,26,2,01,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15947,3,000,25,2,27,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15948,3,000,25,2,27,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15949,3,000,25,2,27,2,01,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15950,3,000,25,2,27,2,01,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15951,3,000,25,2,32,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15952,3,000,25,2,32,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15953,3,000,25,2,32,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +15954,3,000,25,1,11,2,08,2,2,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15955,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15956,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15957,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15958,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15959,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15960,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15961,3,000,25,1,15,1,01,2,1,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15962,3,000,25,1,16,2,11,2,2,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15963,3,000,25,1,16,2,11,2,2,0,0,1,36,029,014207,4008,4,9999,99999,99999999,9,99999,99999999,508476,0,0,0,0,0,15380,27,999,99999,99999999,A,00974113,41146,A,00979130,160,2,99999,99999999,+42.8774505,-078.6919678,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01203,1,99999,99999,16680,143,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000659,14043 +15964,3,000,21,1,43,2,06,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15965,3,000,21,1,45,2,06,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15966,3,000,21,1,51,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15967,3,000,21,1,52,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15968,3,000,21,1,66,2,06,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15969,3,000,21,1,66,2,06,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15970,3,000,21,1,73,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15971,3,000,21,1,73,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15972,3,000,21,1,79,2,06,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15973,3,000,21,1,80,1,04,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +15974,3,000,25,2,8,1,02,2,1,0,0,1,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15975,3,000,25,2,8,1,02,2,1,0,0,1,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15976,3,000,25,2,8,1,02,2,1,0,0,1,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15977,3,000,25,2,15,1,02,2,1,0,0,1,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15978,3,000,25,2,23,1,02,2,1,0,0,2,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15979,3,000,25,2,23,1,02,2,1,0,0,2,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15980,3,000,25,2,23,1,02,2,1,0,0,2,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15981,3,000,25,2,24,1,02,2,1,0,0,2,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15982,3,000,27,2,9,1,02,2,1,0,0,1,45,027,960100,2023,2,9999,99999,99999999,9,99999,99999999,34983,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8797523,-080.0127395,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15983,3,000,20,1,23,1,02,1,1,0,0,2,45,027,960100,2024,2,9999,99999,99999999,9,99999,99999999,37565,0,0,0,0,0,44940,06,999,99999,99999999,A,01247990,93484,S,01938449,999,5,99999,99999999,+33.8808254,-080.0126774,L,1,99999,99999,99999,9,N,N,72745,A,02406766,02400,3,99999,99999,01800,064,036,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000023,29162 +15984,3,000,20,1,64,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15985,3,000,20,2,33,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15986,3,000,20,2,50,1,15,2,2,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15987,3,000,20,2,51,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15988,3,000,20,2,51,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15989,3,000,20,2,51,1,15,2,2,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15990,3,000,20,2,70,1,02,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15991,3,000,20,2,76,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15992,3,000,20,2,78,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15993,3,000,21,1,38,1,02,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +15994,3,000,21,2,56,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +15995,3,000,21,2,56,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +15996,3,000,21,2,56,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +15997,3,000,21,2,56,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +15998,3,000,21,2,56,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +15999,3,000,21,2,57,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +16000,3,000,21,2,59,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +16001,3,000,21,2,59,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +16002,3,000,21,2,67,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +16003,3,000,21,2,67,1,01,2,1,0,0,2,41,017,000403,1036,1,9999,99999,99999999,9,99999,99999999,672510,0,0,0,0,0,13460,02,999,99999,99999999,A,01155130,92958,S,01938122,140,9,99999,99999999,+43.8856896,-121.4318668,L,1,99999,99999,99999,9,N,N,71250,S,02584426,01702,4,99999,99999,01980,053,027,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97707 +16004,3,000,30,2,10,2,01,2,1,0,0,1,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16005,3,000,30,2,18,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16006,3,000,30,2,20,2,06,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16007,3,000,30,2,20,2,06,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16008,3,000,31,1,77,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16009,3,000,32,1,25,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16010,3,000,32,2,23,2,06,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16011,3,000,32,2,33,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16012,3,000,33,1,4,1,04,2,1,0,0,1,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16013,3,000,33,1,22,2,06,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +16014,3,000,20,1,49,1,01,1,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16015,3,000,20,1,49,1,01,1,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16016,3,000,20,1,49,1,01,1,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16017,3,000,20,1,55,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16018,3,000,20,1,55,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16019,3,000,20,1,55,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16020,3,000,20,1,55,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16021,3,000,20,1,57,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16022,3,000,20,1,57,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16023,3,000,20,2,25,1,01,2,1,0,0,2,42,133,022100,2008,2,9999,99999,99999999,9,99999,99999999,7130,0,0,0,0,0,49620,11,999,99999,99999999,A,01209193,32448,F,01215748,276,2,99999,99999999,+39.8004719,-076.9815747,L,1,99999,99999,99999,9,Y,N,32448,A,01215748,03603,1,99999,99999,11450,169,033,01779798,99999,99999999,9,999,99999,99999999,999999,36784,U,99999,U,000330,17331 +16024,3,000,20,1,43,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16025,3,000,20,1,43,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16026,3,000,20,1,43,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16027,3,000,20,1,44,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16028,3,000,20,1,62,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16029,3,000,20,1,62,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16030,3,000,20,1,62,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16031,3,000,20,1,63,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16032,3,000,20,1,63,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16033,3,000,20,1,63,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +16034,3,000,20,1,55,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16035,3,000,20,1,55,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16036,3,000,20,1,55,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16037,3,000,20,1,57,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16038,3,000,20,2,26,2,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16039,3,000,20,2,29,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16040,3,000,20,2,29,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16041,3,000,20,2,29,1,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16042,3,000,20,2,30,2,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16043,3,000,20,2,31,2,01,2,1,0,0,2,30,111,000800,3025,3,9999,99999,99999999,9,99999,99999999,48557,0,0,0,0,0,13740,00,999,99999,99999999,A,01719558,90315,S,01940572,999,8,99999,99999999,+45.8168794,-108.3991693,L,1,99999,99999,99999,9,N,N,44200,S,02408626,00700,4,99999,99999,16950,056,028,00767982,99999,99999999,9,999,99999,99999999,999999,07705,U,99999,U,0056.2,59101 +16044,3,000,25,2,11,2,11,2,2,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16045,3,000,25,2,13,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16046,3,000,25,2,13,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16047,3,000,25,2,13,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16048,3,000,26,2,17,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16049,3,000,30,1,3,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16050,3,000,30,2,2,2,11,2,2,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16051,3,000,30,2,16,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16052,3,000,30,2,16,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16053,3,000,34,1,16,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +16054,3,000,25,2,44,1,01,2,1,0,0,2,18,097,354400,2017,2,9999,99999,99999999,9,99999,99999999,24992,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7687983,-086.1403918,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000590,46202 +16055,3,000,27,2,28,1,02,2,1,0,0,2,18,097,354400,2017,2,9999,99999,99999999,9,99999,99999999,24992,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7687983,-086.1403918,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000590,46202 +16056,3,000,33,1,21,1,01,2,1,0,0,2,18,097,354400,2017,2,9999,99999,99999999,9,99999,99999999,24992,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7687983,-086.1403918,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000590,46202 +16057,3,000,20,1,63,1,12,1,2,0,0,2,18,097,354400,2018,2,9999,99999,99999999,9,99999,99999999,14278,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7688298,-086.1418160,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000590,46202 +16058,3,000,30,2,4,1,11,2,2,0,0,1,18,097,354400,2018,2,9999,99999,99999999,9,99999,99999999,14278,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7688298,-086.1418160,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000590,46202 +16059,3,000,34,1,19,1,02,2,1,0,0,2,18,097,354400,2018,2,9999,99999,99999999,9,99999,99999999,14278,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7688298,-086.1418160,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000590,46202 +16060,3,000,20,1,23,1,02,1,1,0,0,2,18,097,354400,2020,2,9999,99999,99999999,9,99999,99999999,30376,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7675097,-086.1393665,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000510,46202 +16061,3,000,20,1,24,1,01,1,1,0,0,2,18,097,354400,2020,2,9999,99999,99999999,9,99999,99999999,30376,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7675097,-086.1393665,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000510,46202 +16062,3,000,20,1,52,1,08,1,2,0,0,2,18,097,354400,2020,2,9999,99999,99999999,9,99999,99999999,30376,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7675097,-086.1393665,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000510,46202 +16063,3,000,20,2,26,1,01,1,1,0,0,2,18,097,354400,2020,2,9999,99999,99999999,9,99999,99999999,30376,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,11512,A,00453186,294,3,99999,99999999,+39.7675097,-086.1393665,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02405,2,99999,99999,04770,100,034,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,000510,46202 +16064,3,000,21,2,37,1,01,2,1,0,0,2,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16065,3,000,21,2,38,1,01,2,1,0,0,2,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16066,3,000,21,2,39,1,01,2,1,0,0,2,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16067,3,000,25,1,2,2,01,2,1,0,0,1,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16068,3,000,25,1,2,2,01,2,1,0,0,1,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16069,3,000,25,1,8,1,01,2,1,0,0,1,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16070,3,000,25,1,8,1,01,2,1,0,0,1,41,047,001000,3043,3,9999,99999,99999999,9,99999,99999999,7926,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9048157,-122.9897407,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16071,3,000,20,1,31,1,09,1,2,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16072,3,000,20,1,43,2,01,1,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16073,3,000,20,1,41,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +16074,3,000,27,2,13,1,01,2,1,0,0,1,36,037,950800,3010,3,9999,99999,99999999,9,99999,99999999,17286,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0066628,-078.1803073,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16075,3,000,27,2,13,1,01,2,1,0,0,1,36,037,950800,3010,3,9999,99999,99999999,9,99999,99999999,17286,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0066628,-078.1803073,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16076,3,000,30,1,18,2,01,2,1,0,0,2,36,037,950800,3010,3,9999,99999,99999999,9,99999,99999999,17286,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0066628,-078.1803073,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16077,3,000,30,2,15,1,01,2,1,0,0,1,36,037,950800,3010,3,9999,99999,99999999,9,99999,99999999,17286,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0066628,-078.1803073,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16078,3,000,20,1,24,2,01,1,1,0,0,2,36,037,950800,3011,3,9999,99999,99999999,9,99999,99999999,37140,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0057210,-078.1791348,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16079,3,000,20,1,24,2,01,1,1,0,0,2,36,037,950800,3011,3,9999,99999,99999999,9,99999,99999999,37140,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0057210,-078.1791348,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16080,3,000,20,1,40,2,01,1,1,0,0,2,36,037,950800,3011,3,9999,99999,99999999,9,99999,99999999,37140,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0057210,-078.1791348,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16081,3,000,20,1,45,1,01,1,1,0,0,2,36,037,950800,3011,3,9999,99999,99999999,9,99999,99999999,37140,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0057210,-078.1791348,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16082,3,000,20,1,45,1,01,1,1,0,0,2,36,037,950800,3011,3,9999,99999,99999999,9,99999,99999999,37140,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0057210,-078.1791348,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16083,3,000,20,1,47,1,01,1,1,0,0,2,36,037,950800,3011,3,9999,99999,99999999,9,99999,99999999,37140,0,0,0,0,0,12860,27,999,99999,99999999,A,00974117,04715,F,00978713,464,2,99999,99999999,+43.0057210,-078.1791348,L,2,99999,99999,99999,9,Y,N,04715,A,00978713,01000,1,99999,99999,03990,139,061,01779796,99999,99999999,9,999,99999,99999999,999999,05491,U,99999,U,000014,14020 +16084,3,000,21,2,60,2,11,2,2,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16085,3,000,21,2,60,2,11,2,2,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16086,3,000,21,2,71,1,04,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16087,3,000,21,2,71,1,04,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16088,3,000,22,1,25,2,06,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16089,3,000,22,1,25,2,06,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16090,3,000,22,1,28,2,06,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16091,3,000,22,1,41,2,06,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16092,3,000,22,1,44,2,06,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16093,3,000,22,1,46,2,06,2,1,0,0,2,06,037,406103,4014,4,9999,99999,99999999,9,99999,99999999,32544,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0822305,-117.8857117,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91723 +16094,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16095,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16096,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16097,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16098,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16099,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16100,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16101,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16102,5,501,38,1,20,1,04,0,1,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16103,5,501,38,1,20,1,07,0,2,2,5,2,36,055,013103,2008,2,9999,99999,99999999,9,99999,99999999,931785,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,34099,A,00979063,464,2,99999,99999999,+43.0840875,-077.6723301,L,1,99999,99999,99999,9,N,N,63014,S,02806944,00906,1,99999,99999,25170,138,059,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000242,14623 +16104,3,000,34,2,24,2,06,2,1,0,0,2,06,037,222100,1000,1,9999,99999,99999999,9,99999,99999999,20110,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282203,-118.2964383,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16105,3,000,34,2,24,2,06,2,1,0,0,2,06,037,222100,1000,1,9999,99999,99999999,9,99999,99999999,20110,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282203,-118.2964383,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16106,3,000,34,2,24,2,06,2,1,0,0,2,06,037,222100,1000,1,9999,99999,99999999,9,99999,99999999,20110,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282203,-118.2964383,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16107,3,000,36,1,22,1,06,2,1,0,0,2,06,037,222100,1000,1,9999,99999,99999999,9,99999,99999999,20110,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282203,-118.2964383,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16108,3,000,36,2,68,2,01,2,1,0,0,2,06,037,222100,1000,1,9999,99999,99999999,9,99999,99999999,20110,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282203,-118.2964383,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16109,3,000,20,1,30,1,02,1,1,0,0,2,06,037,222100,1001,1,9999,99999,99999999,9,99999,99999999,19997,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282195,-118.2975186,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16110,3,000,20,1,30,1,02,1,1,0,0,2,06,037,222100,1001,1,9999,99999,99999999,9,99999,99999999,19997,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282195,-118.2975186,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16111,3,000,20,1,33,1,02,1,1,0,0,2,06,037,222100,1001,1,9999,99999,99999999,9,99999,99999999,19997,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282195,-118.2975186,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16112,3,000,20,1,33,1,02,1,1,0,0,2,06,037,222100,1001,1,9999,99999,99999999,9,99999,99999999,19997,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282195,-118.2975186,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16113,3,000,20,1,33,1,02,1,1,0,0,2,06,037,222100,1001,1,9999,99999,99999999,9,99999,99999999,19997,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0282195,-118.2975186,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03746,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90007 +16114,3,000,25,2,17,1,01,2,1,0,0,1,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16115,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16116,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16117,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16118,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16119,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16120,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16121,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16122,3,000,25,2,18,1,01,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16123,3,000,25,2,18,1,04,2,1,0,0,2,25,017,385101,1006,1,9999,99999,99999999,9,99999,99999999,204113,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,02130,A,00619394,148,1,99999,99999999,+42.2520439,-071.4823552,L,1,15764,73104,71650,1,9,9,99999,9,99999999,00606,1,99999,99999,02100,124,015,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000080,01721 +16124,3,000,34,2,48,1,01,2,1,0,0,2,26,147,622000,3007,3,9999,99999,99999999,9,99999,99999999,12768,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762316,-082.4472819,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16125,3,000,20,1,54,1,01,1,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16126,3,000,20,1,56,1,01,1,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16127,3,000,20,1,56,1,01,1,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16128,3,000,20,2,76,1,06,1,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16129,3,000,20,1,55,1,01,2,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16130,3,000,20,1,55,1,01,2,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16131,3,000,20,1,55,1,01,2,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16132,3,000,20,1,57,1,01,2,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16133,3,000,20,1,59,1,01,2,1,0,0,2,26,147,622000,3008,3,9999,99999,99999999,9,99999,99999999,14065,0,0,0,0,0,19820,10,999,99999,99999999,A,01625033,65820,F,01626932,220,3,99999,99999999,+42.9762587,-082.4456307,L,1,47664,99999,99999,9,N,N,65820,A,01626932,03100,2,99999,99999,28830,083,025,01779789,99999,99999999,9,999,99999,99999999,999999,71155,U,99999,U,147053,48060 +16134,3,000,22,2,57,1,01,2,1,0,0,2,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16135,3,000,24,2,52,1,01,2,1,0,0,2,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16136,3,000,25,1,3,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16137,3,000,25,2,0,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16138,3,000,25,2,5,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16139,3,000,25,2,11,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16140,3,000,25,2,11,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16141,3,000,25,2,13,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16142,3,000,25,2,16,1,01,2,1,0,0,1,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16143,3,000,25,2,18,1,07,2,2,0,0,2,39,149,971800,3018,3,9999,99999,99999999,9,99999,99999999,13555,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2917385,-084.1655056,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAN,45365 +16144,3,000,21,2,56,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16145,3,000,21,2,56,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16146,3,000,21,2,57,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16147,3,000,21,2,58,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16148,3,000,21,2,58,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16149,3,000,21,2,58,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16150,3,000,21,2,58,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16151,3,000,21,2,63,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16152,3,000,21,2,63,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16153,3,000,21,2,65,1,01,2,1,0,0,2,12,099,007735,1015,1,9999,99999,99999999,9,99999,99999999,129182,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,93276,S,01935942,370,5,99999,99999999,+26.3478621,-080.2375475,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09909,3,99999,99999,01500,081,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000606,33428 +16154,3,000,20,2,69,1,01,2,1,0,0,2,31,089,974300,3012,3,9999,99999,99999999,9,99999,99999999,36406,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4656914,-098.6673924,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16155,3,000,20,2,69,1,01,2,1,0,0,2,31,089,974300,3012,3,9999,99999,99999999,9,99999,99999999,36406,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4656914,-098.6673924,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16156,3,000,25,2,1,1,01,2,1,0,0,1,31,089,974300,3012,3,9999,99999,99999999,9,99999,99999999,36406,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4656914,-098.6673924,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16157,3,000,25,2,1,1,01,2,1,0,0,1,31,089,974300,3012,3,9999,99999,99999999,9,99999,99999999,36406,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4656914,-098.6673924,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16158,3,000,25,2,1,1,01,2,1,0,0,1,31,089,974300,3012,3,9999,99999,99999999,9,99999,99999999,36406,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4656914,-098.6673924,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16159,3,000,20,1,50,1,01,1,1,0,0,2,31,089,974300,3020,3,9999,99999,99999999,9,99999,99999999,739404,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4626234,-098.7055250,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16160,3,000,20,1,51,1,01,1,1,0,0,2,31,089,974300,3020,3,9999,99999,99999999,9,99999,99999999,739404,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4626234,-098.7055250,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16161,3,000,20,1,51,1,01,1,1,0,0,2,31,089,974300,3020,3,9999,99999,99999999,9,99999,99999999,739404,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4626234,-098.7055250,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16162,3,000,20,1,51,1,01,1,1,0,0,2,31,089,974300,3020,3,9999,99999,99999999,9,99999,99999999,739404,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4626234,-098.7055250,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16163,3,000,20,1,61,1,01,1,1,0,0,2,31,089,974300,3020,3,9999,99999,99999999,9,99999,99999999,739404,0,0,0,0,0,99999,03,999,99999,99999999,A,00835866,19980,A,00838041,999,4,99999,99999999,+42.4626234,-098.7055250,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,74850,999,040,01779792,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00008P,68763 +16164,3,000,20,2,51,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16165,3,000,20,2,51,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16166,3,000,20,2,60,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16167,3,000,20,2,60,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16168,3,000,20,2,60,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16169,3,000,21,1,47,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16170,3,000,21,1,47,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16171,3,000,21,1,47,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16172,3,000,21,1,53,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16173,3,000,21,1,53,1,01,2,1,0,0,2,51,141,030101,2064,2,9999,99999,99999999,9,99999,99999999,3469149,0,0,0,0,0,99999,09,999,99999,99999999,A,01497999,95735,N,01927502,999,5,99999,99999999,+36.7791252,-080.2076721,L,9,99999,99999,99999,9,9,9,99999,9,99999999,14300,3,99999,99999,02880,009,020,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000502,24171 +16174,3,000,20,1,40,1,04,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16175,3,000,20,1,41,1,01,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16176,3,000,20,1,42,1,01,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16177,3,000,20,1,42,1,01,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16178,3,000,20,1,42,1,04,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16179,3,000,20,1,43,1,01,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16180,3,000,20,1,43,1,01,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16181,3,000,20,1,43,1,01,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16182,3,000,20,1,43,1,04,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16183,3,000,20,1,44,1,04,1,1,0,0,2,17,031,807300,1029,1,9999,99999,99999999,9,99999,99999999,15610,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0306076,-087.7517850,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,36480,28530,99999,016,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820016,60077 +16184,3,000,20,2,22,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16185,3,000,20,2,22,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16186,3,000,20,2,22,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16187,3,000,20,2,23,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16188,3,000,20,2,23,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16189,3,000,20,2,23,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16190,3,000,20,2,24,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16191,3,000,20,2,24,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16192,3,000,20,2,24,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16193,3,000,20,2,42,2,06,2,1,0,0,2,26,081,004000,1008,1,9999,99999,99999999,9,99999,99999999,34574,0,0,0,0,0,24340,03,999,99999,99999999,A,01622983,34000,F,01626373,266,3,99999,99999999,+42.9226709,-085.6688867,L,1,99999,99999,99999,9,Y,N,34000,A,01626373,01002,2,99999,99999,16440,075,029,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081085,49507 +16194,3,000,21,1,54,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16195,3,000,21,1,54,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16196,3,000,21,1,54,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16197,3,000,21,1,54,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16198,3,000,21,2,20,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16199,3,000,21,2,20,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16200,3,000,21,2,29,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16201,3,000,21,2,29,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16202,3,000,21,2,36,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16203,3,000,21,2,36,1,01,2,1,0,0,2,55,127,001504,3009,3,9999,99999,99999999,9,99999,99999999,211892,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,41450,F,01583511,376,3,99999,99999999,+42.5973084,-088.4496169,L,2,99999,99999,99999,9,N,N,41450,A,01583511,02400,2,07620,07650,99999,032,011,01779806,99999,99999999,9,999,99999,99999999,999999,46693,U,99999,U,006210,53147 +16204,3,000,20,1,38,2,01,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16205,3,000,20,1,40,2,01,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16206,3,000,20,1,40,2,15,2,2,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16207,3,000,20,1,49,1,08,2,2,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16208,3,000,20,1,51,1,02,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16209,3,000,20,1,53,1,02,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16210,3,000,20,1,53,2,02,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16211,3,000,20,1,54,2,02,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16212,3,000,20,1,54,2,02,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16213,3,000,20,1,54,2,06,2,1,0,0,2,12,095,013300,4003,4,9999,99999,99999999,9,99999,99999999,28174,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.5253090,-081.3152593,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09505,3,99999,99999,01440,047,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000305,32812 +16214,3,000,20,2,31,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16215,3,000,20,2,31,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16216,3,000,20,2,34,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16217,3,000,20,2,34,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16218,3,000,20,2,34,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16219,3,000,20,2,42,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16220,3,000,20,2,43,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16221,3,000,20,2,56,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16222,3,000,20,2,56,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16223,3,000,20,2,56,1,01,2,1,0,0,2,42,109,070200,1047,1,9999,99999,99999999,9,99999,99999999,3430892,1150,0,0,1150,0,42780,12,999,99999,99999999,A,01213686,37448,A,01217032,146,2,99999,99999999,+40.8657606,-076.9172598,B,2,99999,99999,99999,9,9,9,99999,9,99999999,01100,1,99999,99999,21120,085,027,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000090,17870 +16224,3,000,20,1,65,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16225,3,000,20,1,66,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16226,3,000,20,1,66,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16227,3,000,20,1,66,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16228,3,000,20,1,69,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16229,3,000,20,1,69,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16230,3,000,20,1,69,1,01,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16231,3,000,20,1,71,1,02,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16232,3,000,20,1,73,1,02,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16233,3,000,20,1,73,1,02,2,1,0,0,2,29,095,014128,4004,4,9999,99999,99999999,9,99999,99999999,105600,0,0,0,0,0,28140,05,999,99999,99999999,A,00758502,68438,N,00766804,312,4,99999,99999999,+39.0210041,-094.2643363,L,1,99999,99999,99999,9,N,N,06652,A,02394206,01103,2,99999,99999,05310,031,008,01779791,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,000587,64014 +16234,3,000,25,2,11,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16235,3,000,25,2,11,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16236,3,000,25,2,12,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16237,3,000,25,2,12,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16238,3,000,25,2,12,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16239,3,000,25,2,12,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16240,3,000,25,2,12,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16241,3,000,25,2,16,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16242,3,000,25,2,16,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16243,3,000,25,2,16,1,01,2,1,0,0,1,49,049,010130,1000,1,9999,99999,99999999,9,99999,99999999,300972,0,0,0,0,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3707315,-111.8621345,L,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0023,84043 +16244,3,000,21,1,58,1,08,2,2,0,0,2,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16245,3,000,21,1,71,1,08,2,2,0,0,2,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16246,3,000,25,1,5,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16247,3,000,25,1,5,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16248,3,000,25,1,10,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16249,3,000,25,1,10,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16250,3,000,25,1,10,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16251,3,000,25,2,9,1,08,2,2,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16252,3,000,26,1,12,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16253,3,000,27,1,14,1,01,2,1,0,0,1,01,117,030900,3012,3,9999,99999,99999999,9,99999,99999999,643969,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,90558,S,00165949,142,6,99999,99999999,+33.5030737,-086.5231441,L,1,99999,99999,99999,9,N,N,21890,S,02582671,01501,3,99999,99999,03030,045,015,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,35094 +16254,3,000,25,1,57,1,02,2,1,0,0,2,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16255,3,000,25,2,0,1,02,2,1,0,0,1,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16256,3,000,25,2,0,1,02,2,1,0,0,1,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16257,3,000,25,2,6,1,08,2,2,0,0,1,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16258,3,000,25,2,9,1,02,2,1,0,0,1,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16259,3,000,25,2,11,1,02,2,1,0,0,1,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16260,3,000,25,2,14,1,01,2,1,0,0,1,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16261,3,000,25,2,18,1,02,2,1,0,0,2,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16262,3,000,25,2,18,1,02,2,1,0,0,2,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16263,3,000,25,2,18,1,02,2,1,0,0,2,01,097,005602,2054,2,9999,99999,99999999,9,99999,99999999,30419,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.8283935,-088.0633501,L,1,99999,99999,99999,9,N,N,68160,A,02405422,02801,3,99999,99999,00185,096,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000015,36571 +16264,3,000,25,1,23,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16265,3,000,25,1,23,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16266,3,000,25,1,23,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16267,3,000,25,1,23,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16268,3,000,25,1,24,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16269,3,000,25,1,42,2,06,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16270,3,000,25,2,25,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16271,3,000,25,2,28,2,06,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16272,3,000,25,2,58,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16273,3,000,25,2,58,1,01,2,1,0,0,2,48,021,950700,1041,1,9999,99999,99999999,9,99999,99999999,204308,0,0,0,0,0,12420,10,999,99999,99999999,A,01383796,93600,S,01939202,999,7,99999,99999999,+30.0092254,-097.1417991,L,1,99999,99999,99999,9,N,N,68456,A,02411912,05100,3,99999,99999,40550,017,014,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002005,78957 +16274,3,000,25,1,3,2,01,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16275,3,000,25,1,5,2,03,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16276,3,000,25,1,5,2,03,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16277,3,000,25,1,5,2,06,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16278,3,000,25,1,5,2,06,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16279,3,000,25,1,5,2,06,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16280,3,000,25,1,7,2,01,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16281,3,000,25,1,8,2,01,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16282,3,000,25,1,8,2,01,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16283,3,000,25,1,8,2,01,2,1,0,0,1,06,077,005311,2005,2,9999,99999,99999999,9,99999,99999999,9669,0,0,0,0,0,44700,10,999,99999,99999999,A,00277303,93400,S,01935345,488,9,99999,99999999,+37.7586956,-121.4331009,L,1,99999,99999,99999,9,N,N,80238,A,02412090,07707,4,99999,99999,00047,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,88280,U,99999,U,,95376 +16284,3,000,20,1,75,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16285,3,000,20,2,37,1,19,2,2,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16286,3,000,20,2,56,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16287,3,000,20,2,57,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16288,3,000,20,2,57,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16289,3,000,20,2,57,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16290,3,000,20,2,57,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16291,3,000,20,2,60,1,29,2,3,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16292,3,000,20,2,61,1,29,2,3,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16293,3,000,20,2,62,1,04,2,1,0,0,2,15,003,001502,1001,1,9999,99999,99999999,9,99999,99999999,6859,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90810,S,01935646,999,9,99999,99999999,+21.2793363,-157.8111851,L,1,99999,99999,99999,9,Y,N,71550,S,02630783,00303,4,99999,99999,00030,019,010,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96815 +16294,3,000,25,1,20,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16295,3,000,25,1,20,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16296,3,000,25,1,20,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16297,3,000,25,1,20,1,03,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16298,3,000,25,1,21,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16299,3,000,25,1,21,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16300,3,000,25,1,21,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16301,3,000,25,1,21,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16302,3,000,25,1,21,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16303,3,000,25,1,21,1,01,2,1,0,0,2,04,013,810900,4015,4,9999,99999,99999999,9,99999,99999999,96797,0,0,0,0,0,38060,09,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2990971,-111.9310433,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00108,4,04230,08340,99999,018,018,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000336,85226 +16304,3,000,20,1,43,1,02,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16305,3,000,20,1,52,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16306,3,000,20,1,52,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16307,3,000,20,1,53,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16308,3,000,20,1,53,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16309,3,000,20,1,54,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16310,3,000,20,1,54,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16311,3,000,20,1,61,1,01,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16312,3,000,20,1,61,1,02,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16313,3,000,20,1,61,1,02,1,1,0,0,2,20,173,003900,1000,1,9999,99999,99999999,9,99999,99999999,23483,0,0,0,0,0,48620,04,999,99999,99999999,A,00485049,79000,F,00485662,556,4,99999,99999999,+37.6599050,-097.3178096,L,1,99999,99999,99999,9,Y,N,79000,A,00485662,01401,2,99999,99999,12990,086,025,00481813,99999,99999999,9,999,99999,99999999,999999,95077,U,99999,U,500010,67211 +16314,3,000,25,2,14,1,02,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16315,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16316,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16317,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16318,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16319,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16320,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16321,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16322,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16323,3,000,25,2,16,1,01,2,1,0,0,1,37,025,041505,3017,3,9999,99999,99999999,9,99999,99999999,678852,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3097697,-080.6648044,L,1,99999,99999,99999,9,N,N,29800,A,02406649,03200,3,99999,99999,00530,082,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-11,28075 +16324,3,000,21,1,32,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16325,3,000,21,1,34,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16326,3,000,21,1,34,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16327,3,000,21,1,35,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16328,3,000,21,1,35,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16329,3,000,21,1,55,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16330,3,000,21,1,57,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16331,3,000,21,1,57,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16332,3,000,21,1,57,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16333,3,000,21,2,37,1,01,2,1,0,0,2,18,035,002700,2058,2,9999,99999,99999999,9,99999,99999999,2160184,0,0,0,0,0,34620,06,999,99999,99999999,A,00450347,17470,A,00453260,294,3,99999,99999999,+40.2703711,-085.3170276,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02100,2,99999,99999,02660,033,026,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000570,47320 +16334,3,000,29,2,65,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16335,3,000,29,2,65,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16336,3,000,29,2,66,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16337,3,000,29,2,67,1,04,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16338,3,000,29,2,69,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16339,3,000,29,2,69,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16340,3,000,29,2,69,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16341,3,000,29,2,70,1,02,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16342,3,000,29,2,71,1,04,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16343,3,000,29,2,71,1,04,2,1,0,0,2,48,201,453404,3000,3,9999,99999,99999999,9,99999,99999999,246322,0,0,0,0,0,26420,09,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.6711793,-095.5798764,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04638,3,99999,99999,07830,131,013,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000556,77099 +16344,3,000,20,1,64,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16345,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16346,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16347,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16348,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16349,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16350,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16351,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16352,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16353,3,000,20,1,67,1,01,2,1,0,0,2,12,101,033010,1016,1,9999,99999,99999999,9,99999,99999999,203054,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,93770,S,01935982,999,5,99999,99999999,+28.2505635,-082.1639363,L,1,99999,99999,99999,9,N,N,79231,S,02403050,10101,3,99999,99999,01530,038,020,00294478,99999,99999999,9,999,99999,99999999,999999,98182,U,99999,U,000023,33542 +16354,3,000,20,2,29,1,02,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16355,3,000,20,2,35,1,01,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16356,3,000,20,2,35,1,01,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16357,3,000,20,2,35,1,15,2,2,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16358,3,000,20,2,36,1,01,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16359,3,000,20,2,36,1,01,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16360,3,000,20,2,36,1,09,2,2,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16361,3,000,20,2,37,1,02,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16362,3,000,20,2,37,1,02,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16363,3,000,20,2,37,1,02,2,1,0,0,2,51,650,010315,1008,1,9999,99999,99999999,9,99999,99999999,62349,11113,0,0,11113,0,47260,03,999,99999,99999999,F,01498554,93827,F,01498554,545,5,99999,99999999,+37.0505546,-076.4024834,B,1,99999,99999,99999,9,Y,N,35000,A,01498554,65000,3,99999,99999,01800,092,002,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23666 +16364,3,000,25,2,20,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16365,3,000,25,2,22,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16366,3,000,25,2,23,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16367,3,000,25,2,23,1,02,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16368,3,000,25,2,26,1,13,2,2,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16369,3,000,25,2,31,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16370,3,000,25,2,31,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16371,3,000,25,2,31,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16372,3,000,25,2,32,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16373,3,000,25,2,32,1,01,2,1,0,0,2,08,041,004708,3005,3,9999,99999,99999999,9,99999,99999999,173803,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.9307640,-104.7399834,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02005,4,99999,99999,03060,014,010,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041146,80923 +16374,5,103,37,1,31,1,01,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16375,5,103,37,1,31,1,01,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16376,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16377,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16378,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16379,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16380,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16381,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16382,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16383,5,103,37,1,31,1,02,0,1,1,1,2,06,025,010101,1274,1,9999,99999,99999999,9,99999,99999999,1193188,0,0,0,0,0,20940,51,999,99999,99999999,A,00277277,90330,S,01935037,999,9,99999,99999999,+33.1655567,-115.4846870,L,1,99999,99999,99999,9,N,N,09878,A,02409962,02500,4,99999,99999,06990,056,040,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92233 +16384,3,000,25,2,2,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16385,3,000,25,2,2,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16386,3,000,25,2,2,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16387,3,000,25,2,3,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16388,3,000,25,2,3,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16389,3,000,25,2,3,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16390,3,000,25,2,3,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16391,3,000,25,2,3,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16392,3,000,25,2,8,1,01,2,1,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16393,3,000,25,2,17,1,07,2,2,0,0,1,39,071,954800,1024,1,9999,99999,99999999,9,99999,99999999,14511,0,0,0,0,0,99999,02,999,99999,99999999,A,01074048,43190,A,01086306,999,3,99999,99999999,+39.2057296,-083.6111181,L,9,99999,99999,99999,9,N,N,35560,A,02394385,04000,2,99999,99999,04412,091,017,01085497,99999,99999999,9,999,99999,99999999,999999,38917,U,99999,U,036AAJ,45133 +16394,3,000,20,2,37,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16395,3,000,20,2,37,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16396,3,000,20,2,37,1,03,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16397,3,000,20,2,39,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16398,3,000,20,2,40,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16399,3,000,20,2,40,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16400,3,000,20,2,40,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16401,3,000,20,2,55,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16402,3,000,20,2,57,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16403,3,000,20,2,58,1,01,2,1,0,0,2,55,079,012800,2015,2,9999,99999,99999999,9,99999,99999999,210493,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0262074,-088.0225437,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,013,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003834,53214 +16404,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16405,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16406,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16407,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16408,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16409,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16410,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16411,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16412,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16413,3,000,25,1,9,1,01,2,1,0,0,1,53,033,032603,1005,1,9999,99999,99999999,9,99999,99999999,691772,0,0,0,0,0,42660,08,999,99999,99999999,A,01531933,93078,S,01939631,500,9,99999,99999999,+47.5432465,-121.8686509,L,1,42644,99999,99999,9,N,N,65205,A,02411915,23302,4,99999,99999,08040,005,005,01779804,99999,99999999,9,999,99999,99999999,999999,82675,U,65205,U,003511,98065 +16414,3,000,21,2,66,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16415,3,000,21,2,66,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16416,3,000,21,2,66,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16417,3,000,21,2,66,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16418,3,000,22,1,31,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16419,3,000,22,1,31,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16420,3,000,22,1,54,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16421,3,000,22,1,54,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16422,3,000,22,1,54,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16423,3,000,22,1,56,1,01,2,1,0,0,2,34,003,032201,3018,3,9999,99999,99999999,9,99999,99999999,112869,3771,0,0,3771,0,35620,05,999,99999,99999999,A,00882271,42750,A,00882312,408,2,99999,99999999,+41.0799069,-074.1299798,B,1,35614,99999,99999,9,9,9,99999,9,99999999,00306,1,99999,99999,09330,039,039,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,165012,07430 +16424,3,000,21,2,45,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16425,3,000,21,2,45,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16426,3,000,21,2,45,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16427,3,000,21,2,45,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16428,3,000,21,2,46,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16429,3,000,21,2,46,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16430,3,000,21,2,47,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16431,3,000,21,2,47,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16432,3,000,21,2,47,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16433,3,000,21,2,47,1,01,2,1,0,0,2,21,185,030703,1020,1,9999,99999,99999999,9,99999,99999999,3157472,14068,0,0,14068,0,31140,04,999,99999,99999999,A,00516939,92752,S,01937199,350,6,99999,99999999,+38.3791540,-085.5121274,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01800,3,99999,99999,04530,059,026,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00B104,40014 +16434,3,000,26,1,10,2,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16435,3,000,26,2,13,2,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16436,3,000,27,1,8,1,08,2,2,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16437,3,000,27,1,12,1,08,2,2,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16438,3,000,30,1,1,2,11,2,2,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16439,3,000,30,1,5,2,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16440,3,000,30,1,5,2,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16441,3,000,30,2,0,1,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16442,3,000,30,2,0,1,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16443,3,000,30,2,0,1,01,2,1,0,0,1,49,003,960301,2008,2,9999,99999,99999999,9,99999,99999999,22261,0,0,0,0,0,36260,01,999,99999,99999999,A,01455966,93440,S,01939424,482,8,99999,99999999,+41.7049127,-112.1684928,L,1,99999,99999,99999,9,N,N,77120,A,02412091,03000,4,99999,99999,00090,001,017,01455989,99999,99999999,9,999,99999,99999999,999999,88354,U,99999,U,TRE02A,84337 +16444,3,000,29,1,45,2,11,2,2,0,0,2,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16445,3,000,29,1,60,2,11,2,2,0,0,2,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16446,3,000,29,2,65,1,01,2,1,0,0,2,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16447,3,000,29,2,66,1,02,2,1,0,0,2,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16448,3,000,29,2,66,1,02,2,1,0,0,2,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16449,3,000,30,1,11,1,02,2,1,0,0,1,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16450,3,000,30,2,0,2,11,2,2,0,0,1,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16451,3,000,30,2,6,1,02,2,1,0,0,1,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16452,3,000,33,1,9,2,01,2,1,0,0,1,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16453,3,000,33,1,11,2,11,2,2,0,0,1,12,011,030301,2005,2,9999,99999,99999999,9,99999,99999999,14051,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,92782,S,01935901,370,5,99999,99999999,+26.2688797,-080.1282886,L,1,22744,99999,99999,9,Y,N,58050,A,02404547,01104,3,99999,99999,00180,092,033,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00C036,33064 +16454,3,000,34,2,61,2,06,2,1,0,0,2,25,013,813602,1016,1,9999,99999,99999999,9,99999,99999999,86841,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0997866,-072.4276893,L,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16455,3,000,36,1,22,1,01,2,1,0,0,2,25,013,813602,1016,1,9999,99999,99999999,9,99999,99999999,86841,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0997866,-072.4276893,L,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16456,3,000,36,1,23,1,01,2,1,0,0,2,25,013,813602,1016,1,9999,99999,99999999,9,99999,99999999,86841,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0997866,-072.4276893,L,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16457,3,000,36,1,24,1,01,2,1,0,0,2,25,013,813602,1016,1,9999,99999,99999999,9,99999,99999999,86841,0,0,0,0,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0997866,-072.4276893,L,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16458,3,000,20,1,50,1,01,2,1,0,0,2,25,013,813602,1017,1,9999,99999,99999999,9,99999,99999999,319936,599,0,0,599,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0979067,-072.4311193,B,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16459,3,000,20,1,69,1,01,2,1,0,0,2,25,013,813602,1017,1,9999,99999,99999999,9,99999,99999999,319936,599,0,0,599,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0979067,-072.4311193,B,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16460,3,000,20,1,73,1,01,2,1,0,0,2,25,013,813602,1017,1,9999,99999,99999999,9,99999,99999999,319936,599,0,0,599,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0979067,-072.4311193,B,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16461,3,000,20,1,73,1,01,2,1,0,0,2,25,013,813602,1017,1,9999,99999,99999999,9,99999,99999999,319936,599,0,0,599,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0979067,-072.4311193,B,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16462,3,000,20,1,73,1,01,2,1,0,0,2,25,013,813602,1017,1,9999,99999,99999999,9,99999,99999999,319936,599,0,0,599,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0979067,-072.4311193,B,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16463,3,000,20,1,73,1,01,2,1,0,0,2,25,013,813602,1017,1,9999,99999,99999999,9,99999,99999999,319936,599,0,0,599,0,44140,01,790,99999,99999999,N,00606933,79740,A,00619390,999,1,99999,99999999,+42.0979067,-072.4311193,B,1,99999,99999,78100,1,9,9,99999,9,99999999,00403,1,99999,99999,05730,113,007,00606926,99999,99999999,9,999,99999,99999999,999999,83926,U,99999,U,002048,01095 +16464,3,000,25,2,14,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16465,3,000,25,2,16,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16466,3,000,25,2,16,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16467,3,000,25,2,16,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16468,3,000,25,2,16,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16469,3,000,25,2,16,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16470,3,000,25,2,16,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16471,3,000,25,2,17,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16472,3,000,25,2,17,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16473,3,000,25,2,17,1,01,2,1,0,0,1,40,019,892502,3027,3,5580,13925,02418818,R,99999,99999999,15848959,0,0,0,0,0,11620,04,999,99999,99999999,A,01101797,90156,S,01937639,999,7,99999,99999999,+34.1089860,-097.1980865,L,2,99999,99999,99999,9,9,9,99999,9,99999999,21900,3,99999,99999,24240,049,014,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,73401 +16474,3,000,21,1,45,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16475,3,000,21,2,56,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16476,3,000,21,2,56,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16477,3,000,21,2,56,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16478,3,000,21,2,56,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16479,3,000,21,2,56,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16480,3,000,21,2,56,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16481,3,000,21,2,58,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16482,3,000,21,2,58,1,01,2,1,0,0,2,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16483,3,000,25,1,11,1,01,2,1,0,0,1,21,093,001602,1025,1,9999,99999,99999999,9,99999,99999999,4489122,68471,0,0,68471,0,21060,02,999,99999,99999999,A,00516893,93264,S,01937264,350,6,99999,99999999,+37.5538636,-085.9551850,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01300,3,99999,99999,02490,025,010,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00F006,42776 +16484,3,000,20,1,22,1,07,2,2,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16485,3,000,20,1,25,1,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16486,3,000,20,1,25,2,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16487,3,000,20,1,26,1,04,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16488,3,000,20,1,27,1,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16489,3,000,20,1,29,1,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16490,3,000,20,1,29,1,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16491,3,000,20,1,29,1,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16492,3,000,20,1,29,1,01,2,1,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16493,3,000,20,1,30,1,09,2,2,0,0,2,53,067,012332,3013,3,9999,99999,99999999,9,99999,99999999,57684,0,0,0,0,0,36500,10,999,99999,99999999,A,01529226,92368,S,01939586,500,9,99999,99999999,+47.0391514,-122.7526323,L,1,99999,99999,99999,9,9,9,99999,9,99999999,26702,4,99999,99999,05850,002,002,01779804,99999,99999999,9,999,99999,99999999,999999,65242,U,36745,U,000092,98513 +16494,3,000,20,2,31,1,04,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16495,3,000,20,2,33,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16496,3,000,20,2,33,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16497,3,000,20,2,34,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16498,3,000,20,2,34,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16499,3,000,20,2,34,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16500,3,000,20,2,38,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16501,3,000,20,2,38,2,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16502,3,000,20,2,38,2,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16503,3,000,20,2,40,1,02,2,1,0,0,2,13,121,000501,1004,1,9999,99999,99999999,9,99999,99999999,40360,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7905868,-084.3970030,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01404,3,99999,99999,00120,056,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00003F,30363 +16504,3,000,21,2,46,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16505,3,000,21,2,46,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16506,3,000,21,2,49,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16507,3,000,21,2,49,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16508,3,000,21,2,49,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16509,3,000,21,2,49,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16510,3,000,21,2,50,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16511,3,000,21,2,50,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16512,3,000,21,2,50,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16513,3,000,21,2,50,1,01,2,1,0,0,2,49,035,112615,1004,1,9999,99999,99999999,9,99999,99999999,246992,0,0,0,0,0,41620,03,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.5916689,-111.8300853,L,1,99999,99999,99999,9,N,N,67440,A,02411810,35008,4,99999,99999,00142,049,009,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SAN031,84093 +16514,3,000,25,2,12,1,01,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16515,3,000,25,2,12,1,01,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16516,3,000,25,2,12,1,01,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16517,3,000,25,2,12,1,01,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16518,3,000,25,2,12,1,01,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16519,3,000,25,2,12,1,01,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16520,3,000,25,2,12,2,06,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16521,3,000,25,2,12,2,06,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16522,3,000,25,2,13,1,04,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16523,3,000,25,2,13,2,06,2,1,0,0,1,10,003,016610,4000,4,9999,99999,99999999,9,99999,99999999,1239429,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4643709,-075.7280516,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,014,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,002-08,19709 +16524,3,000,25,2,8,1,02,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16525,3,000,25,2,8,2,01,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16526,3,000,25,2,8,2,12,2,2,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16527,3,000,25,2,9,2,01,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16528,3,000,25,2,9,2,01,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16529,3,000,25,2,9,2,07,2,2,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16530,3,000,25,2,12,2,06,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16531,3,000,25,2,13,1,02,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16532,3,000,25,2,13,2,11,2,2,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16533,3,000,25,2,14,2,06,2,1,0,0,1,55,079,016300,4008,4,9999,99999,99999999,9,99999,99999999,21777,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0133038,-087.9415950,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02805,2,99999,99999,09600,008,003,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003861,53204 +16534,3,000,21,2,35,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16535,3,000,21,2,35,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16536,3,000,21,2,35,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16537,3,000,21,2,35,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16538,3,000,21,2,35,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16539,3,000,21,2,35,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16540,3,000,21,2,36,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16541,3,000,21,2,48,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16542,3,000,21,2,54,2,06,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16543,3,000,21,2,70,1,02,2,1,0,0,2,08,031,003501,3028,3,9999,99999,99999999,9,99999,99999999,13220,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7770279,-104.9513801,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01702,4,99999,99999,03360,005,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031503,80216 +16544,3,000,20,1,77,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16545,3,000,20,2,40,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16546,3,000,20,2,43,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16547,3,000,20,2,43,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16548,3,000,20,2,44,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16549,3,000,20,2,44,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16550,3,000,20,2,60,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16551,3,000,20,2,61,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16552,3,000,20,2,82,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16553,3,000,20,2,83,1,01,2,1,0,0,2,50,023,954100,3027,3,9999,99999,99999999,9,99999,99999999,906235,0,0,0,0,0,12740,00,999,99999,99999999,A,01461768,11350,A,01462062,162,1,99999,99999999,+44.3473503,-072.5087994,L,2,99999,99999,71050,2,9,9,99999,9,99999999,00200,1,99999,99999,99932,WA6,WAS,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,502307,05648 +16554,3,000,21,2,46,2,11,2,2,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16555,3,000,21,2,65,2,06,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16556,3,000,21,2,67,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16557,3,000,21,2,69,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16558,3,000,22,1,29,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16559,3,000,22,1,30,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16560,3,000,22,1,31,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16561,3,000,22,1,32,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16562,3,000,22,1,32,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16563,3,000,22,1,32,1,01,2,1,0,0,2,06,013,336101,2000,2,9999,99999,99999999,9,99999,99999999,33562,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,90440,S,01935048,488,9,99999,99999999,+37.9683293,-122.0364194,L,1,36084,99999,99999,9,N,N,16000,A,02410214,01311,4,99999,99999,26370,014,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94520 +16564,3,000,21,1,27,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16565,3,000,21,1,28,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16566,3,000,21,1,28,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16567,3,000,21,1,28,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16568,3,000,21,1,28,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16569,3,000,21,1,28,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16570,3,000,21,1,28,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16571,3,000,21,1,29,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16572,3,000,21,1,29,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16573,3,000,21,1,29,1,01,2,1,0,0,2,17,031,060300,2010,2,9999,99999,99999999,9,99999,99999999,7536,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9481040,-087.6716255,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,047006,60613 +16574,3,000,25,2,11,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16575,3,000,25,2,11,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16576,3,000,25,2,11,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16577,3,000,25,2,11,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16578,3,000,25,2,11,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16579,3,000,25,2,11,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16580,3,000,25,2,13,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16581,3,000,25,2,13,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16582,3,000,25,2,13,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16583,3,000,25,2,13,1,02,2,1,0,0,1,13,063,040639,1008,1,9999,99999,99999999,9,99999,99999999,34373,0,0,0,0,0,12060,13,999,99999,99999999,A,01672399,91620,S,01936340,122,5,99999,99999999,+33.4476612,-084.3548487,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02302,3,99999,99999,01230,078,044,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000LJ3,30228 +16584,3,000,28,2,20,2,11,2,2,0,0,2,17,031,805401,3006,3,9999,99999,99999999,9,99999,99999999,52292,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0290679,-087.8347741,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16585,3,000,30,1,10,1,01,2,1,0,0,1,17,031,805401,3006,3,9999,99999,99999999,9,99999,99999999,52292,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0290679,-087.8347741,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16586,3,000,30,1,12,1,01,2,1,0,0,1,17,031,805401,3006,3,9999,99999,99999999,9,99999,99999999,52292,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0290679,-087.8347741,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16587,3,000,30,2,14,1,01,2,1,0,0,1,17,031,805401,3006,3,9999,99999,99999999,9,99999,99999999,52292,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0290679,-087.8347741,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16588,3,000,33,2,81,1,01,2,1,0,0,2,17,031,805401,3006,3,9999,99999,99999999,9,99999,99999999,52292,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0290679,-087.8347741,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16589,3,000,20,1,61,2,44,1,4,0,0,2,17,031,805401,3008,3,9999,99999,99999999,9,99999,99999999,86777,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0272752,-087.8274829,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16590,3,000,20,2,73,1,01,1,1,0,0,2,17,031,805401,3008,3,9999,99999,99999999,9,99999,99999999,86777,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0272752,-087.8274829,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16591,3,000,20,2,80,1,01,1,1,0,0,2,17,031,805401,3008,3,9999,99999,99999999,9,99999,99999999,86777,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0272752,-087.8274829,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16592,3,000,20,2,80,1,01,1,1,0,0,2,17,031,805401,3008,3,9999,99999,99999999,9,99999,99999999,86777,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0272752,-087.8274829,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16593,3,000,20,2,80,1,01,1,1,0,0,2,17,031,805401,3008,3,9999,99999,99999999,9,99999,99999999,86777,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,46162,A,00429310,176,3,99999,99999999,+42.0272752,-087.8274829,L,1,16984,99999,99999,9,N,N,53000,A,02399498,03108,2,30840,24090,99999,015,008,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,800072,60714 +16594,3,000,20,1,61,1,02,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16595,3,000,20,1,65,1,02,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16596,3,000,20,1,65,1,02,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16597,3,000,20,1,67,1,01,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16598,3,000,20,1,67,1,01,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16599,3,000,20,1,68,1,01,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16600,3,000,20,1,68,1,01,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16601,3,000,20,1,68,1,01,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16602,3,000,20,1,68,1,01,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16603,3,000,20,2,33,1,02,2,1,0,0,2,42,045,409803,3008,3,9999,99999,99999999,9,99999,99999999,101388,0,0,0,0,0,37980,05,999,99999,99999999,A,01209177,63264,A,01216389,428,2,99999,99999999,+40.0394285,-075.3931854,L,1,37964,99999,99999,9,N,N,81752,S,02812906,03311,1,99999,99999,19920,165,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002430,19087 +16604,3,000,20,1,58,1,02,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16605,3,000,20,1,59,1,02,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16606,3,000,20,2,77,1,15,2,2,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16607,3,000,25,1,20,2,01,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16608,3,000,25,1,20,2,01,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16609,3,000,25,1,21,2,01,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16610,3,000,25,1,22,2,06,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16611,3,000,25,1,56,1,02,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16612,3,000,25,2,18,1,02,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16613,3,000,25,2,18,1,02,2,1,0,0,2,48,201,252800,2023,2,9999,99999,99999999,9,99999,99999999,10564,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8672034,-095.0620309,L,1,99999,99999,99999,9,N,N,05696,S,02407798,04623,3,99999,99999,15750,142,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000251,77532 +16614,3,000,25,1,12,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16615,3,000,25,1,13,1,01,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16616,3,000,25,1,13,1,08,2,2,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16617,3,000,25,1,13,1,08,2,2,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16618,3,000,25,1,14,1,02,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16619,3,000,25,1,14,1,02,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16620,3,000,25,1,14,1,04,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16621,3,000,25,1,14,1,04,2,1,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16622,3,000,25,1,14,2,11,2,2,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16623,3,000,25,1,14,2,11,2,2,0,0,1,48,085,030539,3005,3,9999,99999,99999999,9,99999,99999999,133016,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1988763,-096.7454339,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01908,3,99999,99999,20010,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000226,75072 +16624,3,000,21,2,72,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16625,3,000,21,2,72,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16626,3,000,21,2,72,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16627,3,000,21,2,73,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16628,3,000,21,2,73,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16629,3,000,21,2,73,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16630,3,000,21,2,73,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16631,3,000,21,2,73,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16632,3,000,21,2,81,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16633,3,000,21,2,81,1,01,2,1,0,0,2,27,053,027504,1005,1,9999,99999,99999999,9,99999,99999999,374824,2633,0,0,2633,0,33460,03,999,99999,99999999,A,00659472,60016,F,02395877,378,4,99999,99999999,+44.9057574,-093.5279586,B,1,99999,99999,99999,9,N,N,60016,A,02395877,01601,2,99999,99999,11670,33B,033,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002735,55331 +16634,3,000,20,2,26,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16635,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16636,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16637,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16638,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16639,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16640,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16641,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16642,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16643,3,000,20,2,27,1,01,2,1,0,0,2,42,101,015800,2010,2,9999,99999,99999999,9,99999,99999999,8772,0,0,0,0,0,37980,02,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9760061,-075.1285864,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03228,1,99999,99999,18990,175,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,001811,19125 +16644,3,000,34,2,23,1,01,2,1,0,0,2,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16645,3,000,36,2,21,2,06,2,1,0,0,2,06,061,021044,1003,1,9999,99999,99999999,9,99999,99999999,25563,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7923129,-121.3350861,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16646,3,000,20,1,27,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16647,3,000,20,1,62,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16648,3,000,20,1,62,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16649,3,000,20,1,62,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16650,3,000,20,1,62,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16651,3,000,20,1,62,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16652,3,000,20,1,62,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16653,3,000,20,1,70,1,01,1,1,0,0,2,06,061,021044,1005,1,9999,99999,99999999,9,99999,99999999,59570,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7900678,-121.3298295,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +16654,3,000,20,2,57,1,01,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16655,3,000,20,2,57,1,01,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16656,3,000,20,2,57,1,02,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16657,3,000,20,2,59,1,02,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16658,3,000,20,2,59,1,02,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16659,3,000,20,2,59,1,02,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16660,3,000,20,2,65,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16661,3,000,20,2,66,2,06,2,1,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16662,3,000,21,1,28,1,09,2,2,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16663,3,000,21,1,29,1,09,2,2,0,0,2,06,065,046102,1017,1,9999,99999,99999999,9,99999,99999999,81327,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,90253,S,01935242,348,9,99999,99999999,+33.6120730,-114.6044621,L,1,99999,99999,99999,9,N,N,07218,A,02409872,06501,4,99999,99999,29640,056,028,01779778,99999,99999999,9,999,99999,99999999,999999,08623,U,99999,U,,92225 +16664,3,000,34,1,19,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16665,3,000,34,1,20,1,02,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16666,3,000,34,1,24,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16667,3,000,34,1,24,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16668,3,000,34,1,24,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16669,3,000,34,1,24,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16670,3,000,34,1,30,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16671,3,000,34,1,42,2,06,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16672,3,000,34,1,45,2,11,2,2,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16673,3,000,34,1,57,1,01,2,1,0,0,2,01,003,011504,2031,2,9999,99999,99999999,9,99999,99999999,486622,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,91152,S,00161595,380,6,99999,99999999,+30.3952478,-087.6712609,L,1,99999,99999,99999,9,Y,N,26992,A,02403626,02702,3,99999,99999,00270,095,032,01779775,99999,99999999,9,999,99999,99999999,999999,30171,U,99999,U,000038,36535 +16674,3,000,25,2,11,2,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16675,3,000,25,2,11,2,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16676,3,000,25,2,11,2,01,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16677,3,000,30,1,7,2,07,2,2,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16678,3,000,30,1,18,2,06,2,1,0,0,2,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16679,3,000,30,1,18,2,06,2,1,0,0,2,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16680,3,000,30,1,32,1,02,2,1,0,0,2,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16681,3,000,30,2,0,1,02,2,1,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16682,3,000,33,2,11,2,58,2,5,0,0,1,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16683,3,000,36,1,31,2,01,2,1,0,0,2,48,085,030207,1022,1,9999,99999,99999999,9,99999,99999999,21605,0,0,0,0,0,19100,04,999,99999,99999999,A,01383828,90100,S,01938495,206,7,99999,99999999,+33.3778065,-096.5497135,L,1,19124,99999,99999,9,N,N,03300,A,02409712,01907,3,99999,99999,08340,033,030,01779801,99999,99999999,9,999,99999,99999999,999999,56074,U,99999,U,000181,75409 +16684,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16685,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16686,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16687,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16688,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16689,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16690,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16691,3,000,25,1,8,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16692,3,000,25,1,9,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16693,3,000,25,1,9,1,01,2,1,0,0,1,08,013,013003,1019,1,9999,99999,99999999,9,99999,99999999,350247,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+40.0019390,-105.1332578,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00502,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013314,80026 +16694,3,000,36,2,10,1,01,2,1,0,0,1,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +16695,3,000,36,2,60,2,11,2,2,0,0,2,48,491,020822,3007,3,9999,99999,99999999,9,99999,99999999,39296,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93845,S,01939251,999,7,99999,99999999,+30.6574047,-097.6595569,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05201,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000370,78626 +16696,3,000,20,1,56,1,04,1,1,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16697,3,000,20,2,62,1,01,1,1,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16698,3,000,20,2,63,1,01,1,1,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16699,3,000,20,2,64,1,01,1,1,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16700,3,000,20,2,64,1,01,1,1,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16701,3,000,20,2,27,1,01,2,1,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16702,3,000,20,2,70,2,11,2,2,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16703,3,000,20,2,70,2,11,2,2,0,0,2,48,491,020604,1024,1,9999,99999,99999999,9,99999,99999999,16177,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.6147190,-097.6951434,L,1,99999,99999,99999,9,Y,N,29336,A,02410584,05204,3,99999,99999,20600,020,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000343,78628 +16704,3,000,20,1,73,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16705,3,000,20,1,73,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16706,3,000,20,1,73,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16707,3,000,20,1,73,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16708,3,000,20,1,80,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16709,3,000,20,1,80,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16710,3,000,20,1,80,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16711,3,000,20,1,80,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16712,3,000,20,1,81,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16713,3,000,20,1,82,1,01,2,1,0,0,2,48,199,030504,1015,1,9999,99999,99999999,9,99999,99999999,56393,0,0,0,0,0,13140,36,999,99999,99999999,A,01383885,92332,S,01938615,999,7,99999,99999999,+30.2482642,-094.2029750,L,1,99999,99999,99999,9,N,N,45120,A,02410897,04200,3,99999,99999,13530,019,003,01779801,99999,99999999,9,999,99999,99999999,999999,06058,U,99999,U,000018,77657 +16714,3,000,20,2,62,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16715,3,000,20,2,71,1,11,1,2,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16716,3,000,20,2,81,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16717,3,000,20,2,81,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16718,3,000,20,2,81,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16719,3,000,20,2,82,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16720,3,000,20,2,82,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16721,3,000,20,2,83,1,06,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16722,3,000,20,2,91,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16723,3,000,20,2,93,1,01,1,1,0,0,2,34,003,011400,2001,2,9999,99999,99999999,9,99999,99999999,26918,0,0,0,0,0,35620,09,999,99999,99999999,A,00882271,21300,F,00885207,408,2,99999,99999999,+40.9057016,-074.1200439,L,1,35614,99999,99999,9,N,N,21300,A,00885207,00304,1,99999,99999,04660,035,035,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,067008,07407 +16724,3,000,20,1,75,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16725,3,000,20,1,79,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16726,3,000,21,1,49,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16727,3,000,25,1,3,1,11,2,2,0,0,1,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16728,3,000,25,1,8,1,01,2,1,0,0,1,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16729,3,000,25,1,11,1,01,2,1,0,0,1,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16730,3,000,25,1,14,1,01,2,1,0,0,1,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16731,3,000,25,1,64,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16732,3,000,25,1,64,1,01,2,1,0,0,2,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16733,3,000,25,2,2,1,01,2,1,0,0,1,17,055,040700,3032,3,9999,99999,99999999,9,99999,99999999,537329,3757,0,0,3757,0,99999,12,999,99999,99999999,A,00424229,05313,A,00428659,999,3,99999,99999999,+37.9864978,-088.8959644,B,9,99999,99999,99999,9,9,9,99999,9,99999999,19900,2,05950,05970,99999,117,059,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00BE04,62812 +16734,3,000,21,2,46,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16735,3,000,21,2,46,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16736,3,000,21,2,48,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16737,3,000,21,2,48,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16738,3,000,21,2,50,1,10,2,2,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16739,3,000,21,2,61,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16740,3,000,21,2,63,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16741,3,000,21,2,72,1,04,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16742,3,000,21,2,87,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16743,3,000,22,1,23,1,01,2,1,0,0,2,18,005,010900,1011,1,9999,99999,99999999,9,99999,99999999,157816,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,14752,A,00453243,294,3,99999,99999999,+39.1979495,-085.9730944,L,1,99999,99999,99999,9,Y,N,14734,A,02393609,03000,2,99999,99999,00360,059,044,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000010,47201 +16744,3,000,25,2,10,2,11,2,2,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16745,3,000,25,2,15,1,09,2,2,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16746,3,000,25,2,16,1,01,2,1,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16747,3,000,25,2,16,1,01,2,1,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16748,3,000,25,2,16,1,01,2,1,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16749,3,000,25,2,16,1,01,2,1,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16750,3,000,25,2,16,1,01,2,1,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16751,3,000,25,2,17,1,07,2,2,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16752,3,000,25,2,17,1,07,2,2,0,0,1,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16753,3,000,25,2,18,1,07,2,2,0,0,2,18,157,001601,1003,1,9999,99999,99999999,9,99999,99999999,273580,2058,0,0,2058,0,29200,04,999,99999,99999999,A,00450393,82070,A,00454043,320,3,99999,99999999,+40.3687617,-086.9101849,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,11340,026,022,00448508,99999,99999999,9,999,99999,99999999,999999,46018,U,99999,U,001070,47909 +16754,3,000,20,2,57,1,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16755,3,000,20,2,58,1,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16756,3,000,20,2,58,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16757,3,000,20,2,59,2,11,2,2,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16758,3,000,20,2,61,2,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16759,3,000,20,2,61,2,06,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16760,3,000,20,2,61,2,06,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16761,3,000,20,2,61,2,06,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16762,3,000,20,2,75,2,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16763,3,000,20,2,75,2,01,2,1,0,0,2,48,141,004312,4003,4,9999,99999,99999999,9,99999,99999999,366819,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7527112,-106.3403183,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,46680,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000104,79935 +16764,3,000,21,2,61,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16765,3,000,21,2,61,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16766,3,000,21,2,66,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16767,3,000,21,2,68,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16768,3,000,21,2,76,1,09,2,2,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16769,3,000,22,1,24,1,09,2,2,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16770,3,000,22,1,36,1,01,2,1,0,0,2,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16771,3,000,25,1,4,1,01,2,1,0,0,1,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16772,3,000,25,1,9,1,01,2,1,0,0,1,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16773,3,000,25,1,14,2,06,2,1,0,0,1,48,099,010102,1115,1,9999,99999,99999999,9,99999,99999999,5103066,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91270,S,01938731,999,7,99999,99999999,+31.2337522,-097.9824108,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03400,3,99999,99999,15240,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000101,76522 +16774,3,000,20,2,82,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16775,3,000,20,2,82,1,01,2,1,0,0,2,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16776,3,000,25,1,1,1,04,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16777,3,000,25,1,8,2,06,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16778,3,000,25,1,8,2,11,2,2,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16779,3,000,25,1,9,1,01,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16780,3,000,25,1,10,1,01,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16781,3,000,25,1,10,1,01,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16782,3,000,25,1,10,1,01,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16783,3,000,25,1,10,1,01,2,1,0,0,1,13,115,001302,1009,1,9999,99999,99999999,9,99999,99999999,21874,0,0,0,0,0,40660,14,999,99999,99999999,A,00353665,92586,S,01936509,122,5,99999,99999999,+34.2678653,-085.2315405,L,1,99999,99999,99999,9,Y,N,66668,A,02404648,01000,3,99999,99999,04440,013,052,01705317,99999,99999999,9,999,99999,99999999,999999,76204,U,99999,U,000076,30165 +16784,3,000,20,2,39,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16785,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16786,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16787,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16788,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16789,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16790,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16791,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16792,3,000,20,2,42,1,02,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16793,3,000,20,2,44,2,01,2,1,0,0,2,36,005,008700,1001,1,9999,99999,99999999,9,99999,99999999,20125,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8200146,-073.8984541,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04221,1,99999,99999,20580,085,032,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000821,10459 +16794,3,000,20,2,73,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16795,3,000,20,2,73,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16796,3,000,21,1,62,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16797,3,000,21,2,32,2,11,2,2,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16798,3,000,21,2,40,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16799,3,000,21,2,41,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16800,3,000,21,2,41,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16801,3,000,21,2,41,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16802,3,000,21,2,41,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16803,3,000,21,2,52,1,01,2,1,0,0,2,17,043,845601,3012,3,9999,99999,99999999,9,99999,99999999,45619,0,0,0,0,0,16980,06,999,99999,99999999,A,00422191,20604,A,00428909,176,3,99999,99999999,+41.7742164,-088.0000769,L,1,16984,99999,99999,9,N,N,20591,A,02398745,04307,2,12540,12570,99999,081,041,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003120,60516 +16804,3,000,25,2,15,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16805,3,000,25,2,40,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16806,3,000,25,2,40,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16807,3,000,25,2,40,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16808,3,000,25,2,40,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16809,3,000,29,1,77,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16810,3,000,32,1,48,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16811,3,000,32,1,48,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16812,3,000,32,2,31,1,01,2,1,0,0,2,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16813,3,000,33,2,11,1,01,2,1,0,0,1,24,023,000200,1000,1,9999,99999,99999999,9,99999,99999999,4858389,0,0,0,0,0,99999,06,999,99999,99999999,A,01711058,90228,N,01929581,999,5,99999,99999999,+39.7113855,-079.1038257,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00360,01A,001,01714934,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,03-001,21536 +16814,3,000,20,1,74,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16815,3,000,20,1,74,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16816,3,000,20,1,74,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16817,3,000,20,1,74,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16818,3,000,20,1,74,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16819,3,000,20,1,74,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16820,3,000,20,1,86,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16821,3,000,20,1,89,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16822,3,000,20,1,89,1,01,2,1,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16823,3,000,20,2,24,1,11,2,2,0,0,2,16,001,001003,2011,2,9999,99999,99999999,9,99999,99999999,69629,0,0,0,0,0,14260,02,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6045782,-116.2228288,L,1,99999,99999,99999,9,Y,N,08830,A,02409876,00800,4,99999,99999,00360,017,017,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,011708,83706 +16824,3,000,20,2,31,1,04,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16825,3,000,20,2,31,2,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16826,3,000,20,2,31,2,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16827,3,000,20,2,34,2,06,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16828,3,000,20,2,35,1,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16829,3,000,20,2,35,1,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16830,3,000,20,2,35,1,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16831,3,000,20,2,35,1,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16832,3,000,20,2,36,1,01,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16833,3,000,20,2,36,1,04,2,1,0,0,2,24,031,701223,1001,1,9999,99999,99999999,9,99999,99999999,247159,0,0,0,0,0,47900,08,999,99999,99999999,A,01712500,90336,N,01929600,548,5,99999,99999999,+39.0349288,-077.1129070,L,1,23224,99999,99999,9,N,N,56337,S,02389566,01004,3,99999,99999,00480,016,016,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,04-010,20852 +16834,3,000,25,1,3,2,02,2,1,0,0,1,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16835,3,000,25,1,4,1,12,2,2,0,0,1,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16836,3,000,25,1,22,2,18,2,2,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16837,3,000,25,1,25,2,06,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16838,3,000,25,1,25,2,06,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16839,3,000,25,2,3,2,02,2,1,0,0,1,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16840,3,000,25,2,5,1,12,2,2,0,0,1,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16841,3,000,25,2,20,2,11,2,2,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16842,3,000,25,2,22,1,01,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16843,3,000,25,2,23,1,01,2,1,0,0,2,48,439,111540,4006,4,9999,99999,99999999,9,99999,99999999,6492,0,0,0,0,0,19100,06,999,99999,99999999,A,01384005,90135,S,01938502,206,7,99999,99999999,+32.6708967,-097.1113535,L,1,23104,99999,99999,9,Y,N,04000,A,02409731,02504,3,99999,99999,08700,101,022,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002448,76018 +16844,3,000,21,2,31,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16845,3,000,21,2,33,1,01,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16846,3,000,21,2,35,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16847,3,000,21,2,35,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16848,3,000,21,2,35,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16849,3,000,21,2,36,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16850,3,000,21,2,40,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16851,3,000,21,2,40,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16852,3,000,21,2,40,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16853,3,000,21,2,42,2,06,2,1,0,0,2,06,029,006304,1015,1,9999,99999,99999999,9,99999,99999999,40580,0,0,0,0,0,12540,21,999,99999,99999999,A,02054176,90130,S,01935017,999,9,99999,99999999,+35.2008888,-118.8252105,L,1,99999,99999,99999,9,N,N,02924,A,02409738,02905,4,03270,19540,99999,032,014,01779778,99999,99999999,9,999,99999,99999999,999999,03250,U,99999,U,,93203 +16854,3,000,20,1,64,1,11,2,2,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16855,3,000,20,2,39,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16856,3,000,20,2,42,1,11,2,2,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16857,3,000,20,2,42,1,11,2,2,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16858,3,000,20,2,45,1,02,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16859,3,000,20,2,54,1,02,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16860,3,000,21,1,55,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16861,3,000,21,1,70,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16862,3,000,22,1,57,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16863,3,000,22,1,58,1,01,2,1,0,0,2,12,001,001701,1010,1,9999,99999,99999999,9,99999,99999999,10989,0,0,0,0,0,23540,03,999,99999,99999999,A,00308548,91248,S,01935778,264,5,99999,99999999,+29.6841546,-082.4003816,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,00030,021,008,00294478,99999,99999999,9,999,99999,99999999,999999,32167,U,99999,U,000059,32606 +16864,3,000,20,1,60,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16865,3,000,20,1,60,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16866,3,000,20,1,60,1,02,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16867,3,000,20,1,84,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16868,3,000,20,2,49,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16869,3,000,20,2,49,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16870,3,000,20,2,49,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16871,3,000,20,2,49,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16872,3,000,20,2,49,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16873,3,000,20,2,50,1,01,1,1,0,0,2,42,073,010600,1005,1,9999,99999,99999999,9,99999,99999999,466740,0,0,0,0,0,35260,16,999,99999,99999999,A,01213676,78368,A,01216666,430,2,99999,99999999,+41.0371437,-080.4196243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01511,1,99999,99999,24060,009,047,01779798,99999,99999999,9,999,99999,99999999,999999,62164,U,99999,U,000950,16116 +16874,3,000,20,2,65,1,04,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16875,3,000,20,2,65,1,04,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16876,3,000,20,2,66,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16877,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16878,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16879,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16880,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16881,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16882,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16883,3,000,20,2,67,1,01,1,1,0,0,2,06,059,099419,2001,2,9999,99999,99999999,9,99999,99999999,138777,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,92150,S,01935220,348,9,99999,99999999,+33.6993600,-117.9922700,L,1,11244,99999,99999,9,N,N,36000,A,02410811,05914,4,28140,18060,99999,072,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92648 +16884,3,000,20,2,26,2,06,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16885,3,000,20,2,78,1,01,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16886,3,000,21,2,30,2,28,2,3,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16887,3,000,22,1,25,1,01,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16888,3,000,22,1,28,1,01,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16889,3,000,22,1,29,1,01,2,1,0,0,2,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16890,3,000,25,1,1,1,02,2,1,0,0,1,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16891,3,000,25,1,1,2,06,2,1,0,0,1,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16892,3,000,25,1,2,2,06,2,1,0,0,1,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16893,3,000,25,1,8,1,01,2,1,0,0,1,13,017,960400,1025,1,9999,99999,99999999,9,99999,99999999,12405,0,0,0,0,0,22340,08,999,99999,99999999,A,00351606,91176,S,01936266,999,5,99999,99999999,+31.7317791,-083.2378608,L,2,99999,99999,99999,9,9,9,99999,9,99999999,04200,3,99999,99999,00360,155,007,01705317,99999,99999999,9,999,99999,99999999,999999,29791,U,99999,U,000001,31750 +16894,3,000,20,1,26,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16895,3,000,20,1,28,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16896,3,000,20,1,28,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16897,3,000,20,1,28,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16898,3,000,20,1,45,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16899,3,000,20,1,46,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16900,3,000,20,1,46,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16901,3,000,20,1,46,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16902,3,000,20,1,52,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16903,3,000,20,1,52,1,01,2,1,0,0,2,09,009,351800,3012,3,9999,99999,99999999,9,99999,99999999,44130,0,0,0,0,0,35300,05,720,99999,99999999,N,00212798,80070,C,00213525,408,1,99999,99999999,+41.5543569,-073.0695629,L,1,99999,99999,78700,1,N,Y,80000,A,02378294,20701,1,99999,99999,04830,073,015,01779780,99999,99999999,9,999,99999,99999999,999999,92485,U,99999,U,09-168,06708 +16904,3,000,20,2,33,1,01,2,1,0,0,2,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16905,3,000,21,2,40,2,06,2,1,0,0,2,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16906,3,000,25,1,6,2,01,2,1,0,0,1,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16907,3,000,33,2,27,2,06,2,1,0,0,2,01,003,011000,2075,2,9999,99999,99999999,9,99999,99999999,595564,0,0,0,0,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4835990,-087.6784844,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,094,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16908,3,000,20,1,62,1,01,2,1,0,0,2,01,003,011000,2076,2,9999,99999,99999999,9,99999,99999999,710182,3708,0,0,3708,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4836844,-087.6689284,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16909,3,000,20,1,62,1,01,2,1,0,0,2,01,003,011000,2076,2,9999,99999,99999999,9,99999,99999999,710182,3708,0,0,3708,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4836844,-087.6689284,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16910,3,000,20,1,62,1,01,2,1,0,0,2,01,003,011000,2076,2,9999,99999,99999999,9,99999,99999999,710182,3708,0,0,3708,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4836844,-087.6689284,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16911,3,000,20,2,20,2,11,2,2,0,0,2,01,003,011000,2076,2,9999,99999,99999999,9,99999,99999999,710182,3708,0,0,3708,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4836844,-087.6689284,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16912,3,000,20,2,21,2,11,2,2,0,0,2,01,003,011000,2076,2,9999,99999,99999999,9,99999,99999999,710182,3708,0,0,3708,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4836844,-087.6689284,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16913,3,000,25,1,0,1,01,2,1,0,0,1,01,003,011000,2076,2,9999,99999,99999999,9,99999,99999999,710182,3708,0,0,3708,0,19300,01,999,99999,99999999,A,00161527,93042,S,00165653,380,6,99999,99999999,+30.4836844,-087.6689284,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02702,3,99999,99999,00270,066,032,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,36580 +16914,3,000,22,1,27,2,06,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16915,3,000,22,1,28,2,11,2,2,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16916,3,000,22,1,28,2,11,2,2,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16917,3,000,22,1,30,1,02,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16918,3,000,22,1,31,1,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16919,3,000,22,1,32,1,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16920,3,000,22,1,34,2,11,2,2,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16921,3,000,22,1,35,2,01,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16922,3,000,22,1,37,2,06,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16923,3,000,22,1,40,1,02,2,1,0,0,2,04,013,812000,1014,1,9999,99999,99999999,9,99999,99999999,178585,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,90561,S,01934928,429,8,99999,99999999,+33.2894160,-111.8566938,L,1,99999,99999,99999,9,Y,N,12000,A,02409433,00107,4,99999,99999,01870,017,017,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000441,85225 +16924,3,000,21,1,38,2,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16925,3,000,21,1,38,2,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16926,3,000,21,1,40,1,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16927,3,000,21,1,40,1,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16928,3,000,21,2,26,1,04,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16929,3,000,21,2,28,1,04,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16930,3,000,21,2,28,1,04,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16931,3,000,21,2,37,2,01,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16932,3,000,21,2,48,1,04,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16933,3,000,21,2,48,1,04,2,1,0,0,2,04,013,092721,1002,1,9999,99999,99999999,9,99999,99999999,24279,0,0,0,0,0,38060,07,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5432060,-112.2446256,L,1,99999,99999,99999,9,N,N,27820,A,02410596,00124,4,99999,99999,06250,029,029,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000520,85305 +16934,3,000,21,1,48,2,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16935,3,000,21,1,49,1,02,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16936,3,000,21,1,65,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16937,3,000,21,1,65,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16938,3,000,21,1,65,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16939,3,000,21,1,66,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16940,3,000,21,1,69,1,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16941,3,000,21,1,69,2,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16942,3,000,21,2,36,2,01,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16943,3,000,21,2,38,1,06,2,1,0,0,2,04,013,061044,4013,4,9999,99999,99999999,9,99999,99999999,270789,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5760232,-112.4054798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00132,4,99999,99999,02690,013,013,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000014,85355 +16944,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16945,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16946,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16947,3,000,20,2,73,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16948,3,000,21,1,45,2,11,2,2,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16949,3,000,21,1,45,2,11,2,2,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16950,3,000,21,1,68,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16951,3,000,21,1,69,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16952,3,000,21,1,69,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16953,3,000,21,1,69,1,01,2,1,0,0,2,04,025,001202,1031,1,9999,99999,99999999,9,99999,99999999,101009,0,0,0,0,0,39150,04,999,99999,99999999,A,00042809,92754,S,01934971,999,8,99999,99999999,+34.5979269,-112.5084800,L,1,99999,99999,99999,9,N,N,83388,S,02409597,02502,4,99999,99999,06730,001,001,01779777,99999,99999999,9,999,99999,99999999,999999,72112,U,99999,U,000051,86305 +16954,3,000,28,1,60,1,01,2,1,0,0,2,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16955,3,000,30,2,5,1,08,2,2,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16956,3,000,34,1,50,1,01,2,1,0,0,2,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16957,3,000,34,2,7,1,49,2,4,0,0,1,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16958,3,000,34,2,41,1,08,2,2,0,0,2,05,119,003307,2003,2,9999,99999,99999999,9,99999,99999999,42634,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7935105,-092.2345153,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16959,3,000,20,1,42,1,02,1,1,0,0,2,05,119,003307,2004,2,9999,99999,99999999,9,99999,99999999,52196,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7936337,-092.2367852,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16960,3,000,20,1,49,1,01,1,1,0,0,2,05,119,003307,2004,2,9999,99999,99999999,9,99999,99999999,52196,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7936337,-092.2367852,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16961,3,000,20,1,49,1,01,1,1,0,0,2,05,119,003307,2004,2,9999,99999,99999999,9,99999,99999999,52196,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7936337,-092.2367852,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16962,3,000,20,1,49,1,01,1,1,0,0,2,05,119,003307,2004,2,9999,99999,99999999,9,99999,99999999,52196,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7936337,-092.2367852,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16963,3,000,20,2,57,1,01,1,1,0,0,2,05,119,003307,2004,2,9999,99999,99999999,9,99999,99999999,52196,0,0,0,0,0,30780,02,999,99999,99999999,A,00069177,91731,N,00069014,340,7,99999,99999999,+34.7936337,-092.2367852,L,1,99999,99999,99999,9,Y,N,50450,A,02404393,01501,3,99999,99999,10680,038,034,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000051,72116 +16964,3,000,21,2,55,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +16965,3,000,25,1,5,1,01,2,1,0,0,1,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +16966,3,000,25,1,17,1,01,2,1,0,0,1,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +16967,3,000,25,2,67,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +16968,3,000,30,2,18,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +16969,3,000,33,1,30,1,01,2,1,0,0,2,05,121,960100,2024,2,9999,99999,99999999,9,99999,99999999,353834,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93126,N,00069031,999,7,99999,99999999,+36.4282270,-090.9021643,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,72444 +16970,3,000,20,2,75,1,01,1,1,0,0,2,05,121,960100,2025,2,9999,99999,99999999,9,99999,99999999,61781,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93378,N,00069035,999,7,99999,99999999,+36.4329305,-090.9014105,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,72444 +16971,3,000,20,2,77,1,01,1,1,0,0,2,05,121,960100,2025,2,9999,99999,99999999,9,99999,99999999,61781,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93378,N,00069035,999,7,99999,99999999,+36.4329305,-090.9014105,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,72444 +16972,3,000,25,1,32,1,01,2,1,0,0,2,05,121,960100,2025,2,9999,99999,99999999,9,99999,99999999,61781,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93378,N,00069035,999,7,99999,99999999,+36.4329305,-090.9014105,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,72444 +16973,3,000,25,1,32,1,01,2,1,0,0,2,05,121,960100,2025,2,9999,99999,99999999,9,99999,99999999,61781,0,0,0,0,0,99999,01,999,99999,99999999,A,00069178,93378,N,00069035,999,7,99999,99999999,+36.4329305,-090.9014105,L,9,99999,99999,99999,9,N,N,44780,A,02406114,00500,3,99999,99999,09570,056,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,72444 +16974,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16975,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16976,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16977,3,000,21,2,78,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16978,3,000,21,2,79,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16979,3,000,21,2,79,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16980,3,000,21,2,79,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16981,3,000,21,2,80,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16982,3,000,21,2,80,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16983,3,000,21,2,80,1,01,2,1,0,0,2,05,125,010515,2011,2,9999,99999,99999999,9,99999,99999999,1561847,0,0,0,0,0,30780,02,999,99999,99999999,A,00067102,92370,N,00069046,340,7,99999,99999999,+34.6496623,-092.9099068,L,1,99999,99999,99999,9,N,N,33482,S,02402601,01400,3,99999,99999,06420,022,014,00068085,99999,99999999,9,999,99999,99999999,999999,40267,U,99999,U,000002,71909 +16984,3,000,36,1,55,2,06,2,1,0,0,2,06,037,551502,1002,1,9999,99999,99999999,9,99999,99999999,25511,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9355455,-118.1459793,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90241 +16985,3,000,20,1,36,2,06,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16986,3,000,20,1,36,2,06,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16987,3,000,20,1,36,2,06,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16988,3,000,20,1,73,2,03,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16989,3,000,20,2,57,2,03,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16990,3,000,20,2,58,1,01,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16991,3,000,20,2,58,1,01,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16992,3,000,20,2,69,1,01,1,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16993,3,000,20,1,35,1,01,2,1,0,0,2,06,037,551502,1003,1,9999,99999,99999999,9,99999,99999999,57325,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,90730,S,01935077,348,9,99999,99999999,+33.9335821,-118.1499467,L,1,31084,99999,99999,9,N,N,19766,A,02410352,03753,4,99999,99999,11460,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90242 +16994,3,000,20,1,26,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +16995,3,000,20,1,26,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +16996,3,000,20,1,26,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +16997,3,000,20,1,28,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +16998,3,000,20,1,28,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +16999,3,000,20,1,29,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +17000,3,000,20,1,29,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +17001,3,000,20,1,35,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +17002,3,000,20,1,36,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +17003,3,000,20,1,36,1,01,1,1,0,0,2,06,037,124902,2001,2,9999,99999,99999999,9,99999,99999999,53211,0,0,0,0,0,31080,30,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1705754,-118.3993467,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03721,4,99999,99999,22710,046,018,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91607 +17004,3,000,33,1,21,2,01,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17005,3,000,33,1,21,2,06,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17006,3,000,33,1,23,2,06,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17007,3,000,33,2,30,2,06,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17008,3,000,33,2,32,2,06,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17009,3,000,33,2,34,2,06,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17010,3,000,33,2,76,2,06,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17011,3,000,34,1,26,2,03,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17012,3,000,34,1,26,2,03,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17013,3,000,34,1,30,1,01,2,1,0,0,2,06,037,402403,1007,1,9999,99999,99999999,9,99999,99999999,23020,0,0,0,0,0,31080,35,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0595060,-117.7956193,L,1,31084,99999,99999,9,N,N,58072,A,02411454,03712,4,99999,99999,31320,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91768 +17014,3,000,36,2,36,1,04,2,1,0,0,2,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17015,3,000,36,2,36,1,04,2,1,0,0,2,06,037,408505,2002,2,9999,99999,99999999,9,99999,99999999,66147,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9975680,-117.9780247,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17016,3,000,20,1,82,1,01,1,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17017,3,000,20,2,60,1,04,1,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17018,3,000,20,1,26,1,04,2,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17019,3,000,20,1,29,1,04,2,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17020,3,000,20,1,51,1,04,2,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17021,3,000,20,1,81,1,04,2,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17022,3,000,20,1,82,1,04,2,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17023,3,000,20,1,82,1,04,2,1,0,0,2,06,037,408505,2003,2,9999,99999,99999999,9,99999,99999999,16235,0,0,0,0,0,31080,39,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+33.9950787,-117.9782460,L,1,31084,99999,99999,9,N,N,31596,S,02408344,03739,4,99999,99999,16325,057,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91745 +17024,3,000,20,2,45,2,11,2,2,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17025,3,000,20,2,46,2,11,2,2,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17026,3,000,20,2,47,2,11,2,2,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17027,3,000,20,2,52,1,04,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17028,3,000,20,2,52,1,04,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17029,3,000,20,2,52,1,04,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17030,3,000,20,2,53,1,04,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17031,3,000,20,2,57,1,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17032,3,000,20,2,71,2,01,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17033,3,000,20,2,87,1,03,2,1,0,0,2,06,037,403601,2007,2,9999,99999,99999999,9,99999,99999999,84513,0,0,0,0,0,31080,32,999,99999,99999999,A,00277283,90810,S,01935085,348,9,99999,99999999,+34.0768655,-117.8711836,L,1,31084,99999,99999,9,N,N,16742,A,02410251,03713,4,99999,99999,10050,048,022,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91724 +17034,3,000,29,1,43,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17035,3,000,29,1,43,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17036,3,000,29,2,66,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17037,3,000,29,2,66,2,06,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17038,3,000,29,2,71,2,01,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17039,3,000,29,2,74,2,01,2,1,0,0,2,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17040,3,000,30,1,6,2,06,2,1,0,0,1,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17041,3,000,30,1,12,2,06,2,1,0,0,1,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17042,3,000,30,1,13,2,01,2,1,0,0,1,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17043,3,000,30,1,13,2,01,2,1,0,0,1,06,071,002405,1001,1,9999,99999,99999999,9,99999,99999999,43607,0,0,0,0,0,40140,35,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.0925223,-117.4645513,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07115,4,99999,99999,13920,052,020,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92335 +17044,3,000,20,2,59,1,11,2,2,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17045,3,000,20,2,65,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17046,3,000,20,2,65,1,08,2,2,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17047,3,000,20,2,66,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17048,3,000,20,2,66,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17049,3,000,20,2,66,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17050,3,000,20,2,66,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17051,3,000,20,2,78,1,01,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17052,3,000,20,2,88,2,06,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17053,3,000,20,2,89,2,06,2,1,0,0,2,06,073,018000,3006,3,9999,99999,99999999,9,99999,99999999,47114,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1516609,-117.3451701,L,1,99999,99999,99999,9,Y,N,11194,A,02409984,07324,4,99999,99999,07500,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92008 +17054,3,000,25,2,27,1,02,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17055,3,000,25,2,38,1,02,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17056,3,000,25,2,48,2,06,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17057,3,000,27,1,21,1,04,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17058,3,000,29,2,68,1,01,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17059,3,000,29,2,72,2,06,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17060,3,000,29,2,82,2,11,2,2,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17061,3,000,30,1,20,1,05,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17062,3,000,31,2,71,2,11,2,2,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17063,3,000,32,1,23,2,06,2,1,0,0,2,06,073,013322,2002,2,9999,99999,99999999,9,99999,99999999,19910,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6289413,-116.9946580,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91913 +17064,3,000,25,2,34,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17065,3,000,26,2,30,1,01,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17066,3,000,27,2,14,2,01,2,1,0,0,1,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17067,3,000,27,2,14,2,01,2,1,0,0,1,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17068,3,000,28,2,34,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17069,3,000,28,2,64,1,01,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17070,3,000,29,2,64,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17071,3,000,29,2,64,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17072,3,000,31,2,63,2,06,2,1,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17073,3,000,32,2,48,1,09,2,2,0,0,2,06,101,050403,1009,1,9999,99999,99999999,9,99999,99999999,16392,0,0,0,0,0,49700,03,999,99999,99999999,A,00277315,93820,S,01935388,472,9,99999,99999999,+39.1021215,-121.6138389,L,1,99999,99999,99999,9,Y,N,86972,A,02412325,10100,4,99999,99999,43470,003,004,01779778,99999,99999999,9,999,99999,99999999,999999,97939,U,99999,U,,95991 +17074,3,000,34,1,32,2,11,2,2,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17075,3,000,34,1,32,2,11,2,2,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17076,3,000,34,1,47,1,01,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17077,3,000,34,1,49,1,01,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17078,3,000,34,1,59,1,02,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17079,3,000,34,2,54,1,01,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17080,3,000,35,2,11,2,06,2,1,0,0,1,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17081,3,000,36,1,22,1,02,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17082,3,000,36,1,23,1,02,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17083,3,000,36,1,46,1,04,2,1,0,0,2,10,003,016614,1001,1,9999,99999,99999999,9,99999,99999999,80695,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,92072,S,01935615,428,5,99999,99999999,+39.4460601,-075.7026219,L,1,48864,99999,99999,9,N,N,47030,A,02391298,00105,3,99999,99999,00080,008,010,01779781,99999,99999999,9,999,99999,99999999,999999,56845,U,99999,U,006-08,19709 +17084,5,802,38,2,62,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17085,5,802,38,2,62,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17086,5,802,38,2,64,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17087,5,802,38,2,65,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17088,5,802,38,2,69,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17089,5,802,38,2,69,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17090,5,802,38,2,70,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17091,5,802,38,2,75,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17092,5,802,38,2,88,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17093,5,802,38,2,90,2,01,0,1,2,7,2,12,086,003100,2016,2,9999,99999,99999999,9,99999,99999999,53751,2640,0,0,2640,0,33100,24,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7907498,-080.2058750,B,1,33124,99999,99999,9,Y,N,45000,A,02404247,08611,3,99999,99999,00390,109,038,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,005311,33136 +17094,3,000,20,2,38,2,01,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17095,3,000,20,2,39,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17096,3,000,20,2,39,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17097,3,000,20,2,39,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17098,3,000,20,2,39,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17099,3,000,20,2,39,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17100,3,000,20,2,39,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17101,3,000,20,2,40,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17102,3,000,20,2,42,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17103,3,000,20,2,42,1,02,2,1,0,0,2,12,111,380400,5002,5,9999,99999,99999999,9,99999,99999999,43353,0,0,0,0,0,38940,18,999,99999,99999999,A,00308372,91157,S,01935771,370,5,99999,99999999,+27.4391271,-080.3529594,L,1,99999,99999,99999,9,N,N,24300,A,02403646,11101,3,99999,99999,01770,084,025,00294478,99999,99999999,9,999,99999,99999999,999999,71479,U,99999,U,000019,34947 +17104,3,000,20,1,30,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17105,3,000,20,1,30,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17106,3,000,20,1,30,2,01,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17107,3,000,20,1,30,2,01,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17108,3,000,20,1,30,2,11,2,2,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17109,3,000,20,1,30,2,11,2,2,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17110,3,000,20,1,31,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17111,3,000,20,1,31,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17112,3,000,20,1,31,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17113,3,000,20,1,31,1,02,2,1,0,0,2,13,067,031007,2004,2,9999,99999,99999999,9,99999,99999999,347511,0,0,0,0,0,12060,11,999,99999,99999999,A,01686112,91140,S,01936260,122,5,99999,99999999,+33.9035617,-084.5704102,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01303,3,99999,99999,01290,041,033,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00OR03,30008 +17114,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17115,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17116,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17117,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17118,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17119,3,000,21,2,70,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17120,3,000,21,2,71,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17121,3,000,21,2,72,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17122,3,000,21,2,72,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17123,3,000,21,2,72,1,02,2,1,0,0,2,13,095,001100,4010,4,9999,99999,99999999,9,99999,99999999,263405,0,0,0,0,0,10500,02,999,99999,99999999,A,00351259,93312,S,01936637,999,5,99999,99999999,+31.5558336,-084.2053353,L,1,99999,99999,99999,9,Y,N,01052,A,02403072,04000,3,99999,99999,01830,154,012,01705317,99999,99999999,9,999,99999,99999999,999999,00901,U,99999,U,000008,31707 +17124,3,000,20,2,83,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17125,3,000,20,2,83,1,04,1,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17126,3,000,20,1,33,2,21,2,2,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17127,3,000,20,1,33,2,21,2,2,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17128,3,000,20,1,38,1,14,2,2,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17129,3,000,20,1,55,1,01,2,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17130,3,000,20,1,63,1,04,2,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17131,3,000,20,1,65,1,01,2,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17132,3,000,20,1,68,1,04,2,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17133,3,000,20,1,68,1,04,2,1,0,0,2,15,003,007504,1008,1,9999,99999,99999999,9,99999,99999999,14121,0,0,0,0,0,46520,01,999,99999,99999999,A,00365281,90270,S,01935640,999,9,99999,99999999,+21.3649231,-157.9345766,L,1,99999,99999,99999,9,N,N,10000,S,02414027,00306,4,99999,99999,00030,030,016,01779782,99999,99999999,9,999,99999,99999999,999999,39889,U,99999,U,,96701 +17134,3,000,20,2,69,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17135,3,000,20,2,69,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17136,3,000,20,2,69,1,01,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17137,3,000,20,2,69,2,11,1,2,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17138,3,000,20,2,73,1,03,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17139,3,000,20,2,73,1,03,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17140,3,000,20,2,73,1,03,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17141,3,000,20,2,80,1,03,1,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17142,3,000,20,1,22,2,01,2,1,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17143,3,000,20,1,30,2,11,2,2,0,0,2,16,001,010364,3007,3,9999,99999,99999999,9,99999,99999999,116128,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,90345,S,01936680,147,8,99999,99999999,+43.6211582,-116.3990553,L,1,99999,99999,99999,9,N,N,52120,A,02411083,00701,4,99999,99999,02100,020,020,01779783,99999,99999999,9,999,99999,99999999,999999,08785,U,99999,U,012008,83642 +17144,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17145,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17146,3,000,25,1,5,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17147,3,000,25,2,1,1,09,2,2,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17148,3,000,25,2,1,1,09,2,2,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17149,3,000,25,2,6,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17150,3,000,25,2,21,1,02,2,1,0,0,2,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17151,3,000,25,2,23,1,02,2,1,0,0,2,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17152,3,000,28,2,64,1,02,2,1,0,0,2,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17153,3,000,35,2,0,1,01,2,1,0,0,1,17,163,503800,1056,1,9999,99999,99999999,9,99999,99999999,51194,0,0,0,0,0,41180,12,999,99999,99999999,A,01784987,69550,A,00429746,476,3,99999,99999999,+38.5423019,-089.8743901,L,1,99999,99999,99999,9,N,N,68328,S,02393227,16302,2,99999,99999,24940,114,057,01779784,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,000SV1,62225 +17154,3,000,25,1,9,1,11,2,2,0,0,1,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17155,3,000,25,1,9,1,11,2,2,0,0,1,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17156,3,000,25,2,19,2,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17157,3,000,25,2,19,2,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17158,3,000,25,2,20,1,11,2,2,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17159,3,000,32,2,27,1,01,2,1,0,0,2,16,031,950500,1015,1,9999,99999,99999999,9,99999,99999999,13877,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5310373,-113.7939118,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17160,3,000,20,2,62,2,01,1,1,0,0,2,16,031,950500,1016,1,9999,99999,99999999,9,99999,99999999,12378,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5299361,-113.7939106,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17161,3,000,20,2,67,1,01,1,1,0,0,2,16,031,950500,1016,1,9999,99999,99999999,9,99999,99999999,12378,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5299361,-113.7939106,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17162,3,000,20,2,68,1,01,1,1,0,0,2,16,031,950500,1016,1,9999,99999,99999999,9,99999,99999999,12378,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5299361,-113.7939106,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17163,3,000,20,1,62,1,01,2,1,0,0,2,16,031,950500,1016,1,9999,99999,99999999,9,99999,99999999,12378,0,0,0,0,0,15420,02,999,99999,99999999,A,00395698,90460,S,01936685,999,8,99999,99999999,+42.5299361,-113.7939106,L,2,99999,99999,99999,9,Y,N,11260,A,02409944,00900,4,99999,99999,00660,027,027,01779783,99999,99999999,9,999,99999,99999999,999999,11620,U,99999,U,312703,83318 +17164,3,000,20,1,48,1,07,1,2,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17165,3,000,20,1,50,2,11,1,2,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17166,3,000,20,2,64,1,08,1,2,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17167,3,000,20,1,36,2,11,2,2,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17168,3,000,20,2,39,1,07,2,2,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17169,3,000,20,2,50,1,04,2,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17170,3,000,20,2,82,1,08,2,2,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17171,3,000,21,1,68,1,04,2,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17172,3,000,21,1,69,1,01,2,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17173,3,000,21,2,70,1,04,2,1,0,0,2,06,037,311700,3007,3,9999,99999,99999999,9,99999,99999999,5513,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92785,S,02378253,348,9,99999,99999999,+34.1633390,-118.3275482,L,1,31084,99999,99999,9,Y,N,08954,A,02409939,03720,4,99999,99999,06450,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91506 +17174,3,000,20,2,72,1,01,1,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17175,3,000,20,1,23,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17176,3,000,20,1,23,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17177,3,000,20,1,52,1,08,2,2,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17178,3,000,20,2,42,2,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17179,3,000,20,2,90,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17180,3,000,21,1,30,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17181,3,000,21,1,58,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17182,3,000,21,1,70,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17183,3,000,21,1,72,1,01,2,1,0,0,2,36,113,073500,1024,1,9999,99999,99999999,9,99999,99999999,1485925,0,0,0,0,0,24020,21,999,99999,99999999,A,00974154,73814,A,00979545,104,2,99999,99999999,+43.5155103,-073.8457888,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,1,99999,99999,29910,114,045,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,12885 +17184,3,000,20,1,65,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17185,3,000,20,1,66,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17186,3,000,20,1,80,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17187,3,000,20,1,80,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17188,3,000,20,1,80,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17189,3,000,20,1,84,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17190,3,000,20,1,84,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17191,3,000,20,2,25,1,11,2,2,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17192,3,000,20,2,59,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17193,3,000,21,2,65,1,01,2,1,0,0,2,19,171,290300,2071,2,9999,99999,99999999,9,99999,99999999,15429,0,0,0,0,0,99999,01,999,99999,99999999,A,00465274,93972,G,00468738,999,4,99999,99999999,+42.1818470,-092.7160303,L,9,99999,99999,99999,9,N,N,31035,A,02394905,01200,2,99999,99999,12660,072,036,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,171009,50635 +17194,3,000,25,1,17,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17195,3,000,25,1,17,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17196,3,000,26,2,22,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17197,3,000,26,2,22,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17198,3,000,29,1,72,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17199,3,000,30,1,0,2,12,2,2,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17200,3,000,30,2,19,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17201,3,000,33,1,16,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17202,3,000,33,1,16,1,02,2,1,0,0,1,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17203,3,000,33,1,53,1,02,2,1,0,0,2,11,001,007304,1002,1,9999,99999,99999999,9,99999,99999999,14753,0,0,0,0,0,47900,98,999,99999,99999999,F,01702382,50000,F,02390665,548,5,99999,99999999,+38.8435237,-076.9909948,L,1,47894,99999,99999,9,Y,N,50000,N,02390665,00104,3,99999,99999,00030,999,008,01702382,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,02-120,20032 +17204,3,000,21,1,34,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17205,3,000,21,1,34,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17206,3,000,21,1,48,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17207,3,000,21,1,48,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17208,3,000,21,1,60,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17209,3,000,21,1,64,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17210,3,000,21,1,72,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17211,3,000,21,1,72,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17212,3,000,21,2,20,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17213,3,000,21,2,21,2,06,2,1,0,0,2,06,081,610601,3006,3,9999,99999,99999999,9,99999,99999999,13485,0,0,0,0,0,41860,18,999,99999,99999999,A,00277305,92870,S,01935292,488,9,99999,99999999,+37.4721646,-122.2108890,L,1,41884,99999,99999,9,N,N,51840,S,02408940,08106,4,32130,36390,99999,024,013,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94063 +17214,3,000,21,2,23,2,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17215,3,000,21,2,24,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17216,3,000,21,2,24,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17217,3,000,21,2,24,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17218,3,000,21,2,24,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17219,3,000,21,2,45,2,06,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17220,3,000,21,2,46,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17221,3,000,21,2,46,1,01,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17222,3,000,21,2,48,2,06,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17223,3,000,21,2,48,2,06,2,1,0,0,2,48,053,960801,2001,2,9999,99999,99999999,9,99999,99999999,1052899,0,0,0,0,0,99999,25,999,99999,99999999,A,01383812,92395,S,01938960,999,7,99999,99999999,+30.5535198,-098.2807098,L,9,99999,99999,99999,9,N,N,46584,A,02411030,03400,3,99999,99999,29010,020,024,01779801,99999,99999999,9,999,99999,99999999,999999,54334,U,99999,U,000019,78654 +17224,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17225,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17226,3,000,20,1,28,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17227,3,000,20,1,29,1,06,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17228,3,000,20,1,29,1,11,2,2,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17229,3,000,20,1,30,1,06,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17230,3,000,20,1,31,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17231,3,000,20,1,31,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17232,3,000,20,1,31,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17233,3,000,20,1,31,1,01,2,1,0,0,2,25,017,350109,1003,1,9999,99999,99999999,9,99999,99999999,11351,0,0,0,0,0,14460,07,715,99999,99999999,N,00606935,62535,F,00619409,148,1,99999,99999999,+42.3950905,-071.0894765,L,1,15764,71634,71650,1,N,N,62535,A,00619409,00610,1,99999,99999,10890,151,025,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001704,02145 +17234,3,000,21,2,56,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +17235,3,000,22,1,28,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +17236,3,000,22,1,28,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +17237,3,000,34,2,38,1,01,2,1,0,0,2,20,095,961100,2051,2,9999,99999,99999999,9,99999,99999999,1648112,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,25125,A,00473966,999,4,99999,99999999,+37.6955717,-098.0017992,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,10920,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000110,67068 +17238,3,000,21,1,49,2,28,2,3,0,0,2,20,095,961100,2001,2,9999,99999,99999999,9,99999,99999999,1981274,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,22000,A,00473973,999,4,99999,99999999,+37.7248205,-097.8362565,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,08070,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000100,67025 +17239,3,000,21,2,55,1,01,2,1,0,0,2,20,095,961100,2001,2,9999,99999,99999999,9,99999,99999999,1981274,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,22000,A,00473973,999,4,99999,99999999,+37.7248205,-097.8362565,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,08070,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000100,67025 +17240,3,000,25,1,67,1,01,2,1,0,0,2,20,095,961100,2001,2,9999,99999,99999999,9,99999,99999999,1981274,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,22000,A,00473973,999,4,99999,99999999,+37.7248205,-097.8362565,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,08070,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000100,67025 +17241,3,000,20,1,72,1,01,2,1,0,0,2,20,095,961100,2002,2,9999,99999,99999999,9,99999,99999999,2590791,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,22000,A,00473973,999,4,99999,99999999,+37.7261433,-097.8533778,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,08070,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000100,67570 +17242,3,000,20,1,72,1,01,2,1,0,0,2,20,095,961100,2002,2,9999,99999,99999999,9,99999,99999999,2590791,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,22000,A,00473973,999,4,99999,99999999,+37.7261433,-097.8533778,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,08070,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000100,67570 +17243,3,000,20,1,53,1,01,2,1,0,0,2,20,095,961100,2003,2,9999,99999,99999999,9,99999,99999999,2001961,0,0,0,0,0,99999,04,999,99999,99999999,A,00485012,22000,A,00473973,999,4,99999,99999999,+37.7249530,-097.8702323,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01701,2,99999,99999,08070,114,034,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000100,67570 +17244,3,000,25,2,6,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17245,3,000,25,2,16,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17246,3,000,25,2,16,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17247,3,000,30,2,3,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17248,3,000,30,2,3,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17249,3,000,30,2,8,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17250,3,000,30,2,10,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17251,3,000,30,2,17,1,01,2,1,0,0,1,21,107,971300,5045,5,9999,99999,99999999,9,99999,99999999,21041,0,0,0,0,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1806440,-087.5466851,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17252,3,000,20,1,26,1,01,2,1,0,0,2,21,107,971300,5046,5,9999,99999,99999999,9,99999,99999999,5631819,93831,0,0,93831,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1736066,-087.5254672,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17253,3,000,20,1,26,1,01,2,1,0,0,2,21,107,971300,5046,5,9999,99999,99999999,9,99999,99999999,5631819,93831,0,0,93831,0,31580,01,999,99999,99999999,A,00516900,93016,S,01937233,999,6,99999,99999999,+37.1736066,-087.5254672,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,02860,009,006,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00A005,42442 +17254,3,000,22,2,24,1,01,2,1,0,0,2,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17255,3,000,23,2,16,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17256,3,000,25,1,2,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17257,3,000,25,1,2,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17258,3,000,25,1,6,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17259,3,000,25,1,6,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17260,3,000,25,1,11,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17261,3,000,25,1,11,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17262,3,000,25,1,13,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17263,3,000,25,1,13,1,01,2,1,0,0,1,21,229,930201,3016,3,9999,99999,99999999,9,99999,99999999,50631,0,0,0,0,0,99999,02,999,99999,99999999,A,00516961,93328,S,01937272,999,6,99999,99999999,+37.6865808,-085.2265373,L,9,99999,99999,99999,9,N,N,72660,A,02405510,01200,3,99999,99999,05760,055,022,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E101,40069 +17264,3,000,34,1,43,2,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17265,3,000,34,1,44,2,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17266,3,000,34,1,56,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17267,3,000,34,1,56,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17268,3,000,34,2,5,1,01,2,1,0,0,1,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17269,3,000,34,2,25,2,06,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17270,3,000,34,2,66,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17271,3,000,36,1,38,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17272,3,000,36,1,62,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17273,3,000,36,1,62,1,01,2,1,0,0,2,48,029,131802,3023,3,9999,99999,99999999,9,99999,99999999,4781197,81985,0,0,81985,0,41700,28,999,99999,99999999,A,01383800,93408,S,02628568,484,7,99999,99999999,+29.3901886,-098.2726396,B,1,99999,99999,99999,9,9,9,99999,9,99999999,05907,3,99999,99999,17850,119,019,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,004078,78101 +17274,3,000,21,2,78,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17275,3,000,22,2,16,1,01,2,1,0,0,1,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17276,3,000,22,2,38,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17277,3,000,22,2,38,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17278,3,000,22,2,46,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17279,3,000,22,2,70,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17280,3,000,22,2,78,1,01,2,1,0,0,2,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17281,3,000,25,1,0,1,01,2,1,0,0,1,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17282,3,000,25,1,0,1,01,2,1,0,0,1,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17283,3,000,25,1,0,1,01,2,1,0,0,1,01,117,030800,1128,1,9999,99999,99999999,9,99999,99999999,756557,0,0,0,0,0,13820,06,999,99999,99999999,A,00161584,93474,S,00165953,142,6,99999,99999999,+33.2404295,-086.4746983,L,1,99999,99999,99999,9,N,N,82848,A,02406894,01502,3,99999,99999,03030,041,011,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000039,35186 +17284,3,000,25,1,8,1,01,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17285,3,000,25,1,8,1,01,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17286,3,000,25,1,10,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17287,3,000,25,1,10,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17288,3,000,25,1,10,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17289,3,000,25,1,10,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17290,3,000,25,1,10,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17291,3,000,25,1,11,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17292,3,000,25,1,12,1,04,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17293,3,000,25,1,14,1,02,2,1,0,0,1,22,009,030702,1033,1,9999,99999,99999999,9,99999,99999999,252453,0,0,0,0,0,99999,05,999,99999,99999999,A,00558424,94771,N,01930062,999,7,99999,99999999,+30.9925978,-092.0468625,L,9,99999,99999,99999,9,N,N,17880,A,02406320,00600,3,99999,99999,00150,028,028,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,009-1A,71327 +17294,3,000,21,2,53,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17295,3,000,21,2,53,1,01,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17296,3,000,25,1,4,1,01,2,1,0,0,1,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17297,3,000,25,1,4,1,01,2,1,0,0,1,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17298,3,000,25,1,16,1,01,2,1,0,0,1,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17299,3,000,25,1,19,2,06,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17300,3,000,25,1,30,2,06,2,1,0,0,2,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17301,3,000,25,2,0,2,11,2,2,0,0,1,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17302,3,000,25,2,3,1,01,2,1,0,0,1,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17303,3,000,25,2,3,2,11,2,2,0,0,1,49,005,001202,1032,1,9999,99999,99999999,9,99999,99999999,51629,0,0,0,0,0,30860,01,999,99999,99999999,A,01448017,91763,S,01939386,999,8,99999,99999999,+41.6654036,-111.8347824,L,1,99999,99999,99999,9,N,N,54660,A,02411253,05000,4,99999,99999,00120,005,017,01455989,99999,99999999,9,999,99999,99999999,999999,50959,U,99999,U,NIB03I,84321 +17304,3,000,25,1,2,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17305,3,000,25,1,3,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17306,3,000,25,1,3,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17307,3,000,25,1,3,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17308,3,000,25,1,3,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17309,3,000,25,1,3,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17310,3,000,25,1,3,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17311,3,000,25,1,4,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17312,3,000,25,1,4,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17313,3,000,25,1,4,1,01,2,1,0,0,1,30,081,000201,2032,2,9999,99999,99999999,9,99999,99999999,140447,0,0,0,0,0,99999,00,999,99999,99999999,A,01719582,93339,S,01940719,999,8,99999,99999999,+46.5037360,-114.0882460,L,9,99999,99999,99999,9,N,N,71200,A,02413335,00300,4,25020,25050,99999,088,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,59870 +17314,3,000,20,1,55,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17315,3,000,20,1,55,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17316,3,000,20,1,56,1,01,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17317,3,000,20,1,57,1,01,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17318,3,000,20,1,62,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17319,3,000,20,1,62,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17320,3,000,20,1,63,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17321,3,000,20,1,63,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17322,3,000,20,1,71,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17323,3,000,20,1,71,1,02,2,1,0,0,2,22,033,001103,2008,2,9999,99999,99999999,9,99999,99999999,106561,0,0,0,0,0,12940,02,999,99999,99999999,B,00558530,94972,N,01930130,999,7,99999,99999999,+30.4571927,-091.1385554,L,1,99999,99999,99999,9,Y,N,05000,B,02403821,01502,3,99999,99999,00540,061,014,01629543,99999,99999999,9,999,99999,99999999,999999,05680,U,99999,U,001-36,70806 +17324,3,000,21,1,68,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17325,3,000,21,1,77,1,02,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17326,3,000,21,2,31,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17327,3,000,21,2,31,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17328,3,000,21,2,37,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17329,3,000,21,2,43,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17330,3,000,21,2,43,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17331,3,000,21,2,46,1,04,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17332,3,000,21,2,51,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17333,3,000,21,2,52,1,01,2,1,0,0,2,55,079,170400,2021,2,9999,99999,99999999,9,99999,99999999,33900,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.8949385,-087.8778517,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003516,53172 +17334,3,000,20,2,49,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17335,3,000,20,2,49,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17336,3,000,20,2,49,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17337,3,000,20,2,63,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17338,3,000,20,2,63,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17339,3,000,20,2,63,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17340,3,000,20,2,63,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17341,3,000,20,2,65,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17342,3,000,20,2,65,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17343,3,000,20,2,65,1,02,1,1,0,0,2,22,071,004800,2004,2,9999,99999,99999999,9,99999,99999999,9910,0,0,0,0,0,35380,02,999,99999,99999999,C,00558113,98000,F,00545142,406,7,99999,99999999,+29.9605316,-090.0731368,L,1,99999,99999,99999,9,Y,N,55000,A,00545142,02402,3,99999,99999,01170,093,004,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,0004-2,70112 +17344,3,000,25,2,2,1,01,2,1,0,0,1,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17345,3,000,25,2,4,1,02,2,1,0,0,1,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17346,3,000,25,2,4,1,02,2,1,0,0,1,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17347,3,000,25,2,9,1,02,2,1,0,0,1,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17348,3,000,25,2,20,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17349,3,000,25,2,22,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17350,3,000,25,2,23,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17351,3,000,25,2,23,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17352,3,000,25,2,24,1,01,2,1,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17353,3,000,25,2,28,1,09,2,2,0,0,2,34,039,037500,1009,1,9999,99999,99999999,9,99999,99999999,68710,0,0,0,0,0,35620,07,999,99999,99999999,A,00882235,70020,A,00882213,408,2,99999,99999999,+40.7099703,-074.3009810,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01902,1,99999,99999,15630,021,021,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,085001,07081 +17354,3,000,21,2,67,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17355,3,000,21,2,67,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17356,3,000,21,2,69,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17357,3,000,21,2,83,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17358,3,000,21,2,88,2,11,2,2,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17359,3,000,22,1,35,1,11,2,2,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17360,3,000,22,1,35,1,11,2,2,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17361,3,000,22,1,38,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17362,3,000,22,1,58,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17363,3,000,22,1,59,1,01,2,1,0,0,2,12,019,031203,1011,1,9999,99999,99999999,9,99999,99999999,1591208,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92678,S,01935893,300,5,99999,99999999,+30.0504952,-081.8398984,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,050400,32068 +17364,3,000,27,1,22,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17365,3,000,27,2,10,1,02,2,1,0,0,1,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17366,3,000,27,2,17,1,04,2,1,0,0,1,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17367,3,000,27,2,25,2,11,2,2,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17368,3,000,28,1,21,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17369,3,000,28,1,21,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17370,3,000,28,1,21,1,02,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17371,3,000,28,1,23,1,04,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17372,3,000,28,1,23,1,04,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17373,3,000,28,1,23,1,04,2,1,0,0,2,36,047,119800,3003,3,9999,99999,99999999,9,99999,99999999,14177,0,0,0,0,0,35620,07,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.6771610,-073.8919216,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04305,1,99999,99999,20580,055,018,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001285,11207 +17374,3,000,21,1,58,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17375,3,000,21,1,71,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17376,3,000,21,1,72,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17377,3,000,21,1,92,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17378,3,000,21,2,50,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17379,3,000,22,2,41,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17380,3,000,22,2,63,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17381,3,000,25,2,2,1,01,2,1,0,0,1,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17382,3,000,25,2,29,2,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17383,3,000,28,1,32,1,01,2,1,0,0,2,46,065,977900,2054,2,9999,99999,99999999,9,99999,99999999,27271,0,0,0,0,0,38180,00,999,99999,99999999,A,01265774,49600,F,01267533,999,4,99999,99999999,+44.3592227,-100.3396133,L,2,99999,99999,99999,9,Y,N,49600,A,01267533,00200,2,99999,99999,55260,024,024,01785534,99999,99999999,9,999,99999,99999999,999999,69292,U,99999,U,VTD-21,57501 +17384,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17385,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17386,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17387,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17388,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17389,3,000,25,2,11,1,02,2,1,0,0,1,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17390,3,000,25,2,18,1,07,2,2,0,0,2,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17391,3,000,25,2,18,1,07,2,2,0,0,2,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17392,3,000,25,2,18,1,07,2,2,0,0,2,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17393,3,000,25,2,19,1,01,2,1,0,0,2,24,003,740204,3004,3,9999,99999,99999999,9,99999,99999999,61305,0,0,0,0,0,12580,03,999,99999,99999999,A,01710958,90100,N,01929521,548,5,99999,99999999,+39.1362229,-076.6475150,L,1,99999,99999,99999,9,N,N,71150,S,02390278,01204,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-009,21061 +17394,3,000,33,2,28,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17395,3,000,33,2,28,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17396,3,000,34,1,20,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17397,3,000,34,1,20,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17398,3,000,34,1,21,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17399,3,000,34,1,21,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17400,3,000,34,1,21,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17401,3,000,34,1,21,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17402,3,000,34,1,22,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17403,3,000,34,1,22,1,01,2,1,0,0,2,49,049,002208,1006,1,9999,99999,99999999,9,99999,99999999,17903,0,0,0,0,0,39340,03,999,99999,99999999,A,01448038,92709,S,01939408,482,8,99999,99999999,+40.3084986,-111.7551993,L,1,99999,99999,99999,9,N,N,80420,A,02413434,49002,4,99999,99999,00030,059,007,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,VI0100,84059 +17404,3,000,25,2,32,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17405,3,000,25,2,32,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17406,3,000,25,2,32,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17407,3,000,25,2,32,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17408,3,000,25,2,33,2,11,2,2,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17409,3,000,27,1,37,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17410,3,000,27,2,21,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17411,3,000,27,2,21,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17412,3,000,27,2,23,1,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17413,3,000,28,1,25,2,01,2,1,0,0,2,39,035,138108,1011,1,9999,99999,99999999,9,99999,99999999,100999,0,0,0,0,0,17460,09,999,99999,99999999,A,01074030,09288,F,01085960,184,3,99999,99999999,+41.3919835,-081.8151023,L,1,99999,99999,99999,9,N,N,09288,A,01085960,00702,2,99999,99999,04360,014,023,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AGS,44142 +17414,3,000,20,2,61,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17415,3,000,20,2,61,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17416,3,000,20,2,69,1,04,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17417,3,000,21,1,27,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17418,3,000,21,1,28,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17419,3,000,21,1,28,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17420,3,000,21,1,29,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17421,3,000,21,1,29,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17422,3,000,21,1,29,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17423,3,000,21,1,29,1,01,2,1,0,0,2,38,017,010109,3014,3,9999,99999,99999999,9,99999,99999999,22789,0,0,0,0,0,22020,00,999,99999,99999999,A,01034226,84780,F,01036321,244,4,99999,99999999,+46.8721865,-096.8644625,L,1,99999,99999,99999,9,N,N,84780,A,01036321,00600,2,99999,99999,19410,016,016,01779797,99999,99999999,9,999,99999,99999999,999999,29089,U,99999,U,016-01,58078 +17424,3,000,21,1,51,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17425,3,000,21,1,51,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17426,3,000,21,1,51,2,06,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17427,3,000,21,1,54,2,06,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17428,3,000,21,1,54,2,06,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17429,3,000,21,1,57,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17430,3,000,21,1,59,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17431,3,000,21,1,59,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17432,3,000,21,1,62,1,01,2,1,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17433,3,000,21,2,25,1,08,2,2,0,0,2,04,019,002801,2015,2,9999,99999,99999999,9,99999,99999999,41737,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2677624,-110.9213747,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01907,4,99999,99999,08800,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000067,85716 +17434,3,000,25,2,9,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17435,3,000,25,2,9,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17436,3,000,25,2,9,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17437,3,000,25,2,9,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17438,3,000,25,2,9,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17439,3,000,25,2,9,1,04,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17440,3,000,25,2,10,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17441,3,000,25,2,10,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17442,3,000,25,2,10,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17443,3,000,25,2,10,1,02,2,1,0,0,1,51,810,046207,5000,5,9999,99999,99999999,9,99999,99999999,1893672,218663,0,0,218663,0,47260,02,999,99999,99999999,F,01498559,96187,F,01498559,545,5,99999,99999999,+36.7823099,-076.2017385,B,1,99999,99999,99999,9,Y,N,82000,A,01498559,81002,3,99999,99999,03840,085,007,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000084,23464 +17444,3,000,20,1,50,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17445,3,000,20,1,53,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17446,3,000,20,1,69,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17447,3,000,20,1,69,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17448,3,000,20,1,69,1,15,2,2,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17449,3,000,20,1,69,1,15,2,2,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17450,3,000,20,2,30,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17451,3,000,20,2,30,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17452,3,000,20,2,30,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17453,3,000,20,2,31,1,02,2,1,0,0,2,25,025,140400,5009,5,9999,99999,99999999,9,99999,99999999,9162,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.2702650,-071.1046869,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00805,1,99999,99999,02790,195,001,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001806,02126 +17454,3,000,25,2,44,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17455,3,000,25,2,67,1,01,2,1,0,0,2,26,099,255000,3003,3,9999,99999,99999999,9,99999,99999999,22264,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5382603,-082.9180803,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17456,3,000,20,1,23,1,02,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17457,3,000,20,1,62,1,01,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17458,3,000,20,1,62,1,01,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17459,3,000,20,1,62,1,01,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17460,3,000,20,1,64,1,01,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17461,3,000,20,1,64,1,01,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17462,3,000,20,2,22,1,02,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17463,3,000,20,2,26,1,02,1,1,0,0,2,26,099,255000,3004,3,9999,99999,99999999,9,99999,99999999,22342,0,0,0,0,0,19820,09,999,99999,99999999,A,01622992,69800,F,01627008,220,3,99999,99999999,+42.5383231,-082.9149379,L,1,47664,99999,99999,9,N,N,69800,A,01627008,03005,2,99999,99999,30210,022,009,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099176,48066 +17464,3,000,30,2,1,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17465,3,000,30,2,1,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17466,3,000,30,2,1,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17467,3,000,30,2,1,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17468,3,000,30,2,2,1,02,2,1,0,0,1,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17469,3,000,30,2,24,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17470,3,000,30,2,31,1,01,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17471,3,000,33,1,41,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17472,3,000,33,1,43,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17473,3,000,33,1,43,1,02,2,1,0,0,2,26,161,411900,3000,3,9999,99999,99999999,9,99999,99999999,168721,0,0,0,0,0,11460,12,999,99999,99999999,A,01623021,89160,A,01627301,220,3,99999,99999999,+42.2518066,-083.5856444,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02703,2,99999,99999,36630,054,018,01779789,99999,99999999,9,999,99999,99999999,999999,02602,U,99999,U,161138,48198 +17474,3,000,21,2,62,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17475,3,000,21,2,62,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17476,3,000,21,2,65,1,01,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17477,3,000,21,2,67,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17478,3,000,22,1,77,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17479,3,000,22,1,78,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17480,3,000,22,2,36,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17481,3,000,22,2,43,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17482,3,000,22,2,55,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17483,3,000,22,2,63,1,02,2,1,0,0,2,26,163,541800,2003,2,9999,99999,99999999,9,99999,99999999,138205,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4318802,-083.2825207,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03208,2,99999,99999,01103,010,005,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163151,48219 +17484,3,000,20,2,76,2,11,1,2,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17485,3,000,20,1,47,1,01,2,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17486,3,000,20,1,52,2,11,2,2,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17487,3,000,20,1,52,2,11,2,2,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17488,3,000,20,1,54,2,11,2,2,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17489,3,000,20,1,69,1,01,2,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17490,3,000,20,2,25,2,06,2,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17491,3,000,20,2,25,2,06,2,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17492,3,000,20,2,36,1,01,2,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17493,3,000,20,2,36,1,01,2,1,0,0,2,48,209,010402,1006,1,9999,99999,99999999,9,99999,99999999,42154,0,0,0,0,0,12420,35,999,99999,99999999,A,01383890,93430,S,01939168,999,7,99999,99999999,+29.8545885,-097.9332733,L,1,99999,99999,99999,9,Y,N,65600,A,02411798,05402,3,99999,99999,38970,045,021,01779801,99999,99999999,9,999,99999,99999999,999999,79201,U,99999,U,000113,78666 +17494,3,000,25,2,4,1,08,2,2,0,0,1,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17495,3,000,25,2,14,2,23,2,3,0,0,1,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17496,3,000,29,2,70,2,18,2,2,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17497,3,000,34,1,24,2,01,2,1,0,0,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17498,5,103,37,1,16,1,02,0,1,1,1,1,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17499,5,103,37,1,16,1,02,0,1,1,1,1,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17500,5,103,37,1,16,1,02,0,1,1,1,1,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17501,5,103,37,1,19,1,02,0,1,1,1,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17502,5,103,37,1,19,1,02,0,1,1,1,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17503,5,103,37,1,19,1,02,0,1,1,1,2,12,113,010808,1090,1,9999,99999,99999999,9,99999,99999999,231120,0,0,0,0,0,37860,01,999,99999,99999999,A,00306914,90903,S,02648022,426,5,99999,99999999,+30.6457289,-086.9516445,L,1,99999,99999,99999,9,N,N,19275,S,02583339,11300,3,99999,99999,01650,003,001,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000033,32583 +17504,3,000,20,1,34,1,11,2,2,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17505,3,000,20,1,58,2,11,2,2,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17506,3,000,20,2,77,1,01,2,1,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17507,3,000,21,1,40,1,06,2,1,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17508,3,000,21,1,50,1,08,2,2,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17509,3,000,21,1,50,1,08,2,2,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17510,3,000,25,1,1,1,09,2,2,0,0,1,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17511,3,000,25,2,16,1,07,2,2,0,0,1,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17512,3,000,30,2,13,1,07,2,2,0,0,1,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17513,3,000,33,1,25,2,06,2,1,0,0,2,27,037,060813,2001,2,9999,99999,99999999,9,99999,99999999,84307,0,0,0,0,0,33460,02,999,99999,99999999,A,00659464,35180,F,02395614,378,4,99999,99999999,+44.6956291,-093.2920497,L,1,99999,99999,99999,9,N,N,35180,A,02395614,01704,2,99999,99999,17780,56B,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002960,55044 +17514,3,000,20,1,42,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17515,3,000,20,1,42,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17516,3,000,20,1,42,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17517,3,000,20,1,45,1,04,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17518,3,000,20,1,45,1,04,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17519,3,000,20,1,45,1,04,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17520,3,000,20,1,46,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17521,3,000,20,1,46,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17522,3,000,20,1,46,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17523,3,000,20,1,46,1,01,2,1,0,0,2,12,117,021617,1007,1,9999,99999,99999999,9,99999,99999999,1089811,3611,0,0,3611,0,36740,07,999,99999,99999999,A,00303665,90455,S,01935716,422,5,99999,99999999,+28.6947634,-081.4058324,B,1,99999,99999,99999,9,N,N,75725,S,02402993,11701,3,99999,99999,01710,029,009,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000022,32779 +17524,3,000,27,1,17,1,01,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17525,3,000,27,1,17,1,01,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17526,3,000,28,1,13,1,04,2,1,0,0,1,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17527,3,000,28,1,22,1,04,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17528,3,000,28,1,29,1,01,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17529,3,000,28,1,35,1,04,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17530,3,000,28,2,29,1,04,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17531,3,000,28,2,38,1,01,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17532,3,000,29,1,56,1,04,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17533,3,000,29,1,59,1,04,2,1,0,0,2,39,089,756204,3024,3,9999,99999,99999999,9,99999,99999999,90402,0,0,0,0,0,18140,12,999,99999,99999999,A,01074057,25690,A,01086456,198,3,99999,99999999,+39.9747773,-082.7645425,L,1,99999,99999,99999,9,N,N,66390,A,02396357,03200,2,99999,99999,04700,071,031,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,045AFU,43068 +17534,3,000,27,1,14,1,01,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17535,3,000,28,1,27,1,04,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17536,3,000,28,2,14,1,01,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17537,3,000,30,1,2,1,09,2,2,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17538,3,000,30,1,6,1,01,2,1,0,0,1,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17539,3,000,30,1,19,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17540,3,000,30,1,19,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17541,3,000,33,1,29,1,04,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17542,3,000,33,1,61,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17543,3,000,34,1,48,1,01,2,1,0,0,2,27,139,080207,2010,2,9999,99999,99999999,9,99999,99999999,28288,0,0,0,0,0,33460,02,999,99999,99999999,A,00659514,58738,F,02396543,378,4,99999,99999999,+44.7420244,-093.3312215,L,1,99999,99999,99999,9,N,N,58738,A,02396543,01800,2,99999,99999,07290,56A,056,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000112,55378 +17544,3,000,20,1,78,1,01,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17545,3,000,20,1,78,1,01,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17546,3,000,20,2,28,2,15,1,2,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17547,3,000,20,2,38,1,02,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17548,3,000,20,2,39,1,02,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17549,3,000,20,2,39,1,02,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17550,3,000,20,2,44,2,06,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17551,3,000,20,2,52,2,03,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17552,3,000,20,2,56,1,04,1,1,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17553,3,000,20,2,64,1,11,1,2,0,0,2,51,059,450702,1001,1,9999,99999,99999999,9,99999,99999999,670386,0,0,0,0,0,47900,11,999,99999,99999999,A,01480119,94543,N,01927391,548,5,99999,99999999,+38.8363902,-077.2046970,L,1,47894,99999,99999,9,N,N,01912,S,02389138,05907,3,99999,99999,01260,038,037,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000518,22003 +17554,3,000,21,2,25,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17555,3,000,21,2,28,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17556,3,000,21,2,31,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17557,3,000,21,2,31,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17558,3,000,21,2,33,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17559,3,000,21,2,33,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17560,3,000,21,2,33,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17561,3,000,21,2,33,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17562,3,000,21,2,34,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17563,3,000,21,2,34,1,01,2,1,0,0,2,39,099,802701,2014,2,9999,99999,99999999,9,99999,99999999,352783,1674,0,0,1674,0,49660,13,999,99999,99999999,A,01074062,88000,F,01086573,566,3,99999,99999999,+41.0763211,-080.7047087,B,1,99999,99999,99999,9,Y,N,88000,A,01086573,01003,2,99999,99999,04516,058,033,01085497,99999,99999999,9,999,99999,99999999,999999,97831,U,99999,U,050AQY,44511 +17564,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17565,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17566,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17567,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17568,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17569,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17570,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17571,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17572,3,000,20,2,74,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17573,3,000,20,2,75,1,01,1,1,0,0,2,12,119,910300,1009,1,9999,99999,99999999,9,99999,99999999,15570618,425286,0,0,425286,0,45540,11,999,99999,99999999,A,00295740,93666,S,01935974,422,5,99999,99999999,+28.7724902,-081.9807654,B,1,99999,99999,99999,9,N,N,77675,A,02405745,11900,3,99999,99999,01800,033,012,00294478,99999,99999999,9,999,99999,99999999,999999,95266,U,99999,U,000117,32163 +17574,3,000,25,2,8,1,01,2,1,0,0,1,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17575,3,000,25,2,8,1,01,2,1,0,0,1,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17576,3,000,25,2,14,1,15,2,2,0,0,1,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17577,3,000,25,2,25,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17578,3,000,25,2,25,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17579,3,000,25,2,25,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17580,3,000,25,2,25,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17581,3,000,25,2,25,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17582,3,000,25,2,28,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17583,3,000,25,2,46,1,02,2,1,0,0,2,29,019,001507,2014,2,9999,99999,99999999,9,99999,99999999,22779,0,0,0,0,0,17860,04,999,99999,99999999,A,00758464,15688,N,00766332,190,4,99999,99999999,+38.9838249,-092.3135857,L,1,99999,99999,99999,9,Y,N,15670,A,02393605,00601,2,99999,99999,01000,045,019,01779791,99999,99999999,9,999,99999,99999999,999999,18937,U,99999,U,00002B,65202 +17584,3,000,25,2,14,1,01,2,1,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17585,3,000,25,2,14,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17586,3,000,25,2,14,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17587,3,000,25,2,15,1,06,2,1,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17588,3,000,25,2,15,1,06,2,1,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17589,3,000,25,2,17,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17590,3,000,25,2,17,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17591,3,000,25,2,17,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17592,3,000,25,2,17,2,11,2,2,0,0,1,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17593,3,000,25,2,18,1,06,2,1,0,0,2,12,086,007403,1013,1,9999,99999,99999999,9,99999,99999999,34957,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7292521,-080.2603125,L,1,33124,99999,99999,9,Y,N,14250,A,02404126,08616,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000609,33146 +17594,3,000,21,2,71,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17595,3,000,21,2,71,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17596,3,000,21,2,88,1,01,2,1,0,0,2,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17597,3,000,25,2,6,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17598,3,000,25,2,6,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17599,3,000,25,2,6,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17600,3,000,25,2,6,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17601,3,000,25,2,11,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17602,3,000,25,2,15,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17603,3,000,25,2,15,1,01,2,1,0,0,1,29,073,960500,3006,3,9999,99999,99999999,9,99999,99999999,6599932,0,0,0,0,0,99999,03,999,99999,99999999,A,00758491,14356,N,00766660,999,4,99999,99999999,+38.3321189,-091.5467183,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,2,99999,99999,23340,062,006,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000012,65066 +17604,3,000,21,1,56,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17605,3,000,21,1,57,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17606,3,000,21,2,35,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17607,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17608,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17609,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17610,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17611,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17612,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17613,3,000,21,2,38,2,06,2,1,0,0,2,48,113,006200,1012,1,9999,99999,99999999,9,99999,99999999,55350,0,0,0,0,0,19100,33,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.7165783,-096.8384378,L,1,19124,99999,99999,9,Y,N,19000,A,02410288,02316,3,99999,99999,16230,104,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004037,75224 +17614,3,000,30,1,20,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17615,3,000,30,1,21,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17616,3,000,30,1,24,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17617,3,000,30,2,4,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17618,3,000,30,2,8,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17619,3,000,30,2,8,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17620,3,000,30,2,17,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17621,3,000,32,1,32,1,02,2,1,0,0,2,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17622,3,000,33,2,4,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17623,3,000,34,1,17,1,02,2,1,0,0,1,29,189,212300,4003,4,9999,99999,99999999,9,99999,99999999,219138,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,52814,N,00767352,476,4,99999,99999999,+38.7154437,-090.3007145,L,1,99999,99999,99999,9,N,N,52796,A,02395249,01903,2,99999,99999,22650,085,014,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,NOR030,63121 +17624,3,000,21,2,40,2,11,2,2,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17625,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17626,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17627,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17628,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17629,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17630,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17631,3,000,21,2,60,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17632,3,000,21,2,62,2,11,2,2,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17633,3,000,22,2,24,1,01,2,1,0,0,2,34,027,044000,4005,4,9999,99999,99999999,9,99999,99999999,187328,0,0,0,0,0,35620,11,999,99999,99999999,A,00882231,12130,A,00882194,408,2,99999,99999999,+40.7498206,-074.4334437,L,1,35084,99999,99999,9,N,N,28020,S,02806091,01504,1,99999,99999,00004,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,025001,07928 +17634,3,000,21,2,56,1,02,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17635,3,000,21,2,57,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17636,3,000,21,2,57,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17637,3,000,21,2,59,1,02,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17638,3,000,21,2,65,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17639,3,000,21,2,65,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17640,3,000,21,2,65,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17641,3,000,21,2,65,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17642,3,000,21,2,65,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17643,3,000,21,2,66,1,01,2,1,0,0,2,34,029,734003,3003,3,9999,99999,99999999,9,99999,99999999,63216,0,0,0,0,0,35620,03,999,99999,99999999,A,00882279,03050,A,00882070,408,2,99999,99999999,+39.7444655,-074.2459173,L,1,35154,99999,99999,9,9,9,99999,9,99999999,01201,1,99999,99999,16470,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,003004,08005 +17644,3,000,25,1,1,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17645,3,000,25,1,2,1,22,2,3,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17646,3,000,25,1,2,2,02,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17647,3,000,25,1,8,1,22,2,3,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17648,3,000,25,1,11,1,22,2,3,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17649,3,000,25,1,12,1,01,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17650,3,000,25,1,14,1,13,2,2,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17651,3,000,25,1,16,1,13,2,2,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17652,3,000,25,1,18,2,02,2,1,0,0,2,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17653,3,000,25,2,0,2,02,2,1,0,0,1,51,710,000901,5013,5,9999,99999,99999999,9,99999,99999999,21093,0,0,0,0,0,47260,02,999,99999,99999999,F,01498557,94875,F,01498557,545,5,99999,99999999,+36.9241736,-076.2932410,L,1,99999,99999,99999,9,Y,N,57000,A,01498557,71001,3,99999,99999,02670,079,006,01779803,99999,99999999,9,999,99999,99999999,999999,90892,U,99999,U,000104,23505 +17654,3,000,21,2,40,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17655,3,000,21,2,40,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17656,3,000,21,2,40,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17657,3,000,21,2,42,2,03,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17658,3,000,21,2,44,1,02,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17659,3,000,21,2,44,2,03,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17660,3,000,21,2,44,2,03,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17661,3,000,21,2,44,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17662,3,000,21,2,45,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17663,3,000,21,2,48,2,06,2,1,0,0,2,36,005,021100,4001,4,9999,99999,99999999,9,99999,99999999,13742,0,0,0,0,0,35620,15,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8397131,-073.9219134,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04204,1,99999,99999,20580,077,029,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000009,10452 +17664,3,000,25,2,1,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17665,3,000,25,2,6,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17666,3,000,25,2,6,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17667,3,000,25,2,7,2,06,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17668,3,000,25,2,8,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17669,3,000,25,2,10,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17670,3,000,25,2,11,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17671,3,000,25,2,12,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17672,3,000,25,2,12,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17673,3,000,25,2,12,1,01,2,1,0,0,1,36,059,411500,3010,3,9999,99999,99999999,9,99999,99999999,54093,0,0,0,0,0,35620,04,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6239165,-073.7034309,L,1,35004,99999,99999,9,N,N,34319,A,02390895,03212,1,99999,99999,31710,020,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000398,11598 +17674,3,000,25,2,1,1,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17675,3,000,25,2,1,1,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17676,3,000,25,2,1,1,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17677,3,000,25,2,3,1,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17678,3,000,25,2,3,1,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17679,3,000,25,2,3,1,07,2,2,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17680,3,000,25,2,3,2,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17681,3,000,25,2,3,2,01,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17682,3,000,25,2,3,2,06,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17683,3,000,25,2,3,2,06,2,1,0,0,1,12,057,010303,2000,2,9999,99999,99999999,9,99999,99999999,452935,1429,0,0,1429,0,45300,15,999,99999,99999999,A,00295757,93367,S,01935951,999,5,99999,99999999,+28.0543708,-082.2936794,B,1,99999,99999,99999,9,N,N,71725,S,02402927,05706,3,99999,99999,00870,058,020,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000631,33592 +17684,3,000,25,2,34,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17685,3,000,25,2,34,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17686,3,000,25,2,41,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17687,3,000,25,2,41,1,02,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17688,3,000,25,2,44,2,11,2,2,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17689,3,000,27,1,14,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17690,3,000,27,2,11,1,07,2,2,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17691,3,000,30,1,1,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17692,3,000,30,1,4,1,02,2,1,0,0,1,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17693,3,000,31,2,75,2,06,2,1,0,0,2,20,209,040100,2003,2,9999,99999,99999999,9,99999,99999999,50459,0,0,0,0,0,28140,03,999,99999,99999999,C,00485065,36000,F,00485601,312,4,99999,99999999,+39.1372271,-094.6543530,L,1,99999,99999,99999,9,Y,N,36000,A,00485601,00400,2,99999,99999,07950,035,004,00481813,99999,99999999,9,999,99999,99999999,999999,43912,U,99999,U,600180,66104 +17694,3,000,25,1,19,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17695,3,000,25,1,24,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17696,3,000,25,1,24,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17697,3,000,25,1,24,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17698,3,000,25,1,24,1,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17699,3,000,25,1,25,1,04,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17700,3,000,25,1,25,1,04,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17701,3,000,25,1,25,1,04,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17702,3,000,25,1,26,2,01,2,1,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17703,3,000,25,1,26,2,11,2,2,0,0,2,36,081,064500,2001,2,9999,99999,99999999,9,99999,99999999,16404,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7097770,-073.8525942,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000455,11375 +17704,3,000,21,2,34,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17705,3,000,21,2,35,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17706,3,000,21,2,35,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17707,3,000,21,2,35,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17708,3,000,21,2,36,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17709,3,000,21,2,36,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17710,3,000,21,2,36,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17711,3,000,21,2,36,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17712,3,000,21,2,36,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17713,3,000,21,2,36,1,04,2,1,0,0,2,36,081,134702,2004,2,9999,99999,99999999,9,99999,99999999,38181,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7396866,-073.7795470,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04408,1,99999,99999,20580,025,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000203,11365 +17714,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17715,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17716,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17717,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17718,3,000,20,2,34,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17719,3,000,20,2,40,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17720,3,000,20,2,43,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17721,3,000,20,2,43,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17722,3,000,20,2,43,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17723,3,000,20,2,43,1,01,2,1,0,0,2,17,031,812301,2003,2,9999,99999,99999999,9,99999,99999999,15301,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,54898,B,00429472,176,3,99999,99999999,+41.8896469,-087.8036636,L,1,16984,99999,99999,9,N,N,54885,A,02399539,03111,2,29250,29280,99999,078,039,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,850020,60301 +17724,3,000,20,2,70,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17725,3,000,20,2,70,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17726,3,000,20,2,71,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17727,3,000,20,2,71,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17728,3,000,21,1,49,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17729,3,000,21,1,49,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17730,3,000,21,1,49,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17731,3,000,21,1,49,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17732,3,000,21,1,49,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17733,3,000,21,1,49,1,01,2,1,0,0,2,26,099,225401,1011,1,9999,99999,99999999,9,99999,99999999,73227,0,0,0,0,0,19820,10,999,99999,99999999,A,01622992,72820,A,01627062,220,3,99999,99999999,+42.6852983,-083.0846269,L,1,47664,99999,99999,9,9,9,99999,9,99999999,03002,2,99999,99999,34470,036,008,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,099222,48316 +17734,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17735,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17736,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17737,3,000,25,2,12,1,01,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17738,3,000,25,2,13,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17739,3,000,25,2,13,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17740,3,000,25,2,13,1,04,2,1,0,0,1,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17741,3,000,25,2,20,2,34,2,3,0,0,2,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17742,3,000,25,2,22,1,02,2,1,0,0,2,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17743,3,000,25,2,22,1,02,2,1,0,0,2,36,085,027302,1012,1,9999,99999,99999999,9,99999,99999999,27512,0,0,0,0,0,35620,11,999,99999,99999999,C,00974141,70915,G,00979522,408,2,99999,99999999,+40.5994191,-074.1327715,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04502,1,99999,99999,20580,063,024,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000193,10314 +17744,3,000,25,1,19,1,01,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17745,3,000,25,1,19,1,09,2,2,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17746,3,000,25,1,22,1,02,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17747,3,000,25,1,22,1,02,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17748,3,000,25,1,23,1,02,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17749,3,000,25,1,23,1,02,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17750,3,000,25,1,23,1,02,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17751,3,000,25,1,23,1,02,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17752,3,000,25,1,23,2,11,2,2,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17753,3,000,25,1,25,1,01,2,1,0,0,2,08,005,082900,1000,1,9999,99999,99999999,9,99999,99999999,945068,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93382,S,01935571,216,8,99999,99999999,+39.6908913,-104.7577516,L,1,99999,99999,99999,9,Y,N,04000,A,02409757,01401,4,99999,99999,02340,036,029,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005557,80017 +17754,3,000,20,2,37,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17755,3,000,20,2,37,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17756,3,000,20,2,37,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17757,3,000,20,2,38,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17758,3,000,20,2,38,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17759,3,000,20,2,39,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17760,3,000,20,2,50,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17761,3,000,20,2,51,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17762,3,000,20,2,51,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17763,3,000,20,2,51,1,01,2,1,0,0,2,42,079,210200,1025,1,9999,99999,99999999,9,99999,99999999,27742,0,0,0,0,0,42540,08,999,99999,99999999,A,01209183,20424,F,01215385,999,2,99999,99999999,+41.3244694,-075.7462707,L,1,99999,99999,99999,9,N,N,20424,A,01215385,00801,1,99999,99999,19200,118,022,01779798,99999,99999999,9,999,99999,99999999,999999,80227,U,99999,U,000280,18641 +17764,3,000,20,1,73,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17765,3,000,20,1,73,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17766,3,000,20,1,74,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17767,3,000,20,1,75,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17768,3,000,20,1,75,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17769,3,000,20,1,75,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17770,3,000,20,1,75,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17771,3,000,20,1,75,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17772,3,000,20,1,75,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17773,3,000,20,1,77,1,01,2,1,0,0,2,02,020,002813,2001,2,9999,99999,99999999,9,17140,02418878,1690065,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1599804,-149.6889889,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,027,00N,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,27-935,99507 +17774,3,000,25,1,13,2,11,2,2,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17775,3,000,25,1,17,2,11,2,2,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17776,3,000,25,1,18,1,01,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17777,3,000,25,1,19,1,04,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17778,3,000,25,1,19,1,04,2,1,0,0,2,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17779,3,000,25,2,3,1,09,2,2,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17780,3,000,25,2,13,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17781,3,000,25,2,13,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17782,3,000,25,2,13,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17783,3,000,25,2,13,1,04,2,1,0,0,1,06,059,052429,3006,3,9999,99999,99999999,9,99999,99999999,9800,0,0,0,0,0,31080,45,999,99999,99999999,A,00277294,91413,S,01935093,348,9,99999,99999999,+33.7105967,-117.7388431,L,1,11244,99999,99999,9,Y,N,36770,A,02410116,05921,4,99999,99999,84500,068,037,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92620 +17784,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17785,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17786,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17787,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17788,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17789,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17790,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17791,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17792,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17793,3,000,25,1,11,1,01,2,1,0,0,1,06,059,032058,2006,2,9999,99999,99999999,9,99999,99999999,492890,0,0,0,0,0,31080,49,999,99999,99999999,A,00277294,91977,S,02583200,348,9,99999,99999999,+33.5424241,-117.6442603,L,1,11244,99999,99999,9,N,N,39114,S,02583048,05927,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92694 +17794,3,000,20,2,60,1,02,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17795,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17796,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17797,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17798,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17799,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17800,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17801,3,000,20,2,62,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17802,3,000,20,2,62,2,11,1,2,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17803,3,000,20,2,64,1,01,1,1,0,0,2,36,119,002104,3000,3,9999,99999,99999999,9,99999,99999999,58098,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,84000,F,00979660,408,2,99999,99999999,+40.9560174,-073.8450830,L,1,35614,99999,99999,9,N,N,84000,A,00979660,03112,1,99999,99999,31920,090,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000853,10710 +17804,3,000,21,1,52,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17805,3,000,21,1,52,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17806,3,000,21,1,53,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17807,3,000,21,1,54,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17808,3,000,21,1,58,1,02,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17809,3,000,21,1,62,1,02,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17810,3,000,21,2,34,2,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17811,3,000,21,2,36,1,01,2,1,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17812,3,000,21,2,36,2,11,2,2,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17813,3,000,21,2,38,2,11,2,2,0,0,2,13,139,001204,2006,2,9999,99999,99999999,9,99999,99999999,1404291,8274,0,0,8274,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2071400,-083.8009756,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,30507 +17814,3,000,20,1,45,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17815,3,000,20,1,49,2,11,2,2,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17816,3,000,20,1,49,2,11,2,2,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17817,3,000,20,1,53,1,01,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17818,3,000,20,1,54,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17819,3,000,20,1,54,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17820,3,000,20,1,54,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17821,3,000,20,1,54,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17822,3,000,20,1,54,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17823,3,000,20,1,54,1,02,2,1,0,0,2,37,051,003311,2000,2,9815,39675,02418691,R,99999,99999999,560260,0,0,0,0,0,22180,08,999,99999,99999999,A,01026124,92892,N,01026604,246,5,99999,99999999,+35.0598843,-078.9961454,L,1,99999,99999,99999,9,Y,N,22920,A,02403604,05003,3,99999,99999,00011,043,021,01027616,99999,99999999,9,999,99999,99999999,999999,29440,U,99999,U,00CC27,28314 +17824,3,000,20,2,51,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17825,3,000,20,2,51,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17826,3,000,20,2,51,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17827,3,000,20,2,51,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17828,3,000,20,2,52,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17829,3,000,20,2,52,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17830,3,000,20,2,56,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17831,3,000,20,2,56,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17832,3,000,20,2,61,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17833,3,000,20,2,61,1,01,2,1,0,0,2,37,139,960701,2000,2,9999,99999,99999999,9,99999,99999999,9270186,0,0,0,0,0,21020,03,999,99999,99999999,A,01026330,92292,N,01027026,545,5,99999,99999999,+36.2454833,-076.1944486,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,03540,005,001,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000NIX,27909 +17834,3,000,25,1,15,1,01,2,1,0,0,1,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17835,3,000,25,1,15,1,01,2,1,0,0,1,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17836,3,000,25,1,15,1,01,2,1,0,0,1,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17837,3,000,27,2,20,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17838,3,000,27,2,22,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17839,3,000,30,2,20,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17840,3,000,34,1,18,2,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17841,3,000,34,1,20,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17842,3,000,34,1,23,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17843,3,000,34,1,23,1,01,2,1,0,0,2,38,015,010300,3003,3,9999,99999,99999999,9,99999,99999999,16611,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8220508,-100.7670549,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,035,035,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,003506,58501 +17844,3,000,20,2,20,1,02,1,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17845,3,000,20,2,24,1,02,1,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17846,3,000,20,1,75,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17847,3,000,20,1,75,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17848,3,000,20,1,76,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17849,3,000,20,1,91,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17850,3,000,20,1,91,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17851,3,000,20,1,91,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17852,3,000,20,2,26,1,14,2,2,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17853,3,000,20,2,46,1,02,2,1,0,0,2,39,035,116300,1005,1,9999,99999,99999999,9,99999,99999999,9646,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5455634,-081.6053529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018ATJ,44108 +17854,3,000,20,2,63,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17855,3,000,20,2,63,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17856,3,000,20,2,63,1,01,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17857,3,000,20,2,68,1,02,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17858,3,000,21,1,74,1,02,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17859,3,000,22,2,48,1,02,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17860,3,000,22,2,48,1,02,2,1,0,0,2,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17861,3,000,25,1,0,1,01,2,1,0,0,1,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17862,3,000,25,1,12,1,02,2,1,0,0,1,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17863,3,000,25,1,12,1,02,2,1,0,0,1,39,049,002760,1012,1,9999,99999,99999999,9,99999,99999999,23045,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.9573519,-082.9233098,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03408,2,99999,99999,04380,025,015,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025AFS,43209 +17864,3,000,25,2,12,1,01,2,1,0,0,1,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17865,3,000,25,2,15,1,01,2,1,0,0,1,39,153,520600,1000,1,9999,99999,99999999,9,99999,99999999,112801,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1619260,-081.4689403,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17866,3,000,20,1,49,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17867,3,000,20,1,49,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17868,3,000,20,1,76,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17869,3,000,20,1,76,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17870,3,000,20,2,45,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17871,3,000,20,2,61,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17872,3,000,20,2,61,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17873,3,000,20,2,66,1,01,1,1,0,0,2,39,153,520600,1003,1,9999,99999,99999999,9,99999,99999999,15145,0,0,0,0,0,10420,13,999,99999,99999999,A,01074088,19778,F,01087001,184,3,99999,99999999,+41.1523655,-081.4729730,L,1,99999,99999,99999,9,N,N,19778,A,01087001,01202,2,99999,99999,04383,036,028,01085497,99999,99999999,9,999,99999,99999999,999999,00766,U,99999,U,077ALV,44221 +17874,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17875,3,000,20,1,53,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17876,3,000,20,1,61,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17877,3,000,20,1,65,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17878,3,000,20,1,66,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17879,3,000,20,1,66,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17880,3,000,20,1,66,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17881,3,000,20,2,43,1,25,2,3,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17882,3,000,20,2,45,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17883,3,000,20,2,45,1,01,2,1,0,0,2,40,109,108535,2025,2,9999,99999,99999999,9,99999,99999999,29109,0,0,0,0,0,36420,05,999,99999,99999999,A,01101842,92422,S,02584399,416,7,99999,99999999,+35.6352850,-097.6046228,L,1,99999,99999,99999,9,Y,N,55000,A,02411311,21401,3,99999,99999,09570,082,047,01102857,99999,99999999,9,999,99999,99999999,999999,65080,U,99999,U,000139,73013 +17884,3,000,21,2,49,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17885,3,000,21,2,60,1,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17886,3,000,21,2,62,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17887,3,000,21,2,63,2,06,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17888,3,000,22,1,76,1,01,2,1,0,0,2,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17889,3,000,25,1,4,1,08,2,2,0,0,1,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17890,3,000,25,1,5,1,01,2,1,0,0,1,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17891,3,000,25,1,5,1,01,2,1,0,0,1,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17892,3,000,25,1,5,1,01,2,1,0,0,1,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17893,3,000,25,1,5,1,01,2,1,0,0,1,41,047,000502,3008,3,9999,99999,99999999,9,99999,99999999,13245,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9748798,-122.9978576,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04703,4,99999,99999,10820,022,011,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97301 +17894,3,000,21,1,47,1,11,2,2,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17895,3,000,21,1,85,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17896,3,000,21,1,87,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17897,3,000,22,1,46,1,03,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17898,3,000,22,2,23,1,08,2,2,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17899,3,000,22,2,73,1,08,2,2,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17900,3,000,25,1,19,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17901,3,000,25,1,19,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17902,3,000,25,1,19,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17903,3,000,25,1,19,1,01,2,1,0,0,2,41,047,010802,4030,4,9999,99999,99999999,9,99999,99999999,48506,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,91428,S,01938032,440,9,99999,99999999,+44.7093290,-123.0087990,L,1,99999,99999,99999,9,N,N,37250,A,02410137,04705,4,99999,99999,06710,023,012,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,37250,R,,97352 +17904,3,000,21,2,69,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17905,3,000,25,1,9,1,01,2,1,0,0,1,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17906,3,000,25,2,23,1,01,2,1,0,0,2,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17907,3,000,30,1,3,1,07,2,2,0,0,1,41,061,970200,3237,3,9999,99999,99999999,9,99999,99999999,18092,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0284375,-117.9235233,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17908,3,000,20,2,62,1,01,1,1,0,0,2,41,061,970200,3238,3,9999,99999,99999999,9,99999,99999999,18403,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0292454,-117.9220367,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17909,3,000,20,1,50,1,01,2,1,0,0,2,41,061,970200,3238,3,9999,99999,99999999,9,99999,99999999,18403,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0292454,-117.9220367,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17910,3,000,20,2,37,1,01,2,1,0,0,2,41,061,970200,3238,3,9999,99999,99999999,9,99999,99999999,18403,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0292454,-117.9220367,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17911,3,000,20,2,59,1,01,2,1,0,0,2,41,061,970200,3238,3,9999,99999,99999999,9,99999,99999999,18403,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0292454,-117.9220367,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17912,3,000,20,2,59,1,01,2,1,0,0,2,41,061,970200,3238,3,9999,99999,99999999,9,99999,99999999,18403,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0292454,-117.9220367,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17913,3,000,20,2,64,1,01,2,1,0,0,2,41,061,970200,3238,3,9999,99999,99999999,9,99999,99999999,18403,0,0,0,0,0,29260,02,999,99999,99999999,A,01164165,93281,S,01938141,999,9,99999,99999999,+45.0292454,-117.9220367,L,2,99999,99999,99999,9,N,N,53300,A,02411277,05901,4,99999,99999,08940,058,029,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,53300,R,,97867 +17914,3,000,30,2,2,1,01,2,1,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +17915,3,000,30,2,2,1,01,2,1,0,0,1,42,011,013503,1002,1,9999,99999,99999999,9,99999,99999999,642693,4341,0,0,4341,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4552508,-075.8591657,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19522 +17916,3,000,20,2,51,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17917,3,000,20,2,52,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17918,3,000,20,2,60,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17919,3,000,20,2,61,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17920,3,000,20,2,61,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17921,3,000,20,2,88,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17922,3,000,20,2,88,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17923,3,000,20,2,88,1,01,1,1,0,0,2,42,011,013503,1003,1,9999,99999,99999999,9,99999,99999999,1551697,10005,0,0,10005,0,39740,09,999,99999,99999999,A,01209172,46680,A,01215933,428,2,99999,99999999,+40.4583542,-075.8691002,B,1,99999,99999,99999,9,N,N,06984,S,02631250,02703,1,99999,99999,09780,005,029,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000654,19510 +17924,3,000,20,1,22,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17925,3,000,21,1,65,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17926,3,000,21,1,65,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17927,3,000,21,1,71,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17928,3,000,21,1,72,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17929,3,000,21,1,73,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17930,3,000,21,1,73,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17931,3,000,21,1,73,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17932,3,000,21,1,74,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17933,3,000,21,1,82,1,01,2,1,0,0,2,42,071,010701,1015,1,9999,99999,99999999,9,99999,99999999,5987,0,0,0,0,0,29540,11,999,99999,99999999,A,01209181,23016,F,01215337,999,2,99999,99999999,+40.1544945,-076.6084084,L,1,99999,99999,99999,9,N,N,23016,A,01215337,03502,1,99999,99999,09120,098,036,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,000470,17022 +17934,3,000,20,1,57,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17935,3,000,20,1,57,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17936,3,000,20,1,57,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17937,3,000,20,2,33,2,11,2,2,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17938,3,000,20,2,57,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17939,3,000,20,2,57,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17940,3,000,20,2,59,1,01,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17941,3,000,21,1,35,2,06,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17942,3,000,21,1,35,2,06,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17943,3,000,21,1,39,2,06,2,1,0,0,2,04,019,000700,3000,3,9999,99999,99999999,9,99999,99999999,17460,0,0,0,0,0,46060,03,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.2231712,-110.9445275,L,1,99999,99999,99999,9,Y,N,77000,A,02412104,01909,4,99999,99999,08800,003,003,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000062,85719 +17944,3,000,21,2,23,1,09,2,2,0,0,2,45,007,011800,3019,3,9999,99999,99999999,9,99999,99999999,82296,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4292139,-082.6605418,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +17945,3,000,25,2,16,1,01,2,1,0,0,1,45,007,011800,3019,3,9999,99999,99999999,9,99999,99999999,82296,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4292139,-082.6605418,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +17946,3,000,25,2,16,1,01,2,1,0,0,1,45,007,011800,3019,3,9999,99999,99999999,9,99999,99999999,82296,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4292139,-082.6605418,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +17947,3,000,25,2,16,1,01,2,1,0,0,1,45,007,011800,3019,3,9999,99999,99999999,9,99999,99999999,82296,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4292139,-082.6605418,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29624 +17948,3,000,20,1,39,1,01,1,1,0,0,2,45,007,011800,3021,3,9999,99999,99999999,9,99999,99999999,45311,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4256423,-082.6639824,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29684 +17949,3,000,20,1,66,1,01,1,1,0,0,2,45,007,011800,3021,3,9999,99999,99999999,9,99999,99999999,45311,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4256423,-082.6639824,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29684 +17950,3,000,20,1,66,1,01,1,1,0,0,2,45,007,011800,3021,3,9999,99999,99999999,9,99999,99999999,45311,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4256423,-082.6639824,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29684 +17951,3,000,20,1,66,1,01,2,1,0,0,2,45,007,011800,3021,3,9999,99999,99999999,9,99999,99999999,45311,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4256423,-082.6639824,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29684 +17952,3,000,20,1,73,1,01,2,1,0,0,2,45,007,011800,3021,3,9999,99999,99999999,9,99999,99999999,45311,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4256423,-082.6639824,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29684 +17953,3,000,20,1,77,1,01,2,1,0,0,2,45,007,011800,3021,3,9999,99999,99999999,9,99999,99999999,45311,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4256423,-082.6639824,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00840,011,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000028,29684 +17954,3,000,20,1,44,1,02,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17955,3,000,20,2,39,1,02,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17956,3,000,20,2,46,1,04,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17957,3,000,20,2,47,1,04,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17958,3,000,20,2,51,1,01,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17959,3,000,20,2,53,1,01,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17960,3,000,20,2,53,1,01,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17961,3,000,20,2,56,1,04,1,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17962,3,000,20,1,31,1,04,2,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17963,3,000,20,1,31,1,04,2,1,0,0,2,48,085,030542,3040,3,9999,99999,99999999,9,99999,99999999,18806,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.1436836,-096.7129470,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,07890,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000038,75070 +17964,3,000,22,2,51,1,01,2,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17965,3,000,25,1,11,1,01,2,1,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17966,3,000,25,1,12,2,11,2,2,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17967,3,000,25,1,13,2,11,2,2,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17968,3,000,25,1,13,2,11,2,2,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17969,3,000,25,2,2,1,01,2,1,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17970,3,000,25,2,9,1,01,2,1,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17971,3,000,25,2,11,2,11,2,2,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17972,3,000,25,2,11,2,11,2,2,0,0,1,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17973,3,000,25,2,18,1,01,2,1,0,0,2,47,035,970502,1035,1,9999,99999,99999999,9,99999,99999999,61507,0,0,0,0,0,18900,06,999,99999,99999999,A,01639736,90036,N,02464223,999,6,99999,99999999,+35.9290415,-085.0370256,L,2,99999,99999,99999,9,Y,N,18540,A,02404161,01800,3,99999,99999,00900,025,015,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001705,38555 +17974,3,000,21,2,70,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17975,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17976,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17977,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17978,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17979,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17980,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17981,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17982,3,000,21,2,72,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17983,3,000,21,2,73,1,01,2,1,0,0,2,36,103,169703,2001,2,9999,99999,99999999,9,99999,99999999,3937646,24745,0,0,24745,0,35620,01,999,99999,99999999,A,00974149,61984,A,00979425,408,2,99999,99999999,+40.9599134,-072.7567501,B,1,35004,99999,99999,9,N,N,04055,S,02389167,03305,1,99999,99999,24690,002,001,01779796,99999,99999999,9,999,99999,99999999,999999,75313,U,99999,U,000879,11933 +17984,3,000,20,2,56,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17985,3,000,20,2,70,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17986,3,000,20,2,70,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17987,3,000,20,2,70,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17988,3,000,20,2,70,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17989,3,000,20,2,73,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17990,3,000,20,2,74,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17991,3,000,20,2,74,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17992,3,000,21,1,26,1,04,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17993,3,000,21,1,45,1,01,2,1,0,0,2,06,059,042335,1005,1,9999,99999,99999999,9,99999,99999999,49504,0,0,0,0,0,31080,48,999,99999,99999999,A,00277294,93110,S,01935316,348,9,99999,99999999,+33.5556896,-117.6884750,L,1,11244,99999,99999,9,N,N,39248,A,02411597,05928,4,99999,99999,07440,073,036,01779778,99999,99999999,9,999,99999,99999999,999999,57709,U,99999,U,,92677 +17994,3,000,22,1,59,1,01,2,1,0,0,2,44,009,051102,2054,2,9999,99999,99999999,9,99999,99999999,41291,0,0,0,0,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3714727,-071.6247810,L,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +17995,3,000,20,1,66,1,01,1,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +17996,3,000,20,1,66,1,01,1,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +17997,3,000,20,1,66,1,01,1,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +17998,3,000,20,1,66,1,01,1,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +17999,3,000,20,2,90,1,01,1,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +18000,3,000,20,2,92,1,01,1,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +18001,3,000,20,1,54,2,01,2,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +18002,3,000,20,1,61,1,01,2,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +18003,3,000,20,1,61,1,01,2,1,0,0,2,44,009,051102,2055,2,9999,99999,99999999,9,99999,99999999,40992,4955,0,0,4955,0,39300,02,715,99999,99999999,N,01219782,14500,A,01220080,148,1,99999,99999999,+41.3731145,-071.6252331,B,1,99999,99999,77200,1,N,N,14320,S,02631329,00400,1,99999,99999,00150,036,038,01219835,99999,99999999,9,999,99999,99999999,999999,15589,U,99999,U,440504,02813 +18004,3,000,25,1,16,1,02,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18005,3,000,25,1,16,1,02,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18006,3,000,25,1,16,1,02,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18007,3,000,25,1,16,1,09,2,2,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18008,3,000,25,1,17,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18009,3,000,25,1,17,1,01,2,1,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18010,3,000,25,1,17,2,11,2,2,0,0,1,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18011,3,000,25,1,18,1,01,2,1,0,0,2,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18012,3,000,25,1,18,1,01,2,1,0,0,2,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18013,3,000,25,1,18,1,02,2,1,0,0,2,13,057,091101,4001,4,9999,99999,99999999,9,99999,99999999,1263657,3674,0,0,3674,0,12060,11,999,99999,99999999,A,01685718,93426,S,01936656,122,5,99999,99999999,+34.1392975,-084.5964446,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00801,3,99999,99999,01110,020,014,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000040,30189 +18014,3,000,25,2,1,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18015,3,000,25,2,1,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18016,3,000,25,2,3,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18017,3,000,25,2,3,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18018,3,000,25,2,3,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18019,3,000,25,2,3,1,01,2,1,0,0,1,47,157,009501,2019,2,9999,99999,99999999,9,99999,99999999,20167,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.0927402,-089.8856870,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,084,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18020,3,000,20,1,70,1,07,1,2,0,0,2,47,157,009501,1006,1,9999,99999,99999999,9,99999,99999999,33708,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.1039381,-089.8937443,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,085,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18021,3,000,20,1,89,1,01,1,1,0,0,2,47,157,009501,1006,1,9999,99999,99999999,9,99999,99999999,33708,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.1039381,-089.8937443,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,085,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18022,3,000,20,2,26,2,07,1,2,0,0,2,47,157,009501,1006,1,9999,99999,99999999,9,99999,99999999,33708,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.1039381,-089.8937443,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,085,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18023,3,000,20,2,31,1,01,1,1,0,0,2,47,157,009501,1006,1,9999,99999,99999999,9,99999,99999999,33708,0,0,0,0,0,32820,09,999,99999,99999999,A,01639790,91868,N,02772135,368,6,99999,99999999,+35.1039381,-089.8937443,L,1,99999,99999,99999,9,Y,N,48000,A,02405068,02502,3,99999,99999,00148,085,033,01325873,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,008177,38117 +18024,3,000,20,1,46,1,03,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18025,3,000,20,1,50,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18026,3,000,20,1,54,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18027,3,000,20,1,55,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18028,3,000,20,1,55,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18029,3,000,20,1,60,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18030,3,000,20,1,60,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18031,3,000,20,1,60,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18032,3,000,20,1,60,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18033,3,000,20,1,60,1,01,2,1,0,0,2,16,001,010407,3039,3,9999,99999,99999999,9,99999,99999999,15125,0,0,0,0,0,14260,01,999,99999,99999999,A,00395066,91863,S,01936747,147,8,99999,99999999,+43.5425797,-116.4342113,L,1,99999,99999,99999,9,N,N,44290,A,02411563,00800,4,99999,99999,01770,022,022,01779783,99999,99999999,9,999,99999,99999999,999999,45775,U,99999,U,012207,83642 +18034,3,000,34,2,49,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18035,3,000,34,2,49,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18036,3,000,34,2,55,1,01,2,1,0,0,2,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18037,3,000,35,1,2,1,01,2,1,0,0,1,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18038,3,000,36,1,12,1,01,2,1,0,0,1,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18039,3,000,36,2,12,1,01,2,1,0,0,1,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18040,3,000,36,2,12,1,01,2,1,0,0,1,33,013,003100,1024,1,9999,99999,99999999,9,99999,99999999,1128538,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1471697,-071.4184146,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18041,3,000,20,2,33,1,01,2,1,0,0,2,33,013,003100,1027,1,9999,99999,99999999,9,99999,99999999,39727,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1568143,-071.4050063,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18042,3,000,20,2,33,1,01,2,1,0,0,2,33,013,003100,1027,1,9999,99999,99999999,9,99999,99999999,39727,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1568143,-071.4050063,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18043,3,000,20,2,33,1,01,2,1,0,0,2,33,013,003100,1027,1,9999,99999,99999999,9,99999,99999999,39727,0,0,0,0,0,18180,02,715,99999,99999999,A,00873180,00660,A,00873528,148,1,99999,99999999,+43.1568143,-071.4050063,L,2,99999,99999,74950,1,9,9,99999,9,99999999,00401,1,01380,99999,99999,622,017,01779794,99999,99999999,9,999,99999,99999999,999999,53740,U,99999,U,ALLE01,03275 +18044,3,000,20,1,43,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18045,3,000,20,1,44,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18046,3,000,20,1,44,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18047,3,000,20,1,44,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18048,3,000,20,1,44,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18049,3,000,20,1,47,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18050,3,000,20,1,48,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18051,3,000,20,1,48,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18052,3,000,20,1,48,2,11,1,2,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18053,3,000,20,1,52,1,01,1,1,0,0,2,48,029,161600,2021,2,9999,99999,99999999,9,99999,99999999,801694,432,0,0,432,0,41700,20,999,99999,99999999,A,01383800,93407,S,02628567,484,7,99999,99999999,+29.3966651,-098.6354939,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05905,3,99999,99999,33120,117,026,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001033,78227 +18054,3,000,20,1,53,1,07,2,2,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18055,3,000,21,1,30,1,01,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18056,3,000,21,1,30,1,01,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18057,3,000,21,1,30,1,01,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18058,3,000,21,1,34,1,01,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18059,3,000,21,1,48,1,06,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18060,3,000,21,2,34,2,01,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18061,3,000,21,2,40,1,06,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18062,3,000,21,2,40,2,06,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18063,3,000,21,2,40,2,06,2,1,0,0,2,36,103,158403,2010,2,9999,99999,99999999,9,99999,99999999,22107,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,10000,A,00978758,408,2,99999,99999999,+40.8897646,-072.9332781,L,1,35004,99999,99999,9,N,N,46976,S,02389478,03306,1,99999,99999,19230,003,001,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000412,11953 +18064,5,104,37,1,36,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18065,5,104,37,1,37,1,01,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18066,5,104,37,1,37,1,01,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18067,5,104,37,1,37,1,01,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18068,5,104,37,1,37,1,01,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18069,5,104,37,1,37,1,01,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18070,5,104,37,1,37,1,01,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18071,5,104,37,1,37,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18072,5,104,37,1,37,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18073,5,104,37,1,37,2,06,0,1,1,1,2,06,071,006501,2012,2,9999,99999,99999999,9,99999,99999999,189215,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1028876,-117.2711299,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07107,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92410 +18074,3,000,25,2,12,1,01,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18075,3,000,25,2,39,1,01,2,1,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18076,3,000,26,2,12,1,01,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18077,3,000,26,2,13,1,03,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18078,3,000,27,1,14,1,03,2,1,0,0,1,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18079,3,000,28,1,48,2,11,2,2,0,0,2,41,031,960304,1095,1,9999,99999,99999999,9,99999,99999999,1992976,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.4854791,-121.2804845,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18080,3,000,20,1,47,1,01,1,1,0,0,2,41,031,960304,1098,1,9999,99999,99999999,9,99999,99999999,526697,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.5043670,-121.2513629,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18081,3,000,21,1,45,1,01,2,1,0,0,2,41,031,960304,1098,1,9999,99999,99999999,9,99999,99999999,526697,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.5043670,-121.2513629,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18082,3,000,21,1,47,1,01,2,1,0,0,2,41,031,960304,1098,1,9999,99999,99999999,9,99999,99999999,526697,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.5043670,-121.2513629,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18083,3,000,28,2,23,1,04,2,1,0,0,2,41,031,960304,1098,1,9999,99999,99999999,9,99999,99999999,526697,0,0,0,0,0,99999,02,999,99999,99999999,A,01155132,90782,S,01937994,999,9,99999,99999999,+44.5043670,-121.2513629,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01702,4,99999,99999,03840,059,030,01155107,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,97734 +18084,3,000,27,2,22,2,06,2,1,0,0,2,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +18085,3,000,30,2,5,2,28,2,3,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +18086,3,000,33,2,5,2,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +18087,3,000,33,2,13,1,01,2,1,0,0,1,48,043,950300,3033,3,9999,99999,99999999,9,99999,99999999,12455,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3621724,-103.6733084,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000001,79830 +18088,3,000,20,1,45,1,01,2,1,0,0,2,48,043,950300,3063,3,9999,99999,99999999,9,99999,99999999,10358,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3605146,-103.6663963,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000004,79830 +18089,3,000,20,1,52,1,01,2,1,0,0,2,48,043,950300,3063,3,9999,99999,99999999,9,99999,99999999,10358,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3605146,-103.6663963,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000004,79830 +18090,3,000,20,1,52,1,01,2,1,0,0,2,48,043,950300,3063,3,9999,99999,99999999,9,99999,99999999,10358,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3605146,-103.6663963,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000004,79830 +18091,3,000,20,1,69,1,01,2,1,0,0,2,48,043,950300,3063,3,9999,99999,99999999,9,99999,99999999,10358,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3605146,-103.6663963,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000004,79830 +18092,3,000,20,1,75,1,01,2,1,0,0,2,48,043,950300,3063,3,9999,99999,99999999,9,99999,99999999,10358,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3605146,-103.6663963,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000004,79830 +18093,3,000,20,1,75,1,01,2,1,0,0,2,48,043,950300,3063,3,9999,99999,99999999,9,99999,99999999,10358,0,0,0,0,0,99999,23,999,99999,99999999,A,01383807,90040,S,01938483,999,7,99999,99999999,+30.3605146,-103.6663963,L,9,99999,99999,99999,9,N,N,02104,A,02409685,07300,3,99999,99999,07950,074,019,01779801,99999,99999999,9,999,99999,99999999,999999,01711,U,99999,U,000004,79830 +18094,3,000,25,2,18,2,06,2,1,0,0,2,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18095,3,000,25,2,18,2,06,2,1,0,0,2,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18096,3,000,26,1,3,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18097,3,000,26,1,11,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18098,3,000,26,1,11,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18099,3,000,27,1,12,1,01,2,1,0,0,1,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18100,3,000,28,1,23,2,06,2,1,0,0,2,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18101,3,000,28,1,24,2,06,2,1,0,0,2,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18102,3,000,28,2,20,1,01,2,1,0,0,2,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18103,3,000,28,2,90,1,02,2,1,0,0,2,48,181,001700,2010,2,9999,99999,99999999,9,99999,99999999,89570,0,0,0,0,0,43300,04,999,99999,99999999,A,01383876,91125,S,01938703,206,7,99999,99999999,+33.6104626,-096.6397847,L,1,99999,99999,99999,9,Y,N,67496,A,02411888,00800,3,99999,99999,40080,062,030,01779801,99999,99999999,9,999,99999,99999999,999999,81631,U,99999,U,000302,75092 +18104,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18105,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18106,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18107,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18108,3,000,20,2,42,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18109,3,000,20,2,44,1,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18110,3,000,20,2,47,2,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18111,3,000,20,2,47,2,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18112,3,000,20,2,49,2,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18113,3,000,20,2,49,2,01,2,1,0,0,2,48,187,210400,1020,1,9999,99999,99999999,9,99999,99999999,100879,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93500,S,01939182,484,7,99999,99999999,+29.5653505,-097.9331215,L,1,99999,99999,99999,9,N,N,66644,A,02411860,05700,3,99999,99999,39690,044,021,01779801,99999,99999999,9,999,99999,99999999,999999,80497,U,99999,U,000106,78155 +18114,3,000,25,2,27,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18115,3,000,26,1,9,1,02,2,1,0,0,1,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18116,3,000,28,1,53,1,04,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18117,3,000,30,2,5,2,06,2,1,0,0,1,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18118,3,000,32,2,19,2,06,2,1,0,0,2,48,201,520501,1017,1,9999,99999,99999999,9,99999,99999999,18394,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8233009,-095.4894517,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18119,3,000,20,2,35,2,11,1,2,0,0,2,48,201,520501,1021,1,9999,99999,99999999,9,99999,99999999,19883,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8199805,-095.4842979,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18120,3,000,20,2,73,2,01,1,1,0,0,2,48,201,520501,1021,1,9999,99999,99999999,9,99999,99999999,19883,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8199805,-095.4842979,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18121,3,000,20,1,36,2,06,2,1,0,0,2,48,201,520501,1021,1,9999,99999,99999999,9,99999,99999999,19883,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8199805,-095.4842979,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18122,3,000,20,1,36,2,06,2,1,0,0,2,48,201,520501,1021,1,9999,99999,99999999,9,99999,99999999,19883,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8199805,-095.4842979,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18123,3,000,20,1,49,2,06,2,1,0,0,2,48,201,520501,1021,1,9999,99999,99999999,9,99999,99999999,19883,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.8199805,-095.4842979,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04611,3,99999,99999,41100,148,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000446,77092 +18124,3,000,25,2,5,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18125,3,000,25,2,5,1,04,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18126,3,000,25,2,6,1,07,2,2,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18127,3,000,25,2,7,2,11,2,2,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18128,3,000,25,2,7,2,11,2,2,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18129,3,000,25,2,8,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18130,3,000,25,2,8,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18131,3,000,25,2,8,1,02,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18132,3,000,25,2,11,2,06,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18133,3,000,25,2,12,1,01,2,1,0,0,1,48,201,552303,2005,2,9999,99999,99999999,9,99999,99999999,22746,0,0,0,0,0,26420,10,999,99999,99999999,A,01383886,92845,S,01939050,288,7,99999,99999999,+29.9654714,-095.5909729,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04631,3,99999,99999,16110,130,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000519,77429 +18134,3,000,25,1,18,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18135,3,000,25,1,18,2,11,2,2,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18136,3,000,25,1,18,2,11,2,2,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18137,3,000,25,1,18,2,11,2,2,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18138,3,000,25,1,19,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18139,3,000,25,1,19,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18140,3,000,25,1,21,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18141,3,000,25,1,21,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18142,3,000,25,1,24,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18143,3,000,25,1,24,2,06,2,1,0,0,2,51,107,610603,1025,1,9999,99999,99999999,9,99999,99999999,89509,0,0,0,0,0,47900,10,999,99999,99999999,A,01480141,94247,N,01927375,548,5,99999,99999999,+39.1028451,-077.5545299,L,1,47894,99999,99999,9,N,N,44984,A,02391266,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000506,20175 +18144,3,000,25,1,9,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18145,3,000,25,1,9,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18146,3,000,25,1,9,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18147,3,000,25,1,9,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18148,3,000,25,1,9,2,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18149,3,000,25,1,17,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18150,3,000,25,1,17,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18151,3,000,25,1,17,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18152,3,000,25,1,17,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18153,3,000,25,1,17,1,02,2,1,0,0,1,39,049,010201,4011,4,9999,99999,99999999,9,99999,99999999,8782,0,0,0,0,0,18140,03,999,99999,99999999,A,01074037,18000,F,01086101,198,3,99999,99999999,+39.8955062,-082.8469823,L,1,99999,99999,99999,9,Y,N,18000,A,01086101,03409,2,99999,99999,04697,020,003,01085497,99999,99999999,9,999,99999,99999999,999999,19234,U,99999,U,025BGL,43110 +18154,3,000,20,1,20,1,08,2,2,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18155,3,000,20,1,38,1,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18156,3,000,20,1,63,2,06,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18157,3,000,20,2,31,1,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18158,3,000,20,2,31,1,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18159,3,000,20,2,31,1,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18160,3,000,20,2,31,1,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18161,3,000,20,2,36,2,06,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18162,3,000,21,2,23,2,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18163,3,000,21,2,58,1,01,2,1,0,0,2,48,327,950300,3030,3,9999,99999,99999999,9,99999,99999999,14059,0,0,0,0,0,99999,11,999,99999,99999999,A,01383949,92520,S,01938985,999,7,99999,99999999,+30.9142821,-099.7892522,L,9,99999,99999,99999,9,N,N,47628,A,02411076,07200,3,99999,99999,30210,053,028,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,76859 +18164,3,000,21,1,62,1,08,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18165,3,000,21,1,62,1,08,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18166,3,000,21,2,26,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18167,3,000,21,2,26,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18168,3,000,21,2,28,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18169,3,000,21,2,29,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18170,3,000,21,2,29,1,01,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18171,3,000,21,2,35,2,11,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18172,3,000,21,2,39,2,11,2,2,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18173,3,000,21,2,56,2,06,2,1,0,0,2,48,339,693202,2007,2,9999,99999,99999999,9,99999,99999999,6685,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.2516252,-095.4510100,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,15000,003,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000015,77302 +18174,3,000,20,2,32,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18175,3,000,20,2,35,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18176,3,000,21,1,47,2,06,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18177,3,000,21,2,57,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18178,3,000,21,2,59,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18179,3,000,21,2,59,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18180,3,000,21,2,64,1,01,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18181,3,000,21,2,82,1,07,2,2,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18182,3,000,22,1,24,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18183,3,000,22,1,40,1,02,2,1,0,0,2,39,061,010400,2002,2,9999,99999,99999999,9,99999,99999999,7419,0,0,0,0,0,17140,01,999,99999,99999999,A,01074043,15000,F,01086201,178,3,99999,99999999,+39.0829176,-084.6179767,L,1,99999,99999,99999,9,Y,N,15000,A,01086201,04705,2,99999,99999,04375,029,008,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,031AKY,45238 +18184,3,000,21,1,30,2,11,2,2,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18185,3,000,22,1,61,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18186,3,000,22,1,61,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18187,3,000,22,1,61,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18188,3,000,25,1,7,1,01,2,1,0,0,1,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18189,3,000,25,1,15,1,01,2,1,0,0,1,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18190,3,000,25,1,15,1,01,2,1,0,0,1,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18191,3,000,25,1,40,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18192,3,000,25,1,40,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18193,3,000,25,1,41,1,01,2,1,0,0,2,47,001,020902,1029,1,9999,99999,99999999,9,99999,99999999,210827,0,0,0,0,0,28940,03,999,99999,99999999,A,01639722,90382,N,02464118,315,6,99999,99999999,+36.1820673,-084.0568609,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,00090,036,005,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,37705 +18194,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18195,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18196,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18197,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18198,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18199,3,000,25,1,2,1,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18200,3,000,25,1,2,1,02,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18201,3,000,25,1,2,1,02,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18202,3,000,25,1,3,2,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18203,3,000,25,1,3,2,01,2,1,0,0,1,48,409,010603,2005,2,9999,99999,99999999,9,99999,99999999,50803,0,0,0,0,0,18580,27,999,99999,99999999,A,01383990,93103,S,01938806,204,7,99999,99999999,+27.8892149,-097.3056958,L,1,99999,99999,99999,9,N,N,58904,A,02411472,06500,3,99999,99999,21780,043,021,01779801,99999,99999999,9,999,99999,99999999,999999,20287,U,99999,U,000116,78374 +18204,3,000,25,2,16,2,01,2,1,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18205,3,000,25,2,16,2,01,2,1,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18206,3,000,25,2,16,2,01,2,1,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18207,3,000,27,1,34,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18208,3,000,30,1,9,1,07,2,2,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18209,3,000,30,2,15,1,07,2,2,0,0,1,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18210,3,000,33,2,33,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18211,3,000,34,1,33,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18212,3,000,34,1,33,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18213,3,000,34,1,34,2,06,2,1,0,0,2,53,005,011501,4013,4,9999,99999,99999999,9,99999,99999999,5951,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.1697234,-119.0744419,L,1,99999,99999,99999,9,N,N,23865,S,02408211,20502,4,99999,99999,02910,016,016,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,99999,U,005609,99337 +18214,3,000,20,1,76,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18215,3,000,20,1,77,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18216,3,000,20,2,52,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18217,3,000,20,2,52,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18218,3,000,20,2,54,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18219,3,000,20,2,65,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18220,3,000,20,2,66,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18221,3,000,20,2,75,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18222,3,000,20,2,76,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18223,3,000,20,2,76,1,01,1,1,0,0,2,26,163,594300,4001,4,9999,99999,99999999,9,99999,99999999,184217,0,0,0,0,0,19820,12,999,99999,99999999,A,01623022,80420,F,01627172,220,3,99999,99999999,+42.1370971,-083.2145164,L,1,19804,99999,99999,9,N,N,80420,A,01627172,03206,2,99999,99999,33900,023,001,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163912,48183 +18224,3,000,21,2,38,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18225,3,000,21,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18226,3,000,21,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18227,3,000,21,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18228,3,000,21,2,41,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18229,3,000,21,2,42,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18230,3,000,21,2,42,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18231,3,000,21,2,43,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18232,3,000,21,2,44,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18233,3,000,21,2,44,1,01,2,1,0,0,2,48,423,002102,2031,2,9999,99999,99999999,9,99999,99999999,2960582,36425,0,0,36425,0,46340,01,999,99999,99999999,A,01383997,93950,S,01939272,540,7,99999,99999999,+32.2704374,-095.1890370,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01501,3,99999,99999,13650,006,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,75791 +18234,3,000,21,1,60,1,12,2,2,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18235,3,000,21,1,72,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18236,3,000,21,1,72,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18237,3,000,21,1,73,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18238,3,000,21,1,73,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18239,3,000,21,2,40,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18240,3,000,21,2,40,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18241,3,000,21,2,40,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18242,3,000,21,2,40,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18243,3,000,21,2,41,1,02,2,1,0,0,2,24,033,803403,2005,2,9999,99999,99999999,9,99999,99999999,38664,0,0,0,0,0,47900,04,999,99999,99999999,A,01714670,91164,N,01929472,548,5,99999,99999999,+38.9152997,-076.8734652,L,1,47894,99999,99999,9,N,N,45325,S,02389871,01104,3,99999,99999,00510,47A,047,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,13-018,20785 +18244,3,000,20,1,76,1,01,1,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18245,3,000,20,1,77,1,01,1,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18246,3,000,20,1,100,1,01,1,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18247,3,000,20,1,79,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18248,3,000,20,1,81,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18249,3,000,21,1,42,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18250,3,000,21,1,42,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18251,3,000,21,1,42,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18252,3,000,21,1,42,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18253,3,000,21,1,42,1,01,2,1,0,0,2,42,017,103400,3030,3,9999,99999,99999999,9,99999,99999999,283152,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,73016,A,01216031,428,2,99999,99999999,+40.5327810,-075.2202911,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03011,1,99999,99999,18330,145,024,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,002350,18930 +18254,3,000,33,1,1,1,04,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18255,3,000,33,2,26,2,06,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18256,3,000,34,1,30,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18257,3,000,34,1,34,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18258,3,000,34,1,61,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18259,3,000,34,1,61,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18260,3,000,34,1,61,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18261,3,000,34,1,61,1,01,2,1,0,0,2,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18262,3,000,36,1,15,1,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18263,3,000,36,1,15,1,01,2,1,0,0,1,12,127,082506,2009,2,9999,99999,99999999,9,99999,99999999,46561,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,92847,S,01935904,422,5,99999,99999999,+29.1223142,-081.0217577,L,1,99999,99999,99999,9,N,N,58575,A,02404555,12703,3,99999,99999,01920,025,014,00294478,99999,99999999,9,999,99999,99999999,999999,22612,U,99999,U,000180,32129 +18264,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18265,3,000,20,1,81,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18266,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18267,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18268,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18269,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18270,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18271,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18272,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18273,3,000,20,1,83,1,01,2,1,0,0,2,04,013,040525,2009,2,9999,99999,99999999,9,99999,99999999,271195,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,93774,S,01934991,429,8,99999,99999999,+33.6552683,-112.4337385,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,022,022,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000269,85387 +18274,3,000,25,1,37,2,08,2,2,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18275,3,000,25,2,2,1,01,2,1,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18276,3,000,25,2,17,2,22,2,3,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18277,3,000,25,2,18,1,01,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18278,3,000,25,2,19,2,11,2,2,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18279,3,000,26,1,8,2,03,2,1,0,0,1,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18280,3,000,26,2,18,2,06,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18281,3,000,28,1,30,1,01,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18282,3,000,28,1,33,1,01,2,1,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18283,3,000,28,2,27,2,11,2,2,0,0,2,48,453,040000,2019,2,9999,99999,99999999,9,99999,99999999,43202,0,0,0,0,0,12420,10,999,99999,99999999,A,01384012,90165,S,01938508,999,7,99999,99999999,+30.3421473,-097.7107725,L,1,99999,99999,99999,9,Y,N,05000,A,02409761,05306,3,99999,99999,08940,046,014,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000156,78752 +18284,3,000,29,2,89,1,04,2,1,0,0,2,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18285,3,000,30,1,0,1,09,2,2,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18286,3,000,30,1,1,1,29,2,3,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18287,3,000,30,1,1,1,29,2,3,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18288,3,000,30,1,9,1,19,2,2,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18289,3,000,30,1,9,1,19,2,2,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18290,3,000,30,1,11,1,04,2,1,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18291,3,000,30,1,11,1,04,2,1,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18292,3,000,30,1,11,2,29,2,3,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18293,3,000,30,1,12,1,04,2,1,0,0,1,15,001,020801,1000,1,9999,99999,99999999,9,99999,99999999,558812,0,0,0,0,0,25900,02,999,99999,99999999,A,00365280,90630,S,01935644,999,9,99999,99999999,+19.6867937,-155.0936793,L,2,99999,99999,99999,9,Y,N,14650,S,02414042,00200,4,99999,99999,00030,002,001,01779782,99999,99999999,9,999,99999,99999999,999999,39052,U,99999,U,,96720 +18294,3,000,25,1,9,1,01,2,1,0,0,1,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18295,3,000,25,1,17,1,01,2,1,0,0,1,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18296,3,000,25,1,25,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18297,3,000,25,1,25,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18298,3,000,25,1,28,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18299,3,000,25,1,62,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18300,3,000,25,1,62,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18301,3,000,25,1,62,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18302,3,000,25,2,15,2,01,2,1,0,0,1,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18303,3,000,28,2,67,1,01,2,1,0,0,2,39,079,957600,3015,3,9999,99999,99999999,9,99999,99999999,34311,0,0,0,0,0,27160,06,999,99999,99999999,A,01074052,37842,F,02395447,999,3,99999,99999999,+39.0615752,-082.6440699,L,2,99999,99999,99999,9,Y,N,37842,A,02395447,04300,2,99999,99999,04415,093,017,01085497,99999,99999999,9,999,99999,99999999,999999,42238,U,99999,U,040AAC,45640 +18304,3,000,20,2,37,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18305,3,000,21,2,28,1,08,2,2,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18306,3,000,21,2,35,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18307,3,000,21,2,35,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18308,3,000,21,2,35,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18309,3,000,21,2,35,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18310,3,000,21,2,38,1,08,2,2,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18311,3,000,21,2,55,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18312,3,000,21,2,58,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18313,3,000,21,2,58,1,01,2,1,0,0,2,26,125,150400,2001,2,9999,99999,99999999,9,99999,99999999,59795,0,0,0,0,0,19820,09,999,99999,99999999,A,01623005,09110,A,01625952,220,3,99999,99999999,+42.6018707,-083.2291629,L,1,47664,99999,99999,9,9,9,99999,9,99999999,02906,2,99999,99999,06090,040,012,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,125042,48304 +18314,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18315,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18316,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18317,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18318,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18319,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18320,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18321,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18322,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18323,3,000,20,1,23,1,01,1,1,0,0,2,49,011,125809,1001,1,9999,99999,99999999,9,99999,99999999,69716,0,0,0,0,0,36260,01,999,99999,99999999,A,01448020,92236,S,01939397,482,8,99999,99999999,+41.1026700,-111.9757998,L,1,99999,99999,99999,9,N,N,43660,A,02411639,11004,4,99999,99999,00210,016,021,01455989,99999,99999999,9,999,99999,99999999,999999,64945,U,99999,U,LA0120,84041 +18324,3,000,21,2,35,2,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18325,3,000,21,2,36,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18326,3,000,21,2,36,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18327,3,000,21,2,36,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18328,3,000,21,2,36,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18329,3,000,21,2,37,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18330,3,000,21,2,37,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18331,3,000,21,2,37,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18332,3,000,21,2,37,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18333,3,000,21,2,37,1,01,2,1,0,0,2,19,163,012902,4001,4,9999,99999,99999999,9,99999,99999999,294302,0,0,0,0,0,19340,02,999,99999,99999999,A,00465270,90893,F,02394467,209,4,99999,99999999,+41.5705549,-090.5535659,L,1,99999,99999,99999,9,Y,N,19000,A,02394467,00900,2,99999,99999,08580,093,047,01779785,99999,99999999,9,999,99999,99999999,999999,22366,U,99999,U,163228,52807 +18334,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18335,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18336,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18337,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18338,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18339,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18340,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18341,3,000,25,2,14,1,01,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18342,3,000,25,2,16,1,02,2,1,0,0,1,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18343,3,000,25,2,37,1,02,2,1,0,0,2,51,019,030101,2007,2,9999,99999,99999999,9,99999,99999999,1845308,6347,0,0,6347,0,31340,06,999,99999,99999999,A,01674818,91805,N,02750054,999,5,99999,99999999,+37.4520298,-079.2689773,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,3,99999,99999,00360,023,023,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000505,24503 +18344,3,000,28,1,59,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18345,3,000,28,1,59,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18346,3,000,28,2,28,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18347,3,000,28,2,36,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18348,3,000,28,2,50,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18349,3,000,34,1,26,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18350,3,000,34,1,29,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18351,3,000,34,1,29,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18352,3,000,34,1,29,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18353,3,000,34,1,29,1,01,2,1,0,0,2,42,003,427000,1007,1,9999,99999,99999999,9,99999,99999999,81605,0,0,0,0,0,38300,17,999,99999,99999999,A,01213657,49920,F,01214809,430,2,99999,99999999,+40.4884019,-079.9712716,L,1,99999,99999,99999,9,N,N,49920,A,01214809,01803,1,99999,99999,21200,021,038,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,004000,15209 +18354,3,000,20,2,28,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18355,3,000,20,2,30,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18356,3,000,20,2,30,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18357,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18358,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18359,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18360,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18361,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18362,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18363,3,000,20,2,32,1,01,2,1,0,0,2,53,011,040303,1000,1,9999,99999,99999999,9,99999,99999999,710222,4075,0,0,4075,0,38900,03,999,99999,99999999,A,01531820,92784,S,01939612,440,9,99999,99999999,+45.8244262,-122.7060332,B,1,99999,99999,99999,9,N,N,58410,A,02410945,21101,4,99999,99999,07350,018,018,01779804,99999,99999999,9,999,99999,99999999,999999,74840,U,58410,U,000503,98642 +18364,3,000,25,2,16,2,01,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18365,3,000,25,2,17,1,03,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18366,3,000,25,2,17,1,03,2,1,0,0,1,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18367,3,000,25,2,18,2,03,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18368,3,000,25,2,21,1,01,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18369,3,000,25,2,22,1,01,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18370,3,000,25,2,22,1,01,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18371,3,000,25,2,27,2,06,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18372,3,000,25,2,32,1,01,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18373,3,000,25,2,43,2,01,2,1,0,0,2,08,059,011401,2003,2,9999,99999,99999999,9,99999,99999999,19428,0,0,0,0,0,19740,07,999,99999,99999999,A,00198145,92641,S,01935532,216,8,99999,99999999,+39.7448472,-105.0655487,L,1,99999,99999,99999,9,Y,N,43000,A,02411614,00702,4,99999,99999,04800,023,022,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,059227,80214 +18374,3,000,28,2,56,1,04,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18375,3,000,28,2,56,1,04,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18376,3,000,29,2,46,2,01,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18377,3,000,30,2,1,1,01,2,1,0,0,1,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18378,3,000,33,2,39,2,01,2,1,0,0,2,34,001,010503,4014,4,9999,99999,99999999,9,99999,99999999,7909,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4889014,-074.5080946,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18379,3,000,20,1,52,1,02,1,1,0,0,2,34,001,010503,4015,4,9999,99999,99999999,9,99999,99999999,10760,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4875180,-074.5089677,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18380,3,000,20,1,52,1,02,1,1,0,0,2,34,001,010503,4015,4,9999,99999,99999999,9,99999,99999999,10760,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4875180,-074.5089677,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18381,3,000,20,1,63,1,01,1,1,0,0,2,34,001,010503,4015,4,9999,99999,99999999,9,99999,99999999,10760,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4875180,-074.5089677,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18382,3,000,20,1,64,1,01,1,1,0,0,2,34,001,010503,4015,4,9999,99999,99999999,9,99999,99999999,10760,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4875180,-074.5089677,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18383,3,000,20,1,64,1,01,1,1,0,0,2,34,001,010503,4015,4,9999,99999,99999999,9,99999,99999999,10760,0,0,0,0,0,12100,02,999,99999,99999999,A,00882270,25560,A,00882052,428,2,99999,99999999,+39.4875180,-074.5089677,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00101,1,05730,06060,99999,009,009,01779795,99999,99999999,9,999,99999,99999999,999999,03904,U,99999,U,055011,08205 +18384,3,000,20,2,73,1,01,1,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18385,3,000,20,1,34,1,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18386,3,000,20,2,24,2,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18387,3,000,20,2,29,2,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18388,3,000,20,2,29,2,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18389,3,000,20,2,67,2,11,2,2,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18390,3,000,20,2,68,1,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18391,3,000,20,2,73,1,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18392,3,000,20,2,73,1,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18393,3,000,21,1,53,1,01,2,1,0,0,2,26,017,280600,2012,2,9999,99999,99999999,9,99999,99999999,13242,0,0,0,0,0,13020,05,999,99999,99999999,A,01622951,06020,F,01625892,474,3,99999,99999999,+43.5821383,-083.8745248,L,1,99999,99999,99999,9,Y,N,06020,A,01625892,01400,2,99999,99999,04260,096,031,01779789,99999,99999999,9,999,99999,99999999,999999,05869,U,99999,U,017011,48708 +18394,3,000,25,2,26,1,03,2,1,0,0,2,53,051,970400,2028,2,9999,99999,99999999,9,99999,99999999,364915,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.0524231,-117.3950811,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,02070,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000026,99009 +18395,3,000,20,1,30,1,01,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18396,3,000,20,1,69,1,04,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18397,3,000,20,2,48,2,04,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18398,3,000,21,1,43,1,01,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18399,3,000,21,1,43,1,01,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18400,3,000,21,1,85,1,01,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18401,3,000,21,1,86,1,01,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18402,3,000,21,2,23,1,04,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18403,3,000,21,2,76,1,01,2,1,0,0,2,53,051,970400,1002,1,9999,99999,99999999,9,99999,99999999,373155,0,0,0,0,0,99999,05,999,99999,99999999,A,01529157,92160,S,01939573,999,9,99999,99999999,+48.2422736,-117.2437453,L,9,99999,99999,99999,9,9,9,99999,9,99999999,26500,4,99999,99999,01920,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,99156 +18404,3,000,20,2,77,2,01,1,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18405,3,000,20,1,29,1,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18406,3,000,20,1,45,2,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18407,3,000,20,1,87,1,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18408,3,000,20,2,56,1,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18409,3,000,21,1,64,1,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18410,3,000,21,1,64,1,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18411,3,000,21,2,42,1,01,2,1,0,0,2,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18412,3,000,25,1,5,1,01,2,1,0,0,1,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18413,3,000,25,1,10,1,07,2,2,0,0,1,39,065,000700,4000,4,9999,99999,99999999,9,99999,99999999,703698,0,0,0,0,0,99999,05,999,99999,99999999,A,01074045,22736,A,01086259,999,3,99999,99999999,+40.5596307,-083.4230309,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01900,2,99999,99999,04841,083,001,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,033AAP,43332 +18414,3,000,20,2,71,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18415,3,000,20,2,72,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18416,3,000,20,2,72,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18417,3,000,20,2,72,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18418,3,000,20,2,72,2,11,1,2,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18419,3,000,20,2,73,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18420,3,000,20,2,74,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18421,3,000,20,2,74,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18422,3,000,20,2,74,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18423,3,000,20,2,74,1,01,1,1,0,0,2,12,109,021408,2047,2,9999,99999,99999999,9,99999,99999999,399397,56378,0,0,56378,0,27260,04,999,99999,99999999,A,00308371,93016,S,01935919,300,5,99999,99999999,+29.8636023,-081.2862961,B,1,99999,99999,99999,9,N,N,62500,A,02405389,10903,3,99999,99999,01740,017,007,00294478,99999,99999999,9,999,99999,99999999,999999,77230,U,99999,U,000045,32080 +18424,3,000,25,1,26,1,05,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18425,3,000,25,1,27,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18426,3,000,25,1,27,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18427,3,000,25,1,27,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18428,3,000,25,1,27,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18429,3,000,25,1,27,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18430,3,000,25,1,27,1,05,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18431,3,000,25,1,27,1,05,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18432,3,000,25,1,37,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18433,3,000,25,1,37,1,01,2,1,0,0,2,53,053,073114,2001,2,9999,99999,99999999,9,99999,99999999,136049,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,91280,S,01939518,500,9,99999,99999999,+47.0263381,-122.3778987,L,1,45104,99999,99999,9,N,N,21205,S,02408074,25304,4,99999,99999,00480,028,028,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,99999,U,028585,98387 +18434,3,000,25,1,8,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18435,3,000,25,1,8,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18436,3,000,25,1,8,1,04,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18437,3,000,25,1,9,2,30,2,3,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18438,3,000,25,1,15,1,04,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18439,3,000,25,1,15,1,04,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18440,3,000,25,1,15,1,04,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18441,3,000,25,1,17,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18442,3,000,25,2,3,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18443,3,000,25,2,3,1,01,2,1,0,0,1,48,491,021510,4016,4,9999,99999,99999999,9,99999,99999999,46183,0,0,0,0,0,12420,31,999,99999,99999999,A,01384031,93343,S,01938776,999,7,99999,99999999,+30.5652391,-097.6779866,L,1,99999,99999,99999,9,9,9,99999,9,99999999,05204,3,99999,99999,38080,052,005,01779801,99999,99999999,9,999,99999,99999999,999999,04384,U,99999,U,000337,78665 +18444,3,000,21,2,29,1,01,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18445,3,000,21,2,29,1,01,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18446,3,000,21,2,59,1,01,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18447,3,000,22,2,55,1,01,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18448,3,000,25,1,5,1,02,2,1,0,0,1,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18449,3,000,25,2,10,1,01,2,1,0,0,1,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18450,3,000,25,2,10,1,01,2,1,0,0,1,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18451,3,000,25,2,10,1,01,2,1,0,0,1,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18452,3,000,25,2,10,1,02,2,1,0,0,1,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18453,3,000,25,2,18,1,02,2,1,0,0,2,48,401,951100,1041,1,9999,99999,99999999,9,99999,99999999,612218,0,0,0,0,0,30980,01,999,99999,99999999,A,01383986,92135,S,01938908,999,7,99999,99999999,+31.9923310,-094.8117849,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,26700,011,001,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000418,75667 +18454,3,000,21,2,50,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18455,3,000,21,2,50,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18456,3,000,21,2,50,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18457,3,000,21,2,50,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18458,3,000,21,2,51,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18459,3,000,21,2,51,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18460,3,000,21,2,51,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18461,3,000,21,2,52,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18462,3,000,21,2,52,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18463,3,000,21,2,52,1,01,2,1,0,0,2,27,145,001002,3016,3,9999,99999,99999999,9,99999,99999999,19951,0,0,0,0,0,41060,06,999,99999,99999999,A,00659517,56896,F,02396483,378,4,99999,99999999,+45.5894456,-094.2515364,L,1,99999,99999,99999,9,Y,N,56896,A,02396483,01001,2,99999,99999,33510,14A,014,00662849,99999,99999999,9,999,99999,99999999,999999,77338,U,99999,U,000305,56303 +18464,3,000,20,1,72,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18465,3,000,20,2,31,1,02,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18466,3,000,20,2,45,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18467,3,000,20,2,48,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18468,3,000,20,2,48,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18469,3,000,20,2,48,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18470,3,000,20,2,48,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18471,3,000,20,2,48,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18472,3,000,20,2,48,1,01,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18473,3,000,20,2,49,1,02,2,1,0,0,2,12,061,050708,1005,1,9999,99999,99999999,9,99999,99999999,1271540,0,0,0,0,0,42680,08,999,99999,99999999,A,00307624,93510,S,01935962,370,5,99999,99999999,+27.6571126,-080.4711162,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06100,3,99999,99999,00930,054,017,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,32966 +18474,3,000,20,2,34,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18475,3,000,20,2,47,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18476,3,000,20,2,47,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18477,3,000,20,2,48,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18478,3,000,21,1,30,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18479,3,000,21,1,30,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18480,3,000,21,1,30,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18481,3,000,21,1,30,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18482,3,000,21,1,34,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18483,3,000,21,1,34,1,01,2,1,0,0,2,54,073,962200,4049,4,9999,99999,99999999,9,99999,99999999,3615021,11892,0,0,11892,0,99999,01,999,99999,99999999,A,01678557,90894,N,01928245,999,5,99999,99999999,+39.3777995,-081.2357935,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01110,007,003,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,26170 +18484,3,000,20,1,77,2,06,1,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18485,3,000,20,2,40,2,11,1,2,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18486,3,000,20,1,28,1,05,2,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18487,3,000,20,1,37,2,18,2,2,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18488,3,000,20,1,64,2,11,2,2,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18489,3,000,20,1,64,2,11,2,2,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18490,3,000,20,1,72,2,02,2,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18491,3,000,20,2,18,2,06,2,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18492,3,000,20,2,19,2,06,2,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18493,3,000,20,2,19,2,06,2,1,0,0,2,32,003,001801,4012,4,9999,99999,99999999,9,99999,99999999,23397,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1299351,-115.0971575,L,1,99999,99999,99999,9,N,N,84600,S,02409607,00409,4,99999,99999,00060,015,010,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005425,89121 +18494,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18495,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18496,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18497,3,000,20,2,30,1,01,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18498,3,000,20,2,40,1,04,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18499,3,000,20,2,40,1,04,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18500,3,000,20,2,40,1,04,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18501,3,000,20,2,54,1,04,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18502,3,000,20,2,54,1,04,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18503,3,000,20,2,54,1,04,2,1,0,0,2,06,075,012700,1004,1,9999,99999,99999999,9,99999,99999999,16077,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,92605,S,02804911,488,9,99999,99999999,+37.8052187,-122.4430318,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07514,4,99999,99999,34410,019,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94123 +18504,3,000,20,2,28,1,01,1,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18505,3,000,21,1,56,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18506,3,000,21,1,57,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18507,3,000,21,1,57,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18508,3,000,21,1,57,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18509,3,000,21,1,59,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18510,3,000,25,2,24,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18511,3,000,25,2,33,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18512,3,000,25,2,33,1,01,2,1,0,0,2,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18513,3,000,28,1,13,2,06,2,1,0,0,1,55,127,000201,1021,1,9999,99999,99999999,9,99999,99999999,2493083,0,0,0,0,0,48580,01,999,99999,99999999,A,01581123,80875,A,01584299,376,3,99999,99999999,+42.8145430,-088.5376368,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02400,2,99999,99999,04020,033,011,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,006283,53120 +18514,3,000,21,2,41,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18515,3,000,21,2,43,1,11,2,2,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18516,3,000,21,2,45,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18517,3,000,21,2,46,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18518,3,000,21,2,60,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18519,3,000,21,2,67,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18520,3,000,21,2,67,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18521,3,000,21,2,67,1,01,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18522,3,000,22,2,53,2,06,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18523,3,000,22,2,53,2,06,2,1,0,0,2,37,119,000600,3009,3,9999,99999,99999999,9,99999,99999999,8741,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2256958,-080.8308860,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03101,3,99999,99999,02970,102,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000013,28202 +18524,3,000,20,2,50,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18525,3,000,20,2,50,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18526,3,000,20,2,50,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18527,3,000,20,2,50,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18528,3,000,20,2,51,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18529,3,000,20,2,51,1,04,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18530,3,000,20,2,51,2,01,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18531,3,000,20,2,51,2,01,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18532,3,000,20,2,53,1,02,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18533,3,000,20,2,53,1,02,2,1,0,0,2,06,067,005002,3002,3,9999,99999,99999999,9,99999,99999999,212518,0,0,0,0,0,40900,07,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4761165,-121.4133575,L,1,99999,99999,99999,9,N,N,24498,S,02408219,06714,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +18534,3,000,20,2,23,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18535,3,000,20,2,31,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18536,3,000,20,2,31,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18537,3,000,20,2,31,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18538,3,000,20,2,31,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18539,3,000,20,2,31,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18540,3,000,20,2,35,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18541,3,000,20,2,37,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18542,3,000,20,2,44,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18543,3,000,20,2,44,1,01,2,1,0,0,2,50,011,010500,1008,1,9999,99999,99999999,9,99999,99999999,230472,0,0,0,0,0,15540,00,999,99999,99999999,A,01461762,71725,A,01462225,162,1,99999,99999999,+44.9248362,-073.1221041,L,1,99999,99999,72400,1,N,N,71650,A,02378328,00100,1,99999,99999,99921,F-4,FRA,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501120,05488 +18544,3,000,21,1,59,1,03,2,1,0,0,2,04,005,945200,1007,1,2430,48845,00041148,R,99999,99999999,20845,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1356758,-111.2405111,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18545,3,000,21,1,59,1,03,2,1,0,0,2,04,005,945200,1007,1,2430,48845,00041148,R,99999,99999999,20845,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1356758,-111.2405111,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18546,3,000,20,2,28,1,03,1,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18547,3,000,20,2,28,1,03,1,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18548,3,000,20,1,29,1,03,2,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18549,3,000,20,1,51,1,03,2,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18550,3,000,20,1,51,1,03,2,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18551,3,000,20,1,52,1,03,2,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18552,3,000,20,2,65,1,01,2,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18553,3,000,20,2,94,1,03,2,1,0,0,2,04,005,945200,1008,1,2430,48845,00041148,R,99999,99999999,14762,0,0,0,0,0,22380,01,999,99999,99999999,A,00025443,93519,S,01934986,999,8,99999,99999999,+36.1339315,-111.2447454,L,1,99999,99999,99999,9,N,N,76010,S,02409355,00500,4,99999,99999,08680,007,007,01779777,99999,99999999,A,870,76020,02419502,T03800,88705,U,99999,U,000094,86045 +18554,3,000,20,1,55,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18555,3,000,20,1,56,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18556,3,000,20,2,61,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18557,3,000,20,2,61,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18558,3,000,20,2,61,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18559,3,000,20,2,61,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18560,3,000,20,2,63,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18561,3,000,21,2,34,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18562,3,000,21,2,42,1,12,2,2,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18563,3,000,22,2,38,1,02,2,1,0,0,2,45,085,001600,2014,2,9999,99999,99999999,9,99999,99999999,15946,0,0,0,0,0,44940,06,999,99999,99999999,A,01244717,93289,S,01938434,999,5,99999,99999999,+33.9005670,-080.3379171,L,1,99999,99999,99999,9,Y,N,70405,A,02405546,01700,3,99999,99999,03902,051,036,01779799,99999,99999999,9,999,99999,99999999,999999,85708,U,99999,U,000129,29150 +18564,3,000,25,1,24,1,01,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18565,3,000,25,1,24,1,01,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18566,3,000,25,1,24,1,01,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18567,3,000,25,1,28,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18568,3,000,25,1,28,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18569,3,000,25,1,28,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18570,3,000,25,1,28,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18571,3,000,25,1,29,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18572,3,000,25,1,29,1,04,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18573,3,000,25,1,38,1,01,2,1,0,0,2,34,023,008504,4004,4,9999,99999,99999999,9,99999,99999999,608458,13422,0,0,13422,0,35620,12,999,99999,99999999,A,00882230,68790,A,00882162,408,2,99999,99999999,+40.3796834,-074.5610377,B,1,35154,99999,99999,9,N,N,47190,S,02389493,00902,1,99999,99999,15210,016,016,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,105027,08852 +18574,3,000,20,1,63,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18575,3,000,20,1,63,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18576,3,000,20,1,67,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18577,3,000,20,1,68,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18578,3,000,20,1,68,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18579,3,000,20,1,69,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18580,3,000,20,1,69,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18581,3,000,20,1,69,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18582,3,000,20,1,69,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18583,3,000,20,1,74,1,01,2,1,0,0,2,55,029,100500,2065,2,9999,99999,99999999,9,99999,99999999,1718988,0,0,0,0,0,99999,08,999,99999,99999999,A,01581074,72600,A,01584125,999,3,99999,99999999,+44.9295065,-087.2213783,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,2,99999,99999,13500,001,001,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001632,54235 +18584,3,000,25,1,15,2,03,2,1,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18585,3,000,25,2,15,2,03,2,1,0,0,1,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18586,3,000,25,2,19,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18587,3,000,28,1,71,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18588,3,000,28,2,48,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18589,3,000,28,2,48,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18590,3,000,28,2,55,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18591,3,000,29,1,89,1,02,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18592,3,000,29,2,59,2,06,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18593,3,000,29,2,77,1,01,2,1,0,0,2,37,081,011905,2012,2,9999,99999,99999999,9,99999,99999999,31263,0,0,0,0,0,24660,06,999,99999,99999999,A,01008558,91228,N,01026736,268,5,99999,99999999,+36.1282238,-079.7589847,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01701,3,99999,99999,01920,057,028,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,000G10,27405 +18594,3,000,25,2,6,1,12,2,2,0,0,1,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +18595,3,000,25,2,7,1,22,2,3,0,0,1,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +18596,3,000,25,2,9,1,03,2,1,0,0,1,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +18597,3,000,25,2,11,1,12,2,2,0,0,1,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +18598,3,000,30,1,15,1,08,2,2,0,0,1,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +18599,3,000,32,1,18,1,02,2,1,0,0,2,40,133,583300,1005,1,5830,66360,01925073,R,99999,99999999,163082,0,0,0,0,0,99999,05,999,99999,99999999,A,01101854,92782,S,01937844,999,7,99999,99999999,+35.2628437,-096.6688114,L,9,99999,99999,99999,9,N,N,66350,A,02411865,21000,3,99999,99999,30990,028,028,01102857,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,74868 +18600,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18601,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18602,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18603,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18604,3,000,20,2,24,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18605,3,000,20,2,28,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18606,3,000,20,2,28,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18607,3,000,20,2,28,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18608,3,000,20,2,28,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18609,3,000,20,2,28,1,01,2,1,0,0,2,28,071,950203,1012,1,9999,99999,99999999,9,99999,99999999,217417,0,0,0,0,0,37060,01,999,99999,99999999,A,00695759,93276,N,00711932,999,6,99999,99999999,+34.3521349,-089.5287236,L,2,99999,99999,99999,9,Y,N,54840,A,02404454,00400,3,99999,99999,03450,012,009,01779790,99999,99999999,9,999,99999,99999999,999999,66565,U,99999,U,000506,38655 +18610,3,000,21,1,41,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18611,3,000,21,1,62,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18612,3,000,21,1,68,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18613,3,000,21,1,68,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18614,3,000,21,1,69,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18615,3,000,21,1,71,1,02,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18616,3,000,21,2,50,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18617,3,000,21,2,50,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18618,3,000,21,2,51,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18619,3,000,21,2,51,1,01,2,1,0,0,2,45,007,010404,1019,1,9999,99999,99999999,9,99999,99999999,282223,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,93718,S,01938467,273,5,99999,99999999,+34.6310479,-082.4840533,L,1,99999,99999,99999,9,N,N,77875,A,02406888,00901,3,99999,99999,00780,009,004,01779799,99999,99999999,9,999,99999,99999999,999999,95536,U,99999,U,000071,29697 +18620,3,000,21,1,63,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18621,3,000,21,1,63,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18622,3,000,21,1,63,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18623,3,000,21,1,63,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18624,3,000,21,1,64,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18625,3,000,21,1,64,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18626,3,000,21,2,27,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18627,3,000,21,2,28,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18628,3,000,21,2,29,1,01,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18629,3,000,21,2,37,1,04,2,1,0,0,2,42,071,011807,2004,2,9999,99999,99999999,9,99999,99999999,307357,7589,0,0,7589,0,29540,11,999,99999,99999999,A,01209181,46896,A,01216634,999,2,99999,99999999,+40.0883459,-076.3406742,B,1,99999,99999,99999,9,9,9,99999,9,99999999,03504,1,99999,99999,14580,097,013,01779798,99999,99999999,9,999,99999,99999999,999999,47530,U,99999,U,001300,17601 +18630,3,000,30,2,13,1,04,2,1,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18631,3,000,31,1,63,1,02,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18632,3,000,31,1,72,1,04,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18633,3,000,32,1,22,1,01,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18634,3,000,32,1,22,1,01,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18635,3,000,32,1,56,1,02,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18636,3,000,32,2,18,1,04,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18637,3,000,33,1,17,1,07,2,2,0,0,1,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18638,3,000,33,1,20,1,04,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18639,3,000,33,1,20,1,04,2,1,0,0,2,53,053,940009,1007,1,3000,56720,01514929,R,99999,99999999,1197452,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2262338,-122.3127193,L,1,45104,99999,99999,9,N,N,20645,A,02410400,25303,4,99999,99999,06960,031,031,01779804,99999,99999999,E,999,99999,99999999,T00500,80389,U,20645,U,031804,98371 +18640,3,000,20,1,75,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18641,3,000,20,1,75,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18642,3,000,20,1,75,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18643,3,000,20,1,76,2,11,2,2,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18644,3,000,20,1,79,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18645,3,000,20,1,79,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18646,3,000,20,1,79,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18647,3,000,20,1,79,1,01,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18648,3,000,20,1,85,1,02,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18649,3,000,20,1,87,1,02,2,1,0,0,2,34,023,001200,3012,3,9999,99999,99999999,9,99999,99999999,67321,0,0,0,0,0,35620,06,999,99999,99999999,A,00882230,31470,F,00885252,408,2,99999,99999999,+40.4959911,-074.4205364,L,1,35154,99999,99999,9,N,N,31470,A,00885252,00906,1,99999,99999,07170,018,018,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,035005,08904 +18650,3,000,25,1,34,1,04,2,1,0,0,2,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18651,3,000,25,2,4,1,07,2,2,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18652,3,000,25,2,7,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18653,3,000,25,2,7,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18654,3,000,25,2,7,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18655,3,000,25,2,8,2,11,2,2,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18656,3,000,25,2,10,2,11,2,2,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18657,3,000,25,2,11,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18658,3,000,25,2,11,1,01,2,1,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18659,3,000,25,2,11,2,11,2,2,0,0,1,37,159,051501,3001,3,9999,99999,99999999,9,99999,99999999,252407,0,0,0,0,0,16740,08,999,99999,99999999,A,01008583,90660,N,01027142,172,5,99999,99999999,+35.5226100,-080.6340283,L,1,99999,99999,99999,9,N,N,35200,A,02404816,03400,3,99999,99999,02430,077,033,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,000016,28081 +18660,3,000,25,2,8,2,11,2,2,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18661,3,000,25,2,9,1,01,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18662,3,000,25,2,9,1,01,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18663,3,000,25,2,13,2,06,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18664,3,000,25,2,13,2,06,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18665,3,000,25,2,13,2,06,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18666,3,000,25,2,15,2,06,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18667,3,000,25,2,16,2,02,2,1,0,0,1,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18668,3,000,25,2,18,2,11,2,2,0,0,2,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18669,3,000,25,2,23,2,06,2,1,0,0,2,06,073,008800,2004,2,9999,99999,99999999,9,99999,99999999,5570,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.7816200,-117.1677964,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07315,4,99999,99999,34320,079,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92111 +18670,3,000,20,1,69,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18671,3,000,20,2,22,1,02,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18672,3,000,20,2,22,1,02,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18673,3,000,20,2,30,1,02,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18674,3,000,20,2,30,1,02,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18675,3,000,20,2,33,2,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18676,3,000,20,2,33,2,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18677,3,000,20,2,33,2,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18678,3,000,20,2,34,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18679,3,000,20,2,34,1,01,2,1,0,0,2,12,011,090404,3003,3,9999,99999,99999999,9,99999,99999999,20532,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,91508,S,01935798,370,5,99999,99999999,+26.0246581,-080.1542787,L,1,22744,99999,99999,9,N,N,32000,A,02404719,01109,3,99999,99999,00180,101,034,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00V013,33020 +18680,3,000,25,2,17,2,28,2,3,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18681,3,000,27,1,14,1,01,2,1,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18682,3,000,30,1,13,1,01,2,1,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18683,3,000,30,1,13,1,01,2,1,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18684,3,000,30,1,16,2,06,2,1,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18685,3,000,36,1,2,2,06,2,1,0,0,1,06,073,020810,2003,2,9999,99999,99999999,9,99999,99999999,211873,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0044206,-116.8614001,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18686,3,000,20,2,26,1,08,1,2,0,0,2,06,073,020810,2004,2,9999,99999,99999999,9,99999,99999999,86731,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0102046,-116.8638167,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18687,3,000,20,2,32,1,01,2,1,0,0,2,06,073,020810,2004,2,9999,99999,99999999,9,99999,99999999,86731,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0102046,-116.8638167,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18688,3,000,21,2,55,1,01,2,1,0,0,2,06,073,020810,2004,2,9999,99999,99999999,9,99999,99999999,86731,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0102046,-116.8638167,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18689,3,000,21,2,55,1,01,2,1,0,0,2,06,073,020810,2004,2,9999,99999,99999999,9,99999,99999999,86731,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92550,S,01935260,999,9,99999,99999999,+33.0102046,-116.8638167,L,1,99999,99999,99999,9,N,N,59346,S,02409128,07307,4,99999,99999,31710,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92065 +18690,3,000,28,1,20,2,12,2,2,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18691,3,000,29,2,82,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18692,3,000,29,2,82,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18693,3,000,29,2,82,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18694,3,000,29,2,82,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18695,3,000,30,1,1,1,02,2,1,0,0,1,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18696,3,000,33,2,29,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18697,3,000,33,2,29,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18698,3,000,36,1,26,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18699,3,000,36,1,27,1,01,2,1,0,0,2,29,189,213204,2003,2,9999,99999,99999999,9,99999,99999999,28205,0,0,0,0,0,41180,02,999,99999,99999999,A,00758549,00406,N,00767337,476,4,99999,99999999,+38.7212023,-090.4131908,L,1,99999,99999,99999,9,N,N,46586,A,02395034,01902,2,99999,99999,23700,072,024,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,0AP032,63043 +18700,3,000,34,1,67,2,06,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18701,3,000,34,1,68,2,06,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18702,3,000,34,1,68,2,06,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18703,3,000,34,2,51,2,03,2,1,0,0,2,06,073,019702,4001,4,9999,99999,99999999,9,99999,99999999,10814,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1838079,-117.2371335,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18704,3,000,20,1,38,1,01,1,1,0,0,2,06,073,019702,4003,4,9999,99999,99999999,9,99999,99999999,152838,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1827922,-117.2487768,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18705,3,000,20,1,38,1,01,1,1,0,0,2,06,073,019702,4003,4,9999,99999,99999999,9,99999,99999999,152838,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1827922,-117.2487768,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18706,3,000,20,1,38,1,01,1,1,0,0,2,06,073,019702,4003,4,9999,99999,99999999,9,99999,99999999,152838,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1827922,-117.2487768,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18707,3,000,20,1,45,1,01,1,1,0,0,2,06,073,019702,4003,4,9999,99999,99999999,9,99999,99999999,152838,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1827922,-117.2487768,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18708,3,000,20,1,46,2,11,1,2,0,0,2,06,073,019702,4003,4,9999,99999,99999999,9,99999,99999999,152838,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1827922,-117.2487768,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18709,3,000,20,1,47,2,11,1,2,0,0,2,06,073,019702,4003,4,9999,99999,99999999,9,99999,99999999,152838,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.1827922,-117.2487768,L,1,99999,99999,99999,9,N,N,82996,A,02412161,07323,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92081 +18710,3,000,20,2,52,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18711,3,000,20,2,55,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18712,3,000,20,2,55,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18713,3,000,20,2,57,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18714,3,000,21,1,60,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18715,3,000,21,1,61,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18716,3,000,21,1,61,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18717,3,000,21,1,61,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18718,3,000,21,1,65,1,02,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18719,3,000,21,2,81,1,01,2,1,0,0,2,39,035,117700,3002,3,9999,99999,99999999,9,99999,99999999,18078,0,0,0,0,0,17460,11,999,99999,99999999,A,01074030,16000,F,01085963,184,3,99999,99999999,+41.5834708,-081.5461529,L,1,99999,99999,99999,9,Y,N,16000,A,01085963,00708,2,99999,99999,04378,010,021,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018AWO,44119 +18720,3,000,21,2,34,2,11,2,2,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18721,3,000,21,2,34,2,11,2,2,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18722,3,000,21,2,47,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18723,3,000,21,2,47,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18724,3,000,21,2,49,1,01,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18725,3,000,21,2,56,1,02,2,1,0,0,2,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18726,3,000,25,1,0,1,01,2,1,0,0,1,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18727,3,000,25,1,0,1,01,2,1,0,0,1,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18728,3,000,25,1,0,1,01,2,1,0,0,1,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18729,3,000,25,1,0,1,01,2,1,0,0,1,48,099,010501,2005,2,9999,99999,99999999,9,99999,99999999,56227,0,0,0,0,0,28660,25,999,99999,99999999,A,01383835,91370,S,01938751,999,7,99999,99999999,+31.1434533,-097.8318483,L,1,99999,99999,99999,9,N,N,26736,S,02408241,03400,3,99999,99999,25660,059,024,01779801,99999,99999999,9,999,99999,99999999,999999,44992,U,99999,U,000206,76544 +18730,3,000,25,2,39,2,06,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18731,3,000,25,2,58,1,04,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18732,3,000,25,2,58,1,04,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18733,3,000,27,1,4,2,06,2,1,0,0,1,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18734,3,000,27,1,8,2,01,2,1,0,0,1,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18735,3,000,27,2,11,2,06,2,1,0,0,1,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18736,3,000,27,2,11,2,06,2,1,0,0,1,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18737,3,000,28,1,33,2,01,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18738,3,000,28,1,34,2,01,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18739,3,000,28,1,65,1,01,2,1,0,0,2,06,037,270200,3003,3,9999,99999,99999999,9,99999,99999999,23089,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0352688,-118.3801062,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90034 +18740,3,000,25,1,24,1,04,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18741,3,000,25,1,24,1,04,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18742,3,000,25,1,25,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18743,3,000,25,1,25,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18744,3,000,25,1,25,1,01,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18745,3,000,25,2,2,1,29,2,3,0,0,1,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18746,3,000,25,2,7,1,29,2,3,0,0,1,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18747,3,000,27,1,17,2,01,2,1,0,0,1,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18748,3,000,31,2,60,2,11,2,2,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18749,3,000,33,2,89,1,04,2,1,0,0,2,24,045,010300,4017,4,9999,99999,99999999,9,99999,99999999,33476,0,0,0,0,0,41540,01,999,99999,99999999,A,01668606,90824,N,01929712,480,5,99999,99999999,+38.3700519,-075.6665462,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,3,99999,99999,00690,37B,037,01714934,99999,99999999,9,999,99999,99999999,999999,78364,U,99999,U,09-006,21801 +18750,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18751,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18752,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18753,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18754,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18755,3,000,25,2,7,1,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18756,3,000,25,2,7,1,09,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18757,3,000,25,2,8,1,09,2,2,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18758,3,000,25,2,9,2,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18759,3,000,25,2,9,2,01,2,1,0,0,1,36,081,076901,1003,1,9999,99999,99999999,9,99999,99999999,44915,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7148708,-073.8363991,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04406,1,99999,99999,20580,028,015,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000457,11375 +18760,3,000,25,1,5,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18761,3,000,25,1,5,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18762,3,000,25,1,5,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18763,3,000,25,1,5,1,04,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18764,3,000,25,1,5,1,09,2,2,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18765,3,000,25,1,6,1,01,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18766,3,000,25,1,6,1,01,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18767,3,000,25,1,6,1,01,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18768,3,000,25,1,6,1,02,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18769,3,000,25,1,6,1,02,2,1,0,0,1,17,097,863702,1006,1,9999,99999,99999999,9,99999,99999999,240794,0,0,0,0,0,16980,10,999,99999,99999999,A,01784796,43263,A,00429255,176,3,99999,99999999,+42.2960488,-087.8872311,L,1,29404,99999,99999,9,N,N,53559,A,02395253,09703,2,29130,22830,99999,059,030,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,Lib175,60044 +18770,3,000,25,1,0,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18771,3,000,25,1,0,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18772,3,000,25,1,0,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18773,3,000,25,1,3,2,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18774,3,000,25,1,3,2,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18775,3,000,25,1,15,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18776,3,000,25,1,16,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18777,3,000,25,1,16,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18778,3,000,25,1,16,1,01,2,1,0,0,1,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18779,3,000,25,1,24,1,02,2,1,0,0,2,18,005,011101,3002,3,9999,99999,99999999,9,99999,99999999,343416,0,0,0,0,0,18020,06,999,99999,99999999,A,00451683,27432,A,00453325,294,3,99999,99999999,+39.2655050,-085.9519520,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03000,2,99999,99999,00360,059,041,00448508,99999,99999999,9,999,99999,99999999,999999,19126,U,99999,U,000480,47201 +18780,5,301,37,2,81,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18781,5,301,37,2,81,1,02,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18782,5,301,37,2,81,1,02,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18783,5,301,37,2,83,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18784,5,301,37,2,83,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18785,5,301,37,2,85,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18786,5,301,37,2,86,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18787,5,301,37,2,86,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18788,5,301,37,2,86,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18789,5,301,37,2,86,1,01,0,1,1,3,2,27,123,030100,4001,4,9999,99999,99999999,9,99999,99999999,36400,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,58000,F,02396511,378,4,99999,99999999,+44.9804817,-093.1958822,L,1,99999,99999,99999,9,Y,N,58000,A,02396511,01503,2,99999,99999,33840,64A,064,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001000,55108 +18790,3,000,21,1,52,1,04,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18791,3,000,21,1,59,2,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18792,3,000,21,1,61,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18793,3,000,21,1,65,1,04,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18794,3,000,21,1,68,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18795,3,000,21,1,70,2,06,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18796,3,000,21,1,75,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18797,3,000,21,1,75,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18798,3,000,21,1,77,1,01,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18799,3,000,21,1,77,2,06,2,1,0,0,2,48,201,323601,2000,2,9999,99999,99999999,9,99999,99999999,353310,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92975,S,01939076,288,7,99999,99999999,+29.6543609,-095.1880803,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04605,3,99999,99999,34320,145,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000793,77504 +18800,3,000,25,1,51,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18801,3,000,25,1,51,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18802,3,000,25,1,52,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18803,3,000,25,1,53,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18804,3,000,25,1,53,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18805,3,000,25,1,54,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18806,3,000,25,2,7,2,07,2,2,0,0,1,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18807,3,000,25,2,40,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18808,3,000,25,2,50,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18809,3,000,25,2,50,1,02,2,1,0,0,2,48,113,016634,2032,2,9999,99999,99999999,9,99999,99999999,777533,0,0,0,0,0,19100,30,999,99999,99999999,A,01383842,93682,S,01939217,206,7,99999,99999999,+32.6229866,-096.8614158,L,1,19124,99999,99999,9,N,N,20092,A,02410329,02317,3,99999,99999,16230,111,023,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,003600,75115 +18810,3,000,25,2,11,1,07,2,2,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18811,3,000,25,2,15,1,04,2,1,0,0,1,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18812,3,000,25,2,18,1,04,2,1,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18813,3,000,25,2,18,2,06,2,1,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18814,3,000,25,2,18,2,06,2,1,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18815,3,000,25,2,19,2,06,2,1,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18816,3,000,25,2,21,1,07,2,2,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18817,3,000,25,2,21,1,07,2,2,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18818,3,000,25,2,22,2,06,2,1,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18819,3,000,25,2,22,2,06,2,1,0,0,2,06,073,019305,1008,1,9999,99999,99999999,9,99999,99999999,48541,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,92240,S,01935229,999,9,99999,99999999,+33.2213515,-117.2670006,L,1,99999,99999,99999,9,N,N,53322,A,02411301,07301,4,99999,99999,41190,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92056 +18820,3,000,20,1,28,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18821,3,000,20,1,28,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18822,3,000,20,1,28,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18823,3,000,20,1,33,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18824,3,000,20,1,33,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18825,3,000,20,1,34,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18826,3,000,20,1,42,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18827,3,000,20,1,42,1,01,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18828,3,000,20,1,51,1,02,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18829,3,000,20,1,51,1,02,2,1,0,0,2,08,013,012904,3013,3,9999,99999,99999999,9,99999,99999999,362787,193190,0,0,193190,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9916258,-105.1121571,B,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013304,80026 +18830,3,000,25,1,12,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18831,3,000,25,1,14,2,02,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18832,3,000,25,1,14,2,06,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18833,3,000,25,1,14,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18834,3,000,25,1,14,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18835,3,000,25,1,14,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18836,3,000,25,1,14,2,11,2,2,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18837,3,000,25,1,16,2,06,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18838,3,000,25,1,16,2,06,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18839,3,000,25,1,16,2,06,2,1,0,0,1,12,097,042800,3004,3,9999,99999,99999999,9,99999,99999999,345743,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3400450,-081.2393798,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09703,3,99999,99999,01470,042,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000504,34771 +18840,3,000,21,1,51,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18841,3,000,21,1,56,2,01,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18842,3,000,21,1,59,1,02,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18843,3,000,21,2,41,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18844,3,000,21,2,41,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18845,3,000,21,2,43,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18846,3,000,21,2,43,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18847,3,000,21,2,43,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18848,3,000,21,2,43,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18849,3,000,21,2,43,2,06,2,1,0,0,2,06,071,006301,3000,3,9999,99999,99999999,9,99999,99999999,86635,0,0,0,0,0,40140,31,999,99999,99999999,A,00277300,92770,S,01935282,348,9,99999,99999999,+34.1239474,-117.2709867,L,1,99999,99999,99999,9,Y,N,65000,A,02411777,07108,4,99999,99999,34170,040,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92404 +18850,3,000,25,1,49,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18851,3,000,25,1,52,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18852,3,000,25,1,56,1,02,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18853,3,000,25,1,62,1,01,2,1,0,0,2,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18854,3,000,25,2,0,1,01,2,1,0,0,1,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18855,3,000,25,2,0,1,01,2,1,0,0,1,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18856,3,000,25,2,0,1,01,2,1,0,0,1,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18857,3,000,25,2,0,1,02,2,1,0,0,1,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18858,3,000,25,2,2,1,01,2,1,0,0,1,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18859,3,000,25,2,2,1,01,2,1,0,0,1,09,003,511000,2002,2,9999,99999,99999999,9,99999,99999999,675287,0,0,0,0,0,25540,01,790,99999,99999999,N,00212338,22630,A,00213424,278,1,99999,99999999,+41.7449395,-072.5941413,L,1,99999,99999,73450,1,Y,Y,22700,S,02377818,20204,1,99999,99999,01260,009,003,01779780,99999,99999999,9,999,99999,99999999,999999,37243,U,99999,U,03-032,06118 +18860,3,000,25,1,61,1,01,2,1,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18861,3,000,25,2,11,1,04,2,1,0,0,1,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18862,3,000,25,2,21,2,06,2,1,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18863,3,000,25,2,29,1,04,2,1,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18864,3,000,25,2,29,1,04,2,1,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18865,3,000,25,2,35,2,06,2,1,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18866,3,000,25,2,39,2,11,2,2,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18867,3,000,25,2,39,2,11,2,2,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18868,3,000,25,2,39,2,11,2,2,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18869,3,000,25,2,51,1,04,2,1,0,0,2,06,085,506204,4015,4,9999,99999,99999999,9,99999,99999999,25365,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3089598,-121.9875984,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,10290,14430,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95129 +18870,3,000,21,2,41,2,11,2,2,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18871,3,000,21,2,44,2,01,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18872,3,000,21,2,60,2,01,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18873,3,000,21,2,60,2,01,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18874,3,000,21,2,61,2,01,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18875,3,000,21,2,61,2,01,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18876,3,000,22,2,44,2,06,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18877,3,000,22,2,45,1,04,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18878,3,000,25,1,26,2,06,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18879,3,000,25,1,26,2,06,2,1,0,0,2,12,097,042702,3006,3,9999,99999,99999999,9,99999,99999999,26406,0,0,0,0,0,36740,09,999,99999,99999999,A,00295748,93029,S,01935920,422,5,99999,99999999,+28.3195985,-081.3637645,L,1,99999,99999,99999,9,N,N,09415,S,02546911,09703,3,99999,99999,01470,043,015,00294478,99999,99999999,9,999,99999,99999999,999999,45451,U,99999,U,000200,34743 +18880,3,000,20,1,54,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18881,3,000,20,1,55,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18882,3,000,20,1,55,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18883,3,000,20,1,56,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18884,3,000,20,1,56,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18885,3,000,20,1,56,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18886,3,000,20,1,56,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18887,3,000,20,1,56,1,01,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18888,3,000,20,1,56,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18889,3,000,20,1,56,1,04,2,1,0,0,2,06,013,380001,1015,1,9999,99999,99999999,9,99999,99999999,71403,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9166445,-122.3518513,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +18890,3,000,20,1,47,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18891,3,000,20,1,48,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18892,3,000,20,1,48,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18893,3,000,20,1,48,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18894,3,000,20,1,48,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18895,3,000,20,1,48,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18896,3,000,20,1,48,1,04,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18897,3,000,20,1,49,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18898,3,000,20,1,49,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18899,3,000,20,1,49,1,02,1,1,0,0,2,24,031,701505,1001,1,9999,99999,99999999,9,99999,99999999,131768,0,0,0,0,0,47900,03,999,99999,99999999,A,01712500,90428,N,01929623,548,5,99999,99999999,+39.0401464,-076.9933903,L,1,23224,99999,99999,9,N,N,84375,S,02390508,01006,3,99999,99999,00480,020,020,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,05-010,20901 +18900,3,000,20,2,61,1,01,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18901,3,000,20,2,61,1,01,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18902,3,000,20,2,89,1,01,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18903,3,000,25,1,9,1,11,2,2,0,0,1,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18904,3,000,25,1,11,1,08,2,2,0,0,1,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18905,3,000,25,2,0,1,11,2,2,0,0,1,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18906,3,000,25,2,5,2,04,2,1,0,0,1,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18907,3,000,25,2,18,1,01,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18908,3,000,25,2,18,1,01,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18909,3,000,27,1,37,1,01,2,1,0,0,2,08,123,002106,3013,3,9999,99999,99999999,9,99999,99999999,950679,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91881,S,01935492,216,8,99999,99999999,+40.2365747,-104.9892797,L,1,99999,99999,99999,9,N,N,49600,A,02412970,01003,4,99999,99999,05370,063,023,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,123200,80542 +18910,3,000,21,1,56,2,06,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18911,3,000,25,1,9,1,01,2,1,0,0,1,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18912,3,000,25,1,9,1,01,2,1,0,0,1,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18913,3,000,25,1,12,1,01,2,1,0,0,1,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18914,3,000,25,1,21,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18915,3,000,25,1,23,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18916,3,000,25,1,31,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18917,3,000,25,1,34,2,11,2,2,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18918,3,000,25,2,23,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18919,3,000,25,2,23,1,01,2,1,0,0,2,48,171,950200,3044,3,9999,99999,99999999,9,99999,99999999,325958,0,0,0,0,0,23240,21,999,99999,99999999,A,01383871,91725,S,01938826,314,7,99999,99999999,+30.1878731,-099.1533042,L,2,99999,99999,99999,9,9,9,99999,9,99999999,06000,3,99999,99999,22590,073,024,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,78028 +18920,3,000,20,1,58,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18921,3,000,20,1,58,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18922,3,000,20,1,58,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18923,3,000,20,2,70,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18924,3,000,20,2,70,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18925,3,000,20,2,70,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18926,3,000,20,2,70,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18927,3,000,20,2,70,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18928,3,000,20,2,79,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18929,3,000,20,2,79,1,01,1,1,0,0,2,50,015,953500,3029,3,9999,99999,99999999,9,99999,99999999,4930746,0,0,0,0,0,99999,00,999,99999,99999999,A,01461764,46675,A,01462154,999,1,99999,99999999,+44.5367022,-072.6050935,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,1,99999,99999,99926,LMW,LAM,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,501507,05661 +18930,3,000,20,2,35,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18931,3,000,20,2,35,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18932,3,000,20,2,35,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18933,3,000,20,2,35,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18934,3,000,20,2,35,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18935,3,000,20,2,35,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18936,3,000,20,2,36,1,04,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18937,3,000,20,2,37,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18938,3,000,20,2,38,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18939,3,000,20,2,38,1,02,1,1,0,0,2,48,201,551901,1001,1,9999,99999,99999999,9,99999,99999999,46418,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.9052759,-095.5865521,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04628,3,99999,99999,16110,135,007,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000225,77065 +18940,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18941,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18942,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18943,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18944,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18945,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18946,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18947,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18948,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18949,3,000,25,1,7,1,04,2,1,0,0,1,36,059,300901,2009,2,9999,99999,99999999,9,99999,99999999,41081,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,53000,A,00979289,408,2,99999,99999999,+40.7700654,-073.7245026,L,1,35004,99999,99999,9,N,N,40937,A,02390928,03201,1,99999,99999,12510,016,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000814,11020 +18950,3,000,25,2,2,1,08,2,2,0,0,1,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18951,3,000,25,2,16,1,01,2,1,0,0,1,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18952,3,000,25,2,16,1,01,2,1,0,0,1,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18953,3,000,25,2,52,1,02,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18954,3,000,34,2,23,1,02,2,1,0,0,2,18,097,322300,1000,1,9999,99999,99999999,9,99999,99999999,22100,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460370,-086.1410825,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18955,3,000,20,2,27,1,01,1,1,0,0,2,18,097,322300,1001,1,9999,99999,99999999,9,99999,99999999,24484,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460347,-086.1423751,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18956,3,000,20,2,27,1,01,1,1,0,0,2,18,097,322300,1001,1,9999,99999,99999999,9,99999,99999999,24484,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460347,-086.1423751,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18957,3,000,20,2,27,1,01,1,1,0,0,2,18,097,322300,1001,1,9999,99999,99999999,9,99999,99999999,24484,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460347,-086.1423751,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18958,3,000,20,2,28,1,01,1,1,0,0,2,18,097,322300,1001,1,9999,99999,99999999,9,99999,99999999,24484,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460347,-086.1423751,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18959,3,000,20,2,28,1,01,1,1,0,0,2,18,097,322300,1001,1,9999,99999,99999999,9,99999,99999999,24484,0,0,0,0,0,26900,05,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8460347,-086.1423751,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,04770,086,030,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,004310,46205 +18960,3,000,25,2,9,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18961,3,000,25,2,9,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18962,3,000,25,2,9,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18963,3,000,25,2,38,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18964,3,000,29,1,56,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18965,3,000,29,1,57,1,01,2,1,0,0,2,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18966,3,000,30,1,4,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18967,3,000,30,1,4,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18968,3,000,30,1,9,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18969,3,000,30,1,16,1,01,2,1,0,0,1,05,111,490400,2021,2,9999,99999,99999999,9,99999,99999999,20735,0,0,0,0,0,27860,01,999,99999,99999999,A,00069174,94068,N,00068983,308,7,99999,99999999,+35.6795306,-090.5179343,L,1,99999,99999,99999,9,N,N,70010,A,02405607,00700,3,99999,99999,00047,054,022,00068085,99999,99999999,9,999,99999,99999999,999999,88651,U,99999,U,000036,72472 +18970,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18971,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18972,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18973,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18974,3,000,25,1,19,1,01,2,1,0,0,2,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18975,3,000,25,2,1,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18976,3,000,25,2,2,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18977,3,000,25,2,2,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18978,3,000,25,2,2,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18979,3,000,25,2,2,1,01,2,1,0,0,1,37,183,054021,1021,1,9999,99999,99999999,9,99999,99999999,65208,0,0,0,0,0,39580,02,999,99999,99999999,A,01008592,92228,N,01027269,450,5,99999,99999999,+35.9244797,-078.5618192,L,1,99999,99999,99999,9,Y,N,55000,A,02404590,01203,3,99999,99999,04720,035,014,01027616,99999,99999999,9,999,99999,99999999,999999,73261,U,99999,U,013-10,27614 +18980,3,000,27,2,30,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18981,3,000,28,1,57,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18982,3,000,28,1,57,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18983,3,000,29,1,71,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18984,3,000,34,1,28,1,01,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18985,3,000,34,1,40,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18986,3,000,34,1,66,1,02,2,1,0,0,2,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18987,3,000,36,1,0,1,01,2,1,0,0,1,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18988,3,000,36,1,6,1,07,2,2,0,0,1,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18989,3,000,36,2,14,1,02,2,1,0,0,1,51,800,065302,2018,2,9999,99999,99999999,9,99999,99999999,32285,0,0,0,0,0,47260,04,999,99999,99999999,F,01498560,95987,F,01498560,545,5,99999,99999999,+36.7279366,-076.5888013,L,1,99999,99999,99999,9,N,N,76432,A,01498560,80000,3,99999,99999,03710,077,014,01779803,99999,99999999,9,999,99999,99999999,999999,85384,U,99999,U,000601,23434 +18990,3,000,20,1,60,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18991,3,000,21,2,46,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18992,3,000,21,2,49,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18993,3,000,21,2,49,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18994,3,000,21,2,49,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18995,3,000,21,2,64,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18996,3,000,25,2,11,1,01,2,1,0,0,1,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18997,3,000,25,2,13,1,01,2,1,0,0,1,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18998,3,000,25,2,29,1,01,2,1,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +18999,3,000,30,2,20,1,11,2,2,0,0,2,36,043,010202,3004,3,9999,99999,99999999,9,99999,99999999,4459,0,0,0,0,0,46540,22,999,99999,99999999,A,00974120,27199,A,00978969,999,2,99999,99999999,+43.0225898,-075.0555819,L,1,99999,99999,99999,9,N,N,22029,S,02806939,00401,1,99999,99999,01087,119,051,01779796,99999,99999999,9,999,99999,99999999,999999,41023,U,99999,U,000007,13357 +19000,3,000,20,1,30,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19001,3,000,20,1,30,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19002,3,000,20,1,77,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19003,3,000,20,1,77,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19004,3,000,20,2,69,1,11,2,2,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19005,3,000,21,1,29,1,08,2,2,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19006,3,000,21,1,46,1,11,2,2,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19007,3,000,21,2,35,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19008,3,000,21,2,35,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19009,3,000,21,2,35,1,01,2,1,0,0,2,53,053,070206,1007,1,9999,99999,99999999,9,99999,99999999,169962,0,0,0,0,0,42660,08,999,99999,99999999,A,01529159,90336,S,01939459,500,9,99999,99999999,+47.1156015,-122.0572669,L,1,45104,99999,99999,9,9,9,99999,9,99999999,25304,4,99999,99999,09780,031,031,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,031923,98321 +19010,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19011,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19012,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19013,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19014,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19015,3,000,20,2,68,1,02,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19016,3,000,20,2,69,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19017,3,000,20,2,69,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19018,3,000,20,2,69,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19019,3,000,20,2,69,1,01,1,1,0,0,2,17,115,002001,2003,2,9999,99999,99999999,9,99999,99999999,348088,0,0,0,0,0,19500,13,999,99999,99999999,A,00424256,18836,A,00428877,999,3,99999,99999999,+39.8729999,-088.9601084,L,1,99999,99999,99999,9,Y,N,18823,A,02394481,11500,2,99999,99999,11850,096,048,01779784,99999,99999999,9,999,99999,99999999,999999,22717,U,99999,U,501060,62526 +19020,3,000,30,2,10,2,06,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19021,3,000,30,2,10,2,06,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19022,3,000,33,1,34,2,03,2,1,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19023,3,000,33,1,39,2,06,2,1,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19024,3,000,33,2,14,1,04,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19025,3,000,33,2,14,1,04,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19026,3,000,33,2,15,1,04,2,1,0,0,1,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19027,3,000,33,2,40,1,04,2,1,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19028,3,000,33,2,42,1,04,2,1,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19029,3,000,34,1,26,1,02,2,1,0,0,2,06,073,013319,1008,1,9999,99999,99999999,9,99999,99999999,12169,0,0,0,0,0,41740,53,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6446382,-116.9496689,L,1,99999,99999,99999,9,Y,N,13392,A,02409461,07329,4,08610,38640,99999,079,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,91915 +19030,3,000,20,2,77,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19031,3,000,20,2,77,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19032,3,000,20,2,77,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19033,3,000,20,2,78,1,01,1,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19034,3,000,20,2,81,1,11,1,2,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19035,3,000,20,2,81,1,11,1,2,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19036,3,000,20,1,25,1,01,2,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19037,3,000,20,1,26,1,01,2,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19038,3,000,20,1,29,1,01,2,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19039,3,000,20,1,29,1,01,2,1,0,0,2,36,035,970601,1009,1,9999,99999,99999999,9,99999,99999999,4474746,0,0,0,0,0,24100,21,999,99999,99999999,A,00974116,38792,A,00979111,104,2,99999,99999999,+43.0006020,-074.3328938,L,2,99999,99999,99999,9,9,9,99999,9,99999999,01600,1,99999,99999,15980,118,049,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000020,12095 +19040,3,000,20,1,57,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19041,3,000,20,1,57,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19042,3,000,20,1,57,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19043,3,000,20,1,57,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19044,3,000,20,1,59,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19045,3,000,20,1,59,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19046,3,000,20,1,59,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19047,3,000,20,1,59,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19048,3,000,20,1,59,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19049,3,000,20,1,59,1,01,1,1,0,0,2,02,198,000200,2021,2,6385,17745,02418851,R,67940,02419136,118614,0,0,0,0,0,99999,00,999,99999,99999999,S,01419980,64310,S,01939962,999,9,99999,99999999,+55.4741831,-133.1395238,L,9,99999,99999,99999,9,N,N,17740,A,02419374,00400,4,99999,99999,00090,035,00R,01785533,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,35-705,99921 +19050,3,000,33,2,39,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19051,3,000,36,1,25,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19052,3,000,36,1,25,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19053,3,000,36,1,29,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19054,3,000,36,2,45,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19055,3,000,36,2,45,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19056,3,000,36,2,46,1,02,2,1,0,0,2,26,163,507400,2026,2,9999,99999,99999999,9,99999,99999999,22694,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339668,-083.0882895,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19057,3,000,20,1,67,1,02,1,1,0,0,2,26,163,507400,2027,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339311,-083.0892793,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19058,3,000,20,1,67,1,02,1,1,0,0,2,26,163,507400,2027,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339311,-083.0892793,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19059,3,000,20,1,67,1,02,1,1,0,0,2,26,163,507400,2027,2,9999,99999,99999999,9,99999,99999999,22545,0,0,0,0,0,19820,14,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.4339311,-083.0892793,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03210,2,99999,99999,01103,003,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163359,48203 +19060,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19061,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19062,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19063,3,000,20,1,31,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19064,3,000,20,1,32,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19065,3,000,20,1,32,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19066,3,000,20,1,32,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19067,3,000,20,1,34,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19068,3,000,20,1,34,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19069,3,000,20,1,34,1,01,2,1,0,0,2,53,005,010201,1003,1,9999,99999,99999999,9,99999,99999999,20368,0,0,0,0,0,28420,04,999,99999,99999999,A,01513302,92768,S,01939611,313,9,99999,99999999,+46.3043316,-119.2878933,L,1,99999,99999,99999,9,Y,N,58235,A,02410937,20503,4,99999,99999,07320,008,008,01779804,99999,99999999,9,999,99999,99999999,999999,44479,U,58235,U,006170,99354 +19070,3,000,21,1,58,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19071,3,000,21,1,63,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19072,3,000,21,1,63,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19073,3,000,21,1,72,2,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19074,3,000,21,1,83,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19075,3,000,21,2,31,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19076,3,000,21,2,45,1,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19077,3,000,21,2,53,2,06,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19078,3,000,21,2,60,2,01,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19079,3,000,21,2,77,2,06,2,1,0,0,2,35,049,001106,2013,2,9999,99999,99999999,9,99999,99999999,190422,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92820,S,01937585,106,8,99999,99999999,+35.6402156,-106.0058655,L,1,99999,99999,99999,9,Y,N,70500,A,02411821,00500,4,99999,99999,02370,048,024,00897535,99999,99999999,9,999,99999,99999999,999999,79363,U,99999,U,000038,87507 +19080,3,000,25,1,32,2,06,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19081,3,000,25,1,34,1,04,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19082,3,000,25,1,34,1,04,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19083,3,000,25,1,34,2,06,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19084,3,000,25,1,35,2,11,2,2,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19085,3,000,25,1,37,1,04,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19086,3,000,25,1,37,1,04,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19087,3,000,25,1,37,2,11,2,2,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19088,3,000,25,1,38,2,06,2,1,0,0,2,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19089,3,000,25,2,0,2,11,2,2,0,0,1,06,037,575101,1000,1,9999,99999,99999999,9,99999,99999999,53930,0,0,0,0,0,31080,47,999,99999,99999999,A,00277283,91730,S,01935178,348,9,99999,99999999,+33.7889488,-118.1647579,L,1,31084,99999,99999,9,Y,N,43000,A,02410866,03780,4,99999,99999,22500,070,033,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90804 +19090,3,000,21,2,55,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19091,3,000,21,2,55,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19092,3,000,21,2,55,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19093,3,000,21,2,56,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19094,3,000,21,2,56,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19095,3,000,22,1,25,1,01,2,1,0,0,2,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19096,3,000,25,1,4,1,01,2,1,0,0,1,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19097,3,000,25,1,4,1,01,2,1,0,0,1,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19098,3,000,25,1,6,1,01,2,1,0,0,1,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19099,3,000,25,1,6,1,01,2,1,0,0,1,23,031,031000,2027,2,9999,99999,99999999,9,99999,99999999,1581311,0,0,0,0,0,38860,01,999,99999,99999999,A,00581301,38425,A,00582550,438,1,99999,99999999,+43.3932080,-070.9577820,L,1,99999,99999,73050,1,9,9,99999,9,99999999,00800,1,99999,99999,14700,020,034,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,038425,04027 +19100,3,000,25,1,11,1,02,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19101,3,000,25,1,13,1,07,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19102,3,000,25,1,13,1,07,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19103,3,000,25,1,13,1,12,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19104,3,000,25,1,15,1,07,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19105,3,000,25,1,15,1,07,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19106,3,000,25,1,15,1,09,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19107,3,000,25,1,15,1,09,2,2,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19108,3,000,25,1,16,1,04,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19109,3,000,25,1,17,1,02,2,1,0,0,1,27,053,026726,3017,3,9999,99999,99999999,9,99999,99999999,88475,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,40166,F,02395838,378,4,99999,99999999,+45.1095817,-093.4315332,L,1,99999,99999,99999,9,N,N,40166,A,02395838,01603,2,99999,99999,25200,34B,034,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001200,55369 +19110,3,000,20,1,63,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19111,3,000,20,1,64,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19112,3,000,20,1,64,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19113,3,000,20,1,64,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19114,3,000,20,2,26,2,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19115,3,000,20,2,27,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19116,3,000,20,2,27,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19117,3,000,20,2,27,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19118,3,000,20,2,29,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19119,3,000,20,2,29,1,01,2,1,0,0,2,45,019,005800,3014,3,9999,99999,99999999,9,99999,99999999,6030,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,93646,S,02584540,999,5,99999,99999999,+32.8350740,-080.0897285,L,1,99999,99999,99999,9,Y,N,13330,A,02404030,02302,3,99999,99999,01440,114,041,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000537,29414 +19120,3,000,21,2,74,1,04,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19121,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19122,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19123,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19124,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19125,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19126,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19127,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19128,3,000,21,2,76,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19129,3,000,21,2,77,1,01,2,1,0,0,2,05,051,011901,3001,3,9999,99999,99999999,9,99999,99999999,532914,0,0,0,0,0,26300,04,999,99999,99999999,A,00066855,92100,N,00066594,284,7,99999,99999999,+34.4345807,-093.0768911,L,1,99999,99999,99999,9,N,N,37930,S,02403190,01300,3,99999,99999,08670,026,013,00068085,99999,99999999,9,999,99999,99999999,999999,40213,U,99999,U,000073,71913 +19130,3,000,20,2,27,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19131,3,000,20,2,32,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19132,3,000,20,2,32,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19133,3,000,20,2,32,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19134,3,000,20,2,34,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19135,3,000,20,2,34,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19136,3,000,20,2,55,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19137,3,000,20,2,56,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19138,3,000,20,2,56,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19139,3,000,20,2,56,1,02,1,1,0,0,2,18,097,321002,2033,2,9999,99999,99999999,9,99999,99999999,136982,0,0,0,0,0,26900,07,999,36000,02395423,C,00450371,80792,A,00454005,294,3,99999,99999999,+39.8249867,-086.2073398,L,1,99999,99999,99999,9,Y,N,36003,F,02395424,02402,2,99999,99999,12720,099,033,00448508,99999,99999999,9,999,99999,99999999,999999,41212,U,99999,U,005090,46228 +19140,3,000,32,1,32,1,04,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19141,3,000,32,1,59,1,04,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19142,3,000,32,2,32,1,04,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19143,3,000,32,2,32,1,04,2,1,0,0,2,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19144,3,000,33,1,3,1,04,2,1,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19145,3,000,33,1,10,1,04,2,1,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19146,3,000,33,2,6,2,20,2,2,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19147,3,000,33,2,12,2,04,2,1,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19148,3,000,33,2,12,2,04,2,1,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19149,3,000,33,2,12,2,04,2,1,0,0,1,15,007,040401,3010,3,9999,99999,99999999,9,99999,99999999,44299,0,0,0,0,0,28180,02,999,99999,99999999,A,00365282,92970,S,01935670,999,9,99999,99999999,+21.9615822,-159.3917241,L,2,99999,99999,99999,9,N,N,65750,S,02414127,00100,4,99999,99999,00030,015,008,01779782,99999,99999999,9,999,99999,99999999,999999,49771,U,99999,U,,96766 +19150,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19151,3,000,25,1,15,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19152,3,000,30,1,12,1,01,2,1,0,0,1,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19153,3,000,30,2,27,1,01,2,1,0,0,2,23,025,966000,3021,3,9999,99999,99999999,9,99999,99999999,26411,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7766899,-069.3823511,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19154,3,000,20,1,19,1,01,1,1,0,0,2,23,025,966000,3022,3,9999,99999,99999999,9,99999,99999999,17011,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7785840,-069.3830621,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19155,3,000,20,1,19,1,01,1,1,0,0,2,23,025,966000,3022,3,9999,99999,99999999,9,99999,99999999,17011,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7785840,-069.3830621,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19156,3,000,20,1,32,1,01,1,1,0,0,2,23,025,966000,3022,3,9999,99999,99999999,9,99999,99999999,17011,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7785840,-069.3830621,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19157,3,000,20,1,62,1,01,1,1,0,0,2,23,025,966000,3022,3,9999,99999,99999999,9,99999,99999999,17011,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7785840,-069.3830621,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19158,3,000,20,1,62,1,01,1,1,0,0,2,23,025,966000,3022,3,9999,99999,99999999,9,99999,99999999,17011,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7785840,-069.3830621,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19159,3,000,20,1,62,1,01,1,1,0,0,2,23,025,966000,3022,3,9999,99999,99999999,9,99999,99999999,17011,0,0,0,0,0,99999,02,999,99999,99999999,A,00581298,59005,A,00582676,999,1,99999,99999999,+44.7785840,-069.3830621,L,9,99999,99999,99999,9,N,N,58970,S,02377949,00200,1,99999,99999,14610,106,003,01779787,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,04967 +19160,3,000,20,2,29,2,01,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19161,3,000,20,2,30,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19162,3,000,20,2,30,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19163,3,000,20,2,30,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19164,3,000,20,2,30,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19165,3,000,20,2,30,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19166,3,000,20,2,31,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19167,3,000,20,2,32,1,01,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19168,3,000,20,2,32,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19169,3,000,20,2,32,1,02,2,1,0,0,2,48,113,019039,1009,1,9999,99999,99999999,9,99999,99999999,92692,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9444663,-096.7117904,L,1,19124,99999,99999,9,Y,N,61796,A,02410933,02309,3,99999,99999,37020,102,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002514,75081 +19170,3,000,20,1,44,1,04,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19171,3,000,20,1,50,2,03,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19172,3,000,20,1,53,2,03,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19173,3,000,20,1,54,1,04,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19174,3,000,20,1,57,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19175,3,000,20,1,60,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19176,3,000,20,1,60,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19177,3,000,20,1,67,1,02,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19178,3,000,20,1,67,2,06,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19179,3,000,20,2,41,1,02,2,1,0,0,2,06,037,218300,5006,5,9999,99999,99999999,9,99999,99999999,29355,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0418956,-118.3631928,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03747,4,99999,99999,22710,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90019 +19180,3,000,25,2,23,1,08,2,2,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19181,3,000,25,2,61,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19182,3,000,25,2,61,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19183,3,000,25,2,61,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19184,3,000,29,2,59,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19185,3,000,29,2,59,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19186,3,000,29,2,95,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19187,3,000,30,2,3,2,01,2,1,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19188,3,000,30,2,13,2,11,2,2,0,0,1,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19189,3,000,31,1,81,1,01,2,1,0,0,2,48,309,004000,1073,1,9999,99999,99999999,9,99999,99999999,1862660,0,0,0,0,0,47380,17,999,99999,99999999,A,01383946,90895,S,01938657,999,7,99999,99999999,+31.5437285,-097.2855569,L,1,99999,99999,99999,9,N,N,79456,S,02805809,03802,3,99999,99999,30640,056,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000082,76712 +19190,3,000,33,1,18,1,01,2,1,0,0,2,22,009,030200,1083,1,9999,99999,99999999,9,99999,99999999,1545464,66835,0,0,66835,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2348149,-092.0285696,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19191,3,000,20,1,46,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19192,3,000,20,1,49,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19193,3,000,20,1,49,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19194,3,000,20,1,49,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19195,3,000,20,2,78,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19196,3,000,20,2,78,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19197,3,000,20,2,78,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19198,3,000,20,2,78,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19199,3,000,20,2,87,1,01,1,1,0,0,2,22,009,030200,1084,1,9999,99999,99999999,9,99999,99999999,8924155,35851,0,0,35851,0,99999,05,999,99999,99999999,A,00558424,94012,N,01929722,999,7,99999,99999999,+31.2071573,-092.0584716,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00600,3,99999,99999,00150,028,032,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0001-2,71331 +19200,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19201,3,000,25,1,3,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19202,3,000,25,1,3,1,04,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19203,3,000,25,1,4,1,04,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19204,3,000,25,1,9,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19205,3,000,25,1,9,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19206,3,000,25,1,9,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19207,3,000,25,1,9,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19208,3,000,25,1,9,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19209,3,000,25,1,9,1,01,2,1,0,0,1,17,031,071600,1004,1,9999,99999,99999999,9,99999,99999999,10131,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9173582,-087.6427280,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,011,006,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043009,60614 +19210,3,000,20,2,82,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19211,3,000,20,2,82,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19212,3,000,21,1,52,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19213,3,000,21,1,52,1,02,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19214,3,000,21,2,31,1,12,2,2,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19215,3,000,21,2,31,1,12,2,2,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19216,3,000,21,2,32,1,04,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19217,3,000,21,2,66,1,01,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19218,3,000,21,2,66,1,01,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19219,3,000,21,2,66,1,01,2,1,0,0,2,27,053,003200,1001,1,9999,99999,99999999,9,99999,99999999,21691,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,43000,F,02395345,378,4,99999,99999999,+44.9870028,-093.3103422,L,1,99999,99999,99999,9,Y,N,43000,A,02395345,01608,2,99999,99999,21240,59B,059,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001570,55411 +19220,3,000,21,2,33,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19221,3,000,21,2,33,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19222,3,000,21,2,34,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19223,3,000,21,2,34,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19224,3,000,21,2,34,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19225,3,000,21,2,68,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19226,3,000,22,2,23,1,01,2,1,0,0,2,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19227,3,000,25,1,2,1,11,2,2,0,0,1,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19228,3,000,25,1,3,1,06,2,1,0,0,1,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19229,3,000,25,1,4,1,09,2,2,0,0,1,42,107,003100,2027,2,9999,99999,99999999,9,99999,99999999,6122,0,0,0,0,0,39060,09,999,99999,99999999,A,01213685,57184,F,01215561,999,2,99999,99999999,+40.6556538,-076.1023287,L,2,99999,99999,99999,9,N,N,57184,A,01215561,02600,1,99999,99999,03870,124,029,01779798,99999,99999999,9,999,99999,99999999,999999,79973,U,99999,U,000850,17961 +19230,3,000,25,1,54,1,01,2,1,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19231,3,000,25,1,54,1,01,2,1,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19232,3,000,25,1,54,1,01,2,1,0,0,2,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19233,3,000,25,2,5,2,01,2,1,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19234,3,000,25,2,5,2,01,2,1,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19235,3,000,25,2,5,2,01,2,1,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19236,3,000,25,2,5,2,01,2,1,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19237,3,000,25,2,7,2,01,2,1,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19238,3,000,25,2,7,2,08,2,2,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19239,3,000,25,2,10,2,01,2,1,0,0,1,48,187,210718,1002,1,9999,99999,99999999,9,99999,99999999,33400,0,0,0,0,0,41700,15,999,99999,99999999,A,01383879,93470,S,01939176,484,7,99999,99999999,+29.5842820,-098.2177017,L,1,99999,99999,99999,9,N,N,14920,A,02409462,05700,3,99999,99999,39480,044,025,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,000302,78108 +19240,3,000,21,1,39,1,02,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19241,3,000,21,1,44,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19242,3,000,21,1,46,1,02,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19243,3,000,21,1,48,1,02,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19244,3,000,21,1,49,2,11,2,2,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19245,3,000,21,1,53,1,04,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19246,3,000,21,1,55,1,11,2,2,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19247,3,000,21,1,57,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19248,3,000,21,1,57,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19249,3,000,21,1,58,1,01,2,1,0,0,2,48,201,430200,1001,1,9999,99999,99999999,9,99999,99999999,60076,0,0,0,0,0,26420,02,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7803633,-095.4874105,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,41100,133,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000274,77024 +19250,3,000,20,1,45,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19251,3,000,20,1,45,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19252,3,000,20,1,45,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19253,3,000,20,1,49,1,09,2,2,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19254,3,000,20,1,55,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19255,3,000,20,1,55,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19256,3,000,20,1,57,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19257,3,000,20,1,57,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19258,3,000,20,1,57,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19259,3,000,20,1,57,1,01,2,1,0,0,2,45,019,004619,1027,1,9999,99999,99999999,9,99999,99999999,77925,0,0,0,0,0,16700,01,999,99999,99999999,A,01252740,92301,S,01938358,999,5,99999,99999999,+32.8236026,-079.8251736,L,1,99999,99999,99999,9,N,N,48535,A,02406211,02303,3,99999,99999,01440,112,034,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000320,29464 +19260,3,000,29,2,91,1,01,2,1,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19261,3,000,36,2,72,2,01,2,1,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19262,3,000,36,2,72,2,01,2,1,0,0,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19263,5,801,38,2,37,1,02,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19264,5,801,38,2,66,1,01,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19265,5,801,38,2,66,1,04,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19266,5,801,38,2,75,1,01,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19267,5,801,38,2,79,1,04,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19268,5,801,38,2,86,1,01,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19269,5,801,38,2,91,1,01,0,1,2,7,2,06,111,005503,2003,2,9999,99999,99999999,9,99999,99999999,11333,0,0,0,0,0,37100,26,999,99999,99999999,A,00277320,90350,S,01935039,348,9,99999,99999999,+34.2308054,-119.0555113,L,1,99999,99999,99999,9,Y,N,10046,A,02409966,11109,4,30990,29270,99999,044,019,01779778,99999,99999999,9,999,99999,99999999,999999,12754,U,99999,U,,93010 +19270,3,000,20,1,48,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19271,3,000,20,1,48,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19272,3,000,20,1,48,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19273,3,000,20,1,48,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19274,3,000,20,1,48,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19275,3,000,20,1,48,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19276,3,000,20,1,49,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19277,3,000,20,1,49,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19278,3,000,20,1,49,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19279,3,000,20,1,49,1,01,2,1,0,0,2,13,135,050117,1007,1,9999,99999,99999999,9,99999,99999999,406992,3977,0,0,3977,0,12060,07,999,99999,99999999,A,01688166,90469,S,01936144,122,5,99999,99999999,+34.1071704,-084.0777813,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,098,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000141,30518 +19280,3,000,25,1,40,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19281,3,000,25,1,41,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19282,3,000,25,1,43,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19283,3,000,25,1,50,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19284,3,000,25,1,50,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19285,3,000,25,1,53,1,01,2,1,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19286,3,000,25,2,6,1,01,2,1,0,0,1,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19287,3,000,25,2,11,1,11,2,2,0,0,1,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19288,3,000,25,2,17,2,22,2,3,0,0,1,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19289,3,000,25,2,18,1,08,2,2,0,0,2,48,287,000100,4015,4,9999,99999,99999999,9,99999,99999999,6729030,0,0,0,0,0,99999,17,999,99999,99999999,A,01383929,92190,S,01938919,999,7,99999,99999999,+30.3494606,-097.1939870,L,9,99999,99999,99999,9,9,9,99999,9,99999999,05100,3,99999,99999,27330,017,018,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000303,78650 +19290,3,000,21,1,47,2,06,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19291,3,000,21,1,49,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19292,3,000,21,1,54,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19293,3,000,21,1,59,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19294,3,000,21,1,59,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19295,3,000,21,1,59,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19296,3,000,21,1,59,1,04,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19297,3,000,21,1,60,2,11,2,2,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19298,3,000,21,1,66,2,03,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19299,3,000,21,1,71,1,03,2,1,0,0,2,06,075,012404,2000,2,9999,99999,99999999,9,99999,99999999,15360,0,0,0,0,0,41860,12,999,99999,99999999,C,00277302,90734,S,02804908,488,9,99999,99999999,+37.7840866,-122.4151567,L,1,41884,99999,99999,9,Y,N,67000,A,02411786,07509,4,99999,99999,34410,017,011,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94109 +19300,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19301,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19302,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19303,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19304,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19305,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19306,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19307,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19308,3,000,25,1,17,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19309,3,000,25,2,2,1,01,2,1,0,0,1,42,029,311702,3004,3,9999,99999,99999999,9,99999,99999999,446020,13,0,0,13,0,37980,06,999,99999,99999999,A,01209174,44480,A,01216166,428,2,99999,99999999,+39.8112863,-075.7913713,B,1,33874,99999,99999,9,9,9,99999,9,99999999,03415,1,99999,99999,02790,013,019,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,000680,19311 +19310,3,000,20,1,72,1,01,2,1,0,0,2,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19311,3,000,20,1,72,1,01,2,1,0,0,2,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19312,3,000,20,1,72,1,01,2,1,0,0,2,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19313,3,000,25,1,14,1,01,2,1,0,0,1,28,015,950201,1037,1,9999,99999,99999999,9,99999,99999999,281662,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,92286,N,00711796,999,6,99999,99999999,+33.4820040,-089.9230100,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19314,3,000,21,2,84,1,01,2,1,0,0,2,28,015,950201,1039,1,9999,99999,99999999,9,99999,99999999,26393,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,90810,N,00711794,999,6,99999,99999999,+33.4860447,-089.9268711,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19315,3,000,27,2,11,1,01,2,1,0,0,1,28,015,950201,1039,1,9999,99999,99999999,9,99999,99999999,26393,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,90810,N,00711794,999,6,99999,99999999,+33.4860447,-089.9268711,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19316,3,000,30,2,1,1,01,2,1,0,0,1,28,015,950201,1039,1,9999,99999,99999999,9,99999,99999999,26393,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,90810,N,00711794,999,6,99999,99999999,+33.4860447,-089.9268711,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19317,3,000,34,2,59,1,01,2,1,0,0,2,28,015,950201,1039,1,9999,99999,99999999,9,99999,99999999,26393,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,90810,N,00711794,999,6,99999,99999999,+33.4860447,-089.9268711,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19318,3,000,20,1,76,1,01,2,1,0,0,2,28,015,950201,1040,1,9999,99999,99999999,9,99999,99999999,26182,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,90810,N,00711794,999,6,99999,99999999,+33.4848462,-089.9282894,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19319,3,000,25,1,2,1,02,2,1,0,0,1,28,015,950201,1041,1,9999,99999,99999999,9,99999,99999999,1008697,0,0,0,0,0,24900,02,999,99999,99999999,A,00695732,90810,N,00711794,999,6,99999,99999999,+33.4778568,-089.9311912,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00700,3,99999,99999,00930,046,014,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000108,38917 +19320,3,000,21,2,69,2,11,2,2,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19321,3,000,21,2,69,2,11,2,2,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19322,3,000,21,2,69,2,11,2,2,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19323,3,000,21,2,74,1,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19324,3,000,21,2,75,2,01,2,1,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19325,3,000,22,1,27,2,11,2,2,0,0,2,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19326,3,000,25,1,4,1,01,2,1,0,0,1,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19327,3,000,25,1,5,1,01,2,1,0,0,1,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19328,3,000,25,1,5,1,01,2,1,0,0,1,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19329,3,000,25,1,5,1,08,2,2,0,0,1,06,065,043900,3011,3,9999,99999,99999999,9,99999,99999999,13885,0,0,0,0,0,40140,36,999,99999,99999999,A,00277297,92810,S,01935286,348,9,99999,99999999,+33.9363480,-116.9656349,L,1,99999,99999,99999,9,N,N,04758,A,02409805,06507,4,99999,99999,04290,042,023,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92223 +19330,3,000,25,2,25,1,03,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19331,3,000,25,2,25,1,03,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19332,3,000,25,2,28,1,03,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19333,3,000,25,2,30,1,03,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19334,3,000,26,1,14,1,04,2,1,0,0,1,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19335,3,000,26,1,14,1,04,2,1,0,0,1,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19336,3,000,26,1,56,1,11,2,2,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19337,3,000,27,2,20,1,03,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19338,3,000,28,2,22,1,03,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19339,3,000,29,1,67,1,04,2,1,0,0,2,02,020,002602,1006,1,9999,99999,99999999,9,17140,02418878,141644,0,0,0,0,0,11260,00,999,99999,99999999,C,01416061,03050,S,01939927,999,9,99999,99999999,+61.1611605,-149.8262629,L,1,99999,99999,99999,9,Y,N,03000,A,02419025,00102,4,99999,99999,00180,025,00M,01785533,99999,99999999,9,999,99999,99999999,999999,02305,U,99999,U,25-870,99507 +19340,3,000,20,2,47,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19341,3,000,20,2,47,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19342,3,000,20,2,47,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19343,3,000,20,2,49,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19344,3,000,20,2,74,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19345,3,000,21,2,43,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19346,3,000,21,2,84,1,01,2,1,0,0,2,17,019,010500,4096,4,9999,99999,99999999,9,99999,99999999,2633813,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327749,-088.4133904,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61845 +19347,3,000,25,1,1,1,01,2,1,0,0,1,17,019,010500,4097,4,9999,99999,99999999,9,99999,99999999,2617004,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327399,-088.3943219,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61843 +19348,3,000,25,1,6,1,01,2,1,0,0,1,17,019,010500,4097,4,9999,99999,99999999,9,99999,99999999,2617004,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327399,-088.3943219,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61843 +19349,3,000,25,1,19,1,01,2,1,0,0,2,17,019,010500,4097,4,9999,99999,99999999,9,99999,99999999,2617004,0,0,0,0,0,16580,15,999,99999,99999999,A,00424211,08914,A,00428720,999,3,99999,99999999,+40.3327399,-088.3943219,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01902,2,99999,99999,15180,101,051,01779784,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,BFO000,61843 +19350,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19351,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19352,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19353,3,000,20,2,76,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19354,3,000,20,2,78,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19355,3,000,20,2,78,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19356,3,000,20,2,78,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19357,3,000,20,2,78,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19358,3,000,20,2,78,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19359,3,000,20,2,78,1,01,1,1,0,0,2,10,003,011203,1002,1,9999,99999,99999999,9,99999,99999999,781166,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,90148,S,01935602,428,5,99999,99999999,+39.8308170,-075.4970930,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00101,3,99999,99999,01240,010,005,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,009-10,19810 +19360,3,000,21,1,63,2,03,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19361,3,000,21,2,26,1,03,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19362,3,000,21,2,31,2,06,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19363,3,000,21,2,49,2,03,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19364,3,000,21,2,49,2,03,2,1,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19365,3,000,21,2,62,2,11,2,2,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19366,3,000,21,2,62,2,11,2,2,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19367,3,000,21,2,63,2,11,2,2,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19368,3,000,21,2,63,2,11,2,2,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19369,3,000,21,2,63,2,11,2,2,0,0,2,04,013,061402,1010,1,9999,99999,99999999,9,99999,99999999,10046,0,0,0,0,0,38060,03,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.4216424,-112.3532102,L,1,99999,99999,99999,9,N,N,04720,A,02409765,00133,4,00960,00450,99999,019,019,01779777,99999,99999999,9,999,99999,99999999,999999,69192,U,99999,U,000188,85323 +19370,3,000,25,2,16,2,06,2,1,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19371,3,000,25,2,17,2,11,2,2,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19372,3,000,25,2,17,2,11,2,2,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19373,3,000,25,2,17,2,11,2,2,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19374,3,000,25,2,17,2,11,2,2,0,0,1,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19375,3,000,25,2,21,2,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19376,3,000,25,2,22,2,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19377,3,000,25,2,22,2,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19378,3,000,25,2,23,2,06,2,1,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19379,3,000,25,2,27,2,11,2,2,0,0,2,48,091,310401,2012,2,9999,99999,99999999,9,99999,99999999,23920,0,0,0,0,0,41700,35,999,99999,99999999,A,01383831,92730,S,01939027,484,7,99999,99999999,+29.6880748,-098.1366420,L,1,99999,99999,99999,9,Y,N,50820,A,02411228,05800,3,99999,99999,32370,073,025,01779801,99999,99999999,9,999,99999,99999999,999999,61948,U,99999,U,000301,78130 +19380,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19381,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19382,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19383,3,000,25,2,13,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19384,3,000,25,2,15,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19385,3,000,25,2,15,1,02,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19386,3,000,25,2,60,1,01,2,1,0,0,2,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19387,3,000,29,2,65,1,01,2,1,0,0,2,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19388,3,000,29,2,65,1,01,2,1,0,0,2,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19389,3,000,30,2,8,1,01,2,1,0,0,1,13,135,050744,3004,3,9999,99999,99999999,9,99999,99999999,763660,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92790,S,01936544,122,5,99999,99999999,+33.8861421,-083.8969998,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01603,3,99999,99999,02550,105,009,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000146,30052 +19390,3,000,20,2,39,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19391,3,000,20,2,39,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19392,3,000,20,2,39,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19393,3,000,20,2,40,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19394,3,000,20,2,40,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19395,3,000,20,2,40,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19396,3,000,20,2,47,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19397,3,000,20,2,47,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19398,3,000,20,2,49,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19399,3,000,20,2,49,2,06,2,1,0,0,2,34,013,008900,1001,1,9999,99999,99999999,9,99999,99999999,17059,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7563222,-074.1745535,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C46,07104 +19400,5,301,37,2,93,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +19401,5,301,37,2,96,1,02,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +19402,5,301,37,2,101,1,01,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +19403,5,301,37,2,101,1,01,0,1,1,3,2,28,021,950100,1026,1,9999,99999,99999999,9,99999,99999999,25172376,0,0,0,0,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0731213,-090.8668801,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,39150 +19404,3,000,21,1,68,1,04,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19405,3,000,21,1,70,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19406,3,000,21,2,31,1,04,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19407,3,000,21,2,31,1,04,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19408,3,000,21,2,33,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19409,3,000,21,2,33,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19410,3,000,21,2,35,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19411,3,000,21,2,36,1,01,2,1,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19412,3,000,21,2,38,1,09,2,2,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19413,3,000,21,2,40,1,11,2,2,0,0,2,06,085,506401,3012,3,9999,99999,99999999,9,99999,99999999,61414,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3108753,-121.9477542,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08508,4,07200,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95128 +19414,3,000,25,1,18,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19415,3,000,25,1,18,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19416,3,000,25,1,19,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19417,3,000,25,1,21,2,06,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19418,3,000,25,1,47,1,02,2,1,0,0,2,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19419,3,000,25,2,3,1,02,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19420,3,000,25,2,3,1,02,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19421,3,000,25,2,3,1,02,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19422,3,000,25,2,5,1,07,2,2,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19423,3,000,25,2,6,1,01,2,1,0,0,1,36,029,004401,1003,1,9999,99999,99999999,9,99999,99999999,22637,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,11000,F,00978764,160,2,99999,99999999,+42.9384447,-078.8084404,L,1,99999,99999,99999,9,Y,N,11000,A,00978764,01205,1,99999,99999,05850,141,063,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000391,14215 +19424,3,000,25,2,12,1,01,2,1,0,0,1,55,031,030101,2077,2,9999,99999,99999999,9,99999,99999999,517222,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5365219,-091.8932602,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54874 +19425,3,000,20,2,46,2,03,2,1,0,0,2,55,031,030101,2078,2,9999,99999,99999999,9,99999,99999999,151313,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5013608,-091.8698318,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19426,3,000,20,2,51,2,03,2,1,0,0,2,55,031,030101,2078,2,9999,99999,99999999,9,99999,99999999,151313,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.5013608,-091.8698318,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19427,3,000,20,2,37,1,01,1,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19428,3,000,20,2,37,1,01,1,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19429,3,000,20,2,52,1,01,1,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19430,3,000,20,2,59,1,01,1,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19431,3,000,20,2,60,1,01,1,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19432,3,000,20,2,60,1,01,1,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19433,3,000,20,1,50,1,01,2,1,0,0,2,55,031,030101,2079,2,9999,99999,99999999,9,99999,99999999,5132334,0,0,0,0,0,20260,07,999,99999,99999999,A,01581075,33350,A,01583368,999,3,99999,99999999,+46.4923591,-091.8749419,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,08640,073,025,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001679,54842 +19434,3,000,20,2,60,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19435,3,000,20,2,66,1,02,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19436,3,000,20,2,70,1,04,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19437,3,000,21,1,37,2,03,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19438,3,000,21,1,50,2,03,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19439,3,000,21,2,31,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19440,3,000,21,2,32,2,03,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19441,3,000,21,2,32,2,03,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19442,3,000,21,2,32,2,03,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19443,3,000,21,2,33,1,01,2,1,0,0,2,32,003,005834,1033,1,9999,99999,99999999,9,99999,99999999,171569,0,0,0,0,0,29820,03,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.0301150,-115.2016379,L,1,99999,99999,99999,9,N,N,23770,S,02408084,00412,4,99999,99999,00060,041,020,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,006721,89139 +19444,3,000,20,1,54,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19445,3,000,20,1,54,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19446,3,000,20,1,61,2,06,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19447,3,000,20,2,34,1,07,2,2,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19448,3,000,20,2,70,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19449,3,000,20,2,70,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19450,3,000,21,1,62,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19451,3,000,21,1,62,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19452,3,000,21,1,62,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19453,3,000,22,1,60,1,01,2,1,0,0,2,25,017,322100,3007,3,9999,99999,99999999,9,99999,99999999,161425,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,31540,A,00618226,148,1,99999,99999999,+42.3917232,-071.5431687,L,1,15764,73104,71650,1,N,N,31575,S,02378146,00604,1,99999,99999,06390,120,014,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000954,01749 +19454,3,000,29,1,64,1,01,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19455,3,000,30,1,9,1,01,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19456,3,000,30,1,10,1,02,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19457,3,000,30,1,13,1,02,2,1,0,0,1,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19458,3,000,30,2,38,1,01,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19459,3,000,36,1,27,1,01,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19460,3,000,36,1,47,1,05,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19461,3,000,36,1,65,1,02,2,1,0,0,2,45,085,001803,2005,2,9999,99999,99999999,9,99999,99999999,1360214,0,0,0,0,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9556367,-080.4354437,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19462,3,000,20,1,28,2,23,1,3,0,0,2,45,085,001803,2008,2,9999,99999,99999999,9,99999,99999999,441012,38534,0,0,38534,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9541634,-080.4226759,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19463,3,000,20,1,69,1,01,2,1,0,0,2,45,085,001803,2008,2,9999,99999,99999999,9,99999,99999999,441012,38534,0,0,38534,0,44940,05,999,99999,99999999,A,01244717,93095,S,01938419,999,5,99999,99999999,+33.9541634,-080.4226759,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01700,3,99999,99999,03902,067,035,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000118,29150 +19464,3,000,20,1,30,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19465,3,000,20,1,71,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19466,3,000,20,2,20,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19467,3,000,20,2,32,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19468,3,000,20,2,64,1,01,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19469,3,000,20,2,64,1,01,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19470,3,000,20,2,78,1,02,2,1,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19471,3,000,21,1,51,1,23,2,3,0,0,2,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19472,3,000,25,1,8,1,11,2,2,0,0,1,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19473,3,000,26,2,3,1,01,2,1,0,0,1,12,099,006011,2005,2,9999,99999,99999999,9,99999,99999999,5654,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.5283527,-080.1104708,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09906,3,99999,99999,01500,090,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000395,33436 +19474,3,000,25,2,1,1,01,2,1,0,0,1,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19475,3,000,30,1,0,1,01,2,1,0,0,1,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19476,3,000,30,1,0,1,01,2,1,0,0,1,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19477,3,000,34,1,17,1,01,2,1,0,0,1,36,095,740700,2001,2,9999,99999,99999999,9,99999,99999999,168997,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6704741,-074.2477567,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19478,3,000,20,1,60,1,01,1,1,0,0,2,36,095,740700,2002,2,9999,99999,99999999,9,99999,99999999,300440,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6751368,-074.2582878,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19479,3,000,20,1,61,1,01,1,1,0,0,2,36,095,740700,2002,2,9999,99999,99999999,9,99999,99999999,300440,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6751368,-074.2582878,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19480,3,000,20,2,70,1,01,1,1,0,0,2,36,095,740700,2002,2,9999,99999,99999999,9,99999,99999999,300440,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6751368,-074.2582878,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19481,3,000,20,2,70,1,01,1,1,0,0,2,36,095,740700,2002,2,9999,99999,99999999,9,99999,99999999,300440,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6751368,-074.2582878,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19482,3,000,20,2,72,1,01,1,1,0,0,2,36,095,740700,2002,2,9999,99999,99999999,9,99999,99999999,300440,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6751368,-074.2582878,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19483,3,000,21,2,32,1,01,2,1,0,0,2,36,095,740700,2002,2,9999,99999,99999999,9,99999,99999999,300440,0,0,0,0,0,10580,19,999,99999,99999999,A,00974145,83195,A,00979658,104,2,99999,99999999,+42.6751368,-074.2582878,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,26100,102,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000022,12157 +19484,3,000,22,2,67,1,01,2,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +19485,3,000,25,2,1,2,06,2,1,0,0,1,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +19486,3,000,25,2,15,1,01,2,1,0,0,1,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +19487,3,000,26,2,15,2,06,2,1,0,0,1,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +19488,3,000,30,1,18,2,02,2,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +19489,3,000,33,2,55,1,01,2,1,0,0,2,17,201,003602,3009,3,9999,99999,99999999,9,99999,99999999,1984,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3071571,-089.1046761,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000903,61101 +19490,3,000,20,1,64,1,01,1,1,0,0,2,17,201,003602,3014,3,9999,99999,99999999,9,99999,99999999,3726,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3020880,-089.1052802,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000704,61101 +19491,3,000,20,2,35,1,13,2,2,0,0,2,17,201,003602,3014,3,9999,99999,99999999,9,99999,99999999,3726,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3020880,-089.1052802,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000704,61101 +19492,3,000,20,2,53,1,07,2,2,0,0,2,17,201,003602,3014,3,9999,99999,99999999,9,99999,99999999,3726,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3020880,-089.1052802,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000704,61101 +19493,3,000,21,2,85,1,01,2,1,0,0,2,17,201,003602,3014,3,9999,99999,99999999,9,99999,99999999,3726,0,0,0,0,0,40420,17,999,99999,99999999,A,01785216,65013,A,00429656,466,3,99999,99999999,+42.3020880,-089.1052802,L,1,99999,99999,99999,9,Y,N,65000,A,02396405,20101,2,99999,99999,34510,067,034,01779784,99999,99999999,9,999,99999,99999999,999999,75718,U,99999,U,000704,61101 +19494,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19495,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19496,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19497,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19498,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19499,3,000,25,1,8,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19500,3,000,25,1,8,1,04,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19501,3,000,25,1,8,1,04,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19502,3,000,25,1,9,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19503,3,000,25,1,9,1,01,2,1,0,0,1,06,061,021326,2013,2,9999,99999,99999999,9,99999,99999999,276995,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,91605,S,01935376,472,9,99999,99999999,+38.7813133,-121.3931835,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,33600,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +19504,3,000,25,1,9,1,01,2,1,0,0,1,05,045,030201,1056,1,9999,99999,99999999,9,99999,99999999,547928,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1914968,-092.2390431,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,066,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +19505,3,000,30,1,0,2,18,2,2,0,0,1,05,045,030201,1056,1,9999,99999,99999999,9,99999,99999999,547928,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91251,N,00066530,340,7,99999,99999999,+35.1914968,-092.2390431,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,066,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000031,72047 +19506,3,000,25,1,4,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19507,3,000,25,1,4,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19508,3,000,25,1,5,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19509,3,000,25,1,5,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19510,3,000,25,1,10,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19511,3,000,25,1,10,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19512,3,000,30,1,13,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19513,3,000,36,1,14,1,01,2,1,0,0,1,05,045,030201,1061,1,9999,99999,99999999,9,99999,99999999,1415504,0,0,0,0,0,30780,02,999,99999,99999999,A,00066852,91635,N,00066532,340,7,99999,99999999,+35.1836135,-092.2339656,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,10080,067,035,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000030,72047 +19514,3,000,27,2,9,2,01,2,1,0,0,1,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19515,3,000,29,2,88,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19516,3,000,29,2,88,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19517,3,000,29,2,88,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19518,3,000,30,2,1,1,11,2,2,0,0,1,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19519,3,000,32,2,30,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19520,3,000,32,2,50,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19521,3,000,32,2,52,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19522,3,000,32,2,54,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19523,3,000,34,1,51,1,01,2,1,0,0,2,25,001,011100,3016,3,9999,99999,99999999,9,99999,99999999,732161,0,0,0,0,0,12700,09,715,99999,99999999,A,00606927,29020,A,00618254,148,1,99999,99999999,+41.7150673,-070.0623990,L,1,99999,99999,70900,1,N,N,19400,S,02378013,01301,1,99999,99999,00544,063,040,00606926,99999,99999999,9,999,99999,99999999,999999,05167,U,99999,U,000883,02645 +19524,3,000,20,2,23,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19525,3,000,20,2,23,2,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19526,3,000,20,2,24,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19527,3,000,20,2,24,1,04,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19528,3,000,20,2,24,1,04,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19529,3,000,20,2,25,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19530,3,000,20,2,25,1,01,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19531,3,000,20,2,27,1,06,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19532,3,000,20,2,27,2,03,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19533,3,000,20,2,28,1,02,1,1,0,0,2,36,061,019500,4000,4,9999,99999,99999999,9,99999,99999999,20743,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8020009,-073.9663335,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04107,1,99999,99999,20580,069,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000511,10025 +19534,3,000,21,1,38,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19535,3,000,21,1,38,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19536,3,000,21,1,39,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19537,3,000,21,1,42,2,06,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19538,3,000,21,1,43,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19539,3,000,21,1,49,2,11,2,2,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19540,3,000,21,1,59,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19541,3,000,21,1,59,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19542,3,000,21,1,59,1,02,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19543,3,000,21,2,30,2,01,2,1,0,0,2,22,051,029800,2039,2,9999,99999,99999999,9,99999,99999999,17051,0,0,0,0,0,35380,01,999,99999,99999999,A,00558027,94829,N,01930113,406,7,99999,99999999,+30.0000003,-090.1792659,L,1,99999,99999,99999,9,Y,N,50115,S,02403282,02302,3,99999,99999,00840,080,009,01629543,99999,99999999,9,999,99999,99999999,999999,62677,U,99999,U,000023,70006 +19544,3,000,20,2,46,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19545,3,000,20,2,46,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19546,3,000,20,2,46,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19547,3,000,20,2,48,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19548,3,000,20,2,48,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19549,3,000,20,2,48,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19550,3,000,20,2,48,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19551,3,000,20,2,48,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19552,3,000,20,2,49,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19553,3,000,20,2,51,1,01,2,1,0,0,2,42,125,732000,1012,1,9999,99999,99999999,9,99999,99999999,4814539,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,72176,A,01217207,430,2,99999,99999999,+40.1010455,-080.2687502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04012,1,99999,99999,14880,015,046,01779798,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001645,15301 +19554,3,000,20,2,88,1,01,1,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19555,3,000,20,2,22,2,15,2,2,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19556,3,000,20,2,22,2,15,2,2,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19557,3,000,20,2,22,2,15,2,2,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19558,3,000,20,2,36,2,03,2,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19559,3,000,20,2,41,2,03,2,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19560,3,000,20,2,47,2,06,2,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19561,3,000,20,2,47,2,06,2,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19562,3,000,20,2,61,1,02,2,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19563,3,000,20,2,61,1,02,2,1,0,0,2,12,099,004402,1004,1,9999,99999,99999999,9,99999,99999999,13649,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,91872,S,01935827,370,5,99999,99999999,+26.6271463,-080.0633606,L,1,48424,99999,99999,9,N,N,39081,A,02404870,09905,3,99999,99999,01500,087,031,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000800,33460 +19564,3,000,34,2,49,2,01,2,1,0,0,2,09,001,021802,3000,3,9999,99999,99999999,9,99999,99999999,30239,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0626583,-073.5187527,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19565,3,000,20,1,24,2,06,1,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19566,3,000,20,1,33,2,06,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19567,3,000,20,1,33,2,06,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19568,3,000,20,1,33,2,06,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19569,3,000,20,1,57,1,02,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19570,3,000,20,2,30,1,02,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19571,3,000,20,2,30,1,02,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19572,3,000,20,2,30,1,02,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19573,3,000,20,2,30,1,02,2,1,0,0,2,09,001,021802,3001,3,9999,99999,99999999,9,99999,99999999,123031,0,0,0,0,0,14860,04,720,99999,99999999,N,00212794,73070,C,00213511,408,1,99999,99999999,+41.0598119,-073.5212046,L,1,99999,99999,71950,1,Y,Y,73000,A,02378291,20901,1,99999,99999,04320,148,027,01779780,99999,99999999,9,999,99999,99999999,999999,10162,U,99999,U,01-133,06902 +19574,3,000,25,2,16,1,01,2,1,0,0,1,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19575,3,000,25,2,17,1,01,2,1,0,0,1,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19576,3,000,25,2,17,1,01,2,1,0,0,1,22,061,960701,1008,1,9999,99999,99999999,9,99999,99999999,2569668,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6519781,-092.4582235,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19577,3,000,20,2,70,1,01,1,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19578,3,000,20,2,70,1,01,1,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19579,3,000,20,2,70,1,01,1,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19580,3,000,20,1,58,1,01,2,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19581,3,000,20,2,29,1,01,2,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19582,3,000,20,2,37,1,01,2,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19583,3,000,20,2,37,1,01,2,1,0,0,2,22,061,960701,1009,1,9999,99999,99999999,9,99999,99999999,4883423,0,0,0,0,0,40820,05,999,99999,99999999,A,00558077,94840,N,01930085,384,7,99999,99999999,+32.6380523,-092.4568775,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00990,012,033,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0005-2,71227 +19584,3,000,20,2,60,1,01,1,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19585,3,000,20,2,60,1,01,1,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19586,3,000,20,2,61,1,01,1,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19587,3,000,20,2,61,1,01,1,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19588,3,000,20,1,37,1,01,2,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19589,3,000,20,1,37,1,01,2,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19590,3,000,20,1,39,1,01,2,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19591,3,000,20,2,41,1,01,2,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19592,3,000,21,2,41,1,01,2,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19593,3,000,21,2,53,1,01,2,1,0,0,2,27,111,960900,3004,3,9999,99999,99999999,9,99999,99999999,14398,0,0,0,0,0,22260,07,999,99999,99999999,A,00659501,20906,F,02394758,999,4,99999,99999999,+46.2912080,-096.0833896,L,2,99999,99999,99999,9,Y,N,20906,A,02394758,00700,2,99999,99999,11880,08A,008,00662849,99999,99999999,9,999,99999,99999999,999999,29575,U,99999,U,000190,56537 +19594,3,000,20,1,49,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19595,3,000,20,1,70,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19596,3,000,20,1,71,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19597,3,000,20,1,71,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19598,3,000,20,1,71,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19599,3,000,20,1,71,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19600,3,000,20,1,73,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19601,3,000,20,1,73,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19602,3,000,20,1,73,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19603,3,000,20,1,74,1,01,2,1,0,0,2,27,053,026605,2009,2,9999,99999,99999999,9,99999,99999999,186442,0,0,0,0,0,33460,03,999,99999,99999999,A,00659472,51730,F,02396242,378,4,99999,99999999,+45.0191542,-093.5024800,L,1,99999,99999,99999,9,Y,N,51730,A,02396242,01602,2,99999,99999,42160,44A,044,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002430,55447 +19604,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19605,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19606,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19607,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19608,3,000,20,1,31,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19609,3,000,20,1,32,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19610,3,000,20,1,32,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19611,3,000,20,1,32,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19612,3,000,20,1,32,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19613,3,000,20,1,34,1,01,2,1,0,0,2,37,133,000401,3000,3,9999,99999,99999999,9,99999,99999999,7374817,18485,0,0,18485,0,27340,03,999,99999,99999999,A,01026341,93160,N,01027008,999,5,99999,99999999,+34.5117977,-077.4468474,B,1,99999,99999,99999,9,9,9,99999,9,99999999,04501,3,99999,99999,03450,015,006,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00FS16,28460 +19614,3,000,20,1,71,1,02,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19615,3,000,20,1,71,1,02,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19616,3,000,20,1,71,1,02,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19617,3,000,20,2,45,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19618,3,000,20,2,45,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19619,3,000,20,2,46,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19620,3,000,20,2,46,1,01,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19621,3,000,20,2,47,1,02,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19622,3,000,20,2,47,1,02,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19623,3,000,20,2,48,1,02,2,1,0,0,2,37,017,950302,3015,3,9999,99999,99999999,9,99999,99999999,4817016,0,0,0,0,0,99999,09,999,99999,99999999,A,01026336,91508,N,01026431,999,5,99999,99999999,+34.7970081,-078.8148350,L,9,99999,99999,99999,9,9,9,99999,9,99999999,04900,3,99999,99999,00390,022,008,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000P60,28392 +19624,3,000,25,2,7,1,06,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19625,3,000,25,2,7,2,18,2,2,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19626,3,000,25,2,9,1,01,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19627,3,000,25,2,9,1,01,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19628,3,000,25,2,9,1,01,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19629,3,000,25,2,9,2,06,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19630,3,000,25,2,12,2,09,2,2,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19631,3,000,25,2,17,1,19,2,2,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19632,3,000,26,1,16,1,01,2,1,0,0,1,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19633,3,000,27,1,23,2,01,2,1,0,0,2,06,067,004910,3004,3,9999,99999,99999999,9,99999,99999999,18838,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.4782315,-121.4455254,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06709,4,99999,99999,12330,009,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95823 +19634,3,000,20,2,68,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19635,3,000,20,2,68,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19636,3,000,20,2,68,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19637,3,000,20,2,70,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19638,3,000,20,2,71,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19639,3,000,20,2,71,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19640,3,000,20,2,73,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19641,3,000,20,2,74,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19642,3,000,21,1,34,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19643,3,000,21,1,34,1,01,2,1,0,0,2,55,023,960300,2068,2,9999,99999,99999999,9,99999,99999999,2662890,0,0,0,0,0,99999,03,999,99999,99999999,A,01581071,21925,A,01583116,999,3,99999,99999999,+43.1662031,-091.0953722,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01800,2,99999,99999,13470,096,032,01779806,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000817,54626 +19644,3,000,21,2,41,2,11,2,2,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19645,3,000,21,2,42,1,04,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19646,3,000,21,2,42,1,04,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19647,3,000,21,2,42,2,11,2,2,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19648,3,000,21,2,43,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19649,3,000,21,2,43,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19650,3,000,21,2,43,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19651,3,000,21,2,43,1,01,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19652,3,000,21,2,43,1,04,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19653,3,000,21,2,43,2,06,2,1,0,0,2,06,077,003219,2006,2,9999,99999,99999999,9,99999,99999999,263119,0,0,0,0,0,44700,09,999,99999,99999999,A,00277303,93240,S,01935329,488,9,99999,99999999,+38.0529982,-121.3484173,L,1,99999,99999,99999,9,Y,N,75000,A,02411987,07705,4,99999,99999,22230,013,005,01779778,99999,99999999,9,999,99999,99999999,999999,85087,U,99999,U,,95209 +19654,3,000,20,1,86,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19655,3,000,20,2,28,2,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19656,3,000,20,2,28,2,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19657,3,000,20,2,34,2,28,2,3,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19658,3,000,20,2,36,2,03,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19659,3,000,20,2,36,2,03,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19660,3,000,20,2,36,2,03,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19661,3,000,20,2,44,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19662,3,000,20,2,44,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19663,3,000,20,2,45,1,01,2,1,0,0,2,04,013,422615,1016,1,9999,99999,99999999,9,99999,99999999,32428,0,0,0,0,0,38060,05,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.3976256,-111.6077136,L,1,99999,99999,99999,9,Y,N,46000,A,02411087,00101,4,99999,99999,04970,016,016,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000226,85208 +19664,3,000,25,1,16,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19665,3,000,25,1,16,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19666,3,000,25,1,23,2,46,2,4,0,0,2,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19667,3,000,25,1,25,2,06,2,1,0,0,2,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19668,3,000,25,2,0,1,02,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19669,3,000,25,2,0,1,02,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19670,3,000,25,2,3,2,06,2,1,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19671,3,000,25,2,6,2,11,2,2,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19672,3,000,25,2,6,2,11,2,2,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19673,3,000,25,2,6,2,11,2,2,0,0,1,06,037,239801,3007,3,9999,99999,99999999,9,99999,99999999,16187,0,0,0,0,0,31080,40,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9651235,-118.2638105,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03751,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90001 +19674,3,000,22,1,47,1,01,2,1,0,0,2,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +19675,3,000,33,1,1,1,01,2,1,0,0,1,16,015,950203,2160,2,9999,99999,99999999,9,99999,99999999,384726,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8083933,-115.8523228,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +19676,3,000,20,1,48,1,01,2,1,0,0,2,16,015,950203,2161,2,9999,99999,99999999,9,99999,99999999,60006,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8170958,-115.8526826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +19677,3,000,21,2,29,1,07,2,2,0,0,2,16,015,950203,2161,2,9999,99999,99999999,9,99999,99999999,60006,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8170958,-115.8526826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +19678,3,000,21,2,62,1,01,2,1,0,0,2,16,015,950203,2161,2,9999,99999,99999999,9,99999,99999999,60006,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8170958,-115.8526826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +19679,3,000,21,2,65,1,11,2,2,0,0,2,16,015,950203,2161,2,9999,99999,99999999,9,99999,99999999,60006,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91633,S,01936737,147,8,99999,99999999,+43.8170958,-115.8526826,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,00180,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158050,83631 +19680,3,000,30,2,21,1,11,2,2,0,0,2,16,015,950203,1003,1,9999,99999,99999999,9,99999,99999999,249132,0,0,0,0,0,14260,01,999,99999,99999999,A,00395157,91541,S,01936733,147,8,99999,99999999,+44.0935182,-116.1230019,L,1,99999,99999,99999,9,N,N,04600,S,02585566,00300,4,99999,99999,01170,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158040,83602 +19681,3,000,20,1,28,2,28,2,3,0,0,2,16,015,950203,1027,1,9999,99999,99999999,9,99999,99999999,4793007,3838,0,0,3838,0,14260,01,999,99999,99999999,A,00395157,91541,S,01936733,147,8,99999,99999999,+44.0910778,-116.1632388,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,01170,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158040,83602 +19682,3,000,25,1,4,1,01,2,1,0,0,1,16,015,950203,1027,1,9999,99999,99999999,9,99999,99999999,4793007,3838,0,0,3838,0,14260,01,999,99999,99999999,A,00395157,91541,S,01936733,147,8,99999,99999999,+44.0910778,-116.1632388,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,01170,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158040,83602 +19683,3,000,30,1,7,1,01,2,1,0,0,1,16,015,950203,1027,1,9999,99999,99999999,9,99999,99999999,4793007,3838,0,0,3838,0,14260,01,999,99999,99999999,A,00395157,91541,S,01936733,147,8,99999,99999999,+44.0910778,-116.1632388,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,01170,008,008,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,158040,83602 +19684,3,000,20,2,28,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19685,3,000,20,2,28,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19686,3,000,20,2,28,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19687,3,000,20,2,28,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19688,3,000,20,2,29,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19689,3,000,20,2,41,1,02,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19690,3,000,20,2,41,1,02,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19691,3,000,20,2,41,1,02,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19692,3,000,21,1,46,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19693,3,000,21,1,46,1,01,2,1,0,0,2,29,089,960300,3043,3,9999,99999,99999999,9,99999,99999999,38158,0,0,0,0,0,17860,04,999,99999,99999999,A,00758499,61652,N,00766780,190,4,99999,99999999,+39.1408425,-092.6867737,L,1,99999,99999,99999,9,N,N,23842,A,02394753,00700,2,99999,99999,11990,048,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000003,65248 +19694,3,000,25,1,10,1,02,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19695,3,000,25,1,11,1,02,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19696,3,000,25,1,11,1,02,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19697,3,000,25,1,11,1,02,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19698,3,000,25,1,15,2,06,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19699,3,000,25,1,17,2,06,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19700,3,000,25,1,17,2,06,2,1,0,0,1,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19701,3,000,25,1,20,2,11,2,2,0,0,2,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19702,3,000,25,1,24,2,11,2,2,0,0,2,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19703,3,000,25,1,24,2,11,2,2,0,0,2,36,027,220300,3007,3,9999,99999,99999999,9,99999,99999999,22266,0,0,0,0,0,39100,18,999,99999,99999999,A,00974112,59641,F,00979392,408,2,99999,99999999,+41.7037734,-073.9196068,L,1,99999,99999,99999,9,Y,N,59641,A,00979392,02804,1,99999,99999,23760,104,041,01779796,99999,99999999,9,999,99999,99999999,999999,71803,U,99999,U,000154,12601 +19704,3,000,21,2,64,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19705,3,000,21,2,64,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19706,3,000,21,2,64,2,11,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19707,3,000,21,2,68,1,01,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19708,3,000,22,1,19,1,01,2,1,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19709,3,000,22,2,28,2,15,2,2,0,0,2,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19710,3,000,25,1,5,1,01,2,1,0,0,1,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19711,3,000,25,1,7,1,04,2,1,0,0,1,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19712,3,000,25,1,8,1,01,2,1,0,0,1,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19713,3,000,25,1,8,1,01,2,1,0,0,1,48,201,341400,2029,2,9999,99999,99999999,9,99999,99999999,103331,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,93645,S,01939211,288,7,99999,99999999,+29.5879233,-095.0532001,L,1,99999,99999,99999,9,N,N,56000,A,02411380,04621,3,99999,99999,14280,129,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000703,77586 +19714,3,000,21,1,47,1,04,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19715,3,000,21,1,49,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19716,3,000,21,1,50,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19717,3,000,21,1,50,1,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19718,3,000,21,1,51,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19719,3,000,21,1,51,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19720,3,000,21,1,51,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19721,3,000,21,1,62,2,06,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19722,3,000,21,1,72,2,01,2,1,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19723,3,000,21,1,75,2,11,2,2,0,0,2,36,005,016200,2000,2,9999,99999,99999999,9,99999,99999999,21697,0,0,0,0,0,35620,14,999,99999,99999999,C,00974101,08510,G,00978756,408,2,99999,99999999,+40.8304176,-073.8211162,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04210,1,99999,99999,20580,082,034,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000464,10465 +19724,3,000,20,2,36,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19725,3,000,20,2,36,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19726,3,000,20,2,36,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19727,3,000,20,2,36,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19728,3,000,20,2,36,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19729,3,000,20,2,36,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19730,3,000,20,2,39,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19731,3,000,20,2,39,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19732,3,000,21,1,56,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19733,3,000,21,1,57,1,01,2,1,0,0,2,39,055,311900,2006,2,9999,99999,99999999,9,99999,99999999,1219503,3178,0,0,3178,0,17460,14,999,99999,99999999,A,01074040,02904,A,01086147,184,3,99999,99999999,+41.3780372,-081.2891332,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,04719,076,018,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,028AAD,44023 +19734,3,000,25,2,39,1,04,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19735,3,000,25,2,56,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19736,3,000,26,2,5,1,02,2,1,0,0,1,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19737,3,000,30,1,21,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19738,3,000,30,1,22,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19739,3,000,33,1,27,1,04,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19740,3,000,34,1,9,2,11,2,2,0,0,1,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19741,3,000,34,1,38,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19742,3,000,34,1,55,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19743,3,000,34,1,57,1,01,2,1,0,0,2,06,085,506803,1008,1,9999,99999,99999999,9,99999,99999999,101797,0,0,0,0,0,41940,18,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.2476068,-121.9160756,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08511,4,40320,07230,99999,028,015,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95124 +19744,3,000,22,2,27,1,02,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19745,3,000,22,2,27,1,02,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19746,3,000,22,2,27,2,06,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19747,3,000,22,2,31,2,01,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19748,3,000,22,2,40,1,04,2,1,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19749,3,000,22,2,58,1,11,2,2,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19750,3,000,22,2,58,1,11,2,2,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19751,3,000,23,1,26,1,07,2,2,0,0,2,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19752,3,000,25,1,0,1,04,2,1,0,0,1,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19753,3,000,25,1,0,2,01,2,1,0,0,1,24,033,807405,3005,3,9999,99999,99999999,9,99999,99999999,813818,0,0,0,0,0,47900,05,999,99999,99999999,A,01714670,90064,N,01929430,548,5,99999,99999999,+39.0286227,-076.9262140,L,1,47894,99999,99999,9,N,N,06400,S,02389202,01102,3,99999,99999,00510,021,021,01714934,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,01-002,20705 +19754,3,000,34,1,26,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19755,3,000,34,1,26,1,04,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19756,3,000,34,1,27,1,02,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19757,3,000,34,1,27,1,02,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19758,3,000,34,1,30,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19759,3,000,34,1,33,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19760,3,000,34,1,33,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19761,3,000,34,1,33,1,01,2,1,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19762,3,000,34,1,34,1,11,2,2,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19763,3,000,34,1,60,2,11,2,2,0,0,2,24,005,403601,3002,3,9999,99999,99999999,9,99999,99999999,336372,0,0,0,0,0,12580,03,999,99999,99999999,A,01695314,90196,N,01929572,548,5,99999,99999999,+39.3879504,-076.6668212,L,1,99999,99999,99999,9,N,N,61400,S,02389668,00503,3,99999,99999,00120,011,011,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,03-008,21209 +19764,3,000,21,2,70,2,06,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19765,3,000,21,2,70,2,06,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19766,3,000,22,1,35,1,02,2,1,0,0,2,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19767,3,000,25,1,9,2,11,2,2,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19768,3,000,25,1,9,2,11,2,2,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19769,3,000,25,1,9,2,11,2,2,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19770,3,000,25,1,9,2,11,2,2,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19771,3,000,25,1,10,2,01,2,1,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19772,3,000,25,1,10,2,01,2,1,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19773,3,000,25,1,12,1,01,2,1,0,0,1,48,141,010352,1011,1,9999,99999,99999999,9,99999,99999999,56409,0,0,0,0,0,21340,16,999,99999,99999999,A,01383855,91215,S,01938721,238,7,99999,99999999,+31.7849592,-106.2583190,L,1,99999,99999,99999,9,Y,N,24000,A,02410414,03308,3,99999,99999,40710,079,029,01779801,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000116,79938 +19774,3,000,36,1,15,2,11,2,2,0,0,1,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19775,3,000,36,1,26,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19776,3,000,36,1,35,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19777,3,000,36,1,35,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19778,3,000,36,1,39,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19779,3,000,36,1,39,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19780,3,000,36,1,39,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19781,3,000,36,2,17,2,11,2,2,0,0,1,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19782,3,000,36,2,17,2,11,2,2,0,0,1,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19783,3,000,36,2,19,1,01,2,1,0,0,2,41,039,000903,3014,3,9999,99999,99999999,9,99999,99999999,207662,0,0,0,0,0,21660,04,999,99999,99999999,A,01135855,90187,S,01937959,999,9,99999,99999999,+44.0433598,-123.3485928,L,1,99999,99999,99999,9,N,N,77050,A,02412148,03905,4,99999,99999,04950,008,004,01155107,99999,99999999,9,999,99999,99999999,999999,90271,U,77050,U,,97487 +19784,3,000,21,1,66,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19785,3,000,21,1,67,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19786,3,000,21,1,69,1,02,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19787,3,000,21,1,73,2,11,2,2,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19788,3,000,21,2,23,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19789,3,000,21,2,32,1,04,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19790,3,000,21,2,32,1,04,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19791,3,000,21,2,41,2,06,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19792,3,000,21,2,73,1,01,2,1,0,0,2,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19793,3,000,25,1,1,1,01,2,1,0,0,1,13,223,120601,2005,2,9999,99999,99999999,9,99999,99999999,474566,0,0,0,0,0,12060,14,999,99999,99999999,A,00349912,91494,S,01936319,122,5,99999,99999999,+33.7967655,-084.7466502,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01100,3,99999,99999,04020,066,030,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00009C,30134 +19794,3,000,27,2,22,2,28,2,3,0,0,2,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +19795,3,000,28,1,23,1,02,2,1,0,0,2,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +19796,3,000,28,1,23,1,02,2,1,0,0,2,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +19797,3,000,30,1,5,1,01,2,1,0,0,1,10,001,041101,3007,3,9999,99999,99999999,9,99999,99999999,85232,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1136648,-075.4844686,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,009-32,19901 +19798,3,000,20,1,60,1,11,1,2,0,0,2,10,001,041101,1001,1,9999,99999,99999999,9,99999,99999999,19838,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1240574,-075.4846517,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,006-32,19901 +19799,3,000,20,1,30,1,04,2,1,0,0,2,10,001,041101,1001,1,9999,99999,99999999,9,99999,99999999,19838,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1240574,-075.4846517,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,006-32,19901 +19800,3,000,20,1,31,1,11,2,2,0,0,2,10,001,041101,1001,1,9999,99999,99999999,9,99999,99999999,19838,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1240574,-075.4846517,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,006-32,19901 +19801,3,000,20,1,32,2,06,2,1,0,0,2,10,001,041101,1001,1,9999,99999,99999999,9,99999,99999999,19838,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1240574,-075.4846517,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,006-32,19901 +19802,3,000,20,1,49,2,06,2,1,0,0,2,10,001,041101,1001,1,9999,99999,99999999,9,99999,99999999,19838,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1240574,-075.4846517,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,006-32,19901 +19803,3,000,20,2,21,1,13,2,2,0,0,2,10,001,041101,1001,1,9999,99999,99999999,9,99999,99999999,19838,0,0,0,0,0,20100,00,999,99999,99999999,A,00217271,90740,S,01935606,428,5,99999,99999999,+39.1240574,-075.4846517,L,1,99999,99999,99999,9,N,N,21387,S,02389412,00200,3,99999,99999,00180,032,016,01779781,99999,99999999,9,999,99999,99999999,999999,24580,U,99999,U,006-32,19901 +19804,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19805,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19806,3,000,20,2,40,2,11,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19807,3,000,20,2,41,1,01,2,1,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19808,3,000,20,2,41,2,01,2,1,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19809,3,000,20,2,41,2,01,2,1,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19810,3,000,20,2,41,2,01,2,1,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19811,3,000,20,2,41,2,20,2,2,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19812,3,000,20,2,42,2,01,2,1,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19813,3,000,20,2,42,2,01,2,1,0,0,2,48,029,151900,2006,2,9999,99999,99999999,9,99999,99999999,11884915,703420,0,0,703420,0,41700,23,999,99999,99999999,A,01383800,93413,S,02628572,484,7,99999,99999999,+29.2986397,-098.4831152,B,1,99999,99999,99999,9,Y,N,65000,A,02411774,05907,3,99999,99999,40920,118,019,01779801,99999,99999999,9,999,99999,99999999,999999,78580,U,99999,U,001056,78221 +19814,3,000,20,1,70,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19815,3,000,20,1,70,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19816,3,000,20,1,70,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19817,3,000,20,1,70,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19818,3,000,20,1,73,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19819,3,000,20,1,74,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19820,3,000,20,1,74,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19821,3,000,20,1,74,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19822,3,000,20,1,75,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19823,3,000,20,1,76,1,01,2,1,0,0,2,18,127,050605,2008,2,9999,99999,99999999,9,99999,99999999,1248479,0,0,0,0,0,16980,01,999,99999,99999999,A,00450382,11566,A,00453189,176,3,99999,99999999,+41.4540922,-087.0901311,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00200,2,99999,99999,11970,004,005,00448508,99999,99999999,9,999,99999,99999999,999999,90095,U,99999,U,000270,46385 +19824,3,000,21,2,22,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19825,3,000,21,2,23,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19826,3,000,21,2,23,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19827,3,000,21,2,23,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19828,3,000,21,2,58,1,02,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19829,3,000,21,2,68,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19830,3,000,21,2,68,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19831,3,000,22,2,65,1,01,2,1,0,0,2,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19832,3,000,25,1,6,2,11,2,2,0,0,1,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19833,3,000,25,1,12,1,01,2,1,0,0,1,48,217,960100,1061,1,9999,99999,99999999,9,99999,99999999,103502,0,0,0,0,0,99999,25,999,99999,99999999,A,01383894,91900,S,01938861,999,7,99999,99999999,+32.1561960,-097.1435540,L,9,99999,99999,99999,9,N,N,37084,A,02410124,03700,3,99999,99999,24480,008,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,76055 +19834,3,000,20,1,76,1,01,1,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19835,3,000,20,2,65,1,08,1,2,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19836,3,000,20,1,46,1,04,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19837,3,000,20,1,46,1,04,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19838,3,000,20,1,46,1,04,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19839,3,000,20,1,56,1,01,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19840,3,000,20,1,57,1,01,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19841,3,000,20,1,57,1,01,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19842,3,000,20,1,58,1,01,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19843,3,000,20,1,76,1,04,2,1,0,0,2,34,007,607502,3015,3,9999,99999,99999999,9,99999,99999999,26755,0,0,0,0,0,37980,01,999,99999,99999999,A,00882273,76220,A,00882153,428,2,99999,99999999,+39.8404133,-075.0020291,L,1,15804,99999,99999,9,N,N,19900,S,02389457,02104,1,16830,04380,99999,006,006,01779795,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,170002,08043 +19844,3,000,20,2,64,1,01,2,1,0,0,2,12,007,000302,1018,1,9999,99999,99999999,9,99999,99999999,3114,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8646510,-082.1352260,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19845,3,000,25,1,1,1,01,2,1,0,0,1,12,007,000302,1018,1,9999,99999,99999999,9,99999,99999999,3114,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8646510,-082.1352260,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19846,3,000,25,1,3,1,08,2,2,0,0,1,12,007,000302,1018,1,9999,99999,99999999,9,99999,99999999,3114,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8646510,-082.1352260,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19847,3,000,25,2,7,1,11,2,2,0,0,1,12,007,000302,1018,1,9999,99999,99999999,9,99999,99999999,3114,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8646510,-082.1352260,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19848,3,000,25,1,5,1,01,2,1,0,0,1,12,007,000302,1019,1,9999,99999,99999999,9,99999,99999999,13704,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8657822,-082.1342289,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19849,3,000,25,1,12,1,01,2,1,0,0,1,12,007,000302,1019,1,9999,99999,99999999,9,99999,99999999,13704,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8657822,-082.1342289,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19850,3,000,25,1,12,1,01,2,1,0,0,1,12,007,000302,1019,1,9999,99999,99999999,9,99999,99999999,13704,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8657822,-082.1342289,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19851,3,000,26,1,15,1,01,2,1,0,0,1,12,007,000302,1019,1,9999,99999,99999999,9,99999,99999999,13704,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8657822,-082.1342289,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19852,3,000,27,1,17,1,01,2,1,0,0,1,12,007,000302,1019,1,9999,99999,99999999,9,99999,99999999,13704,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8657822,-082.1342289,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19853,3,000,33,2,4,1,01,2,1,0,0,1,12,007,000302,1019,1,9999,99999,99999999,9,99999,99999999,13704,0,0,0,0,0,99999,03,999,99999,99999999,A,00303634,91430,S,01935792,999,5,99999,99999999,+29.8657822,-082.1342289,L,9,99999,99999,99999,9,N,N,28575,A,02403791,00798,3,99999,99999,00120,019,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,32044 +19854,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19855,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19856,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19857,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19858,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19859,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19860,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19861,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19862,3,000,20,2,28,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19863,3,000,20,2,37,1,02,2,1,0,0,2,26,081,012612,1002,1,9999,99999,99999999,9,99999,99999999,8118,0,0,0,0,0,24340,02,999,99999,99999999,A,01622983,42820,F,01626558,266,3,99999,99999999,+42.8879042,-085.5984511,L,1,99999,99999,99999,9,Y,N,42820,A,01626558,01003,2,99999,99999,20340,072,026,01779789,99999,99999999,9,999,99999,99999999,999999,34300,U,99999,U,081176,49512 +19864,3,000,20,2,28,2,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19865,3,000,20,2,28,2,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19866,3,000,20,2,28,2,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19867,3,000,20,2,28,2,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19868,3,000,20,2,35,2,06,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19869,3,000,20,2,40,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19870,3,000,20,2,42,2,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19871,3,000,20,2,42,2,01,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19872,3,000,20,2,44,2,06,2,1,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19873,3,000,20,2,44,2,11,2,2,0,0,2,08,031,000202,4009,4,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,19740,01,999,99999,99999999,C,00198131,91007,S,01935444,216,8,99999,99999999,+39.7826897,-105.0187413,L,1,99999,99999,99999,9,Y,N,20000,A,02410324,01701,4,99999,99999,03360,004,034,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,031406,80211 +19874,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19875,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19876,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19877,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19878,5,103,37,1,39,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19879,5,103,37,1,39,1,02,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19880,5,103,37,1,39,1,04,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19881,5,103,37,1,39,2,06,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19882,5,103,37,1,39,2,06,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19883,5,103,37,1,40,1,01,0,1,1,1,2,41,051,007300,1008,1,9999,99999,99999999,9,99999,99999999,23710,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92518,S,02585638,440,9,99999,99999999,+45.5893157,-122.6368528,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05102,4,99999,99999,10040,044,022,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97211 +19884,3,000,30,2,29,1,01,2,1,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19885,3,000,32,1,31,1,09,2,2,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19886,3,000,34,2,34,2,01,2,1,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19887,3,000,34,2,35,1,01,2,1,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19888,3,000,34,2,38,1,01,2,1,0,0,2,06,073,011100,1008,1,9999,99999,99999999,9,99999,99999999,10264,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6970033,-117.1744745,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19889,3,000,20,1,68,1,08,1,2,0,0,2,06,073,011100,1009,1,9999,99999,99999999,9,99999,99999999,10297,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6972341,-117.1750317,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19890,3,000,20,2,60,1,01,1,1,0,0,2,06,073,011100,1009,1,9999,99999,99999999,9,99999,99999999,10297,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6972341,-117.1750317,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19891,3,000,20,2,60,1,01,1,1,0,0,2,06,073,011100,1009,1,9999,99999,99999999,9,99999,99999999,10297,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6972341,-117.1750317,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19892,3,000,20,2,60,1,01,1,1,0,0,2,06,073,011100,1009,1,9999,99999,99999999,9,99999,99999999,10297,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6972341,-117.1750317,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19893,3,000,20,2,60,1,01,1,1,0,0,2,06,073,011100,1009,1,9999,99999,99999999,9,99999,99999999,10297,0,0,0,0,0,41740,52,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.6972341,-117.1750317,L,1,99999,99999,99999,9,N,N,16378,A,02410233,07310,4,99999,99999,09870,078,039,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92118 +19894,3,000,20,2,50,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19895,3,000,20,2,50,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19896,3,000,20,2,52,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19897,3,000,20,2,52,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19898,3,000,20,2,52,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19899,3,000,20,2,52,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19900,3,000,20,2,52,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19901,3,000,20,2,52,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19902,3,000,20,2,53,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19903,3,000,20,2,53,1,01,2,1,0,0,2,12,081,002019,1021,1,9999,99999,99999999,9,99999,99999999,54826,0,0,0,0,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.4507783,-082.4148482,L,1,99999,99999,99999,9,N,N,39067,S,02805177,08103,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000134,34211 +19904,3,000,21,2,65,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19905,3,000,21,2,65,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19906,3,000,21,2,82,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19907,3,000,21,2,82,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19908,3,000,21,2,82,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19909,3,000,21,2,82,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19910,3,000,22,1,21,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19911,3,000,22,1,21,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19912,3,000,22,1,21,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19913,3,000,22,1,21,1,01,2,1,0,0,2,47,141,000304,2016,2,9999,99999,99999999,9,99999,99999999,477468,0,0,0,0,0,18260,06,999,99999,99999999,A,01639783,90522,N,02464188,999,6,99999,99999999,+36.1889279,-085.5045930,L,2,99999,99999,99999,9,Y,N,16920,A,02404122,00700,3,99999,99999,03480,042,015,01325873,99999,99999999,9,999,99999,99999999,999999,19828,U,99999,U,007256,38501 +19914,3,000,25,2,16,1,03,2,1,0,0,1,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19915,3,000,25,2,20,1,04,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19916,3,000,25,2,20,1,04,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19917,3,000,25,2,60,1,01,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19918,3,000,29,2,70,1,02,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19919,3,000,31,2,54,1,04,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19920,3,000,31,2,76,1,02,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19921,3,000,31,2,76,1,02,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19922,3,000,36,1,49,1,01,2,1,0,0,2,42,091,205905,3008,3,9999,99999,99999999,9,99999,99999999,7704,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0834753,-075.3629844,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19923,3,000,20,1,72,1,01,1,1,0,0,2,42,091,205905,3009,3,9999,99999,99999999,9,99999,99999999,3911,0,0,0,0,0,37980,04,999,99999,99999999,A,01213680,79136,A,01216878,428,2,99999,99999999,+40.0822961,-075.3626959,L,1,33874,99999,99999,9,N,N,39736,S,02390001,03116,1,99999,99999,24480,149,017,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,003370,19406 +19924,3,000,34,1,5,1,02,2,1,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19925,3,000,34,2,25,1,20,2,2,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19926,3,000,36,1,3,1,02,2,1,0,0,1,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19927,3,000,36,1,24,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19928,3,000,36,1,32,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19929,3,000,36,1,32,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19930,3,000,36,1,32,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19931,3,000,36,1,32,1,01,2,1,0,0,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19932,5,801,38,1,32,1,01,0,1,2,7,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19933,5,801,38,1,51,1,01,0,1,2,7,2,36,093,021802,3016,3,9999,99999,99999999,9,99999,99999999,42996,0,0,0,0,0,10580,20,999,99999,99999999,A,00974144,65508,F,00979468,104,2,99999,99999999,+42.7717293,-073.9006158,L,1,99999,99999,99999,9,Y,N,65508,A,00979468,01700,1,99999,99999,26010,110,049,01779796,99999,99999999,9,999,99999,99999999,999999,00970,U,99999,U,000081,12304 +19934,3,000,20,2,21,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19935,3,000,20,2,21,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19936,3,000,20,2,45,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19937,3,000,20,2,45,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19938,3,000,20,2,49,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19939,3,000,20,2,49,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19940,3,000,20,2,54,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19941,3,000,20,2,54,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19942,3,000,20,2,54,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19943,3,000,20,2,54,1,01,2,1,0,0,2,51,165,010302,2002,2,9999,99999,99999999,9,99999,99999999,189740,0,0,0,0,0,25500,06,999,99999,99999999,A,01488970,95951,N,01927525,277,5,99999,99999999,+38.4010071,-078.7216783,L,1,99999,99999,99999,9,N,N,50030,S,02390129,16500,3,99999,99999,03390,026,024,01779803,99999,99999999,9,999,99999,99999999,999999,26956,U,99999,U,000505,22840 +19944,3,000,30,1,5,1,02,2,1,0,0,1,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19945,3,000,30,1,10,1,04,2,1,0,0,1,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19946,3,000,30,1,13,1,01,2,1,0,0,1,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19947,3,000,30,1,13,1,09,2,2,0,0,1,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19948,3,000,30,1,15,1,02,2,1,0,0,1,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19949,3,000,30,1,20,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19950,3,000,30,1,20,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19951,3,000,30,1,22,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19952,3,000,30,1,23,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19953,3,000,30,1,23,1,04,2,1,0,0,2,06,013,359203,1013,1,9999,99999,99999999,9,99999,99999999,40751,0,0,0,0,0,41860,05,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+38.0058639,-122.2444302,L,1,36084,99999,99999,9,N,N,33308,A,02410746,01310,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94547 +19954,3,000,25,1,16,1,01,2,1,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19955,3,000,25,1,16,1,17,2,2,0,0,1,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19956,3,000,25,1,18,1,03,2,1,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19957,3,000,25,1,18,1,03,2,1,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19958,3,000,25,1,18,1,03,2,1,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19959,3,000,25,1,18,1,08,2,2,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19960,3,000,25,1,18,2,06,2,1,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19961,3,000,25,1,18,2,06,2,1,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19962,3,000,25,1,18,2,11,2,2,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19963,3,000,25,1,19,1,01,2,1,0,0,2,53,053,940007,2010,2,3000,56720,01514929,R,99999,99999999,163500,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.2266122,-122.4040731,L,1,45104,99999,99999,9,Y,N,70000,A,02412025,25302,4,99999,99999,08700,027,027,01779804,99999,99999999,G,999,99999,99999999,T00600,80389,U,70000,U,027470,98404 +19964,3,000,25,1,11,1,06,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19965,3,000,25,1,11,1,06,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19966,3,000,25,1,24,1,02,2,1,0,0,2,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19967,3,000,25,1,24,1,02,2,1,0,0,2,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19968,3,000,25,2,3,1,04,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19969,3,000,25,2,3,1,04,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19970,3,000,25,2,3,1,04,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19971,3,000,25,2,3,2,06,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19972,3,000,25,2,4,1,01,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19973,3,000,25,2,5,1,06,2,1,0,0,1,25,017,341500,2000,2,9999,99999,99999999,9,99999,99999999,13507,0,0,0,0,0,14460,05,715,99999,99999999,N,00606935,37875,F,00619404,148,1,99999,99999999,+42.4269156,-071.0570408,L,1,15764,71634,71650,1,N,N,37875,A,00619404,00609,1,99999,99999,07170,152,023,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001128,02148 +19974,3,000,25,1,39,1,02,2,1,0,0,2,01,073,001600,3017,3,9999,99999,99999999,9,99999,99999999,7203,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5391047,-086.8087682,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19975,3,000,20,2,72,1,02,1,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19976,3,000,20,2,34,1,01,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19977,3,000,21,1,30,1,02,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19978,3,000,21,1,33,1,02,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19979,3,000,21,1,55,1,02,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19980,3,000,21,1,92,1,01,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19981,3,000,25,2,2,1,01,2,1,0,0,1,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19982,3,000,30,1,30,1,02,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19983,3,000,30,1,31,1,02,2,1,0,0,2,01,073,001600,3018,3,9999,99999,99999999,9,99999,99999999,5419,0,0,0,0,0,13820,07,999,99999,99999999,A,00161562,90324,S,00161616,142,6,99999,99999999,+33.5381643,-086.8090479,L,1,99999,99999,99999,9,Y,N,07000,A,02403868,01403,3,99999,99999,00390,054,018,01779775,99999,99999999,9,999,99999,99999999,999999,07786,U,99999,U,001210,35234 +19984,3,000,20,2,55,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19985,3,000,20,2,55,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19986,3,000,20,2,57,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19987,3,000,20,2,59,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19988,3,000,20,2,59,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19989,3,000,20,2,59,2,06,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19990,3,000,20,2,67,1,04,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19991,3,000,20,2,69,1,04,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19992,3,000,20,2,98,1,01,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19993,3,000,20,2,98,1,01,2,1,0,0,2,06,059,074103,1007,1,9999,99999,99999999,9,99999,99999999,45339,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7259545,-117.8821280,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05917,4,99999,99999,35310,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92707 +19994,3,000,30,2,17,1,01,2,1,0,0,1,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +19995,3,000,34,1,58,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +19996,3,000,34,1,59,1,01,2,1,0,0,2,12,081,002024,2006,2,9999,99999,99999999,9,99999,99999999,35983,20931,0,0,20931,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5129088,-082.4609970,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +19997,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +19998,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +19999,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +20000,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +20001,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +20002,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +20003,3,000,20,1,62,1,01,1,1,0,0,2,12,081,002024,2007,2,9999,99999,99999999,9,99999,99999999,611944,65032,0,0,65032,0,35840,16,999,99999,99999999,A,00295744,92290,S,01935861,412,5,99999,99999999,+27.5115189,-082.4564755,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08101,3,99999,99999,01230,073,021,00294478,99999,99999999,9,999,99999,99999999,999999,09536,U,99999,U,000234,34212 +20004,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20005,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20006,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20007,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20008,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20009,3,000,25,2,14,1,01,2,1,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20010,3,000,25,2,16,1,08,2,2,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20011,3,000,25,2,17,1,08,2,2,0,0,1,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20012,3,000,25,2,26,2,11,2,2,0,0,2,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20013,3,000,25,2,28,2,11,2,2,0,0,2,12,099,005957,2004,2,9999,99999,99999999,9,99999,99999999,40456,0,0,0,0,0,33100,21,999,99999,99999999,A,00295761,90260,S,01935701,370,5,99999,99999999,+26.4511415,-080.1245540,L,1,48424,99999,99999,9,9,9,99999,9,99999999,09907,3,99999,99999,01500,091,029,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000571,33484 +20014,3,000,29,2,71,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20015,3,000,29,2,83,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20016,3,000,29,2,83,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20017,3,000,29,2,83,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20018,3,000,29,2,90,2,15,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20019,3,000,31,2,71,2,15,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20020,3,000,31,2,90,2,01,2,1,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20021,3,000,31,2,90,2,01,2,1,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20022,3,000,32,1,23,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20023,3,000,32,1,24,2,11,2,2,0,0,2,12,086,004903,3004,3,9999,99999,99999999,9,99999,99999999,18757,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7747297,-080.2648088,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,114,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000971,33126 +20024,3,000,21,2,39,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20025,3,000,21,2,45,1,11,2,2,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20026,3,000,21,2,60,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20027,3,000,21,2,60,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20028,3,000,21,2,60,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20029,3,000,21,2,60,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20030,3,000,21,2,60,1,01,2,1,0,0,2,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20031,3,000,25,1,6,2,01,2,1,0,0,1,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20032,3,000,25,1,14,1,01,2,1,0,0,1,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20033,3,000,25,1,14,1,01,2,1,0,0,1,55,133,200300,4014,4,9999,99999,99999999,9,99999,99999999,39998,0,0,0,0,0,33340,05,999,99999,99999999,A,01581126,51000,F,01583695,376,3,99999,99999999,+43.1125516,-088.1788198,L,1,99999,99999,99999,9,N,N,51000,A,01583695,02503,2,99999,99999,06030,022,008,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,006740,53051 +20034,3,000,25,1,4,1,01,2,1,0,0,1,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20035,3,000,25,1,37,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20036,3,000,25,1,37,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20037,3,000,25,2,11,1,01,2,1,0,0,1,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20038,3,000,25,2,14,1,01,2,1,0,0,1,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20039,3,000,25,2,15,1,01,2,1,0,0,1,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20040,3,000,25,2,19,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20041,3,000,29,1,73,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20042,3,000,36,1,31,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20043,3,000,36,1,48,1,01,2,1,0,0,2,39,035,170201,2003,2,9999,99999,99999999,9,99999,99999999,21567,0,0,0,0,0,17460,14,999,99999,99999999,A,01074030,45556,F,01085977,184,3,99999,99999999,+41.5176948,-081.4902522,L,1,99999,99999,99999,9,N,N,45556,A,01085977,00710,2,99999,99999,04479,006,024,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,018BZL,44124 +20044,3,000,20,2,43,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20045,3,000,20,2,51,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20046,3,000,20,2,51,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20047,3,000,20,2,51,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20048,3,000,20,2,63,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20049,3,000,20,2,68,1,07,2,2,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20050,3,000,20,2,70,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20051,3,000,20,2,70,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20052,3,000,20,2,70,1,04,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20053,3,000,20,2,90,2,01,2,1,0,0,2,06,001,433400,2005,2,9999,99999,99999999,9,99999,99999999,25363,0,0,0,0,0,41860,13,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6942320,-122.1774941,L,1,36084,99999,99999,9,N,N,68084,A,02411794,00114,4,99999,99999,34680,018,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94577 +20054,3,000,20,2,85,1,08,1,2,0,0,2,20,199,954100,1154,1,9999,99999,99999999,9,99999,99999999,5201270,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7648998,-101.5758680,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20055,3,000,25,1,23,1,08,2,2,0,0,2,20,199,954100,1154,1,9999,99999,99999999,9,99999,99999999,5201270,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7648998,-101.5758680,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20056,3,000,25,2,56,1,01,2,1,0,0,2,20,199,954100,1154,1,9999,99999,99999999,9,99999,99999999,5201270,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7648998,-101.5758680,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20057,3,000,27,1,9,1,01,2,1,0,0,1,20,199,954100,1154,1,9999,99999,99999999,9,99999,99999999,5201270,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7648998,-101.5758680,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20058,3,000,33,1,21,1,01,2,1,0,0,2,20,199,954100,1154,1,9999,99999,99999999,9,99999,99999999,5201270,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7648998,-101.5758680,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20059,3,000,25,1,12,2,06,2,1,0,0,1,20,199,954100,1156,1,9999,99999,99999999,9,99999,99999999,2599040,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7791393,-101.6035209,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20060,3,000,21,1,95,1,01,2,1,0,0,2,20,199,954100,1273,1,9999,99999,99999999,9,99999,99999999,2588306,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7646241,-101.6037402,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20061,3,000,21,2,31,1,01,2,1,0,0,2,20,199,954100,1273,1,9999,99999,99999999,9,99999,99999999,2588306,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7646241,-101.6037402,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20062,3,000,21,2,66,1,01,2,1,0,0,2,20,199,954100,1273,1,9999,99999,99999999,9,99999,99999999,2588306,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7646241,-101.6037402,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20063,3,000,21,2,66,1,01,2,1,0,0,2,20,199,954100,1273,1,9999,99999,99999999,9,99999,99999999,2588306,0,0,0,0,0,99999,01,999,99999,99999999,A,00485060,30450,A,00485210,999,4,99999,99999999,+38.7646241,-101.6037402,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00100,2,99999,99999,11610,120,040,00481813,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000010,67758 +20064,3,000,28,1,66,1,02,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20065,3,000,28,2,85,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20066,3,000,29,2,84,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20067,3,000,29,2,84,1,01,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20068,3,000,34,2,37,1,02,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20069,3,000,36,1,65,1,02,2,1,0,0,2,28,021,950100,2013,2,9999,99999,99999999,9,99999,99999999,11362314,53506,0,0,53506,0,99999,02,999,99999,99999999,A,00695735,91575,N,00711810,999,6,99999,99999999,+32.0605271,-090.9588494,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20070,3,000,20,1,20,1,02,2,1,0,0,2,28,021,950100,2017,2,9999,99999,99999999,9,99999,99999999,33180703,151898,0,0,151898,0,99999,02,999,99999,99999999,A,00695735,90837,N,00711809,999,6,99999,99999999,+32.0684323,-090.9979219,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20071,3,000,20,1,20,1,02,2,1,0,0,2,28,021,950100,2017,2,9999,99999,99999999,9,99999,99999999,33180703,151898,0,0,151898,0,99999,02,999,99999,99999999,A,00695735,90837,N,00711809,999,6,99999,99999999,+32.0684323,-090.9979219,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20072,3,000,25,2,8,1,02,2,1,0,0,1,28,021,950100,2017,2,9999,99999,99999999,9,99999,99999999,33180703,151898,0,0,151898,0,99999,02,999,99999,99999999,A,00695735,90837,N,00711809,999,6,99999,99999999,+32.0684323,-090.9979219,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20073,3,000,25,2,14,1,02,2,1,0,0,1,28,021,950100,2017,2,9999,99999,99999999,9,99999,99999999,33180703,151898,0,0,151898,0,99999,02,999,99999,99999999,A,00695735,90837,N,00711809,999,6,99999,99999999,+32.0684323,-090.9979219,B,9,99999,99999,99999,9,9,9,99999,9,99999999,01600,3,99999,99999,01020,085,036,01779790,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000201,39150 +20074,3,000,25,1,0,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20075,3,000,25,1,3,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20076,3,000,25,1,3,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20077,3,000,25,1,3,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20078,3,000,25,1,7,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20079,3,000,25,1,7,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20080,3,000,25,1,7,2,06,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20081,3,000,25,1,12,1,02,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20082,3,000,25,1,12,1,02,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20083,3,000,25,1,12,1,02,2,1,0,0,1,10,003,013614,2008,2,9999,99999,99999999,9,99999,99999999,9859,0,0,0,0,0,37980,00,999,99999,99999999,A,00217270,93108,S,01935622,428,5,99999,99999999,+39.7171625,-075.6557824,L,1,48864,99999,99999,9,9,9,99999,9,99999999,00103,3,99999,99999,01300,019,009,01779781,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,005-19,19808 +20084,3,000,20,2,70,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20085,3,000,20,2,72,1,01,1,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20086,3,000,20,1,47,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20087,3,000,20,1,47,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20088,3,000,20,1,79,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20089,3,000,20,1,83,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20090,3,000,20,1,83,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20091,3,000,20,1,83,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20092,3,000,20,2,34,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20093,3,000,20,2,34,1,01,2,1,0,0,2,27,051,070100,2160,2,9999,99999,99999999,9,99999,99999999,576056,0,0,0,0,0,99999,07,999,99999,99999999,A,00659471,19538,A,00664103,999,4,99999,99999999,+46.0034053,-095.8736665,L,9,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,00104,12A,012,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,56531 +20094,3,000,20,2,41,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20095,3,000,20,2,41,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20096,3,000,20,2,41,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20097,3,000,20,2,41,2,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20098,3,000,20,2,41,2,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20099,3,000,20,2,42,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20100,3,000,20,2,42,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20101,3,000,20,2,42,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20102,3,000,20,2,42,1,01,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20103,3,000,20,2,42,1,06,2,1,0,0,2,35,049,010601,3000,3,9999,99999,99999999,9,99999,99999999,4662290,0,0,0,0,0,42140,03,999,99999,99999999,A,00933322,92880,S,01937587,106,8,99999,99999999,+35.5859059,-106.0192654,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00500,4,99999,99999,02370,047,039,00897535,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000112,87508 +20104,3,000,20,2,39,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20105,3,000,20,2,39,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20106,3,000,20,2,53,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20107,3,000,20,2,53,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20108,3,000,20,2,77,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20109,3,000,20,2,77,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20110,3,000,20,2,77,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20111,3,000,20,2,77,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20112,3,000,20,2,78,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20113,3,000,20,2,78,1,01,1,1,0,0,2,08,005,006707,3006,3,9999,99999,99999999,9,99999,99999999,95797,0,0,0,0,0,19740,06,999,99999,99999999,A,00198118,93458,S,01935575,216,8,99999,99999999,+39.5846604,-104.8870607,L,1,99999,99999,99999,9,Y,N,12815,A,02409422,01602,4,99999,99999,02910,037,027,01779779,99999,99999999,9,999,99999,99999999,999999,23527,U,99999,U,005238,80112 +20114,3,000,20,2,56,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20115,3,000,20,2,56,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20116,3,000,20,2,60,2,25,2,3,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20117,3,000,21,1,43,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20118,3,000,21,2,35,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20119,3,000,21,2,35,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20120,3,000,21,2,36,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20121,3,000,21,2,41,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20122,3,000,21,2,43,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20123,3,000,21,2,72,1,01,2,1,0,0,2,36,101,960900,1010,1,9999,99999,99999999,9,99999,99999999,16811,0,0,0,0,0,18500,23,999,99999,99999999,A,00974148,35672,F,00979078,236,2,99999,99999999,+42.3209566,-077.6489274,L,2,99999,99999,99999,9,N,N,35672,A,00979078,02404,1,99999,99999,14820,133,058,01779796,99999,99999999,9,999,99999,99999999,999999,40132,U,99999,U,000054,14843 +20124,3,000,25,1,10,1,04,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20125,3,000,25,1,15,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20126,3,000,25,1,15,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20127,3,000,25,1,16,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20128,3,000,25,1,16,1,01,2,1,0,0,1,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20129,3,000,25,1,19,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20130,3,000,25,1,19,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20131,3,000,25,1,19,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20132,3,000,25,1,19,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20133,3,000,25,1,19,1,01,2,1,0,0,2,55,025,003001,2014,2,9999,99999,99999999,9,99999,99999999,42788,0,0,0,0,0,31540,02,999,99999,99999999,A,01581072,48000,F,01583625,357,3,99999,99999999,+43.0873453,-089.2902314,L,1,99999,99999,99999,9,Y,N,48000,A,01583625,02102,2,99999,99999,08520,048,016,01779806,99999,99999999,9,999,99999,99999999,999999,53200,U,99999,U,001029,53714 +20134,3,000,20,2,52,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20135,3,000,20,2,52,1,02,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20136,3,000,20,2,54,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20137,3,000,20,2,54,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20138,3,000,20,2,54,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20139,3,000,20,2,54,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20140,3,000,20,2,54,1,02,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20141,3,000,20,2,54,1,08,1,2,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20142,3,000,20,2,55,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20143,3,000,20,2,55,1,01,1,1,0,0,2,19,113,000300,3000,3,9999,99999,99999999,9,99999,99999999,275579,0,0,0,0,0,16300,01,999,99999,99999999,A,00465245,92859,G,00468355,168,4,99999,99999999,+42.0472895,-091.6030070,L,1,99999,99999,99999,9,N,N,49485,A,02395011,00301,2,99999,99999,17220,067,034,01779785,99999,99999999,9,999,99999,99999999,999999,14752,U,99999,U,113162,52302 +20144,3,000,34,2,64,1,02,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20145,3,000,36,2,31,1,02,2,1,0,0,2,36,059,518900,3010,3,9999,99999,99999999,9,99999,99999999,7961,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7691771,-073.5394684,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20146,3,000,20,1,31,2,06,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20147,3,000,20,1,33,1,01,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20148,3,000,20,1,47,1,04,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20149,3,000,20,1,47,1,04,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20150,3,000,20,1,47,1,04,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20151,3,000,20,1,49,1,04,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20152,3,000,20,1,49,2,01,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20153,3,000,20,1,50,1,01,2,1,0,0,2,36,059,518900,3012,3,9999,99999,99999999,9,99999,99999999,11926,0,0,0,0,0,35620,03,999,99999,99999999,A,00974128,56000,A,00979336,408,2,99999,99999999,+40.7687088,-073.5370448,L,1,35004,99999,99999,9,N,N,34374,S,02389922,03203,1,99999,99999,14340,015,007,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001120,11801 +20154,3,000,20,1,51,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20155,3,000,20,1,60,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20156,3,000,20,1,84,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20157,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20158,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20159,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20160,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20161,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20162,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20163,3,000,20,2,56,1,01,2,1,0,0,2,54,061,011900,3017,3,9999,99999,99999999,9,99999,99999999,1664711,1810,0,0,1810,0,34060,01,999,99999,99999999,A,01550037,93612,N,01928414,390,5,99999,99999999,+39.5757719,-079.9842240,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00300,3,99999,99999,00930,051,014,01779805,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000061,26508 +20164,3,000,25,2,33,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20165,3,000,25,2,33,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20166,3,000,25,2,45,1,02,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20167,3,000,26,1,6,1,01,2,1,0,0,1,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20168,3,000,28,2,41,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20169,3,000,28,2,70,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20170,3,000,30,1,12,1,01,2,1,0,0,1,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20171,3,000,30,1,20,2,06,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20172,3,000,33,1,46,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20173,3,000,36,2,28,1,01,2,1,0,0,2,01,069,040801,1014,1,9550,14144,02418812,R,99999,99999999,58690,0,0,0,0,0,20020,02,999,99999,99999999,A,00161560,90900,S,00161615,222,6,99999,99999999,+31.2055122,-085.4674158,L,1,99999,99999,99999,9,Y,N,21184,A,02404238,02300,3,99999,99999,01230,087,029,01779775,99999,99999999,9,999,99999,99999999,999999,24472,U,99999,U,000501,36305 +20174,3,000,20,2,58,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20175,3,000,20,2,58,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20176,3,000,20,2,58,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20177,3,000,20,2,58,1,04,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20178,3,000,20,2,58,1,04,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20179,3,000,20,2,58,1,04,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20180,3,000,20,2,59,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20181,3,000,20,2,59,1,01,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20182,3,000,20,2,59,1,04,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20183,3,000,20,2,59,1,04,2,1,0,0,2,36,061,011700,2000,2,9999,99999,99999999,9,99999,99999999,22893,0,0,0,0,0,35620,10,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7610774,-073.9999596,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04104,1,99999,99999,20580,067,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000208,10036 +20184,3,000,21,2,25,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20185,3,000,22,2,20,1,01,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20186,3,000,25,1,4,2,06,2,1,0,0,1,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20187,3,000,25,1,12,2,11,2,2,0,0,1,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20188,3,000,25,1,15,1,16,2,2,0,0,1,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20189,3,000,25,1,20,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20190,3,000,25,1,20,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20191,3,000,25,1,24,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20192,3,000,25,1,24,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20193,3,000,25,1,28,1,02,2,1,0,0,2,37,035,010600,4010,4,9999,99999,99999999,9,99999,99999999,28537,0,0,0,0,0,25860,10,999,99999,99999999,A,01008543,91468,N,01026527,999,5,99999,99999999,+35.7341320,-081.3697176,L,1,99999,99999,99999,9,Y,N,31060,A,02404693,02800,3,99999,99999,02190,096,042,01027616,99999,99999999,9,999,99999,99999999,999999,38647,U,99999,U,000013,28601 +20194,3,000,20,2,39,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20195,3,000,20,2,41,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20196,3,000,20,2,41,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20197,3,000,20,2,41,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20198,3,000,20,2,41,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20199,3,000,20,2,41,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20200,3,000,20,2,43,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20201,3,000,20,2,43,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20202,3,000,20,2,43,1,01,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20203,3,000,20,2,43,1,02,1,1,0,0,2,42,101,037300,3004,3,9999,99999,99999999,9,99999,99999999,764884,29004,0,0,29004,0,37980,05,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9024981,-075.1879361,B,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002623,19145 +20204,3,000,20,2,40,1,11,1,2,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20205,3,000,20,2,40,1,11,1,2,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20206,3,000,20,2,48,2,06,1,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20207,3,000,20,2,54,1,11,1,2,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20208,3,000,20,2,61,1,04,1,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20209,3,000,20,1,24,1,01,2,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20210,3,000,20,1,24,1,01,2,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20211,3,000,20,1,27,1,01,2,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20212,3,000,20,1,27,1,01,2,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20213,3,000,20,1,27,1,01,2,1,0,0,2,53,033,002600,4011,4,9999,99999,99999999,9,99999,99999999,16768,0,0,0,0,0,42660,07,999,99999,99999999,A,01531933,92928,S,01939621,500,9,99999,99999999,+47.6855088,-122.3140801,L,1,42644,99999,99999,9,Y,N,63000,A,02411856,23317,4,99999,99999,07710,046,046,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,63000,U,002257,98115 +20214,3,000,25,1,25,2,06,2,1,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20215,3,000,25,2,2,1,01,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20216,3,000,25,2,9,2,06,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20217,3,000,25,2,9,2,06,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20218,3,000,25,2,13,1,02,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20219,3,000,28,1,9,2,06,2,1,0,0,1,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20220,3,000,34,1,42,2,01,2,1,0,0,2,55,101,001003,2010,2,9999,99999,99999999,9,99999,99999999,14612,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7117030,-087.8241728,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,066,022,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004956,53405 +20221,3,000,20,1,55,1,01,1,1,0,0,2,55,101,001101,1000,1,9999,99999,99999999,9,99999,99999999,17596,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7242125,-087.8363777,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,062,021,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004955,53405 +20222,3,000,20,1,59,1,01,1,1,0,0,2,55,101,001101,1000,1,9999,99999,99999999,9,99999,99999999,17596,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7242125,-087.8363777,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,062,021,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004955,53405 +20223,3,000,20,1,59,1,01,1,1,0,0,2,55,101,001101,1000,1,9999,99999,99999999,9,99999,99999999,17596,0,0,0,0,0,39540,01,999,99999,99999999,A,01581111,66000,F,01583991,376,3,99999,99999999,+42.7242125,-087.8363777,L,1,99999,99999,99999,9,Y,N,66000,A,01583991,02900,2,99999,99999,12360,062,021,01779806,99999,99999999,9,999,99999,99999999,999999,73153,U,99999,U,004955,53405 +20224,3,000,25,2,6,2,06,2,1,0,0,1,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +20225,3,000,25,2,9,2,06,2,1,0,0,1,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +20226,3,000,25,2,16,2,06,2,1,0,0,1,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +20227,3,000,25,2,16,2,06,2,1,0,0,1,18,107,957100,4036,4,9999,99999,99999999,9,99999,99999999,13994,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0365762,-086.8922220,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000130,47933 +20228,3,000,20,1,30,1,01,1,1,0,0,2,18,107,957100,4039,4,9999,99999,99999999,9,99999,99999999,11401,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0384057,-086.8819223,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000090,47933 +20229,3,000,20,1,30,1,01,1,1,0,0,2,18,107,957100,4039,4,9999,99999,99999999,9,99999,99999999,11401,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0384057,-086.8819223,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000090,47933 +20230,3,000,20,1,30,1,01,1,1,0,0,2,18,107,957100,4039,4,9999,99999,99999999,9,99999,99999999,11401,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0384057,-086.8819223,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000090,47933 +20231,3,000,20,1,31,1,01,1,1,0,0,2,18,107,957100,4039,4,9999,99999,99999999,9,99999,99999999,11401,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0384057,-086.8819223,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000090,47933 +20232,3,000,20,1,34,1,01,1,1,0,0,2,18,107,957100,4039,4,9999,99999,99999999,9,99999,99999999,11401,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0384057,-086.8819223,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000090,47933 +20233,3,000,20,1,41,1,01,1,1,0,0,2,18,107,957100,4039,4,9999,99999,99999999,9,99999,99999999,11401,0,0,0,0,0,18820,04,999,99999,99999999,A,00450374,77480,A,00453926,294,3,99999,99999999,+40.0384057,-086.8819223,L,2,99999,99999,99999,9,Y,N,15742,A,02393664,01100,2,99999,99999,02460,041,023,00448508,99999,99999999,9,999,99999,99999999,999999,20881,U,99999,U,000090,47933 +20234,3,000,20,2,68,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20235,3,000,20,2,68,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20236,3,000,20,2,77,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20237,3,000,21,1,45,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20238,3,000,21,1,45,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20239,3,000,21,1,46,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20240,3,000,21,1,46,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20241,3,000,21,2,38,1,03,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20242,3,000,22,2,36,1,01,2,1,0,0,2,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20243,3,000,25,1,5,1,13,2,2,0,0,1,55,079,170100,2005,2,9999,99999,99999999,9,99999,99999999,29902,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,75125,F,01584179,376,3,99999,99999999,+42.9270743,-087.8515941,L,1,99999,99999,99999,9,N,N,75125,A,01584179,02808,2,99999,99999,14040,021,007,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003515,53172 +20244,3,000,25,1,42,1,02,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20245,3,000,25,1,43,1,02,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20246,3,000,25,1,43,1,02,2,1,0,0,2,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20247,3,000,25,2,4,1,01,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20248,3,000,25,2,7,1,01,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20249,3,000,25,2,7,1,01,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20250,3,000,25,2,7,1,01,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20251,3,000,25,2,7,1,04,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20252,3,000,25,2,8,1,01,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20253,3,000,25,2,8,1,01,2,1,0,0,1,18,003,011608,2013,2,9999,99999,99999999,9,99999,99999999,644605,0,0,0,0,0,23060,03,999,99999,99999999,A,00450402,00208,A,00453072,258,3,99999,99999999,+41.0784201,-085.3013180,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01003,2,99999,99999,00030,083,016,00448508,99999,99999999,9,999,99999,99999999,999999,31087,U,99999,U,001990,46814 +20254,3,000,25,1,5,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20255,3,000,25,1,5,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20256,3,000,25,1,5,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20257,3,000,25,1,5,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20258,3,000,25,1,5,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20259,3,000,25,1,6,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20260,3,000,25,1,6,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20261,3,000,25,1,6,1,01,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20262,3,000,25,1,6,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20263,3,000,25,1,6,1,02,2,1,0,0,1,37,025,041503,1035,1,9999,99999,99999999,9,99999,99999999,508065,0,0,0,0,0,16740,08,999,99999,99999999,A,01008540,93284,N,01026470,172,5,99999,99999999,+35.3479738,-080.5875616,L,1,99999,99999,99999,9,Y,N,14100,A,02404117,03300,3,99999,99999,00530,083,036,01027616,99999,99999999,9,999,99999,99999999,999999,19558,U,99999,U,001-08,28025 +20264,3,000,25,1,23,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20265,3,000,25,1,24,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20266,3,000,25,1,24,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20267,3,000,25,1,39,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20268,3,000,25,1,39,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20269,3,000,25,2,6,1,04,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20270,3,000,25,2,6,1,04,2,1,0,0,1,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20271,3,000,34,2,31,1,01,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20272,3,000,34,2,48,1,04,2,1,0,0,2,34,013,020800,2003,2,9999,99999,99999999,9,99999,99999999,70266,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7829520,-074.3443127,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20273,3,000,20,1,32,1,04,2,1,0,0,2,34,013,020800,2004,2,9999,99999,99999999,9,99999,99999999,32293,0,0,0,0,0,35620,11,999,99999,99999999,A,00882276,40890,A,00882219,408,2,99999,99999999,+40.7825482,-074.3468255,L,1,35084,99999,99999,9,9,9,99999,9,99999999,01404,1,99999,99999,08820,027,027,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,050026,07039 +20274,3,000,20,1,47,2,01,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20275,3,000,20,1,47,2,06,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20276,3,000,20,1,47,2,06,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20277,3,000,21,1,31,1,02,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20278,3,000,21,1,64,1,02,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20279,3,000,21,2,43,1,01,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20280,3,000,22,1,35,1,02,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20281,3,000,22,1,48,1,02,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20282,3,000,22,1,48,1,02,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20283,3,000,22,1,60,1,02,2,1,0,0,2,18,141,002400,3022,3,9999,99999,99999999,9,99999,99999999,17932,0,0,0,0,0,43780,02,999,99999,99999999,A,00452855,61128,A,00453759,515,3,99999,99999999,+41.6666655,-086.3053788,L,1,99999,99999,99999,9,Y,N,71000,A,02395913,00401,2,99999,99999,10290,007,010,00448508,99999,99999999,9,999,99999,99999999,999999,83116,U,99999,U,002070,46619 +20284,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20285,3,000,25,2,6,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20286,3,000,25,2,7,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20287,3,000,25,2,7,1,01,2,1,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20288,3,000,25,2,9,1,08,2,2,0,0,1,53,063,000700,5009,5,9999,99999,99999999,9,99999,99999999,5633,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073880,-117.4468486,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20289,3,000,20,1,47,1,03,1,1,0,0,2,53,063,000700,5010,5,9999,99999,99999999,9,99999,99999999,5628,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073891,-117.4483131,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20290,3,000,20,2,58,1,03,1,1,0,0,2,53,063,000700,5010,5,9999,99999,99999999,9,99999,99999999,5628,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073891,-117.4483131,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20291,3,000,20,1,25,1,03,2,1,0,0,2,53,063,000700,5010,5,9999,99999,99999999,9,99999,99999999,5628,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073891,-117.4483131,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20292,3,000,20,2,35,1,03,2,1,0,0,2,53,063,000700,5010,5,9999,99999,99999999,9,99999,99999999,5628,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073891,-117.4483131,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20293,3,000,20,2,42,1,03,2,1,0,0,2,53,063,000700,5010,5,9999,99999,99999999,9,99999,99999999,5628,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.7073891,-117.4483131,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26304,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003303,99205 +20294,3,000,20,1,41,1,06,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20295,3,000,20,1,41,1,06,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20296,3,000,20,1,41,1,06,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20297,3,000,20,1,42,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20298,3,000,20,1,42,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20299,3,000,20,1,42,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20300,3,000,20,1,43,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20301,3,000,20,1,43,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20302,3,000,20,1,43,1,01,2,1,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20303,3,000,20,1,47,1,11,2,2,0,0,2,49,035,111906,1005,1,9999,99999,99999999,9,99999,99999999,191935,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6816809,-111.8854670,L,1,99999,99999,99999,9,N,N,50150,A,02786012,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,MIL009,84107 +20304,3,000,25,2,14,1,12,2,2,0,0,1,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20305,3,000,25,2,16,1,03,2,1,0,0,1,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20306,3,000,25,2,18,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20307,3,000,25,2,18,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20308,3,000,25,2,21,1,03,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20309,3,000,25,2,23,1,03,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20310,3,000,28,1,21,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20311,3,000,28,2,34,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20312,3,000,30,1,18,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20313,3,000,30,1,29,1,02,2,1,0,0,2,37,155,961100,1009,1,9815,39675,02418691,R,99999,99999999,13983,0,0,0,0,0,31300,09,999,99999,99999999,A,01026130,91940,N,01027109,246,5,99999,99999999,+34.6164812,-078.9974487,L,2,99999,99999,99999,9,Y,N,39700,A,02404974,04900,3,99999,99999,03930,047,013,01027616,99999,99999999,9,999,99999,99999999,999999,52066,U,99999,U,000015,28358 +20314,3,000,21,1,75,2,01,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20315,3,000,21,1,77,2,01,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20316,3,000,21,1,86,1,01,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20317,3,000,21,2,22,2,25,2,3,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20318,3,000,21,2,25,1,04,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20319,3,000,21,2,26,1,04,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20320,3,000,21,2,29,1,04,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20321,3,000,21,2,29,1,04,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20322,3,000,21,2,29,1,04,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20323,3,000,21,2,31,1,04,2,1,0,0,2,12,011,110361,3002,3,9999,99999,99999999,9,99999,99999999,730913,670155,0,0,670155,0,33100,20,999,99999,99999999,A,00295753,92236,S,01935857,370,5,99999,99999999,+25.9798416,-080.4033029,B,1,22744,99999,99999,9,N,N,45975,A,02404275,01112,3,99999,99999,00180,105,035,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00W015,33029 +20324,3,000,21,1,68,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20325,3,000,21,1,68,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20326,3,000,21,2,35,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20327,3,000,21,2,35,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20328,3,000,21,2,36,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20329,3,000,21,2,36,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20330,3,000,21,2,46,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20331,3,000,21,2,46,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20332,3,000,21,2,48,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20333,3,000,21,2,59,1,01,2,1,0,0,2,27,099,000900,2010,2,9999,99999,99999999,9,99999,99999999,58349,0,0,0,0,0,12380,01,999,99999,99999999,A,00659495,02908,F,02394037,462,4,99999,99999999,+43.6498577,-092.9937291,L,2,99999,99999,99999,9,Y,N,02908,A,02394037,02800,2,99999,99999,03450,27B,027,00662849,99999,99999999,9,999,99999,99999999,999999,04357,U,99999,U,000030,55912 +20334,3,000,30,1,9,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20335,3,000,30,1,9,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20336,3,000,30,1,9,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20337,3,000,30,1,11,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20338,3,000,30,1,11,1,02,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20339,3,000,30,1,16,1,01,2,1,0,0,1,28,033,070811,1014,1,9999,99999,99999999,9,99999,99999999,20053,0,0,0,0,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9779230,-089.8510560,L,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20340,3,000,20,2,70,1,01,1,1,0,0,2,28,033,070811,1015,1,9999,99999,99999999,9,99999,99999999,171878,9178,0,0,9178,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9735923,-089.8465051,B,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20341,3,000,20,2,70,1,01,1,1,0,0,2,28,033,070811,1015,1,9999,99999,99999999,9,99999,99999999,171878,9178,0,0,9178,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9735923,-089.8465051,B,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20342,3,000,20,2,70,1,01,1,1,0,0,2,28,033,070811,1015,1,9999,99999,99999999,9,99999,99999999,171878,9178,0,0,9178,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9735923,-089.8465051,B,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20343,3,000,20,2,70,1,01,1,1,0,0,2,28,033,070811,1015,1,9999,99999,99999999,9,99999,99999999,171878,9178,0,0,9178,0,32820,01,999,99999,99999999,A,00695741,90153,N,00711838,368,6,99999,99999999,+34.9735923,-089.8465051,B,1,99999,99999,99999,9,N,N,54040,A,02404429,00100,3,99999,99999,01320,006,019,01779790,99999,99999999,9,999,99999,99999999,999999,56116,U,99999,U,000106,38654 +20344,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20345,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20346,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20347,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20348,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20349,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20350,3,000,20,1,62,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20351,3,000,20,1,64,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20352,3,000,20,1,66,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20353,3,000,20,2,56,1,01,2,1,0,0,2,55,079,100800,2033,2,9999,99999,99999999,9,99999,99999999,21210,0,0,0,0,0,33340,05,999,99999,99999999,A,01581100,85300,F,01584397,376,3,99999,99999999,+43.0173004,-088.0564443,L,1,99999,99999,99999,9,N,N,85300,A,01584397,02807,2,99999,99999,16260,015,005,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003860,53214 +20354,3,000,25,2,19,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20355,3,000,25,2,45,1,01,2,1,0,0,2,12,041,950201,1038,1,9999,99999,99999999,9,99999,99999999,1213614,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7759426,-082.6636977,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20356,3,000,21,1,40,1,01,2,1,0,0,2,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20357,3,000,21,1,43,1,01,2,1,0,0,2,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20358,3,000,21,1,43,1,01,2,1,0,0,2,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20359,3,000,21,2,51,1,03,2,1,0,0,2,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20360,3,000,21,2,60,2,11,2,2,0,0,2,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20361,3,000,25,2,1,2,11,2,2,0,0,1,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20362,3,000,29,2,75,2,08,2,2,0,0,2,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20363,3,000,30,1,13,2,30,2,3,0,0,1,12,041,950201,1039,1,9999,99999,99999999,9,99999,99999999,392817,0,0,0,0,0,23540,02,999,99999,99999999,A,00303633,93432,S,01935956,264,5,99999,99999999,+29.7802105,-082.6595313,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00798,3,99999,99999,00630,021,005,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,32643 +20364,3,000,20,2,25,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20365,3,000,20,2,25,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20366,3,000,20,2,25,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20367,3,000,20,2,26,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20368,3,000,20,2,26,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20369,3,000,20,2,26,1,01,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20370,3,000,20,2,29,1,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20371,3,000,20,2,29,1,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20372,3,000,20,2,34,1,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20373,3,000,20,2,34,2,02,2,1,0,0,2,12,127,090807,2004,2,9999,99999,99999999,9,99999,99999999,1104851,0,0,0,0,0,19660,06,999,99999,99999999,A,00306921,90793,S,01935742,422,5,99999,99999999,+28.9395810,-081.2737970,L,1,99999,99999,99999,9,N,N,51825,A,02404440,12701,3,99999,99999,01920,027,009,00294478,99999,99999999,9,999,99999,99999999,999999,23311,U,99999,U,000070,32763 +20374,5,501,38,1,25,1,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20375,5,501,38,1,28,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20376,5,501,38,1,30,1,09,0,2,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20377,5,501,38,1,30,1,09,0,2,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20378,5,501,38,1,42,1,09,0,2,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20379,5,501,38,2,20,1,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20380,5,501,38,2,20,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20381,5,501,38,2,21,1,04,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20382,5,501,38,2,21,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20383,5,501,38,2,21,2,01,0,1,2,5,2,25,009,217500,5023,5,9999,99999,99999999,9,99999,99999999,11143,0,0,0,0,0,14460,06,715,99999,99999999,N,00606931,05595,F,00618293,148,1,99999,99999999,+42.5521574,-070.8780231,L,1,15764,76524,71650,1,N,N,05595,A,00618293,00706,1,99999,99999,02640,088,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,000151,01915 +20384,3,000,20,2,33,2,06,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20385,3,000,20,2,35,1,07,2,2,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20386,3,000,20,2,35,2,11,2,2,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20387,3,000,20,2,35,2,11,2,2,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20388,3,000,20,2,36,2,44,2,4,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20389,3,000,20,2,36,2,44,2,4,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20390,3,000,20,2,37,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20391,3,000,20,2,37,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20392,3,000,20,2,37,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20393,3,000,20,2,37,1,01,2,1,0,0,2,25,027,732202,2005,2,9999,99999,99999999,9,99999,99999999,509398,9733,0,0,9733,0,49340,02,715,99999,99999999,N,00606940,82000,F,00619493,148,1,99999,99999999,+42.2630921,-071.7667066,B,1,99999,99999,79600,1,Y,Y,82000,A,00619493,00504,1,99999,99999,13230,217,010,00606926,99999,99999999,9,999,99999,99999999,999999,97291,U,99999,U,002115,01604 +20394,3,000,30,1,2,2,11,2,2,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20395,3,000,30,1,15,2,06,2,1,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20396,3,000,30,1,15,2,06,2,1,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20397,3,000,30,1,15,2,06,2,1,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20398,3,000,30,1,17,2,06,2,1,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20399,3,000,30,1,18,1,01,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20400,3,000,30,1,19,1,01,2,1,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20401,3,000,30,1,21,2,11,2,2,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20402,3,000,30,1,21,2,11,2,2,0,0,2,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20403,3,000,30,2,5,2,06,2,1,0,0,1,48,113,018203,4014,4,9999,99999,99999999,9,99999,99999999,38550,0,0,0,0,0,19100,32,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9051667,-096.6177587,L,1,19124,99999,99999,9,N,N,29000,A,02410572,02301,3,99999,99999,20340,112,002,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,001709,75040 +20404,3,000,21,2,38,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20405,3,000,21,2,38,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20406,3,000,21,2,39,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20407,3,000,21,2,39,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20408,3,000,21,2,39,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20409,3,000,21,2,39,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20410,3,000,21,2,39,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20411,3,000,21,2,41,1,03,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20412,3,000,21,2,60,2,01,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20413,3,000,21,2,61,2,06,2,1,0,0,2,13,139,000702,1009,1,9999,99999,99999999,9,99999,99999999,1295642,3042,0,0,3042,0,23580,09,999,99999,99999999,A,01686953,91260,S,01936280,122,5,99999,99999999,+34.2444922,-083.7207391,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00602,3,99999,99999,02610,030,049,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,30507 +20414,3,000,25,2,15,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20415,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20416,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20417,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20418,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20419,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20420,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20421,3,000,25,2,17,1,02,2,1,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20422,3,000,25,2,17,2,25,2,3,0,0,1,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20423,3,000,25,2,20,1,02,2,1,0,0,2,48,201,253000,4011,4,9999,99999,99999999,9,99999,99999999,573793,0,0,0,0,0,26420,36,999,99999,99999999,A,01383886,92795,S,01939040,288,7,99999,99999999,+29.8155444,-095.0244480,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04623,3,99999,99999,21150,128,015,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000387,77562 +20424,3,000,20,2,29,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20425,3,000,20,2,29,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20426,3,000,20,2,29,1,08,2,2,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20427,3,000,20,2,30,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20428,3,000,20,2,30,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20429,3,000,20,2,30,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20430,3,000,20,2,31,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20431,3,000,20,2,31,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20432,3,000,20,2,31,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20433,3,000,20,2,31,1,01,2,1,0,0,2,17,031,832600,3005,3,9999,99999,99999999,9,99999,99999999,11865,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9170567,-087.6518153,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03154,2,99999,99999,09930,010,005,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,043011,60614 +20434,3,000,25,2,8,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20435,3,000,25,2,8,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20436,3,000,25,2,8,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20437,3,000,25,2,8,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20438,3,000,25,2,11,2,01,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20439,3,000,25,2,11,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20440,3,000,25,2,12,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20441,3,000,25,2,12,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20442,3,000,25,2,12,2,06,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20443,3,000,25,2,13,2,01,2,1,0,0,1,06,001,435500,1012,1,9999,99999,99999999,9,99999,99999999,23389,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91260,S,01935131,488,9,99999,99999999,+37.6806233,-122.0953290,L,1,36084,99999,99999,9,N,N,12902,S,02408020,00115,4,99999,99999,16740,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94541 +20444,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20445,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20446,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20447,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20448,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20449,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20450,3,000,25,1,11,1,01,2,1,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20451,3,000,25,1,16,2,11,2,2,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20452,3,000,25,1,16,2,11,2,2,0,0,1,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20453,3,000,25,1,20,1,01,2,1,0,0,2,17,031,100200,5009,5,9999,99999,99999999,9,99999,99999999,19944,0,0,0,0,0,16980,05,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.9954294,-087.8035245,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03151,2,99999,99999,09930,020,010,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,041016,60631 +20454,3,000,36,1,25,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20455,3,000,36,1,27,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20456,3,000,36,1,27,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20457,3,000,36,1,31,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20458,3,000,36,1,31,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20459,3,000,36,1,31,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20460,3,000,36,1,33,2,11,2,2,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20461,3,000,36,1,34,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20462,3,000,36,1,34,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20463,3,000,36,1,34,2,06,2,1,0,0,2,36,103,123304,4001,4,9999,99999,99999999,9,99999,99999999,104955,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,04000,A,00978704,408,2,99999,99999999,+40.7042572,-073.4286512,L,1,35004,99999,99999,9,N,N,51396,S,02389559,03313,1,99999,99999,02940,011,008,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000092,11701 +20464,3,000,25,1,13,1,01,2,1,0,0,1,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20465,3,000,25,1,13,1,01,2,1,0,0,1,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20466,3,000,25,1,19,2,06,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20467,3,000,25,1,20,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20468,3,000,25,1,20,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20469,3,000,25,1,20,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20470,3,000,25,1,21,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20471,3,000,25,1,21,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20472,3,000,25,1,21,1,01,2,1,0,0,2,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20473,3,000,25,2,6,1,01,2,1,0,0,1,36,103,135005,3005,3,9999,99999,99999999,9,99999,99999999,31657,0,0,0,0,0,35620,01,999,99999,99999999,A,00974149,68000,A,00979498,408,2,99999,99999999,+40.8860550,-073.1478529,L,1,35004,99999,99999,9,N,N,64584,S,02390347,03303,1,99999,99999,27060,008,002,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000961,11780 +20474,3,000,21,2,46,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20475,3,000,21,2,46,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20476,3,000,21,2,46,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20477,3,000,21,2,47,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20478,3,000,21,2,48,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20479,3,000,21,2,48,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20480,3,000,21,2,50,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20481,3,000,21,2,50,2,06,2,1,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20482,3,000,21,2,52,2,11,2,2,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20483,3,000,21,2,53,2,11,2,2,0,0,2,06,059,074407,1001,1,9999,99999,99999999,9,99999,99999999,42991,0,0,0,0,0,31080,46,999,99999,99999999,A,00277294,90050,S,01935009,348,9,99999,99999999,+33.7385041,-117.8437180,L,1,11244,99999,99999,9,Y,N,69000,A,02411814,05922,4,99999,99999,40150,069,034,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,92705 +20484,3,000,21,2,49,2,06,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20485,3,000,21,2,49,2,06,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20486,3,000,21,2,49,2,06,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20487,3,000,21,2,53,1,02,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20488,3,000,21,2,53,1,02,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20489,3,000,21,2,64,2,11,2,2,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20490,3,000,25,1,1,2,11,2,2,0,0,1,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20491,3,000,25,1,7,1,02,2,1,0,0,1,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20492,3,000,25,1,12,2,01,2,1,0,0,1,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20493,3,000,25,1,18,1,02,2,1,0,0,2,12,011,070503,4004,4,9999,99999,99999999,9,99999,99999999,18588,0,0,0,0,0,33100,23,999,99999,99999999,A,00295753,90754,S,01935739,370,5,99999,99999999,+26.0428090,-080.2469308,L,1,22744,99999,99999,9,N,N,16475,A,02406359,01110,3,99999,99999,00180,099,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00T009,33024 +20494,3,000,26,2,30,1,02,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20495,3,000,29,2,75,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20496,3,000,29,2,77,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20497,3,000,29,2,77,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20498,3,000,29,2,77,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20499,3,000,29,2,77,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20500,3,000,30,1,14,1,01,2,1,0,0,1,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20501,3,000,33,1,60,1,02,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20502,3,000,34,2,42,1,02,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20503,3,000,36,1,49,1,01,2,1,0,0,2,22,119,031100,2087,2,9999,99999,99999999,9,99999,99999999,5556704,2843,0,0,2843,0,33380,04,999,99999,99999999,A,00559567,94714,N,01930044,508,7,99999,99999999,+32.7765162,-093.3071540,B,2,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,01890,010,036,01629543,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000014,71055 +20504,3,000,20,1,39,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20505,3,000,20,1,68,2,03,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20506,3,000,20,1,72,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20507,3,000,20,2,27,2,03,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20508,3,000,20,2,36,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20509,3,000,20,2,36,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20510,3,000,20,2,38,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20511,3,000,20,2,38,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20512,3,000,20,2,38,2,03,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20513,3,000,20,2,39,1,01,2,1,0,0,2,08,041,001700,1010,1,9999,99999,99999999,9,99999,99999999,20719,0,0,0,0,0,17820,05,999,99999,99999999,A,00198135,90741,S,01935430,999,8,99999,99999999,+38.8455542,-104.8149448,L,1,99999,99999,99999,9,Y,N,16000,A,02410198,02004,4,99999,99999,03060,018,011,01779779,99999,99999999,9,999,99999,99999999,999999,18856,U,99999,U,041176,80903 +20514,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20515,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20516,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20517,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20518,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20519,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20520,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20521,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20522,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20523,3,000,25,2,10,1,01,2,1,0,0,1,12,057,011528,3001,3,9999,99999,99999999,9,99999,99999999,836854,26832,0,0,26832,0,45300,14,999,99999,99999999,A,00295757,91735,S,01935724,999,5,99999,99999999,+28.0822890,-082.6203940,B,1,99999,99999,99999,9,N,N,36462,S,02403173,05703,3,99999,99999,00870,064,018,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000066,33626 +20524,3,000,20,1,33,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20525,3,000,20,1,33,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20526,3,000,20,1,33,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20527,3,000,20,1,33,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20528,3,000,20,1,46,1,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20529,3,000,20,1,50,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20530,3,000,20,1,50,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20531,3,000,20,1,50,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20532,3,000,20,1,50,1,04,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20533,3,000,20,1,50,2,01,2,1,0,0,2,06,001,441800,3010,3,9999,99999,99999999,9,99999,99999999,31612,0,0,0,0,0,41860,17,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5594720,-121.9839019,L,1,36084,99999,99999,9,N,N,26000,A,02410545,00118,4,99999,99999,14400,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94536 +20534,3,000,20,1,32,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20535,3,000,20,1,32,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20536,3,000,20,1,34,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20537,3,000,20,1,34,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20538,3,000,20,1,34,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20539,3,000,20,1,34,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20540,3,000,20,1,51,1,11,2,2,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20541,3,000,20,1,81,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20542,3,000,20,1,81,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20543,3,000,20,1,81,1,01,2,1,0,0,2,36,029,017301,1003,1,9999,99999,99999999,9,99999,99999999,60474,0,0,0,0,0,15380,26,999,99999,99999999,A,00974113,80918,A,00979626,160,2,99999,99999999,+42.8257992,-078.7397769,L,1,99999,99999,99999,9,N,N,80907,S,02390491,01204,1,99999,99999,30780,142,059,01779796,99999,99999999,9,999,99999,99999999,999999,11350,U,99999,U,000803,14224 +20544,3,000,21,2,54,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20545,3,000,21,2,54,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20546,3,000,21,2,54,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20547,3,000,21,2,54,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20548,3,000,21,2,61,1,01,2,1,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20549,3,000,25,1,6,1,01,2,1,0,0,1,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20550,3,000,25,1,6,1,01,2,1,0,0,1,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20551,3,000,25,1,6,1,01,2,1,0,0,1,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20552,3,000,25,1,11,1,01,2,1,0,0,1,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20553,3,000,25,1,18,1,15,2,2,0,0,2,27,053,024600,1001,1,9999,99999,99999999,9,99999,99999999,20255,0,0,0,0,0,33460,05,999,99999,99999999,A,00659472,54214,F,02396362,378,4,99999,99999999,+44.8699975,-093.2763160,L,1,99999,99999,99999,9,N,N,54214,A,02396362,01607,2,99999,99999,31750,50A,050,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,002595,55423 +20554,3,000,25,1,7,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20555,3,000,25,1,7,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20556,3,000,25,1,7,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20557,3,000,25,1,15,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20558,3,000,25,1,15,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20559,3,000,25,1,19,1,01,2,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20560,3,000,25,1,19,1,01,2,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20561,3,000,25,2,7,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20562,3,000,25,2,15,1,01,2,1,0,0,1,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20563,3,000,25,2,25,1,01,2,1,0,0,2,18,051,050201,2032,2,9999,99999,99999999,9,99999,99999999,5517,0,0,0,0,0,99999,08,999,99999,99999999,A,00450354,77300,A,00453916,999,3,99999,99999999,+38.2478374,-087.5762249,L,9,99999,99999,99999,9,N,N,24250,A,02396941,03300,2,99999,99999,10350,064,049,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,47648 +20564,3,000,20,2,48,1,02,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20565,3,000,20,2,50,2,11,2,2,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20566,3,000,20,2,57,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20567,3,000,20,2,57,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20568,3,000,20,2,57,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20569,3,000,20,2,57,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20570,3,000,20,2,59,1,01,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20571,3,000,21,1,31,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20572,3,000,21,1,32,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20573,3,000,21,1,33,2,06,2,1,0,0,2,26,163,526200,1006,1,9999,99999,99999999,9,99999,99999999,17876,0,0,0,0,0,19820,13,999,99999,99999999,A,01623022,22000,F,01626181,220,3,99999,99999999,+42.3357368,-083.1426337,L,1,19804,99999,99999,9,Y,N,22000,A,01626181,03212,2,99999,99999,01103,005,004,01779789,99999,99999999,9,999,99999,99999999,999999,23824,U,99999,U,163543,48210 +20574,3,000,25,1,20,2,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20575,3,000,25,1,21,1,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20576,3,000,25,1,21,1,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20577,3,000,25,1,22,1,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20578,3,000,25,1,26,2,11,2,2,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20579,3,000,25,1,26,2,11,2,2,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20580,3,000,25,1,26,2,11,2,2,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20581,3,000,25,1,28,2,11,2,2,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20582,3,000,25,1,41,2,01,2,1,0,0,2,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20583,3,000,25,2,0,2,06,2,1,0,0,1,35,013,001701,3028,3,9999,99999,99999999,9,99999,99999999,274353,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8538569,-106.6265207,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000014,88008 +20584,3,000,20,1,41,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20585,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20586,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20587,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20588,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20589,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20590,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20591,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20592,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20593,3,000,20,1,44,1,01,2,1,0,0,2,39,165,030902,1023,1,9999,99999,99999999,9,99999,99999999,383167,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,15700,A,01087111,178,3,99999,99999999,+39.5542370,-084.1518702,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03902,2,99999,99999,05042,062,007,01085497,99999,99999999,9,999,99999,99999999,999999,22528,U,99999,U,083AFK,45068 +20594,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20595,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20596,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20597,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20598,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20599,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20600,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20601,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20602,3,000,20,2,57,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20603,3,000,20,2,62,1,01,2,1,0,0,2,25,017,301102,2005,2,9999,99999,99999999,9,99999,99999999,222291,0,0,0,0,0,14460,03,715,99999,99999999,N,00606935,70360,A,00618239,148,1,99999,99999999,+42.6431478,-071.6798975,L,1,15764,75404,71650,1,9,9,99999,9,99999999,00601,1,99999,99999,08790,118,009,00606926,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,001876,01469 +20604,3,000,20,1,48,1,01,1,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20605,3,000,20,1,52,1,01,1,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20606,3,000,20,2,65,1,01,1,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20607,3,000,20,2,65,1,01,1,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20608,3,000,20,2,66,1,01,1,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20609,3,000,20,1,26,2,06,2,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20610,3,000,20,1,37,1,08,2,2,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20611,3,000,20,1,45,1,01,2,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20612,3,000,20,1,47,1,01,2,1,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20613,3,000,20,1,47,1,08,2,2,0,0,2,47,093,003100,1020,1,9999,99999,99999999,9,99999,99999999,32342,0,0,0,0,0,28940,02,999,99999,99999999,A,01639761,90094,N,02464252,315,6,99999,99999999,+36.0193901,-083.8693926,L,1,99999,99999,99999,9,Y,N,40000,A,02404842,01501,3,99999,99999,02220,015,006,01325873,99999,99999999,9,999,99999,99999999,999999,45640,U,99999,U,004872,37914 +20614,3,000,20,1,48,2,01,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20615,3,000,20,1,49,2,06,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20616,3,000,20,1,53,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20617,3,000,20,1,53,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20618,3,000,20,1,53,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20619,3,000,20,1,53,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20620,3,000,20,1,53,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20621,3,000,20,1,55,1,01,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20622,3,000,20,1,55,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20623,3,000,20,1,55,1,02,2,1,0,0,2,36,059,409900,2033,2,9999,99999,99999999,9,99999,99999999,56798,0,0,0,0,0,35620,05,999,99999,99999999,A,00974128,34000,A,00979061,408,2,99999,99999999,+40.6779348,-073.7026238,L,1,35004,99999,99999,9,N,N,53748,S,02389586,03211,1,29430,29520,99999,022,009,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000643,11580 +20624,3,000,20,2,64,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20625,3,000,20,2,65,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20626,3,000,20,2,65,2,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20627,3,000,20,2,65,2,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20628,3,000,20,2,66,2,11,2,2,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20629,3,000,20,2,76,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20630,3,000,20,2,76,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20631,3,000,21,1,56,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20632,3,000,21,1,56,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20633,3,000,21,1,56,1,01,2,1,0,0,2,06,073,016807,2002,2,9999,99999,99999999,9,99999,99999999,86070,0,0,0,0,0,41740,50,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.8339724,-116.9246205,L,1,99999,99999,99999,9,N,N,85992,S,02409614,07307,4,20790,16230,99999,071,038,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92040 +20634,3,000,34,1,29,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20635,3,000,34,1,29,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20636,3,000,34,1,29,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20637,3,000,34,1,29,1,02,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20638,3,000,34,2,22,1,02,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20639,3,000,34,2,25,1,07,2,2,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20640,3,000,34,2,60,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20641,3,000,34,2,63,1,01,2,1,0,0,2,49,035,111702,4005,4,9999,99999,99999999,9,99999,99999999,24501,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7021499,-111.8783545,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20642,3,000,20,1,63,1,03,1,1,0,0,2,49,035,111702,4006,4,9999,99999,99999999,9,99999,99999999,24797,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7012387,-111.8783662,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20643,3,000,20,1,25,1,01,2,1,0,0,2,49,035,111702,4006,4,9999,99999,99999999,9,99999,99999999,24797,0,0,0,0,0,41620,04,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.7012387,-111.8783662,L,1,99999,99999,99999,9,N,N,71070,A,02411941,35015,4,99999,99999,00360,035,003,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,SSL006,84115 +20644,3,000,25,1,26,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20645,3,000,25,1,26,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20646,3,000,25,1,26,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20647,3,000,25,1,26,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20648,3,000,25,1,26,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20649,3,000,25,1,27,1,04,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20650,3,000,25,1,31,1,01,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20651,3,000,25,1,32,1,01,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20652,3,000,25,1,32,1,01,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20653,3,000,25,1,32,1,01,2,1,0,0,2,42,101,003901,4002,4,9999,99999,99999999,9,99999,99999999,6782,0,0,0,0,0,37980,03,999,99999,99999999,C,01209187,60000,F,01215531,428,2,99999,99999999,+39.9267874,-075.1738441,L,1,37964,99999,99999,9,Y,N,60000,A,01215531,03231,1,99999,99999,18990,185,001,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,004813,19145 +20654,3,000,30,1,27,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20655,3,000,30,1,29,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20656,3,000,30,2,23,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20657,3,000,33,2,68,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20658,3,000,34,2,29,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20659,3,000,34,2,65,1,01,2,1,0,0,2,36,083,051701,2082,2,9999,99999,99999999,9,99999,99999999,2645743,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8351200,-073.3842537,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20660,3,000,21,2,28,1,01,2,1,0,0,2,36,083,051701,2083,2,9999,99999,99999999,9,99999,99999999,111403,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8365583,-073.3764273,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20661,3,000,25,1,2,1,01,2,1,0,0,1,36,083,051701,2083,2,9999,99999,99999999,9,99999,99999999,111403,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8365583,-073.3764273,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20662,3,000,25,1,2,1,01,2,1,0,0,1,36,083,051701,2083,2,9999,99999,99999999,9,99999,99999999,111403,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8365583,-073.3764273,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20663,3,000,25,1,6,1,01,2,1,0,0,1,36,083,051701,2083,2,9999,99999,99999999,9,99999,99999999,111403,0,0,0,0,0,10580,19,999,99999,99999999,A,00974140,35463,A,00979072,104,2,99999,99999999,+42.8365583,-073.3764273,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,14760,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000028,12090 +20664,3,000,25,2,24,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20665,3,000,25,2,24,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20666,3,000,25,2,24,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20667,3,000,25,2,26,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20668,3,000,25,2,27,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20669,3,000,25,2,27,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20670,3,000,25,2,32,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20671,3,000,27,1,4,1,08,2,2,0,0,1,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20672,3,000,27,2,22,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20673,3,000,27,2,22,1,01,2,1,0,0,2,46,081,966304,1021,1,9999,99999,99999999,9,99999,99999999,1338063,0,0,0,0,0,43940,00,999,99999,99999999,A,01266996,60020,F,01267588,452,4,99999,99999999,+44.4706237,-103.7985558,L,2,99999,99999,99999,9,Y,N,60020,A,01267588,00100,2,99999,99999,66930,031,031,01785534,99999,99999999,9,999,99999,99999999,999999,83575,U,99999,U,VTD-S2,57783 +20674,3,000,25,2,9,1,05,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20675,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20676,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20677,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20678,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20679,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20680,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20681,3,000,25,2,9,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20682,3,000,25,2,13,2,06,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20683,3,000,25,2,14,1,05,2,1,0,0,1,49,035,113409,3014,3,9999,99999,99999999,9,99999,99999999,20550,0,0,0,0,0,41620,02,999,99999,99999999,A,01448031,93010,S,01939415,482,8,99999,99999999,+40.6831837,-112.0414795,L,1,99999,99999,99999,9,N,N,83470,A,02412231,35013,4,99999,99999,00360,030,001,01455989,99999,99999999,9,999,99999,99999999,999999,78499,U,99999,U,WVC010,84128 +20684,3,000,22,1,62,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20685,3,000,22,2,20,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20686,3,000,22,2,20,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20687,3,000,22,2,23,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20688,3,000,22,2,23,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20689,3,000,22,2,29,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20690,3,000,23,1,27,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20691,3,000,24,1,28,1,01,2,1,0,0,2,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20692,3,000,25,1,0,1,01,2,1,0,0,1,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20693,3,000,25,1,0,2,11,2,2,0,0,1,47,065,011311,1003,1,9999,99999,99999999,9,99999,99999999,508689,0,0,0,0,0,16860,03,999,99999,99999999,A,01639749,91206,N,02464611,174,6,99999,99999999,+35.0474691,-085.1243248,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03402,3,99999,99999,01590,029,011,01325873,99999,99999999,9,999,99999,99999999,999999,15832,U,99999,U,003441,37421 +20694,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20695,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20696,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20697,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20698,3,000,20,2,63,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20699,3,000,20,2,64,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20700,3,000,21,2,37,2,06,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20701,3,000,21,2,37,2,06,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20702,3,000,21,2,56,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20703,3,000,21,2,56,1,01,2,1,0,0,2,42,017,101611,1013,1,9999,99999,99999999,9,99999,99999999,51044,0,0,0,0,0,37980,01,999,99999,99999999,A,01209173,80952,A,01216035,428,2,99999,99999999,+40.2058698,-075.1264785,L,1,33874,99999,99999,9,9,9,99999,9,99999999,03013,1,99999,99999,05190,029,012,01779798,99999,99999999,9,999,99999,99999999,999999,69076,U,99999,U,002680,18974 +20704,3,000,25,2,15,1,04,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20705,3,000,25,2,15,1,04,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20706,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20707,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20708,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20709,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20710,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20711,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20712,3,000,25,2,16,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20713,3,000,25,2,17,1,02,2,1,0,0,1,48,375,015000,6000,6,9999,99999,99999999,9,99999,99999999,2353017,0,0,0,0,0,11100,13,999,99999,99999999,A,01383973,90065,S,01938488,108,7,99999,99999999,+35.2442846,-101.8046793,L,1,99999,99999,99999,9,Y,N,03000,A,02409694,00200,3,99999,99999,08130,087,031,01779801,99999,99999999,9,999,99999,99999999,999999,01927,U,99999,U,000425,79107 +20714,3,000,30,2,18,1,02,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20715,3,000,30,2,26,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20716,3,000,30,2,26,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20717,3,000,34,2,21,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20718,3,000,34,2,23,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20719,3,000,36,2,23,1,01,2,1,0,0,2,20,111,000300,2020,2,9999,99999,99999999,9,99999,99999999,20559,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059356,-096.2016054,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20720,3,000,20,2,26,1,01,1,1,0,0,2,20,111,000300,2021,2,9999,99999,99999999,9,99999,99999999,9483,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059220,-096.2024551,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20721,3,000,20,2,26,1,01,1,1,0,0,2,20,111,000300,2021,2,9999,99999,99999999,9,99999,99999999,9483,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059220,-096.2024551,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20722,3,000,20,2,27,1,01,1,1,0,0,2,20,111,000300,2021,2,9999,99999,99999999,9,99999,99999999,9483,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059220,-096.2024551,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20723,3,000,20,2,27,1,01,1,1,0,0,2,20,111,000300,2021,2,9999,99999,99999999,9,99999,99999999,9483,0,0,0,0,0,21380,01,999,99999,99999999,A,00485020,21275,F,00485571,999,4,99999,99999999,+38.4059220,-096.2024551,L,2,99999,99999,99999,9,Y,N,21275,A,00485571,01101,2,99999,99999,05940,060,017,00481813,99999,99999999,9,999,99999,99999999,999999,27523,U,99999,U,000130,66801 +20724,3,000,20,1,63,1,04,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20725,3,000,20,1,64,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20726,3,000,20,1,67,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20727,3,000,20,1,67,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20728,3,000,20,1,70,1,02,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20729,3,000,20,1,70,1,09,2,2,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20730,3,000,20,1,73,1,09,2,2,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20731,3,000,20,1,73,1,09,2,2,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20732,3,000,20,1,76,1,01,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20733,3,000,20,1,79,1,04,2,1,0,0,2,51,107,610503,3001,3,9999,99999,99999999,9,99999,99999999,518907,41189,0,0,41189,0,47900,10,999,99999,99999999,A,01480141,90656,N,01927131,548,5,99999,99999999,+39.1105798,-077.5140086,B,1,47894,99999,99999,9,9,9,99999,9,99999999,10703,3,99999,99999,02250,010,033,01779803,99999,99999999,9,999,99999,99999999,999999,92242,U,99999,U,000414,20176 +20734,3,000,20,2,27,2,11,2,2,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20735,3,000,20,2,28,1,19,2,2,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20736,3,000,20,2,28,2,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20737,3,000,20,2,28,2,11,2,2,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20738,3,000,20,2,28,2,11,2,2,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20739,3,000,20,2,29,1,05,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20740,3,000,20,2,29,2,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20741,3,000,20,2,30,1,02,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20742,3,000,20,2,33,1,02,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20743,3,000,20,2,35,1,01,2,1,0,0,2,53,053,071412,1001,1,9999,99999,99999999,9,99999,99999999,229460,0,0,0,0,0,42660,10,999,99999,99999999,A,01529159,93376,S,01939650,500,9,99999,99999999,+47.1031681,-122.3969679,L,1,45104,99999,99999,9,N,N,66255,S,02408784,25306,4,99999,99999,00480,029,029,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,53335,U,029673,98445 +20744,3,000,20,1,49,1,02,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20745,3,000,20,1,69,1,02,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20746,3,000,20,2,29,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20747,3,000,20,2,29,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20748,3,000,20,2,51,1,06,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20749,3,000,20,2,53,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20750,3,000,20,2,53,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20751,3,000,20,2,53,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20752,3,000,20,2,54,1,06,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20753,3,000,20,2,65,1,01,2,1,0,0,2,39,093,070300,3015,3,9999,99999,99999999,9,99999,99999999,13696,0,0,0,0,0,17460,04,999,99999,99999999,A,01074059,25256,F,01086508,184,3,99999,99999999,+41.3953692,-082.1198625,L,1,99999,99999,99999,9,Y,N,25256,A,01086508,00601,2,99999,99999,04394,055,013,01085497,99999,99999999,9,999,99999,99999999,999999,51364,U,99999,U,047ABY,44035 +20754,3,000,20,2,59,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20755,3,000,20,2,59,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20756,3,000,20,2,59,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20757,3,000,21,2,31,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20758,3,000,21,2,31,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20759,3,000,21,2,33,1,01,2,1,0,0,2,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20760,3,000,25,1,6,1,01,2,1,0,0,1,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20761,3,000,25,1,6,1,01,2,1,0,0,1,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20762,3,000,25,1,14,1,01,2,1,0,0,1,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20763,3,000,25,1,14,1,01,2,1,0,0,1,19,019,950300,2015,2,9999,99999,99999999,9,99999,99999999,11261,0,0,0,0,0,99999,01,999,99999,99999999,A,00465199,93294,G,00468506,999,4,99999,99999999,+42.4779144,-092.0671196,L,9,99999,99999,99999,9,N,N,39585,A,02395468,00700,2,99999,99999,15330,064,032,01779785,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019012,50648 +20764,3,000,25,2,8,2,06,2,1,0,0,1,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20765,3,000,25,2,22,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20766,3,000,25,2,22,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20767,3,000,25,2,22,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20768,3,000,25,2,22,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20769,3,000,25,2,23,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20770,3,000,25,2,23,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20771,3,000,25,2,23,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20772,3,000,25,2,23,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20773,3,000,25,2,23,2,06,2,1,0,0,2,06,037,532101,1016,1,9999,99999,99999999,9,99999,99999999,54274,0,0,0,0,0,31080,38,999,99999,99999999,A,00277283,93200,S,01935325,348,9,99999,99999999,+34.0056828,-118.1033828,L,1,31084,99999,99999,9,N,N,48816,A,02411144,03740,4,99999,99999,25470,058,032,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90640 +20774,3,000,20,1,72,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20775,3,000,20,1,72,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20776,3,000,20,1,72,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20777,3,000,20,1,73,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20778,3,000,20,2,52,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20779,3,000,20,2,52,1,01,1,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20780,3,000,20,1,29,1,01,2,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20781,3,000,20,1,29,1,01,2,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20782,3,000,20,1,29,1,01,2,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20783,3,000,20,1,29,1,01,2,1,0,0,2,45,007,011001,3054,3,9999,99999,99999999,9,99999,99999999,116942,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.5239147,-082.7687459,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01001,3,99999,99999,00900,008,003,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000033,29625 +20784,3,000,20,2,33,2,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20785,3,000,20,2,34,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20786,3,000,20,2,35,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20787,3,000,20,2,35,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20788,3,000,20,2,35,1,09,2,2,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20789,3,000,20,2,35,1,09,2,2,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20790,3,000,20,2,35,1,09,2,2,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20791,3,000,20,2,36,1,04,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20792,3,000,20,2,37,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20793,3,000,20,2,37,1,01,2,1,0,0,2,53,011,041010,2006,2,9999,99999,99999999,9,99999,99999999,173425,0,0,0,0,0,38900,03,999,99999,99999999,A,01531820,93600,S,01939664,440,9,99999,99999999,+45.6695165,-122.6611662,L,1,99999,99999,99999,9,N,N,30305,S,02629813,21104,4,99999,99999,09270,049,049,01779804,99999,99999999,9,999,99999,99999999,999999,71317,U,74060,U,000390,98665 +20794,3,000,20,2,60,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20795,3,000,20,2,60,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20796,3,000,20,2,62,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20797,3,000,20,2,63,1,01,1,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20798,3,000,20,1,21,1,02,2,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20799,3,000,20,1,22,1,02,2,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20800,3,000,20,1,22,1,02,2,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20801,3,000,20,1,25,1,01,2,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20802,3,000,20,1,25,1,02,2,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20803,3,000,20,1,25,1,02,2,1,0,0,2,27,123,041107,1005,1,9999,99999,99999999,9,99999,99999999,522508,23596,0,0,23596,0,33460,04,999,99999,99999999,A,00659507,45430,F,02395187,378,4,99999,99999999,+45.0432451,-093.1945025,B,1,99999,99999,99999,9,N,N,45430,A,02395187,01501,2,99999,99999,22950,41B,041,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000330,55112 +20804,3,000,32,1,40,1,02,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20805,3,000,33,1,2,2,06,2,1,0,0,1,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20806,3,000,34,2,27,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20807,3,000,34,2,27,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20808,3,000,34,2,27,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20809,3,000,36,1,44,1,01,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20810,3,000,36,2,93,1,04,2,1,0,0,2,09,009,141000,3004,3,9999,99999,99999999,9,99999,99999999,44853,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3199265,-072.9616062,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20811,3,000,20,1,56,1,01,1,1,0,0,2,09,009,141000,3005,3,9999,99999,99999999,9,99999,99999999,51270,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3202604,-072.9629458,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20812,3,000,20,1,56,1,01,1,1,0,0,2,09,009,141000,3005,3,9999,99999,99999999,9,99999,99999999,51270,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3202604,-072.9629458,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20813,3,000,20,1,56,1,01,1,1,0,0,2,09,009,141000,3005,3,9999,99999,99999999,9,99999,99999999,51270,0,0,0,0,0,35300,03,720,99999,99999999,N,00212798,52070,C,00213471,408,1,99999,99999999,+41.3202604,-072.9629458,L,1,99999,99999,75700,1,Y,Y,52000,A,02378285,20601,1,99999,99999,02790,092,010,01779780,99999,99999999,9,999,99999,99999999,999999,62407,U,99999,U,09-123,06515 +20814,3,000,21,1,65,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20815,3,000,21,1,83,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20816,3,000,21,2,29,1,02,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20817,3,000,21,2,37,1,04,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20818,3,000,21,2,37,1,04,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20819,3,000,21,2,38,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20820,3,000,21,2,38,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20821,3,000,21,2,39,1,01,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20822,3,000,21,2,40,1,04,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20823,3,000,21,2,40,1,04,2,1,0,0,2,53,033,024800,2026,2,9999,99999,99999999,9,99999,99999999,49950,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5707582,-122.1478474,L,1,42644,99999,99999,9,Y,N,05210,A,02409821,23304,4,99999,99999,00390,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,05210,U,000017,98006 +20824,3,000,22,1,68,1,02,2,1,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20825,3,000,25,1,14,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20826,3,000,25,1,14,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20827,3,000,25,1,14,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20828,3,000,25,1,15,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20829,3,000,25,1,15,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20830,3,000,25,1,15,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20831,3,000,25,1,19,1,07,2,2,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20832,3,000,25,1,19,1,07,2,2,0,0,2,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20833,3,000,25,2,0,1,01,2,1,0,0,1,21,155,970300,2022,2,9999,99999,99999999,9,99999,99999999,53713,0,0,0,0,0,99999,01,999,99999,99999999,A,00516921,93032,S,01937235,999,6,99999,99999999,+37.5614012,-085.3297984,L,9,99999,99999,99999,9,9,9,99999,9,99999999,01200,3,99999,99999,03780,024,014,01779786,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,00E102,40033 +20834,3,000,20,2,43,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20835,3,000,20,2,43,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20836,3,000,20,2,43,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20837,3,000,20,2,44,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20838,3,000,20,2,44,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20839,3,000,20,2,44,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20840,3,000,20,2,47,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20841,3,000,20,2,47,1,02,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20842,3,000,20,2,48,2,03,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20843,3,000,20,2,51,1,04,2,1,0,0,2,05,119,004224,1010,1,9999,99999,99999999,9,99999,99999999,213929,1810,0,0,1810,0,30780,02,999,99999,99999999,A,00069177,90300,N,00069013,340,7,99999,99999999,+34.7220828,-092.4098916,B,1,99999,99999,99999,9,Y,N,41000,A,02404939,01502,3,99999,99999,09000,030,031,00068085,99999,99999999,9,999,99999,99999999,999999,50392,U,99999,U,000077,72211 +20844,3,000,30,2,7,2,11,2,2,0,0,1,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20845,3,000,32,1,25,2,06,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20846,3,000,32,1,25,2,06,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20847,3,000,32,1,27,2,01,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20848,3,000,32,1,36,2,11,2,2,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20849,3,000,32,2,25,2,01,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20850,3,000,34,1,28,2,06,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20851,3,000,34,1,28,2,06,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20852,3,000,34,1,28,2,06,2,1,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20853,3,000,34,1,49,2,11,2,2,0,0,2,48,439,104803,3025,3,9999,99999,99999999,9,99999,99999999,16270,0,0,0,0,0,19100,33,999,99999,99999999,A,01384005,91380,S,01938753,206,7,99999,99999999,+32.6997672,-097.3444652,L,1,23104,99999,99999,9,Y,N,27000,A,02410531,02513,3,99999,99999,19700,090,010,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,004155,76110 +20854,3,000,25,1,19,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20855,3,000,25,1,19,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20856,3,000,25,1,19,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20857,3,000,25,1,19,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20858,3,000,25,1,20,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20859,3,000,25,1,20,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20860,3,000,25,1,20,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20861,3,000,25,1,20,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20862,3,000,25,1,21,2,11,2,2,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20863,3,000,25,1,22,2,01,2,1,0,0,2,12,086,000716,1000,1,9999,99999,99999999,9,99999,99999999,242222,0,0,0,0,0,33100,25,999,99999,99999999,A,00295755,91482,S,01935796,370,5,99999,99999999,+25.8594682,-080.3012119,L,1,33124,99999,99999,9,N,N,30000,A,02404689,08609,3,99999,99999,00390,110,036,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000297,33012 +20864,3,000,20,1,72,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20865,3,000,20,1,74,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20866,3,000,20,1,75,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20867,3,000,20,1,76,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20868,3,000,20,1,78,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20869,3,000,20,1,85,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20870,3,000,20,1,85,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20871,3,000,20,1,86,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20872,3,000,20,2,22,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20873,3,000,20,2,22,1,01,2,1,0,0,2,48,485,011500,2007,2,9999,99999,99999999,9,99999,99999999,1500113,0,0,0,0,0,48660,13,999,99999,99999999,A,01384028,94215,S,01939325,999,7,99999,99999999,+33.8594760,-098.4774076,L,1,99999,99999,99999,9,Y,N,79000,A,02412261,00700,3,99999,99999,45780,069,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000109,76302 +20874,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20875,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20876,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20877,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20878,3,000,25,2,10,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20879,3,000,25,2,10,1,22,2,3,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20880,3,000,25,2,11,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20881,3,000,25,2,11,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20882,3,000,25,2,11,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20883,3,000,25,2,11,1,01,2,1,0,0,1,45,015,020602,3003,3,9999,99999,99999999,9,99999,99999999,1834660,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,92210,S,01938351,999,5,99999,99999999,+33.0722593,-080.0082505,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02201,3,99999,99999,01170,015,037,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000085,29461 +20884,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20885,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20886,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20887,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20888,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20889,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20890,3,000,25,1,14,1,01,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20891,3,000,25,1,14,1,02,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20892,3,000,25,1,14,1,02,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20893,3,000,25,1,14,1,02,2,1,0,0,1,01,097,006303,2011,2,9999,99999,99999999,9,99999,99999999,835045,8976,0,0,8976,0,33660,01,999,99999,99999999,A,00161575,92889,S,00165895,380,6,99999,99999999,+30.7683723,-088.2888597,B,1,99999,99999,99999,9,9,9,99999,9,99999999,02801,3,99999,99999,02370,102,034,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000018,36575 +20894,3,000,25,2,6,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20895,3,000,25,2,6,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20896,3,000,25,2,6,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20897,3,000,25,2,6,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20898,3,000,25,2,8,2,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20899,3,000,25,2,8,2,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20900,3,000,25,2,14,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20901,3,000,25,2,14,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20902,3,000,25,2,14,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20903,3,000,25,2,14,1,01,2,1,0,0,1,08,035,014013,5017,5,9999,99999,99999999,9,99999,99999999,25093,0,0,0,0,0,19740,04,999,99999,99999999,A,00198133,92850,S,01935543,216,8,99999,99999999,+39.3908142,-104.8228675,L,1,99999,99999,99999,9,N,N,12415,A,02413179,00902,4,99999,99999,03450,045,004,01779779,99999,99999999,9,999,99999,99999999,999999,14563,U,99999,U,035354,80108 +20904,3,000,25,1,22,1,02,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20905,3,000,25,1,22,1,02,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20906,3,000,25,1,22,1,09,2,2,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20907,3,000,25,1,22,1,09,2,2,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20908,3,000,25,1,24,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20909,3,000,25,1,24,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20910,3,000,25,1,24,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20911,3,000,25,1,24,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20912,3,000,25,1,24,2,06,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20913,3,000,25,1,26,1,04,2,1,0,0,2,06,071,000104,2002,2,9999,99999,99999999,9,99999,99999999,243997,0,0,0,0,0,40140,39,999,99999,99999999,A,00277300,92260,S,01935231,348,9,99999,99999999,+34.0068908,-117.7422701,L,1,99999,99999,99999,9,N,N,13214,A,02409454,07119,4,99999,99999,08460,055,029,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,91709 +20914,3,000,22,1,51,2,11,2,2,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20915,3,000,22,1,51,2,11,2,2,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20916,3,000,22,2,33,2,06,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20917,3,000,25,1,7,2,02,2,1,0,0,1,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20918,3,000,25,1,13,1,02,2,1,0,0,1,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20919,3,000,25,1,16,1,02,2,1,0,0,1,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20920,3,000,25,1,18,2,01,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20921,3,000,25,1,18,2,01,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20922,3,000,25,1,18,2,01,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20923,3,000,25,1,19,2,06,2,1,0,0,2,13,059,130300,2006,2,9999,99999,99999999,9,99999,99999999,10851,0,0,0,0,0,12020,09,999,03436,02407404,C,01672699,90138,S,01936088,122,5,99999,99999999,+33.9995894,-083.4245741,L,1,99999,99999,99999,9,Y,N,03440,F,02407405,01800,3,99999,99999,01170,118,047,01705317,99999,99999999,9,999,99999,99999999,999999,03763,U,99999,U,00005D,30607 +20924,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20925,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20926,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20927,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20928,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20929,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20930,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20931,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20932,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20933,5,103,37,1,48,1,01,0,1,1,1,2,48,255,970301,1040,1,9999,99999,99999999,9,99999,99999999,1814653,9522,0,0,9522,0,99999,15,999,99999,99999999,A,01383913,91995,S,01938880,999,7,99999,99999999,+28.7785503,-097.8468847,B,9,99999,99999,99999,9,9,9,99999,9,99999999,05500,3,99999,99999,25440,017,021,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000004,78119 +20934,3,000,25,2,40,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20935,3,000,25,2,43,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20936,3,000,27,2,11,2,06,2,1,0,0,1,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20937,3,000,27,2,28,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20938,3,000,27,2,28,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20939,3,000,27,2,28,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20940,3,000,28,1,26,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20941,3,000,28,1,27,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20942,3,000,28,1,27,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20943,3,000,28,1,27,1,04,2,1,0,0,2,36,081,088902,1001,1,9999,99999,99999999,9,99999,99999999,33850,0,0,0,0,0,35620,06,999,99999,99999999,C,00974139,60323,G,00979404,408,2,99999,99999999,+40.7707531,-073.8322315,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04407,1,99999,99999,20580,040,011,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001424,11354 +20944,3,000,20,1,55,1,07,1,2,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20945,3,000,20,2,69,1,04,1,1,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20946,3,000,20,2,73,2,11,1,2,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20947,3,000,20,2,74,2,11,1,2,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20948,3,000,20,2,80,1,07,1,2,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20949,3,000,20,2,81,1,01,1,1,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20950,3,000,20,2,81,1,01,1,1,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20951,3,000,20,2,84,1,01,1,1,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20952,3,000,20,2,84,1,01,1,1,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20953,3,000,20,2,84,1,01,1,1,0,0,2,06,013,374000,1011,1,9999,99999,99999999,9,99999,99999999,28952,0,0,0,0,0,41860,11,999,99999,99999999,A,01675903,93620,S,01935368,488,9,99999,99999999,+37.9404212,-122.3377413,L,1,36084,99999,99999,9,N,N,60620,A,02410939,01301,4,99999,99999,32550,015,009,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94804 +20954,3,000,20,2,65,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20955,3,000,20,2,65,1,02,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20956,3,000,20,2,65,1,02,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20957,3,000,20,2,65,1,02,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20958,3,000,20,2,65,2,06,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20959,3,000,20,2,66,2,11,1,2,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20960,3,000,20,2,67,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20961,3,000,20,2,67,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20962,3,000,20,2,67,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20963,3,000,20,2,67,1,01,1,1,0,0,2,36,087,013102,3019,3,9999,99999,99999999,9,99999,99999999,6810,0,0,0,0,0,35620,17,999,99999,99999999,A,00974142,55211,A,00979316,408,2,99999,99999999,+41.0897339,-073.9190149,L,1,35614,99999,99999,9,N,N,54100,A,02391030,03002,1,99999,99999,21480,097,038,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000108,10960 +20964,3,000,20,2,73,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20965,3,000,20,2,83,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20966,3,000,20,2,87,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20967,3,000,21,1,54,2,03,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20968,3,000,21,1,54,2,03,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20969,3,000,21,1,66,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20970,3,000,21,1,66,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20971,3,000,21,1,66,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20972,3,000,21,1,66,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20973,3,000,21,1,85,1,01,2,1,0,0,2,26,111,290500,2004,2,9999,99999,99999999,9,99999,99999999,423557,0,0,0,0,0,33220,04,999,99999,99999999,A,01622998,53800,A,01626737,474,3,99999,99999999,+43.5875847,-084.2713922,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01400,2,99999,99999,07320,098,036,01779789,99999,99999999,9,999,99999,99999999,999999,56980,U,99999,U,111045,48640 +20974,3,000,25,2,8,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20975,3,000,25,2,8,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20976,3,000,25,2,10,1,01,2,1,0,0,1,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20977,3,000,25,2,26,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20978,3,000,25,2,26,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20979,3,000,25,2,29,1,08,2,2,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20980,3,000,25,2,31,1,08,2,2,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20981,3,000,25,2,35,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20982,3,000,25,2,36,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20983,3,000,25,2,36,1,01,2,1,0,0,2,45,077,010901,2026,2,9999,99999,99999999,9,99999,99999999,64222,0,0,0,0,0,24860,03,999,99999,99999999,A,01248015,90936,S,01938252,273,5,99999,99999999,+34.8000198,-082.5889413,L,1,99999,99999,99999,9,N,N,21985,A,02403530,00201,3,99999,99999,03330,005,002,01779799,99999,99999999,9,999,99999,99999999,999999,35461,U,99999,U,000158,29642 +20984,3,000,25,1,25,1,01,2,1,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20985,3,000,25,1,25,1,01,2,1,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20986,3,000,25,1,53,1,04,2,1,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20987,3,000,25,2,1,2,01,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20988,3,000,25,2,2,2,49,2,4,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20989,3,000,25,2,4,1,04,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20990,3,000,25,2,9,2,01,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20991,3,000,25,2,9,2,01,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20992,3,000,25,2,14,1,01,2,1,0,0,1,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20993,3,000,25,2,18,1,01,2,1,0,0,2,41,051,005902,2003,2,9999,99999,99999999,9,99999,99999999,7349,0,0,0,0,0,38900,03,999,99999,99999999,A,01135861,92520,S,02585640,440,9,99999,99999999,+45.4960667,-122.6702931,L,1,99999,99999,99999,9,Y,N,59000,A,02411471,05114,4,99999,99999,10040,036,018,01155107,99999,99999999,9,999,99999,99999999,999999,71317,U,59001,U,,97239 +20994,3,000,21,1,49,1,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +20995,3,000,21,1,60,2,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +20996,3,000,21,1,61,2,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +20997,3,000,21,1,64,1,02,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +20998,3,000,21,1,68,1,02,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +20999,3,000,21,2,33,1,02,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +21000,3,000,21,2,57,2,28,2,3,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +21001,3,000,22,1,29,2,01,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +21002,3,000,22,1,42,1,02,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +21003,3,000,22,2,27,1,06,2,1,0,0,2,04,013,061039,1017,1,9999,99999,99999999,9,99999,99999999,13232,0,0,0,0,0,38060,08,999,99999,99999999,A,00037026,92601,S,01934968,429,8,99999,99999999,+33.5920457,-112.3753180,L,1,99999,99999,99999,9,N,N,71510,A,02412016,00131,4,99999,99999,02690,021,021,01779777,99999,99999999,9,999,99999,99999999,999999,69184,U,99999,U,000342,85379 +21004,3,000,20,2,65,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21005,3,000,20,2,65,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21006,3,000,20,2,66,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21007,3,000,20,2,66,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21008,3,000,21,1,31,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21009,3,000,21,2,23,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21010,3,000,21,2,68,1,11,2,2,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21011,3,000,21,2,69,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21012,3,000,21,2,69,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21013,3,000,22,1,46,1,01,2,1,0,0,2,51,770,002800,3012,3,9999,99999,99999999,9,99999,99999999,100919,0,0,0,0,0,40220,06,999,99999,99999999,F,01498439,95363,F,01498439,999,5,99999,99999999,+37.2287427,-079.9284480,L,1,99999,99999,99999,9,Y,N,68000,A,01498439,77001,3,99999,99999,03300,017,021,01779803,99999,99999999,9,999,99999,99999999,999999,75421,U,99999,U,000013,24014 +21014,3,000,20,2,61,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21015,3,000,20,2,61,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21016,3,000,20,2,61,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21017,3,000,20,2,61,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21018,3,000,20,2,65,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21019,3,000,21,1,60,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21020,3,000,21,1,60,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21021,3,000,21,1,61,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21022,3,000,22,2,45,1,01,2,1,0,0,2,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21023,3,000,25,1,9,2,08,2,2,0,0,1,29,107,090402,3013,3,9999,99999,99999999,9,99999,99999999,1745083,42936,0,0,42936,0,28140,05,999,99999,99999999,A,00758508,18406,N,00766871,312,4,99999,99999999,+39.0580257,-093.7174890,B,1,99999,99999,99999,9,9,9,99999,9,99999999,00800,2,99999,99999,14400,053,021,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64037 +21024,3,000,25,2,34,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21025,3,000,25,2,51,1,02,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21026,3,000,25,2,58,1,01,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21027,3,000,26,2,11,1,02,2,1,0,0,1,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21028,3,000,26,2,29,1,04,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21029,3,000,27,1,14,1,02,2,1,0,0,1,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21030,3,000,27,1,18,2,06,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21031,3,000,27,1,19,2,06,2,1,0,0,2,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21032,3,000,28,1,17,1,04,2,1,0,0,1,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21033,3,000,28,1,17,1,04,2,1,0,0,1,06,067,004801,1018,1,9999,99999,99999999,9,99999,99999999,106560,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.5072709,-121.4317705,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06714,4,99999,99999,33840,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95828 +21034,3,000,21,1,83,1,04,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21035,3,000,21,2,31,2,11,2,2,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21036,3,000,21,2,31,2,11,2,2,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21037,3,000,21,2,31,2,11,2,2,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21038,3,000,21,2,35,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21039,3,000,21,2,35,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21040,3,000,21,2,35,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21041,3,000,21,2,35,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21042,3,000,21,2,35,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21043,3,000,21,2,35,1,01,2,1,0,0,2,06,037,206051,2018,2,9999,99999,99999999,9,99999,99999999,111855,0,0,0,0,0,31080,34,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0391786,-118.2354901,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03744,4,99999,99999,22710,053,024,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90013 +21044,3,000,21,1,66,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21045,3,000,21,1,66,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21046,3,000,21,1,77,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21047,3,000,21,1,77,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21048,3,000,21,1,77,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21049,3,000,21,2,23,1,02,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21050,3,000,21,2,23,1,02,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21051,3,000,21,2,31,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21052,3,000,21,2,31,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21053,3,000,21,2,34,1,01,2,1,0,0,2,45,007,000500,1006,1,9999,99999,99999999,9,99999,99999999,2202128,0,0,0,0,0,24860,03,999,99999,99999999,A,01247981,90065,S,01938185,273,5,99999,99999999,+34.4843836,-082.6141331,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,3,99999,99999,00900,007,004,01779799,99999,99999999,9,999,99999,99999999,999999,02420,U,99999,U,000081,29621 +21054,3,000,33,1,24,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21055,3,000,33,1,24,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21056,3,000,33,1,24,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21057,3,000,33,1,24,2,06,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21058,3,000,33,1,52,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21059,3,000,33,1,85,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21060,3,000,33,1,85,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21061,3,000,33,1,85,1,04,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21062,3,000,33,2,0,1,04,2,1,0,0,1,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21063,3,000,33,2,30,2,06,2,1,0,0,2,06,001,440304,2003,2,9999,99999,99999999,9,99999,99999999,126885,0,0,0,0,0,41860,15,999,99999,99999999,A,01675839,91070,S,01935111,488,9,99999,99999999,+37.5877828,-122.0768118,L,1,36084,99999,99999,9,N,N,81204,A,02412130,00117,4,99999,99999,26910,020,010,01779778,99999,99999999,9,999,99999,99999999,999999,78904,U,99999,U,,94587 +21064,3,000,20,1,64,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21065,3,000,20,1,64,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21066,3,000,20,1,64,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21067,3,000,20,1,68,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21068,3,000,20,1,69,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21069,3,000,20,1,69,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21070,3,000,20,2,66,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21071,3,000,20,2,66,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21072,3,000,20,2,66,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21073,3,000,20,2,66,1,01,2,1,0,0,2,05,063,490101,2092,2,9999,99999,99999999,9,99999,99999999,4265056,0,0,0,0,0,12900,01,999,99999,99999999,A,00069163,90994,N,01954008,999,7,99999,99999999,+35.8388175,-091.7151662,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00400,3,99999,99999,00019,062,019,00068085,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,72501 +21074,3,000,34,1,18,2,06,2,1,0,0,2,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21075,3,000,34,1,27,1,08,2,2,0,0,2,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21076,3,000,34,2,0,1,01,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21077,3,000,36,2,16,2,06,2,1,0,0,1,12,095,016301,1025,1,9999,99999,99999999,9,99999,99999999,36625,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6045945,-081.3140991,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21078,3,000,20,1,31,1,04,1,1,0,0,2,12,095,016301,1026,1,9999,99999,99999999,9,99999,99999999,24139,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6033955,-081.3140556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21079,3,000,20,1,33,1,04,1,1,0,0,2,12,095,016301,1026,1,9999,99999,99999999,9,99999,99999999,24139,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6033955,-081.3140556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21080,3,000,20,1,33,1,04,1,1,0,0,2,12,095,016301,1026,1,9999,99999,99999999,9,99999,99999999,24139,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6033955,-081.3140556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21081,3,000,20,1,62,1,01,1,1,0,0,2,12,095,016301,1026,1,9999,99999,99999999,9,99999,99999999,24139,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6033955,-081.3140556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21082,3,000,20,1,62,1,01,1,1,0,0,2,12,095,016301,1026,1,9999,99999,99999999,9,99999,99999999,24139,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6033955,-081.3140556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21083,3,000,20,1,63,1,01,1,1,0,0,2,12,095,016301,1026,1,9999,99999,99999999,9,99999,99999999,24139,0,0,0,0,0,36740,07,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.6033955,-081.3140556,L,1,99999,99999,99999,9,9,9,99999,9,99999999,09507,3,99999,99999,01440,030,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000530,32792 +21084,3,000,20,1,41,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21085,3,000,20,1,42,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21086,3,000,20,1,42,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21087,3,000,20,1,42,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21088,3,000,20,1,64,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21089,3,000,20,1,64,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21090,3,000,20,1,64,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21091,3,000,20,1,64,1,01,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21092,3,000,20,2,34,2,02,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21093,3,000,20,2,34,2,02,2,1,0,0,2,41,047,001100,2000,2,9999,99999,99999999,9,99999,99999999,17406,0,0,0,0,0,41420,05,999,99999,99999999,A,01135859,92737,S,01938109,440,9,99999,99999999,+44.9042783,-123.0224824,L,1,99999,99999,99999,9,Y,N,64900,A,02411764,04704,4,99999,99999,10820,019,010,01155107,99999,99999999,9,999,99999,99999999,999999,78229,U,64902,U,,97302 +21094,3,000,20,1,79,1,01,1,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21095,3,000,20,1,79,1,01,1,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21096,3,000,20,1,43,1,03,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21097,3,000,20,1,68,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21098,3,000,20,1,69,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21099,3,000,21,1,54,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21100,3,000,21,2,60,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21101,3,000,21,2,60,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21102,3,000,21,2,61,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21103,3,000,21,2,67,1,01,2,1,0,0,2,27,095,970200,3017,3,2270,42200,02419017,R,99999,99999999,2562765,0,0,0,0,0,33460,08,999,99999,99999999,A,00659493,32516,A,00664603,378,4,99999,99999999,+46.0738893,-093.7668759,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01200,2,99999,99999,25050,15A,015,00662849,99999,99999999,B,999,99999,99999999,T00300,99999,9,99999,R,000060,56359 +21104,3,000,22,1,25,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21105,3,000,22,1,27,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21106,3,000,22,1,29,1,01,2,1,0,0,2,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21107,3,000,25,1,10,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21108,3,000,25,1,14,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21109,3,000,25,1,14,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21110,3,000,25,1,14,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21111,3,000,25,1,14,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21112,3,000,25,1,14,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21113,3,000,25,1,14,1,01,2,1,0,0,1,12,101,031805,2005,2,9999,99999,99999999,9,99999,99999999,287427,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4256791,-082.5660235,L,1,99999,99999,99999,9,N,N,65385,S,02402843,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000048,34610 +21114,3,000,25,2,29,1,09,2,2,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21115,3,000,25,2,36,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21116,3,000,25,2,36,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21117,3,000,25,2,36,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21118,3,000,25,2,39,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21119,3,000,29,2,92,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21120,3,000,36,1,50,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21121,3,000,36,1,50,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21122,3,000,36,1,50,1,01,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21123,3,000,36,2,45,2,06,2,1,0,0,2,36,103,147401,1004,1,9999,99999,99999999,9,99999,99999999,45321,0,0,0,0,0,35620,02,999,99999,99999999,A,00974149,38000,A,00979097,408,2,99999,99999999,+40.7402202,-073.2017569,L,1,35004,99999,99999,9,N,N,37869,S,02389974,03311,1,99999,99999,15540,007,004,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000778,11751 +21124,5,301,37,2,89,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21125,5,301,37,2,89,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21126,5,301,37,2,89,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21127,5,301,37,2,89,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21128,5,301,37,2,89,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21129,5,301,37,2,89,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21130,5,301,37,2,90,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21131,5,301,37,2,90,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21132,5,301,37,2,90,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21133,5,301,37,2,91,1,01,0,1,1,3,2,12,031,016804,2014,2,9999,99999,99999999,9,99999,99999999,480191,5630,0,0,5630,0,27260,04,999,99999,99999999,C,00293656,91642,S,02583397,300,5,99999,99999999,+30.1467520,-081.6369150,B,1,99999,99999,99999,9,Y,N,35000,A,02404783,03107,3,99999,99999,00480,016,004,00294478,99999,99999999,9,999,99999,99999999,999999,42346,U,99999,U,000102,32223 +21134,3,000,20,1,37,2,02,1,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21135,3,000,20,1,39,2,02,1,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21136,3,000,21,2,38,1,02,2,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21137,3,000,21,2,38,1,02,2,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21138,3,000,21,2,38,1,02,2,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21139,3,000,21,2,38,1,02,2,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21140,3,000,25,1,1,1,03,2,1,0,0,1,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21141,3,000,25,2,35,1,01,2,1,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21142,3,000,26,1,4,1,02,2,1,0,0,1,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21143,3,000,31,2,63,2,11,2,2,0,0,2,51,760,010900,4001,4,9999,99999,99999999,9,99999,99999999,46622,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5602407,-077.4135755,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,071,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000604,23223 +21144,3,000,20,1,87,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21145,3,000,20,1,87,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21146,3,000,20,1,90,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21147,3,000,20,2,27,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21148,3,000,20,2,27,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21149,3,000,20,2,27,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21150,3,000,20,2,29,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21151,3,000,20,2,29,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21152,3,000,20,2,35,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21153,3,000,20,2,35,1,01,2,1,0,0,2,08,097,000101,2020,2,9999,99999,99999999,9,99999,99999999,11684869,0,0,0,0,0,24060,03,999,99999,99999999,A,00198164,93344,S,01935569,233,8,99999,99999999,+39.1910500,-106.9228514,L,2,99999,99999,99999,9,N,N,71755,A,02413302,00200,4,99999,99999,02280,061,005,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,097006,81615 +21154,3,000,20,2,63,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21155,3,000,20,2,63,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21156,3,000,21,1,41,2,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21157,3,000,21,2,40,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21158,3,000,21,2,40,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21159,3,000,21,2,40,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21160,3,000,21,2,40,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21161,3,000,21,2,40,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21162,3,000,21,2,42,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21163,3,000,21,2,42,1,01,2,1,0,0,2,13,135,050243,2005,2,9999,99999,99999999,9,99999,99999999,46174,0,0,0,0,0,12060,07,999,99999,99999999,A,01688166,92910,S,01936567,122,5,99999,99999999,+34.0693291,-084.1030596,L,1,99999,99999,99999,9,9,9,99999,9,99999999,01602,3,99999,99999,02550,097,045,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,000140,30024 +21164,3,000,22,2,26,2,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21165,3,000,22,2,32,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21166,3,000,22,2,35,2,11,2,2,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21167,3,000,22,2,38,1,04,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21168,3,000,22,2,39,1,01,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21169,3,000,24,2,44,1,04,2,1,0,0,2,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21170,3,000,25,1,1,1,01,2,1,0,0,1,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21171,3,000,25,1,1,1,01,2,1,0,0,1,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21172,3,000,25,1,1,1,01,2,1,0,0,1,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21173,3,000,25,1,1,1,01,2,1,0,0,1,25,025,000506,1007,1,9999,99999,99999999,9,99999,99999999,10574,0,0,0,0,0,14460,07,715,99999,99999999,N,00606939,07000,F,00619463,148,1,99999,99999999,+42.3400191,-071.1457566,L,1,14454,71634,71650,1,Y,Y,07000,A,00619463,00801,1,99999,99999,02790,200,028,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,002112,02135 +21174,3,000,21,2,60,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21175,3,000,21,2,60,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21176,3,000,21,2,60,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21177,3,000,21,2,78,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21178,3,000,21,2,78,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21179,3,000,21,2,78,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21180,3,000,21,2,78,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21181,3,000,21,2,78,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21182,3,000,21,2,81,1,08,2,2,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21183,3,000,21,2,85,1,01,2,1,0,0,2,41,029,000300,4001,4,9999,99999,99999999,9,99999,99999999,165505,0,0,0,0,0,32780,02,999,99999,99999999,A,01135853,91836,S,01938056,366,9,99999,99999999,+42.3490207,-122.8878562,L,1,99999,99999,99999,9,Y,N,47000,A,02411069,02901,4,99999,99999,08040,006,003,01155107,99999,99999999,9,999,99999,99999999,999999,55981,U,47000,U,,97501 +21184,3,000,20,1,65,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21185,3,000,20,1,65,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21186,3,000,20,1,65,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21187,3,000,20,1,66,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21188,3,000,20,1,66,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21189,3,000,20,1,66,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21190,3,000,20,1,66,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21191,3,000,20,1,82,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21192,3,000,20,1,82,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21193,3,000,20,1,83,1,02,2,1,0,0,2,45,041,000800,1005,1,9999,99999,99999999,9,99999,99999999,345056,0,0,0,0,0,22500,07,999,99999,99999999,A,01248001,91131,S,01938267,999,5,99999,99999999,+34.2107214,-079.7444105,L,1,99999,99999,99999,9,Y,N,25810,A,02403621,02500,3,99999,99999,02130,059,030,01779799,99999,99999999,9,999,99999,99999999,999999,30061,U,99999,U,000016,29506 +21194,3,000,20,1,39,1,01,1,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21195,3,000,20,1,57,1,03,1,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21196,3,000,20,2,93,1,01,1,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21197,3,000,20,1,40,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21198,3,000,20,1,41,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21199,3,000,20,1,44,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21200,3,000,20,1,51,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21201,3,000,20,1,51,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21202,3,000,20,1,52,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21203,3,000,20,1,52,1,01,2,1,0,0,2,48,425,000101,1043,1,9999,99999,99999999,9,99999,99999999,10312087,8605,0,0,8605,0,99999,25,999,99999,99999999,A,01383998,91535,S,01938784,999,7,99999,99999999,+32.2067808,-097.8078342,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,3,99999,99999,20850,059,022,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000001,76043 +21204,3,000,24,1,68,2,11,2,2,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21205,3,000,24,1,84,1,06,2,1,0,0,2,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21206,3,000,25,1,0,1,12,2,2,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21207,3,000,25,1,0,2,01,2,1,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21208,3,000,25,1,0,2,01,2,1,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21209,3,000,25,1,0,2,11,2,2,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21210,3,000,25,1,0,2,11,2,2,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21211,3,000,25,1,2,1,01,2,1,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21212,3,000,25,1,2,1,02,2,1,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21213,3,000,25,1,2,2,03,2,1,0,0,1,32,003,004910,2000,2,9999,99999,99999999,9,99999,99999999,226139,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1481929,-115.0451913,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005617,89142 +21214,3,000,20,1,40,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21215,3,000,20,1,41,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21216,3,000,20,1,41,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21217,3,000,20,1,41,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21218,3,000,20,1,41,1,04,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21219,3,000,20,1,41,1,04,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21220,3,000,20,1,42,1,02,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21221,3,000,20,1,44,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21222,3,000,20,1,44,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21223,3,000,20,1,44,1,01,1,1,0,0,2,06,061,020908,1012,1,9999,99999,99999999,9,99999,99999999,114242,0,0,0,0,0,40900,04,999,99999,99999999,A,00277295,92660,S,01935271,472,9,99999,99999999,+38.7410680,-121.3097711,L,1,99999,99999,99999,9,Y,N,62938,A,02411000,06101,4,11490,33630,99999,006,004,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95747 +21224,3,000,25,1,8,1,01,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21225,3,000,25,2,17,1,01,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21226,3,000,25,2,17,1,01,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21227,3,000,27,2,11,1,01,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21228,3,000,27,2,11,1,01,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21229,3,000,28,1,76,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21230,3,000,28,1,76,1,01,2,1,0,0,2,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21231,3,000,30,2,14,1,01,2,1,0,0,1,16,047,960201,1065,1,9999,99999,99999999,9,99999,99999999,12252,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8159983,-114.8943170,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21232,3,000,20,1,49,1,01,1,1,0,0,2,16,047,960201,1066,1,9999,99999,99999999,9,99999,99999999,14444,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8160027,-114.8959286,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21233,3,000,20,1,49,1,01,1,1,0,0,2,16,047,960201,1066,1,9999,99999,99999999,9,99999,99999999,14444,0,0,0,0,0,99999,02,999,99999,99999999,A,00395441,91357,S,01936725,999,8,99999,99999999,+42.8160027,-114.8959286,L,9,99999,99999,99999,9,N,N,34300,A,02410680,01000,4,99999,99999,01380,026,026,01779783,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,472607,83332 +21234,3,000,20,1,40,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21235,3,000,20,1,46,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21236,3,000,20,1,46,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21237,3,000,20,1,46,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21238,3,000,20,1,46,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21239,3,000,20,1,61,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21240,3,000,20,1,61,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21241,3,000,20,1,64,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21242,3,000,20,1,64,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21243,3,000,20,1,66,1,01,1,1,0,0,2,55,139,002602,1006,1,9999,99999,99999999,9,99999,99999999,19032,0,0,0,0,0,36780,06,999,99999,99999999,A,01581129,50825,F,01583692,118,3,99999,99999999,+44.2329990,-088.4214244,L,1,99999,99999,99999,9,N,N,50825,A,01583692,00900,2,99999,99999,09030,057,019,01779806,99999,99999999,9,999,99999,99999999,999999,02764,U,99999,U,007127,54952 +21244,3,000,20,1,47,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21245,3,000,20,1,47,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21246,3,000,20,1,47,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21247,3,000,20,1,47,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21248,3,000,20,1,48,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21249,3,000,20,1,48,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21250,3,000,20,1,48,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21251,3,000,20,1,54,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21252,3,000,20,1,54,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21253,3,000,20,1,54,1,01,2,1,0,0,2,53,065,951402,2043,2,9999,99999,99999999,9,99999,99999999,126949,0,0,0,0,0,44060,05,999,99999,99999999,A,01531930,91680,S,01939543,518,9,99999,99999999,+47.8093286,-117.5677620,L,1,99999,99999,99999,9,N,N,68460,S,02807192,26500,4,99999,99999,05640,007,007,01779804,99999,99999999,9,999,99999,99999999,999999,99999,9,37890,R,000041,99026 +21254,3,000,20,2,53,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21255,3,000,20,2,56,2,11,2,2,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21256,3,000,20,2,56,2,11,2,2,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21257,3,000,20,2,56,2,11,2,2,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21258,3,000,20,2,59,2,01,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21259,3,000,20,2,59,2,01,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21260,3,000,20,2,59,2,01,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21261,3,000,20,2,59,2,01,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21262,3,000,20,2,59,2,01,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21263,3,000,20,2,60,2,06,2,1,0,0,2,48,201,311100,3000,3,9999,99999,99999999,9,99999,99999999,206141,0,0,0,0,0,26420,29,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7261855,-095.2862048,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04602,3,99999,99999,23640,143,006,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000065,77012 +21264,3,000,20,1,28,1,02,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21265,3,000,20,2,31,2,06,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21266,3,000,20,2,51,2,03,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21267,3,000,20,2,52,1,02,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21268,3,000,20,2,75,2,06,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21269,3,000,21,1,32,2,01,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21270,3,000,21,1,49,2,01,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21271,3,000,23,2,30,2,06,2,1,0,0,2,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21272,3,000,25,1,3,2,06,2,1,0,0,1,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21273,3,000,25,1,3,2,06,2,1,0,0,1,48,027,021000,3002,3,9999,99999,99999999,9,99999,99999999,13040,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.0916239,-097.3567844,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000314,76504 +21274,3,000,21,2,38,2,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21275,3,000,21,2,59,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21276,3,000,21,2,59,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21277,3,000,21,2,59,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21278,3,000,21,2,71,2,11,2,2,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21279,3,000,21,2,82,1,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21280,3,000,22,1,22,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21281,3,000,22,1,24,1,01,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21282,3,000,22,1,24,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21283,3,000,22,1,24,2,06,2,1,0,0,2,06,029,000907,1021,1,9999,99999,99999999,9,99999,99999999,29560,0,0,0,0,0,12540,23,999,99999,99999999,A,02054176,90180,S,01935022,999,9,99999,99999999,+35.3777407,-118.9257193,L,1,99999,99999,99999,9,N,N,20903,S,02804115,02903,4,03630,19540,99999,032,016,01779778,99999,99999999,9,999,99999,99999999,999999,04681,U,99999,U,,93306 +21284,3,000,21,2,74,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21285,3,000,21,2,74,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21286,3,000,21,2,74,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21287,3,000,21,2,74,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21288,3,000,21,2,74,1,01,2,1,0,0,2,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21289,3,000,25,1,7,1,01,2,1,0,0,1,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21290,3,000,25,1,7,1,01,2,1,0,0,1,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21291,3,000,25,1,17,1,01,2,1,0,0,1,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21292,3,000,25,2,17,1,02,2,1,0,0,1,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21293,3,000,25,2,17,1,02,2,1,0,0,1,17,031,807100,2015,2,9999,99999,99999999,9,99999,99999999,13775,0,0,0,0,0,16980,09,999,99999,99999999,A,01784766,53013,A,00429447,176,3,99999,99999999,+42.0454496,-087.7136053,L,1,16984,99999,99999,9,Y,N,70122,A,02399827,03107,2,14460,14490,99999,017,009,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,820021,60203 +21294,3,000,20,2,51,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21295,3,000,20,2,51,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21296,3,000,20,2,51,1,07,1,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21297,3,000,20,2,53,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21298,3,000,20,2,53,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21299,3,000,20,2,53,1,02,1,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21300,3,000,20,2,63,1,14,1,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21301,3,000,20,1,25,2,11,2,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21302,3,000,20,1,26,2,11,2,2,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21303,3,000,20,1,30,1,02,2,1,0,0,2,34,013,022900,2023,2,9999,99999,99999999,9,99999,99999999,20303,0,0,0,0,0,35620,10,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7414833,-074.1677649,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,029,029,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C43,07102 +21304,3,000,20,1,70,1,01,1,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21305,3,000,20,1,56,1,02,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21306,3,000,20,1,63,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21307,3,000,20,1,63,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21308,3,000,20,1,63,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21309,3,000,20,1,63,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21310,3,000,20,1,64,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21311,3,000,20,2,25,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21312,3,000,20,2,25,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21313,3,000,20,2,26,1,01,2,1,0,0,2,53,063,002100,2007,2,9999,99999,99999999,9,99999,99999999,7308,0,0,0,0,0,44060,05,999,99999,99999999,A,01529225,93200,S,01939639,518,9,99999,99999999,+47.6841654,-117.4436181,L,1,99999,99999,99999,9,Y,N,67000,A,02411956,26303,4,99999,99999,08250,003,003,01779804,99999,99999999,9,999,99999,99999999,999999,83764,U,67000,U,003321,99205 +21314,3,000,21,1,53,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21315,3,000,21,1,54,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21316,3,000,21,1,54,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21317,3,000,21,1,54,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21318,3,000,21,1,56,1,06,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21319,3,000,21,1,56,1,06,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21320,3,000,21,1,58,2,06,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21321,3,000,21,1,58,2,06,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21322,3,000,21,1,59,1,06,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21323,3,000,21,1,69,1,01,2,1,0,0,2,36,055,011205,2010,2,9999,99999,99999999,9,99999,99999999,68562,0,0,0,0,0,40380,25,999,99999,99999999,A,00974126,78971,A,00979614,464,2,99999,99999999,+43.2256716,-077.4646755,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00901,1,99999,99999,30360,135,054,01779796,99999,99999999,9,999,99999,99999999,999999,75664,U,99999,U,000790,14580 +21324,3,000,22,1,61,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21325,3,000,22,1,61,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21326,3,000,22,1,61,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21327,3,000,22,1,61,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21328,3,000,22,2,27,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21329,3,000,22,2,27,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21330,3,000,25,1,13,1,02,2,1,0,0,1,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21331,3,000,25,1,13,1,02,2,1,0,0,1,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21332,3,000,25,1,26,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21333,3,000,25,1,35,1,02,2,1,0,0,2,17,031,836000,1012,1,9999,99999,99999999,9,99999,99999999,4861,0,0,0,0,0,16980,07,999,99999,99999999,A,01784766,14000,F,00428803,176,3,99999,99999999,+41.8119036,-087.6151376,L,1,16984,99999,99999,9,Y,N,14000,A,00428803,03161,2,99999,99999,09930,026,013,01779784,99999,99999999,9,999,99999,99999999,999999,16264,U,99999,U,003004,60653 +21334,3,000,25,1,0,1,42,2,4,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21335,3,000,25,1,1,2,19,2,2,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21336,3,000,25,1,5,2,06,2,1,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21337,3,000,25,1,6,1,04,2,1,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21338,3,000,25,1,6,1,04,2,1,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21339,3,000,25,1,7,2,11,2,2,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21340,3,000,25,1,7,2,11,2,2,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21341,3,000,25,1,10,2,11,2,2,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21342,3,000,25,1,12,1,04,2,1,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21343,3,000,25,1,12,1,04,2,1,0,0,1,06,067,007012,2011,2,9999,99999,99999999,9,99999,99999999,18454,0,0,0,0,0,40900,06,999,99999,99999999,A,00277298,92690,S,01935274,472,9,99999,99999999,+38.6216275,-121.5042416,L,1,99999,99999,99999,9,Y,N,64000,A,02411751,06705,4,99999,99999,00036,007,006,01779778,99999,99999999,9,999,99999,99999999,999999,77068,U,99999,U,,95833 +21344,3,000,20,1,47,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21345,3,000,20,1,47,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21346,3,000,20,1,56,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21347,3,000,20,2,60,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21348,3,000,20,2,61,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21349,3,000,20,2,65,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21350,3,000,21,1,52,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21351,3,000,21,1,65,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21352,3,000,21,1,65,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21353,3,000,21,1,66,1,01,2,1,0,0,2,29,061,470100,2116,2,9999,99999,99999999,9,99999,99999999,231911,0,0,0,0,0,99999,06,999,99999,99999999,A,00758485,42104,A,00766583,999,4,99999,99999999,+39.9214088,-094.0770290,L,9,99999,99999,99999,9,N,N,40304,S,02587085,00100,2,99999,99999,32250,002,012,01779791,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000002,64620 +21354,3,000,25,1,48,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21355,3,000,25,1,48,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21356,3,000,25,1,49,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21357,3,000,25,1,49,1,01,2,1,0,0,2,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21358,3,000,25,2,1,1,01,2,1,0,0,1,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21359,3,000,25,2,2,1,01,2,1,0,0,1,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21360,3,000,25,2,2,1,01,2,1,0,0,1,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21361,3,000,25,2,2,1,01,2,1,0,0,1,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21362,3,000,25,2,6,1,01,2,1,0,0,1,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21363,3,000,25,2,6,1,01,2,1,0,0,1,44,007,013102,2034,2,9999,99999,99999999,9,99999,99999999,153542,0,0,0,0,0,39300,02,715,99999,99999999,N,01219781,30340,A,01220070,148,1,99999,99999999,+41.9106278,-071.6548419,L,1,99999,99999,77200,1,N,N,14860,S,02631330,00105,1,00450,00420,99999,040,023,01219835,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,441301,02814 +21364,3,000,25,2,14,1,01,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21365,3,000,25,2,14,2,06,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21366,3,000,25,2,21,1,01,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21367,3,000,25,2,21,1,01,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21368,3,000,26,1,13,1,01,2,1,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21369,3,000,26,2,19,2,06,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21370,3,000,29,2,64,1,01,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21371,3,000,29,2,64,1,01,2,1,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21372,3,000,30,2,3,2,11,2,2,0,0,1,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21373,3,000,30,2,25,2,11,2,2,0,0,2,34,031,124312,1014,1,9999,99999,99999999,9,99999,99999999,24423,0,0,0,0,0,35620,09,999,99999,99999999,A,00882232,13690,F,00885188,408,2,99999,99999999,+40.8654648,-074.1911626,L,1,35614,99999,99999,9,N,N,13690,A,00885188,00502,1,99999,99999,03300,034,034,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,010121,07013 +21374,3,000,20,2,72,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21375,3,000,20,2,74,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21376,3,000,21,2,57,1,11,2,2,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21377,3,000,21,2,68,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21378,3,000,21,2,68,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21379,3,000,21,2,68,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21380,3,000,21,2,68,1,01,2,1,0,0,2,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21381,3,000,25,1,2,2,11,2,2,0,0,1,39,081,012000,2103,2,9999,99999,99999999,9,99999,99999999,6854,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,72767,A,01086384,430,3,99999,99999999,+40.2042223,-080.7673067,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,04778,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADD,43917 +21382,3,000,20,1,35,1,01,1,1,0,0,2,39,081,011100,1006,1,9999,99999,99999999,9,99999,99999999,71758,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,74122,A,01086385,430,3,99999,99999999,+40.4779100,-080.9221931,L,1,99999,99999,99999,9,N,N,01938,A,02397958,02800,2,99999,99999,04779,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADG,43903 +21383,3,000,20,2,57,1,01,1,1,0,0,2,39,081,011100,1006,1,9999,99999,99999999,9,99999,99999999,71758,0,0,0,0,0,48260,06,999,99999,99999999,A,01074053,74122,A,01086385,430,3,99999,99999999,+40.4779100,-080.9221931,L,1,99999,99999,99999,9,N,N,01938,A,02397958,02800,2,99999,99999,04779,096,030,01085497,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,041ADG,43903 +21384,3,000,20,2,38,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21385,3,000,20,2,51,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21386,3,000,20,2,51,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21387,3,000,20,2,54,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21388,3,000,20,2,54,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21389,3,000,20,2,67,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21390,3,000,20,2,69,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21391,3,000,20,2,88,1,02,1,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21392,3,000,20,1,34,1,02,2,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21393,3,000,20,1,34,1,02,2,1,0,0,2,12,073,001801,3007,3,9999,99999,99999999,9,99999,99999999,20927,0,0,0,0,0,45220,05,999,99999,99999999,A,00306916,93335,S,01935948,999,5,99999,99999999,+30.3953727,-084.2881008,L,1,99999,99999,99999,9,Y,N,70600,A,02405563,07302,3,99999,99999,01110,008,003,00294478,99999,99999999,9,999,99999,99999999,999999,86464,U,99999,U,001319,32305 +21394,3,000,21,2,32,1,04,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21395,3,000,21,2,33,2,06,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21396,3,000,21,2,33,2,06,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21397,3,000,21,2,33,2,06,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21398,3,000,21,2,33,2,06,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21399,3,000,21,2,33,2,06,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21400,3,000,21,2,33,2,06,2,1,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21401,3,000,21,2,33,2,11,2,2,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21402,3,000,21,2,33,2,11,2,2,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21403,3,000,21,2,33,2,11,2,2,0,0,2,12,095,013507,4002,4,9999,99999,99999999,9,99999,99999999,830047,0,0,0,0,0,36740,09,999,99999,99999999,A,00295750,92522,S,01935881,422,5,99999,99999999,+28.4721624,-081.2937059,L,1,99999,99999,99999,9,Y,N,53000,A,02404443,09504,3,99999,99999,01440,048,013,00294478,99999,99999999,9,999,99999,99999999,999999,65863,U,99999,U,000321,32822 +21404,3,000,20,2,74,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21405,3,000,21,2,38,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21406,3,000,21,2,39,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21407,3,000,25,2,28,1,01,2,1,0,0,2,36,077,590202,1004,1,9999,99999,99999999,9,99999,99999999,4126964,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7770979,-074.9237243,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21408,3,000,21,1,31,1,11,2,2,0,0,2,36,077,590202,1005,1,9999,99999,99999999,9,99999,99999999,162821,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7645172,-074.9246554,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21409,3,000,25,1,0,1,01,2,1,0,0,1,36,077,590202,1005,1,9999,99999,99999999,9,99999,99999999,162821,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7645172,-074.9246554,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21410,3,000,25,1,7,1,01,2,1,0,0,1,36,077,590202,1005,1,9999,99999,99999999,9,99999,99999999,162821,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7645172,-074.9246554,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21411,3,000,25,1,9,1,01,2,1,0,0,1,36,077,590202,1005,1,9999,99999,99999999,9,99999,99999999,162821,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7645172,-074.9246554,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21412,3,000,25,1,9,1,01,2,1,0,0,1,36,077,590202,1005,1,9999,99999,99999999,9,99999,99999999,162821,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7645172,-074.9246554,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21413,3,000,25,1,12,1,01,2,1,0,0,1,36,077,590202,1005,1,9999,99999,99999999,9,99999,99999999,162821,0,0,0,0,0,36580,19,999,99999,99999999,A,00974137,55695,A,00979329,999,2,99999,99999999,+42.7645172,-074.9246554,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00403,1,99999,99999,08250,121,051,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000035,13326 +21414,3,000,20,2,48,1,01,1,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21415,3,000,20,1,60,1,06,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21416,3,000,20,1,68,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21417,3,000,20,2,45,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21418,3,000,20,2,45,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21419,3,000,20,2,46,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21420,3,000,20,2,76,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21421,3,000,21,1,66,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21422,3,000,21,2,46,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21423,3,000,21,2,47,1,01,2,1,0,0,2,51,760,050600,1044,1,9999,99999,99999999,9,99999,99999999,42220,0,0,0,0,0,40060,04,999,99999,99999999,F,01789073,95291,F,01789073,999,5,99999,99999999,+37.5538816,-077.4955904,L,1,99999,99999,99999,9,Y,N,67000,A,01789073,76001,3,99999,99999,03240,068,009,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000106,23221 +21424,3,000,25,1,7,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21425,3,000,25,1,7,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21426,3,000,25,1,7,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21427,3,000,25,1,7,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21428,3,000,25,1,7,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21429,3,000,25,1,7,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21430,3,000,25,1,7,1,42,2,4,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21431,3,000,25,1,7,2,06,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21432,3,000,25,1,8,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21433,3,000,25,1,8,1,01,2,1,0,0,1,25,009,210600,1002,1,9999,99999,99999999,9,99999,99999999,907857,4918,0,0,4918,0,14460,06,715,99999,99999999,N,00606931,52490,F,00618307,148,1,99999,99999999,+42.5145806,-070.9357945,B,1,15764,76524,71650,1,N,N,52490,A,00618307,00704,1,99999,99999,09360,094,021,00606926,99999,99999999,9,999,99999,99999999,999999,09271,U,99999,U,001470,01960 +21434,3,000,21,2,49,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21435,3,000,21,2,52,1,02,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21436,3,000,21,2,57,1,02,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21437,3,000,22,1,31,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21438,3,000,22,1,34,1,01,2,1,0,0,2,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21439,3,000,25,1,0,2,01,2,1,0,0,1,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21440,3,000,25,1,7,2,01,2,1,0,0,1,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21441,3,000,25,1,7,2,01,2,1,0,0,1,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21442,3,000,25,1,15,2,13,2,2,0,0,1,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21443,3,000,25,1,17,2,01,2,1,0,0,1,48,027,021202,3012,3,9999,99999,99999999,9,99999,99999999,14310,0,0,0,0,0,28660,31,999,99999,99999999,A,01383799,93855,S,01939253,999,7,99999,99999999,+31.1007122,-097.3872345,L,1,99999,99999,99999,9,Y,N,72176,A,02412046,03502,3,99999,99999,42330,055,024,01779801,99999,99999999,9,999,99999,99999999,999999,87058,U,99999,U,000302,76504 +21444,3,000,21,2,27,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21445,3,000,21,2,27,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21446,3,000,21,2,27,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21447,3,000,21,2,29,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21448,3,000,21,2,29,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21449,3,000,21,2,29,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21450,3,000,21,2,29,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21451,3,000,21,2,29,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21452,3,000,21,2,29,2,02,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21453,3,000,21,2,30,1,04,2,1,0,0,2,37,119,005522,2011,2,9999,99999,99999999,9,99999,99999999,169485,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.3163092,-080.7852445,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03103,3,99999,99999,02970,107,038,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000146,28269 +21454,3,000,21,1,45,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21455,3,000,21,1,45,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21456,3,000,25,1,2,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21457,3,000,25,1,16,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21458,3,000,25,1,16,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21459,3,000,25,1,16,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21460,3,000,25,2,8,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21461,3,000,25,2,11,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21462,3,000,25,2,12,1,02,2,1,0,0,1,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21463,3,000,25,2,58,1,02,2,1,0,0,2,51,119,950900,1011,1,9999,99999,99999999,9,99999,99999999,305611,0,0,0,0,0,99999,01,999,99999,99999999,A,01480147,94023,N,01927354,999,5,99999,99999999,+37.7335226,-076.7223539,L,9,99999,99999,99999,9,9,9,99999,9,99999999,07300,3,99999,99999,02490,098,004,01779803,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000302,23079 +21464,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21465,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21466,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21467,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21468,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21469,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21470,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21471,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21472,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21473,5,601,38,1,21,1,01,0,1,2,6,2,06,073,018700,1070,1,9999,99999,99999999,9,99999,99999999,51196,0,0,0,0,0,41740,49,999,99999,99999999,A,00277301,90355,S,01935249,999,9,99999,99999999,+33.3472058,-117.4104326,L,1,99999,99999,99999,9,9,9,99999,9,99999999,07301,4,13500,13530,99999,076,036,01779778,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,,92055 +21474,3,000,20,1,46,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21475,3,000,20,1,46,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21476,3,000,20,1,48,2,06,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21477,3,000,20,1,51,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21478,3,000,20,1,51,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21479,3,000,20,1,62,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21480,3,000,20,1,71,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21481,3,000,20,1,73,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21482,3,000,20,1,73,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21483,3,000,20,1,74,1,01,2,1,0,0,2,36,119,005001,2030,2,9999,99999,99999999,9,99999,99999999,15421,0,0,0,0,0,35620,16,999,99999,99999999,A,00974157,21820,A,00978916,408,2,99999,99999999,+40.9767465,-073.8036463,L,1,35614,99999,99999,9,N,N,21809,S,02389453,03113,1,99999,99999,10080,088,037,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000059,10583 +21484,3,000,21,2,26,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21485,3,000,21,2,27,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21486,3,000,21,2,28,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21487,3,000,21,2,28,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21488,3,000,21,2,28,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21489,3,000,21,2,29,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21490,3,000,21,2,29,1,11,2,2,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21491,3,000,21,2,30,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21492,3,000,21,2,30,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21493,3,000,21,2,30,1,01,2,1,0,0,2,36,061,012601,4000,4,9999,99999,99999999,9,99999,99999999,13135,0,0,0,0,0,35620,12,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.7667509,-073.9583479,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04108,1,99999,99999,20580,076,028,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,001211,10021 +21494,3,000,20,1,43,2,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21495,3,000,20,1,52,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21496,3,000,20,1,52,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21497,3,000,20,1,52,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21498,3,000,20,1,62,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21499,3,000,20,1,62,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21500,3,000,20,1,63,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21501,3,000,20,2,35,2,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21502,3,000,20,2,38,1,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21503,3,000,20,2,38,2,01,2,1,0,0,2,13,313,001200,2009,2,9999,99999,99999999,9,99999,99999999,37656,0,0,0,0,0,19140,14,999,99999,99999999,A,00353513,90864,S,01936213,174,5,99999,99999999,+34.7281693,-084.9348453,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00200,3,99999,99999,05700,004,054,01705317,99999,99999999,9,999,99999,99999999,999999,22069,U,99999,U,0000AN,30721 +21504,3,000,27,2,18,1,01,2,1,0,0,2,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21505,3,000,30,1,1,2,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21506,3,000,30,1,1,2,01,2,1,0,0,1,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21507,3,000,33,2,18,1,01,2,1,0,0,2,17,097,860811,2001,2,9999,99999,99999999,9,99999,99999999,491482,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4621207,-088.0700374,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21508,3,000,20,2,59,1,08,1,2,0,0,2,17,097,860811,2002,2,9999,99999,99999999,9,99999,99999999,16263,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4597908,-088.0698096,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21509,3,000,20,1,44,2,11,2,2,0,0,2,17,097,860811,2002,2,9999,99999,99999999,9,99999,99999999,16263,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4597908,-088.0698096,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21510,3,000,20,2,26,2,11,2,2,0,0,2,17,097,860811,2002,2,9999,99999,99999999,9,99999,99999999,16263,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4597908,-088.0698096,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21511,3,000,20,2,58,1,01,2,1,0,0,2,17,097,860811,2002,2,9999,99999,99999999,9,99999,99999999,16263,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4597908,-088.0698096,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21512,3,000,20,2,58,1,01,2,1,0,0,2,17,097,860811,2002,2,9999,99999,99999999,9,99999,99999999,16263,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4597908,-088.0698096,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21513,3,000,20,2,58,1,01,2,1,0,0,2,17,097,860811,2002,2,9999,99999,99999999,9,99999,99999999,16263,0,0,0,0,0,16980,14,999,99999,99999999,A,01784796,01608,A,00428594,176,3,99999,99999999,+42.4597908,-088.0698096,L,1,29404,99999,99999,9,9,9,99999,9,99999999,09701,2,03840,03870,99999,061,031,01779784,99999,99999999,9,999,99999,99999999,999999,76474,U,99999,U,0Ant12,60002 +21514,3,000,20,1,59,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21515,3,000,20,1,63,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21516,3,000,20,1,64,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21517,3,000,20,1,64,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21518,3,000,20,1,64,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21519,3,000,20,1,65,1,02,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21520,3,000,20,1,67,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21521,3,000,20,1,67,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21522,3,000,20,1,75,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21523,3,000,20,1,75,1,01,1,1,0,0,2,37,101,040208,3001,3,9999,99999,99999999,9,99999,99999999,2081208,0,0,0,0,0,39580,02,999,99999,99999999,A,01026327,94008,N,01026858,450,5,99999,99999999,+35.7037650,-078.3571661,L,1,99999,99999,99999,9,N,N,01760,A,02612171,01001,3,99999,99999,02370,026,011,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0PR29A,27591 +21524,3,000,20,1,79,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21525,3,000,20,1,79,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21526,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21527,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21528,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21529,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21530,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21531,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21532,3,000,20,1,80,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21533,3,000,20,1,81,1,01,1,1,0,0,2,12,101,031804,3001,3,9999,99999,99999999,9,99999,99999999,41909,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.4312224,-082.6185733,L,1,99999,99999,99999,9,N,N,29385,S,02583352,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,84024,U,99999,U,000194,34667 +21534,3,000,20,2,45,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21535,3,000,20,2,45,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21536,3,000,20,2,45,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21537,3,000,20,2,47,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21538,3,000,20,2,47,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21539,3,000,20,2,47,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21540,3,000,20,2,55,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21541,3,000,20,2,57,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21542,3,000,20,2,58,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21543,3,000,20,2,58,1,01,2,1,0,0,2,54,051,020601,2027,2,9999,99999,99999999,9,99999,99999999,183631,0,0,0,0,0,48540,01,999,99999,99999999,A,01717539,90780,N,01928208,999,5,99999,99999999,+39.9839051,-080.7284480,L,1,99999,99999,99999,9,N,N,50260,A,02390616,00100,3,99999,99999,00750,004,002,01779805,99999,99999999,9,999,99999,99999999,999999,94726,U,99999,U,,26040 +21544,3,000,21,1,48,2,06,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21545,3,000,21,1,49,2,11,2,2,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21546,3,000,21,1,49,2,11,2,2,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21547,3,000,21,1,50,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21548,3,000,21,1,57,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21549,3,000,21,1,62,1,04,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21550,3,000,21,1,63,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21551,3,000,21,1,65,1,01,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21552,3,000,21,1,73,1,02,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21553,3,000,21,2,25,1,01,2,1,0,0,2,37,081,016003,3043,3,9999,99999,99999999,9,99999,99999999,54983,0,0,0,0,0,24660,13,999,99999,99999999,A,01008558,92124,N,01026743,268,5,99999,99999999,+36.1272183,-079.9604694,L,1,99999,99999,99999,9,Y,N,28000,A,02403745,01703,3,99999,99999,01920,062,027,01027616,99999,99999999,9,999,99999,99999999,999999,35164,U,99999,U,00FR5B,27409 +21554,3,000,20,2,35,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21555,3,000,20,2,35,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21556,3,000,20,2,40,2,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21557,3,000,20,2,40,2,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21558,3,000,20,2,46,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21559,3,000,20,2,47,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21560,3,000,20,2,47,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21561,3,000,20,2,47,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21562,3,000,20,2,47,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21563,3,000,20,2,47,1,01,2,1,0,0,2,45,083,021803,1007,1,9999,99999,99999999,9,99999,99999999,564320,0,0,0,0,0,43900,04,999,99999,99999999,A,01248592,93198,S,01938427,273,5,99999,99999999,+35.0326237,-082.0093639,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00401,3,99999,99999,03510,037,011,01779799,99999,99999999,9,999,99999,99999999,999999,83548,U,99999,U,000123,29316 +21564,3,000,25,2,22,2,06,2,1,0,0,2,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21565,3,000,27,1,11,2,11,2,2,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21566,3,000,27,1,28,2,01,2,1,0,0,2,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21567,3,000,27,2,7,2,01,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21568,3,000,27,2,14,2,06,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21569,3,000,30,1,6,2,01,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21570,3,000,30,1,6,2,01,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21571,3,000,30,2,1,2,01,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21572,3,000,30,2,1,2,01,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21573,3,000,30,2,3,2,01,2,1,0,0,1,48,479,001810,1002,1,9999,99999,99999999,9,99999,99999999,12567,0,0,0,0,0,29700,28,999,99999,99999999,A,01384025,92147,S,01938573,999,7,99999,99999999,+27.4912501,-099.4378388,L,1,99999,99999,99999,9,Y,N,41464,A,02411626,06302,3,99999,99999,43650,080,021,01779801,99999,99999999,9,999,99999,99999999,999999,47854,U,99999,U,000227,78046 +21574,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21575,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21576,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21577,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21578,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21579,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21580,3,000,25,2,14,1,01,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21581,3,000,25,2,14,1,04,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21582,3,000,25,2,14,1,04,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21583,3,000,25,2,14,1,04,2,1,0,0,1,53,033,025005,3006,3,9999,99999,99999999,9,99999,99999999,382787,0,0,0,0,0,42660,09,999,99999,99999999,A,01531933,92931,S,01939496,500,9,99999,99999999,+47.5252095,-122.1554357,L,1,42644,99999,99999,9,N,N,48645,A,02411243,23305,4,99999,99999,03750,041,041,01779804,99999,99999999,9,999,99999,99999999,999999,80389,U,48645,U,003529,98059 +21584,3,000,25,1,29,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21585,3,000,25,1,29,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21586,3,000,25,1,29,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21587,3,000,25,1,35,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21588,3,000,25,1,38,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21589,3,000,25,1,38,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21590,3,000,25,1,38,1,01,2,1,0,0,2,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21591,3,000,25,2,2,1,01,2,1,0,0,1,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21592,3,000,25,2,6,1,01,2,1,0,0,1,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21593,3,000,25,2,6,1,01,2,1,0,0,1,50,003,970800,1031,1,9999,99999,99999999,9,99999,99999999,841044,0,0,0,0,0,13540,00,999,99999,99999999,A,01461758,63550,A,01462203,999,1,99999,99999999,+42.9607248,-073.2030148,L,2,99999,99999,71350,2,9,9,99999,9,99999999,00400,1,99999,99999,99905,B-3,BEN,01779802,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,500314,05262 +21594,3,000,20,1,63,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21595,3,000,20,1,63,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21596,3,000,20,1,63,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21597,3,000,20,1,63,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21598,3,000,20,1,64,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21599,3,000,20,1,83,1,08,2,2,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21600,3,000,20,2,46,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21601,3,000,21,1,29,2,06,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21602,3,000,21,1,82,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21603,3,000,21,2,34,1,01,2,1,0,0,2,18,089,043001,1014,1,9999,99999,99999999,9,99999,99999999,89322,0,0,0,0,0,16980,01,999,99999,99999999,A,00450495,11476,A,00453184,176,3,99999,99999999,+41.4246749,-087.4190848,L,1,23844,99999,99999,9,9,9,99999,9,99999999,00104,2,99999,99999,02490,011,006,00448508,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000300,46307 +21604,3,000,25,2,56,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21605,3,000,25,2,61,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21606,3,000,25,2,61,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21607,3,000,27,1,17,1,01,2,1,0,0,1,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21608,3,000,27,1,17,1,01,2,1,0,0,1,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21609,3,000,28,1,56,1,02,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21610,3,000,29,2,69,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21611,3,000,29,2,75,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21612,3,000,29,2,77,1,01,2,1,0,0,2,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21613,3,000,30,1,17,1,01,2,1,0,0,1,45,015,020903,2001,2,9999,99999,99999999,9,99999,99999999,340463,0,0,0,0,0,16700,01,999,99999,99999999,A,01247985,91274,S,01938278,999,5,99999,99999999,+32.9193299,-080.0148726,L,1,99999,99999,99999,9,N,N,32065,A,02403792,02202,3,99999,99999,01170,099,044,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000021,29410 +21614,3,000,25,2,16,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21615,3,000,25,2,16,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21616,3,000,25,2,16,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21617,3,000,25,2,16,1,01,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21618,3,000,25,2,17,1,02,2,1,0,0,1,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21619,3,000,25,2,21,1,02,2,1,0,0,2,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21620,3,000,25,2,21,1,02,2,1,0,0,2,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21621,3,000,25,2,22,1,01,2,1,0,0,2,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21622,3,000,25,2,22,1,02,2,1,0,0,2,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21623,3,000,25,2,22,1,02,2,1,0,0,2,13,121,010218,1003,1,9999,99999,99999999,9,99999,99999999,243927,0,0,0,0,0,12060,06,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.9722537,-084.3604177,L,1,99999,99999,99999,9,Y,N,68516,A,02405417,01403,3,99999,99999,02280,045,056,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,0SS19A,30350 +21624,3,000,29,2,74,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21625,3,000,29,2,74,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21626,3,000,32,2,34,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21627,3,000,32,2,41,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21628,3,000,32,2,42,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21629,3,000,32,2,43,1,01,2,1,0,0,2,30,081,000401,2000,2,9999,99999,99999999,9,99999,99999999,4935541,10418,0,0,10418,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3494838,-114.1781550,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21630,3,000,20,1,67,1,01,1,1,0,0,2,30,081,000401,2001,2,9999,99999,99999999,9,99999,99999999,2683568,997,0,0,997,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3585015,-114.2065489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21631,3,000,20,1,67,1,01,1,1,0,0,2,30,081,000401,2001,2,9999,99999,99999999,9,99999,99999999,2683568,997,0,0,997,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3585015,-114.2065489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21632,3,000,20,1,67,1,01,1,1,0,0,2,30,081,000401,2001,2,9999,99999,99999999,9,99999,99999999,2683568,997,0,0,997,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3585015,-114.2065489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21633,3,000,20,1,68,1,01,1,1,0,0,2,30,081,000401,2001,2,9999,99999,99999999,9,99999,99999999,2683568,997,0,0,997,0,99999,00,999,99999,99999999,A,01719582,91575,S,01940636,999,8,99999,99999999,+46.3585015,-114.2065489,B,9,99999,99999,99999,9,9,9,99999,9,99999999,00300,4,99999,99999,27270,087,044,00767982,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000015,59875 +21634,3,000,20,1,53,1,02,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21635,3,000,20,1,56,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21636,3,000,20,1,56,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21637,3,000,20,1,56,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21638,3,000,20,1,57,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21639,3,000,20,1,57,1,04,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21640,3,000,20,1,67,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21641,3,000,20,1,67,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21642,3,000,20,1,67,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21643,3,000,20,1,67,1,01,2,1,0,0,2,36,047,038600,1003,1,9999,99999,99999999,9,99999,99999999,13886,0,0,0,0,0,35620,11,999,99999,99999999,C,00974122,10022,G,00978759,408,2,99999,99999999,+40.5931081,-073.9751724,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04315,1,99999,99999,20580,045,022,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000394,11223 +21644,3,000,22,1,30,2,11,2,2,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21645,3,000,22,1,31,2,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21646,3,000,22,1,37,2,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21647,3,000,22,1,37,2,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21648,3,000,22,1,54,2,01,2,1,0,0,2,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21649,3,000,25,1,1,1,07,2,2,0,0,1,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21650,3,000,25,1,1,1,07,2,2,0,0,1,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21651,3,000,25,1,1,2,01,2,1,0,0,1,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21652,3,000,25,1,1,2,01,2,1,0,0,1,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21653,3,000,25,1,1,2,01,2,1,0,0,1,35,013,001701,4133,4,9999,99999,99999999,9,99999,99999999,16826,0,0,0,0,0,29740,02,999,99999,99999999,A,00929109,93060,S,01937593,238,8,99999,99999999,+31.8749731,-106.6575583,L,1,99999,99999,99999,9,N,N,75640,A,02412006,01001,4,99999,99999,01080,034,031,00897535,99999,99999999,9,999,99999,99999999,999999,27253,U,99999,U,000163,88008 +21654,3,000,20,2,41,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21655,3,000,20,2,44,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21656,3,000,20,2,47,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21657,3,000,20,2,64,2,06,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21658,3,000,21,1,30,2,06,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21659,3,000,25,1,8,2,01,2,1,0,0,1,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21660,3,000,25,1,18,1,01,2,1,0,0,2,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21661,3,000,25,2,5,1,01,2,1,0,0,1,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21662,3,000,25,2,9,2,01,2,1,0,0,1,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21663,3,000,25,2,9,2,01,2,1,0,0,1,48,231,961402,3088,3,9999,99999,99999999,9,99999,99999999,591495,1340,0,0,1340,0,19100,04,999,99999,99999999,A,01383901,90565,S,01938588,206,7,99999,99999999,+33.0313512,-096.2705995,B,1,19124,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,12390,002,002,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000215,75189 +21664,3,000,25,1,19,1,01,2,1,0,0,2,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21665,3,000,25,2,1,1,01,2,1,0,0,1,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21666,3,000,25,2,9,1,01,2,1,0,0,1,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21667,3,000,30,2,0,1,01,2,1,0,0,1,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21668,3,000,30,2,0,1,01,2,1,0,0,1,36,083,052002,1001,1,9999,99999,99999999,9,99999,99999999,203585,4451,0,0,4451,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8083802,-073.5189662,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21669,3,000,20,2,82,1,01,1,1,0,0,2,36,083,052002,1002,1,9999,99999,99999999,9,99999,99999999,1611763,5717,0,0,5717,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8040212,-073.5322269,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21670,3,000,20,2,83,1,01,1,1,0,0,2,36,083,052002,1002,1,9999,99999,99999999,9,99999,99999999,1611763,5717,0,0,5717,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8040212,-073.5322269,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21671,3,000,20,2,35,1,01,2,1,0,0,2,36,083,052002,1002,1,9999,99999,99999999,9,99999,99999999,1611763,5717,0,0,5717,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8040212,-073.5322269,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21672,3,000,20,2,36,1,01,2,1,0,0,2,36,083,052002,1002,1,9999,99999,99999999,9,99999,99999999,1611763,5717,0,0,5717,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8040212,-073.5322269,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21673,3,000,20,2,39,1,01,2,1,0,0,2,36,083,052002,1002,1,9999,99999,99999999,9,99999,99999999,1611763,5717,0,0,5717,0,10580,19,999,99999,99999999,A,00974140,10275,A,00978762,104,2,99999,99999999,+42.8040212,-073.5322269,B,1,99999,99999,99999,9,9,9,99999,9,99999999,01900,1,99999,99999,05520,107,043,01779796,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000011,12180 +21674,3,000,34,2,24,1,01,2,1,0,0,2,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21675,3,000,35,1,15,1,02,2,1,0,0,1,29,189,211101,3008,3,9999,99999,99999999,9,99999,99999999,35595,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7822673,-090.3032885,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21676,3,000,20,1,31,1,02,1,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21677,3,000,20,1,31,1,02,1,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21678,3,000,20,1,32,1,02,1,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21679,3,000,20,2,30,1,02,1,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21680,3,000,20,2,87,1,11,1,2,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21681,3,000,20,2,35,1,02,2,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21682,3,000,20,2,35,1,02,2,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21683,3,000,20,2,35,1,02,2,1,0,0,2,29,189,211101,3009,3,9999,99999,99999999,9,99999,99999999,21680,0,0,0,0,0,41180,01,999,99999,99999999,A,00758549,24796,N,00767343,476,4,99999,99999999,+38.7811962,-090.3030761,L,1,99999,99999,99999,9,N,N,24778,A,02394777,01901,2,99999,99999,12010,068,013,01779791,99999,99999999,9,999,99999,99999999,999999,77770,U,99999,U,FLO013,63033 +21684,3,000,25,2,26,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21685,3,000,25,2,26,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21686,3,000,25,2,26,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21687,3,000,25,2,26,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21688,3,000,26,1,19,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21689,3,000,27,2,20,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21690,3,000,28,2,20,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21691,3,000,28,2,23,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21692,3,000,30,1,3,1,02,2,1,0,0,1,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21693,3,000,30,1,22,1,02,2,1,0,0,2,13,121,007707,2013,2,9999,99999,99999999,9,99999,99999999,23290,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.6991370,-084.4958289,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,055,039,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00011M,30311 +21694,3,000,33,2,73,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21695,3,000,33,2,73,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21696,3,000,33,2,85,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21697,3,000,33,2,85,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21698,3,000,34,1,19,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21699,3,000,34,1,20,1,02,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21700,3,000,34,1,20,1,02,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21701,3,000,34,1,21,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21702,3,000,34,1,21,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21703,3,000,34,1,21,1,01,2,1,0,0,2,27,123,040402,4000,4,9999,99999,99999999,9,99999,99999999,762828,448,0,0,448,0,33460,04,999,99999,99999999,A,00659507,69970,F,02397299,378,4,99999,99999999,+45.0428834,-092.9880927,B,1,99999,99999,99999,9,N,N,69970,A,02397299,01501,2,99999,99999,42360,43A,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,001770,55110 +21704,3,000,20,2,69,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21705,3,000,20,2,69,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21706,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21707,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21708,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21709,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21710,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21711,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21712,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21713,3,000,20,2,76,1,01,2,1,0,0,2,12,069,031203,3015,3,9999,99999,99999999,9,99999,99999999,330099,0,0,0,0,0,36740,11,999,99999,99999999,A,00308551,91365,S,01935787,422,5,99999,99999999,+28.6552688,-081.8684603,L,1,99999,99999,99999,9,9,9,99999,9,99999999,06903,3,99999,99999,01050,032,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000107,34748 +21714,3,000,20,1,71,1,02,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21715,3,000,20,1,71,1,02,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21716,3,000,20,2,50,1,08,2,2,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21717,3,000,21,2,66,1,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21718,3,000,21,2,67,1,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21719,3,000,21,2,67,1,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21720,3,000,21,2,67,1,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21721,3,000,21,2,67,1,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21722,3,000,21,2,68,2,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21723,3,000,21,2,74,1,01,2,1,0,0,2,45,051,030104,2039,2,9999,99999,99999999,9,99999,99999999,24188,0,0,0,0,0,34820,07,999,99999,99999999,A,01248005,92028,S,01938337,396,5,99999,99999999,+33.9281629,-078.7500000,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02701,3,99999,99999,02490,056,028,01779799,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000159,29568 +21724,3,000,20,2,30,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21725,3,000,20,2,30,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21726,3,000,20,2,32,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21727,3,000,20,2,33,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21728,3,000,20,2,43,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21729,3,000,20,2,43,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21730,3,000,20,2,51,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21731,3,000,20,2,51,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21732,3,000,20,2,52,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21733,3,000,20,2,52,1,01,1,1,0,0,2,12,021,010205,2004,2,9999,99999,99999999,9,99999,99999999,156149,0,0,0,0,0,34940,19,999,99999,99999999,A,00295754,92301,S,01935862,163,5,99999,99999999,+26.2470841,-081.7980027,L,1,99999,99999,99999,9,N,N,57066,S,02403418,02101,3,99999,99999,00330,106,028,00294478,99999,99999999,9,999,99999,99999999,999999,08974,U,99999,U,000053,34108 +21734,3,000,25,1,21,1,08,2,2,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21735,3,000,25,1,21,2,11,2,2,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21736,3,000,25,1,21,2,11,2,2,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21737,3,000,25,1,22,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21738,3,000,25,1,23,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21739,3,000,25,1,23,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21740,3,000,25,1,23,1,04,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21741,3,000,25,1,26,1,01,2,1,0,0,2,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21742,3,000,25,2,0,1,01,2,1,0,0,1,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21743,3,000,25,2,10,1,04,2,1,0,0,1,48,085,031625,4015,4,9999,99999,99999999,9,99999,99999999,33063,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,93065,S,01939094,206,7,99999,99999999,+33.0275136,-096.7558363,L,1,19124,99999,99999,9,Y,N,58016,A,02411437,01903,3,99999,99999,35100,066,008,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,000071,75075 +21744,3,000,20,1,40,1,01,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21745,3,000,20,1,40,1,01,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21746,3,000,20,1,40,1,01,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21747,3,000,20,1,40,1,01,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21748,3,000,20,1,42,1,01,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21749,3,000,20,1,42,1,01,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21750,3,000,20,1,59,1,04,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21751,3,000,20,2,30,1,04,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21752,3,000,20,2,33,1,11,2,2,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21753,3,000,20,2,34,1,04,2,1,0,0,2,37,119,003600,1001,1,9999,99999,99999999,9,99999,99999999,15299,0,0,0,0,0,16740,12,999,99999,99999999,A,01008570,93268,N,01026930,172,5,99999,99999999,+35.2194912,-080.8635572,L,1,99999,99999,99999,9,Y,N,12000,A,02404032,03105,3,99999,99999,02970,088,037,01027616,99999,99999999,9,999,99999,99999999,999999,15670,U,99999,U,000022,28203 +21754,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21755,3,000,25,1,11,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21756,3,000,25,1,11,2,11,2,2,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21757,3,000,25,1,11,2,11,2,2,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21758,3,000,25,1,12,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21759,3,000,25,1,12,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21760,3,000,25,1,12,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21761,3,000,25,1,12,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21762,3,000,25,1,12,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21763,3,000,25,1,12,1,01,2,1,0,0,1,24,003,740601,2018,2,9999,99999,99999999,9,99999,99999999,561798,0,0,0,0,0,12580,02,999,99999,99999999,A,01710958,90284,N,01929598,548,5,99999,99999999,+39.1256453,-076.7499504,L,1,99999,99999,99999,9,N,N,29400,S,02389109,01201,3,99999,99999,00060,032,032,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,04-007,20755 +21764,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21765,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21766,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21767,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21768,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21769,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21770,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21771,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21772,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21773,3,000,25,1,0,1,01,2,1,0,0,1,49,049,010126,2000,2,9999,99999,99999999,9,99999,99999999,486281,101325,0,0,101325,0,39340,04,999,99999,99999999,A,01448038,91634,S,01939383,482,8,99999,99999999,+40.3791670,-111.9076940,B,1,99999,99999,99999,9,N,N,44320,A,02410816,49001,4,99999,99999,00030,006,013,01455989,99999,99999999,9,999,99999,99999999,999999,72559,U,99999,U,LE0019,84043 +21774,3,000,25,1,17,2,06,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21775,3,000,25,1,19,2,01,2,1,0,0,2,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21776,3,000,25,1,33,1,04,2,1,0,0,2,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21777,3,000,25,1,33,1,04,2,1,0,0,2,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21778,3,000,25,1,44,2,06,2,1,0,0,2,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21779,3,000,25,1,44,2,06,2,1,0,0,2,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21780,3,000,25,1,44,2,06,2,1,0,0,2,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21781,3,000,25,2,3,1,01,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21782,3,000,25,2,3,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21783,3,000,25,2,3,1,04,2,1,0,0,1,06,073,010017,1007,1,9999,99999,99999999,9,99999,99999999,35112,0,0,0,0,0,41740,51,999,99999,99999999,A,00277301,92780,S,01935283,999,9,99999,99999999,+32.5830780,-117.0295785,L,1,99999,99999,99999,9,Y,N,66000,A,02411782,07322,4,35220,38640,99999,080,040,01779778,99999,99999999,9,999,99999,99999999,999999,78661,U,99999,U,,92154 +21784,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21785,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21786,3,000,20,1,67,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21787,3,000,20,1,70,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21788,3,000,20,1,70,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21789,3,000,20,1,70,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21790,3,000,20,1,71,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21791,3,000,20,1,71,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21792,3,000,20,1,71,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21793,3,000,20,1,71,1,01,2,1,0,0,2,26,093,743800,1005,1,9999,99999,99999999,9,99999,99999999,1574860,10614,0,0,10614,0,19820,08,999,99999,99999999,A,01622989,36100,A,01626420,220,3,99999,99999999,+42.4468584,-083.8264416,B,1,47664,99999,99999,9,9,9,99999,9,99999999,02800,2,99999,99999,28140,042,022,01779789,99999,99999999,9,999,99999,99999999,999999,83332,U,99999,U,093043,48189 +21794,3,000,25,2,50,1,01,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21795,3,000,25,2,50,1,01,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21796,3,000,25,2,50,1,01,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21797,3,000,25,2,51,1,01,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21798,3,000,25,2,53,1,01,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21799,3,000,28,1,27,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21800,3,000,28,2,40,1,01,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21801,3,000,29,1,74,2,06,2,1,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21802,3,000,29,1,86,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21803,3,000,29,1,86,2,11,2,2,0,0,2,12,086,006403,3007,3,9999,99999,99999999,9,99999,99999999,18552,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7605107,-080.2213674,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08615,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000570,33145 +21804,3,000,20,2,25,1,01,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21805,3,000,20,2,25,1,01,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21806,3,000,20,2,25,1,01,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21807,3,000,21,1,47,1,02,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21808,3,000,21,1,86,1,01,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21809,3,000,21,2,31,1,04,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21810,3,000,21,2,45,2,11,2,2,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21811,3,000,22,1,68,1,02,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21812,3,000,22,2,32,1,01,2,1,0,0,2,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21813,3,000,25,1,12,1,04,2,1,0,0,1,39,165,032009,1043,1,9999,99999,99999999,9,99999,99999999,3031,0,0,0,0,0,17140,01,999,99999,99999999,A,01074094,21238,A,01087112,178,3,99999,99999999,+39.3063727,-084.3190066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,03901,2,99999,99999,05045,054,007,01085497,99999,99999999,9,999,99999,99999999,999999,16885,U,99999,U,083AFH,45040 +21814,3,000,36,1,31,1,02,2,1,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21815,3,000,36,1,39,1,14,2,2,0,0,2,01,089,002300,1000,1,9999,99999,99999999,9,99999,99999999,81132,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7077027,-086.6106430,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21816,3,000,20,1,23,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21817,3,000,20,1,23,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21818,3,000,20,1,45,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21819,3,000,20,1,68,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21820,3,000,20,1,68,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21821,3,000,20,1,71,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21822,3,000,20,1,71,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21823,3,000,20,1,71,1,01,1,1,0,0,2,01,089,002300,1001,1,9999,99999,99999999,9,99999,99999999,55628,0,0,0,0,0,26620,05,999,99999,99999999,A,00161570,91674,S,00161618,290,6,99999,99999999,+34.7086884,-086.6131859,L,1,99999,99999,99999,9,Y,N,37000,A,02404746,00403,3,99999,99999,01800,010,007,01779775,99999,99999999,9,999,99999,99999999,999999,40780,U,99999,U,000049,35805 +21824,3,000,25,2,15,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21825,3,000,25,2,17,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21826,3,000,25,2,17,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21827,3,000,25,2,17,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21828,3,000,25,2,17,1,01,2,1,0,0,1,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21829,3,000,25,2,19,1,04,2,1,0,0,2,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21830,3,000,25,2,19,1,04,2,1,0,0,2,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21831,3,000,25,2,21,1,02,2,1,0,0,2,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21832,3,000,25,2,22,2,11,2,2,0,0,2,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21833,3,000,25,2,22,2,11,2,2,0,0,2,12,103,024908,1006,1,9999,99999,99999999,9,99999,99999999,40112,0,0,0,0,0,45300,13,999,99999,99999999,A,00295745,93042,S,01935922,999,5,99999,99999999,+27.8378378,-082.6959041,L,1,99999,99999,99999,9,Y,N,56975,A,02404523,10306,3,99999,99999,01560,068,024,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000145,33781 +21834,3,000,20,1,59,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21835,3,000,20,1,59,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21836,3,000,20,1,59,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21837,3,000,20,1,59,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21838,3,000,20,1,59,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21839,3,000,20,1,59,1,02,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21840,3,000,20,1,59,2,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21841,3,000,20,1,59,2,11,2,2,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21842,3,000,20,1,61,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21843,3,000,20,1,61,1,01,2,1,0,0,2,45,013,002105,1062,1,9999,99999,99999999,9,99999,99999999,1431076,0,0,0,0,0,25940,01,999,99999,99999999,A,01247984,90312,S,01938204,999,5,99999,99999999,+32.2757149,-080.9044466,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02001,3,99999,99999,01110,120,046,01779799,99999,99999999,9,999,99999,99999999,999999,08601,U,99999,U,000318,29910 +21844,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21845,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21846,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21847,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21848,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21849,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21850,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21851,3,000,20,1,36,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21852,3,000,20,1,37,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21853,3,000,20,1,37,1,01,2,1,0,0,2,48,157,673201,1000,1,9999,99999,99999999,9,99999,99999999,388642,0,0,0,0,0,26420,22,999,99999,99999999,A,01383864,91415,S,01938760,288,7,99999,99999999,+29.7484656,-095.8568095,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04906,3,99999,99999,25170,028,018,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,003148,77494 +21854,3,000,25,2,15,1,06,2,1,0,0,1,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21855,3,000,29,2,90,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21856,3,000,36,2,60,1,01,2,1,0,0,2,54,039,001700,2003,2,9999,99999,99999999,9,99999,99999999,6830,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3220371,-081.5861564,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21857,3,000,20,1,81,1,01,1,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21858,3,000,20,1,83,1,01,1,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21859,3,000,20,2,30,1,02,1,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21860,3,000,20,2,52,1,01,1,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21861,3,000,20,2,62,1,02,1,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21862,3,000,20,1,32,1,01,2,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21863,3,000,20,1,32,1,01,2,1,0,0,2,54,039,001700,2004,2,9999,99999,99999999,9,99999,99999999,6612,0,0,0,0,0,16620,02,999,99999,99999999,A,01550026,90768,N,01928207,170,5,99999,99999999,+38.3216800,-081.5864661,L,1,99999,99999,99999,9,Y,N,14600,A,02390575,00900,3,99999,99999,00600,036,017,01779805,99999,99999999,9,999,99999,99999999,999999,15481,U,99999,U,,25304 +21864,3,000,25,2,15,1,01,2,1,0,0,1,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21865,3,000,25,2,16,1,01,2,1,0,0,1,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21866,3,000,27,2,13,1,03,2,1,0,0,1,34,031,256805,1038,1,9999,99999,99999999,9,99999,99999999,138417,44014,0,0,44014,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0532296,-074.4818944,B,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21867,3,000,27,1,13,2,02,2,1,0,0,1,34,031,256805,1041,1,9999,99999,99999999,9,99999,99999999,45345,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0515032,-074.4793269,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21868,3,000,20,2,66,1,01,1,1,0,0,2,34,031,256805,1042,1,9999,99999,99999999,9,99999,99999999,1690215,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0517193,-074.4895934,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21869,3,000,20,1,55,1,01,2,1,0,0,2,34,031,256805,1042,1,9999,99999,99999999,9,99999,99999999,1690215,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0517193,-074.4895934,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21870,3,000,20,1,56,1,01,2,1,0,0,2,34,031,256805,1042,1,9999,99999,99999999,9,99999,99999999,1690215,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0517193,-074.4895934,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21871,3,000,20,1,58,1,01,2,1,0,0,2,34,031,256805,1042,1,9999,99999,99999999,9,99999,99999999,1690215,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0517193,-074.4895934,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21872,3,000,20,1,58,1,01,2,1,0,0,2,34,031,256805,1042,1,9999,99999,99999999,9,99999,99999999,1690215,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0517193,-074.4895934,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21873,3,000,20,1,58,1,01,2,1,0,0,2,34,031,256805,1042,1,9999,99999,99999999,9,99999,99999999,1690215,0,0,0,0,0,35620,05,999,99999,99999999,A,00882232,79460,A,00882315,408,2,99999,99999999,+41.0517193,-074.4895934,L,1,35614,99999,99999,9,N,N,53910,S,02806157,00504,1,99999,99999,17520,026,026,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,075001,07438 +21874,3,000,25,1,15,2,01,2,1,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21875,3,000,25,1,16,1,02,2,1,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21876,3,000,25,2,8,2,11,2,2,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21877,3,000,27,1,13,1,07,2,2,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21878,3,000,30,1,3,2,11,2,2,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21879,3,000,30,1,12,2,11,2,2,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21880,3,000,30,1,12,2,11,2,2,0,0,1,34,039,035400,2025,2,9999,99999,99999999,9,99999,99999999,182532,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6170300,-074.2326419,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21881,3,000,20,1,25,1,07,2,2,0,0,2,34,039,035400,2028,2,9999,99999,99999999,9,99999,99999999,8426,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6236645,-074.2354928,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21882,3,000,20,1,64,1,01,2,1,0,0,2,34,039,035400,2028,2,9999,99999,99999999,9,99999,99999999,8426,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6236645,-074.2354928,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21883,3,000,20,1,64,1,01,2,1,0,0,2,34,039,035400,2028,2,9999,99999,99999999,9,99999,99999999,8426,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,40350,F,00885278,408,2,99999,99999999,+40.6236645,-074.2354928,L,1,35084,99999,99999,9,N,N,40350,A,00885278,01904,1,99999,99999,08610,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,045701,07036 +21884,3,000,25,2,14,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21885,3,000,25,2,16,2,15,2,2,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21886,3,000,25,2,16,2,25,2,3,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21887,3,000,25,2,17,2,06,2,1,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21888,3,000,25,2,17,2,25,2,3,0,0,1,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21889,3,000,25,2,18,2,06,2,1,0,0,2,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21890,3,000,25,2,18,2,06,2,1,0,0,2,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21891,3,000,25,2,18,2,06,2,1,0,0,2,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21892,3,000,25,2,18,2,06,2,1,0,0,2,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21893,3,000,25,2,18,2,06,2,1,0,0,2,36,061,025500,3001,3,9999,99999,99999999,9,99999,99999999,10336,0,0,0,0,0,35620,13,999,99999,99999999,C,00974129,44919,G,00979190,408,2,99999,99999999,+40.8446621,-073.9416500,L,1,35614,99999,99999,9,Y,N,51000,A,02395220,04112,1,99999,99999,20580,071,031,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000759,10032 +21894,3,000,27,2,10,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21895,3,000,30,1,12,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21896,3,000,30,1,12,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21897,3,000,30,2,9,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21898,3,000,30,2,17,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21899,3,000,32,2,30,1,02,2,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21900,3,000,33,1,54,1,02,2,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21901,3,000,33,1,54,1,02,2,1,0,0,2,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21902,3,000,33,2,14,1,02,2,1,0,0,1,01,097,004100,1025,1,9999,99999,99999999,9,99999,99999999,18118,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7296121,-088.0949551,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21903,3,000,20,1,49,1,07,1,2,0,0,2,01,097,004100,1026,1,9999,99999,99999999,9,99999,99999999,35377,0,0,0,0,0,33660,01,999,99999,99999999,A,00161575,92187,S,00161620,380,6,99999,99999999,+30.7317678,-088.0969253,L,1,99999,99999,99999,9,N,N,62496,A,02404573,02803,3,99999,99999,02370,098,033,01779775,99999,99999999,9,999,99999,99999999,999999,57925,U,99999,U,000033,36610 +21904,3,000,21,2,42,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21905,3,000,21,2,42,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21906,3,000,21,2,43,2,03,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21907,3,000,21,2,50,2,06,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21908,3,000,21,2,50,2,06,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21909,3,000,21,2,50,2,06,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21910,3,000,21,2,51,1,01,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21911,3,000,21,2,51,1,01,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21912,3,000,21,2,53,1,04,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21913,3,000,21,2,53,2,06,2,1,0,0,2,06,037,702400,4005,4,9999,99999,99999999,9,99999,99999999,45483,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+34.0251002,-118.3843439,L,1,31084,99999,99999,9,N,N,17568,A,02410276,03748,4,99999,99999,10260,054,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90232 +21914,3,000,20,1,75,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21915,3,000,20,1,76,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21916,3,000,20,1,76,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21917,3,000,20,1,76,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21918,3,000,20,1,78,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21919,3,000,20,1,78,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21920,3,000,20,1,78,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21921,3,000,20,1,78,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21922,3,000,20,1,78,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21923,3,000,20,1,79,1,01,2,1,0,0,2,18,039,001901,4005,4,9999,99999,99999999,9,99999,99999999,498274,0,0,0,0,0,21140,02,999,99999,99999999,A,00450348,14842,A,00453245,515,3,99999,99999999,+41.6715917,-085.9235650,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00501,2,99999,99999,02400,048,012,00448508,99999,99999999,9,999,99999,99999999,999999,26794,U,99999,U,000350,46516 +21924,3,000,30,2,12,1,01,2,1,0,0,1,01,013,953000,1038,1,9999,99999,99999999,9,99999,99999999,7154307,0,0,0,0,0,99999,02,999,99999,99999999,A,00161532,91170,S,00165672,999,6,99999,99999999,+31.9272729,-086.6549540,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0012.2,36037 +21925,3,000,20,1,50,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21926,3,000,20,1,54,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21927,3,000,20,1,54,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21928,3,000,20,1,66,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21929,3,000,20,2,25,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21930,3,000,20,2,25,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21931,3,000,20,2,65,1,01,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21932,3,000,20,2,90,1,02,1,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21933,3,000,20,1,41,1,02,2,1,0,0,2,01,013,953100,2017,2,9999,99999,99999999,9,99999,99999999,261322,26128,0,0,26128,0,99999,02,999,99999,99999999,A,00161532,91422,S,00165674,999,6,99999,99999999,+31.7992279,-086.6213335,B,9,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,00510,090,023,01779775,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000018,36037 +21934,3,000,25,1,20,1,01,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21935,3,000,25,1,24,1,01,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21936,3,000,25,2,0,1,02,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21937,3,000,25,2,1,1,02,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21938,3,000,25,2,6,2,01,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21939,3,000,25,2,6,2,01,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21940,3,000,25,2,16,2,01,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21941,3,000,25,2,17,2,06,2,1,0,0,1,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21942,3,000,25,2,25,1,01,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21943,3,000,25,2,26,1,02,2,1,0,0,2,34,039,035800,3013,3,9999,99999,99999999,9,99999,99999999,11167,0,0,0,0,0,35620,10,999,99999,99999999,A,00882235,61530,F,00885363,408,2,99999,99999999,+40.6007539,-074.2893227,L,1,35084,99999,99999,9,N,N,61530,A,00885363,01904,1,99999,99999,13530,022,022,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,065301,07065 +21944,3,000,20,2,72,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21945,3,000,20,2,75,1,08,2,2,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21946,3,000,20,2,86,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21947,3,000,21,1,52,1,02,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21948,3,000,22,2,33,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21949,3,000,22,2,33,1,01,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21950,3,000,25,1,2,1,01,2,1,0,0,1,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21951,3,000,25,1,2,1,04,2,1,0,0,1,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21952,3,000,25,1,3,1,01,2,1,0,0,1,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21953,3,000,25,1,21,1,04,2,1,0,0,2,23,001,020900,2007,2,9999,99999,99999999,9,99999,99999999,12845,0,0,0,0,0,30340,02,775,99999,99999999,A,00581286,38740,F,00582554,438,1,99999,99999999,+44.1388900,-070.1947874,L,1,99999,99999,74650,1,Y,Y,38740,A,00582554,00600,1,99999,99999,07320,059,021,01779787,99999,99999999,9,999,99999,99999999,999999,49339,U,99999,U,387401,04240 +21954,3,000,25,2,18,2,11,2,2,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21955,3,000,25,2,19,2,11,2,2,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21956,3,000,25,2,21,2,06,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21957,3,000,25,2,23,2,06,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21958,3,000,27,2,19,2,11,2,2,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21959,3,000,30,2,1,2,06,2,1,0,0,1,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21960,3,000,30,2,3,2,11,2,2,0,0,1,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21961,3,000,30,2,6,2,06,2,1,0,0,1,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21962,3,000,30,2,14,2,10,2,2,0,0,1,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21963,3,000,36,2,22,2,06,2,1,0,0,2,32,003,001610,2030,2,9999,99999,99999999,9,99999,99999999,15632,0,0,0,0,0,29820,01,999,99999,99999999,A,00863600,94504,S,01937450,332,8,99999,99999999,+36.1460428,-115.0775905,L,1,99999,99999,99999,9,N,N,71400,S,02410035,00408,4,99999,99999,00060,014,021,01779793,99999,99999999,9,999,99999,99999999,999999,47995,U,99999,U,005576,89104 +21964,3,000,21,1,33,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21965,3,000,21,1,33,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21966,3,000,21,1,34,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21967,3,000,21,1,36,2,06,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21968,3,000,21,1,46,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21969,3,000,21,1,47,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21970,3,000,21,1,47,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21971,3,000,21,1,51,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21972,3,000,21,1,51,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21973,3,000,21,1,66,1,01,2,1,0,0,2,39,085,204400,2003,2,9999,99999,99999999,9,99999,99999999,152807,0,0,0,0,0,17460,14,999,99999,99999999,A,01074055,59416,F,01086428,184,3,99999,99999999,+41.7236489,-081.2348122,L,1,99999,99999,99999,9,N,N,59416,A,01086428,00802,2,99999,99999,10015,060,025,01085497,99999,99999999,9,999,99999,99999999,999999,17668,U,99999,U,043ACP,44077 +21974,3,000,25,1,6,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21975,3,000,25,1,6,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21976,3,000,25,1,6,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21977,3,000,25,1,11,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21978,3,000,25,1,11,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21979,3,000,25,1,11,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21980,3,000,25,1,11,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21981,3,000,25,1,13,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21982,3,000,25,1,13,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21983,3,000,25,1,13,2,06,2,1,0,0,1,06,107,004402,3011,3,9999,99999,99999999,9,99999,99999999,20308,0,0,0,0,0,47300,21,999,99999,99999999,A,00277318,90760,S,01935080,999,9,99999,99999999,+35.8765272,-119.2653690,L,1,99999,99999,99999,9,N,N,20438,S,02408701,10703,4,11760,10860,99999,026,014,01779778,99999,99999999,9,999,99999,99999999,999999,25579,U,99999,U,,93219 +21984,3,000,20,2,55,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21985,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21986,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21987,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21988,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21989,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21990,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21991,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21992,3,000,20,2,57,1,02,1,1,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21993,3,000,20,2,57,1,09,1,2,0,0,2,13,051,010502,2002,2,9999,99999,99999999,9,99999,99999999,430612,0,0,0,0,0,42340,01,999,99999,99999999,A,01694477,92712,S,01936531,496,5,99999,99999999,+32.0374019,-081.1509797,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04701,3,99999,99999,01020,162,002,01705317,99999,99999999,9,999,99999,99999999,999999,79768,U,99999,U,05-06C,31405 +21994,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +21995,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +21996,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +21997,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +21998,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +21999,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +22000,3,000,25,1,23,1,01,2,1,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +22001,3,000,25,1,23,1,08,2,2,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +22002,3,000,25,1,23,1,08,2,2,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +22003,3,000,25,1,23,1,08,2,2,0,0,2,27,003,050218,3002,3,9999,99999,99999999,9,99999,99999999,3867875,31451,0,0,31451,0,33460,06,999,99999,99999999,A,00659447,01486,F,02393954,378,4,99999,99999999,+45.2703710,-093.3935449,B,1,99999,99999,99999,9,N,N,01486,A,02393954,01301,2,99999,99999,03180,35B,035,00662849,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000005,55304 +22004,3,000,20,2,64,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22005,3,000,20,2,68,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22006,3,000,20,2,69,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22007,3,000,20,2,69,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22008,3,000,20,2,69,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22009,3,000,20,2,76,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22010,3,000,20,2,76,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22011,3,000,20,2,76,1,01,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22012,3,000,21,1,37,2,06,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22013,3,000,21,1,37,2,06,2,1,0,0,2,37,089,930100,1039,1,9999,99999,99999999,9,99999,99999999,8051581,0,0,0,0,0,11700,11,999,99999,99999999,A,01008562,90972,N,01026789,120,5,99999,99999999,+35.4127085,-082.2999066,L,1,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,02100,117,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,0000BC,28792 +22014,3,000,21,2,60,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22015,3,000,21,2,60,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22016,3,000,21,2,61,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22017,3,000,21,2,61,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22018,3,000,21,2,61,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22019,3,000,21,2,65,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22020,3,000,21,2,65,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22021,3,000,21,2,65,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22022,3,000,21,2,65,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22023,3,000,21,2,65,1,01,2,1,0,0,2,47,059,091100,2014,2,9999,99999,99999999,9,99999,99999999,23997209,0,0,0,0,0,24620,01,999,99999,99999999,A,01639747,90820,N,02464446,999,6,99999,99999999,+35.9957681,-082.8873567,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00900,3,99999,99999,01470,011,001,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003077,37743 +22024,3,000,21,1,43,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22025,3,000,21,1,43,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22026,3,000,21,1,43,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22027,3,000,21,1,44,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22028,3,000,21,1,44,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22029,3,000,21,1,44,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22030,3,000,21,1,44,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22031,3,000,21,1,44,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22032,3,000,21,1,44,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22033,3,000,21,1,48,1,01,2,1,0,0,2,48,339,691602,1004,1,9999,99999,99999999,9,99999,99999999,86083,0,0,0,0,0,26420,08,999,99999,99999999,A,01383955,93655,S,01939213,288,7,99999,99999999,+30.1395780,-095.4661195,L,1,99999,99999,99999,9,Y,N,72656,S,02410076,04503,3,99999,99999,15000,015,004,01779801,99999,99999999,9,999,99999,99999999,999999,87300,U,99999,U,000067,77380 +22034,3,000,30,1,20,1,01,2,1,0,0,2,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22035,3,000,30,2,1,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22036,3,000,30,2,5,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22037,3,000,30,2,5,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22038,3,000,30,2,5,1,07,2,2,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22039,3,000,30,2,6,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22040,3,000,30,2,9,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22041,3,000,30,2,9,1,01,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22042,3,000,30,2,10,1,02,2,1,0,0,1,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22043,3,000,30,2,18,1,01,2,1,0,0,2,12,101,031205,1004,1,9999,99999,99999999,9,99999,99999999,1581593,0,0,0,0,0,45300,12,999,99999,99999999,A,00295739,92860,S,01935905,999,5,99999,99999999,+28.3657283,-082.6563575,L,1,99999,99999,99999,9,9,9,99999,9,99999999,10102,3,99999,99999,01530,037,010,00294478,99999,99999999,9,999,99999,99999999,999999,86599,U,99999,U,000128,34667 +22044,3,000,25,2,18,1,01,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22045,3,000,25,2,18,1,01,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22046,3,000,25,2,18,1,01,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22047,3,000,25,2,18,1,01,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22048,3,000,25,2,18,1,04,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22049,3,000,27,1,24,1,11,2,2,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22050,3,000,27,2,9,1,01,2,1,0,0,1,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22051,3,000,28,2,76,1,15,2,2,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22052,3,000,29,2,69,1,02,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22053,3,000,29,2,69,1,02,2,1,0,0,2,12,011,020313,2004,2,9999,99999,99999999,9,99999,99999999,34828,0,0,0,0,0,33100,22,999,99999,99999999,A,00295753,90644,S,01935843,370,5,99999,99999999,+26.2617503,-080.2797167,L,1,22744,99999,99999,9,N,N,14400,A,02404127,01115,3,99999,99999,00180,097,032,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,00E025,33065 +22054,3,000,21,1,43,1,04,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22055,3,000,21,1,44,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22056,3,000,21,1,44,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22057,3,000,21,1,44,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22058,3,000,21,1,45,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22059,3,000,21,1,45,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22060,3,000,21,1,45,1,04,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22061,3,000,21,1,46,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22062,3,000,21,1,47,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22063,3,000,21,1,47,1,01,2,1,0,0,2,51,087,200413,3002,3,9999,99999,99999999,9,99999,99999999,1162371,1533,0,0,1533,0,40060,07,999,99999,99999999,A,01480133,90496,N,01927116,999,5,99999,99999999,+37.6655766,-077.5367506,B,1,99999,99999,99999,9,9,9,99999,9,99999999,08702,3,99999,99999,01890,073,012,01779803,99999,99999999,9,999,99999,99999999,999999,74746,U,99999,U,000108,23060 +22064,3,000,21,1,39,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22065,3,000,21,1,39,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22066,3,000,21,1,45,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22067,3,000,21,1,45,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22068,3,000,21,1,46,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22069,3,000,21,1,46,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22070,3,000,21,1,46,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22071,3,000,21,1,47,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22072,3,000,21,1,48,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22073,3,000,21,1,48,1,01,2,1,0,0,2,45,035,010821,2005,2,9999,99999,99999999,9,99999,99999999,442471,0,0,0,0,0,16700,01,999,99999,99999999,A,01247998,93276,S,01938433,999,5,99999,99999999,+32.9432699,-080.1268359,L,1,99999,99999,99999,9,Y,N,50875,A,02404391,02100,3,99999,99999,02010,098,038,01779799,99999,99999999,9,999,99999,99999999,999999,15508,U,99999,U,000106,29485 +22074,3,000,21,1,73,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22075,3,000,21,1,74,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22076,3,000,21,2,67,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22077,3,000,21,2,69,1,01,2,1,0,0,2,26,019,000400,1012,1,9999,99999,99999999,9,99999,99999999,161687,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6462693,-086.2429348,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22078,3,000,20,2,67,1,01,1,1,0,0,2,26,019,000400,1014,1,9999,99999,99999999,9,99999,99999999,939142,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6554137,-086.2384275,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22079,3,000,20,2,67,1,01,1,1,0,0,2,26,019,000400,1014,1,9999,99999,99999999,9,99999,99999999,939142,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6554137,-086.2384275,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22080,3,000,20,2,67,1,01,1,1,0,0,2,26,019,000400,1014,1,9999,99999,99999999,9,99999,99999999,939142,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6554137,-086.2384275,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22081,3,000,20,2,68,1,01,1,1,0,0,2,26,019,000400,1014,1,9999,99999,99999999,9,99999,99999999,939142,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6554137,-086.2384275,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22082,3,000,20,2,68,1,01,1,1,0,0,2,26,019,000400,1014,1,9999,99999,99999999,9,99999,99999999,939142,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6554137,-086.2384275,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22083,3,000,20,2,68,1,01,1,1,0,0,2,26,019,000400,1014,1,9999,99999,99999999,9,99999,99999999,939142,0,0,0,0,0,45900,01,999,99999,99999999,A,01622952,19180,A,01626148,999,3,99999,99999999,+44.6554137,-086.2384275,L,2,99999,99999,99999,9,9,9,99999,9,99999999,00500,2,99999,99999,14790,101,035,01779789,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,019005,49635 +22084,3,000,20,1,58,1,01,2,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22085,3,000,20,1,59,1,01,2,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22086,3,000,20,1,59,1,01,2,1,0,0,2,37,175,960502,3008,3,9999,99999,99999999,9,99999,99999999,150203,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2306085,-082.8570895,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22087,3,000,21,2,50,1,01,2,1,0,0,2,37,175,960502,3009,3,9999,99999,99999999,9,99999,99999999,53006,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2292715,-082.8579228,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22088,3,000,20,2,73,1,01,1,1,0,0,2,37,175,960502,3010,3,9999,99999,99999999,9,99999,99999999,108996,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2429295,-082.8692304,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22089,3,000,20,2,73,1,01,1,1,0,0,2,37,175,960502,3010,3,9999,99999,99999999,9,99999,99999999,108996,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2429295,-082.8692304,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22090,3,000,20,2,76,1,01,1,1,0,0,2,37,175,960502,3010,3,9999,99999,99999999,9,99999,99999999,108996,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2429295,-082.8692304,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22091,3,000,20,1,47,2,06,2,1,0,0,2,37,175,960502,3010,3,9999,99999,99999999,9,99999,99999999,108996,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2429295,-082.8692304,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22092,3,000,20,1,65,1,01,2,1,0,0,2,37,175,960502,3010,3,9999,99999,99999999,9,99999,99999999,108996,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2429295,-082.8692304,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22093,3,000,20,1,66,1,01,2,1,0,0,2,37,175,960502,3010,3,9999,99999,99999999,9,99999,99999999,108996,0,0,0,0,0,14820,11,999,99999,99999999,A,01008589,91248,N,01027233,120,5,99999,99999999,+35.2429295,-082.8692304,L,2,99999,99999,99999,9,9,9,99999,9,99999999,02500,3,99999,99999,04530,113,048,01027616,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000TC1,28708 +22094,5,301,37,2,78,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22095,5,301,37,2,78,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22096,5,301,37,2,78,2,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22097,5,301,37,2,80,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22098,5,301,37,2,80,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22099,5,301,37,2,80,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22100,5,301,37,2,80,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22101,5,301,37,2,81,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22102,5,301,37,2,81,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22103,5,301,37,2,81,1,01,0,1,1,3,2,08,123,000401,4000,4,9999,99999,99999999,9,99999,99999999,19543,0,0,0,0,0,24540,04,999,99999,99999999,A,00198177,91634,S,01935479,216,8,99999,99999999,+40.4128686,-104.7084026,L,1,99999,99999,99999,9,Y,N,32155,A,02410654,01002,4,99999,99999,04410,050,013,01779779,99999,99999999,9,999,99999,99999999,999999,34786,U,99999,U,123114,80631 +22104,3,000,20,1,76,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22105,3,000,20,1,76,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22106,3,000,20,1,76,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22107,3,000,20,1,76,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22108,3,000,20,1,76,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22109,3,000,20,1,78,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22110,3,000,20,1,78,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22111,3,000,20,1,78,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22112,3,000,20,1,78,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22113,3,000,20,1,78,1,01,2,1,0,0,2,24,005,450900,2019,2,9999,99999,99999999,9,99999,99999999,18868,0,0,0,0,0,12580,02,999,99999,99999999,A,01695314,91296,N,01929490,548,5,99999,99999999,+39.2889921,-076.4123344,L,1,99999,99999,99999,9,N,N,26600,S,02389051,00506,3,99999,99999,00120,006,006,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,15-019,21221 +22114,3,000,21,2,75,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22115,3,000,21,2,75,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22116,3,000,21,2,75,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22117,3,000,21,2,75,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22118,3,000,21,2,77,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22119,3,000,21,2,77,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22120,3,000,21,2,77,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22121,3,000,21,2,81,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22122,3,000,21,2,82,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22123,3,000,21,2,82,1,01,2,1,0,0,2,13,175,951100,3003,3,9999,99999,99999999,9,99999,99999999,9416089,43982,0,0,43982,0,20140,12,999,99999,99999999,A,00346568,92484,S,01936490,999,5,99999,99999999,+32.4376877,-082.8565140,B,2,99999,99999,99999,9,9,9,99999,9,99999999,03500,3,99999,99999,01890,150,020,01705317,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000016,31021 +22124,3,000,20,1,61,1,01,2,1,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22125,3,000,22,1,53,2,25,2,3,0,0,2,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22126,3,000,25,1,9,1,01,2,1,0,0,1,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22127,3,000,25,1,11,1,01,2,1,0,0,1,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22128,3,000,25,1,14,1,01,2,1,0,0,1,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22129,3,000,25,1,14,1,01,2,1,0,0,1,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22130,3,000,25,1,14,1,01,2,1,0,0,1,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22131,3,000,30,2,17,1,01,2,1,0,0,1,47,061,955200,1055,1,9999,99999,99999999,9,99999,99999999,159369,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3568831,-085.5580515,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22132,3,000,20,1,46,1,01,1,1,0,0,2,47,061,955200,1057,1,9999,99999,99999999,9,99999,99999999,197300,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3473583,-085.5663117,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22133,3,000,20,1,51,1,01,1,1,0,0,2,47,061,955200,1057,1,9999,99999,99999999,9,99999,99999999,197300,0,0,0,0,0,99999,04,999,99999,99999999,A,01639748,90252,N,02463924,999,6,99999,99999999,+35.3473583,-085.5663117,L,9,99999,99999,99999,9,N,N,56560,A,02407070,03300,3,99999,99999,01530,043,016,01325873,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,003162,37365 +22134,3,000,20,2,62,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22135,3,000,20,2,62,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22136,3,000,20,2,62,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22137,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22138,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22139,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22140,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22141,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22142,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22143,3,000,20,2,63,1,01,1,1,0,0,2,18,133,956302,1001,1,9999,99999,99999999,9,99999,99999999,76624,0,0,0,0,0,26900,04,999,99999,99999999,A,00450384,29376,A,00453347,294,3,99999,99999999,+39.6511104,-086.8364060,L,1,99999,99999,99999,9,N,N,29358,A,02394980,02200,2,99999,99999,03990,044,024,00448508,99999,99999999,9,999,99999,99999999,999999,34840,U,99999,U,000250,46135 +22144,3,000,20,2,53,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22145,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22146,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22147,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22148,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22149,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22150,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22151,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22152,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22153,3,000,20,2,55,1,01,2,1,0,0,2,48,085,030548,3010,3,9999,99999,99999999,9,99999,99999999,68104,0,0,0,0,0,19100,03,999,99999,99999999,A,01383828,92360,S,01938953,206,7,99999,99999999,+33.2019290,-096.6815915,L,1,19124,99999,99999,9,N,N,45744,A,02411064,01905,3,99999,99999,29850,070,008,01779801,99999,99999999,9,999,99999,99999999,999999,52695,U,99999,U,000149,75071 +22154,3,000,25,2,2,2,06,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22155,3,000,25,2,7,1,01,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22156,3,000,25,2,9,1,01,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22157,3,000,25,2,15,1,01,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22158,3,000,25,2,15,1,01,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22159,3,000,25,2,17,2,01,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22160,3,000,25,2,26,1,08,2,2,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22161,3,000,29,2,92,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22162,3,000,29,2,92,1,01,2,1,0,0,2,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22163,3,000,30,1,1,1,04,2,1,0,0,1,48,113,013804,1005,1,9999,99999,99999999,9,99999,99999999,56639,0,0,0,0,0,19100,24,999,99999,99999999,A,01383842,92792,S,01939038,206,7,99999,99999999,+32.9241594,-096.8471696,L,1,19124,99999,99999,9,N,N,25452,A,02410484,02310,3,99999,99999,16230,115,016,01779801,99999,99999999,9,999,99999,99999999,999999,22042,U,99999,U,002307,75244 +22164,3,000,21,2,41,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22165,3,000,21,2,41,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22166,3,000,21,2,43,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22167,3,000,21,2,43,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22168,3,000,21,2,45,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22169,3,000,21,2,45,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22170,3,000,21,2,45,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22171,3,000,21,2,48,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22172,3,000,21,2,48,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22173,3,000,21,2,48,1,01,2,1,0,0,2,47,155,080203,2002,2,9999,99999,99999999,9,99999,99999999,40299,0,0,0,0,0,42940,01,999,99999,99999999,A,01639789,91106,N,02464572,315,6,99999,99999999,+35.8778314,-083.7544427,L,2,99999,99999,99999,9,N,N,67200,S,02402842,01400,3,99999,99999,03780,012,002,01325873,99999,99999999,9,999,99999,99999999,999999,80805,U,99999,U,007968,37865 +22174,3,000,28,1,53,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22175,3,000,28,2,23,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22176,3,000,28,2,25,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22177,3,000,28,2,25,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22178,3,000,28,2,26,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22179,3,000,28,2,28,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22180,3,000,28,2,29,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22181,3,000,28,2,65,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22182,3,000,28,2,65,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22183,3,000,29,1,72,2,06,2,1,0,0,2,06,037,237500,2000,2,9999,99999,99999999,9,99999,99999999,21233,0,0,0,0,0,31080,37,999,99999,99999999,A,00277283,91750,S,01935180,348,9,99999,99999999,+33.9786857,-118.2881530,L,1,31084,99999,99999,9,Y,N,44000,A,02410877,03750,4,99999,99999,22710,059,030,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,90044 +22184,3,000,20,1,73,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22185,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22186,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22187,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22188,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22189,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22190,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22191,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22192,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22193,3,000,20,1,75,1,01,2,1,0,0,2,04,019,004717,1006,1,9999,99999,99999999,9,99999,99999999,764073,0,0,0,0,0,46060,02,999,99999,99999999,A,00025446,93570,S,01934987,536,8,99999,99999999,+32.3349516,-110.9009171,L,1,99999,99999,99999,9,N,N,11230,S,02407990,01904,4,99999,99999,01760,009,009,01779777,99999,99999999,9,999,99999,99999999,999999,88732,U,99999,U,000158,85718 +22194,3,000,25,2,1,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22195,3,000,25,2,1,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22196,3,000,25,2,1,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22197,3,000,25,2,2,1,09,2,2,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22198,3,000,25,2,2,1,09,2,2,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22199,3,000,25,2,4,1,09,2,2,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22200,3,000,25,2,5,1,07,2,2,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22201,3,000,25,2,6,1,09,2,2,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22202,3,000,25,2,8,1,07,2,2,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22203,3,000,25,2,10,1,01,2,1,0,0,1,08,013,012904,2000,2,9999,99999,99999999,9,99999,99999999,144020,0,0,0,0,0,14500,02,999,99999,99999999,A,00198122,92052,S,01935501,216,8,99999,99999999,+39.9977344,-105.1242806,L,1,99999,99999,99999,9,N,N,41835,A,02411592,00601,4,99999,99999,02490,012,017,01779779,99999,99999999,9,999,99999,99999999,999999,46126,U,99999,U,013313,80026 +22204,3,000,21,2,70,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22205,3,000,21,2,73,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22206,3,000,21,2,86,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22207,3,000,22,2,53,1,01,2,1,0,0,2,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22208,3,000,25,1,3,1,01,2,1,0,0,1,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22209,3,000,25,1,4,1,01,2,1,0,0,1,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22210,3,000,25,1,4,1,01,2,1,0,0,1,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22211,3,000,25,1,4,1,01,2,1,0,0,1,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22212,3,000,25,1,4,1,01,2,1,0,0,1,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22213,3,000,25,1,5,1,04,2,1,0,0,1,27,123,042602,2027,2,9999,99999,99999999,9,99999,99999999,20085,0,0,0,0,0,33460,04,999,99999,99999999,A,00659507,47221,F,02395261,378,4,99999,99999999,+45.0089022,-092.9910653,L,1,99999,99999,99999,9,N,N,47221,A,02395261,01502,2,99999,99999,23850,43B,043,00662849,99999,99999999,9,999,99999,99999999,999999,57628,U,99999,U,000390,55109 +22214,3,000,20,1,40,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22215,3,000,20,1,40,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22216,3,000,20,1,40,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22217,3,000,20,1,42,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22218,3,000,20,1,57,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22219,3,000,20,1,57,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22220,3,000,20,1,57,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22221,3,000,20,1,57,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22222,3,000,20,1,57,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22223,3,000,20,1,66,1,01,2,1,0,0,2,34,037,373900,2022,2,9999,99999,99999999,9,99999,99999999,208331,0,0,0,0,0,35620,05,999,99999,99999999,A,00882236,70890,A,00882262,408,2,99999,99999999,+41.1134393,-074.8429908,L,1,35084,99999,99999,9,N,N,15610,S,02389370,01600,1,15750,08060,99999,024,024,01779795,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,100002,07860 +22224,3,000,25,1,18,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22225,3,000,25,1,18,1,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22226,3,000,25,1,19,2,11,2,2,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22227,3,000,25,1,30,2,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22228,3,000,25,2,6,1,01,2,1,0,0,1,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22229,3,000,25,2,6,1,01,2,1,0,0,1,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22230,3,000,25,2,6,1,01,2,1,0,0,1,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22231,3,000,25,2,9,1,06,2,1,0,0,1,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22232,3,000,25,2,19,2,01,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22233,3,000,28,1,46,2,06,2,1,0,0,2,12,017,450202,3014,3,9999,99999,99999999,9,99999,99999999,14685,0,0,0,0,0,26140,11,999,99999,99999999,A,00295752,91625,S,01935808,999,5,99999,99999999,+28.9244660,-082.4445162,L,1,99999,99999,99999,9,N,N,06125,S,02402686,01700,3,99999,99999,00270,034,010,00294478,99999,99999999,9,999,99999,99999999,999999,07472,U,99999,U,0203.1,34465 +22234,3,000,25,2,15,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22235,3,000,25,2,15,1,01,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22236,3,000,25,2,18,1,01,2,1,0,0,2,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22237,3,000,25,2,19,1,01,2,1,0,0,2,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22238,3,000,27,1,6,1,02,2,1,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22239,3,000,28,1,23,1,01,2,1,0,0,2,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22240,3,000,30,2,2,1,08,2,2,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22241,3,000,30,2,2,1,08,2,2,0,0,1,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22242,3,000,33,1,28,2,01,2,1,0,0,2,38,015,011001,3008,3,9999,99999,99999999,9,99999,99999999,60559,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8409856,-100.7480069,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22243,3,000,20,1,36,1,01,1,1,0,0,2,38,015,011001,3010,3,9999,99999,99999999,9,99999,99999999,60540,0,0,0,0,0,13900,00,999,99999,99999999,A,01035614,07200,F,01035934,999,4,99999,99999999,+46.8402442,-100.7454439,L,1,99999,99999,99999,9,Y,N,07200,A,01035934,00300,2,99999,99999,00014,007,007,01779797,99999,99999999,9,999,99999,99999999,999999,07921,U,99999,U,000708,58503 +22244,3,000,21,2,66,1,04,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22245,3,000,22,2,48,1,01,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22246,3,000,22,2,48,1,01,2,1,0,0,2,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22247,3,000,25,1,0,1,04,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22248,3,000,25,1,0,1,04,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22249,3,000,25,1,0,1,04,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22250,3,000,25,1,0,1,04,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22251,3,000,25,1,2,1,02,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22252,3,000,25,1,3,1,04,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22253,3,000,25,1,3,1,04,2,1,0,0,1,24,027,602306,1006,1,9999,99999,99999999,9,99999,99999999,92374,0,0,0,0,0,12580,07,999,99999,99999999,A,01709077,90144,N,01929528,548,5,99999,99999999,+39.2758116,-076.8344142,L,1,99999,99999,99999,9,N,N,26000,S,02389035,00901,3,99999,99999,00420,09B,009,01714934,99999,99999999,9,999,99999,99999999,999999,04843,U,99999,U,02-012,21042 +22254,3,000,21,2,58,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22255,3,000,21,2,58,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22256,3,000,21,2,62,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22257,3,000,21,2,62,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22258,3,000,21,2,62,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22259,3,000,21,2,62,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22260,3,000,21,2,63,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22261,3,000,21,2,63,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22262,3,000,21,2,63,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22263,3,000,21,2,64,1,01,2,1,0,0,2,37,037,020103,1010,1,9999,99999,99999999,9,99999,99999999,627266,843,0,0,843,0,20500,06,999,99999,99999999,A,01008544,94016,N,01026543,450,5,99999,99999999,+35.8362486,-079.0493712,B,1,99999,99999,99999,9,N,N,27180,S,02812782,01500,3,99999,99999,00750,054,023,01027616,99999,99999999,9,999,99999,99999999,999999,34042,U,99999,U,NWM117,27517 +22264,3,000,29,1,71,1,04,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22265,3,000,29,2,43,2,01,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22266,3,000,30,1,8,1,02,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22267,3,000,30,1,8,1,02,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22268,3,000,30,1,8,1,02,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22269,3,000,33,2,17,1,02,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22270,3,000,34,1,12,1,01,2,1,0,0,1,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22271,3,000,34,1,19,1,08,2,2,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22272,3,000,34,1,20,1,01,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22273,3,000,34,1,20,1,01,2,1,0,0,2,55,079,014900,1000,1,9999,99999,99999999,9,99999,99999999,40088,0,0,0,0,0,33340,04,999,99999,99999999,A,01581100,53000,F,01583724,376,3,99999,99999999,+43.0380851,-087.9397505,L,1,99999,99999,99999,9,Y,N,53000,A,01583724,02803,2,99999,99999,09600,016,006,01779806,99999,99999999,9,999,99999,99999999,999999,57466,U,99999,U,003749,53233 +22274,3,000,20,2,57,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22275,3,000,20,2,58,1,04,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22276,3,000,20,2,58,2,06,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22277,3,000,20,2,58,2,06,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22278,3,000,20,2,58,2,06,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22279,3,000,20,2,59,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22280,3,000,20,2,59,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22281,3,000,20,2,62,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22282,3,000,20,2,64,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22283,3,000,20,2,64,2,01,2,1,0,0,2,48,215,023806,1011,1,9999,99999,99999999,9,99999,99999999,393307,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.2772626,-098.1476490,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000053,78542 +22284,3,000,31,2,76,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22285,3,000,33,1,42,2,06,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22286,3,000,34,1,25,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22287,3,000,34,1,25,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22288,3,000,34,1,28,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22289,3,000,34,1,28,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22290,3,000,34,1,28,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22291,3,000,34,1,28,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22292,3,000,34,1,28,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22293,3,000,34,1,28,1,04,2,1,0,0,2,06,085,504311,2007,2,9999,99999,99999999,9,99999,99999999,4523,0,0,0,0,0,41940,17,999,99999,99999999,A,00277307,92830,S,01935288,488,9,99999,99999999,+37.3830167,-121.8881069,L,1,99999,99999,99999,9,Y,N,68000,A,02411790,08521,4,28680,11820,99999,025,010,01779778,99999,99999999,9,999,99999,99999999,999999,79039,U,99999,U,,95131 +22294,3,000,20,1,66,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22295,3,000,20,1,66,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22296,3,000,20,1,66,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22297,3,000,20,1,66,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22298,3,000,20,1,66,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22299,3,000,20,2,70,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22300,3,000,20,2,70,1,01,1,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22301,3,000,20,2,72,1,11,1,2,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22302,3,000,20,2,38,2,01,2,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22303,3,000,20,2,42,2,06,2,1,0,0,2,39,149,972000,3015,3,9999,99999,99999999,9,99999,99999999,9321,0,0,0,0,0,43380,04,999,99999,99999999,A,01074087,16168,A,01086958,212,3,99999,99999999,+40.2837403,-084.1597727,L,2,99999,99999,99999,9,Y,N,72424,A,02395881,02200,2,99999,99999,10003,085,012,01085497,99999,99999999,9,999,99999,99999999,999999,81874,U,99999,U,075AAS,45365 +22304,3,000,21,2,53,2,18,2,2,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22305,3,000,21,2,55,2,01,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22306,3,000,21,2,55,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22307,3,000,21,2,56,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22308,3,000,21,2,56,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22309,3,000,21,2,56,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22310,3,000,21,2,57,2,06,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22311,3,000,21,2,60,1,01,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22312,3,000,21,2,61,2,11,2,2,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22313,3,000,21,2,76,1,01,2,1,0,0,2,06,065,042405,1000,1,9999,99999,99999999,9,99999,99999999,204801,0,0,0,0,0,40140,41,999,99999,99999999,A,00277297,92640,S,01935269,348,9,99999,99999999,+33.9446655,-117.2462477,L,1,99999,99999,99999,9,N,N,49270,A,02411159,06518,4,99999,99999,25800,061,031,01779778,99999,99999999,9,999,99999,99999999,999999,75340,U,99999,U,,92557 +22314,3,000,21,2,53,1,01,2,1,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22315,3,000,25,1,2,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22316,3,000,25,1,6,2,11,2,2,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22317,3,000,25,1,14,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22318,3,000,25,1,14,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22319,3,000,25,1,14,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22320,3,000,25,1,19,1,02,2,1,0,0,2,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22321,3,000,25,2,2,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22322,3,000,25,2,2,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22323,3,000,25,2,2,2,06,2,1,0,0,1,48,039,661902,1029,1,9999,99999,99999999,9,99999,99999999,25763,0,0,0,0,0,26420,14,999,99999,99999999,A,01383805,90094,S,01938494,288,7,99999,99999999,+29.4942186,-095.4456241,L,1,99999,99999,99999,9,9,9,99999,9,99999999,04802,3,99999,99999,08090,025,011,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000021,77583 +22324,3,000,25,2,31,2,11,2,2,0,0,2,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22325,3,000,25,2,31,2,11,2,2,0,0,2,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22326,3,000,30,2,5,1,13,2,2,0,0,1,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22327,3,000,31,2,81,1,06,2,1,0,0,2,48,201,432004,1016,1,9999,99999,99999999,9,99999,99999999,19141,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7332470,-095.4728421,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22328,3,000,20,1,36,2,11,1,2,0,0,2,48,201,432004,1017,1,9999,99999,99999999,9,99999,99999999,20058,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7324652,-095.4728714,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22329,3,000,20,1,39,2,11,1,2,0,0,2,48,201,432004,1017,1,9999,99999,99999999,9,99999,99999999,20058,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7324652,-095.4728714,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22330,3,000,20,1,60,1,03,1,1,0,0,2,48,201,432004,1017,1,9999,99999,99999999,9,99999,99999999,20058,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7324652,-095.4728714,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22331,3,000,20,2,51,2,11,1,2,0,0,2,48,201,432004,1017,1,9999,99999,99999999,9,99999,99999999,20058,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7324652,-095.4728714,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22332,3,000,20,2,63,1,01,1,1,0,0,2,48,201,432004,1017,1,9999,99999,99999999,9,99999,99999999,20058,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7324652,-095.4728714,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22333,3,000,20,2,63,1,04,1,1,0,0,2,48,201,432004,1017,1,9999,99999,99999999,9,99999,99999999,20058,0,0,0,0,0,26420,07,999,99999,99999999,A,01383886,91835,S,01938848,288,7,99999,99999999,+29.7324652,-095.4728714,L,1,99999,99999,99999,9,Y,N,35000,A,02410796,04613,3,99999,99999,23640,134,017,01779801,99999,99999999,9,999,99999,99999999,999999,40429,U,99999,U,000569,77056 +22334,3,000,25,1,15,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22335,3,000,25,2,11,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22336,3,000,27,1,11,1,01,2,1,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22337,3,000,30,2,0,2,11,2,2,0,0,1,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22338,3,000,34,1,60,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22339,3,000,36,1,71,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22340,3,000,36,1,79,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22341,3,000,36,1,79,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22342,3,000,36,2,22,1,01,2,1,0,0,2,08,083,969000,1002,1,9999,99999,99999999,9,99999,99999999,5227504,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4868772,-108.5523729,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22343,3,000,21,1,58,1,01,2,1,0,0,2,08,083,969000,1003,1,9999,99999,99999999,9,99999,99999999,181993,0,0,0,0,0,99999,03,999,99999,99999999,A,00198157,91045,S,01935446,999,8,99999,99999999,+37.4708913,-108.5417688,L,9,99999,99999,99999,9,9,9,99999,9,99999999,02200,4,99999,99999,03390,058,006,01779779,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,083002,81323 +22344,3,000,21,2,66,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22345,3,000,22,2,60,1,04,2,1,0,0,2,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22346,3,000,25,1,4,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22347,3,000,25,1,4,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22348,3,000,25,1,4,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22349,3,000,25,1,4,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22350,3,000,25,1,4,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22351,3,000,25,1,4,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22352,3,000,25,1,6,1,08,2,2,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22353,3,000,25,1,15,1,04,2,1,0,0,1,06,013,355126,2002,2,9999,99999,99999999,9,99999,99999999,38603,0,0,0,0,0,41860,15,999,99999,99999999,A,01675903,93310,S,01935336,488,9,99999,99999999,+37.7783591,-121.8957619,L,1,36084,99999,99999,9,Y,N,68378,A,02411805,01305,4,99999,99999,35130,016,007,01779778,99999,99999999,9,999,99999,99999999,999999,19504,U,99999,U,,94582 +22354,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22355,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22356,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22357,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22358,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22359,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22360,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22361,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22362,3,000,25,1,18,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22363,3,000,25,1,19,1,01,2,1,0,0,2,33,011,011401,3000,3,9999,99999,99999999,9,99999,99999999,813952,0,0,0,0,0,31700,02,715,99999,99999999,A,00873179,50260,F,00873672,148,1,99999,99999999,+42.7376351,-071.5074170,L,1,99999,75404,71650,1,Y,Y,50260,A,00873672,00603,1,99999,99999,04980,532,012,01779794,99999,99999999,9,999,99999,99999999,999999,61165,U,99999,U,NASH05,03062 +22364,3,000,21,2,27,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22365,3,000,21,2,28,1,09,2,2,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22366,3,000,21,2,29,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22367,3,000,21,2,29,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22368,3,000,21,2,29,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22369,3,000,21,2,29,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22370,3,000,21,2,30,2,02,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22371,3,000,21,2,34,2,11,2,2,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22372,3,000,21,2,34,2,11,2,2,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22373,3,000,21,2,38,1,01,2,1,0,0,2,12,069,030916,1033,1,9999,99999,99999999,9,99999,99999999,9704824,196586,0,0,196586,0,36740,06,999,99999,99999999,A,00308551,92262,S,01935859,422,5,99999,99999999,+28.8066034,-081.4370481,B,1,99999,99999,99999,9,9,9,99999,9,99999999,06901,3,99999,99999,01050,031,012,00294478,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000009,32776 +22374,3,000,20,1,68,2,11,2,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22375,3,000,20,1,84,1,08,2,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22376,3,000,20,2,24,2,06,2,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22377,3,000,20,2,38,2,06,2,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22378,3,000,20,2,61,2,06,2,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22379,3,000,20,2,68,2,11,2,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22380,3,000,20,2,68,2,11,2,2,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22381,3,000,20,2,69,2,06,2,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22382,3,000,20,2,69,2,06,2,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22383,3,000,20,2,71,2,01,2,1,0,0,2,48,215,023602,2009,2,9999,99999,99999999,9,99999,99999999,47109,0,0,0,0,0,32580,15,999,99999,99999999,A,01383893,91170,S,01938712,365,7,99999,99999999,+26.3038910,-098.1363830,L,1,99999,99999,99999,9,Y,N,22660,A,02410401,06804,3,99999,99999,18180,040,020,01779801,99999,99999999,9,999,99999,99999999,999999,52390,U,99999,U,000108,78542 +22384,3,000,20,1,70,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22385,3,000,20,1,70,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22386,3,000,20,1,70,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22387,3,000,20,1,70,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22388,3,000,20,1,70,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22389,3,000,20,1,72,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22390,3,000,20,1,72,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22391,3,000,20,1,72,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22392,3,000,20,1,73,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22393,3,000,20,1,73,1,01,1,1,0,0,2,42,125,751100,4005,4,9999,99999,99999999,9,99999,99999999,2028240,0,0,0,0,0,38300,14,999,99999,99999999,A,01209190,11176,A,01217184,430,2,99999,99999999,+40.2004527,-080.3190741,L,1,99999,99999,99999,9,N,N,86000,S,02390525,04011,1,99999,99999,23760,046,046,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,000290,15301 +22394,3,000,20,2,69,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22395,3,000,20,2,71,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22396,3,000,20,2,71,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22397,3,000,20,2,72,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22398,3,000,20,2,73,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22399,3,000,20,2,80,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22400,3,000,20,2,80,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22401,3,000,20,2,80,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22402,3,000,20,2,80,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22403,3,000,20,2,80,1,01,1,1,0,0,2,42,003,151700,3007,3,9999,99999,99999999,9,99999,99999999,29438,0,0,0,0,0,38300,18,999,99999,99999999,A,01213657,61000,F,01214818,430,2,99999,99999999,+40.4223574,-079.9386093,L,1,99999,99999,99999,9,Y,N,61000,A,01214818,01702,1,99999,99999,19170,023,043,01779798,99999,99999999,9,999,99999,99999999,999999,69697,U,99999,U,009960,15217 +22404,3,000,21,2,79,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22405,3,000,21,2,79,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22406,3,000,22,1,53,1,03,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22407,3,000,25,1,20,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22408,3,000,25,1,21,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22409,3,000,25,1,21,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22410,3,000,25,1,21,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22411,3,000,25,1,21,1,01,2,1,0,0,2,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22412,3,000,25,2,13,1,01,2,1,0,0,1,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22413,3,000,25,2,13,1,01,2,1,0,0,1,48,337,950402,3014,3,9999,99999,99999999,9,99999,99999999,1377885,0,0,0,0,0,99999,13,999,99999,99999999,A,01383954,90390,S,01938553,999,7,99999,99999999,+33.4617436,-097.7590580,L,9,99999,99999,99999,9,N,N,71264,S,02586993,00600,3,99999,99999,10990,068,030,01779801,99999,99999999,9,999,99999,99999999,999999,99999,9,99999,R,000008,76270 +22414,3,000,21,2,37,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22415,3,000,21,2,37,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22416,3,000,21,2,37,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22417,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22418,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22419,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22420,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22421,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22422,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22423,3,000,21,2,39,1,01,2,1,0,0,2,18,183,050600,1020,1,9999,99999,99999999,9,99999,99999999,435233,0,0,0,0,0,23060,03,999,99999,99999999,A,00450369,77750,A,00453940,258,3,99999,99999999,+41.1446187,-085.4297830,L,1,99999,99999,99999,9,9,9,99999,9,99999999,00900,2,99999,99999,02280,083,017,00448508,99999,99999999,9,999,99999,99999999,999999,19018,U,99999,U,000320,46725 +22424,3,000,20,1,39,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22425,3,000,20,1,39,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22426,3,000,20,1,39,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22427,3,000,20,1,42,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22428,3,000,20,1,42,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22429,3,000,20,1,42,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22430,3,000,20,1,43,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22431,3,000,20,1,43,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22432,3,000,20,1,43,1,02,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22433,3,000,20,1,46,1,01,1,1,0,0,2,34,013,000700,2000,2,9999,99999,99999999,9,99999,99999999,32158,0,0,0,0,0,35620,08,999,99999,99999999,A,00882276,51000,F,00885317,408,2,99999,99999999,+40.7588501,-074.1903272,L,1,35084,99999,99999,9,Y,N,51000,A,00885317,01406,1,99999,99999,11340,028,028,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,070C34,07107 +22434,3,000,25,1,7,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22435,3,000,25,1,8,1,05,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22436,3,000,25,1,14,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22437,3,000,25,1,14,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22438,3,000,25,1,14,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22439,3,000,25,1,14,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22440,3,000,25,1,14,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22441,3,000,25,1,18,2,08,2,2,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22442,3,000,25,1,39,1,26,2,3,0,0,2,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22443,3,000,25,2,4,1,01,2,1,0,0,1,15,003,011201,4003,4,9999,99999,99999999,9,99999,99999999,30520,0,0,0,0,0,46520,02,999,99999,99999999,A,00365281,91800,S,01935657,999,9,99999,99999999,+21.4069083,-157.7437595,L,1,99999,99999,99999,9,N,N,23150,S,02414059,00302,4,99999,99999,00030,050,025,01779782,99999,99999999,9,999,99999,99999999,999999,43669,U,99999,U,,96734 +22444,3,000,30,1,38,1,02,2,1,0,0,2,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22445,3,000,30,2,2,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22446,3,000,30,2,2,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22447,3,000,30,2,7,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22448,3,000,30,2,8,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22449,3,000,30,2,8,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22450,3,000,30,2,9,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22451,3,000,30,2,9,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22452,3,000,30,2,9,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22453,3,000,30,2,12,1,02,2,1,0,0,1,13,121,007808,3000,3,9999,99999,99999999,9,99999,99999999,152928,0,0,0,0,0,12060,05,999,99999,99999999,A,01694833,90144,S,01936089,122,5,99999,99999999,+33.7540221,-084.4874345,L,1,99999,99999,99999,9,Y,N,04000,A,02403126,01406,3,99999,99999,00120,053,038,01705317,99999,99999999,9,999,99999,99999999,999999,03817,U,99999,U,00010D,30311 +22454,3,000,25,2,3,1,01,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22455,3,000,25,2,3,1,01,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22456,3,000,25,2,3,1,01,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22457,3,000,25,2,5,2,11,2,2,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22458,3,000,25,2,8,1,04,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22459,3,000,25,2,10,1,01,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22460,3,000,25,2,10,1,01,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22461,3,000,25,2,13,1,04,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22462,3,000,25,2,13,1,04,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22463,3,000,25,2,13,1,04,2,1,0,0,1,06,037,300200,2009,2,9999,99999,99999999,9,99999,99999999,199651,0,0,0,0,0,31080,28,999,99999,99999999,A,00277283,92400,S,01935245,348,9,99999,99999999,+34.2253061,-118.2368348,L,1,31084,99999,99999,9,N,N,39045,S,02408503,03709,4,99999,99999,15240,043,025,01779778,99999,99999999,9,999,99999,99999999,999999,51445,U,99999,U,,91214 +22464,3,000,20,1,84,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22465,3,000,20,1,84,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22466,3,000,20,1,84,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22467,3,000,20,1,84,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22468,3,000,20,1,84,1,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22469,3,000,20,1,87,2,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22470,3,000,20,1,87,2,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22471,3,000,20,1,87,2,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22472,3,000,20,1,89,2,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22473,3,000,20,1,89,2,01,2,1,0,0,2,12,086,006707,2000,2,9999,99999,99999999,9,99999,99999999,50293,0,0,0,0,0,33100,27,999,99999,99999999,A,00295755,92158,S,01935851,370,5,99999,99999999,+25.7677637,-080.1862118,L,1,33124,99999,99999,9,Y,N,45000,A,02404247,08614,3,99999,99999,00390,112,037,00294478,99999,99999999,9,999,99999,99999999,999999,56602,U,99999,U,000541,33131 +22474,3,000,20,2,80,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22475,3,000,20,2,80,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22476,3,000,20,2,82,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22477,3,000,20,2,82,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22478,3,000,20,2,82,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22479,3,000,20,2,82,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22480,3,000,20,2,82,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22481,3,000,20,2,82,1,04,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22482,3,000,20,2,83,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22483,3,000,20,2,83,1,01,1,1,0,0,2,34,039,033502,2001,2,9999,99999,99999999,9,99999,99999999,339960,1179,0,0,1179,0,35620,10,999,99999,99999999,A,00882235,74480,A,00882212,408,2,99999,99999999,+40.6834425,-074.2324669,B,1,35084,99999,99999,9,9,9,99999,9,99999999,01901,1,99999,99999,16500,020,020,01779795,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,095017,07083 +22484,3,000,22,1,53,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22485,3,000,22,1,68,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22486,3,000,22,1,68,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22487,3,000,22,1,69,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22488,3,000,22,2,75,1,01,2,1,0,0,2,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22489,3,000,25,1,0,1,01,2,1,0,0,1,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22490,3,000,25,1,0,1,01,2,1,0,0,1,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22491,3,000,25,1,0,1,01,2,1,0,0,1,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22492,3,000,25,1,0,1,01,2,1,0,0,1,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22493,3,000,25,1,1,1,01,2,1,0,0,1,36,103,111801,1007,1,9999,99999,99999999,9,99999,99999999,95139,0,0,0,0,0,35620,03,999,99999,99999999,A,00974149,37000,A,00979087,408,2,99999,99999999,+40.8588655,-073.3332468,L,1,35004,99999,99999,9,N,N,24405,S,02389039,03302,1,99999,99999,10680,012,005,01779796,99999,99999999,9,999,99999,99999999,999999,63217,U,99999,U,000579,11731 +22494,3,000,30,2,0,2,02,2,1,0,0,1,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +22495,3,000,32,1,45,1,02,2,1,0,0,2,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +22496,3,000,33,1,33,1,01,2,1,0,0,2,12,019,030106,1014,1,9999,99999,99999999,9,99999,99999999,89565,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0445692,-081.9056751,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +22497,3,000,20,1,57,1,01,2,1,0,0,2,12,019,030106,1015,1,9999,99999,99999999,9,99999,99999999,80094,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0451723,-081.9128417,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 +22498,3,000,20,1,57,1,01,2,1,0,0,2,12,019,030106,1015,1,9999,99999,99999999,9,99999,99999999,80094,0,0,0,0,0,27260,03,999,99999,99999999,A,00295726,92197,S,01935854,300,5,99999,99999999,+30.0451723,-081.9128417,L,1,99999,99999,99999,9,N,N,45350,S,02403285,01901,3,99999,99999,00300,018,005,00294478,99999,99999999,9,999,99999,99999999,999999,03262,U,99999,U,010200,32068 diff --git a/examples/getting_started/sample_inputs/era5_ints.bin b/examples/getting_started/sample_inputs/era5_ints.bin new file mode 100644 index 000000000..f41e7299b Binary files /dev/null and b/examples/getting_started/sample_inputs/era5_ints.bin differ diff --git a/examples/getting_started/sample_inputs/lorem_ipsum.txt b/examples/getting_started/sample_inputs/lorem_ipsum.txt new file mode 100644 index 000000000..d573370e3 --- /dev/null +++ b/examples/getting_started/sample_inputs/lorem_ipsum.txt @@ -0,0 +1,1199 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc augue mi, efficitur non placerat eu, iaculis nec neque. Suspendisse in felis viverra, dictum erat gravida, lobortis tortor. Cras eget elementum enim. Suspendisse potenti. Pellentesque dignissim lorem vel leo sagittis, ut molestie elit tempor. Ut vitae porta nulla. Suspendisse consequat, lorem sit amet ullamcorper vehicula, nulla nisi fermentum nulla, eget interdum leo erat quis lectus. Sed finibus urna urna, vel ultricies urna aliquet non. Sed convallis rutrum mi, vitae mollis diam fringilla pulvinar. + +Praesent eu ultrices nulla. Nunc semper tincidunt magna nec fermentum. Sed posuere lobortis mauris, at bibendum lorem eleifend nec. Donec ut fringilla tellus. Curabitur efficitur, turpis id ultrices semper, risus diam aliquet turpis, vel porta justo tortor non felis. Sed ut mi mollis, sagittis libero sed, mattis est. Quisque et turpis vel diam convallis congue et quis enim. Nam aliquet lorem eu augue convallis sagittis. Sed laoreet quis erat eu semper. Nunc suscipit dui nec elit mollis sodales ac in orci. Sed eu erat sit amet elit tristique ullamcorper quis ut justo. Nullam egestas id nunc ac aliquet. + +Aliquam quis hendrerit est, nec maximus lectus. Curabitur iaculis eget risus at pellentesque. Integer sit amet massa malesuada eros imperdiet placerat. Mauris elit lacus, dictum eget mauris sit amet, condimentum commodo erat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque volutpat velit at elit aliquam porttitor sit amet dictum quam. Fusce vel egestas felis, at blandit dui. Nunc eget massa sit amet dolor venenatis rhoncus. Donec malesuada rutrum eros, eget placerat augue ultrices at. Quisque pretium quam nec pellentesque suscipit. Aliquam placerat justo tortor, ut ornare nisi scelerisque a. Suspendisse vel ultricies elit. Donec luctus laoreet porttitor. Vivamus sit amet eleifend nisl. Donec tincidunt tincidunt lacus, vel ullamcorper urna ultrices a. + +Vivamus bibendum tellus augue, a cursus elit facilisis vitae. Aenean dapibus lorem ac elit placerat, sed blandit lacus molestie. Donec bibendum, tellus ac commodo aliquam, diam nulla molestie mi, at suscipit sapien nisl non elit. Mauris sit amet pulvinar lacus. Ut pulvinar pellentesque semper. Quisque vel luctus tellus, sed tempor diam. Proin porta dui mauris, non accumsan magna iaculis non. Etiam maximus imperdiet molestie. Phasellus luctus sagittis sapien nec malesuada. Etiam nec metus arcu. Vivamus a purus non nisi posuere venenatis. Duis non metus rhoncus velit accumsan fringilla at ut augue. Maecenas nec neque justo. Vestibulum ut fringilla ante, sit amet tempus purus. + +Suspendisse scelerisque tincidunt erat, non molestie erat auctor at. Vivamus ac maximus mi, quis faucibus sem. Suspendisse tincidunt massa eget bibendum convallis. Praesent id viverra quam. Proin tempus ante tincidunt suscipit auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer ac orci sit amet lorem commodo porttitor eget eu ex. Aliquam ultricies sapien et lobortis bibendum. Mauris nec nisi odio. Quisque cursus sagittis turpis nec euismod. Proin rutrum dui non egestas rhoncus. Curabitur congue luctus urna et euismod. Phasellus ac nisl libero. Vestibulum laoreet maximus dolor sed lacinia. Nam vulputate tempor magna non feugiat. + +Nullam vitae orci rhoncus, eleifend odio a, tempus dolor. Quisque nec libero facilisis, aliquam nunc eget, efficitur massa. Vestibulum id est pretium, pharetra urna sit amet, dapibus nunc. Nulla bibendum nisl justo. Praesent vitae iaculis nibh. Aenean lobortis hendrerit lacinia. Vivamus nisl neque, suscipit et pulvinar in, vulputate a quam. Curabitur ullamcorper hendrerit malesuada. Etiam laoreet dolor eu justo vehicula scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc et augue non ante tincidunt condimentum at vel nisl. Proin tempus ante vel ex blandit, ac scelerisque enim lobortis. Suspendisse potenti. Nulla felis erat, blandit in libero ut, blandit mattis leo. + +Phasellus ut lectus neque. Praesent egestas leo in sapien sodales, et aliquam libero iaculis. Quisque ut efficitur tellus, sit amet faucibus nunc. Aenean ac purus convallis, commodo massa at, molestie ex. Donec sollicitudin est quis enim porta, at placerat diam rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean hendrerit, lectus id hendrerit sollicitudin, ante ante euismod arcu, a blandit felis urna eu odio. Ut finibus nibh purus. Sed vestibulum tristique mattis. Fusce sed leo id quam consectetur cursus a ac nisl. Integer fermentum accumsan auctor. Suspendisse in ligula quis augue euismod lobortis. + +Duis gravida lorem at nibh aliquet feugiat et id erat. Mauris vestibulum tortor ac arcu tempor, nec lacinia arcu efficitur. Nunc faucibus fermentum felis. Donec sed lacus sed quam pharetra venenatis nec et tortor. Donec fermentum dolor a nibh accumsan placerat. Phasellus risus sapien, varius vitae viverra non, tincidunt at arcu. Fusce mollis elit quis aliquet egestas. + +Etiam a dolor sit amet elit commodo rhoncus. Morbi sit amet erat semper, cursus magna vel, facilisis sapien. Mauris nec mi non urna aliquam mattis. Fusce placerat varius sodales. Aenean ullamcorper magna a eros eleifend, ut malesuada dui pharetra. Vivamus porttitor consectetur lectus. Aenean nunc quam, semper at libero eget, posuere varius turpis. Phasellus dolor ante, varius in volutpat vel, blandit scelerisque urna. Cras id neque id arcu vehicula venenatis iaculis vel justo. + +Etiam felis diam, lobortis non turpis eu, volutpat hendrerit diam. Pellentesque eu metus accumsan, tempus enim eu, vehicula arcu. Cras vehicula tortor in augue elementum vestibulum. Donec vitae mi dignissim, sagittis ligula quis, rhoncus nibh. Sed scelerisque elementum accumsan. Morbi et quam non erat efficitur elementum quis in lacus. Etiam ut dapibus ex. Nullam suscipit placerat pretium. Aliquam mattis dolor lacus, consectetur accumsan nibh luctus quis. Nullam semper odio sit amet risus imperdiet blandit. + +Fusce non dapibus orci. Fusce feugiat dictum velit, ac venenatis ipsum. Nunc quis arcu massa. Phasellus lobortis vitae neque ut consequat. Donec bibendum ipsum quis lacus ultrices, in commodo lacus laoreet. Nam facilisis nulla quis porttitor interdum. Aliquam eget hendrerit sem, volutpat eleifend enim. Ut commodo justo massa. Nunc varius est efficitur pharetra pellentesque. Nullam convallis tincidunt diam, vel tempus libero gravida non. Donec consequat elit non est ornare, ac vestibulum est tempus. Sed sed rutrum nisi, non posuere nisi. Morbi malesuada semper orci, id venenatis ipsum accumsan imperdiet. + +Fusce sollicitudin nunc in orci malesuada pellentesque. Maecenas interdum finibus sapien. Suspendisse pulvinar semper rhoncus. Praesent ex justo, blandit quis nisi ut, scelerisque porta massa. Praesent vitae massa sed ligula faucibus viverra. In hac habitasse platea dictumst. Phasellus scelerisque lectus tristique, vehicula mauris vitae, egestas turpis. Fusce faucibus hendrerit magna sit amet gravida. Fusce condimentum hendrerit lacus, id ultrices libero aliquam id. Sed ultricies ultrices nisl vel dictum. Duis felis eros, consectetur nec lacus in, vestibulum condimentum metus. Vestibulum nec malesuada massa. Donec maximus mi augue, et eleifend ante auctor id. In cursus tincidunt nibh. + +Curabitur bibendum volutpat felis, ac facilisis elit interdum sagittis. Duis luctus risus massa, ac tincidunt nulla ultrices quis. Phasellus quis nisl efficitur, posuere nulla non, ornare orci. Ut sit amet aliquet dui. Morbi ut ligula ut ex blandit tincidunt eu eu est. Mauris non volutpat urna. Nunc quis congue ex. Cras aliquam pellentesque fermentum. + +Sed eu turpis a eros semper ornare. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut tincidunt justo nec nibh placerat, vitae lacinia nunc tincidunt. Ut malesuada, purus eu tristique bibendum, purus quam convallis magna, in porta eros dui quis massa. Maecenas molestie sem vel urna dignissim ullamcorper. Praesent lobortis porta vestibulum. Ut pharetra iaculis urna, et porta ante maximus non. Pellentesque suscipit luctus libero nec viverra. Sed egestas mi vitae tortor condimentum, sit amet fermentum sem pretium. Etiam neque ipsum, tempor ut vulputate sed, accumsan ut mi. Pellentesque fermentum ultrices augue, quis venenatis massa egestas eu. Mauris blandit posuere fermentum. + +Pellentesque quis tempor ante, at convallis metus. Vestibulum hendrerit, libero eget malesuada sagittis, dolor mi consectetur urna, non malesuada tortor lacus in mauris. Maecenas placerat sem quis eros commodo, nec efficitur nulla varius. Suspendisse interdum, nulla sit amet egestas aliquam, ante tortor porta metus, in condimentum risus purus eget magna. Nulla ultrices eget turpis eu luctus. In imperdiet, mi ornare venenatis sodales, ligula risus porttitor ante, sed fermentum lacus mauris a tortor. Morbi lacinia ornare nunc eget finibus. Fusce a facilisis eros. Quisque vulputate purus sit amet tellus mattis, nec consectetur nibh viverra. + +Maecenas sodales lacinia elit commodo eleifend. Phasellus vitae urna in tellus porttitor rhoncus a ac dui. Integer vel elit eget neque mattis bibendum. Duis ullamcorper risus ut mi iaculis, et scelerisque erat facilisis. Vivamus vestibulum diam vitae urna scelerisque vestibulum. Ut tincidunt velit convallis nisl tempor, a feugiat dui efficitur. Morbi enim mauris, rhoncus et sagittis condimentum, luctus eget augue. Praesent aliquet posuere pharetra. Nullam laoreet pretium sem quis suscipit. Pellentesque vitae hendrerit urna. Praesent eu nibh at elit malesuada suscipit nec quis urna. Phasellus vel massa a urna vulputate suscipit in id diam. + +Pellentesque hendrerit mi a convallis scelerisque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus volutpat eros tellus, eget semper purus aliquet et. Donec sodales mauris ut mi interdum placerat. Donec rutrum elementum porttitor. Praesent ultrices posuere aliquam. Vivamus quis dui auctor, posuere neque quis, placerat sapien. Morbi aliquet leo vitae lacus euismod euismod. Quisque placerat massa et magna sodales euismod. Curabitur lobortis dolor non quam porta scelerisque eget in eros. Praesent gravida eros in est feugiat, ac condimentum libero iaculis. Cras eleifend urna mauris, ac luctus velit consectetur pharetra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis ipsum quam, faucibus ut urna et, porttitor pellentesque velit. Maecenas sit amet lectus hendrerit, gravida turpis vitae, aliquet velit. + +Donec ut accumsan enim, ac finibus erat. Phasellus eleifend tempor orci sit amet fringilla. Donec blandit, est sit amet malesuada fermentum, ex augue rutrum magna, in ultricies mi nulla ac leo. Fusce blandit neque in ipsum blandit, sit amet porttitor velit sodales. Vestibulum suscipit nunc sit amet bibendum vulputate. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet finibus finibus. Quisque tincidunt ac lectus non rhoncus. Sed mi est, porttitor tincidunt porttitor in, rutrum a risus. Curabitur pellentesque quis sem condimentum cursus. Vivamus sed est sollicitudin, mattis orci at, bibendum mauris. Fusce blandit vulputate interdum. Mauris tortor turpis, convallis a diam posuere, blandit imperdiet quam. Maecenas quis dolor sagittis, semper turpis et, malesuada nibh. Suspendisse eget urna non augue porttitor fringilla. Nullam sagittis, nibh at pharetra placerat, leo massa rutrum elit, et placerat erat ex ac ante. + +Donec nec scelerisque augue, sed venenatis orci. Donec eget dictum est. Suspendisse potenti. In hac habitasse platea dictumst. Quisque tempus congue sapien vitae elementum. Maecenas in diam eget nulla pellentesque luctus. Maecenas felis elit, vulputate in ligula ac, luctus aliquam massa. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce fermentum magna a vehicula venenatis. Etiam vitae augue lobortis, volutpat dui a, pharetra dolor. Pellentesque elementum at neque et sollicitudin. Donec ligula massa, lacinia sit amet hendrerit ac, ornare ac nulla. Vivamus vitae iaculis dui. Sed fringilla orci sed massa efficitur accumsan. + +Sed sed dui nibh. Nam ut sapien a nisi bibendum tempor et sollicitudin mauris. Cras dignissim urna non mi pellentesque, at mollis justo gravida. Nulla rhoncus orci ut lacinia sollicitudin. Donec posuere scelerisque egestas. Nam sodales erat consectetur, faucibus ex sed, rutrum eros. Sed condimentum mattis volutpat. Fusce ac dignissim mi. Aliquam non laoreet lectus. Morbi sit amet metus sed velit faucibus maximus a nec odio. Mauris mollis diam nec finibus scelerisque. Proin ac erat elementum, pellentesque lacus vel, porta arcu. Proin tempus ornare mi, vitae sodales elit lobortis aliquam. + +Nulla augue felis, scelerisque non lacinia sed, faucibus vel justo. Aenean a tristique libero, sit amet suscipit ex. Integer venenatis magna sed velit sollicitudin, dictum lobortis felis eleifend. Maecenas malesuada eros eu erat pharetra elementum. Aliquam efficitur odio eget pharetra sagittis. Aliquam arcu lectus, sollicitudin finibus erat hendrerit, posuere laoreet arcu. Donec congue dolor quis massa condimentum, nec semper risus fringilla. Suspendisse potenti. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi sed consequat lacus. Quisque auctor facilisis mauris sit amet porttitor. + +In dui mauris, laoreet a ex id, facilisis lobortis ante. Fusce lectus magna, hendrerit cursus mollis vitae, pellentesque eget elit. Aenean vehicula vel lectus tempus vestibulum. Nunc ut diam a erat facilisis congue at non nibh. Curabitur semper lectus commodo, rutrum arcu eget, aliquam est. Vestibulum non metus maximus, aliquet quam nec, blandit odio. Phasellus dapibus bibendum diam quis rhoncus. Ut at mi elit. Cras condimentum pharetra leo, ut sagittis libero luctus eu. In ultrices enim lacus. In elit urna, porta sit amet tempus eu, mattis at tortor. Vestibulum molestie tincidunt orci, vel finibus eros sodales ut. Vestibulum et sapien suscipit, venenatis ligula et, mollis ex. Sed iaculis malesuada venenatis. + +Aliquam erat volutpat. Donec porttitor vehicula nisi, at dapibus neque. In hac habitasse platea dictumst. Vivamus dignissim sodales tristique. Sed vestibulum mattis blandit. Sed in rhoncus nibh. Fusce feugiat massa risus, non lacinia arcu vestibulum vel. Vivamus nec lorem mollis, auctor risus quis, varius leo. Praesent ac aliquam sem, et vehicula tortor. Nam consequat enim et felis interdum efficitur. Maecenas eget velit eros. Nullam sodales erat vel maximus lobortis. + +Curabitur fringilla quam lectus, ac sodales sapien aliquet at. Nunc porta urna odio, et facilisis ligula eleifend nec. Etiam semper quam erat, quis vulputate odio porttitor quis. Donec et vulputate justo. Mauris ultrices quis tortor sed tincidunt. Cras fringilla gravida nunc, sit amet convallis metus auctor a. Maecenas ut velit quis nibh facilisis pretium sed nec dolor. Curabitur porttitor vel diam eu viverra. + +Ut ornare metus ac viverra ultricies. Vivamus sit amet quam in dui molestie efficitur ac a dui. Aenean eget ante a nisi facilisis semper volutpat eget ipsum. Integer et lorem eu ligula lobortis eleifend molestie non nisi. Maecenas quis tortor sed quam semper porttitor. Quisque laoreet ipsum ut imperdiet ultricies. Nunc consectetur neque sed ex scelerisque molestie. Sed varius, urna sed convallis molestie, libero felis finibus tortor, eget semper magna lorem vel erat. Duis gravida erat tortor. Nullam commodo leo vel nulla lobortis, vel semper nisl euismod. Ut libero mi, convallis sit amet tristique ut, pellentesque nec odio. Etiam convallis tortor volutpat leo facilisis fringilla. Aliquam ultrices arcu eu lobortis tristique. Vestibulum ac nulla massa. Vestibulum varius commodo felis id consequat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + +Duis vitae erat fringilla, rhoncus turpis at, sodales odio. Mauris convallis non velit a varius. Vestibulum porttitor accumsan libero id vulputate. Duis eu lectus aliquet, vulputate enim a, feugiat metus. Proin luctus leo quis nisi iaculis, sit amet pretium turpis sodales. Sed luctus quam ut massa imperdiet scelerisque. Phasellus consequat faucibus dolor, in pellentesque felis. Morbi tortor eros, eleifend at maximus quis, condimentum eu nisl. Suspendisse ullamcorper ut orci sed volutpat. Curabitur eu elementum magna. + +Ut hendrerit, nunc lobortis venenatis pharetra, lorem augue venenatis turpis, in semper risus nulla sed ante. Mauris in dolor ut orci venenatis fringilla. Morbi gravida viverra rhoncus. Nunc a justo dui. Curabitur bibendum mattis risus. Mauris a viverra sem. Nunc id venenatis justo, vel lobortis leo. Proin tempus lobortis orci sit amet eleifend. Maecenas vel volutpat ante. Nulla tristique felis at dui viverra cursus. Aliquam vel erat tristique neque tincidunt scelerisque sed in dui. Vivamus quis mauris id enim molestie eleifend quis a arcu. + +Nulla hendrerit feugiat nisl vel ornare. Curabitur sit amet consectetur diam. Sed feugiat vulputate luctus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum pulvinar libero nunc, nec cursus risus gravida et. In dapibus quam sit amet nisl luctus gravida. Aliquam sit amet posuere orci, imperdiet maximus nibh. Aenean nec tortor ut nunc suscipit vulputate. Proin iaculis vitae mi sit amet eleifend. Pellentesque nec viverra magna, nec pretium leo. Nunc mollis sollicitudin velit. Morbi tortor dolor, aliquam sit amet lacus id, pharetra rhoncus felis. + +Etiam commodo ex augue, eu gravida mi iaculis ut. Sed et suscipit justo. Donec ultricies risus nunc, sit amet volutpat ex tempor ac. Pellentesque eleifend porta varius. Nam pulvinar sem in ultrices sollicitudin. Sed sed sem id metus scelerisque ultricies. Sed a odio vel lectus fermentum ultricies non eu nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis ac urna vitae sapien convallis dignissim. + +Aliquam sollicitudin pretium odio, quis viverra nisi mollis eget. Ut rhoncus ante vel porta tincidunt. Nunc mattis, quam quis aliquet mattis, ipsum arcu tempor leo, in interdum sem urna non tellus. Nunc mauris metus, bibendum a varius quis, mattis quis ex. Vestibulum rhoncus augue a nulla fringilla gravida. Quisque diam risus, dignissim id sagittis vel, hendrerit vitae turpis. Praesent est diam, dignissim id volutpat quis, cursus non sem. Mauris eget malesuada nunc. Proin et quam porta, porttitor massa in, faucibus dui. Phasellus in dictum mi, quis dignissim enim. Cras semper ipsum ac condimentum iaculis. + +Aliquam ac tortor eu purus suscipit pulvinar tincidunt ac tellus. Mauris gravida mi eu pretium sollicitudin. Sed convallis ligula nec metus suscipit, id efficitur ligula facilisis. Etiam erat urna, suscipit et posuere ullamcorper, elementum id enim. Nullam tempus sapien sed ex venenatis, et vehicula sapien aliquam. Donec leo dolor, fermentum in metus ultrices, interdum laoreet lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam pretium eu nulla vel pretium. In nec risus elit. Etiam nisl lorem, convallis nec luctus sit amet, lacinia eu tellus. Fusce et vulputate velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Praesent elementum dolor id mattis consequat. + +Praesent libero tellus, interdum quis sollicitudin non, volutpat vitae nulla. Cras nibh quam, sodales in lorem porta, aliquet lacinia nisl. Aenean placerat leo libero, a tempor leo vulputate non. Phasellus iaculis quam quis urna consequat fringilla. Curabitur hendrerit dictum eros, ac elementum orci. Sed dignissim mi nisl. Nunc in risus maximus nibh tincidunt vehicula. Mauris eleifend, purus non interdum volutpat, turpis ligula laoreet ligula, eu fringilla nunc tellus nec sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec eu sollicitudin orci. Donec augue arcu, rhoncus eget imperdiet ut, volutpat et quam. Mauris suscipit est ut diam blandit condimentum. Aliquam bibendum a massa ac cursus. Quisque felis dui, egestas vel tellus at, lobortis dapibus turpis. + +Nam tempus consectetur nunc, et convallis urna ullamcorper a. Vestibulum placerat purus in euismod euismod. Suspendisse eget congue quam, quis placerat tortor. Aliquam erat volutpat. Vestibulum ut nisi vitae lacus ultrices varius eu sodales nulla. Phasellus congue, lacus sit amet sagittis accumsan, enim risus laoreet urna, vitae blandit eros quam sit amet erat. Proin id gravida tortor. Nam in elit nec leo imperdiet elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent interdum leo nunc, quis iaculis ante fermentum vitae. + +Phasellus vehicula egestas turpis, tristique ullamcorper sapien dapibus quis. Maecenas commodo magna in cursus gravida. Praesent vitae dui risus. Nullam eget faucibus odio. Quisque id cursus justo, a pretium magna. Suspendisse lobortis libero eget dapibus laoreet. Ut laoreet, nunc sit amet tincidunt cursus, tortor felis dignissim dolor, a sagittis nisi lacus ac odio. Ut laoreet ut metus eget venenatis. Suspendisse aliquet dignissim risus, a bibendum mi imperdiet sit amet. Proin fermentum libero id finibus euismod. Mauris vulputate massa et velit imperdiet, ut luctus sem feugiat. Nunc vel tellus elementum, lacinia orci quis, lobortis libero. Aenean a iaculis lectus. Donec ut diam eget magna fringilla ultricies in sed justo. Etiam aliquet diam metus, ac ornare massa dapibus nec. Quisque vestibulum nisi et lobortis hendrerit. + +Proin pulvinar vestibulum risus, non iaculis enim suscipit vitae. Duis a odio eget magna egestas scelerisque molestie eget massa. Etiam blandit eget enim et fermentum. In hac habitasse platea dictumst. Donec a nunc nulla. Etiam in elit ante. Proin nunc turpis, semper eget est volutpat, congue volutpat nisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris quis nulla maximus, placerat odio ac, facilisis lectus. Proin et semper purus, eget placerat urna. Nulla ullamcorper enim felis, nec dictum ex blandit sit amet. Vestibulum a ullamcorper diam, id rhoncus dui. Aenean diam lorem, auctor vitae libero vel, commodo imperdiet lectus. Nunc pellentesque purus neque, non pulvinar dui convallis aliquet. Duis euismod dui ut elit fringilla, id consequat neque convallis. + +Cras efficitur cursus sollicitudin. Morbi aliquam nisi magna, in lacinia nunc lobortis ultrices. Nullam suscipit metus at venenatis tincidunt. Sed id sem felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum tempor elit ut enim condimentum ultrices. In hac habitasse platea dictumst. + +Suspendisse tincidunt, sapien quis tempor egestas, augue orci accumsan nisi, in ullamcorper nisi urna nec eros. Etiam placerat, lorem id consequat maximus, ipsum ligula placerat sem, vitae fermentum dolor nibh eget sapien. Donec ornare magna quam, eu aliquet nulla laoreet at. Sed eros sem, aliquam vel quam facilisis, tincidunt mollis nibh. Sed eu sapien non orci fermentum accumsan. Pellentesque fringilla dui ante, nec ultricies augue dignissim et. Quisque luctus venenatis facilisis. Aenean sollicitudin sem id vehicula posuere. Nulla sit amet libero iaculis, semper mi nec, interdum diam. Quisque dui lacus, dictum ut semper non, tristique id risus. Etiam non lacus est. Vivamus maximus laoreet pulvinar. Aenean vel enim nulla. Vestibulum pharetra non magna in hendrerit. Phasellus congue neque at nibh maximus vulputate. + +Donec congue fermentum neque ut suscipit. Duis viverra, turpis pharetra dapibus maximus, ex purus ornare dolor, eu congue est odio ut massa. Donec rhoncus eu urna in molestie. Cras cursus placerat mauris sed scelerisque. Suspendisse sit amet dolor et libero efficitur ullamcorper sit amet eu mi. Cras odio augue, bibendum eget vestibulum ac, rhoncus at augue. Praesent euismod vel augue eget suscipit. Maecenas consequat libero nec erat ultrices tincidunt eu in nisi. + +Ut blandit urna ut lacus varius fermentum. Aliquam ac nunc id neque mollis consectetur. Etiam sapien dolor, dignissim nec dui at, ultricies semper enim. Nunc vitae nunc diam. Aliquam porttitor volutpat dictum. Cras consequat finibus turpis, ac tristique nisl convallis eget. Phasellus interdum nibh ut diam bibendum dictum. Donec nec mi arcu. Sed ac urna a enim ullamcorper molestie. Phasellus porta leo nunc, nec mattis lectus iaculis sed. Duis sit amet metus dui. Aliquam erat volutpat. Donec felis urna, blandit at pulvinar vitae, malesuada at velit. Phasellus vulputate aliquet turpis sit amet sollicitudin. Pellentesque tempus augue purus, et efficitur lectus iaculis eget. Cras ultricies tellus ac nibh hendrerit sodales. + +Maecenas vehicula libero eget eros tincidunt fringilla. Suspendisse sit amet facilisis velit. Aliquam nulla ante, ullamcorper eu eleifend ut, consectetur a ex. Fusce sed elementum mi, sit amet congue urna. Pellentesque tristique malesuada tempor. Aenean egestas faucibus rhoncus. Proin vel eleifend enim. Mauris tristique, orci non scelerisque condimentum, enim neque facilisis lectus, vitae convallis dui dui sed nibh. Fusce finibus tincidunt quam, a fermentum justo. Aenean sed euismod tellus. Suspendisse bibendum elit enim, ac congue sem mattis eu. Nulla vitae blandit nisl. Nullam risus justo, efficitur in dignissim in, lobortis et ante. Cras est magna, ornare vel tempus ac, scelerisque eu dui. + +Nam semper diam in nunc cursus, eget venenatis sem ultrices. Pellentesque placerat dignissim sem, eu ultrices ligula congue nec. Cras posuere id sapien vitae vulputate. Phasellus elementum felis vel ligula lobortis, vitae vulputate nulla elementum. Nullam a sem magna. In lobortis, tellus eget blandit tincidunt, diam lectus tincidunt magna, at semper turpis magna feugiat nunc. In ac sapien in turpis facilisis ultrices id sit amet orci. Vestibulum id maximus mi, id viverra nisi. Etiam ac aliquam ex, id commodo turpis. + +Nunc sagittis pulvinar ipsum, ac semper libero scelerisque vel. Phasellus condimentum euismod justo sed facilisis. Ut eget molestie neque. Maecenas risus sem, mollis finibus urna feugiat, elementum facilisis enim. Nunc ultricies, turpis a scelerisque feugiat, turpis arcu vehicula lorem, quis maximus quam eros et ex. Nunc maximus mi sed velit cursus lacinia. Donec sit amet arcu a sapien hendrerit pharetra. Donec in mollis mauris. Vivamus scelerisque velit eget turpis rutrum, vel condimentum urna mattis. Praesent tempor imperdiet diam, sit amet imperdiet mauris posuere at. Aenean vitae imperdiet urna. Morbi lacinia arcu erat, vel faucibus mauris volutpat in. Mauris consequat mollis tellus ut varius. Quisque pharetra ipsum et nulla sollicitudin, ac scelerisque nisl faucibus. Nunc id iaculis augue. + +Donec sem nunc, hendrerit tincidunt nunc vel, congue consectetur elit. Aenean laoreet lorem ut est tincidunt semper. Cras accumsan iaculis metus a blandit. Maecenas nec laoreet dui. Nunc odio est, vestibulum sed faucibus id, mattis sed ex. Ut tristique placerat molestie. Integer id lacus a magna finibus luctus et dignissim enim. Quisque ac est sit amet purus porta auctor. + +Sed sollicitudin tincidunt odio, eu feugiat tellus facilisis eu. Quisque nec posuere quam, sit amet malesuada purus. Praesent ut dui et turpis varius laoreet eget et nibh. Donec a justo felis. Nulla vitae tellus mauris. Cras vehicula non urna sit amet varius. Vivamus scelerisque iaculis nunc, vestibulum bibendum nulla pulvinar vel. Sed libero metus, luctus nec porta eget, facilisis vitae nisl. Fusce non sagittis sem. Integer et erat vel mi vulputate posuere et vitae arcu. Maecenas fermentum felis vitae ultrices placerat. Fusce in molestie augue, quis varius nibh. Etiam lacinia efficitur tincidunt. In non ante orci. + +Fusce accumsan cursus lobortis. Cras id accumsan magna, quis vulputate enim. Integer feugiat mattis dolor ut sollicitudin. Aliquam scelerisque arcu metus, eget posuere felis sagittis vel. Praesent convallis facilisis sem quis dignissim. Phasellus pharetra diam nec faucibus tempor. Praesent porttitor cursus metus et accumsan. Praesent rhoncus accumsan malesuada. Donec purus nunc, condimentum nec volutpat a, hendrerit vitae risus. Maecenas placerat lobortis urna sed egestas. Pellentesque blandit nunc ante, id viverra magna mattis nec. + +Proin dui sapien, aliquet in dui vitae, condimentum egestas ante. Suspendisse potenti. Etiam ullamcorper rhoncus velit vel gravida. Proin in ante cursus, luctus libero a, vehicula odio. Nullam a efficitur turpis. Duis porttitor lectus ac mauris pulvinar cursus. Etiam non magna nec massa consectetur scelerisque. Nam posuere at nunc sit amet blandit. Cras dui elit, porta non vehicula quis, suscipit ac mauris. Sed fermentum nunc ut augue hendrerit, et mollis elit vestibulum. Nulla pharetra, turpis non euismod auctor, nisl leo commodo dolor, porta sodales ex leo eu nibh. Duis at erat et libero euismod tincidunt eu sit amet lorem. Praesent sem purus, pretium sed est vitae, venenatis elementum nisl. Vestibulum rutrum mattis nisl vitae blandit. Sed efficitur quam id neque finibus pharetra. Praesent in consequat diam. + +In sit amet dignissim ligula. Sed ac enim at metus fringilla tincidunt sit amet vel enim. Sed eleifend augue vitae elit bibendum, non pharetra sapien eleifend. Cras aliquam pharetra ligula id elementum. Vestibulum id velit lectus. Etiam efficitur molestie mollis. Mauris tempus lorem eu pellentesque faucibus. Vestibulum vitae ipsum sed nibh pretium placerat. Sed dapibus facilisis leo, eget vestibulum turpis lacinia pellentesque. Duis venenatis id nibh vel laoreet. Integer quis justo a mauris lobortis consequat sit amet nec diam. Curabitur laoreet feugiat sem, euismod congue eros ultricies sed. Maecenas sit amet rhoncus nunc. Donec orci nisl, finibus in finibus id, interdum tempus nunc. Vestibulum rutrum tortor non libero lobortis laoreet. Aliquam nunc ipsum, eleifend ornare luctus dignissim, volutpat eu elit. + +Nam eget ipsum lobortis, pellentesque eros sit amet, congue felis. Maecenas facilisis blandit ex in malesuada. Pellentesque facilisis sem nec elementum consectetur. Vestibulum velit ligula, mattis sit amet rhoncus vel, congue id quam. Quisque nec lacinia metus. Vivamus consequat convallis nibh sed egestas. In nec mi volutpat, sollicitudin magna in, laoreet nisl. Praesent non accumsan ipsum, in interdum mi. Praesent pellentesque neque non nunc fermentum commodo. + +Proin volutpat tincidunt neque eget luctus. Duis nibh purus, maximus et justo nec, varius aliquet purus. Aliquam luctus diam nec velit rhoncus porttitor in quis diam. Nullam ut pretium neque, vitae feugiat mauris. Sed euismod dictum odio. Nulla gravida neque sed arcu finibus iaculis. Phasellus facilisis enim quis risus accumsan, vitae dapibus justo maximus. Donec eget dictum tortor, vel porttitor nibh. Phasellus fringilla nibh vel mi euismod, vel rhoncus odio rhoncus. In vel porttitor est. Morbi bibendum ligula vitae orci lobortis posuere. + +Maecenas at imperdiet felis. Aenean at massa porta, molestie nibh id, malesuada lacus. Donec accumsan tellus orci, vel posuere ligula porttitor id. In malesuada leo luctus dui consectetur mollis. Nullam non sapien hendrerit, dictum justo id, pulvinar nulla. Fusce porta varius ligula, in sollicitudin leo elementum quis. Aenean sit amet venenatis risus, in fringilla ipsum. Pellentesque mattis gravida pellentesque. Pellentesque id erat at felis posuere hendrerit. Sed id iaculis risus. + +Vestibulum molestie tempus faucibus. Morbi ullamcorper tempor augue, ac ultrices lorem sollicitudin eu. Nam dignissim, quam at pulvinar tincidunt, turpis velit suscipit turpis, sed varius elit diam quis enim. Curabitur imperdiet, massa a lobortis sagittis, lorem augue aliquet nunc, cursus bibendum ante diam ac sapien. Aliquam eget luctus arcu, quis vehicula tellus. Fusce semper eget ligula porta sagittis. Quisque maximus scelerisque porta. Vestibulum consequat quam eget condimentum mollis. Aliquam eget magna elit. Mauris volutpat sem vel tortor mattis consectetur. Etiam consectetur ante nec lacus bibendum, vel vehicula leo mollis. Aenean lacinia tellus id elementum rhoncus. Aliquam ut euismod leo. Sed eros augue, tempus eget urna quis, laoreet tristique tellus. Cras volutpat, orci vitae commodo tempor, mi mauris iaculis turpis, in tempor sapien ipsum non mi. + +Nunc at molestie magna, ut pulvinar risus. Integer vestibulum sapien at felis sollicitudin volutpat. Etiam ac faucibus neque, nec ornare dolor. Nunc et magna ut nunc rhoncus suscipit vel at quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent quis scelerisque augue, tempor finibus sem. Nullam tincidunt eros lorem, vitae maximus enim ornare eget. Ut sed sapien magna. + +Fusce auctor elementum lacinia. Etiam vel lorem elementum, commodo tellus id, auctor augue. Duis eu diam vitae lorem consectetur semper. Curabitur fermentum nibh vitae mi maximus tincidunt at non sem. Integer ac quam condimentum, fringilla ante sed, consectetur sapien. Nunc non convallis magna. Donec luctus porta efficitur. Quisque arcu nibh, convallis mattis sollicitudin nec, bibendum a lectus. + +Nullam lectus tellus, pretium nec mi nec, euismod tempus sem. Donec ut cursus massa. Vestibulum pellentesque magna dictum, bibendum nulla at, ultrices elit. Mauris bibendum condimentum laoreet. Nullam nulla metus, iaculis et eleifend a, auctor quis lectus. In hac habitasse platea dictumst. Quisque ac lectus dictum, scelerisque arcu quis, accumsan massa. Nulla ultricies sem vel metus pretium feugiat. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam ornare dolor a neque interdum posuere. Etiam sem mauris, malesuada sit amet sem eu, suscipit maximus elit. Quisque rhoncus ullamcorper felis, vel vestibulum turpis egestas eget. Suspendisse mauris lacus, elementum id suscipit vel, pulvinar id arcu. Mauris odio elit, condimentum a facilisis et, semper ultrices magna. Cras tincidunt tempus pretium. Pellentesque pharetra suscipit convallis. Nam eu massa vel orci placerat tempus. Sed feugiat maximus consequat. Curabitur arcu augue, sodales a purus ut, facilisis feugiat tortor. Integer pretium at sem dictum eleifend. + +Fusce ac turpis risus. Proin ipsum libero, pretium at nibh sit amet, vulputate cursus sapien. In gravida est metus, in rutrum velit lacinia at. Proin at hendrerit turpis. Ut sodales tincidunt dolor, luctus consequat ipsum gravida non. Cras in gravida neque. Nunc vitae sem eu justo ultrices interdum bibendum sit amet neque. + +Morbi id eros vitae diam commodo blandit. Pellentesque efficitur ex vitae nibh fringilla ultrices. Maecenas tristique risus sit amet nibh maximus, ut faucibus odio pharetra. Maecenas luctus ultricies odio a sollicitudin. Fusce sed lorem non ante faucibus faucibus. Nam tristique id tellus quis maximus. Vestibulum diam nunc, aliquam at placerat vitae, facilisis ac libero. Curabitur non ultrices lectus, a dignissim urna. + +Aenean nec sem congue, condimentum lacus ac, gravida sapien. Integer euismod sagittis quam, id sagittis lorem commodo ut. Ut vehicula turpis quis tortor sagittis, et venenatis neque ultricies. Aliquam eu sem dui. Quisque vehicula, nulla nec sollicitudin pulvinar, sapien dui condimentum enim, vel dignissim nunc risus sit amet ante. Quisque in neque feugiat, mollis lacus dignissim, lobortis nibh. Duis efficitur posuere molestie. + +Vestibulum dignissim neque nibh, quis faucibus mi tristique non. Integer auctor arcu eu dolor iaculis, ut congue augue consectetur. Nulla hendrerit nibh mauris, eu varius sem ornare et. Pellentesque sagittis aliquet orci, ac hendrerit magna feugiat et. Ut egestas enim eget orci tempus posuere. Pellentesque imperdiet justo ac nulla facilisis semper. Integer malesuada vestibulum sapien et viverra. Donec ut facilisis nibh. Sed at tempor arcu, aliquet bibendum augue. Duis sit amet egestas quam. + +Nulla aliquam nunc tortor, lobortis semper erat varius aliquam. Integer tempus faucibus dolor vitae tristique. Praesent dignissim ac urna non mattis. Sed porttitor maximus auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed luctus sodales tristique. In ac euismod nisi, egestas suscipit tortor. Curabitur finibus placerat dui, vitae malesuada est luctus id. + +Praesent sit amet justo sit amet leo feugiat auctor. Vestibulum ullamcorper arcu at nisl dictum tincidunt. Maecenas non arcu blandit velit ultricies tempor ut vel tortor. Suspendisse vehicula augue quis orci pulvinar, vitae sagittis diam venenatis. Pellentesque convallis justo non libero posuere, non posuere massa convallis. Sed porttitor non enim aliquam venenatis. Quisque ipsum ligula, aliquam vel consequat sit amet, fermentum at augue. Maecenas nec lectus id purus dignissim eleifend. Maecenas accumsan risus urna, vitae volutpat nulla viverra a. Vivamus ac hendrerit eros, egestas pretium odio. Pellentesque nec enim vel dui mattis sagittis vitae a turpis. Quisque varius porttitor urna vel porttitor. + +Donec in nunc tristique, lobortis ex aliquam, viverra arcu. Pellentesque placerat leo interdum, lacinia nisl ut, dapibus ipsum. Praesent feugiat metus vel augue condimentum consectetur. Nullam accumsan luctus eros, eget sollicitudin libero molestie at. Quisque sapien erat, porta nec est eget, bibendum condimentum erat. Sed fringilla a metus nec suscipit. Morbi ac ex porta, tristique ex et, tristique erat. Mauris condimentum, augue et mattis commodo, nisl justo fermentum massa, eu rutrum risus lorem non elit. Suspendisse fringilla ornare interdum. + +Pellentesque vitae velit non mauris vehicula tincidunt eu ac nulla. Donec nec vestibulum neque. Etiam id arcu nec est placerat blandit ac vel lorem. Pellentesque consectetur nunc eget nunc pharetra, eu commodo urna malesuada. Nunc lacinia efficitur luctus. Curabitur scelerisque tortor sit amet lectus faucibus fringilla. Proin molestie lorem ac facilisis consectetur. Cras auctor dui ut erat vestibulum, ut pretium sem gravida. Ut et ullamcorper orci, nec sagittis sem. Cras fermentum convallis ante, id vestibulum erat mollis non. Aenean at fringilla arcu. Duis congue metus at purus mattis euismod. Nam luctus volutpat justo. Nunc vehicula pellentesque orci eget laoreet. Cras dictum nulla in ligula placerat interdum. Donec condimentum massa aliquet iaculis facilisis. + +Sed gravida libero a neque efficitur, rutrum varius est tristique. Maecenas feugiat elit neque, sit amet feugiat velit tempus id. Donec ut volutpat turpis. Sed maximus mauris lacus, eu finibus turpis scelerisque sit amet. Fusce molestie volutpat lorem vitae viverra. In hac habitasse platea dictumst. Phasellus lobortis purus quis metus faucibus iaculis. Morbi non mi metus. Sed ut finibus erat. Nulla a porta sapien, a hendrerit elit. Donec a cursus tellus. Proin efficitur ante tellus, vitae viverra elit sodales ut. Integer ac molestie tortor. Pellentesque vulputate aliquet imperdiet. + +Ut efficitur justo aliquam molestie blandit. Ut posuere lectus auctor, euismod lorem id, laoreet justo. Aliquam convallis, risus sit amet rutrum hendrerit, urna velit lacinia lacus, in varius metus nunc vel orci. Cras suscipit, neque et sollicitudin gravida, lorem elit gravida eros, a dapibus ligula odio vitae nisi. Etiam ac tortor orci. Fusce sagittis non quam eu posuere. In pretium ullamcorper justo id aliquam. In condimentum, dolor quis gravida iaculis, enim ante pharetra tortor, bibendum ullamcorper magna dolor at erat. Morbi et nunc egestas, blandit ante vel, bibendum nunc. Morbi tincidunt lorem urna. Nunc tristique quam leo, sit amet congue arcu sodales nec. + +Ut porttitor venenatis varius. Donec vitae justo dui. Vestibulum eget metus interdum, congue nunc interdum, bibendum diam. Sed at nibh libero. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hac habitasse platea dictumst. Nulla dolor lacus, convallis non vulputate a, consequat a orci. Aliquam sodales massa orci, id congue eros dapibus vel. Suspendisse massa lacus, convallis nec cursus quis, congue a elit. Praesent convallis, neque a imperdiet bibendum, velit neque molestie orci, sed faucibus diam libero ac nisi. Etiam tempus finibus orci lacinia faucibus. Ut semper venenatis justo, in tempus libero luctus et. Duis dictum mattis metus. Aliquam malesuada elementum pharetra. + +Sed non sapien mollis, bibendum neque pellentesque, tincidunt ipsum. Etiam libero lectus, tincidunt sed sodales vel, hendrerit nec mi. Nulla fermentum, mi sit amet dapibus laoreet, arcu neque mollis purus, quis dictum lorem mauris ut arcu. Vestibulum varius fermentum euismod. Nunc ut lobortis purus. Nunc eu nibh euismod mi venenatis rhoncus sit amet et quam. Maecenas iaculis nisi felis, sit amet cursus justo gravida ut. Suspendisse fringilla turpis non lobortis fermentum. Integer vehicula augue in blandit cursus. Aliquam erat volutpat. Donec finibus pharetra mauris. In pulvinar imperdiet tincidunt. + +Sed maximus tincidunt lacinia. Praesent a mauris sed nibh accumsan congue. Etiam vel nisi sit amet eros vehicula posuere. Sed hendrerit semper massa, sit amet lacinia purus finibus nec. Morbi a dui ullamcorper, euismod dolor scelerisque, vehicula lectus. Integer auctor vestibulum ligula, a pharetra turpis posuere at. Nunc consectetur sem nisi, vitae lobortis risus ornare sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec pharetra diam a nisl bibendum sagittis. + +Quisque commodo rutrum tempor. Fusce at augue metus. Pellentesque dapibus placerat est eget lobortis. Sed porttitor vel libero eget hendrerit. Sed posuere libero nulla, in commodo urna egestas quis. Nam nec odio tristique sem rhoncus porttitor. Nullam eget nisl elit. Donec justo magna, ullamcorper eu quam ut, bibendum laoreet sapien. Integer euismod euismod metus, quis interdum ipsum vulputate et. Praesent volutpat risus leo, vel faucibus sem auctor quis. Mauris venenatis urna ac odio sagittis congue. Nulla iaculis sagittis mauris vel maximus. Praesent luctus velit ligula, vel luctus velit vehicula nec. Curabitur et condimentum nisl, in accumsan sapien. + +Curabitur et eros tempor, tempus mauris quis, feugiat mauris. Morbi quis ligula malesuada, sollicitudin est at, pellentesque nunc. Sed nisi quam, dapibus a porttitor quis, venenatis quis diam. Aenean sed bibendum urna. Curabitur eget dolor ante. Aliquam sit amet consequat odio, non convallis magna. Cras gravida lorem et felis efficitur, sit amet viverra ligula suscipit. + +Vestibulum consectetur lobortis arcu. Aliquam efficitur nunc quis est laoreet, et efficitur erat porta. Vivamus molestie nunc eu arcu porttitor venenatis. Duis non consectetur nulla. Nunc felis leo, accumsan ac neque a, commodo cursus massa. Quisque pretium vestibulum justo in aliquam. Aliquam erat volutpat. Duis molestie lorem eget mauris tempus, efficitur elementum velit tincidunt. Donec ultrices placerat felis. Integer sed ultrices nunc. Sed fermentum lorem vitae felis commodo, vitae posuere felis commodo. Fusce eu suscipit metus, ac imperdiet tortor. Nunc a ligula sodales, tincidunt justo ut, ultrices ante. Nam non enim sodales, maximus felis in, ullamcorper nulla. + +Pellentesque maximus vulputate convallis. Maecenas blandit viverra urna in efficitur. Mauris pellentesque sollicitudin turpis, eu ornare lectus finibus sit amet. Praesent in hendrerit mi, tincidunt tincidunt ante. Ut orci mi, tempor in rhoncus sed, ornare maximus ligula. Nulla volutpat lectus elementum ligula sodales vehicula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla risus velit, sodales eu varius non, laoreet sed nunc. In placerat aliquam erat, et commodo nisi hendrerit ut. Aenean auctor blandit urna, eget semper justo condimentum id. Suspendisse potenti. + +Donec tincidunt orci sit amet turpis vestibulum, nec gravida diam consectetur. Ut pretium ante molestie, euismod libero et, luctus ex. Mauris ornare accumsan tincidunt. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque pulvinar tincidunt purus quis dignissim. Aenean neque quam, luctus ultricies magna sed, dapibus imperdiet velit. Fusce faucibus blandit eros, ut convallis massa molestie ut. Nullam ultricies tellus pharetra neque posuere, vitae luctus massa sollicitudin. Pellentesque a turpis a nibh dignissim feugiat. Ut et tellus condimentum, congue lectus vel, eleifend eros. Pellentesque a justo at ipsum vehicula hendrerit. Nunc eget sem libero. Proin sodales nibh eget lectus cursus accumsan. + +Pellentesque rutrum pulvinar sapien, pellentesque semper metus cursus non. Phasellus sed sem vel enim mollis pretium. Mauris sodales nisl eget ullamcorper dapibus. Curabitur lacinia quam non nisi maximus tempor. Vivamus pharetra velit eu leo congue, nec commodo nulla pharetra. Phasellus eu nunc ipsum. Fusce viverra tincidunt ligula, non vestibulum elit feugiat in. Duis auctor quam nec pretium elementum. Morbi a augue massa. + +Pellentesque id hendrerit metus. Sed rhoncus dapibus lectus, ut interdum sem efficitur at. Sed vehicula aliquam hendrerit. Fusce eget sapien felis. Etiam ac tempus eros. Etiam nec orci euismod, varius ex sed, ullamcorper neque. Aenean dictum malesuada sem, sit amet ultrices augue sagittis ac. Proin eget nibh ac nunc consequat euismod. Etiam suscipit est in odio dignissim, suscipit iaculis dui varius. Proin hendrerit eget velit sit amet porttitor. Sed vel lacus est. Nullam at justo eget odio venenatis efficitur nec et lectus. Mauris nec lacinia magna, vel rutrum lectus. Donec tincidunt, lacus ac fringilla cursus, odio velit facilisis ligula, nec cursus orci dui at nibh. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at lectus tempor mauris efficitur semper ac eu dui. Ut interdum eget est bibendum faucibus. Donec et leo sed est porttitor blandit. Suspendisse elit odio, consequat sed scelerisque non, lacinia ac dui. Etiam imperdiet interdum nulla. Curabitur risus metus, malesuada quis congue in, sollicitudin at orci. Mauris sit amet tempus justo, ut scelerisque nunc. Donec et efficitur est. Donec a magna et eros scelerisque facilisis. Praesent hendrerit convallis turpis ut viverra. Curabitur ut nibh non quam interdum interdum. Quisque eget sapien vitae orci malesuada fermentum. Vestibulum nec nisi sit amet purus ullamcorper sagittis. Aliquam mattis, ligula non posuere mollis, velit dui lobortis ante, consequat porta mauris nisi in massa. + +Donec euismod quis augue quis consectetur. Pellentesque sit amet varius velit, et auctor nisl. Ut fringilla augue id mauris consectetur auctor. Nulla sit amet turpis hendrerit diam gravida rhoncus. Praesent ipsum velit, scelerisque at maximus sit amet, tincidunt et ligula. Donec cursus scelerisque dictum. Ut elementum sem finibus elementum auctor. Donec vitae sem vestibulum, vehicula enim at, pellentesque dui. Fusce vestibulum, nibh vel viverra pulvinar, nunc velit auctor dolor, vel placerat sapien neque ut massa. Donec nisi nisl, lacinia vel tortor eu, maximus lobortis sem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent sed ultricies odio. Duis eu congue mi, nec rhoncus elit. Vestibulum nunc lorem, eleifend a porttitor sit amet, pretium finibus sapien. + +Nulla nec est porta, sagittis urna eu, finibus nisl. Curabitur dignissim iaculis dolor in molestie. Vestibulum molestie neque sem, sit amet malesuada urna accumsan sit amet. Mauris dictum euismod sagittis. Donec ac purus id eros dictum varius imperdiet nec mi. Nam semper, odio quis mattis eleifend, turpis velit suscipit ex, vel pulvinar sapien libero id ex. Donec vitae tellus et orci pulvinar interdum. Sed eget nisi id eros dictum ultricies ut vel enim. In venenatis mauris arcu. Sed tincidunt nisl purus, id placerat ante pellentesque sed. Pellentesque vel arcu molestie, posuere sapien nec, volutpat quam. Nulla at odio pellentesque, finibus augue ut, blandit ipsum. Fusce venenatis augue eget fermentum venenatis. + +Nulla sollicitudin scelerisque nisl, luctus lacinia enim vehicula sed. Nunc luctus turpis sed euismod condimentum. Pellentesque scelerisque, sapien at eleifend viverra, ante justo porta nisi, non rhoncus ante nibh et justo. Cras mattis ante a est luctus, vel tincidunt risus finibus. In urna dui, accumsan non orci sit amet, aliquet porta quam. Vestibulum et est eu est varius finibus. Suspendisse potenti. Sed sapien felis, tincidunt et erat ut, luctus elementum diam. Donec tincidunt ultrices porttitor. + +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed luctus lobortis nibh eu fringilla. Cras vitae pellentesque enim. Proin sed lorem et sapien congue placerat quis quis lectus. Duis purus nulla, malesuada at lectus non, consectetur convallis ante. Aenean faucibus odio sit amet risus pretium lacinia. Morbi mollis, nisi quis tristique porttitor, nisi tellus ultrices risus, nec pellentesque mauris dolor vel lorem. In tristique nunc eget metus accumsan, sed sagittis velit varius. Vivamus sit amet sapien ultrices, pretium neque vel, hendrerit nisi. Proin ut ligula id quam laoreet consequat vitae sit amet quam. Aliquam non lacus velit. Duis sed suscipit sapien. Pellentesque non justo in nibh consectetur aliquet. Nulla facilisi. Nunc sollicitudin nisi vulputate ultricies vestibulum. Aliquam aliquam posuere nulla. + +Nam consectetur nibh ut purus euismod dictum. Donec dolor ante, ultricies in est ullamcorper, consectetur suscipit erat. Pellentesque nec porta mauris. Cras tempor mattis libero ut vehicula. Morbi suscipit porttitor velit, nec dictum diam commodo et. Morbi porttitor elementum hendrerit. Nullam in lorem egestas, faucibus libero malesuada, viverra diam. Mauris luctus massa eget massa dapibus mattis non ac augue. Nulla sollicitudin, lectus non congue ornare, felis ligula congue mauris, id convallis ligula arcu a mauris. Proin sit amet mi a nibh molestie tincidunt. Praesent gravida nunc sit amet eros posuere pulvinar. Phasellus ut placerat mauris. Praesent id venenatis turpis. + +Nam eu leo mi. Mauris elementum orci ac nunc aliquam, nec luctus nisi convallis. In hac habitasse platea dictumst. Aenean vitae orci massa. Donec lacus nulla, ultrices ut porttitor ut, blandit id ex. Nullam auctor odio vitae enim dictum convallis. Aenean in pretium felis, laoreet mollis lacus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec malesuada egestas tortor non accumsan. Mauris tempor enim rhoncus, pulvinar dolor eget, semper est. Nullam laoreet vitae dui a euismod. Praesent cursus varius arcu, sit amet ultrices urna vehicula at. Donec vestibulum, lorem vel ultrices commodo, ligula erat dapibus mauris, vel tincidunt lacus erat eu enim. + +Integer ut neque sed lacus rhoncus scelerisque vel in neque. Nunc non odio dictum quam fermentum fermentum porta ut erat. Suspendisse egestas sit amet ex eu cursus. Pellentesque pretium massa non congue tempus. Sed ac faucibus quam. Aenean eu dui aliquam, consequat eros quis, cursus eros. Morbi venenatis blandit ante ac imperdiet. Aliquam a massa nec felis ultrices maximus laoreet et nulla. In sed massa vitae dui malesuada commodo sit amet a sem. Donec ac nibh diam. Sed rhoncus laoreet orci, at sodales tellus consectetur quis. + +Nulla egestas urna sed mollis hendrerit. Quisque eget odio sit amet arcu semper aliquet vitae non mi. Nullam nulla libero, interdum efficitur elit scelerisque, bibendum condimentum neque. Sed laoreet pretium massa, nec pretium diam lacinia eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer congue non elit eu dignissim. Vivamus volutpat ante et tortor mollis finibus. Donec sollicitudin ex eget dignissim tempor. Ut et nibh turpis. Vestibulum ut est purus. Donec posuere aliquet magna sit amet faucibus. Praesent feugiat augue nisl, at congue sapien feugiat at. Morbi luctus dignissim viverra. Nulla ultrices odio at tempus vehicula. Cras nec fringilla tellus. Donec faucibus nisi luctus urna imperdiet volutpat. + +Vivamus lacus turpis, iaculis sed molestie vel, dignissim nec metus. Nullam ut ullamcorper nisl, sed bibendum urna. Nam et viverra arcu, nec volutpat diam. Nullam auctor dapibus aliquam. In lobortis, felis vel laoreet viverra, dolor mi auctor libero, ac mattis leo nibh lacinia orci. Mauris efficitur, tortor vel volutpat ultrices, dolor libero iaculis justo, id rutrum est diam quis arcu. Sed quis ipsum placerat, ultricies erat ac, faucibus turpis. + +Proin a consectetur ante. Donec ultricies nunc in tortor mollis blandit. Cras arcu libero, ultrices accumsan sollicitudin ut, porta vel risus. Donec id mauris purus. Nam dictum urna non neque faucibus tincidunt. Fusce faucibus libero et sapien condimentum, ac gravida tortor tempor. Morbi sit amet tellus malesuada, iaculis diam sit amet, facilisis leo. Nunc finibus tellus risus, id faucibus dui condimentum at. In lobortis leo at vulputate laoreet. Donec id blandit libero, bibendum fringilla nisl. Sed pharetra eros quis leo efficitur imperdiet. Nulla aliquam purus libero, at accumsan libero dignissim non. + +Phasellus lorem arcu, gravida sed ante ut, dapibus tincidunt mauris. Nunc imperdiet vehicula ligula. Aliquam erat volutpat. Vestibulum neque justo, rutrum a arcu aliquet, cursus vulputate risus. Quisque hendrerit tortor vel tempor scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec cursus sagittis est vel gravida. Proin lobortis molestie diam non ullamcorper. Donec at viverra lacus. Integer vel nisl a leo blandit tempus. Nullam ac est vestibulum, vehicula tellus et, ullamcorper arcu. Donec pellentesque cursus vulputate. Ut vel nulla et ipsum imperdiet imperdiet. Curabitur eu finibus odio. Suspendisse tellus lacus, mattis et dui eget, ultricies consequat ipsum. Nunc in tortor ligula. + +In augue tellus, euismod sed vehicula in, sagittis sed leo. Nulla consectetur facilisis lacus, bibendum feugiat urna consequat eget. Ut ornare dui bibendum dapibus consectetur. Pellentesque eget congue lacus, a bibendum ligula. Maecenas laoreet lacus nibh, at vestibulum ex laoreet ut. Nunc laoreet urna eu placerat ultrices. Fusce non purus ullamcorper, suscipit odio a, suscipit tortor. + +Nunc elementum urna sit amet ligula viverra, nec vestibulum mauris congue. Pellentesque eget porta diam. Quisque sed varius augue, sed porttitor velit. Praesent nec risus et quam tempor hendrerit. In pulvinar dui et rutrum tempor. Vestibulum eleifend lorem quis ligula pellentesque, sit amet bibendum ipsum fringilla. Sed leo nisl, aliquam eget erat nec, porttitor cursus ante. Aliquam tristique justo ac purus egestas, in blandit erat convallis. Nullam vitae nunc id nulla pharetra convallis volutpat nec ex. + +Pellentesque interdum faucibus est eu pharetra. Cras convallis nulla libero, cursus facilisis nulla imperdiet sed. Ut risus ex, venenatis ut eros iaculis, pellentesque accumsan mi. Nam sollicitudin pulvinar lacus, vel sodales felis fringilla vel. Donec ultricies, elit quis dapibus bibendum, nibh est tristique dui, eget malesuada nulla odio vitae diam. Pellentesque placerat, felis id posuere gravida, lectus velit mollis magna, non interdum odio ex et justo. Donec quam tortor, iaculis ac sem a, dapibus elementum neque. Fusce at nisi sed ante suscipit imperdiet. Duis tempor magna sed suscipit aliquet. Aliquam metus massa, accumsan non nunc sit amet, dapibus consequat tortor. In a iaculis libero, vel ornare orci. Phasellus eget lectus vitae eros vestibulum efficitur. Sed mollis tincidunt ex. Pellentesque tempor quis massa ac efficitur. Curabitur lobortis ante non dolor posuere, vitae posuere ex commodo. + +Integer felis risus, malesuada id arcu sit amet, dignissim elementum sapien. Curabitur porta quis magna quis varius. Curabitur dolor elit, vulputate vitae imperdiet vestibulum, posuere id ante. Ut eget porta elit. Vestibulum posuere feugiat est consectetur ullamcorper. Ut dolor metus, aliquam quis ornare at, vulputate id est. Vestibulum eu sapien ultricies, viverra quam nec, egestas turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean et maximus diam, eget porta justo. Duis ornare magna quam, nec posuere velit blandit sed. Donec elementum euismod scelerisque. Sed cursus ligula in diam gravida placerat. Praesent et mauris quis orci maximus iaculis. Nullam lobortis semper orci, sed fringilla risus tempus at. Nullam at porta nulla. + +Cras in massa eu felis bibendum varius et quis lorem. Nunc interdum velit nulla, sed pulvinar nunc dapibus laoreet. Maecenas nec ex libero. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vitae massa quis sapien tincidunt tincidunt eu in eros. Suspendisse lacus massa, venenatis vitae libero id, sodales eleifend nisi. Fusce quis felis tellus. Sed interdum faucibus ipsum sed fermentum. Nam eget velit neque. Integer iaculis nisl sit amet odio venenatis, eget sollicitudin lorem tempor. Suspendisse accumsan augue tincidunt odio laoreet interdum. Vivamus tristique volutpat elit sit amet suscipit. + +Sed sodales sem dolor, ac porta ipsum consequat tristique. Aenean pharetra ipsum id ipsum scelerisque, a iaculis leo porta. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque elementum risus ac nisi feugiat dapibus. Nunc eget egestas purus. Cras tempor, purus eu maximus imperdiet, lacus ante pharetra ante, nec feugiat nisi massa vitae ante. Cras quam orci, eleifend eget ligula ut, faucibus finibus mauris. Curabitur lacinia ultrices enim, a vulputate elit porta ut. Cras at risus varius urna viverra sodales eu nec ante. Vivamus tortor ante, mollis in mi a, consequat feugiat turpis. Nunc porta felis sed lectus mollis lobortis. Quisque tellus metus, molestie eget lorem ut, efficitur consequat leo. Curabitur bibendum quam id leo sagittis efficitur eu id ipsum. + +Sed semper eros vel justo laoreet euismod. Morbi egestas non eros in euismod. Fusce nec urna nec odio commodo dapibus ut et est. In et turpis pretium, rutrum nunc ac, consectetur justo. Nunc ut nunc consequat, euismod turpis ac, posuere sapien. Quisque dapibus nibh nec urna cursus iaculis. Nunc suscipit ornare ipsum, quis bibendum augue efficitur eget. Vestibulum tincidunt elementum lorem et rutrum. Fusce condimentum metus mi, eu posuere eros lacinia in. Nullam iaculis nibh mauris. Nullam vehicula volutpat posuere. Suspendisse cursus accumsan urna, at posuere felis faucibus et. Donec at velit vitae ex fringilla laoreet nec ac nunc. Phasellus efficitur neque diam, quis rutrum purus rhoncus nec. Aliquam scelerisque mauris eget risus tincidunt vehicula. Nullam faucibus enim eget dolor efficitur mattis. + +Sed dui orci, posuere vitae turpis eu, placerat consequat tellus. In et lacus mattis, placerat ex vitae, posuere urna. Ut pharetra nunc mollis felis blandit, quis congue felis vestibulum. Fusce placerat quis ipsum sed ultricies. Proin pharetra purus in diam tristique maximus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam molestie, risus et tempor luctus, sem nisl vulputate elit, in fringilla diam metus nec ante. + +Sed maximus nibh felis, eget congue sapien porttitor vel. Etiam et dolor rhoncus, sodales est vel, finibus urna. Sed eu tortor finibus, feugiat eros id, consectetur massa. Sed maximus tempus feugiat. Quisque nisl metus, sagittis et dui vel, viverra luctus dui. Etiam orci est, mattis a facilisis eu, rhoncus eget diam. Mauris aliquam scelerisque aliquet. Proin purus est, iaculis vel ullamcorper eu, maximus eget metus. Phasellus quis purus non elit suscipit condimentum ac et risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse sodales mattis mauris, nec hendrerit purus. Duis placerat tortor tellus, et condimentum justo porttitor id. Phasellus malesuada, turpis non scelerisque condimentum, orci libero posuere arcu, in placerat metus tellus at quam. + +Phasellus et erat sem. Aliquam faucibus tristique feugiat. Vivamus eu lacus vel lorem condimentum maximus a vitae ligula. Donec molestie consequat lorem non venenatis. Donec quis nunc orci. Proin sit amet malesuada est, vel aliquam ipsum. Sed posuere risus id posuere aliquet. + +Nam mattis massa a arcu tristique fringilla. Aliquam hendrerit lobortis egestas. Aenean ornare lectus in est blandit luctus. Nam eu ultrices nisl. Nulla efficitur nisi rhoncus lectus blandit, vitae bibendum nisl consequat. Sed ut tempus leo. Nullam vestibulum hendrerit diam, lacinia fringilla est venenatis quis. Nulla eu aliquam tortor, at efficitur neque. Sed facilisis tortor rutrum tortor condimentum, in laoreet mi iaculis. In luctus nec purus pretium tristique. Nulla sodales lectus eget orci egestas congue. Sed id feugiat ligula. Phasellus suscipit id lacus in convallis. + +Pellentesque purus est, sodales sed cursus ut, ullamcorper sit amet neque. Aenean condimentum rhoncus sapien, quis porttitor enim maximus a. Suspendisse ut sagittis nunc. Quisque non justo id turpis pulvinar mollis ut non nunc. Fusce lacus nibh, fringilla ac nulla vitae, posuere gravida ipsum. Nam efficitur, augue in faucibus ornare, urna sem interdum dui, sodales euismod dui sapien et quam. Ut vel urna vitae lacus venenatis gravida non nec urna. Donec a arcu tempor, consequat risus sit amet, tempus urna. In sollicitudin mi commodo velit dapibus blandit. Praesent eleifend enim in nulla porta finibus. + +Nulla facilisi. Praesent ullamcorper nec neque quis pulvinar. Vestibulum molestie interdum nunc, in sollicitudin velit elementum auctor. Suspendisse potenti. Donec ac leo quis arcu ornare pulvinar et accumsan arcu. Nunc bibendum nunc vel blandit posuere. Quisque nec elementum lacus. Pellentesque aliquam auctor dui ac rutrum. Integer ullamcorper lacus ante, in viverra arcu porttitor vel. Aliquam sit amet sem eu sem lacinia blandit. Donec tincidunt congue pharetra. + +In volutpat tempor dolor. Phasellus lorem nibh, luctus non enim sed, iaculis accumsan ipsum. Cras egestas consectetur urna, quis blandit lectus ullamcorper non. Curabitur erat felis, ornare et risus sit amet, blandit sollicitudin purus. Vivamus pretium porttitor varius. Donec et porta nulla. Mauris sed nulla interdum, imperdiet mauris et, dictum odio. Ut ut erat libero. + +Nulla eleifend mauris et efficitur lobortis. Curabitur quis rhoncus mi, non rutrum urna. Quisque hendrerit, risus sed egestas consectetur, neque tortor dapibus eros, sed lacinia felis felis in nisi. Curabitur ut tortor vitae urna aliquam rutrum non id nunc. Duis tempor tellus eget ligula gravida, ac tincidunt magna vulputate. Sed tincidunt quam vitae tortor tempor consequat. Vivamus vulputate diam sed lectus egestas blandit. Cras ex lacus, tempus semper luctus et, porta at quam. Aliquam ac metus libero. Etiam molestie accumsan sapien, quis gravida dolor rhoncus et. Nam in elementum nisi. Nunc dignissim felis sem, sit amet venenatis turpis faucibus a. Nulla lacinia nisl elit, eget pellentesque sem finibus vitae. Aliquam porta commodo nunc, non tincidunt lorem volutpat sit amet. + +Nulla semper enim non pharetra dapibus. Pellentesque hendrerit orci sit amet gravida ullamcorper. Nam elementum ligula vel orci rutrum, in pharetra magna vulputate. Cras quis ipsum nec enim interdum faucibus vel nec magna. Etiam id ante lacinia, venenatis libero at, accumsan est. Aliquam varius at urna et convallis. Phasellus commodo nisi ut mauris molestie, et rhoncus metus dictum. Vivamus venenatis augue ex, sit amet pellentesque odio condimentum at. Quisque id semper lacus. + +Etiam sit amet pharetra augue. Fusce sit amet quam auctor, eleifend risus euismod, malesuada sapien. Donec finibus luctus turpis id porttitor. Maecenas mi diam, rutrum quis mi at, sagittis laoreet nunc. Curabitur consequat vulputate pellentesque. Morbi vel interdum dui. Maecenas lacinia, ante et aliquam bibendum, urna augue vestibulum nisi, vitae feugiat sapien nibh eu eros. Mauris cursus, purus sed cursus commodo, enim tellus semper arcu, quis hendrerit purus lorem quis nibh. Etiam id lobortis felis, sed ultricies libero. Quisque hendrerit ipsum ut aliquet viverra. Quisque eu tempus velit, vel gravida eros. Fusce a massa consequat dolor condimentum dictum quis a neque. + +Morbi malesuada vestibulum feugiat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis dictum suscipit imperdiet. Nulla id diam eu lectus suscipit tincidunt sit amet pulvinar arcu. Aenean pulvinar facilisis nibh nec feugiat. Fusce eu est vitae nunc bibendum cursus. Sed ullamcorper molestie lacus, non feugiat nibh feugiat non. Fusce bibendum felis a arcu bibendum, ac hendrerit eros blandit. Aliquam a quam sit amet sem ornare ullamcorper ut vitae felis. Sed porta, ex non ultrices scelerisque, nisl massa elementum ipsum, nec placerat est justo sit amet augue. Maecenas facilisis nulla aliquet massa tincidunt, eget semper orci pulvinar. + +Phasellus at quam a libero blandit iaculis. Sed sit amet magna in felis mollis sagittis. Nulla vestibulum suscipit commodo. Nullam dictum turpis eu nisi sollicitudin bibendum. Nullam eu ex pretium, eleifend libero tincidunt, placerat augue. Nullam quis porttitor nisl. Suspendisse rhoncus orci et ex maximus euismod. Nunc imperdiet augue maximus, dignissim ipsum et, feugiat sem. Vestibulum in nunc sed libero efficitur dignissim. Morbi vel arcu quis ipsum vehicula faucibus. Quisque scelerisque ligula libero, vitae consequat ex posuere eget. Sed eu nunc cursus, euismod dolor id, mollis tellus. Ut accumsan quis metus in sagittis. Vestibulum consequat lobortis vehicula. Maecenas risus nisi, sodales sit amet diam ut, faucibus mattis libero. + +Nullam quis justo pretium, dapibus purus sit amet, rhoncus magna. Pellentesque eget velit a urna sollicitudin feugiat. Mauris lacus nisl, posuere ut est in, pulvinar tincidunt augue. Nulla in libero sit amet est iaculis commodo. Nulla aliquet vel mi a ultrices. Cras nec varius nisl, non condimentum nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus ut ex a odio cursus dignissim. Mauris a mauris hendrerit, facilisis tellus a, porttitor mi. Vivamus posuere, arcu ac tincidunt pharetra, ante ex eleifend elit, et aliquam ante dui quis ante. Duis ut hendrerit nulla. Sed et consectetur dolor, a elementum felis. Proin elementum ex lacus, interdum convallis tortor laoreet in. Donec tempus condimentum ante, nec blandit orci posuere vitae. Fusce non facilisis erat. + +Ut viverra lorem augue, ut efficitur dolor vehicula volutpat. Aenean eu dapibus elit, sit amet sagittis quam. Ut sed cursus lectus, quis varius mi. Etiam malesuada dignissim eros ut rhoncus. Integer posuere dui nec neque sollicitudin, nec posuere eros luctus. Cras dictum tristique erat et congue. Etiam congue laoreet quam, eget mattis nunc convallis vel. Vestibulum sit amet massa id enim dapibus suscipit. Curabitur eget consectetur neque. Duis non faucibus nibh. + +Nulla nec ipsum lobortis, cursus diam et, placerat erat. Integer id erat ut est ornare iaculis at at odio. Phasellus sed ligula nec purus suscipit maximus volutpat id magna. Integer neque ipsum, lobortis ut risus elementum, commodo iaculis leo. Fusce vel velit diam. Vivamus augue quam, iaculis quis maximus at, cursus id risus. Vestibulum finibus bibendum nunc, eget pulvinar sem placerat eu. Nam convallis non metus sit amet venenatis. Pellentesque rutrum ante iaculis felis dapibus porta. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Fusce ac eleifend metus. Curabitur scelerisque, dui a bibendum vestibulum, augue dolor scelerisque eros, vitae lobortis tellus leo a tellus. + +Maecenas tristique fringilla leo id scelerisque. Phasellus in pharetra neque. Praesent aliquam, est congue gravida condimentum, arcu arcu auctor purus, eu mollis nisi orci sit amet libero. Etiam eget facilisis lorem. Mauris facilisis in sem id dapibus. Ut convallis et mauris a pharetra. Suspendisse pulvinar quam pulvinar lectus mattis, id ultricies nisl faucibus. Quisque mauris quam, pellentesque a urna non, condimentum aliquet dui. Donec arcu nisi, maximus ultricies nibh quis, ultrices consectetur quam. Proin mollis enim non convallis aliquam. Ut quis tempor lectus. Praesent id interdum metus, sit amet iaculis felis. Duis facilisis lorem velit, id viverra nisl fermentum sit amet. + +Pellentesque et dui tincidunt, mattis nibh bibendum, hendrerit justo. Nulla lobortis enim massa, et tempus tortor pharetra eu. Curabitur vitae erat mi. Duis ornare eu magna tincidunt dignissim. Nulla at tortor vel sem auctor luctus. Quisque sollicitudin ullamcorper velit, a tempor metus faucibus et. Donec ante ligula, fermentum vel volutpat id, commodo non metus. Fusce a fermentum libero, a tristique dolor. Donec in bibendum libero. Morbi nec mauris molestie, accumsan turpis nec, scelerisque tellus. + +Pellentesque ligula mi, cursus eget tincidunt quis, iaculis a nulla. Cras sed nisi id lacus gravida facilisis nec ac leo. Sed dictum dolor sit amet nulla porta scelerisque. Vivamus quis semper leo, eget imperdiet est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed tristique tempus placerat. Cras tristique sit amet purus non efficitur. Maecenas a bibendum eros, sit amet pharetra lacus. Maecenas quis dictum purus. + +Curabitur in dolor ut ante iaculis ullamcorper. Vestibulum sed euismod tellus. Sed maximus consectetur velit non congue. Nullam sit amet elit at enim elementum commodo. Praesent venenatis hendrerit ante, eu eleifend neque feugiat pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris eleifend purus sed commodo volutpat. Proin dictum lectus nec justo rutrum scelerisque. Sed ornare, purus quis pharetra lacinia, leo augue rutrum lorem, vitae semper sem justo ac metus. Vivamus pulvinar sit amet dui ut consequat. Duis sit amet libero porttitor dui iaculis malesuada et vitae augue. + +Nunc semper augue in consectetur venenatis. Nulla facilisi. Vivamus sed risus eget lectus aliquet pulvinar ut eget ipsum. Duis justo urna, tempor et vehicula ut, auctor sit amet enim. Vestibulum quis diam quis nibh aliquam blandit sed quis eros. Morbi id dui venenatis, aliquet leo ut, maximus ex. Vestibulum vel quam at arcu suscipit consequat a sit amet velit. Duis et elit tempus, tincidunt arcu eget, accumsan mi. Vivamus maximus sem in turpis maximus iaculis. In gravida vulputate lacinia. Morbi volutpat massa dolor, non finibus leo porta non. Cras porta, dui sed imperdiet pharetra, massa sapien efficitur elit, at imperdiet neque leo ut est. Nunc dictum luctus faucibus. Donec quis bibendum justo, et fringilla orci. Cras interdum, lectus et efficitur viverra, libero elit fringilla metus, at cursus magna nulla vitae nulla. Aliquam lectus dui, malesuada ultricies lobortis posuere, iaculis ac erat. + +Pellentesque elementum risus mauris. Proin lacus purus, congue ac auctor blandit, eleifend id eros. Vestibulum tincidunt sagittis ante, vitae ultricies orci elementum non. Aenean ac vulputate magna. Morbi dignissim quis massa eget condimentum. Aliquam molestie malesuada dolor ac elementum. Quisque facilisis, dolor eu venenatis finibus, augue metus finibus ex, a fringilla mi arcu id sapien. Sed congue vestibulum urna, eget suscipit est tempus at. Nunc pretium aliquam augue, tempor luctus ligula tempus vel. Nam malesuada fermentum diam eget convallis. Donec porttitor eleifend leo dapibus vulputate. Sed gravida luctus ligula, ac vestibulum nisi vulputate eu. Curabitur porta risus massa, aliquet convallis tortor hendrerit eget. Cras iaculis turpis at venenatis lobortis. Pellentesque at nisi ac lacus condimentum tristique et quis magna. Integer eget quam in quam convallis porta sed a magna. + +Aliquam orci ex, feugiat fringilla metus eu, faucibus sodales nisi. Duis euismod scelerisque hendrerit. Ut rutrum suscipit orci vitae efficitur. Curabitur vulputate urna nisl, at consectetur urna pharetra eget. Pellentesque viverra, erat in vulputate fermentum, felis ligula dapibus ligula, quis scelerisque orci sem iaculis neque. Nunc sagittis tincidunt nulla, tempus imperdiet elit scelerisque sed. Proin risus nisi, pharetra in enim vitae, viverra ultrices augue. In eu lacinia massa. Integer tempus elit id laoreet imperdiet. + +Sed dictum lorem eget risus ultrices euismod. Duis imperdiet metus enim, ut vulputate libero ultricies aliquet. Etiam semper, magna ac convallis scelerisque, nisl nulla auctor magna, eget rutrum lorem ligula eu risus. Ut id augue at lorem aliquet ultricies. Cras imperdiet consectetur imperdiet. Nulla facilisi. Quisque vitae ullamcorper ipsum. + +Etiam ac eros porttitor neque tempus tempor in vitae massa. Suspendisse vestibulum, tortor a condimentum egestas, orci turpis cursus magna, vitae suscipit arcu quam non magna. Nam vel turpis a orci maximus ornare eget ac tortor. Curabitur rhoncus est sit amet faucibus sagittis. Nullam quis nisl orci. Maecenas ut pharetra tellus, a condimentum justo. Ut vulputate laoreet ante non suscipit. Cras orci lorem, varius eu quam eget, ullamcorper maximus metus. Duis sit amet justo efficitur, efficitur est et, pharetra nunc. Donec quis ornare erat. Curabitur pretium dapibus libero. Ut lorem diam, ornare in congue nec, tempus ut velit. + +Mauris venenatis vitae velit nec consequat. Cras et ligula feugiat, tincidunt turpis a, imperdiet neque. Suspendisse tempus, dui eget hendrerit tristique, neque enim fermentum augue, ut aliquam odio lacus eu lorem. Morbi fringilla auctor tortor, sit amet hendrerit sapien egestas vitae. Nam dolor lacus, auctor vel sem ut, faucibus tempor magna. Duis sit amet rutrum est, ac tempus nulla. Sed euismod urna et dictum aliquet. Proin hendrerit urna felis, quis lobortis erat accumsan eu. Duis velit neque, hendrerit ornare sem vitae, ultrices condimentum massa. Donec convallis metus turpis, a dictum leo tincidunt nec. Suspendisse eget felis nibh. Integer sollicitudin nunc tempor dolor consequat, nec pretium quam maximus. Maecenas consequat purus sed tortor aliquet, et dictum magna ultricies. Curabitur sollicitudin ipsum leo, eget placerat mauris scelerisque in. Aenean sed lectus pulvinar, lacinia odio et, pretium enim. Nam vestibulum ipsum nec lectus fermentum venenatis. + +In blandit nunc eget arcu condimentum, fermentum posuere orci auctor. Aliquam nec dui sit amet turpis pulvinar feugiat a vitae nibh. Cras vel eros ante. Suspendisse potenti. Nullam ac nisl ante. Vestibulum ullamcorper ultricies justo, feugiat mollis ex lobortis nec. Aliquam consequat arcu nec est semper, in pharetra arcu pretium. Fusce volutpat eros nec maximus scelerisque. + +Nunc bibendum nibh ex, in laoreet tortor varius sed. Maecenas elementum nisl nec turpis laoreet varius. Integer sed egestas augue, nec mollis nulla. Sed non eros ac lectus rutrum aliquam. Vestibulum ac consectetur dolor. Fusce enim nibh, venenatis id est vitae, rutrum gravida nibh. Phasellus id enim nunc. Curabitur tristique mi sit amet vestibulum tempor. Nulla in fringilla velit, quis euismod ex. Nulla facilisi. Sed vulputate nunc nec felis convallis, vel laoreet tortor condimentum. Morbi non mauris in lectus congue molestie non id sem. + +In eu viverra tellus, luctus consectetur nibh. Sed vel quam id arcu pharetra ullamcorper quis sed tellus. Vivamus condimentum, eros eu consequat tristique, massa dui pretium eros, ut finibus est erat id mauris. Nam ut augue quis orci accumsan dignissim eget vel lectus. Morbi vulputate pretium nunc, eu efficitur quam tincidunt vel. Maecenas accumsan euismod bibendum. Nulla facilisi. Duis imperdiet vitae tortor eu sagittis. Sed viverra lobortis nibh. + +Curabitur id tempor nulla. Quisque id scelerisque dui, a tincidunt magna. Mauris interdum purus scelerisque faucibus vehicula. Nam ut rutrum nisl, a pellentesque metus. Quisque eu ultrices eros. Aenean fermentum maximus varius. Vestibulum imperdiet risus mauris, id dictum urna elementum at. In hac habitasse platea dictumst. Curabitur pulvinar, dolor eu auctor vulputate, tellus ipsum faucibus nunc, sed laoreet libero dui quis metus. Vestibulum fringilla elit eu massa porttitor vestibulum. Nullam tincidunt lobortis faucibus. Nunc et nisi diam. Donec at turpis bibendum, lobortis quam rhoncus, blandit ex. Sed in leo metus. + +Maecenas auctor, nisi eu gravida fringilla, magna nisl lobortis enim, malesuada ultricies elit tortor eu lacus. Suspendisse venenatis enim vel nisl condimentum, nec scelerisque nisi malesuada. Mauris pellentesque fermentum nulla, quis fermentum quam molestie vitae. Vestibulum tincidunt nec dui pretium suscipit. Phasellus eu dui eu enim sollicitudin aliquam vel mollis ante. Etiam nec aliquam dolor, at lobortis turpis. Curabitur finibus eget felis sit amet euismod. Nulla sollicitudin, leo dapibus egestas fermentum, nulla odio condimentum est, nec lacinia augue nibh ac tellus. In sagittis mauris sapien, id rhoncus libero pulvinar id. Donec sagittis consequat mauris in scelerisque. Quisque tristique leo scelerisque bibendum sodales. Cras tempor enim ac elit maximus, id scelerisque dui imperdiet. Aenean condimentum a nisi nec egestas. Vestibulum mollis augue a nisl tincidunt pulvinar. Quisque lacinia, est nec accumsan luctus, felis nibh iaculis nisi, id gravida dolor diam a ante. Ut molestie vestibulum eros a laoreet. + +Praesent sed odio sed nisi volutpat consequat ac in massa. Maecenas blandit porta dolor cursus sodales. Sed aliquam nec leo efficitur iaculis. Pellentesque ac tortor in nulla sollicitudin placerat quis quis odio. Duis a egestas lacus. Curabitur ullamcorper, est sit amet porta blandit, quam augue blandit ligula, non faucibus sem erat id neque. Etiam maximus, odio et egestas tristique, purus velit accumsan erat, at semper justo sapien faucibus metus. Praesent sed vestibulum mauris. Duis eu elementum neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur finibus orci in elit vehicula pulvinar. In hac habitasse platea dictumst. Aliquam quis leo eget tellus ultricies ultricies. Nulla facilisi. Morbi pulvinar quam augue, vitae vulputate augue posuere id. + +Sed pulvinar nunc eu purus eleifend semper. Nullam ligula tellus, interdum in risus eget, lacinia imperdiet massa. Mauris quis eros lorem. Maecenas elementum ipsum enim, vel porta lectus pellentesque quis. Fusce molestie eros sagittis sapien interdum venenatis. Sed mi nisi, iaculis vitae gravida a, euismod molestie mauris. Aliquam arcu ipsum, lobortis in ex ut, commodo venenatis eros. + +Aenean hendrerit vestibulum quam quis bibendum. Ut placerat enim et euismod feugiat. Etiam porttitor luctus nisi eget faucibus. Etiam vel lacus sit amet ante eleifend auctor vitae non est. Praesent eget nisi in enim dignissim semper. Vestibulum id vulputate dolor. Aenean id dolor dui. Duis eu imperdiet nulla, a dignissim tellus. Nam pellentesque vel massa quis tristique. Aenean eget consectetur quam. Praesent at sagittis felis, sed sodales nisl. + +Nulla aliquam luctus ipsum, sed condimentum mi consectetur nec. Maecenas non magna eget massa sagittis accumsan. Suspendisse mattis lorem non mi pretium, suscipit pellentesque dui pharetra. Ut et nisl viverra, elementum sem nec, egestas tortor. Proin viverra sapien nec augue tristique ullamcorper. Phasellus pretium diam in lectus ultricies, ac mollis quam imperdiet. Maecenas porta lorem vel mauris dictum, quis vestibulum mauris vulputate. Vestibulum ligula odio, cursus ac fermentum ac, congue vitae felis. + +Curabitur feugiat augue egestas turpis vulputate lacinia. Ut vitae urna ac mauris ultrices tincidunt a vehicula dolor. Vestibulum mattis dui dictum ipsum hendrerit, quis hendrerit arcu eleifend. Vivamus sed sollicitudin purus. Pellentesque commodo porta nibh nec porta. Suspendisse id efficitur odio. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu eleifend orci. Aliquam erat volutpat. Sed sed orci eget ligula porta iaculis non sit amet justo. Fusce ac sodales lectus, et lacinia ligula. Quisque turpis mauris, condimentum at risus id, lacinia viverra ex. Pellentesque imperdiet risus eu nunc egestas faucibus vel non turpis. + +Sed in hendrerit est. Integer consequat risus non eros varius, non tincidunt erat gravida. Proin libero metus, blandit sed cursus quis, sodales nec erat. Cras tortor nisl, mollis lacinia purus et, tincidunt accumsan sem. Sed sodales lacinia condimentum. Quisque sed sollicitudin diam. Phasellus ut odio nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed tempus egestas lorem, sed euismod mi pharetra id. Phasellus tincidunt fringilla ultrices. Praesent viverra massa nibh, eget faucibus massa ullamcorper sit amet. Pellentesque et venenatis libero, quis mollis felis. Vestibulum vitae elit vitae sapien vehicula finibus. Pellentesque volutpat sem ut quam faucibus, vitae vehicula dui suscipit. Aenean porttitor quam a augue egestas, pulvinar pellentesque leo rutrum. + +Sed pellentesque quam est, sit amet efficitur est mattis faucibus. Duis ac molestie lacus. Nunc turpis lectus, ultricies quis tortor nec, lobortis viverra dui. Vivamus lacinia dictum arcu, nec accumsan enim elementum eu. Aenean faucibus, dui et condimentum cursus, libero dolor semper enim, ac semper quam dolor sed eros. Proin cursus risus tellus, ut posuere est lobortis a. Morbi dignissim urna quis hendrerit blandit. + +Sed suscipit augue urna, et pretium libero sollicitudin at. Phasellus eu tincidunt lacus. Nam odio orci, ullamcorper nec magna ut, accumsan ullamcorper libero. Donec efficitur velit augue, non elementum ipsum tincidunt a. Nulla ultrices turpis quis vulputate venenatis. In hac habitasse platea dictumst. Curabitur eleifend non massa at malesuada. Cras interdum, diam et vehicula pretium, odio lectus convallis massa, at dignissim risus ex quis sapien. Sed velit turpis, mollis ut lacus ut, venenatis congue diam. + +Mauris ut auctor nunc. In sollicitudin felis quis consequat imperdiet. Quisque aliquet luctus placerat. Cras eget nisi eget sem porta suscipit tincidunt sed neque. Aliquam sed volutpat enim, sollicitudin efficitur risus. Duis ultricies condimentum justo, sit amet egestas ligula. Aenean molestie eros vel tortor dignissim, sed commodo dui consectetur. + +Nunc viverra ex vel augue efficitur, maximus hendrerit est tincidunt. Nam massa sapien, varius nec convallis a, semper et nisi. Duis vitae feugiat mauris, ut mattis diam. Proin ac lacus accumsan, lacinia ex et, tempus justo. Aenean cursus sed dolor eget pulvinar. Integer nec ante est. Vestibulum est dolor, fringilla ac luctus nec, volutpat vitae elit. Nunc egestas ullamcorper quam, nec aliquam enim auctor quis. Quisque commodo eros et sem ultrices ultrices. Vivamus porta erat mauris. Morbi et mi neque. Praesent varius venenatis nunc id efficitur. Etiam eget arcu lorem. Mauris porttitor nec enim et commodo. Fusce efficitur odio ac tortor congue tempus. + +Aliquam tellus augue, dapibus sed molestie et, mattis sed risus. Sed vel feugiat ligula. Vestibulum vitae eleifend dolor. In hac habitasse platea dictumst. Sed et pulvinar orci. Morbi nec tortor odio. Sed feugiat varius tellus. In feugiat purus a quam viverra malesuada. Sed ac lectus tortor. + +Integer vehicula bibendum eros, et pulvinar ante aliquet ut. Pellentesque quis cursus nisi, sed mollis felis. Quisque consequat ac erat at porta. Sed vitae nisl nisl. Nam viverra consequat ligula, et placerat magna posuere ac. Vivamus pulvinar nisl imperdiet dictum laoreet. Curabitur a sem leo. + +Suspendisse placerat ultricies nisi vitae rutrum. Nulla varius neque sed iaculis molestie. Nam ullamcorper, risus sit amet sagittis efficitur, mauris diam elementum lectus, vitae fringilla arcu nibh molestie nulla. Vestibulum tempus sit amet tortor in egestas. In quis velit ligula. Proin ac lectus a massa varius ultricies quis quis orci. Vivamus hendrerit vel quam in bibendum. Vestibulum congue viverra nisl at mattis. + +Praesent nec sollicitudin nunc. Mauris sed condimentum urna. Nulla iaculis sollicitudin bibendum. Sed non sagittis ante, pellentesque elementum purus. Suspendisse pretium dolor ac quam fermentum semper. Aliquam tempus sit amet leo eget mollis. Mauris ut accumsan tortor. Etiam interdum eleifend auctor. Cras ultricies luctus est, sit amet tincidunt purus molestie eu. Mauris sem ipsum, imperdiet ac blandit in, placerat vel velit. Sed pretium dictum justo, a venenatis massa pellentesque ac. Donec a mauris non eros eleifend viverra. Vivamus eros eros, efficitur semper risus sed, tincidunt pretium nisl. + +Vivamus pretium, justo et lobortis finibus, mi urna blandit justo, vitae sodales orci leo in justo. Maecenas dignissim purus a eleifend sagittis. Nam massa enim, pretium vitae ante quis, ultrices bibendum lacus. Suspendisse fermentum rhoncus nisi et porta. Sed auctor erat sit amet fermentum congue. Fusce a vestibulum metus, quis ultricies dui. Curabitur quis orci suscipit, tempor tellus vel, rutrum ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent pretium arcu vitae lacinia faucibus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vestibulum a magna nec enim elementum egestas. Nulla congue maximus odio, vel euismod metus tempor id. Donec placerat, magna nec pharetra posuere, ex orci malesuada est, et venenatis nulla mi malesuada erat. Nam congue condimentum rhoncus. Morbi massa enim, pellentesque eget tortor et, hendrerit ultricies diam. + +Cras in ante sed sem gravida tincidunt in id justo. Donec pellentesque mollis justo quis egestas. Mauris et orci malesuada, consectetur augue ac, suscipit libero. Pellentesque a purus diam. Aenean ullamcorper lectus id nisi auctor pharetra. Maecenas eleifend eros pretium, varius turpis nec, vulputate libero. Phasellus id rhoncus augue. In interdum felis lectus, nec dictum orci mollis a. Integer ut pellentesque tellus. Pellentesque auctor maximus ligula, ut dapibus sem cursus quis. Nunc sit amet felis arcu. Praesent varius ultrices metus ut consectetur. Nulla id libero congue, imperdiet mi viverra, dapibus nisl. Pellentesque eget neque in neque dignissim pulvinar id quis tortor. Proin ac ullamcorper quam, vestibulum laoreet turpis. + +Cras suscipit vulputate sapien in viverra. Praesent placerat mattis felis. Duis auctor dui diam, sed egestas neque tristique a. Aenean consequat egestas massa, a fringilla elit consectetur eget. Duis erat lacus, semper id accumsan nec, rhoncus et nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque consequat eros lectus, viverra imperdiet magna congue vel. Donec varius felis vitae arcu consectetur, non varius dolor placerat. Morbi et tortor id augue luctus malesuada nec quis nulla. Nullam aliquam pretium ante. Quisque quis lobortis tellus. Etiam at euismod ipsum. Aenean convallis in urna in euismod. Vestibulum euismod, risus quis ullamcorper molestie, sapien lacus condimentum dolor, at ullamcorper tortor sem et justo. + +Aenean vestibulum suscipit facilisis. Praesent et vestibulum risus. Cras in arcu erat. Aliquam nec turpis bibendum, hendrerit eros non, molestie ligula. Donec scelerisque sagittis urna, a vehicula ipsum maximus sit amet. Vestibulum vitae iaculis turpis. Sed ornare ante a mi imperdiet, non consequat ante mollis. Aenean placerat nulla augue, a luctus risus pulvinar ac. Curabitur dignissim varius quam quis sodales. Nunc faucibus lorem a elit scelerisque volutpat. Donec tempor placerat augue, ac aliquet felis blandit a. Maecenas aliquet pretium mattis. Maecenas pretium lectus et nisi venenatis scelerisque. + +Pellentesque eu pellentesque leo. Nam vehicula at sem eget tempor. Mauris vulputate dignissim malesuada. Sed venenatis felis vitae mauris tempor, id sodales sem lacinia. Aenean nibh libero, efficitur at vulputate eu, fermentum in dui. Sed feugiat felis nec diam dictum, quis porta nibh consequat. In condimentum aliquam leo. Mauris fermentum tortor placerat dignissim interdum. Etiam ultricies aliquam aliquet. Duis at libero maximus, ultricies ex a, fermentum diam. Nulla facilisis ex vel pharetra congue. Duis volutpat gravida dui a porttitor. + +Maecenas nec convallis nulla. Aenean tempor elementum erat et sodales. Curabitur ornare sodales consectetur. In congue lorem nisi, vitae tristique leo laoreet in. Nullam euismod felis eget nulla convallis, id pretium odio hendrerit. Nulla mollis fringilla euismod. Nullam eleifend facilisis risus sed tincidunt. Sed venenatis erat ex, ut congue odio laoreet pretium. Proin et porttitor erat, at tempor lorem. Quisque ultrices libero risus, sit amet condimentum turpis rhoncus ut. Sed vel nibh diam. + +Nunc viverra augue a feugiat viverra. Suspendisse gravida cursus neque ac tincidunt. Quisque vitae placerat lacus. Nunc pellentesque felis ac iaculis pellentesque. Quisque finibus turpis quis ipsum maximus ultrices. Nullam ut ultricies massa, non bibendum enim. Pellentesque nec rhoncus tellus. Etiam condimentum sagittis nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse laoreet, mauris ut lacinia mollis, turpis metus volutpat mi, volutpat vestibulum eros nisl sit amet nibh. Donec in congue orci. Praesent elementum rutrum elit nec pharetra. Integer commodo suscipit augue, in bibendum est porttitor et. Nullam ullamcorper ut nisl eu elementum. Curabitur aliquam orci in dolor eleifend rhoncus. + +Morbi sit amet rhoncus nulla, quis interdum nulla. Etiam luctus, est eget rutrum pulvinar, erat est varius eros, vitae venenatis ante quam non elit. Integer non lectus in turpis vehicula aliquet et eu ipsum. Etiam vulputate massa ac urna tempus, mattis lacinia felis vulputate. Quisque commodo, orci sit amet ullamcorper auctor, dolor nibh tristique nulla, eget mollis mauris mi ac ipsum. Donec faucibus nisi id ex viverra lobortis. Sed porta et ante id feugiat. Phasellus mollis, erat quis sollicitudin vestibulum, quam risus dapibus arcu, in scelerisque diam libero tincidunt orci. Integer aliquam, ante ac placerat euismod, libero lacus aliquet lorem, ut viverra risus felis hendrerit est. Cras sollicitudin sem eget nulla iaculis iaculis tristique nec sem. Maecenas accumsan tellus in finibus porttitor. + +Aliquam at mi felis. Pellentesque sollicitudin lorem eget mi lacinia, vitae varius risus vulputate. Sed lobortis augue orci, eget mollis augue volutpat ac. Nulla dignissim ut felis sit amet posuere. Vivamus facilisis tristique diam eu aliquet. Morbi fermentum magna vel consequat egestas. Integer nulla tortor, tristique quis rutrum quis, sodales a dolor. Aenean in finibus nunc. Nulla ornare semper auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean faucibus lacus non pulvinar luctus. Sed semper aliquet lectus venenatis convallis. Mauris luctus libero a metus efficitur fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean a sem arcu. Integer aliquet vestibulum nibh id luctus. + +Quisque pretium est quis risus condimentum rhoncus eget ultricies dolor. Morbi sed mi luctus elit fringilla ultrices ut vitae purus. Maecenas at quam id sapien pulvinar scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse sed ultrices sapien, sit amet tincidunt odio. Suspendisse sed hendrerit massa. Phasellus fermentum ipsum diam, non gravida libero venenatis sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc posuere libero quis efficitur condimentum. Proin vulputate libero massa, et vulputate nisl volutpat malesuada. Morbi eu molestie ipsum. Praesent vulputate magna eget velit suscipit lacinia. + +Sed ultricies, massa at dignissim bibendum, elit diam vestibulum risus, quis tincidunt ipsum diam vel mauris. Nam sed tortor id augue consectetur pulvinar ac non eros. Praesent ac velit id magna elementum tristique volutpat quis mauris. Praesent consectetur elementum dolor at mollis. Vestibulum interdum diam non odio commodo, non sollicitudin dui consectetur. Praesent pharetra finibus arcu, eu tristique magna posuere non. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi faucibus nisl non augue bibendum, id venenatis elit vestibulum. Etiam sed sollicitudin ligula. Suspendisse at ex condimentum, pulvinar neque id, consequat odio. Integer euismod porttitor orci ac commodo. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc augue mi, efficitur non placerat eu, iaculis nec neque. Suspendisse in felis viverra, dictum erat gravida, lobortis tortor. Cras eget elementum enim. Suspendisse potenti. Pellentesque dignissim lorem vel leo sagittis, ut molestie elit tempor. Ut vitae porta nulla. Suspendisse consequat, lorem sit amet ullamcorper vehicula, nulla nisi fermentum nulla, eget interdum leo erat quis lectus. Sed finibus urna urna, vel ultricies urna aliquet non. Sed convallis rutrum mi, vitae mollis diam fringilla pulvinar. + +Praesent eu ultrices nulla. Nunc semper tincidunt magna nec fermentum. Sed posuere lobortis mauris, at bibendum lorem eleifend nec. Donec ut fringilla tellus. Curabitur efficitur, turpis id ultrices semper, risus diam aliquet turpis, vel porta justo tortor non felis. Sed ut mi mollis, sagittis libero sed, mattis est. Quisque et turpis vel diam convallis congue et quis enim. Nam aliquet lorem eu augue convallis sagittis. Sed laoreet quis erat eu semper. Nunc suscipit dui nec elit mollis sodales ac in orci. Sed eu erat sit amet elit tristique ullamcorper quis ut justo. Nullam egestas id nunc ac aliquet. + +Aliquam quis hendrerit est, nec maximus lectus. Curabitur iaculis eget risus at pellentesque. Integer sit amet massa malesuada eros imperdiet placerat. Mauris elit lacus, dictum eget mauris sit amet, condimentum commodo erat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque volutpat velit at elit aliquam porttitor sit amet dictum quam. Fusce vel egestas felis, at blandit dui. Nunc eget massa sit amet dolor venenatis rhoncus. Donec malesuada rutrum eros, eget placerat augue ultrices at. Quisque pretium quam nec pellentesque suscipit. Aliquam placerat justo tortor, ut ornare nisi scelerisque a. Suspendisse vel ultricies elit. Donec luctus laoreet porttitor. Vivamus sit amet eleifend nisl. Donec tincidunt tincidunt lacus, vel ullamcorper urna ultrices a. + +Vivamus bibendum tellus augue, a cursus elit facilisis vitae. Aenean dapibus lorem ac elit placerat, sed blandit lacus molestie. Donec bibendum, tellus ac commodo aliquam, diam nulla molestie mi, at suscipit sapien nisl non elit. Mauris sit amet pulvinar lacus. Ut pulvinar pellentesque semper. Quisque vel luctus tellus, sed tempor diam. Proin porta dui mauris, non accumsan magna iaculis non. Etiam maximus imperdiet molestie. Phasellus luctus sagittis sapien nec malesuada. Etiam nec metus arcu. Vivamus a purus non nisi posuere venenatis. Duis non metus rhoncus velit accumsan fringilla at ut augue. Maecenas nec neque justo. Vestibulum ut fringilla ante, sit amet tempus purus. + +Suspendisse scelerisque tincidunt erat, non molestie erat auctor at. Vivamus ac maximus mi, quis faucibus sem. Suspendisse tincidunt massa eget bibendum convallis. Praesent id viverra quam. Proin tempus ante tincidunt suscipit auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer ac orci sit amet lorem commodo porttitor eget eu ex. Aliquam ultricies sapien et lobortis bibendum. Mauris nec nisi odio. Quisque cursus sagittis turpis nec euismod. Proin rutrum dui non egestas rhoncus. Curabitur congue luctus urna et euismod. Phasellus ac nisl libero. Vestibulum laoreet maximus dolor sed lacinia. Nam vulputate tempor magna non feugiat. + +Nullam vitae orci rhoncus, eleifend odio a, tempus dolor. Quisque nec libero facilisis, aliquam nunc eget, efficitur massa. Vestibulum id est pretium, pharetra urna sit amet, dapibus nunc. Nulla bibendum nisl justo. Praesent vitae iaculis nibh. Aenean lobortis hendrerit lacinia. Vivamus nisl neque, suscipit et pulvinar in, vulputate a quam. Curabitur ullamcorper hendrerit malesuada. Etiam laoreet dolor eu justo vehicula scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc et augue non ante tincidunt condimentum at vel nisl. Proin tempus ante vel ex blandit, ac scelerisque enim lobortis. Suspendisse potenti. Nulla felis erat, blandit in libero ut, blandit mattis leo. + +Phasellus ut lectus neque. Praesent egestas leo in sapien sodales, et aliquam libero iaculis. Quisque ut efficitur tellus, sit amet faucibus nunc. Aenean ac purus convallis, commodo massa at, molestie ex. Donec sollicitudin est quis enim porta, at placerat diam rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean hendrerit, lectus id hendrerit sollicitudin, ante ante euismod arcu, a blandit felis urna eu odio. Ut finibus nibh purus. Sed vestibulum tristique mattis. Fusce sed leo id quam consectetur cursus a ac nisl. Integer fermentum accumsan auctor. Suspendisse in ligula quis augue euismod lobortis. + +Duis gravida lorem at nibh aliquet feugiat et id erat. Mauris vestibulum tortor ac arcu tempor, nec lacinia arcu efficitur. Nunc faucibus fermentum felis. Donec sed lacus sed quam pharetra venenatis nec et tortor. Donec fermentum dolor a nibh accumsan placerat. Phasellus risus sapien, varius vitae viverra non, tincidunt at arcu. Fusce mollis elit quis aliquet egestas. + +Etiam a dolor sit amet elit commodo rhoncus. Morbi sit amet erat semper, cursus magna vel, facilisis sapien. Mauris nec mi non urna aliquam mattis. Fusce placerat varius sodales. Aenean ullamcorper magna a eros eleifend, ut malesuada dui pharetra. Vivamus porttitor consectetur lectus. Aenean nunc quam, semper at libero eget, posuere varius turpis. Phasellus dolor ante, varius in volutpat vel, blandit scelerisque urna. Cras id neque id arcu vehicula venenatis iaculis vel justo. + +Etiam felis diam, lobortis non turpis eu, volutpat hendrerit diam. Pellentesque eu metus accumsan, tempus enim eu, vehicula arcu. Cras vehicula tortor in augue elementum vestibulum. Donec vitae mi dignissim, sagittis ligula quis, rhoncus nibh. Sed scelerisque elementum accumsan. Morbi et quam non erat efficitur elementum quis in lacus. Etiam ut dapibus ex. Nullam suscipit placerat pretium. Aliquam mattis dolor lacus, consectetur accumsan nibh luctus quis. Nullam semper odio sit amet risus imperdiet blandit. + +Fusce non dapibus orci. Fusce feugiat dictum velit, ac venenatis ipsum. Nunc quis arcu massa. Phasellus lobortis vitae neque ut consequat. Donec bibendum ipsum quis lacus ultrices, in commodo lacus laoreet. Nam facilisis nulla quis porttitor interdum. Aliquam eget hendrerit sem, volutpat eleifend enim. Ut commodo justo massa. Nunc varius est efficitur pharetra pellentesque. Nullam convallis tincidunt diam, vel tempus libero gravida non. Donec consequat elit non est ornare, ac vestibulum est tempus. Sed sed rutrum nisi, non posuere nisi. Morbi malesuada semper orci, id venenatis ipsum accumsan imperdiet. + +Fusce sollicitudin nunc in orci malesuada pellentesque. Maecenas interdum finibus sapien. Suspendisse pulvinar semper rhoncus. Praesent ex justo, blandit quis nisi ut, scelerisque porta massa. Praesent vitae massa sed ligula faucibus viverra. In hac habitasse platea dictumst. Phasellus scelerisque lectus tristique, vehicula mauris vitae, egestas turpis. Fusce faucibus hendrerit magna sit amet gravida. Fusce condimentum hendrerit lacus, id ultrices libero aliquam id. Sed ultricies ultrices nisl vel dictum. Duis felis eros, consectetur nec lacus in, vestibulum condimentum metus. Vestibulum nec malesuada massa. Donec maximus mi augue, et eleifend ante auctor id. In cursus tincidunt nibh. + +Curabitur bibendum volutpat felis, ac facilisis elit interdum sagittis. Duis luctus risus massa, ac tincidunt nulla ultrices quis. Phasellus quis nisl efficitur, posuere nulla non, ornare orci. Ut sit amet aliquet dui. Morbi ut ligula ut ex blandit tincidunt eu eu est. Mauris non volutpat urna. Nunc quis congue ex. Cras aliquam pellentesque fermentum. + +Sed eu turpis a eros semper ornare. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut tincidunt justo nec nibh placerat, vitae lacinia nunc tincidunt. Ut malesuada, purus eu tristique bibendum, purus quam convallis magna, in porta eros dui quis massa. Maecenas molestie sem vel urna dignissim ullamcorper. Praesent lobortis porta vestibulum. Ut pharetra iaculis urna, et porta ante maximus non. Pellentesque suscipit luctus libero nec viverra. Sed egestas mi vitae tortor condimentum, sit amet fermentum sem pretium. Etiam neque ipsum, tempor ut vulputate sed, accumsan ut mi. Pellentesque fermentum ultrices augue, quis venenatis massa egestas eu. Mauris blandit posuere fermentum. + +Pellentesque quis tempor ante, at convallis metus. Vestibulum hendrerit, libero eget malesuada sagittis, dolor mi consectetur urna, non malesuada tortor lacus in mauris. Maecenas placerat sem quis eros commodo, nec efficitur nulla varius. Suspendisse interdum, nulla sit amet egestas aliquam, ante tortor porta metus, in condimentum risus purus eget magna. Nulla ultrices eget turpis eu luctus. In imperdiet, mi ornare venenatis sodales, ligula risus porttitor ante, sed fermentum lacus mauris a tortor. Morbi lacinia ornare nunc eget finibus. Fusce a facilisis eros. Quisque vulputate purus sit amet tellus mattis, nec consectetur nibh viverra. + +Maecenas sodales lacinia elit commodo eleifend. Phasellus vitae urna in tellus porttitor rhoncus a ac dui. Integer vel elit eget neque mattis bibendum. Duis ullamcorper risus ut mi iaculis, et scelerisque erat facilisis. Vivamus vestibulum diam vitae urna scelerisque vestibulum. Ut tincidunt velit convallis nisl tempor, a feugiat dui efficitur. Morbi enim mauris, rhoncus et sagittis condimentum, luctus eget augue. Praesent aliquet posuere pharetra. Nullam laoreet pretium sem quis suscipit. Pellentesque vitae hendrerit urna. Praesent eu nibh at elit malesuada suscipit nec quis urna. Phasellus vel massa a urna vulputate suscipit in id diam. + +Pellentesque hendrerit mi a convallis scelerisque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus volutpat eros tellus, eget semper purus aliquet et. Donec sodales mauris ut mi interdum placerat. Donec rutrum elementum porttitor. Praesent ultrices posuere aliquam. Vivamus quis dui auctor, posuere neque quis, placerat sapien. Morbi aliquet leo vitae lacus euismod euismod. Quisque placerat massa et magna sodales euismod. Curabitur lobortis dolor non quam porta scelerisque eget in eros. Praesent gravida eros in est feugiat, ac condimentum libero iaculis. Cras eleifend urna mauris, ac luctus velit consectetur pharetra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis ipsum quam, faucibus ut urna et, porttitor pellentesque velit. Maecenas sit amet lectus hendrerit, gravida turpis vitae, aliquet velit. + +Donec ut accumsan enim, ac finibus erat. Phasellus eleifend tempor orci sit amet fringilla. Donec blandit, est sit amet malesuada fermentum, ex augue rutrum magna, in ultricies mi nulla ac leo. Fusce blandit neque in ipsum blandit, sit amet porttitor velit sodales. Vestibulum suscipit nunc sit amet bibendum vulputate. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet finibus finibus. Quisque tincidunt ac lectus non rhoncus. Sed mi est, porttitor tincidunt porttitor in, rutrum a risus. Curabitur pellentesque quis sem condimentum cursus. Vivamus sed est sollicitudin, mattis orci at, bibendum mauris. Fusce blandit vulputate interdum. Mauris tortor turpis, convallis a diam posuere, blandit imperdiet quam. Maecenas quis dolor sagittis, semper turpis et, malesuada nibh. Suspendisse eget urna non augue porttitor fringilla. Nullam sagittis, nibh at pharetra placerat, leo massa rutrum elit, et placerat erat ex ac ante. + +Donec nec scelerisque augue, sed venenatis orci. Donec eget dictum est. Suspendisse potenti. In hac habitasse platea dictumst. Quisque tempus congue sapien vitae elementum. Maecenas in diam eget nulla pellentesque luctus. Maecenas felis elit, vulputate in ligula ac, luctus aliquam massa. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce fermentum magna a vehicula venenatis. Etiam vitae augue lobortis, volutpat dui a, pharetra dolor. Pellentesque elementum at neque et sollicitudin. Donec ligula massa, lacinia sit amet hendrerit ac, ornare ac nulla. Vivamus vitae iaculis dui. Sed fringilla orci sed massa efficitur accumsan. + +Sed sed dui nibh. Nam ut sapien a nisi bibendum tempor et sollicitudin mauris. Cras dignissim urna non mi pellentesque, at mollis justo gravida. Nulla rhoncus orci ut lacinia sollicitudin. Donec posuere scelerisque egestas. Nam sodales erat consectetur, faucibus ex sed, rutrum eros. Sed condimentum mattis volutpat. Fusce ac dignissim mi. Aliquam non laoreet lectus. Morbi sit amet metus sed velit faucibus maximus a nec odio. Mauris mollis diam nec finibus scelerisque. Proin ac erat elementum, pellentesque lacus vel, porta arcu. Proin tempus ornare mi, vitae sodales elit lobortis aliquam. + +Nulla augue felis, scelerisque non lacinia sed, faucibus vel justo. Aenean a tristique libero, sit amet suscipit ex. Integer venenatis magna sed velit sollicitudin, dictum lobortis felis eleifend. Maecenas malesuada eros eu erat pharetra elementum. Aliquam efficitur odio eget pharetra sagittis. Aliquam arcu lectus, sollicitudin finibus erat hendrerit, posuere laoreet arcu. Donec congue dolor quis massa condimentum, nec semper risus fringilla. Suspendisse potenti. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi sed consequat lacus. Quisque auctor facilisis mauris sit amet porttitor. + +In dui mauris, laoreet a ex id, facilisis lobortis ante. Fusce lectus magna, hendrerit cursus mollis vitae, pellentesque eget elit. Aenean vehicula vel lectus tempus vestibulum. Nunc ut diam a erat facilisis congue at non nibh. Curabitur semper lectus commodo, rutrum arcu eget, aliquam est. Vestibulum non metus maximus, aliquet quam nec, blandit odio. Phasellus dapibus bibendum diam quis rhoncus. Ut at mi elit. Cras condimentum pharetra leo, ut sagittis libero luctus eu. In ultrices enim lacus. In elit urna, porta sit amet tempus eu, mattis at tortor. Vestibulum molestie tincidunt orci, vel finibus eros sodales ut. Vestibulum et sapien suscipit, venenatis ligula et, mollis ex. Sed iaculis malesuada venenatis. + +Aliquam erat volutpat. Donec porttitor vehicula nisi, at dapibus neque. In hac habitasse platea dictumst. Vivamus dignissim sodales tristique. Sed vestibulum mattis blandit. Sed in rhoncus nibh. Fusce feugiat massa risus, non lacinia arcu vestibulum vel. Vivamus nec lorem mollis, auctor risus quis, varius leo. Praesent ac aliquam sem, et vehicula tortor. Nam consequat enim et felis interdum efficitur. Maecenas eget velit eros. Nullam sodales erat vel maximus lobortis. + +Curabitur fringilla quam lectus, ac sodales sapien aliquet at. Nunc porta urna odio, et facilisis ligula eleifend nec. Etiam semper quam erat, quis vulputate odio porttitor quis. Donec et vulputate justo. Mauris ultrices quis tortor sed tincidunt. Cras fringilla gravida nunc, sit amet convallis metus auctor a. Maecenas ut velit quis nibh facilisis pretium sed nec dolor. Curabitur porttitor vel diam eu viverra. + +Ut ornare metus ac viverra ultricies. Vivamus sit amet quam in dui molestie efficitur ac a dui. Aenean eget ante a nisi facilisis semper volutpat eget ipsum. Integer et lorem eu ligula lobortis eleifend molestie non nisi. Maecenas quis tortor sed quam semper porttitor. Quisque laoreet ipsum ut imperdiet ultricies. Nunc consectetur neque sed ex scelerisque molestie. Sed varius, urna sed convallis molestie, libero felis finibus tortor, eget semper magna lorem vel erat. Duis gravida erat tortor. Nullam commodo leo vel nulla lobortis, vel semper nisl euismod. Ut libero mi, convallis sit amet tristique ut, pellentesque nec odio. Etiam convallis tortor volutpat leo facilisis fringilla. Aliquam ultrices arcu eu lobortis tristique. Vestibulum ac nulla massa. Vestibulum varius commodo felis id consequat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + +Duis vitae erat fringilla, rhoncus turpis at, sodales odio. Mauris convallis non velit a varius. Vestibulum porttitor accumsan libero id vulputate. Duis eu lectus aliquet, vulputate enim a, feugiat metus. Proin luctus leo quis nisi iaculis, sit amet pretium turpis sodales. Sed luctus quam ut massa imperdiet scelerisque. Phasellus consequat faucibus dolor, in pellentesque felis. Morbi tortor eros, eleifend at maximus quis, condimentum eu nisl. Suspendisse ullamcorper ut orci sed volutpat. Curabitur eu elementum magna. + +Ut hendrerit, nunc lobortis venenatis pharetra, lorem augue venenatis turpis, in semper risus nulla sed ante. Mauris in dolor ut orci venenatis fringilla. Morbi gravida viverra rhoncus. Nunc a justo dui. Curabitur bibendum mattis risus. Mauris a viverra sem. Nunc id venenatis justo, vel lobortis leo. Proin tempus lobortis orci sit amet eleifend. Maecenas vel volutpat ante. Nulla tristique felis at dui viverra cursus. Aliquam vel erat tristique neque tincidunt scelerisque sed in dui. Vivamus quis mauris id enim molestie eleifend quis a arcu. + +Nulla hendrerit feugiat nisl vel ornare. Curabitur sit amet consectetur diam. Sed feugiat vulputate luctus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum pulvinar libero nunc, nec cursus risus gravida et. In dapibus quam sit amet nisl luctus gravida. Aliquam sit amet posuere orci, imperdiet maximus nibh. Aenean nec tortor ut nunc suscipit vulputate. Proin iaculis vitae mi sit amet eleifend. Pellentesque nec viverra magna, nec pretium leo. Nunc mollis sollicitudin velit. Morbi tortor dolor, aliquam sit amet lacus id, pharetra rhoncus felis. + +Etiam commodo ex augue, eu gravida mi iaculis ut. Sed et suscipit justo. Donec ultricies risus nunc, sit amet volutpat ex tempor ac. Pellentesque eleifend porta varius. Nam pulvinar sem in ultrices sollicitudin. Sed sed sem id metus scelerisque ultricies. Sed a odio vel lectus fermentum ultricies non eu nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis ac urna vitae sapien convallis dignissim. + +Aliquam sollicitudin pretium odio, quis viverra nisi mollis eget. Ut rhoncus ante vel porta tincidunt. Nunc mattis, quam quis aliquet mattis, ipsum arcu tempor leo, in interdum sem urna non tellus. Nunc mauris metus, bibendum a varius quis, mattis quis ex. Vestibulum rhoncus augue a nulla fringilla gravida. Quisque diam risus, dignissim id sagittis vel, hendrerit vitae turpis. Praesent est diam, dignissim id volutpat quis, cursus non sem. Mauris eget malesuada nunc. Proin et quam porta, porttitor massa in, faucibus dui. Phasellus in dictum mi, quis dignissim enim. Cras semper ipsum ac condimentum iaculis. + +Aliquam ac tortor eu purus suscipit pulvinar tincidunt ac tellus. Mauris gravida mi eu pretium sollicitudin. Sed convallis ligula nec metus suscipit, id efficitur ligula facilisis. Etiam erat urna, suscipit et posuere ullamcorper, elementum id enim. Nullam tempus sapien sed ex venenatis, et vehicula sapien aliquam. Donec leo dolor, fermentum in metus ultrices, interdum laoreet lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam pretium eu nulla vel pretium. In nec risus elit. Etiam nisl lorem, convallis nec luctus sit amet, lacinia eu tellus. Fusce et vulputate velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Praesent elementum dolor id mattis consequat. + +Praesent libero tellus, interdum quis sollicitudin non, volutpat vitae nulla. Cras nibh quam, sodales in lorem porta, aliquet lacinia nisl. Aenean placerat leo libero, a tempor leo vulputate non. Phasellus iaculis quam quis urna consequat fringilla. Curabitur hendrerit dictum eros, ac elementum orci. Sed dignissim mi nisl. Nunc in risus maximus nibh tincidunt vehicula. Mauris eleifend, purus non interdum volutpat, turpis ligula laoreet ligula, eu fringilla nunc tellus nec sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec eu sollicitudin orci. Donec augue arcu, rhoncus eget imperdiet ut, volutpat et quam. Mauris suscipit est ut diam blandit condimentum. Aliquam bibendum a massa ac cursus. Quisque felis dui, egestas vel tellus at, lobortis dapibus turpis. + +Nam tempus consectetur nunc, et convallis urna ullamcorper a. Vestibulum placerat purus in euismod euismod. Suspendisse eget congue quam, quis placerat tortor. Aliquam erat volutpat. Vestibulum ut nisi vitae lacus ultrices varius eu sodales nulla. Phasellus congue, lacus sit amet sagittis accumsan, enim risus laoreet urna, vitae blandit eros quam sit amet erat. Proin id gravida tortor. Nam in elit nec leo imperdiet elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent interdum leo nunc, quis iaculis ante fermentum vitae. + +Phasellus vehicula egestas turpis, tristique ullamcorper sapien dapibus quis. Maecenas commodo magna in cursus gravida. Praesent vitae dui risus. Nullam eget faucibus odio. Quisque id cursus justo, a pretium magna. Suspendisse lobortis libero eget dapibus laoreet. Ut laoreet, nunc sit amet tincidunt cursus, tortor felis dignissim dolor, a sagittis nisi lacus ac odio. Ut laoreet ut metus eget venenatis. Suspendisse aliquet dignissim risus, a bibendum mi imperdiet sit amet. Proin fermentum libero id finibus euismod. Mauris vulputate massa et velit imperdiet, ut luctus sem feugiat. Nunc vel tellus elementum, lacinia orci quis, lobortis libero. Aenean a iaculis lectus. Donec ut diam eget magna fringilla ultricies in sed justo. Etiam aliquet diam metus, ac ornare massa dapibus nec. Quisque vestibulum nisi et lobortis hendrerit. + +Proin pulvinar vestibulum risus, non iaculis enim suscipit vitae. Duis a odio eget magna egestas scelerisque molestie eget massa. Etiam blandit eget enim et fermentum. In hac habitasse platea dictumst. Donec a nunc nulla. Etiam in elit ante. Proin nunc turpis, semper eget est volutpat, congue volutpat nisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris quis nulla maximus, placerat odio ac, facilisis lectus. Proin et semper purus, eget placerat urna. Nulla ullamcorper enim felis, nec dictum ex blandit sit amet. Vestibulum a ullamcorper diam, id rhoncus dui. Aenean diam lorem, auctor vitae libero vel, commodo imperdiet lectus. Nunc pellentesque purus neque, non pulvinar dui convallis aliquet. Duis euismod dui ut elit fringilla, id consequat neque convallis. + +Cras efficitur cursus sollicitudin. Morbi aliquam nisi magna, in lacinia nunc lobortis ultrices. Nullam suscipit metus at venenatis tincidunt. Sed id sem felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum tempor elit ut enim condimentum ultrices. In hac habitasse platea dictumst. + +Suspendisse tincidunt, sapien quis tempor egestas, augue orci accumsan nisi, in ullamcorper nisi urna nec eros. Etiam placerat, lorem id consequat maximus, ipsum ligula placerat sem, vitae fermentum dolor nibh eget sapien. Donec ornare magna quam, eu aliquet nulla laoreet at. Sed eros sem, aliquam vel quam facilisis, tincidunt mollis nibh. Sed eu sapien non orci fermentum accumsan. Pellentesque fringilla dui ante, nec ultricies augue dignissim et. Quisque luctus venenatis facilisis. Aenean sollicitudin sem id vehicula posuere. Nulla sit amet libero iaculis, semper mi nec, interdum diam. Quisque dui lacus, dictum ut semper non, tristique id risus. Etiam non lacus est. Vivamus maximus laoreet pulvinar. Aenean vel enim nulla. Vestibulum pharetra non magna in hendrerit. Phasellus congue neque at nibh maximus vulputate. + +Donec congue fermentum neque ut suscipit. Duis viverra, turpis pharetra dapibus maximus, ex purus ornare dolor, eu congue est odio ut massa. Donec rhoncus eu urna in molestie. Cras cursus placerat mauris sed scelerisque. Suspendisse sit amet dolor et libero efficitur ullamcorper sit amet eu mi. Cras odio augue, bibendum eget vestibulum ac, rhoncus at augue. Praesent euismod vel augue eget suscipit. Maecenas consequat libero nec erat ultrices tincidunt eu in nisi. + +Ut blandit urna ut lacus varius fermentum. Aliquam ac nunc id neque mollis consectetur. Etiam sapien dolor, dignissim nec dui at, ultricies semper enim. Nunc vitae nunc diam. Aliquam porttitor volutpat dictum. Cras consequat finibus turpis, ac tristique nisl convallis eget. Phasellus interdum nibh ut diam bibendum dictum. Donec nec mi arcu. Sed ac urna a enim ullamcorper molestie. Phasellus porta leo nunc, nec mattis lectus iaculis sed. Duis sit amet metus dui. Aliquam erat volutpat. Donec felis urna, blandit at pulvinar vitae, malesuada at velit. Phasellus vulputate aliquet turpis sit amet sollicitudin. Pellentesque tempus augue purus, et efficitur lectus iaculis eget. Cras ultricies tellus ac nibh hendrerit sodales. + +Maecenas vehicula libero eget eros tincidunt fringilla. Suspendisse sit amet facilisis velit. Aliquam nulla ante, ullamcorper eu eleifend ut, consectetur a ex. Fusce sed elementum mi, sit amet congue urna. Pellentesque tristique malesuada tempor. Aenean egestas faucibus rhoncus. Proin vel eleifend enim. Mauris tristique, orci non scelerisque condimentum, enim neque facilisis lectus, vitae convallis dui dui sed nibh. Fusce finibus tincidunt quam, a fermentum justo. Aenean sed euismod tellus. Suspendisse bibendum elit enim, ac congue sem mattis eu. Nulla vitae blandit nisl. Nullam risus justo, efficitur in dignissim in, lobortis et ante. Cras est magna, ornare vel tempus ac, scelerisque eu dui. + +Nam semper diam in nunc cursus, eget venenatis sem ultrices. Pellentesque placerat dignissim sem, eu ultrices ligula congue nec. Cras posuere id sapien vitae vulputate. Phasellus elementum felis vel ligula lobortis, vitae vulputate nulla elementum. Nullam a sem magna. In lobortis, tellus eget blandit tincidunt, diam lectus tincidunt magna, at semper turpis magna feugiat nunc. In ac sapien in turpis facilisis ultrices id sit amet orci. Vestibulum id maximus mi, id viverra nisi. Etiam ac aliquam ex, id commodo turpis. + +Nunc sagittis pulvinar ipsum, ac semper libero scelerisque vel. Phasellus condimentum euismod justo sed facilisis. Ut eget molestie neque. Maecenas risus sem, mollis finibus urna feugiat, elementum facilisis enim. Nunc ultricies, turpis a scelerisque feugiat, turpis arcu vehicula lorem, quis maximus quam eros et ex. Nunc maximus mi sed velit cursus lacinia. Donec sit amet arcu a sapien hendrerit pharetra. Donec in mollis mauris. Vivamus scelerisque velit eget turpis rutrum, vel condimentum urna mattis. Praesent tempor imperdiet diam, sit amet imperdiet mauris posuere at. Aenean vitae imperdiet urna. Morbi lacinia arcu erat, vel faucibus mauris volutpat in. Mauris consequat mollis tellus ut varius. Quisque pharetra ipsum et nulla sollicitudin, ac scelerisque nisl faucibus. Nunc id iaculis augue. + +Donec sem nunc, hendrerit tincidunt nunc vel, congue consectetur elit. Aenean laoreet lorem ut est tincidunt semper. Cras accumsan iaculis metus a blandit. Maecenas nec laoreet dui. Nunc odio est, vestibulum sed faucibus id, mattis sed ex. Ut tristique placerat molestie. Integer id lacus a magna finibus luctus et dignissim enim. Quisque ac est sit amet purus porta auctor. + +Sed sollicitudin tincidunt odio, eu feugiat tellus facilisis eu. Quisque nec posuere quam, sit amet malesuada purus. Praesent ut dui et turpis varius laoreet eget et nibh. Donec a justo felis. Nulla vitae tellus mauris. Cras vehicula non urna sit amet varius. Vivamus scelerisque iaculis nunc, vestibulum bibendum nulla pulvinar vel. Sed libero metus, luctus nec porta eget, facilisis vitae nisl. Fusce non sagittis sem. Integer et erat vel mi vulputate posuere et vitae arcu. Maecenas fermentum felis vitae ultrices placerat. Fusce in molestie augue, quis varius nibh. Etiam lacinia efficitur tincidunt. In non ante orci. + +Fusce accumsan cursus lobortis. Cras id accumsan magna, quis vulputate enim. Integer feugiat mattis dolor ut sollicitudin. Aliquam scelerisque arcu metus, eget posuere felis sagittis vel. Praesent convallis facilisis sem quis dignissim. Phasellus pharetra diam nec faucibus tempor. Praesent porttitor cursus metus et accumsan. Praesent rhoncus accumsan malesuada. Donec purus nunc, condimentum nec volutpat a, hendrerit vitae risus. Maecenas placerat lobortis urna sed egestas. Pellentesque blandit nunc ante, id viverra magna mattis nec. + +Proin dui sapien, aliquet in dui vitae, condimentum egestas ante. Suspendisse potenti. Etiam ullamcorper rhoncus velit vel gravida. Proin in ante cursus, luctus libero a, vehicula odio. Nullam a efficitur turpis. Duis porttitor lectus ac mauris pulvinar cursus. Etiam non magna nec massa consectetur scelerisque. Nam posuere at nunc sit amet blandit. Cras dui elit, porta non vehicula quis, suscipit ac mauris. Sed fermentum nunc ut augue hendrerit, et mollis elit vestibulum. Nulla pharetra, turpis non euismod auctor, nisl leo commodo dolor, porta sodales ex leo eu nibh. Duis at erat et libero euismod tincidunt eu sit amet lorem. Praesent sem purus, pretium sed est vitae, venenatis elementum nisl. Vestibulum rutrum mattis nisl vitae blandit. Sed efficitur quam id neque finibus pharetra. Praesent in consequat diam. + +In sit amet dignissim ligula. Sed ac enim at metus fringilla tincidunt sit amet vel enim. Sed eleifend augue vitae elit bibendum, non pharetra sapien eleifend. Cras aliquam pharetra ligula id elementum. Vestibulum id velit lectus. Etiam efficitur molestie mollis. Mauris tempus lorem eu pellentesque faucibus. Vestibulum vitae ipsum sed nibh pretium placerat. Sed dapibus facilisis leo, eget vestibulum turpis lacinia pellentesque. Duis venenatis id nibh vel laoreet. Integer quis justo a mauris lobortis consequat sit amet nec diam. Curabitur laoreet feugiat sem, euismod congue eros ultricies sed. Maecenas sit amet rhoncus nunc. Donec orci nisl, finibus in finibus id, interdum tempus nunc. Vestibulum rutrum tortor non libero lobortis laoreet. Aliquam nunc ipsum, eleifend ornare luctus dignissim, volutpat eu elit. + +Nam eget ipsum lobortis, pellentesque eros sit amet, congue felis. Maecenas facilisis blandit ex in malesuada. Pellentesque facilisis sem nec elementum consectetur. Vestibulum velit ligula, mattis sit amet rhoncus vel, congue id quam. Quisque nec lacinia metus. Vivamus consequat convallis nibh sed egestas. In nec mi volutpat, sollicitudin magna in, laoreet nisl. Praesent non accumsan ipsum, in interdum mi. Praesent pellentesque neque non nunc fermentum commodo. + +Proin volutpat tincidunt neque eget luctus. Duis nibh purus, maximus et justo nec, varius aliquet purus. Aliquam luctus diam nec velit rhoncus porttitor in quis diam. Nullam ut pretium neque, vitae feugiat mauris. Sed euismod dictum odio. Nulla gravida neque sed arcu finibus iaculis. Phasellus facilisis enim quis risus accumsan, vitae dapibus justo maximus. Donec eget dictum tortor, vel porttitor nibh. Phasellus fringilla nibh vel mi euismod, vel rhoncus odio rhoncus. In vel porttitor est. Morbi bibendum ligula vitae orci lobortis posuere. + +Maecenas at imperdiet felis. Aenean at massa porta, molestie nibh id, malesuada lacus. Donec accumsan tellus orci, vel posuere ligula porttitor id. In malesuada leo luctus dui consectetur mollis. Nullam non sapien hendrerit, dictum justo id, pulvinar nulla. Fusce porta varius ligula, in sollicitudin leo elementum quis. Aenean sit amet venenatis risus, in fringilla ipsum. Pellentesque mattis gravida pellentesque. Pellentesque id erat at felis posuere hendrerit. Sed id iaculis risus. + +Vestibulum molestie tempus faucibus. Morbi ullamcorper tempor augue, ac ultrices lorem sollicitudin eu. Nam dignissim, quam at pulvinar tincidunt, turpis velit suscipit turpis, sed varius elit diam quis enim. Curabitur imperdiet, massa a lobortis sagittis, lorem augue aliquet nunc, cursus bibendum ante diam ac sapien. Aliquam eget luctus arcu, quis vehicula tellus. Fusce semper eget ligula porta sagittis. Quisque maximus scelerisque porta. Vestibulum consequat quam eget condimentum mollis. Aliquam eget magna elit. Mauris volutpat sem vel tortor mattis consectetur. Etiam consectetur ante nec lacus bibendum, vel vehicula leo mollis. Aenean lacinia tellus id elementum rhoncus. Aliquam ut euismod leo. Sed eros augue, tempus eget urna quis, laoreet tristique tellus. Cras volutpat, orci vitae commodo tempor, mi mauris iaculis turpis, in tempor sapien ipsum non mi. + +Nunc at molestie magna, ut pulvinar risus. Integer vestibulum sapien at felis sollicitudin volutpat. Etiam ac faucibus neque, nec ornare dolor. Nunc et magna ut nunc rhoncus suscipit vel at quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent quis scelerisque augue, tempor finibus sem. Nullam tincidunt eros lorem, vitae maximus enim ornare eget. Ut sed sapien magna. + +Fusce auctor elementum lacinia. Etiam vel lorem elementum, commodo tellus id, auctor augue. Duis eu diam vitae lorem consectetur semper. Curabitur fermentum nibh vitae mi maximus tincidunt at non sem. Integer ac quam condimentum, fringilla ante sed, consectetur sapien. Nunc non convallis magna. Donec luctus porta efficitur. Quisque arcu nibh, convallis mattis sollicitudin nec, bibendum a lectus. + +Nullam lectus tellus, pretium nec mi nec, euismod tempus sem. Donec ut cursus massa. Vestibulum pellentesque magna dictum, bibendum nulla at, ultrices elit. Mauris bibendum condimentum laoreet. Nullam nulla metus, iaculis et eleifend a, auctor quis lectus. In hac habitasse platea dictumst. Quisque ac lectus dictum, scelerisque arcu quis, accumsan massa. Nulla ultricies sem vel metus pretium feugiat. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam ornare dolor a neque interdum posuere. Etiam sem mauris, malesuada sit amet sem eu, suscipit maximus elit. Quisque rhoncus ullamcorper felis, vel vestibulum turpis egestas eget. Suspendisse mauris lacus, elementum id suscipit vel, pulvinar id arcu. Mauris odio elit, condimentum a facilisis et, semper ultrices magna. Cras tincidunt tempus pretium. Pellentesque pharetra suscipit convallis. Nam eu massa vel orci placerat tempus. Sed feugiat maximus consequat. Curabitur arcu augue, sodales a purus ut, facilisis feugiat tortor. Integer pretium at sem dictum eleifend. + +Fusce ac turpis risus. Proin ipsum libero, pretium at nibh sit amet, vulputate cursus sapien. In gravida est metus, in rutrum velit lacinia at. Proin at hendrerit turpis. Ut sodales tincidunt dolor, luctus consequat ipsum gravida non. Cras in gravida neque. Nunc vitae sem eu justo ultrices interdum bibendum sit amet neque. + +Morbi id eros vitae diam commodo blandit. Pellentesque efficitur ex vitae nibh fringilla ultrices. Maecenas tristique risus sit amet nibh maximus, ut faucibus odio pharetra. Maecenas luctus ultricies odio a sollicitudin. Fusce sed lorem non ante faucibus faucibus. Nam tristique id tellus quis maximus. Vestibulum diam nunc, aliquam at placerat vitae, facilisis ac libero. Curabitur non ultrices lectus, a dignissim urna. + +Aenean nec sem congue, condimentum lacus ac, gravida sapien. Integer euismod sagittis quam, id sagittis lorem commodo ut. Ut vehicula turpis quis tortor sagittis, et venenatis neque ultricies. Aliquam eu sem dui. Quisque vehicula, nulla nec sollicitudin pulvinar, sapien dui condimentum enim, vel dignissim nunc risus sit amet ante. Quisque in neque feugiat, mollis lacus dignissim, lobortis nibh. Duis efficitur posuere molestie. + +Vestibulum dignissim neque nibh, quis faucibus mi tristique non. Integer auctor arcu eu dolor iaculis, ut congue augue consectetur. Nulla hendrerit nibh mauris, eu varius sem ornare et. Pellentesque sagittis aliquet orci, ac hendrerit magna feugiat et. Ut egestas enim eget orci tempus posuere. Pellentesque imperdiet justo ac nulla facilisis semper. Integer malesuada vestibulum sapien et viverra. Donec ut facilisis nibh. Sed at tempor arcu, aliquet bibendum augue. Duis sit amet egestas quam. + +Nulla aliquam nunc tortor, lobortis semper erat varius aliquam. Integer tempus faucibus dolor vitae tristique. Praesent dignissim ac urna non mattis. Sed porttitor maximus auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed luctus sodales tristique. In ac euismod nisi, egestas suscipit tortor. Curabitur finibus placerat dui, vitae malesuada est luctus id. + +Praesent sit amet justo sit amet leo feugiat auctor. Vestibulum ullamcorper arcu at nisl dictum tincidunt. Maecenas non arcu blandit velit ultricies tempor ut vel tortor. Suspendisse vehicula augue quis orci pulvinar, vitae sagittis diam venenatis. Pellentesque convallis justo non libero posuere, non posuere massa convallis. Sed porttitor non enim aliquam venenatis. Quisque ipsum ligula, aliquam vel consequat sit amet, fermentum at augue. Maecenas nec lectus id purus dignissim eleifend. Maecenas accumsan risus urna, vitae volutpat nulla viverra a. Vivamus ac hendrerit eros, egestas pretium odio. Pellentesque nec enim vel dui mattis sagittis vitae a turpis. Quisque varius porttitor urna vel porttitor. + +Donec in nunc tristique, lobortis ex aliquam, viverra arcu. Pellentesque placerat leo interdum, lacinia nisl ut, dapibus ipsum. Praesent feugiat metus vel augue condimentum consectetur. Nullam accumsan luctus eros, eget sollicitudin libero molestie at. Quisque sapien erat, porta nec est eget, bibendum condimentum erat. Sed fringilla a metus nec suscipit. Morbi ac ex porta, tristique ex et, tristique erat. Mauris condimentum, augue et mattis commodo, nisl justo fermentum massa, eu rutrum risus lorem non elit. Suspendisse fringilla ornare interdum. + +Pellentesque vitae velit non mauris vehicula tincidunt eu ac nulla. Donec nec vestibulum neque. Etiam id arcu nec est placerat blandit ac vel lorem. Pellentesque consectetur nunc eget nunc pharetra, eu commodo urna malesuada. Nunc lacinia efficitur luctus. Curabitur scelerisque tortor sit amet lectus faucibus fringilla. Proin molestie lorem ac facilisis consectetur. Cras auctor dui ut erat vestibulum, ut pretium sem gravida. Ut et ullamcorper orci, nec sagittis sem. Cras fermentum convallis ante, id vestibulum erat mollis non. Aenean at fringilla arcu. Duis congue metus at purus mattis euismod. Nam luctus volutpat justo. Nunc vehicula pellentesque orci eget laoreet. Cras dictum nulla in ligula placerat interdum. Donec condimentum massa aliquet iaculis facilisis. + +Sed gravida libero a neque efficitur, rutrum varius est tristique. Maecenas feugiat elit neque, sit amet feugiat velit tempus id. Donec ut volutpat turpis. Sed maximus mauris lacus, eu finibus turpis scelerisque sit amet. Fusce molestie volutpat lorem vitae viverra. In hac habitasse platea dictumst. Phasellus lobortis purus quis metus faucibus iaculis. Morbi non mi metus. Sed ut finibus erat. Nulla a porta sapien, a hendrerit elit. Donec a cursus tellus. Proin efficitur ante tellus, vitae viverra elit sodales ut. Integer ac molestie tortor. Pellentesque vulputate aliquet imperdiet. + +Ut efficitur justo aliquam molestie blandit. Ut posuere lectus auctor, euismod lorem id, laoreet justo. Aliquam convallis, risus sit amet rutrum hendrerit, urna velit lacinia lacus, in varius metus nunc vel orci. Cras suscipit, neque et sollicitudin gravida, lorem elit gravida eros, a dapibus ligula odio vitae nisi. Etiam ac tortor orci. Fusce sagittis non quam eu posuere. In pretium ullamcorper justo id aliquam. In condimentum, dolor quis gravida iaculis, enim ante pharetra tortor, bibendum ullamcorper magna dolor at erat. Morbi et nunc egestas, blandit ante vel, bibendum nunc. Morbi tincidunt lorem urna. Nunc tristique quam leo, sit amet congue arcu sodales nec. + +Ut porttitor venenatis varius. Donec vitae justo dui. Vestibulum eget metus interdum, congue nunc interdum, bibendum diam. Sed at nibh libero. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hac habitasse platea dictumst. Nulla dolor lacus, convallis non vulputate a, consequat a orci. Aliquam sodales massa orci, id congue eros dapibus vel. Suspendisse massa lacus, convallis nec cursus quis, congue a elit. Praesent convallis, neque a imperdiet bibendum, velit neque molestie orci, sed faucibus diam libero ac nisi. Etiam tempus finibus orci lacinia faucibus. Ut semper venenatis justo, in tempus libero luctus et. Duis dictum mattis metus. Aliquam malesuada elementum pharetra. + +Sed non sapien mollis, bibendum neque pellentesque, tincidunt ipsum. Etiam libero lectus, tincidunt sed sodales vel, hendrerit nec mi. Nulla fermentum, mi sit amet dapibus laoreet, arcu neque mollis purus, quis dictum lorem mauris ut arcu. Vestibulum varius fermentum euismod. Nunc ut lobortis purus. Nunc eu nibh euismod mi venenatis rhoncus sit amet et quam. Maecenas iaculis nisi felis, sit amet cursus justo gravida ut. Suspendisse fringilla turpis non lobortis fermentum. Integer vehicula augue in blandit cursus. Aliquam erat volutpat. Donec finibus pharetra mauris. In pulvinar imperdiet tincidunt. + +Sed maximus tincidunt lacinia. Praesent a mauris sed nibh accumsan congue. Etiam vel nisi sit amet eros vehicula posuere. Sed hendrerit semper massa, sit amet lacinia purus finibus nec. Morbi a dui ullamcorper, euismod dolor scelerisque, vehicula lectus. Integer auctor vestibulum ligula, a pharetra turpis posuere at. Nunc consectetur sem nisi, vitae lobortis risus ornare sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec pharetra diam a nisl bibendum sagittis. + +Quisque commodo rutrum tempor. Fusce at augue metus. Pellentesque dapibus placerat est eget lobortis. Sed porttitor vel libero eget hendrerit. Sed posuere libero nulla, in commodo urna egestas quis. Nam nec odio tristique sem rhoncus porttitor. Nullam eget nisl elit. Donec justo magna, ullamcorper eu quam ut, bibendum laoreet sapien. Integer euismod euismod metus, quis interdum ipsum vulputate et. Praesent volutpat risus leo, vel faucibus sem auctor quis. Mauris venenatis urna ac odio sagittis congue. Nulla iaculis sagittis mauris vel maximus. Praesent luctus velit ligula, vel luctus velit vehicula nec. Curabitur et condimentum nisl, in accumsan sapien. + +Curabitur et eros tempor, tempus mauris quis, feugiat mauris. Morbi quis ligula malesuada, sollicitudin est at, pellentesque nunc. Sed nisi quam, dapibus a porttitor quis, venenatis quis diam. Aenean sed bibendum urna. Curabitur eget dolor ante. Aliquam sit amet consequat odio, non convallis magna. Cras gravida lorem et felis efficitur, sit amet viverra ligula suscipit. + +Vestibulum consectetur lobortis arcu. Aliquam efficitur nunc quis est laoreet, et efficitur erat porta. Vivamus molestie nunc eu arcu porttitor venenatis. Duis non consectetur nulla. Nunc felis leo, accumsan ac neque a, commodo cursus massa. Quisque pretium vestibulum justo in aliquam. Aliquam erat volutpat. Duis molestie lorem eget mauris tempus, efficitur elementum velit tincidunt. Donec ultrices placerat felis. Integer sed ultrices nunc. Sed fermentum lorem vitae felis commodo, vitae posuere felis commodo. Fusce eu suscipit metus, ac imperdiet tortor. Nunc a ligula sodales, tincidunt justo ut, ultrices ante. Nam non enim sodales, maximus felis in, ullamcorper nulla. + +Pellentesque maximus vulputate convallis. Maecenas blandit viverra urna in efficitur. Mauris pellentesque sollicitudin turpis, eu ornare lectus finibus sit amet. Praesent in hendrerit mi, tincidunt tincidunt ante. Ut orci mi, tempor in rhoncus sed, ornare maximus ligula. Nulla volutpat lectus elementum ligula sodales vehicula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla risus velit, sodales eu varius non, laoreet sed nunc. In placerat aliquam erat, et commodo nisi hendrerit ut. Aenean auctor blandit urna, eget semper justo condimentum id. Suspendisse potenti. + +Donec tincidunt orci sit amet turpis vestibulum, nec gravida diam consectetur. Ut pretium ante molestie, euismod libero et, luctus ex. Mauris ornare accumsan tincidunt. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque pulvinar tincidunt purus quis dignissim. Aenean neque quam, luctus ultricies magna sed, dapibus imperdiet velit. Fusce faucibus blandit eros, ut convallis massa molestie ut. Nullam ultricies tellus pharetra neque posuere, vitae luctus massa sollicitudin. Pellentesque a turpis a nibh dignissim feugiat. Ut et tellus condimentum, congue lectus vel, eleifend eros. Pellentesque a justo at ipsum vehicula hendrerit. Nunc eget sem libero. Proin sodales nibh eget lectus cursus accumsan. + +Pellentesque rutrum pulvinar sapien, pellentesque semper metus cursus non. Phasellus sed sem vel enim mollis pretium. Mauris sodales nisl eget ullamcorper dapibus. Curabitur lacinia quam non nisi maximus tempor. Vivamus pharetra velit eu leo congue, nec commodo nulla pharetra. Phasellus eu nunc ipsum. Fusce viverra tincidunt ligula, non vestibulum elit feugiat in. Duis auctor quam nec pretium elementum. Morbi a augue massa. + +Pellentesque id hendrerit metus. Sed rhoncus dapibus lectus, ut interdum sem efficitur at. Sed vehicula aliquam hendrerit. Fusce eget sapien felis. Etiam ac tempus eros. Etiam nec orci euismod, varius ex sed, ullamcorper neque. Aenean dictum malesuada sem, sit amet ultrices augue sagittis ac. Proin eget nibh ac nunc consequat euismod. Etiam suscipit est in odio dignissim, suscipit iaculis dui varius. Proin hendrerit eget velit sit amet porttitor. Sed vel lacus est. Nullam at justo eget odio venenatis efficitur nec et lectus. Mauris nec lacinia magna, vel rutrum lectus. Donec tincidunt, lacus ac fringilla cursus, odio velit facilisis ligula, nec cursus orci dui at nibh. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at lectus tempor mauris efficitur semper ac eu dui. Ut interdum eget est bibendum faucibus. Donec et leo sed est porttitor blandit. Suspendisse elit odio, consequat sed scelerisque non, lacinia ac dui. Etiam imperdiet interdum nulla. Curabitur risus metus, malesuada quis congue in, sollicitudin at orci. Mauris sit amet tempus justo, ut scelerisque nunc. Donec et efficitur est. Donec a magna et eros scelerisque facilisis. Praesent hendrerit convallis turpis ut viverra. Curabitur ut nibh non quam interdum interdum. Quisque eget sapien vitae orci malesuada fermentum. Vestibulum nec nisi sit amet purus ullamcorper sagittis. Aliquam mattis, ligula non posuere mollis, velit dui lobortis ante, consequat porta mauris nisi in massa. + +Donec euismod quis augue quis consectetur. Pellentesque sit amet varius velit, et auctor nisl. Ut fringilla augue id mauris consectetur auctor. Nulla sit amet turpis hendrerit diam gravida rhoncus. Praesent ipsum velit, scelerisque at maximus sit amet, tincidunt et ligula. Donec cursus scelerisque dictum. Ut elementum sem finibus elementum auctor. Donec vitae sem vestibulum, vehicula enim at, pellentesque dui. Fusce vestibulum, nibh vel viverra pulvinar, nunc velit auctor dolor, vel placerat sapien neque ut massa. Donec nisi nisl, lacinia vel tortor eu, maximus lobortis sem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent sed ultricies odio. Duis eu congue mi, nec rhoncus elit. Vestibulum nunc lorem, eleifend a porttitor sit amet, pretium finibus sapien. + +Nulla nec est porta, sagittis urna eu, finibus nisl. Curabitur dignissim iaculis dolor in molestie. Vestibulum molestie neque sem, sit amet malesuada urna accumsan sit amet. Mauris dictum euismod sagittis. Donec ac purus id eros dictum varius imperdiet nec mi. Nam semper, odio quis mattis eleifend, turpis velit suscipit ex, vel pulvinar sapien libero id ex. Donec vitae tellus et orci pulvinar interdum. Sed eget nisi id eros dictum ultricies ut vel enim. In venenatis mauris arcu. Sed tincidunt nisl purus, id placerat ante pellentesque sed. Pellentesque vel arcu molestie, posuere sapien nec, volutpat quam. Nulla at odio pellentesque, finibus augue ut, blandit ipsum. Fusce venenatis augue eget fermentum venenatis. + +Nulla sollicitudin scelerisque nisl, luctus lacinia enim vehicula sed. Nunc luctus turpis sed euismod condimentum. Pellentesque scelerisque, sapien at eleifend viverra, ante justo porta nisi, non rhoncus ante nibh et justo. Cras mattis ante a est luctus, vel tincidunt risus finibus. In urna dui, accumsan non orci sit amet, aliquet porta quam. Vestibulum et est eu est varius finibus. Suspendisse potenti. Sed sapien felis, tincidunt et erat ut, luctus elementum diam. Donec tincidunt ultrices porttitor. + +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed luctus lobortis nibh eu fringilla. Cras vitae pellentesque enim. Proin sed lorem et sapien congue placerat quis quis lectus. Duis purus nulla, malesuada at lectus non, consectetur convallis ante. Aenean faucibus odio sit amet risus pretium lacinia. Morbi mollis, nisi quis tristique porttitor, nisi tellus ultrices risus, nec pellentesque mauris dolor vel lorem. In tristique nunc eget metus accumsan, sed sagittis velit varius. Vivamus sit amet sapien ultrices, pretium neque vel, hendrerit nisi. Proin ut ligula id quam laoreet consequat vitae sit amet quam. Aliquam non lacus velit. Duis sed suscipit sapien. Pellentesque non justo in nibh consectetur aliquet. Nulla facilisi. Nunc sollicitudin nisi vulputate ultricies vestibulum. Aliquam aliquam posuere nulla. + +Nam consectetur nibh ut purus euismod dictum. Donec dolor ante, ultricies in est ullamcorper, consectetur suscipit erat. Pellentesque nec porta mauris. Cras tempor mattis libero ut vehicula. Morbi suscipit porttitor velit, nec dictum diam commodo et. Morbi porttitor elementum hendrerit. Nullam in lorem egestas, faucibus libero malesuada, viverra diam. Mauris luctus massa eget massa dapibus mattis non ac augue. Nulla sollicitudin, lectus non congue ornare, felis ligula congue mauris, id convallis ligula arcu a mauris. Proin sit amet mi a nibh molestie tincidunt. Praesent gravida nunc sit amet eros posuere pulvinar. Phasellus ut placerat mauris. Praesent id venenatis turpis. + +Nam eu leo mi. Mauris elementum orci ac nunc aliquam, nec luctus nisi convallis. In hac habitasse platea dictumst. Aenean vitae orci massa. Donec lacus nulla, ultrices ut porttitor ut, blandit id ex. Nullam auctor odio vitae enim dictum convallis. Aenean in pretium felis, laoreet mollis lacus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec malesuada egestas tortor non accumsan. Mauris tempor enim rhoncus, pulvinar dolor eget, semper est. Nullam laoreet vitae dui a euismod. Praesent cursus varius arcu, sit amet ultrices urna vehicula at. Donec vestibulum, lorem vel ultrices commodo, ligula erat dapibus mauris, vel tincidunt lacus erat eu enim. + +Integer ut neque sed lacus rhoncus scelerisque vel in neque. Nunc non odio dictum quam fermentum fermentum porta ut erat. Suspendisse egestas sit amet ex eu cursus. Pellentesque pretium massa non congue tempus. Sed ac faucibus quam. Aenean eu dui aliquam, consequat eros quis, cursus eros. Morbi venenatis blandit ante ac imperdiet. Aliquam a massa nec felis ultrices maximus laoreet et nulla. In sed massa vitae dui malesuada commodo sit amet a sem. Donec ac nibh diam. Sed rhoncus laoreet orci, at sodales tellus consectetur quis. + +Nulla egestas urna sed mollis hendrerit. Quisque eget odio sit amet arcu semper aliquet vitae non mi. Nullam nulla libero, interdum efficitur elit scelerisque, bibendum condimentum neque. Sed laoreet pretium massa, nec pretium diam lacinia eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer congue non elit eu dignissim. Vivamus volutpat ante et tortor mollis finibus. Donec sollicitudin ex eget dignissim tempor. Ut et nibh turpis. Vestibulum ut est purus. Donec posuere aliquet magna sit amet faucibus. Praesent feugiat augue nisl, at congue sapien feugiat at. Morbi luctus dignissim viverra. Nulla ultrices odio at tempus vehicula. Cras nec fringilla tellus. Donec faucibus nisi luctus urna imperdiet volutpat. + +Vivamus lacus turpis, iaculis sed molestie vel, dignissim nec metus. Nullam ut ullamcorper nisl, sed bibendum urna. Nam et viverra arcu, nec volutpat diam. Nullam auctor dapibus aliquam. In lobortis, felis vel laoreet viverra, dolor mi auctor libero, ac mattis leo nibh lacinia orci. Mauris efficitur, tortor vel volutpat ultrices, dolor libero iaculis justo, id rutrum est diam quis arcu. Sed quis ipsum placerat, ultricies erat ac, faucibus turpis. + +Proin a consectetur ante. Donec ultricies nunc in tortor mollis blandit. Cras arcu libero, ultrices accumsan sollicitudin ut, porta vel risus. Donec id mauris purus. Nam dictum urna non neque faucibus tincidunt. Fusce faucibus libero et sapien condimentum, ac gravida tortor tempor. Morbi sit amet tellus malesuada, iaculis diam sit amet, facilisis leo. Nunc finibus tellus risus, id faucibus dui condimentum at. In lobortis leo at vulputate laoreet. Donec id blandit libero, bibendum fringilla nisl. Sed pharetra eros quis leo efficitur imperdiet. Nulla aliquam purus libero, at accumsan libero dignissim non. + +Phasellus lorem arcu, gravida sed ante ut, dapibus tincidunt mauris. Nunc imperdiet vehicula ligula. Aliquam erat volutpat. Vestibulum neque justo, rutrum a arcu aliquet, cursus vulputate risus. Quisque hendrerit tortor vel tempor scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec cursus sagittis est vel gravida. Proin lobortis molestie diam non ullamcorper. Donec at viverra lacus. Integer vel nisl a leo blandit tempus. Nullam ac est vestibulum, vehicula tellus et, ullamcorper arcu. Donec pellentesque cursus vulputate. Ut vel nulla et ipsum imperdiet imperdiet. Curabitur eu finibus odio. Suspendisse tellus lacus, mattis et dui eget, ultricies consequat ipsum. Nunc in tortor ligula. + +In augue tellus, euismod sed vehicula in, sagittis sed leo. Nulla consectetur facilisis lacus, bibendum feugiat urna consequat eget. Ut ornare dui bibendum dapibus consectetur. Pellentesque eget congue lacus, a bibendum ligula. Maecenas laoreet lacus nibh, at vestibulum ex laoreet ut. Nunc laoreet urna eu placerat ultrices. Fusce non purus ullamcorper, suscipit odio a, suscipit tortor. + +Nunc elementum urna sit amet ligula viverra, nec vestibulum mauris congue. Pellentesque eget porta diam. Quisque sed varius augue, sed porttitor velit. Praesent nec risus et quam tempor hendrerit. In pulvinar dui et rutrum tempor. Vestibulum eleifend lorem quis ligula pellentesque, sit amet bibendum ipsum fringilla. Sed leo nisl, aliquam eget erat nec, porttitor cursus ante. Aliquam tristique justo ac purus egestas, in blandit erat convallis. Nullam vitae nunc id nulla pharetra convallis volutpat nec ex. + +Pellentesque interdum faucibus est eu pharetra. Cras convallis nulla libero, cursus facilisis nulla imperdiet sed. Ut risus ex, venenatis ut eros iaculis, pellentesque accumsan mi. Nam sollicitudin pulvinar lacus, vel sodales felis fringilla vel. Donec ultricies, elit quis dapibus bibendum, nibh est tristique dui, eget malesuada nulla odio vitae diam. Pellentesque placerat, felis id posuere gravida, lectus velit mollis magna, non interdum odio ex et justo. Donec quam tortor, iaculis ac sem a, dapibus elementum neque. Fusce at nisi sed ante suscipit imperdiet. Duis tempor magna sed suscipit aliquet. Aliquam metus massa, accumsan non nunc sit amet, dapibus consequat tortor. In a iaculis libero, vel ornare orci. Phasellus eget lectus vitae eros vestibulum efficitur. Sed mollis tincidunt ex. Pellentesque tempor quis massa ac efficitur. Curabitur lobortis ante non dolor posuere, vitae posuere ex commodo. + +Integer felis risus, malesuada id arcu sit amet, dignissim elementum sapien. Curabitur porta quis magna quis varius. Curabitur dolor elit, vulputate vitae imperdiet vestibulum, posuere id ante. Ut eget porta elit. Vestibulum posuere feugiat est consectetur ullamcorper. Ut dolor metus, aliquam quis ornare at, vulputate id est. Vestibulum eu sapien ultricies, viverra quam nec, egestas turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean et maximus diam, eget porta justo. Duis ornare magna quam, nec posuere velit blandit sed. Donec elementum euismod scelerisque. Sed cursus ligula in diam gravida placerat. Praesent et mauris quis orci maximus iaculis. Nullam lobortis semper orci, sed fringilla risus tempus at. Nullam at porta nulla. + +Cras in massa eu felis bibendum varius et quis lorem. Nunc interdum velit nulla, sed pulvinar nunc dapibus laoreet. Maecenas nec ex libero. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vitae massa quis sapien tincidunt tincidunt eu in eros. Suspendisse lacus massa, venenatis vitae libero id, sodales eleifend nisi. Fusce quis felis tellus. Sed interdum faucibus ipsum sed fermentum. Nam eget velit neque. Integer iaculis nisl sit amet odio venenatis, eget sollicitudin lorem tempor. Suspendisse accumsan augue tincidunt odio laoreet interdum. Vivamus tristique volutpat elit sit amet suscipit. + +Sed sodales sem dolor, ac porta ipsum consequat tristique. Aenean pharetra ipsum id ipsum scelerisque, a iaculis leo porta. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque elementum risus ac nisi feugiat dapibus. Nunc eget egestas purus. Cras tempor, purus eu maximus imperdiet, lacus ante pharetra ante, nec feugiat nisi massa vitae ante. Cras quam orci, eleifend eget ligula ut, faucibus finibus mauris. Curabitur lacinia ultrices enim, a vulputate elit porta ut. Cras at risus varius urna viverra sodales eu nec ante. Vivamus tortor ante, mollis in mi a, consequat feugiat turpis. Nunc porta felis sed lectus mollis lobortis. Quisque tellus metus, molestie eget lorem ut, efficitur consequat leo. Curabitur bibendum quam id leo sagittis efficitur eu id ipsum. + +Sed semper eros vel justo laoreet euismod. Morbi egestas non eros in euismod. Fusce nec urna nec odio commodo dapibus ut et est. In et turpis pretium, rutrum nunc ac, consectetur justo. Nunc ut nunc consequat, euismod turpis ac, posuere sapien. Quisque dapibus nibh nec urna cursus iaculis. Nunc suscipit ornare ipsum, quis bibendum augue efficitur eget. Vestibulum tincidunt elementum lorem et rutrum. Fusce condimentum metus mi, eu posuere eros lacinia in. Nullam iaculis nibh mauris. Nullam vehicula volutpat posuere. Suspendisse cursus accumsan urna, at posuere felis faucibus et. Donec at velit vitae ex fringilla laoreet nec ac nunc. Phasellus efficitur neque diam, quis rutrum purus rhoncus nec. Aliquam scelerisque mauris eget risus tincidunt vehicula. Nullam faucibus enim eget dolor efficitur mattis. + +Sed dui orci, posuere vitae turpis eu, placerat consequat tellus. In et lacus mattis, placerat ex vitae, posuere urna. Ut pharetra nunc mollis felis blandit, quis congue felis vestibulum. Fusce placerat quis ipsum sed ultricies. Proin pharetra purus in diam tristique maximus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam molestie, risus et tempor luctus, sem nisl vulputate elit, in fringilla diam metus nec ante. + +Sed maximus nibh felis, eget congue sapien porttitor vel. Etiam et dolor rhoncus, sodales est vel, finibus urna. Sed eu tortor finibus, feugiat eros id, consectetur massa. Sed maximus tempus feugiat. Quisque nisl metus, sagittis et dui vel, viverra luctus dui. Etiam orci est, mattis a facilisis eu, rhoncus eget diam. Mauris aliquam scelerisque aliquet. Proin purus est, iaculis vel ullamcorper eu, maximus eget metus. Phasellus quis purus non elit suscipit condimentum ac et risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse sodales mattis mauris, nec hendrerit purus. Duis placerat tortor tellus, et condimentum justo porttitor id. Phasellus malesuada, turpis non scelerisque condimentum, orci libero posuere arcu, in placerat metus tellus at quam. + +Phasellus et erat sem. Aliquam faucibus tristique feugiat. Vivamus eu lacus vel lorem condimentum maximus a vitae ligula. Donec molestie consequat lorem non venenatis. Donec quis nunc orci. Proin sit amet malesuada est, vel aliquam ipsum. Sed posuere risus id posuere aliquet. + +Nam mattis massa a arcu tristique fringilla. Aliquam hendrerit lobortis egestas. Aenean ornare lectus in est blandit luctus. Nam eu ultrices nisl. Nulla efficitur nisi rhoncus lectus blandit, vitae bibendum nisl consequat. Sed ut tempus leo. Nullam vestibulum hendrerit diam, lacinia fringilla est venenatis quis. Nulla eu aliquam tortor, at efficitur neque. Sed facilisis tortor rutrum tortor condimentum, in laoreet mi iaculis. In luctus nec purus pretium tristique. Nulla sodales lectus eget orci egestas congue. Sed id feugiat ligula. Phasellus suscipit id lacus in convallis. + +Pellentesque purus est, sodales sed cursus ut, ullamcorper sit amet neque. Aenean condimentum rhoncus sapien, quis porttitor enim maximus a. Suspendisse ut sagittis nunc. Quisque non justo id turpis pulvinar mollis ut non nunc. Fusce lacus nibh, fringilla ac nulla vitae, posuere gravida ipsum. Nam efficitur, augue in faucibus ornare, urna sem interdum dui, sodales euismod dui sapien et quam. Ut vel urna vitae lacus venenatis gravida non nec urna. Donec a arcu tempor, consequat risus sit amet, tempus urna. In sollicitudin mi commodo velit dapibus blandit. Praesent eleifend enim in nulla porta finibus. + +Nulla facilisi. Praesent ullamcorper nec neque quis pulvinar. Vestibulum molestie interdum nunc, in sollicitudin velit elementum auctor. Suspendisse potenti. Donec ac leo quis arcu ornare pulvinar et accumsan arcu. Nunc bibendum nunc vel blandit posuere. Quisque nec elementum lacus. Pellentesque aliquam auctor dui ac rutrum. Integer ullamcorper lacus ante, in viverra arcu porttitor vel. Aliquam sit amet sem eu sem lacinia blandit. Donec tincidunt congue pharetra. + +In volutpat tempor dolor. Phasellus lorem nibh, luctus non enim sed, iaculis accumsan ipsum. Cras egestas consectetur urna, quis blandit lectus ullamcorper non. Curabitur erat felis, ornare et risus sit amet, blandit sollicitudin purus. Vivamus pretium porttitor varius. Donec et porta nulla. Mauris sed nulla interdum, imperdiet mauris et, dictum odio. Ut ut erat libero. + +Nulla eleifend mauris et efficitur lobortis. Curabitur quis rhoncus mi, non rutrum urna. Quisque hendrerit, risus sed egestas consectetur, neque tortor dapibus eros, sed lacinia felis felis in nisi. Curabitur ut tortor vitae urna aliquam rutrum non id nunc. Duis tempor tellus eget ligula gravida, ac tincidunt magna vulputate. Sed tincidunt quam vitae tortor tempor consequat. Vivamus vulputate diam sed lectus egestas blandit. Cras ex lacus, tempus semper luctus et, porta at quam. Aliquam ac metus libero. Etiam molestie accumsan sapien, quis gravida dolor rhoncus et. Nam in elementum nisi. Nunc dignissim felis sem, sit amet venenatis turpis faucibus a. Nulla lacinia nisl elit, eget pellentesque sem finibus vitae. Aliquam porta commodo nunc, non tincidunt lorem volutpat sit amet. + +Nulla semper enim non pharetra dapibus. Pellentesque hendrerit orci sit amet gravida ullamcorper. Nam elementum ligula vel orci rutrum, in pharetra magna vulputate. Cras quis ipsum nec enim interdum faucibus vel nec magna. Etiam id ante lacinia, venenatis libero at, accumsan est. Aliquam varius at urna et convallis. Phasellus commodo nisi ut mauris molestie, et rhoncus metus dictum. Vivamus venenatis augue ex, sit amet pellentesque odio condimentum at. Quisque id semper lacus. + +Etiam sit amet pharetra augue. Fusce sit amet quam auctor, eleifend risus euismod, malesuada sapien. Donec finibus luctus turpis id porttitor. Maecenas mi diam, rutrum quis mi at, sagittis laoreet nunc. Curabitur consequat vulputate pellentesque. Morbi vel interdum dui. Maecenas lacinia, ante et aliquam bibendum, urna augue vestibulum nisi, vitae feugiat sapien nibh eu eros. Mauris cursus, purus sed cursus commodo, enim tellus semper arcu, quis hendrerit purus lorem quis nibh. Etiam id lobortis felis, sed ultricies libero. Quisque hendrerit ipsum ut aliquet viverra. Quisque eu tempus velit, vel gravida eros. Fusce a massa consequat dolor condimentum dictum quis a neque. + +Morbi malesuada vestibulum feugiat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis dictum suscipit imperdiet. Nulla id diam eu lectus suscipit tincidunt sit amet pulvinar arcu. Aenean pulvinar facilisis nibh nec feugiat. Fusce eu est vitae nunc bibendum cursus. Sed ullamcorper molestie lacus, non feugiat nibh feugiat non. Fusce bibendum felis a arcu bibendum, ac hendrerit eros blandit. Aliquam a quam sit amet sem ornare ullamcorper ut vitae felis. Sed porta, ex non ultrices scelerisque, nisl massa elementum ipsum, nec placerat est justo sit amet augue. Maecenas facilisis nulla aliquet massa tincidunt, eget semper orci pulvinar. + +Phasellus at quam a libero blandit iaculis. Sed sit amet magna in felis mollis sagittis. Nulla vestibulum suscipit commodo. Nullam dictum turpis eu nisi sollicitudin bibendum. Nullam eu ex pretium, eleifend libero tincidunt, placerat augue. Nullam quis porttitor nisl. Suspendisse rhoncus orci et ex maximus euismod. Nunc imperdiet augue maximus, dignissim ipsum et, feugiat sem. Vestibulum in nunc sed libero efficitur dignissim. Morbi vel arcu quis ipsum vehicula faucibus. Quisque scelerisque ligula libero, vitae consequat ex posuere eget. Sed eu nunc cursus, euismod dolor id, mollis tellus. Ut accumsan quis metus in sagittis. Vestibulum consequat lobortis vehicula. Maecenas risus nisi, sodales sit amet diam ut, faucibus mattis libero. + +Nullam quis justo pretium, dapibus purus sit amet, rhoncus magna. Pellentesque eget velit a urna sollicitudin feugiat. Mauris lacus nisl, posuere ut est in, pulvinar tincidunt augue. Nulla in libero sit amet est iaculis commodo. Nulla aliquet vel mi a ultrices. Cras nec varius nisl, non condimentum nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus ut ex a odio cursus dignissim. Mauris a mauris hendrerit, facilisis tellus a, porttitor mi. Vivamus posuere, arcu ac tincidunt pharetra, ante ex eleifend elit, et aliquam ante dui quis ante. Duis ut hendrerit nulla. Sed et consectetur dolor, a elementum felis. Proin elementum ex lacus, interdum convallis tortor laoreet in. Donec tempus condimentum ante, nec blandit orci posuere vitae. Fusce non facilisis erat. + +Ut viverra lorem augue, ut efficitur dolor vehicula volutpat. Aenean eu dapibus elit, sit amet sagittis quam. Ut sed cursus lectus, quis varius mi. Etiam malesuada dignissim eros ut rhoncus. Integer posuere dui nec neque sollicitudin, nec posuere eros luctus. Cras dictum tristique erat et congue. Etiam congue laoreet quam, eget mattis nunc convallis vel. Vestibulum sit amet massa id enim dapibus suscipit. Curabitur eget consectetur neque. Duis non faucibus nibh. + +Nulla nec ipsum lobortis, cursus diam et, placerat erat. Integer id erat ut est ornare iaculis at at odio. Phasellus sed ligula nec purus suscipit maximus volutpat id magna. Integer neque ipsum, lobortis ut risus elementum, commodo iaculis leo. Fusce vel velit diam. Vivamus augue quam, iaculis quis maximus at, cursus id risus. Vestibulum finibus bibendum nunc, eget pulvinar sem placerat eu. Nam convallis non metus sit amet venenatis. Pellentesque rutrum ante iaculis felis dapibus porta. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Fusce ac eleifend metus. Curabitur scelerisque, dui a bibendum vestibulum, augue dolor scelerisque eros, vitae lobortis tellus leo a tellus. + +Maecenas tristique fringilla leo id scelerisque. Phasellus in pharetra neque. Praesent aliquam, est congue gravida condimentum, arcu arcu auctor purus, eu mollis nisi orci sit amet libero. Etiam eget facilisis lorem. Mauris facilisis in sem id dapibus. Ut convallis et mauris a pharetra. Suspendisse pulvinar quam pulvinar lectus mattis, id ultricies nisl faucibus. Quisque mauris quam, pellentesque a urna non, condimentum aliquet dui. Donec arcu nisi, maximus ultricies nibh quis, ultrices consectetur quam. Proin mollis enim non convallis aliquam. Ut quis tempor lectus. Praesent id interdum metus, sit amet iaculis felis. Duis facilisis lorem velit, id viverra nisl fermentum sit amet. + +Pellentesque et dui tincidunt, mattis nibh bibendum, hendrerit justo. Nulla lobortis enim massa, et tempus tortor pharetra eu. Curabitur vitae erat mi. Duis ornare eu magna tincidunt dignissim. Nulla at tortor vel sem auctor luctus. Quisque sollicitudin ullamcorper velit, a tempor metus faucibus et. Donec ante ligula, fermentum vel volutpat id, commodo non metus. Fusce a fermentum libero, a tristique dolor. Donec in bibendum libero. Morbi nec mauris molestie, accumsan turpis nec, scelerisque tellus. + +Pellentesque ligula mi, cursus eget tincidunt quis, iaculis a nulla. Cras sed nisi id lacus gravida facilisis nec ac leo. Sed dictum dolor sit amet nulla porta scelerisque. Vivamus quis semper leo, eget imperdiet est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed tristique tempus placerat. Cras tristique sit amet purus non efficitur. Maecenas a bibendum eros, sit amet pharetra lacus. Maecenas quis dictum purus. + +Curabitur in dolor ut ante iaculis ullamcorper. Vestibulum sed euismod tellus. Sed maximus consectetur velit non congue. Nullam sit amet elit at enim elementum commodo. Praesent venenatis hendrerit ante, eu eleifend neque feugiat pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris eleifend purus sed commodo volutpat. Proin dictum lectus nec justo rutrum scelerisque. Sed ornare, purus quis pharetra lacinia, leo augue rutrum lorem, vitae semper sem justo ac metus. Vivamus pulvinar sit amet dui ut consequat. Duis sit amet libero porttitor dui iaculis malesuada et vitae augue. + +Nunc semper augue in consectetur venenatis. Nulla facilisi. Vivamus sed risus eget lectus aliquet pulvinar ut eget ipsum. Duis justo urna, tempor et vehicula ut, auctor sit amet enim. Vestibulum quis diam quis nibh aliquam blandit sed quis eros. Morbi id dui venenatis, aliquet leo ut, maximus ex. Vestibulum vel quam at arcu suscipit consequat a sit amet velit. Duis et elit tempus, tincidunt arcu eget, accumsan mi. Vivamus maximus sem in turpis maximus iaculis. In gravida vulputate lacinia. Morbi volutpat massa dolor, non finibus leo porta non. Cras porta, dui sed imperdiet pharetra, massa sapien efficitur elit, at imperdiet neque leo ut est. Nunc dictum luctus faucibus. Donec quis bibendum justo, et fringilla orci. Cras interdum, lectus et efficitur viverra, libero elit fringilla metus, at cursus magna nulla vitae nulla. Aliquam lectus dui, malesuada ultricies lobortis posuere, iaculis ac erat. + +Pellentesque elementum risus mauris. Proin lacus purus, congue ac auctor blandit, eleifend id eros. Vestibulum tincidunt sagittis ante, vitae ultricies orci elementum non. Aenean ac vulputate magna. Morbi dignissim quis massa eget condimentum. Aliquam molestie malesuada dolor ac elementum. Quisque facilisis, dolor eu venenatis finibus, augue metus finibus ex, a fringilla mi arcu id sapien. Sed congue vestibulum urna, eget suscipit est tempus at. Nunc pretium aliquam augue, tempor luctus ligula tempus vel. Nam malesuada fermentum diam eget convallis. Donec porttitor eleifend leo dapibus vulputate. Sed gravida luctus ligula, ac vestibulum nisi vulputate eu. Curabitur porta risus massa, aliquet convallis tortor hendrerit eget. Cras iaculis turpis at venenatis lobortis. Pellentesque at nisi ac lacus condimentum tristique et quis magna. Integer eget quam in quam convallis porta sed a magna. + +Aliquam orci ex, feugiat fringilla metus eu, faucibus sodales nisi. Duis euismod scelerisque hendrerit. Ut rutrum suscipit orci vitae efficitur. Curabitur vulputate urna nisl, at consectetur urna pharetra eget. Pellentesque viverra, erat in vulputate fermentum, felis ligula dapibus ligula, quis scelerisque orci sem iaculis neque. Nunc sagittis tincidunt nulla, tempus imperdiet elit scelerisque sed. Proin risus nisi, pharetra in enim vitae, viverra ultrices augue. In eu lacinia massa. Integer tempus elit id laoreet imperdiet. + +Sed dictum lorem eget risus ultrices euismod. Duis imperdiet metus enim, ut vulputate libero ultricies aliquet. Etiam semper, magna ac convallis scelerisque, nisl nulla auctor magna, eget rutrum lorem ligula eu risus. Ut id augue at lorem aliquet ultricies. Cras imperdiet consectetur imperdiet. Nulla facilisi. Quisque vitae ullamcorper ipsum. + +Etiam ac eros porttitor neque tempus tempor in vitae massa. Suspendisse vestibulum, tortor a condimentum egestas, orci turpis cursus magna, vitae suscipit arcu quam non magna. Nam vel turpis a orci maximus ornare eget ac tortor. Curabitur rhoncus est sit amet faucibus sagittis. Nullam quis nisl orci. Maecenas ut pharetra tellus, a condimentum justo. Ut vulputate laoreet ante non suscipit. Cras orci lorem, varius eu quam eget, ullamcorper maximus metus. Duis sit amet justo efficitur, efficitur est et, pharetra nunc. Donec quis ornare erat. Curabitur pretium dapibus libero. Ut lorem diam, ornare in congue nec, tempus ut velit. + +Mauris venenatis vitae velit nec consequat. Cras et ligula feugiat, tincidunt turpis a, imperdiet neque. Suspendisse tempus, dui eget hendrerit tristique, neque enim fermentum augue, ut aliquam odio lacus eu lorem. Morbi fringilla auctor tortor, sit amet hendrerit sapien egestas vitae. Nam dolor lacus, auctor vel sem ut, faucibus tempor magna. Duis sit amet rutrum est, ac tempus nulla. Sed euismod urna et dictum aliquet. Proin hendrerit urna felis, quis lobortis erat accumsan eu. Duis velit neque, hendrerit ornare sem vitae, ultrices condimentum massa. Donec convallis metus turpis, a dictum leo tincidunt nec. Suspendisse eget felis nibh. Integer sollicitudin nunc tempor dolor consequat, nec pretium quam maximus. Maecenas consequat purus sed tortor aliquet, et dictum magna ultricies. Curabitur sollicitudin ipsum leo, eget placerat mauris scelerisque in. Aenean sed lectus pulvinar, lacinia odio et, pretium enim. Nam vestibulum ipsum nec lectus fermentum venenatis. + +In blandit nunc eget arcu condimentum, fermentum posuere orci auctor. Aliquam nec dui sit amet turpis pulvinar feugiat a vitae nibh. Cras vel eros ante. Suspendisse potenti. Nullam ac nisl ante. Vestibulum ullamcorper ultricies justo, feugiat mollis ex lobortis nec. Aliquam consequat arcu nec est semper, in pharetra arcu pretium. Fusce volutpat eros nec maximus scelerisque. + +Nunc bibendum nibh ex, in laoreet tortor varius sed. Maecenas elementum nisl nec turpis laoreet varius. Integer sed egestas augue, nec mollis nulla. Sed non eros ac lectus rutrum aliquam. Vestibulum ac consectetur dolor. Fusce enim nibh, venenatis id est vitae, rutrum gravida nibh. Phasellus id enim nunc. Curabitur tristique mi sit amet vestibulum tempor. Nulla in fringilla velit, quis euismod ex. Nulla facilisi. Sed vulputate nunc nec felis convallis, vel laoreet tortor condimentum. Morbi non mauris in lectus congue molestie non id sem. + +In eu viverra tellus, luctus consectetur nibh. Sed vel quam id arcu pharetra ullamcorper quis sed tellus. Vivamus condimentum, eros eu consequat tristique, massa dui pretium eros, ut finibus est erat id mauris. Nam ut augue quis orci accumsan dignissim eget vel lectus. Morbi vulputate pretium nunc, eu efficitur quam tincidunt vel. Maecenas accumsan euismod bibendum. Nulla facilisi. Duis imperdiet vitae tortor eu sagittis. Sed viverra lobortis nibh. + +Curabitur id tempor nulla. Quisque id scelerisque dui, a tincidunt magna. Mauris interdum purus scelerisque faucibus vehicula. Nam ut rutrum nisl, a pellentesque metus. Quisque eu ultrices eros. Aenean fermentum maximus varius. Vestibulum imperdiet risus mauris, id dictum urna elementum at. In hac habitasse platea dictumst. Curabitur pulvinar, dolor eu auctor vulputate, tellus ipsum faucibus nunc, sed laoreet libero dui quis metus. Vestibulum fringilla elit eu massa porttitor vestibulum. Nullam tincidunt lobortis faucibus. Nunc et nisi diam. Donec at turpis bibendum, lobortis quam rhoncus, blandit ex. Sed in leo metus. + +Maecenas auctor, nisi eu gravida fringilla, magna nisl lobortis enim, malesuada ultricies elit tortor eu lacus. Suspendisse venenatis enim vel nisl condimentum, nec scelerisque nisi malesuada. Mauris pellentesque fermentum nulla, quis fermentum quam molestie vitae. Vestibulum tincidunt nec dui pretium suscipit. Phasellus eu dui eu enim sollicitudin aliquam vel mollis ante. Etiam nec aliquam dolor, at lobortis turpis. Curabitur finibus eget felis sit amet euismod. Nulla sollicitudin, leo dapibus egestas fermentum, nulla odio condimentum est, nec lacinia augue nibh ac tellus. In sagittis mauris sapien, id rhoncus libero pulvinar id. Donec sagittis consequat mauris in scelerisque. Quisque tristique leo scelerisque bibendum sodales. Cras tempor enim ac elit maximus, id scelerisque dui imperdiet. Aenean condimentum a nisi nec egestas. Vestibulum mollis augue a nisl tincidunt pulvinar. Quisque lacinia, est nec accumsan luctus, felis nibh iaculis nisi, id gravida dolor diam a ante. Ut molestie vestibulum eros a laoreet. + +Praesent sed odio sed nisi volutpat consequat ac in massa. Maecenas blandit porta dolor cursus sodales. Sed aliquam nec leo efficitur iaculis. Pellentesque ac tortor in nulla sollicitudin placerat quis quis odio. Duis a egestas lacus. Curabitur ullamcorper, est sit amet porta blandit, quam augue blandit ligula, non faucibus sem erat id neque. Etiam maximus, odio et egestas tristique, purus velit accumsan erat, at semper justo sapien faucibus metus. Praesent sed vestibulum mauris. Duis eu elementum neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur finibus orci in elit vehicula pulvinar. In hac habitasse platea dictumst. Aliquam quis leo eget tellus ultricies ultricies. Nulla facilisi. Morbi pulvinar quam augue, vitae vulputate augue posuere id. + +Sed pulvinar nunc eu purus eleifend semper. Nullam ligula tellus, interdum in risus eget, lacinia imperdiet massa. Mauris quis eros lorem. Maecenas elementum ipsum enim, vel porta lectus pellentesque quis. Fusce molestie eros sagittis sapien interdum venenatis. Sed mi nisi, iaculis vitae gravida a, euismod molestie mauris. Aliquam arcu ipsum, lobortis in ex ut, commodo venenatis eros. + +Aenean hendrerit vestibulum quam quis bibendum. Ut placerat enim et euismod feugiat. Etiam porttitor luctus nisi eget faucibus. Etiam vel lacus sit amet ante eleifend auctor vitae non est. Praesent eget nisi in enim dignissim semper. Vestibulum id vulputate dolor. Aenean id dolor dui. Duis eu imperdiet nulla, a dignissim tellus. Nam pellentesque vel massa quis tristique. Aenean eget consectetur quam. Praesent at sagittis felis, sed sodales nisl. + +Nulla aliquam luctus ipsum, sed condimentum mi consectetur nec. Maecenas non magna eget massa sagittis accumsan. Suspendisse mattis lorem non mi pretium, suscipit pellentesque dui pharetra. Ut et nisl viverra, elementum sem nec, egestas tortor. Proin viverra sapien nec augue tristique ullamcorper. Phasellus pretium diam in lectus ultricies, ac mollis quam imperdiet. Maecenas porta lorem vel mauris dictum, quis vestibulum mauris vulputate. Vestibulum ligula odio, cursus ac fermentum ac, congue vitae felis. + +Curabitur feugiat augue egestas turpis vulputate lacinia. Ut vitae urna ac mauris ultrices tincidunt a vehicula dolor. Vestibulum mattis dui dictum ipsum hendrerit, quis hendrerit arcu eleifend. Vivamus sed sollicitudin purus. Pellentesque commodo porta nibh nec porta. Suspendisse id efficitur odio. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu eleifend orci. Aliquam erat volutpat. Sed sed orci eget ligula porta iaculis non sit amet justo. Fusce ac sodales lectus, et lacinia ligula. Quisque turpis mauris, condimentum at risus id, lacinia viverra ex. Pellentesque imperdiet risus eu nunc egestas faucibus vel non turpis. + +Sed in hendrerit est. Integer consequat risus non eros varius, non tincidunt erat gravida. Proin libero metus, blandit sed cursus quis, sodales nec erat. Cras tortor nisl, mollis lacinia purus et, tincidunt accumsan sem. Sed sodales lacinia condimentum. Quisque sed sollicitudin diam. Phasellus ut odio nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed tempus egestas lorem, sed euismod mi pharetra id. Phasellus tincidunt fringilla ultrices. Praesent viverra massa nibh, eget faucibus massa ullamcorper sit amet. Pellentesque et venenatis libero, quis mollis felis. Vestibulum vitae elit vitae sapien vehicula finibus. Pellentesque volutpat sem ut quam faucibus, vitae vehicula dui suscipit. Aenean porttitor quam a augue egestas, pulvinar pellentesque leo rutrum. + +Sed pellentesque quam est, sit amet efficitur est mattis faucibus. Duis ac molestie lacus. Nunc turpis lectus, ultricies quis tortor nec, lobortis viverra dui. Vivamus lacinia dictum arcu, nec accumsan enim elementum eu. Aenean faucibus, dui et condimentum cursus, libero dolor semper enim, ac semper quam dolor sed eros. Proin cursus risus tellus, ut posuere est lobortis a. Morbi dignissim urna quis hendrerit blandit. + +Sed suscipit augue urna, et pretium libero sollicitudin at. Phasellus eu tincidunt lacus. Nam odio orci, ullamcorper nec magna ut, accumsan ullamcorper libero. Donec efficitur velit augue, non elementum ipsum tincidunt a. Nulla ultrices turpis quis vulputate venenatis. In hac habitasse platea dictumst. Curabitur eleifend non massa at malesuada. Cras interdum, diam et vehicula pretium, odio lectus convallis massa, at dignissim risus ex quis sapien. Sed velit turpis, mollis ut lacus ut, venenatis congue diam. + +Mauris ut auctor nunc. In sollicitudin felis quis consequat imperdiet. Quisque aliquet luctus placerat. Cras eget nisi eget sem porta suscipit tincidunt sed neque. Aliquam sed volutpat enim, sollicitudin efficitur risus. Duis ultricies condimentum justo, sit amet egestas ligula. Aenean molestie eros vel tortor dignissim, sed commodo dui consectetur. + +Nunc viverra ex vel augue efficitur, maximus hendrerit est tincidunt. Nam massa sapien, varius nec convallis a, semper et nisi. Duis vitae feugiat mauris, ut mattis diam. Proin ac lacus accumsan, lacinia ex et, tempus justo. Aenean cursus sed dolor eget pulvinar. Integer nec ante est. Vestibulum est dolor, fringilla ac luctus nec, volutpat vitae elit. Nunc egestas ullamcorper quam, nec aliquam enim auctor quis. Quisque commodo eros et sem ultrices ultrices. Vivamus porta erat mauris. Morbi et mi neque. Praesent varius venenatis nunc id efficitur. Etiam eget arcu lorem. Mauris porttitor nec enim et commodo. Fusce efficitur odio ac tortor congue tempus. + +Aliquam tellus augue, dapibus sed molestie et, mattis sed risus. Sed vel feugiat ligula. Vestibulum vitae eleifend dolor. In hac habitasse platea dictumst. Sed et pulvinar orci. Morbi nec tortor odio. Sed feugiat varius tellus. In feugiat purus a quam viverra malesuada. Sed ac lectus tortor. + +Integer vehicula bibendum eros, et pulvinar ante aliquet ut. Pellentesque quis cursus nisi, sed mollis felis. Quisque consequat ac erat at porta. Sed vitae nisl nisl. Nam viverra consequat ligula, et placerat magna posuere ac. Vivamus pulvinar nisl imperdiet dictum laoreet. Curabitur a sem leo. + +Suspendisse placerat ultricies nisi vitae rutrum. Nulla varius neque sed iaculis molestie. Nam ullamcorper, risus sit amet sagittis efficitur, mauris diam elementum lectus, vitae fringilla arcu nibh molestie nulla. Vestibulum tempus sit amet tortor in egestas. In quis velit ligula. Proin ac lectus a massa varius ultricies quis quis orci. Vivamus hendrerit vel quam in bibendum. Vestibulum congue viverra nisl at mattis. + +Praesent nec sollicitudin nunc. Mauris sed condimentum urna. Nulla iaculis sollicitudin bibendum. Sed non sagittis ante, pellentesque elementum purus. Suspendisse pretium dolor ac quam fermentum semper. Aliquam tempus sit amet leo eget mollis. Mauris ut accumsan tortor. Etiam interdum eleifend auctor. Cras ultricies luctus est, sit amet tincidunt purus molestie eu. Mauris sem ipsum, imperdiet ac blandit in, placerat vel velit. Sed pretium dictum justo, a venenatis massa pellentesque ac. Donec a mauris non eros eleifend viverra. Vivamus eros eros, efficitur semper risus sed, tincidunt pretium nisl. + +Vivamus pretium, justo et lobortis finibus, mi urna blandit justo, vitae sodales orci leo in justo. Maecenas dignissim purus a eleifend sagittis. Nam massa enim, pretium vitae ante quis, ultrices bibendum lacus. Suspendisse fermentum rhoncus nisi et porta. Sed auctor erat sit amet fermentum congue. Fusce a vestibulum metus, quis ultricies dui. Curabitur quis orci suscipit, tempor tellus vel, rutrum ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent pretium arcu vitae lacinia faucibus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vestibulum a magna nec enim elementum egestas. Nulla congue maximus odio, vel euismod metus tempor id. Donec placerat, magna nec pharetra posuere, ex orci malesuada est, et venenatis nulla mi malesuada erat. Nam congue condimentum rhoncus. Morbi massa enim, pellentesque eget tortor et, hendrerit ultricies diam. + +Cras in ante sed sem gravida tincidunt in id justo. Donec pellentesque mollis justo quis egestas. Mauris et orci malesuada, consectetur augue ac, suscipit libero. Pellentesque a purus diam. Aenean ullamcorper lectus id nisi auctor pharetra. Maecenas eleifend eros pretium, varius turpis nec, vulputate libero. Phasellus id rhoncus augue. In interdum felis lectus, nec dictum orci mollis a. Integer ut pellentesque tellus. Pellentesque auctor maximus ligula, ut dapibus sem cursus quis. Nunc sit amet felis arcu. Praesent varius ultrices metus ut consectetur. Nulla id libero congue, imperdiet mi viverra, dapibus nisl. Pellentesque eget neque in neque dignissim pulvinar id quis tortor. Proin ac ullamcorper quam, vestibulum laoreet turpis. + +Cras suscipit vulputate sapien in viverra. Praesent placerat mattis felis. Duis auctor dui diam, sed egestas neque tristique a. Aenean consequat egestas massa, a fringilla elit consectetur eget. Duis erat lacus, semper id accumsan nec, rhoncus et nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque consequat eros lectus, viverra imperdiet magna congue vel. Donec varius felis vitae arcu consectetur, non varius dolor placerat. Morbi et tortor id augue luctus malesuada nec quis nulla. Nullam aliquam pretium ante. Quisque quis lobortis tellus. Etiam at euismod ipsum. Aenean convallis in urna in euismod. Vestibulum euismod, risus quis ullamcorper molestie, sapien lacus condimentum dolor, at ullamcorper tortor sem et justo. + +Aenean vestibulum suscipit facilisis. Praesent et vestibulum risus. Cras in arcu erat. Aliquam nec turpis bibendum, hendrerit eros non, molestie ligula. Donec scelerisque sagittis urna, a vehicula ipsum maximus sit amet. Vestibulum vitae iaculis turpis. Sed ornare ante a mi imperdiet, non consequat ante mollis. Aenean placerat nulla augue, a luctus risus pulvinar ac. Curabitur dignissim varius quam quis sodales. Nunc faucibus lorem a elit scelerisque volutpat. Donec tempor placerat augue, ac aliquet felis blandit a. Maecenas aliquet pretium mattis. Maecenas pretium lectus et nisi venenatis scelerisque. + +Pellentesque eu pellentesque leo. Nam vehicula at sem eget tempor. Mauris vulputate dignissim malesuada. Sed venenatis felis vitae mauris tempor, id sodales sem lacinia. Aenean nibh libero, efficitur at vulputate eu, fermentum in dui. Sed feugiat felis nec diam dictum, quis porta nibh consequat. In condimentum aliquam leo. Mauris fermentum tortor placerat dignissim interdum. Etiam ultricies aliquam aliquet. Duis at libero maximus, ultricies ex a, fermentum diam. Nulla facilisis ex vel pharetra congue. Duis volutpat gravida dui a porttitor. + +Maecenas nec convallis nulla. Aenean tempor elementum erat et sodales. Curabitur ornare sodales consectetur. In congue lorem nisi, vitae tristique leo laoreet in. Nullam euismod felis eget nulla convallis, id pretium odio hendrerit. Nulla mollis fringilla euismod. Nullam eleifend facilisis risus sed tincidunt. Sed venenatis erat ex, ut congue odio laoreet pretium. Proin et porttitor erat, at tempor lorem. Quisque ultrices libero risus, sit amet condimentum turpis rhoncus ut. Sed vel nibh diam. + +Nunc viverra augue a feugiat viverra. Suspendisse gravida cursus neque ac tincidunt. Quisque vitae placerat lacus. Nunc pellentesque felis ac iaculis pellentesque. Quisque finibus turpis quis ipsum maximus ultrices. Nullam ut ultricies massa, non bibendum enim. Pellentesque nec rhoncus tellus. Etiam condimentum sagittis nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse laoreet, mauris ut lacinia mollis, turpis metus volutpat mi, volutpat vestibulum eros nisl sit amet nibh. Donec in congue orci. Praesent elementum rutrum elit nec pharetra. Integer commodo suscipit augue, in bibendum est porttitor et. Nullam ullamcorper ut nisl eu elementum. Curabitur aliquam orci in dolor eleifend rhoncus. + +Morbi sit amet rhoncus nulla, quis interdum nulla. Etiam luctus, est eget rutrum pulvinar, erat est varius eros, vitae venenatis ante quam non elit. Integer non lectus in turpis vehicula aliquet et eu ipsum. Etiam vulputate massa ac urna tempus, mattis lacinia felis vulputate. Quisque commodo, orci sit amet ullamcorper auctor, dolor nibh tristique nulla, eget mollis mauris mi ac ipsum. Donec faucibus nisi id ex viverra lobortis. Sed porta et ante id feugiat. Phasellus mollis, erat quis sollicitudin vestibulum, quam risus dapibus arcu, in scelerisque diam libero tincidunt orci. Integer aliquam, ante ac placerat euismod, libero lacus aliquet lorem, ut viverra risus felis hendrerit est. Cras sollicitudin sem eget nulla iaculis iaculis tristique nec sem. Maecenas accumsan tellus in finibus porttitor. + +Aliquam at mi felis. Pellentesque sollicitudin lorem eget mi lacinia, vitae varius risus vulputate. Sed lobortis augue orci, eget mollis augue volutpat ac. Nulla dignissim ut felis sit amet posuere. Vivamus facilisis tristique diam eu aliquet. Morbi fermentum magna vel consequat egestas. Integer nulla tortor, tristique quis rutrum quis, sodales a dolor. Aenean in finibus nunc. Nulla ornare semper auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean faucibus lacus non pulvinar luctus. Sed semper aliquet lectus venenatis convallis. Mauris luctus libero a metus efficitur fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean a sem arcu. Integer aliquet vestibulum nibh id luctus. + +Quisque pretium est quis risus condimentum rhoncus eget ultricies dolor. Morbi sed mi luctus elit fringilla ultrices ut vitae purus. Maecenas at quam id sapien pulvinar scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse sed ultrices sapien, sit amet tincidunt odio. Suspendisse sed hendrerit massa. Phasellus fermentum ipsum diam, non gravida libero venenatis sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc posuere libero quis efficitur condimentum. Proin vulputate libero massa, et vulputate nisl volutpat malesuada. Morbi eu molestie ipsum. Praesent vulputate magna eget velit suscipit lacinia. + +Sed ultricies, massa at dignissim bibendum, elit diam vestibulum risus, quis tincidunt ipsum diam vel mauris. Nam sed tortor id augue consectetur pulvinar ac non eros. Praesent ac velit id magna elementum tristique volutpat quis mauris. Praesent consectetur elementum dolor at mollis. Vestibulum interdum diam non odio commodo, non sollicitudin dui consectetur. Praesent pharetra finibus arcu, eu tristique magna posuere non. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi faucibus nisl non augue bibendum, id venenatis elit vestibulum. Etiam sed sollicitudin ligula. Suspendisse at ex condimentum, pulvinar neque id, consequat odio. Integer euismod porttitor orci ac commodo. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc augue mi, efficitur non placerat eu, iaculis nec neque. Suspendisse in felis viverra, dictum erat gravida, lobortis tortor. Cras eget elementum enim. Suspendisse potenti. Pellentesque dignissim lorem vel leo sagittis, ut molestie elit tempor. Ut vitae porta nulla. Suspendisse consequat, lorem sit amet ullamcorper vehicula, nulla nisi fermentum nulla, eget interdum leo erat quis lectus. Sed finibus urna urna, vel ultricies urna aliquet non. Sed convallis rutrum mi, vitae mollis diam fringilla pulvinar. + +Praesent eu ultrices nulla. Nunc semper tincidunt magna nec fermentum. Sed posuere lobortis mauris, at bibendum lorem eleifend nec. Donec ut fringilla tellus. Curabitur efficitur, turpis id ultrices semper, risus diam aliquet turpis, vel porta justo tortor non felis. Sed ut mi mollis, sagittis libero sed, mattis est. Quisque et turpis vel diam convallis congue et quis enim. Nam aliquet lorem eu augue convallis sagittis. Sed laoreet quis erat eu semper. Nunc suscipit dui nec elit mollis sodales ac in orci. Sed eu erat sit amet elit tristique ullamcorper quis ut justo. Nullam egestas id nunc ac aliquet. + +Aliquam quis hendrerit est, nec maximus lectus. Curabitur iaculis eget risus at pellentesque. Integer sit amet massa malesuada eros imperdiet placerat. Mauris elit lacus, dictum eget mauris sit amet, condimentum commodo erat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque volutpat velit at elit aliquam porttitor sit amet dictum quam. Fusce vel egestas felis, at blandit dui. Nunc eget massa sit amet dolor venenatis rhoncus. Donec malesuada rutrum eros, eget placerat augue ultrices at. Quisque pretium quam nec pellentesque suscipit. Aliquam placerat justo tortor, ut ornare nisi scelerisque a. Suspendisse vel ultricies elit. Donec luctus laoreet porttitor. Vivamus sit amet eleifend nisl. Donec tincidunt tincidunt lacus, vel ullamcorper urna ultrices a. + +Vivamus bibendum tellus augue, a cursus elit facilisis vitae. Aenean dapibus lorem ac elit placerat, sed blandit lacus molestie. Donec bibendum, tellus ac commodo aliquam, diam nulla molestie mi, at suscipit sapien nisl non elit. Mauris sit amet pulvinar lacus. Ut pulvinar pellentesque semper. Quisque vel luctus tellus, sed tempor diam. Proin porta dui mauris, non accumsan magna iaculis non. Etiam maximus imperdiet molestie. Phasellus luctus sagittis sapien nec malesuada. Etiam nec metus arcu. Vivamus a purus non nisi posuere venenatis. Duis non metus rhoncus velit accumsan fringilla at ut augue. Maecenas nec neque justo. Vestibulum ut fringilla ante, sit amet tempus purus. + +Suspendisse scelerisque tincidunt erat, non molestie erat auctor at. Vivamus ac maximus mi, quis faucibus sem. Suspendisse tincidunt massa eget bibendum convallis. Praesent id viverra quam. Proin tempus ante tincidunt suscipit auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer ac orci sit amet lorem commodo porttitor eget eu ex. Aliquam ultricies sapien et lobortis bibendum. Mauris nec nisi odio. Quisque cursus sagittis turpis nec euismod. Proin rutrum dui non egestas rhoncus. Curabitur congue luctus urna et euismod. Phasellus ac nisl libero. Vestibulum laoreet maximus dolor sed lacinia. Nam vulputate tempor magna non feugiat. + +Nullam vitae orci rhoncus, eleifend odio a, tempus dolor. Quisque nec libero facilisis, aliquam nunc eget, efficitur massa. Vestibulum id est pretium, pharetra urna sit amet, dapibus nunc. Nulla bibendum nisl justo. Praesent vitae iaculis nibh. Aenean lobortis hendrerit lacinia. Vivamus nisl neque, suscipit et pulvinar in, vulputate a quam. Curabitur ullamcorper hendrerit malesuada. Etiam laoreet dolor eu justo vehicula scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc et augue non ante tincidunt condimentum at vel nisl. Proin tempus ante vel ex blandit, ac scelerisque enim lobortis. Suspendisse potenti. Nulla felis erat, blandit in libero ut, blandit mattis leo. + +Phasellus ut lectus neque. Praesent egestas leo in sapien sodales, et aliquam libero iaculis. Quisque ut efficitur tellus, sit amet faucibus nunc. Aenean ac purus convallis, commodo massa at, molestie ex. Donec sollicitudin est quis enim porta, at placerat diam rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean hendrerit, lectus id hendrerit sollicitudin, ante ante euismod arcu, a blandit felis urna eu odio. Ut finibus nibh purus. Sed vestibulum tristique mattis. Fusce sed leo id quam consectetur cursus a ac nisl. Integer fermentum accumsan auctor. Suspendisse in ligula quis augue euismod lobortis. + +Duis gravida lorem at nibh aliquet feugiat et id erat. Mauris vestibulum tortor ac arcu tempor, nec lacinia arcu efficitur. Nunc faucibus fermentum felis. Donec sed lacus sed quam pharetra venenatis nec et tortor. Donec fermentum dolor a nibh accumsan placerat. Phasellus risus sapien, varius vitae viverra non, tincidunt at arcu. Fusce mollis elit quis aliquet egestas. + +Etiam a dolor sit amet elit commodo rhoncus. Morbi sit amet erat semper, cursus magna vel, facilisis sapien. Mauris nec mi non urna aliquam mattis. Fusce placerat varius sodales. Aenean ullamcorper magna a eros eleifend, ut malesuada dui pharetra. Vivamus porttitor consectetur lectus. Aenean nunc quam, semper at libero eget, posuere varius turpis. Phasellus dolor ante, varius in volutpat vel, blandit scelerisque urna. Cras id neque id arcu vehicula venenatis iaculis vel justo. + +Etiam felis diam, lobortis non turpis eu, volutpat hendrerit diam. Pellentesque eu metus accumsan, tempus enim eu, vehicula arcu. Cras vehicula tortor in augue elementum vestibulum. Donec vitae mi dignissim, sagittis ligula quis, rhoncus nibh. Sed scelerisque elementum accumsan. Morbi et quam non erat efficitur elementum quis in lacus. Etiam ut dapibus ex. Nullam suscipit placerat pretium. Aliquam mattis dolor lacus, consectetur accumsan nibh luctus quis. Nullam semper odio sit amet risus imperdiet blandit. + +Fusce non dapibus orci. Fusce feugiat dictum velit, ac venenatis ipsum. Nunc quis arcu massa. Phasellus lobortis vitae neque ut consequat. Donec bibendum ipsum quis lacus ultrices, in commodo lacus laoreet. Nam facilisis nulla quis porttitor interdum. Aliquam eget hendrerit sem, volutpat eleifend enim. Ut commodo justo massa. Nunc varius est efficitur pharetra pellentesque. Nullam convallis tincidunt diam, vel tempus libero gravida non. Donec consequat elit non est ornare, ac vestibulum est tempus. Sed sed rutrum nisi, non posuere nisi. Morbi malesuada semper orci, id venenatis ipsum accumsan imperdiet. + +Fusce sollicitudin nunc in orci malesuada pellentesque. Maecenas interdum finibus sapien. Suspendisse pulvinar semper rhoncus. Praesent ex justo, blandit quis nisi ut, scelerisque porta massa. Praesent vitae massa sed ligula faucibus viverra. In hac habitasse platea dictumst. Phasellus scelerisque lectus tristique, vehicula mauris vitae, egestas turpis. Fusce faucibus hendrerit magna sit amet gravida. Fusce condimentum hendrerit lacus, id ultrices libero aliquam id. Sed ultricies ultrices nisl vel dictum. Duis felis eros, consectetur nec lacus in, vestibulum condimentum metus. Vestibulum nec malesuada massa. Donec maximus mi augue, et eleifend ante auctor id. In cursus tincidunt nibh. + +Curabitur bibendum volutpat felis, ac facilisis elit interdum sagittis. Duis luctus risus massa, ac tincidunt nulla ultrices quis. Phasellus quis nisl efficitur, posuere nulla non, ornare orci. Ut sit amet aliquet dui. Morbi ut ligula ut ex blandit tincidunt eu eu est. Mauris non volutpat urna. Nunc quis congue ex. Cras aliquam pellentesque fermentum. + +Sed eu turpis a eros semper ornare. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut tincidunt justo nec nibh placerat, vitae lacinia nunc tincidunt. Ut malesuada, purus eu tristique bibendum, purus quam convallis magna, in porta eros dui quis massa. Maecenas molestie sem vel urna dignissim ullamcorper. Praesent lobortis porta vestibulum. Ut pharetra iaculis urna, et porta ante maximus non. Pellentesque suscipit luctus libero nec viverra. Sed egestas mi vitae tortor condimentum, sit amet fermentum sem pretium. Etiam neque ipsum, tempor ut vulputate sed, accumsan ut mi. Pellentesque fermentum ultrices augue, quis venenatis massa egestas eu. Mauris blandit posuere fermentum. + +Pellentesque quis tempor ante, at convallis metus. Vestibulum hendrerit, libero eget malesuada sagittis, dolor mi consectetur urna, non malesuada tortor lacus in mauris. Maecenas placerat sem quis eros commodo, nec efficitur nulla varius. Suspendisse interdum, nulla sit amet egestas aliquam, ante tortor porta metus, in condimentum risus purus eget magna. Nulla ultrices eget turpis eu luctus. In imperdiet, mi ornare venenatis sodales, ligula risus porttitor ante, sed fermentum lacus mauris a tortor. Morbi lacinia ornare nunc eget finibus. Fusce a facilisis eros. Quisque vulputate purus sit amet tellus mattis, nec consectetur nibh viverra. + +Maecenas sodales lacinia elit commodo eleifend. Phasellus vitae urna in tellus porttitor rhoncus a ac dui. Integer vel elit eget neque mattis bibendum. Duis ullamcorper risus ut mi iaculis, et scelerisque erat facilisis. Vivamus vestibulum diam vitae urna scelerisque vestibulum. Ut tincidunt velit convallis nisl tempor, a feugiat dui efficitur. Morbi enim mauris, rhoncus et sagittis condimentum, luctus eget augue. Praesent aliquet posuere pharetra. Nullam laoreet pretium sem quis suscipit. Pellentesque vitae hendrerit urna. Praesent eu nibh at elit malesuada suscipit nec quis urna. Phasellus vel massa a urna vulputate suscipit in id diam. + +Pellentesque hendrerit mi a convallis scelerisque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus volutpat eros tellus, eget semper purus aliquet et. Donec sodales mauris ut mi interdum placerat. Donec rutrum elementum porttitor. Praesent ultrices posuere aliquam. Vivamus quis dui auctor, posuere neque quis, placerat sapien. Morbi aliquet leo vitae lacus euismod euismod. Quisque placerat massa et magna sodales euismod. Curabitur lobortis dolor non quam porta scelerisque eget in eros. Praesent gravida eros in est feugiat, ac condimentum libero iaculis. Cras eleifend urna mauris, ac luctus velit consectetur pharetra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis ipsum quam, faucibus ut urna et, porttitor pellentesque velit. Maecenas sit amet lectus hendrerit, gravida turpis vitae, aliquet velit. + +Donec ut accumsan enim, ac finibus erat. Phasellus eleifend tempor orci sit amet fringilla. Donec blandit, est sit amet malesuada fermentum, ex augue rutrum magna, in ultricies mi nulla ac leo. Fusce blandit neque in ipsum blandit, sit amet porttitor velit sodales. Vestibulum suscipit nunc sit amet bibendum vulputate. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet finibus finibus. Quisque tincidunt ac lectus non rhoncus. Sed mi est, porttitor tincidunt porttitor in, rutrum a risus. Curabitur pellentesque quis sem condimentum cursus. Vivamus sed est sollicitudin, mattis orci at, bibendum mauris. Fusce blandit vulputate interdum. Mauris tortor turpis, convallis a diam posuere, blandit imperdiet quam. Maecenas quis dolor sagittis, semper turpis et, malesuada nibh. Suspendisse eget urna non augue porttitor fringilla. Nullam sagittis, nibh at pharetra placerat, leo massa rutrum elit, et placerat erat ex ac ante. + +Donec nec scelerisque augue, sed venenatis orci. Donec eget dictum est. Suspendisse potenti. In hac habitasse platea dictumst. Quisque tempus congue sapien vitae elementum. Maecenas in diam eget nulla pellentesque luctus. Maecenas felis elit, vulputate in ligula ac, luctus aliquam massa. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce fermentum magna a vehicula venenatis. Etiam vitae augue lobortis, volutpat dui a, pharetra dolor. Pellentesque elementum at neque et sollicitudin. Donec ligula massa, lacinia sit amet hendrerit ac, ornare ac nulla. Vivamus vitae iaculis dui. Sed fringilla orci sed massa efficitur accumsan. + +Sed sed dui nibh. Nam ut sapien a nisi bibendum tempor et sollicitudin mauris. Cras dignissim urna non mi pellentesque, at mollis justo gravida. Nulla rhoncus orci ut lacinia sollicitudin. Donec posuere scelerisque egestas. Nam sodales erat consectetur, faucibus ex sed, rutrum eros. Sed condimentum mattis volutpat. Fusce ac dignissim mi. Aliquam non laoreet lectus. Morbi sit amet metus sed velit faucibus maximus a nec odio. Mauris mollis diam nec finibus scelerisque. Proin ac erat elementum, pellentesque lacus vel, porta arcu. Proin tempus ornare mi, vitae sodales elit lobortis aliquam. + +Nulla augue felis, scelerisque non lacinia sed, faucibus vel justo. Aenean a tristique libero, sit amet suscipit ex. Integer venenatis magna sed velit sollicitudin, dictum lobortis felis eleifend. Maecenas malesuada eros eu erat pharetra elementum. Aliquam efficitur odio eget pharetra sagittis. Aliquam arcu lectus, sollicitudin finibus erat hendrerit, posuere laoreet arcu. Donec congue dolor quis massa condimentum, nec semper risus fringilla. Suspendisse potenti. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi sed consequat lacus. Quisque auctor facilisis mauris sit amet porttitor. + +In dui mauris, laoreet a ex id, facilisis lobortis ante. Fusce lectus magna, hendrerit cursus mollis vitae, pellentesque eget elit. Aenean vehicula vel lectus tempus vestibulum. Nunc ut diam a erat facilisis congue at non nibh. Curabitur semper lectus commodo, rutrum arcu eget, aliquam est. Vestibulum non metus maximus, aliquet quam nec, blandit odio. Phasellus dapibus bibendum diam quis rhoncus. Ut at mi elit. Cras condimentum pharetra leo, ut sagittis libero luctus eu. In ultrices enim lacus. In elit urna, porta sit amet tempus eu, mattis at tortor. Vestibulum molestie tincidunt orci, vel finibus eros sodales ut. Vestibulum et sapien suscipit, venenatis ligula et, mollis ex. Sed iaculis malesuada venenatis. + +Aliquam erat volutpat. Donec porttitor vehicula nisi, at dapibus neque. In hac habitasse platea dictumst. Vivamus dignissim sodales tristique. Sed vestibulum mattis blandit. Sed in rhoncus nibh. Fusce feugiat massa risus, non lacinia arcu vestibulum vel. Vivamus nec lorem mollis, auctor risus quis, varius leo. Praesent ac aliquam sem, et vehicula tortor. Nam consequat enim et felis interdum efficitur. Maecenas eget velit eros. Nullam sodales erat vel maximus lobortis. + +Curabitur fringilla quam lectus, ac sodales sapien aliquet at. Nunc porta urna odio, et facilisis ligula eleifend nec. Etiam semper quam erat, quis vulputate odio porttitor quis. Donec et vulputate justo. Mauris ultrices quis tortor sed tincidunt. Cras fringilla gravida nunc, sit amet convallis metus auctor a. Maecenas ut velit quis nibh facilisis pretium sed nec dolor. Curabitur porttitor vel diam eu viverra. + +Ut ornare metus ac viverra ultricies. Vivamus sit amet quam in dui molestie efficitur ac a dui. Aenean eget ante a nisi facilisis semper volutpat eget ipsum. Integer et lorem eu ligula lobortis eleifend molestie non nisi. Maecenas quis tortor sed quam semper porttitor. Quisque laoreet ipsum ut imperdiet ultricies. Nunc consectetur neque sed ex scelerisque molestie. Sed varius, urna sed convallis molestie, libero felis finibus tortor, eget semper magna lorem vel erat. Duis gravida erat tortor. Nullam commodo leo vel nulla lobortis, vel semper nisl euismod. Ut libero mi, convallis sit amet tristique ut, pellentesque nec odio. Etiam convallis tortor volutpat leo facilisis fringilla. Aliquam ultrices arcu eu lobortis tristique. Vestibulum ac nulla massa. Vestibulum varius commodo felis id consequat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + +Duis vitae erat fringilla, rhoncus turpis at, sodales odio. Mauris convallis non velit a varius. Vestibulum porttitor accumsan libero id vulputate. Duis eu lectus aliquet, vulputate enim a, feugiat metus. Proin luctus leo quis nisi iaculis, sit amet pretium turpis sodales. Sed luctus quam ut massa imperdiet scelerisque. Phasellus consequat faucibus dolor, in pellentesque felis. Morbi tortor eros, eleifend at maximus quis, condimentum eu nisl. Suspendisse ullamcorper ut orci sed volutpat. Curabitur eu elementum magna. + +Ut hendrerit, nunc lobortis venenatis pharetra, lorem augue venenatis turpis, in semper risus nulla sed ante. Mauris in dolor ut orci venenatis fringilla. Morbi gravida viverra rhoncus. Nunc a justo dui. Curabitur bibendum mattis risus. Mauris a viverra sem. Nunc id venenatis justo, vel lobortis leo. Proin tempus lobortis orci sit amet eleifend. Maecenas vel volutpat ante. Nulla tristique felis at dui viverra cursus. Aliquam vel erat tristique neque tincidunt scelerisque sed in dui. Vivamus quis mauris id enim molestie eleifend quis a arcu. + +Nulla hendrerit feugiat nisl vel ornare. Curabitur sit amet consectetur diam. Sed feugiat vulputate luctus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum pulvinar libero nunc, nec cursus risus gravida et. In dapibus quam sit amet nisl luctus gravida. Aliquam sit amet posuere orci, imperdiet maximus nibh. Aenean nec tortor ut nunc suscipit vulputate. Proin iaculis vitae mi sit amet eleifend. Pellentesque nec viverra magna, nec pretium leo. Nunc mollis sollicitudin velit. Morbi tortor dolor, aliquam sit amet lacus id, pharetra rhoncus felis. + +Etiam commodo ex augue, eu gravida mi iaculis ut. Sed et suscipit justo. Donec ultricies risus nunc, sit amet volutpat ex tempor ac. Pellentesque eleifend porta varius. Nam pulvinar sem in ultrices sollicitudin. Sed sed sem id metus scelerisque ultricies. Sed a odio vel lectus fermentum ultricies non eu nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis ac urna vitae sapien convallis dignissim. + +Aliquam sollicitudin pretium odio, quis viverra nisi mollis eget. Ut rhoncus ante vel porta tincidunt. Nunc mattis, quam quis aliquet mattis, ipsum arcu tempor leo, in interdum sem urna non tellus. Nunc mauris metus, bibendum a varius quis, mattis quis ex. Vestibulum rhoncus augue a nulla fringilla gravida. Quisque diam risus, dignissim id sagittis vel, hendrerit vitae turpis. Praesent est diam, dignissim id volutpat quis, cursus non sem. Mauris eget malesuada nunc. Proin et quam porta, porttitor massa in, faucibus dui. Phasellus in dictum mi, quis dignissim enim. Cras semper ipsum ac condimentum iaculis. + +Aliquam ac tortor eu purus suscipit pulvinar tincidunt ac tellus. Mauris gravida mi eu pretium sollicitudin. Sed convallis ligula nec metus suscipit, id efficitur ligula facilisis. Etiam erat urna, suscipit et posuere ullamcorper, elementum id enim. Nullam tempus sapien sed ex venenatis, et vehicula sapien aliquam. Donec leo dolor, fermentum in metus ultrices, interdum laoreet lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam pretium eu nulla vel pretium. In nec risus elit. Etiam nisl lorem, convallis nec luctus sit amet, lacinia eu tellus. Fusce et vulputate velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Praesent elementum dolor id mattis consequat. + +Praesent libero tellus, interdum quis sollicitudin non, volutpat vitae nulla. Cras nibh quam, sodales in lorem porta, aliquet lacinia nisl. Aenean placerat leo libero, a tempor leo vulputate non. Phasellus iaculis quam quis urna consequat fringilla. Curabitur hendrerit dictum eros, ac elementum orci. Sed dignissim mi nisl. Nunc in risus maximus nibh tincidunt vehicula. Mauris eleifend, purus non interdum volutpat, turpis ligula laoreet ligula, eu fringilla nunc tellus nec sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec eu sollicitudin orci. Donec augue arcu, rhoncus eget imperdiet ut, volutpat et quam. Mauris suscipit est ut diam blandit condimentum. Aliquam bibendum a massa ac cursus. Quisque felis dui, egestas vel tellus at, lobortis dapibus turpis. + +Nam tempus consectetur nunc, et convallis urna ullamcorper a. Vestibulum placerat purus in euismod euismod. Suspendisse eget congue quam, quis placerat tortor. Aliquam erat volutpat. Vestibulum ut nisi vitae lacus ultrices varius eu sodales nulla. Phasellus congue, lacus sit amet sagittis accumsan, enim risus laoreet urna, vitae blandit eros quam sit amet erat. Proin id gravida tortor. Nam in elit nec leo imperdiet elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent interdum leo nunc, quis iaculis ante fermentum vitae. + +Phasellus vehicula egestas turpis, tristique ullamcorper sapien dapibus quis. Maecenas commodo magna in cursus gravida. Praesent vitae dui risus. Nullam eget faucibus odio. Quisque id cursus justo, a pretium magna. Suspendisse lobortis libero eget dapibus laoreet. Ut laoreet, nunc sit amet tincidunt cursus, tortor felis dignissim dolor, a sagittis nisi lacus ac odio. Ut laoreet ut metus eget venenatis. Suspendisse aliquet dignissim risus, a bibendum mi imperdiet sit amet. Proin fermentum libero id finibus euismod. Mauris vulputate massa et velit imperdiet, ut luctus sem feugiat. Nunc vel tellus elementum, lacinia orci quis, lobortis libero. Aenean a iaculis lectus. Donec ut diam eget magna fringilla ultricies in sed justo. Etiam aliquet diam metus, ac ornare massa dapibus nec. Quisque vestibulum nisi et lobortis hendrerit. + +Proin pulvinar vestibulum risus, non iaculis enim suscipit vitae. Duis a odio eget magna egestas scelerisque molestie eget massa. Etiam blandit eget enim et fermentum. In hac habitasse platea dictumst. Donec a nunc nulla. Etiam in elit ante. Proin nunc turpis, semper eget est volutpat, congue volutpat nisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris quis nulla maximus, placerat odio ac, facilisis lectus. Proin et semper purus, eget placerat urna. Nulla ullamcorper enim felis, nec dictum ex blandit sit amet. Vestibulum a ullamcorper diam, id rhoncus dui. Aenean diam lorem, auctor vitae libero vel, commodo imperdiet lectus. Nunc pellentesque purus neque, non pulvinar dui convallis aliquet. Duis euismod dui ut elit fringilla, id consequat neque convallis. + +Cras efficitur cursus sollicitudin. Morbi aliquam nisi magna, in lacinia nunc lobortis ultrices. Nullam suscipit metus at venenatis tincidunt. Sed id sem felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum tempor elit ut enim condimentum ultrices. In hac habitasse platea dictumst. + +Suspendisse tincidunt, sapien quis tempor egestas, augue orci accumsan nisi, in ullamcorper nisi urna nec eros. Etiam placerat, lorem id consequat maximus, ipsum ligula placerat sem, vitae fermentum dolor nibh eget sapien. Donec ornare magna quam, eu aliquet nulla laoreet at. Sed eros sem, aliquam vel quam facilisis, tincidunt mollis nibh. Sed eu sapien non orci fermentum accumsan. Pellentesque fringilla dui ante, nec ultricies augue dignissim et. Quisque luctus venenatis facilisis. Aenean sollicitudin sem id vehicula posuere. Nulla sit amet libero iaculis, semper mi nec, interdum diam. Quisque dui lacus, dictum ut semper non, tristique id risus. Etiam non lacus est. Vivamus maximus laoreet pulvinar. Aenean vel enim nulla. Vestibulum pharetra non magna in hendrerit. Phasellus congue neque at nibh maximus vulputate. + +Donec congue fermentum neque ut suscipit. Duis viverra, turpis pharetra dapibus maximus, ex purus ornare dolor, eu congue est odio ut massa. Donec rhoncus eu urna in molestie. Cras cursus placerat mauris sed scelerisque. Suspendisse sit amet dolor et libero efficitur ullamcorper sit amet eu mi. Cras odio augue, bibendum eget vestibulum ac, rhoncus at augue. Praesent euismod vel augue eget suscipit. Maecenas consequat libero nec erat ultrices tincidunt eu in nisi. + +Ut blandit urna ut lacus varius fermentum. Aliquam ac nunc id neque mollis consectetur. Etiam sapien dolor, dignissim nec dui at, ultricies semper enim. Nunc vitae nunc diam. Aliquam porttitor volutpat dictum. Cras consequat finibus turpis, ac tristique nisl convallis eget. Phasellus interdum nibh ut diam bibendum dictum. Donec nec mi arcu. Sed ac urna a enim ullamcorper molestie. Phasellus porta leo nunc, nec mattis lectus iaculis sed. Duis sit amet metus dui. Aliquam erat volutpat. Donec felis urna, blandit at pulvinar vitae, malesuada at velit. Phasellus vulputate aliquet turpis sit amet sollicitudin. Pellentesque tempus augue purus, et efficitur lectus iaculis eget. Cras ultricies tellus ac nibh hendrerit sodales. + +Maecenas vehicula libero eget eros tincidunt fringilla. Suspendisse sit amet facilisis velit. Aliquam nulla ante, ullamcorper eu eleifend ut, consectetur a ex. Fusce sed elementum mi, sit amet congue urna. Pellentesque tristique malesuada tempor. Aenean egestas faucibus rhoncus. Proin vel eleifend enim. Mauris tristique, orci non scelerisque condimentum, enim neque facilisis lectus, vitae convallis dui dui sed nibh. Fusce finibus tincidunt quam, a fermentum justo. Aenean sed euismod tellus. Suspendisse bibendum elit enim, ac congue sem mattis eu. Nulla vitae blandit nisl. Nullam risus justo, efficitur in dignissim in, lobortis et ante. Cras est magna, ornare vel tempus ac, scelerisque eu dui. + +Nam semper diam in nunc cursus, eget venenatis sem ultrices. Pellentesque placerat dignissim sem, eu ultrices ligula congue nec. Cras posuere id sapien vitae vulputate. Phasellus elementum felis vel ligula lobortis, vitae vulputate nulla elementum. Nullam a sem magna. In lobortis, tellus eget blandit tincidunt, diam lectus tincidunt magna, at semper turpis magna feugiat nunc. In ac sapien in turpis facilisis ultrices id sit amet orci. Vestibulum id maximus mi, id viverra nisi. Etiam ac aliquam ex, id commodo turpis. + +Nunc sagittis pulvinar ipsum, ac semper libero scelerisque vel. Phasellus condimentum euismod justo sed facilisis. Ut eget molestie neque. Maecenas risus sem, mollis finibus urna feugiat, elementum facilisis enim. Nunc ultricies, turpis a scelerisque feugiat, turpis arcu vehicula lorem, quis maximus quam eros et ex. Nunc maximus mi sed velit cursus lacinia. Donec sit amet arcu a sapien hendrerit pharetra. Donec in mollis mauris. Vivamus scelerisque velit eget turpis rutrum, vel condimentum urna mattis. Praesent tempor imperdiet diam, sit amet imperdiet mauris posuere at. Aenean vitae imperdiet urna. Morbi lacinia arcu erat, vel faucibus mauris volutpat in. Mauris consequat mollis tellus ut varius. Quisque pharetra ipsum et nulla sollicitudin, ac scelerisque nisl faucibus. Nunc id iaculis augue. + +Donec sem nunc, hendrerit tincidunt nunc vel, congue consectetur elit. Aenean laoreet lorem ut est tincidunt semper. Cras accumsan iaculis metus a blandit. Maecenas nec laoreet dui. Nunc odio est, vestibulum sed faucibus id, mattis sed ex. Ut tristique placerat molestie. Integer id lacus a magna finibus luctus et dignissim enim. Quisque ac est sit amet purus porta auctor. + +Sed sollicitudin tincidunt odio, eu feugiat tellus facilisis eu. Quisque nec posuere quam, sit amet malesuada purus. Praesent ut dui et turpis varius laoreet eget et nibh. Donec a justo felis. Nulla vitae tellus mauris. Cras vehicula non urna sit amet varius. Vivamus scelerisque iaculis nunc, vestibulum bibendum nulla pulvinar vel. Sed libero metus, luctus nec porta eget, facilisis vitae nisl. Fusce non sagittis sem. Integer et erat vel mi vulputate posuere et vitae arcu. Maecenas fermentum felis vitae ultrices placerat. Fusce in molestie augue, quis varius nibh. Etiam lacinia efficitur tincidunt. In non ante orci. + +Fusce accumsan cursus lobortis. Cras id accumsan magna, quis vulputate enim. Integer feugiat mattis dolor ut sollicitudin. Aliquam scelerisque arcu metus, eget posuere felis sagittis vel. Praesent convallis facilisis sem quis dignissim. Phasellus pharetra diam nec faucibus tempor. Praesent porttitor cursus metus et accumsan. Praesent rhoncus accumsan malesuada. Donec purus nunc, condimentum nec volutpat a, hendrerit vitae risus. Maecenas placerat lobortis urna sed egestas. Pellentesque blandit nunc ante, id viverra magna mattis nec. + +Proin dui sapien, aliquet in dui vitae, condimentum egestas ante. Suspendisse potenti. Etiam ullamcorper rhoncus velit vel gravida. Proin in ante cursus, luctus libero a, vehicula odio. Nullam a efficitur turpis. Duis porttitor lectus ac mauris pulvinar cursus. Etiam non magna nec massa consectetur scelerisque. Nam posuere at nunc sit amet blandit. Cras dui elit, porta non vehicula quis, suscipit ac mauris. Sed fermentum nunc ut augue hendrerit, et mollis elit vestibulum. Nulla pharetra, turpis non euismod auctor, nisl leo commodo dolor, porta sodales ex leo eu nibh. Duis at erat et libero euismod tincidunt eu sit amet lorem. Praesent sem purus, pretium sed est vitae, venenatis elementum nisl. Vestibulum rutrum mattis nisl vitae blandit. Sed efficitur quam id neque finibus pharetra. Praesent in consequat diam. + +In sit amet dignissim ligula. Sed ac enim at metus fringilla tincidunt sit amet vel enim. Sed eleifend augue vitae elit bibendum, non pharetra sapien eleifend. Cras aliquam pharetra ligula id elementum. Vestibulum id velit lectus. Etiam efficitur molestie mollis. Mauris tempus lorem eu pellentesque faucibus. Vestibulum vitae ipsum sed nibh pretium placerat. Sed dapibus facilisis leo, eget vestibulum turpis lacinia pellentesque. Duis venenatis id nibh vel laoreet. Integer quis justo a mauris lobortis consequat sit amet nec diam. Curabitur laoreet feugiat sem, euismod congue eros ultricies sed. Maecenas sit amet rhoncus nunc. Donec orci nisl, finibus in finibus id, interdum tempus nunc. Vestibulum rutrum tortor non libero lobortis laoreet. Aliquam nunc ipsum, eleifend ornare luctus dignissim, volutpat eu elit. + +Nam eget ipsum lobortis, pellentesque eros sit amet, congue felis. Maecenas facilisis blandit ex in malesuada. Pellentesque facilisis sem nec elementum consectetur. Vestibulum velit ligula, mattis sit amet rhoncus vel, congue id quam. Quisque nec lacinia metus. Vivamus consequat convallis nibh sed egestas. In nec mi volutpat, sollicitudin magna in, laoreet nisl. Praesent non accumsan ipsum, in interdum mi. Praesent pellentesque neque non nunc fermentum commodo. + +Proin volutpat tincidunt neque eget luctus. Duis nibh purus, maximus et justo nec, varius aliquet purus. Aliquam luctus diam nec velit rhoncus porttitor in quis diam. Nullam ut pretium neque, vitae feugiat mauris. Sed euismod dictum odio. Nulla gravida neque sed arcu finibus iaculis. Phasellus facilisis enim quis risus accumsan, vitae dapibus justo maximus. Donec eget dictum tortor, vel porttitor nibh. Phasellus fringilla nibh vel mi euismod, vel rhoncus odio rhoncus. In vel porttitor est. Morbi bibendum ligula vitae orci lobortis posuere. + +Maecenas at imperdiet felis. Aenean at massa porta, molestie nibh id, malesuada lacus. Donec accumsan tellus orci, vel posuere ligula porttitor id. In malesuada leo luctus dui consectetur mollis. Nullam non sapien hendrerit, dictum justo id, pulvinar nulla. Fusce porta varius ligula, in sollicitudin leo elementum quis. Aenean sit amet venenatis risus, in fringilla ipsum. Pellentesque mattis gravida pellentesque. Pellentesque id erat at felis posuere hendrerit. Sed id iaculis risus. + +Vestibulum molestie tempus faucibus. Morbi ullamcorper tempor augue, ac ultrices lorem sollicitudin eu. Nam dignissim, quam at pulvinar tincidunt, turpis velit suscipit turpis, sed varius elit diam quis enim. Curabitur imperdiet, massa a lobortis sagittis, lorem augue aliquet nunc, cursus bibendum ante diam ac sapien. Aliquam eget luctus arcu, quis vehicula tellus. Fusce semper eget ligula porta sagittis. Quisque maximus scelerisque porta. Vestibulum consequat quam eget condimentum mollis. Aliquam eget magna elit. Mauris volutpat sem vel tortor mattis consectetur. Etiam consectetur ante nec lacus bibendum, vel vehicula leo mollis. Aenean lacinia tellus id elementum rhoncus. Aliquam ut euismod leo. Sed eros augue, tempus eget urna quis, laoreet tristique tellus. Cras volutpat, orci vitae commodo tempor, mi mauris iaculis turpis, in tempor sapien ipsum non mi. + +Nunc at molestie magna, ut pulvinar risus. Integer vestibulum sapien at felis sollicitudin volutpat. Etiam ac faucibus neque, nec ornare dolor. Nunc et magna ut nunc rhoncus suscipit vel at quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent quis scelerisque augue, tempor finibus sem. Nullam tincidunt eros lorem, vitae maximus enim ornare eget. Ut sed sapien magna. + +Fusce auctor elementum lacinia. Etiam vel lorem elementum, commodo tellus id, auctor augue. Duis eu diam vitae lorem consectetur semper. Curabitur fermentum nibh vitae mi maximus tincidunt at non sem. Integer ac quam condimentum, fringilla ante sed, consectetur sapien. Nunc non convallis magna. Donec luctus porta efficitur. Quisque arcu nibh, convallis mattis sollicitudin nec, bibendum a lectus. + +Nullam lectus tellus, pretium nec mi nec, euismod tempus sem. Donec ut cursus massa. Vestibulum pellentesque magna dictum, bibendum nulla at, ultrices elit. Mauris bibendum condimentum laoreet. Nullam nulla metus, iaculis et eleifend a, auctor quis lectus. In hac habitasse platea dictumst. Quisque ac lectus dictum, scelerisque arcu quis, accumsan massa. Nulla ultricies sem vel metus pretium feugiat. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam ornare dolor a neque interdum posuere. Etiam sem mauris, malesuada sit amet sem eu, suscipit maximus elit. Quisque rhoncus ullamcorper felis, vel vestibulum turpis egestas eget. Suspendisse mauris lacus, elementum id suscipit vel, pulvinar id arcu. Mauris odio elit, condimentum a facilisis et, semper ultrices magna. Cras tincidunt tempus pretium. Pellentesque pharetra suscipit convallis. Nam eu massa vel orci placerat tempus. Sed feugiat maximus consequat. Curabitur arcu augue, sodales a purus ut, facilisis feugiat tortor. Integer pretium at sem dictum eleifend. + +Fusce ac turpis risus. Proin ipsum libero, pretium at nibh sit amet, vulputate cursus sapien. In gravida est metus, in rutrum velit lacinia at. Proin at hendrerit turpis. Ut sodales tincidunt dolor, luctus consequat ipsum gravida non. Cras in gravida neque. Nunc vitae sem eu justo ultrices interdum bibendum sit amet neque. + +Morbi id eros vitae diam commodo blandit. Pellentesque efficitur ex vitae nibh fringilla ultrices. Maecenas tristique risus sit amet nibh maximus, ut faucibus odio pharetra. Maecenas luctus ultricies odio a sollicitudin. Fusce sed lorem non ante faucibus faucibus. Nam tristique id tellus quis maximus. Vestibulum diam nunc, aliquam at placerat vitae, facilisis ac libero. Curabitur non ultrices lectus, a dignissim urna. + +Aenean nec sem congue, condimentum lacus ac, gravida sapien. Integer euismod sagittis quam, id sagittis lorem commodo ut. Ut vehicula turpis quis tortor sagittis, et venenatis neque ultricies. Aliquam eu sem dui. Quisque vehicula, nulla nec sollicitudin pulvinar, sapien dui condimentum enim, vel dignissim nunc risus sit amet ante. Quisque in neque feugiat, mollis lacus dignissim, lobortis nibh. Duis efficitur posuere molestie. + +Vestibulum dignissim neque nibh, quis faucibus mi tristique non. Integer auctor arcu eu dolor iaculis, ut congue augue consectetur. Nulla hendrerit nibh mauris, eu varius sem ornare et. Pellentesque sagittis aliquet orci, ac hendrerit magna feugiat et. Ut egestas enim eget orci tempus posuere. Pellentesque imperdiet justo ac nulla facilisis semper. Integer malesuada vestibulum sapien et viverra. Donec ut facilisis nibh. Sed at tempor arcu, aliquet bibendum augue. Duis sit amet egestas quam. + +Nulla aliquam nunc tortor, lobortis semper erat varius aliquam. Integer tempus faucibus dolor vitae tristique. Praesent dignissim ac urna non mattis. Sed porttitor maximus auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed luctus sodales tristique. In ac euismod nisi, egestas suscipit tortor. Curabitur finibus placerat dui, vitae malesuada est luctus id. + +Praesent sit amet justo sit amet leo feugiat auctor. Vestibulum ullamcorper arcu at nisl dictum tincidunt. Maecenas non arcu blandit velit ultricies tempor ut vel tortor. Suspendisse vehicula augue quis orci pulvinar, vitae sagittis diam venenatis. Pellentesque convallis justo non libero posuere, non posuere massa convallis. Sed porttitor non enim aliquam venenatis. Quisque ipsum ligula, aliquam vel consequat sit amet, fermentum at augue. Maecenas nec lectus id purus dignissim eleifend. Maecenas accumsan risus urna, vitae volutpat nulla viverra a. Vivamus ac hendrerit eros, egestas pretium odio. Pellentesque nec enim vel dui mattis sagittis vitae a turpis. Quisque varius porttitor urna vel porttitor. + +Donec in nunc tristique, lobortis ex aliquam, viverra arcu. Pellentesque placerat leo interdum, lacinia nisl ut, dapibus ipsum. Praesent feugiat metus vel augue condimentum consectetur. Nullam accumsan luctus eros, eget sollicitudin libero molestie at. Quisque sapien erat, porta nec est eget, bibendum condimentum erat. Sed fringilla a metus nec suscipit. Morbi ac ex porta, tristique ex et, tristique erat. Mauris condimentum, augue et mattis commodo, nisl justo fermentum massa, eu rutrum risus lorem non elit. Suspendisse fringilla ornare interdum. + +Pellentesque vitae velit non mauris vehicula tincidunt eu ac nulla. Donec nec vestibulum neque. Etiam id arcu nec est placerat blandit ac vel lorem. Pellentesque consectetur nunc eget nunc pharetra, eu commodo urna malesuada. Nunc lacinia efficitur luctus. Curabitur scelerisque tortor sit amet lectus faucibus fringilla. Proin molestie lorem ac facilisis consectetur. Cras auctor dui ut erat vestibulum, ut pretium sem gravida. Ut et ullamcorper orci, nec sagittis sem. Cras fermentum convallis ante, id vestibulum erat mollis non. Aenean at fringilla arcu. Duis congue metus at purus mattis euismod. Nam luctus volutpat justo. Nunc vehicula pellentesque orci eget laoreet. Cras dictum nulla in ligula placerat interdum. Donec condimentum massa aliquet iaculis facilisis. + +Sed gravida libero a neque efficitur, rutrum varius est tristique. Maecenas feugiat elit neque, sit amet feugiat velit tempus id. Donec ut volutpat turpis. Sed maximus mauris lacus, eu finibus turpis scelerisque sit amet. Fusce molestie volutpat lorem vitae viverra. In hac habitasse platea dictumst. Phasellus lobortis purus quis metus faucibus iaculis. Morbi non mi metus. Sed ut finibus erat. Nulla a porta sapien, a hendrerit elit. Donec a cursus tellus. Proin efficitur ante tellus, vitae viverra elit sodales ut. Integer ac molestie tortor. Pellentesque vulputate aliquet imperdiet. + +Ut efficitur justo aliquam molestie blandit. Ut posuere lectus auctor, euismod lorem id, laoreet justo. Aliquam convallis, risus sit amet rutrum hendrerit, urna velit lacinia lacus, in varius metus nunc vel orci. Cras suscipit, neque et sollicitudin gravida, lorem elit gravida eros, a dapibus ligula odio vitae nisi. Etiam ac tortor orci. Fusce sagittis non quam eu posuere. In pretium ullamcorper justo id aliquam. In condimentum, dolor quis gravida iaculis, enim ante pharetra tortor, bibendum ullamcorper magna dolor at erat. Morbi et nunc egestas, blandit ante vel, bibendum nunc. Morbi tincidunt lorem urna. Nunc tristique quam leo, sit amet congue arcu sodales nec. + +Ut porttitor venenatis varius. Donec vitae justo dui. Vestibulum eget metus interdum, congue nunc interdum, bibendum diam. Sed at nibh libero. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hac habitasse platea dictumst. Nulla dolor lacus, convallis non vulputate a, consequat a orci. Aliquam sodales massa orci, id congue eros dapibus vel. Suspendisse massa lacus, convallis nec cursus quis, congue a elit. Praesent convallis, neque a imperdiet bibendum, velit neque molestie orci, sed faucibus diam libero ac nisi. Etiam tempus finibus orci lacinia faucibus. Ut semper venenatis justo, in tempus libero luctus et. Duis dictum mattis metus. Aliquam malesuada elementum pharetra. + +Sed non sapien mollis, bibendum neque pellentesque, tincidunt ipsum. Etiam libero lectus, tincidunt sed sodales vel, hendrerit nec mi. Nulla fermentum, mi sit amet dapibus laoreet, arcu neque mollis purus, quis dictum lorem mauris ut arcu. Vestibulum varius fermentum euismod. Nunc ut lobortis purus. Nunc eu nibh euismod mi venenatis rhoncus sit amet et quam. Maecenas iaculis nisi felis, sit amet cursus justo gravida ut. Suspendisse fringilla turpis non lobortis fermentum. Integer vehicula augue in blandit cursus. Aliquam erat volutpat. Donec finibus pharetra mauris. In pulvinar imperdiet tincidunt. + +Sed maximus tincidunt lacinia. Praesent a mauris sed nibh accumsan congue. Etiam vel nisi sit amet eros vehicula posuere. Sed hendrerit semper massa, sit amet lacinia purus finibus nec. Morbi a dui ullamcorper, euismod dolor scelerisque, vehicula lectus. Integer auctor vestibulum ligula, a pharetra turpis posuere at. Nunc consectetur sem nisi, vitae lobortis risus ornare sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec pharetra diam a nisl bibendum sagittis. + +Quisque commodo rutrum tempor. Fusce at augue metus. Pellentesque dapibus placerat est eget lobortis. Sed porttitor vel libero eget hendrerit. Sed posuere libero nulla, in commodo urna egestas quis. Nam nec odio tristique sem rhoncus porttitor. Nullam eget nisl elit. Donec justo magna, ullamcorper eu quam ut, bibendum laoreet sapien. Integer euismod euismod metus, quis interdum ipsum vulputate et. Praesent volutpat risus leo, vel faucibus sem auctor quis. Mauris venenatis urna ac odio sagittis congue. Nulla iaculis sagittis mauris vel maximus. Praesent luctus velit ligula, vel luctus velit vehicula nec. Curabitur et condimentum nisl, in accumsan sapien. + +Curabitur et eros tempor, tempus mauris quis, feugiat mauris. Morbi quis ligula malesuada, sollicitudin est at, pellentesque nunc. Sed nisi quam, dapibus a porttitor quis, venenatis quis diam. Aenean sed bibendum urna. Curabitur eget dolor ante. Aliquam sit amet consequat odio, non convallis magna. Cras gravida lorem et felis efficitur, sit amet viverra ligula suscipit. + +Vestibulum consectetur lobortis arcu. Aliquam efficitur nunc quis est laoreet, et efficitur erat porta. Vivamus molestie nunc eu arcu porttitor venenatis. Duis non consectetur nulla. Nunc felis leo, accumsan ac neque a, commodo cursus massa. Quisque pretium vestibulum justo in aliquam. Aliquam erat volutpat. Duis molestie lorem eget mauris tempus, efficitur elementum velit tincidunt. Donec ultrices placerat felis. Integer sed ultrices nunc. Sed fermentum lorem vitae felis commodo, vitae posuere felis commodo. Fusce eu suscipit metus, ac imperdiet tortor. Nunc a ligula sodales, tincidunt justo ut, ultrices ante. Nam non enim sodales, maximus felis in, ullamcorper nulla. + +Pellentesque maximus vulputate convallis. Maecenas blandit viverra urna in efficitur. Mauris pellentesque sollicitudin turpis, eu ornare lectus finibus sit amet. Praesent in hendrerit mi, tincidunt tincidunt ante. Ut orci mi, tempor in rhoncus sed, ornare maximus ligula. Nulla volutpat lectus elementum ligula sodales vehicula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla risus velit, sodales eu varius non, laoreet sed nunc. In placerat aliquam erat, et commodo nisi hendrerit ut. Aenean auctor blandit urna, eget semper justo condimentum id. Suspendisse potenti. + +Donec tincidunt orci sit amet turpis vestibulum, nec gravida diam consectetur. Ut pretium ante molestie, euismod libero et, luctus ex. Mauris ornare accumsan tincidunt. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque pulvinar tincidunt purus quis dignissim. Aenean neque quam, luctus ultricies magna sed, dapibus imperdiet velit. Fusce faucibus blandit eros, ut convallis massa molestie ut. Nullam ultricies tellus pharetra neque posuere, vitae luctus massa sollicitudin. Pellentesque a turpis a nibh dignissim feugiat. Ut et tellus condimentum, congue lectus vel, eleifend eros. Pellentesque a justo at ipsum vehicula hendrerit. Nunc eget sem libero. Proin sodales nibh eget lectus cursus accumsan. + +Pellentesque rutrum pulvinar sapien, pellentesque semper metus cursus non. Phasellus sed sem vel enim mollis pretium. Mauris sodales nisl eget ullamcorper dapibus. Curabitur lacinia quam non nisi maximus tempor. Vivamus pharetra velit eu leo congue, nec commodo nulla pharetra. Phasellus eu nunc ipsum. Fusce viverra tincidunt ligula, non vestibulum elit feugiat in. Duis auctor quam nec pretium elementum. Morbi a augue massa. + +Pellentesque id hendrerit metus. Sed rhoncus dapibus lectus, ut interdum sem efficitur at. Sed vehicula aliquam hendrerit. Fusce eget sapien felis. Etiam ac tempus eros. Etiam nec orci euismod, varius ex sed, ullamcorper neque. Aenean dictum malesuada sem, sit amet ultrices augue sagittis ac. Proin eget nibh ac nunc consequat euismod. Etiam suscipit est in odio dignissim, suscipit iaculis dui varius. Proin hendrerit eget velit sit amet porttitor. Sed vel lacus est. Nullam at justo eget odio venenatis efficitur nec et lectus. Mauris nec lacinia magna, vel rutrum lectus. Donec tincidunt, lacus ac fringilla cursus, odio velit facilisis ligula, nec cursus orci dui at nibh. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at lectus tempor mauris efficitur semper ac eu dui. Ut interdum eget est bibendum faucibus. Donec et leo sed est porttitor blandit. Suspendisse elit odio, consequat sed scelerisque non, lacinia ac dui. Etiam imperdiet interdum nulla. Curabitur risus metus, malesuada quis congue in, sollicitudin at orci. Mauris sit amet tempus justo, ut scelerisque nunc. Donec et efficitur est. Donec a magna et eros scelerisque facilisis. Praesent hendrerit convallis turpis ut viverra. Curabitur ut nibh non quam interdum interdum. Quisque eget sapien vitae orci malesuada fermentum. Vestibulum nec nisi sit amet purus ullamcorper sagittis. Aliquam mattis, ligula non posuere mollis, velit dui lobortis ante, consequat porta mauris nisi in massa. + +Donec euismod quis augue quis consectetur. Pellentesque sit amet varius velit, et auctor nisl. Ut fringilla augue id mauris consectetur auctor. Nulla sit amet turpis hendrerit diam gravida rhoncus. Praesent ipsum velit, scelerisque at maximus sit amet, tincidunt et ligula. Donec cursus scelerisque dictum. Ut elementum sem finibus elementum auctor. Donec vitae sem vestibulum, vehicula enim at, pellentesque dui. Fusce vestibulum, nibh vel viverra pulvinar, nunc velit auctor dolor, vel placerat sapien neque ut massa. Donec nisi nisl, lacinia vel tortor eu, maximus lobortis sem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent sed ultricies odio. Duis eu congue mi, nec rhoncus elit. Vestibulum nunc lorem, eleifend a porttitor sit amet, pretium finibus sapien. + +Nulla nec est porta, sagittis urna eu, finibus nisl. Curabitur dignissim iaculis dolor in molestie. Vestibulum molestie neque sem, sit amet malesuada urna accumsan sit amet. Mauris dictum euismod sagittis. Donec ac purus id eros dictum varius imperdiet nec mi. Nam semper, odio quis mattis eleifend, turpis velit suscipit ex, vel pulvinar sapien libero id ex. Donec vitae tellus et orci pulvinar interdum. Sed eget nisi id eros dictum ultricies ut vel enim. In venenatis mauris arcu. Sed tincidunt nisl purus, id placerat ante pellentesque sed. Pellentesque vel arcu molestie, posuere sapien nec, volutpat quam. Nulla at odio pellentesque, finibus augue ut, blandit ipsum. Fusce venenatis augue eget fermentum venenatis. + +Nulla sollicitudin scelerisque nisl, luctus lacinia enim vehicula sed. Nunc luctus turpis sed euismod condimentum. Pellentesque scelerisque, sapien at eleifend viverra, ante justo porta nisi, non rhoncus ante nibh et justo. Cras mattis ante a est luctus, vel tincidunt risus finibus. In urna dui, accumsan non orci sit amet, aliquet porta quam. Vestibulum et est eu est varius finibus. Suspendisse potenti. Sed sapien felis, tincidunt et erat ut, luctus elementum diam. Donec tincidunt ultrices porttitor. + +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed luctus lobortis nibh eu fringilla. Cras vitae pellentesque enim. Proin sed lorem et sapien congue placerat quis quis lectus. Duis purus nulla, malesuada at lectus non, consectetur convallis ante. Aenean faucibus odio sit amet risus pretium lacinia. Morbi mollis, nisi quis tristique porttitor, nisi tellus ultrices risus, nec pellentesque mauris dolor vel lorem. In tristique nunc eget metus accumsan, sed sagittis velit varius. Vivamus sit amet sapien ultrices, pretium neque vel, hendrerit nisi. Proin ut ligula id quam laoreet consequat vitae sit amet quam. Aliquam non lacus velit. Duis sed suscipit sapien. Pellentesque non justo in nibh consectetur aliquet. Nulla facilisi. Nunc sollicitudin nisi vulputate ultricies vestibulum. Aliquam aliquam posuere nulla. + +Nam consectetur nibh ut purus euismod dictum. Donec dolor ante, ultricies in est ullamcorper, consectetur suscipit erat. Pellentesque nec porta mauris. Cras tempor mattis libero ut vehicula. Morbi suscipit porttitor velit, nec dictum diam commodo et. Morbi porttitor elementum hendrerit. Nullam in lorem egestas, faucibus libero malesuada, viverra diam. Mauris luctus massa eget massa dapibus mattis non ac augue. Nulla sollicitudin, lectus non congue ornare, felis ligula congue mauris, id convallis ligula arcu a mauris. Proin sit amet mi a nibh molestie tincidunt. Praesent gravida nunc sit amet eros posuere pulvinar. Phasellus ut placerat mauris. Praesent id venenatis turpis. + +Nam eu leo mi. Mauris elementum orci ac nunc aliquam, nec luctus nisi convallis. In hac habitasse platea dictumst. Aenean vitae orci massa. Donec lacus nulla, ultrices ut porttitor ut, blandit id ex. Nullam auctor odio vitae enim dictum convallis. Aenean in pretium felis, laoreet mollis lacus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec malesuada egestas tortor non accumsan. Mauris tempor enim rhoncus, pulvinar dolor eget, semper est. Nullam laoreet vitae dui a euismod. Praesent cursus varius arcu, sit amet ultrices urna vehicula at. Donec vestibulum, lorem vel ultrices commodo, ligula erat dapibus mauris, vel tincidunt lacus erat eu enim. + +Integer ut neque sed lacus rhoncus scelerisque vel in neque. Nunc non odio dictum quam fermentum fermentum porta ut erat. Suspendisse egestas sit amet ex eu cursus. Pellentesque pretium massa non congue tempus. Sed ac faucibus quam. Aenean eu dui aliquam, consequat eros quis, cursus eros. Morbi venenatis blandit ante ac imperdiet. Aliquam a massa nec felis ultrices maximus laoreet et nulla. In sed massa vitae dui malesuada commodo sit amet a sem. Donec ac nibh diam. Sed rhoncus laoreet orci, at sodales tellus consectetur quis. + +Nulla egestas urna sed mollis hendrerit. Quisque eget odio sit amet arcu semper aliquet vitae non mi. Nullam nulla libero, interdum efficitur elit scelerisque, bibendum condimentum neque. Sed laoreet pretium massa, nec pretium diam lacinia eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer congue non elit eu dignissim. Vivamus volutpat ante et tortor mollis finibus. Donec sollicitudin ex eget dignissim tempor. Ut et nibh turpis. Vestibulum ut est purus. Donec posuere aliquet magna sit amet faucibus. Praesent feugiat augue nisl, at congue sapien feugiat at. Morbi luctus dignissim viverra. Nulla ultrices odio at tempus vehicula. Cras nec fringilla tellus. Donec faucibus nisi luctus urna imperdiet volutpat. + +Vivamus lacus turpis, iaculis sed molestie vel, dignissim nec metus. Nullam ut ullamcorper nisl, sed bibendum urna. Nam et viverra arcu, nec volutpat diam. Nullam auctor dapibus aliquam. In lobortis, felis vel laoreet viverra, dolor mi auctor libero, ac mattis leo nibh lacinia orci. Mauris efficitur, tortor vel volutpat ultrices, dolor libero iaculis justo, id rutrum est diam quis arcu. Sed quis ipsum placerat, ultricies erat ac, faucibus turpis. + +Proin a consectetur ante. Donec ultricies nunc in tortor mollis blandit. Cras arcu libero, ultrices accumsan sollicitudin ut, porta vel risus. Donec id mauris purus. Nam dictum urna non neque faucibus tincidunt. Fusce faucibus libero et sapien condimentum, ac gravida tortor tempor. Morbi sit amet tellus malesuada, iaculis diam sit amet, facilisis leo. Nunc finibus tellus risus, id faucibus dui condimentum at. In lobortis leo at vulputate laoreet. Donec id blandit libero, bibendum fringilla nisl. Sed pharetra eros quis leo efficitur imperdiet. Nulla aliquam purus libero, at accumsan libero dignissim non. + +Phasellus lorem arcu, gravida sed ante ut, dapibus tincidunt mauris. Nunc imperdiet vehicula ligula. Aliquam erat volutpat. Vestibulum neque justo, rutrum a arcu aliquet, cursus vulputate risus. Quisque hendrerit tortor vel tempor scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec cursus sagittis est vel gravida. Proin lobortis molestie diam non ullamcorper. Donec at viverra lacus. Integer vel nisl a leo blandit tempus. Nullam ac est vestibulum, vehicula tellus et, ullamcorper arcu. Donec pellentesque cursus vulputate. Ut vel nulla et ipsum imperdiet imperdiet. Curabitur eu finibus odio. Suspendisse tellus lacus, mattis et dui eget, ultricies consequat ipsum. Nunc in tortor ligula. + +In augue tellus, euismod sed vehicula in, sagittis sed leo. Nulla consectetur facilisis lacus, bibendum feugiat urna consequat eget. Ut ornare dui bibendum dapibus consectetur. Pellentesque eget congue lacus, a bibendum ligula. Maecenas laoreet lacus nibh, at vestibulum ex laoreet ut. Nunc laoreet urna eu placerat ultrices. Fusce non purus ullamcorper, suscipit odio a, suscipit tortor. + +Nunc elementum urna sit amet ligula viverra, nec vestibulum mauris congue. Pellentesque eget porta diam. Quisque sed varius augue, sed porttitor velit. Praesent nec risus et quam tempor hendrerit. In pulvinar dui et rutrum tempor. Vestibulum eleifend lorem quis ligula pellentesque, sit amet bibendum ipsum fringilla. Sed leo nisl, aliquam eget erat nec, porttitor cursus ante. Aliquam tristique justo ac purus egestas, in blandit erat convallis. Nullam vitae nunc id nulla pharetra convallis volutpat nec ex. + +Pellentesque interdum faucibus est eu pharetra. Cras convallis nulla libero, cursus facilisis nulla imperdiet sed. Ut risus ex, venenatis ut eros iaculis, pellentesque accumsan mi. Nam sollicitudin pulvinar lacus, vel sodales felis fringilla vel. Donec ultricies, elit quis dapibus bibendum, nibh est tristique dui, eget malesuada nulla odio vitae diam. Pellentesque placerat, felis id posuere gravida, lectus velit mollis magna, non interdum odio ex et justo. Donec quam tortor, iaculis ac sem a, dapibus elementum neque. Fusce at nisi sed ante suscipit imperdiet. Duis tempor magna sed suscipit aliquet. Aliquam metus massa, accumsan non nunc sit amet, dapibus consequat tortor. In a iaculis libero, vel ornare orci. Phasellus eget lectus vitae eros vestibulum efficitur. Sed mollis tincidunt ex. Pellentesque tempor quis massa ac efficitur. Curabitur lobortis ante non dolor posuere, vitae posuere ex commodo. + +Integer felis risus, malesuada id arcu sit amet, dignissim elementum sapien. Curabitur porta quis magna quis varius. Curabitur dolor elit, vulputate vitae imperdiet vestibulum, posuere id ante. Ut eget porta elit. Vestibulum posuere feugiat est consectetur ullamcorper. Ut dolor metus, aliquam quis ornare at, vulputate id est. Vestibulum eu sapien ultricies, viverra quam nec, egestas turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean et maximus diam, eget porta justo. Duis ornare magna quam, nec posuere velit blandit sed. Donec elementum euismod scelerisque. Sed cursus ligula in diam gravida placerat. Praesent et mauris quis orci maximus iaculis. Nullam lobortis semper orci, sed fringilla risus tempus at. Nullam at porta nulla. + +Cras in massa eu felis bibendum varius et quis lorem. Nunc interdum velit nulla, sed pulvinar nunc dapibus laoreet. Maecenas nec ex libero. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vitae massa quis sapien tincidunt tincidunt eu in eros. Suspendisse lacus massa, venenatis vitae libero id, sodales eleifend nisi. Fusce quis felis tellus. Sed interdum faucibus ipsum sed fermentum. Nam eget velit neque. Integer iaculis nisl sit amet odio venenatis, eget sollicitudin lorem tempor. Suspendisse accumsan augue tincidunt odio laoreet interdum. Vivamus tristique volutpat elit sit amet suscipit. + +Sed sodales sem dolor, ac porta ipsum consequat tristique. Aenean pharetra ipsum id ipsum scelerisque, a iaculis leo porta. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque elementum risus ac nisi feugiat dapibus. Nunc eget egestas purus. Cras tempor, purus eu maximus imperdiet, lacus ante pharetra ante, nec feugiat nisi massa vitae ante. Cras quam orci, eleifend eget ligula ut, faucibus finibus mauris. Curabitur lacinia ultrices enim, a vulputate elit porta ut. Cras at risus varius urna viverra sodales eu nec ante. Vivamus tortor ante, mollis in mi a, consequat feugiat turpis. Nunc porta felis sed lectus mollis lobortis. Quisque tellus metus, molestie eget lorem ut, efficitur consequat leo. Curabitur bibendum quam id leo sagittis efficitur eu id ipsum. + +Sed semper eros vel justo laoreet euismod. Morbi egestas non eros in euismod. Fusce nec urna nec odio commodo dapibus ut et est. In et turpis pretium, rutrum nunc ac, consectetur justo. Nunc ut nunc consequat, euismod turpis ac, posuere sapien. Quisque dapibus nibh nec urna cursus iaculis. Nunc suscipit ornare ipsum, quis bibendum augue efficitur eget. Vestibulum tincidunt elementum lorem et rutrum. Fusce condimentum metus mi, eu posuere eros lacinia in. Nullam iaculis nibh mauris. Nullam vehicula volutpat posuere. Suspendisse cursus accumsan urna, at posuere felis faucibus et. Donec at velit vitae ex fringilla laoreet nec ac nunc. Phasellus efficitur neque diam, quis rutrum purus rhoncus nec. Aliquam scelerisque mauris eget risus tincidunt vehicula. Nullam faucibus enim eget dolor efficitur mattis. + +Sed dui orci, posuere vitae turpis eu, placerat consequat tellus. In et lacus mattis, placerat ex vitae, posuere urna. Ut pharetra nunc mollis felis blandit, quis congue felis vestibulum. Fusce placerat quis ipsum sed ultricies. Proin pharetra purus in diam tristique maximus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam molestie, risus et tempor luctus, sem nisl vulputate elit, in fringilla diam metus nec ante. + +Sed maximus nibh felis, eget congue sapien porttitor vel. Etiam et dolor rhoncus, sodales est vel, finibus urna. Sed eu tortor finibus, feugiat eros id, consectetur massa. Sed maximus tempus feugiat. Quisque nisl metus, sagittis et dui vel, viverra luctus dui. Etiam orci est, mattis a facilisis eu, rhoncus eget diam. Mauris aliquam scelerisque aliquet. Proin purus est, iaculis vel ullamcorper eu, maximus eget metus. Phasellus quis purus non elit suscipit condimentum ac et risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse sodales mattis mauris, nec hendrerit purus. Duis placerat tortor tellus, et condimentum justo porttitor id. Phasellus malesuada, turpis non scelerisque condimentum, orci libero posuere arcu, in placerat metus tellus at quam. + +Phasellus et erat sem. Aliquam faucibus tristique feugiat. Vivamus eu lacus vel lorem condimentum maximus a vitae ligula. Donec molestie consequat lorem non venenatis. Donec quis nunc orci. Proin sit amet malesuada est, vel aliquam ipsum. Sed posuere risus id posuere aliquet. + +Nam mattis massa a arcu tristique fringilla. Aliquam hendrerit lobortis egestas. Aenean ornare lectus in est blandit luctus. Nam eu ultrices nisl. Nulla efficitur nisi rhoncus lectus blandit, vitae bibendum nisl consequat. Sed ut tempus leo. Nullam vestibulum hendrerit diam, lacinia fringilla est venenatis quis. Nulla eu aliquam tortor, at efficitur neque. Sed facilisis tortor rutrum tortor condimentum, in laoreet mi iaculis. In luctus nec purus pretium tristique. Nulla sodales lectus eget orci egestas congue. Sed id feugiat ligula. Phasellus suscipit id lacus in convallis. + +Pellentesque purus est, sodales sed cursus ut, ullamcorper sit amet neque. Aenean condimentum rhoncus sapien, quis porttitor enim maximus a. Suspendisse ut sagittis nunc. Quisque non justo id turpis pulvinar mollis ut non nunc. Fusce lacus nibh, fringilla ac nulla vitae, posuere gravida ipsum. Nam efficitur, augue in faucibus ornare, urna sem interdum dui, sodales euismod dui sapien et quam. Ut vel urna vitae lacus venenatis gravida non nec urna. Donec a arcu tempor, consequat risus sit amet, tempus urna. In sollicitudin mi commodo velit dapibus blandit. Praesent eleifend enim in nulla porta finibus. + +Nulla facilisi. Praesent ullamcorper nec neque quis pulvinar. Vestibulum molestie interdum nunc, in sollicitudin velit elementum auctor. Suspendisse potenti. Donec ac leo quis arcu ornare pulvinar et accumsan arcu. Nunc bibendum nunc vel blandit posuere. Quisque nec elementum lacus. Pellentesque aliquam auctor dui ac rutrum. Integer ullamcorper lacus ante, in viverra arcu porttitor vel. Aliquam sit amet sem eu sem lacinia blandit. Donec tincidunt congue pharetra. + +In volutpat tempor dolor. Phasellus lorem nibh, luctus non enim sed, iaculis accumsan ipsum. Cras egestas consectetur urna, quis blandit lectus ullamcorper non. Curabitur erat felis, ornare et risus sit amet, blandit sollicitudin purus. Vivamus pretium porttitor varius. Donec et porta nulla. Mauris sed nulla interdum, imperdiet mauris et, dictum odio. Ut ut erat libero. + +Nulla eleifend mauris et efficitur lobortis. Curabitur quis rhoncus mi, non rutrum urna. Quisque hendrerit, risus sed egestas consectetur, neque tortor dapibus eros, sed lacinia felis felis in nisi. Curabitur ut tortor vitae urna aliquam rutrum non id nunc. Duis tempor tellus eget ligula gravida, ac tincidunt magna vulputate. Sed tincidunt quam vitae tortor tempor consequat. Vivamus vulputate diam sed lectus egestas blandit. Cras ex lacus, tempus semper luctus et, porta at quam. Aliquam ac metus libero. Etiam molestie accumsan sapien, quis gravida dolor rhoncus et. Nam in elementum nisi. Nunc dignissim felis sem, sit amet venenatis turpis faucibus a. Nulla lacinia nisl elit, eget pellentesque sem finibus vitae. Aliquam porta commodo nunc, non tincidunt lorem volutpat sit amet. + +Nulla semper enim non pharetra dapibus. Pellentesque hendrerit orci sit amet gravida ullamcorper. Nam elementum ligula vel orci rutrum, in pharetra magna vulputate. Cras quis ipsum nec enim interdum faucibus vel nec magna. Etiam id ante lacinia, venenatis libero at, accumsan est. Aliquam varius at urna et convallis. Phasellus commodo nisi ut mauris molestie, et rhoncus metus dictum. Vivamus venenatis augue ex, sit amet pellentesque odio condimentum at. Quisque id semper lacus. + +Etiam sit amet pharetra augue. Fusce sit amet quam auctor, eleifend risus euismod, malesuada sapien. Donec finibus luctus turpis id porttitor. Maecenas mi diam, rutrum quis mi at, sagittis laoreet nunc. Curabitur consequat vulputate pellentesque. Morbi vel interdum dui. Maecenas lacinia, ante et aliquam bibendum, urna augue vestibulum nisi, vitae feugiat sapien nibh eu eros. Mauris cursus, purus sed cursus commodo, enim tellus semper arcu, quis hendrerit purus lorem quis nibh. Etiam id lobortis felis, sed ultricies libero. Quisque hendrerit ipsum ut aliquet viverra. Quisque eu tempus velit, vel gravida eros. Fusce a massa consequat dolor condimentum dictum quis a neque. + +Morbi malesuada vestibulum feugiat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis dictum suscipit imperdiet. Nulla id diam eu lectus suscipit tincidunt sit amet pulvinar arcu. Aenean pulvinar facilisis nibh nec feugiat. Fusce eu est vitae nunc bibendum cursus. Sed ullamcorper molestie lacus, non feugiat nibh feugiat non. Fusce bibendum felis a arcu bibendum, ac hendrerit eros blandit. Aliquam a quam sit amet sem ornare ullamcorper ut vitae felis. Sed porta, ex non ultrices scelerisque, nisl massa elementum ipsum, nec placerat est justo sit amet augue. Maecenas facilisis nulla aliquet massa tincidunt, eget semper orci pulvinar. + +Phasellus at quam a libero blandit iaculis. Sed sit amet magna in felis mollis sagittis. Nulla vestibulum suscipit commodo. Nullam dictum turpis eu nisi sollicitudin bibendum. Nullam eu ex pretium, eleifend libero tincidunt, placerat augue. Nullam quis porttitor nisl. Suspendisse rhoncus orci et ex maximus euismod. Nunc imperdiet augue maximus, dignissim ipsum et, feugiat sem. Vestibulum in nunc sed libero efficitur dignissim. Morbi vel arcu quis ipsum vehicula faucibus. Quisque scelerisque ligula libero, vitae consequat ex posuere eget. Sed eu nunc cursus, euismod dolor id, mollis tellus. Ut accumsan quis metus in sagittis. Vestibulum consequat lobortis vehicula. Maecenas risus nisi, sodales sit amet diam ut, faucibus mattis libero. + +Nullam quis justo pretium, dapibus purus sit amet, rhoncus magna. Pellentesque eget velit a urna sollicitudin feugiat. Mauris lacus nisl, posuere ut est in, pulvinar tincidunt augue. Nulla in libero sit amet est iaculis commodo. Nulla aliquet vel mi a ultrices. Cras nec varius nisl, non condimentum nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus ut ex a odio cursus dignissim. Mauris a mauris hendrerit, facilisis tellus a, porttitor mi. Vivamus posuere, arcu ac tincidunt pharetra, ante ex eleifend elit, et aliquam ante dui quis ante. Duis ut hendrerit nulla. Sed et consectetur dolor, a elementum felis. Proin elementum ex lacus, interdum convallis tortor laoreet in. Donec tempus condimentum ante, nec blandit orci posuere vitae. Fusce non facilisis erat. + +Ut viverra lorem augue, ut efficitur dolor vehicula volutpat. Aenean eu dapibus elit, sit amet sagittis quam. Ut sed cursus lectus, quis varius mi. Etiam malesuada dignissim eros ut rhoncus. Integer posuere dui nec neque sollicitudin, nec posuere eros luctus. Cras dictum tristique erat et congue. Etiam congue laoreet quam, eget mattis nunc convallis vel. Vestibulum sit amet massa id enim dapibus suscipit. Curabitur eget consectetur neque. Duis non faucibus nibh. + +Nulla nec ipsum lobortis, cursus diam et, placerat erat. Integer id erat ut est ornare iaculis at at odio. Phasellus sed ligula nec purus suscipit maximus volutpat id magna. Integer neque ipsum, lobortis ut risus elementum, commodo iaculis leo. Fusce vel velit diam. Vivamus augue quam, iaculis quis maximus at, cursus id risus. Vestibulum finibus bibendum nunc, eget pulvinar sem placerat eu. Nam convallis non metus sit amet venenatis. Pellentesque rutrum ante iaculis felis dapibus porta. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Fusce ac eleifend metus. Curabitur scelerisque, dui a bibendum vestibulum, augue dolor scelerisque eros, vitae lobortis tellus leo a tellus. + +Maecenas tristique fringilla leo id scelerisque. Phasellus in pharetra neque. Praesent aliquam, est congue gravida condimentum, arcu arcu auctor purus, eu mollis nisi orci sit amet libero. Etiam eget facilisis lorem. Mauris facilisis in sem id dapibus. Ut convallis et mauris a pharetra. Suspendisse pulvinar quam pulvinar lectus mattis, id ultricies nisl faucibus. Quisque mauris quam, pellentesque a urna non, condimentum aliquet dui. Donec arcu nisi, maximus ultricies nibh quis, ultrices consectetur quam. Proin mollis enim non convallis aliquam. Ut quis tempor lectus. Praesent id interdum metus, sit amet iaculis felis. Duis facilisis lorem velit, id viverra nisl fermentum sit amet. + +Pellentesque et dui tincidunt, mattis nibh bibendum, hendrerit justo. Nulla lobortis enim massa, et tempus tortor pharetra eu. Curabitur vitae erat mi. Duis ornare eu magna tincidunt dignissim. Nulla at tortor vel sem auctor luctus. Quisque sollicitudin ullamcorper velit, a tempor metus faucibus et. Donec ante ligula, fermentum vel volutpat id, commodo non metus. Fusce a fermentum libero, a tristique dolor. Donec in bibendum libero. Morbi nec mauris molestie, accumsan turpis nec, scelerisque tellus. + +Pellentesque ligula mi, cursus eget tincidunt quis, iaculis a nulla. Cras sed nisi id lacus gravida facilisis nec ac leo. Sed dictum dolor sit amet nulla porta scelerisque. Vivamus quis semper leo, eget imperdiet est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed tristique tempus placerat. Cras tristique sit amet purus non efficitur. Maecenas a bibendum eros, sit amet pharetra lacus. Maecenas quis dictum purus. + +Curabitur in dolor ut ante iaculis ullamcorper. Vestibulum sed euismod tellus. Sed maximus consectetur velit non congue. Nullam sit amet elit at enim elementum commodo. Praesent venenatis hendrerit ante, eu eleifend neque feugiat pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris eleifend purus sed commodo volutpat. Proin dictum lectus nec justo rutrum scelerisque. Sed ornare, purus quis pharetra lacinia, leo augue rutrum lorem, vitae semper sem justo ac metus. Vivamus pulvinar sit amet dui ut consequat. Duis sit amet libero porttitor dui iaculis malesuada et vitae augue. + +Nunc semper augue in consectetur venenatis. Nulla facilisi. Vivamus sed risus eget lectus aliquet pulvinar ut eget ipsum. Duis justo urna, tempor et vehicula ut, auctor sit amet enim. Vestibulum quis diam quis nibh aliquam blandit sed quis eros. Morbi id dui venenatis, aliquet leo ut, maximus ex. Vestibulum vel quam at arcu suscipit consequat a sit amet velit. Duis et elit tempus, tincidunt arcu eget, accumsan mi. Vivamus maximus sem in turpis maximus iaculis. In gravida vulputate lacinia. Morbi volutpat massa dolor, non finibus leo porta non. Cras porta, dui sed imperdiet pharetra, massa sapien efficitur elit, at imperdiet neque leo ut est. Nunc dictum luctus faucibus. Donec quis bibendum justo, et fringilla orci. Cras interdum, lectus et efficitur viverra, libero elit fringilla metus, at cursus magna nulla vitae nulla. Aliquam lectus dui, malesuada ultricies lobortis posuere, iaculis ac erat. + +Pellentesque elementum risus mauris. Proin lacus purus, congue ac auctor blandit, eleifend id eros. Vestibulum tincidunt sagittis ante, vitae ultricies orci elementum non. Aenean ac vulputate magna. Morbi dignissim quis massa eget condimentum. Aliquam molestie malesuada dolor ac elementum. Quisque facilisis, dolor eu venenatis finibus, augue metus finibus ex, a fringilla mi arcu id sapien. Sed congue vestibulum urna, eget suscipit est tempus at. Nunc pretium aliquam augue, tempor luctus ligula tempus vel. Nam malesuada fermentum diam eget convallis. Donec porttitor eleifend leo dapibus vulputate. Sed gravida luctus ligula, ac vestibulum nisi vulputate eu. Curabitur porta risus massa, aliquet convallis tortor hendrerit eget. Cras iaculis turpis at venenatis lobortis. Pellentesque at nisi ac lacus condimentum tristique et quis magna. Integer eget quam in quam convallis porta sed a magna. + +Aliquam orci ex, feugiat fringilla metus eu, faucibus sodales nisi. Duis euismod scelerisque hendrerit. Ut rutrum suscipit orci vitae efficitur. Curabitur vulputate urna nisl, at consectetur urna pharetra eget. Pellentesque viverra, erat in vulputate fermentum, felis ligula dapibus ligula, quis scelerisque orci sem iaculis neque. Nunc sagittis tincidunt nulla, tempus imperdiet elit scelerisque sed. Proin risus nisi, pharetra in enim vitae, viverra ultrices augue. In eu lacinia massa. Integer tempus elit id laoreet imperdiet. + +Sed dictum lorem eget risus ultrices euismod. Duis imperdiet metus enim, ut vulputate libero ultricies aliquet. Etiam semper, magna ac convallis scelerisque, nisl nulla auctor magna, eget rutrum lorem ligula eu risus. Ut id augue at lorem aliquet ultricies. Cras imperdiet consectetur imperdiet. Nulla facilisi. Quisque vitae ullamcorper ipsum. + +Etiam ac eros porttitor neque tempus tempor in vitae massa. Suspendisse vestibulum, tortor a condimentum egestas, orci turpis cursus magna, vitae suscipit arcu quam non magna. Nam vel turpis a orci maximus ornare eget ac tortor. Curabitur rhoncus est sit amet faucibus sagittis. Nullam quis nisl orci. Maecenas ut pharetra tellus, a condimentum justo. Ut vulputate laoreet ante non suscipit. Cras orci lorem, varius eu quam eget, ullamcorper maximus metus. Duis sit amet justo efficitur, efficitur est et, pharetra nunc. Donec quis ornare erat. Curabitur pretium dapibus libero. Ut lorem diam, ornare in congue nec, tempus ut velit. + +Mauris venenatis vitae velit nec consequat. Cras et ligula feugiat, tincidunt turpis a, imperdiet neque. Suspendisse tempus, dui eget hendrerit tristique, neque enim fermentum augue, ut aliquam odio lacus eu lorem. Morbi fringilla auctor tortor, sit amet hendrerit sapien egestas vitae. Nam dolor lacus, auctor vel sem ut, faucibus tempor magna. Duis sit amet rutrum est, ac tempus nulla. Sed euismod urna et dictum aliquet. Proin hendrerit urna felis, quis lobortis erat accumsan eu. Duis velit neque, hendrerit ornare sem vitae, ultrices condimentum massa. Donec convallis metus turpis, a dictum leo tincidunt nec. Suspendisse eget felis nibh. Integer sollicitudin nunc tempor dolor consequat, nec pretium quam maximus. Maecenas consequat purus sed tortor aliquet, et dictum magna ultricies. Curabitur sollicitudin ipsum leo, eget placerat mauris scelerisque in. Aenean sed lectus pulvinar, lacinia odio et, pretium enim. Nam vestibulum ipsum nec lectus fermentum venenatis. + +In blandit nunc eget arcu condimentum, fermentum posuere orci auctor. Aliquam nec dui sit amet turpis pulvinar feugiat a vitae nibh. Cras vel eros ante. Suspendisse potenti. Nullam ac nisl ante. Vestibulum ullamcorper ultricies justo, feugiat mollis ex lobortis nec. Aliquam consequat arcu nec est semper, in pharetra arcu pretium. Fusce volutpat eros nec maximus scelerisque. + +Nunc bibendum nibh ex, in laoreet tortor varius sed. Maecenas elementum nisl nec turpis laoreet varius. Integer sed egestas augue, nec mollis nulla. Sed non eros ac lectus rutrum aliquam. Vestibulum ac consectetur dolor. Fusce enim nibh, venenatis id est vitae, rutrum gravida nibh. Phasellus id enim nunc. Curabitur tristique mi sit amet vestibulum tempor. Nulla in fringilla velit, quis euismod ex. Nulla facilisi. Sed vulputate nunc nec felis convallis, vel laoreet tortor condimentum. Morbi non mauris in lectus congue molestie non id sem. + +In eu viverra tellus, luctus consectetur nibh. Sed vel quam id arcu pharetra ullamcorper quis sed tellus. Vivamus condimentum, eros eu consequat tristique, massa dui pretium eros, ut finibus est erat id mauris. Nam ut augue quis orci accumsan dignissim eget vel lectus. Morbi vulputate pretium nunc, eu efficitur quam tincidunt vel. Maecenas accumsan euismod bibendum. Nulla facilisi. Duis imperdiet vitae tortor eu sagittis. Sed viverra lobortis nibh. + +Curabitur id tempor nulla. Quisque id scelerisque dui, a tincidunt magna. Mauris interdum purus scelerisque faucibus vehicula. Nam ut rutrum nisl, a pellentesque metus. Quisque eu ultrices eros. Aenean fermentum maximus varius. Vestibulum imperdiet risus mauris, id dictum urna elementum at. In hac habitasse platea dictumst. Curabitur pulvinar, dolor eu auctor vulputate, tellus ipsum faucibus nunc, sed laoreet libero dui quis metus. Vestibulum fringilla elit eu massa porttitor vestibulum. Nullam tincidunt lobortis faucibus. Nunc et nisi diam. Donec at turpis bibendum, lobortis quam rhoncus, blandit ex. Sed in leo metus. + +Maecenas auctor, nisi eu gravida fringilla, magna nisl lobortis enim, malesuada ultricies elit tortor eu lacus. Suspendisse venenatis enim vel nisl condimentum, nec scelerisque nisi malesuada. Mauris pellentesque fermentum nulla, quis fermentum quam molestie vitae. Vestibulum tincidunt nec dui pretium suscipit. Phasellus eu dui eu enim sollicitudin aliquam vel mollis ante. Etiam nec aliquam dolor, at lobortis turpis. Curabitur finibus eget felis sit amet euismod. Nulla sollicitudin, leo dapibus egestas fermentum, nulla odio condimentum est, nec lacinia augue nibh ac tellus. In sagittis mauris sapien, id rhoncus libero pulvinar id. Donec sagittis consequat mauris in scelerisque. Quisque tristique leo scelerisque bibendum sodales. Cras tempor enim ac elit maximus, id scelerisque dui imperdiet. Aenean condimentum a nisi nec egestas. Vestibulum mollis augue a nisl tincidunt pulvinar. Quisque lacinia, est nec accumsan luctus, felis nibh iaculis nisi, id gravida dolor diam a ante. Ut molestie vestibulum eros a laoreet. + +Praesent sed odio sed nisi volutpat consequat ac in massa. Maecenas blandit porta dolor cursus sodales. Sed aliquam nec leo efficitur iaculis. Pellentesque ac tortor in nulla sollicitudin placerat quis quis odio. Duis a egestas lacus. Curabitur ullamcorper, est sit amet porta blandit, quam augue blandit ligula, non faucibus sem erat id neque. Etiam maximus, odio et egestas tristique, purus velit accumsan erat, at semper justo sapien faucibus metus. Praesent sed vestibulum mauris. Duis eu elementum neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur finibus orci in elit vehicula pulvinar. In hac habitasse platea dictumst. Aliquam quis leo eget tellus ultricies ultricies. Nulla facilisi. Morbi pulvinar quam augue, vitae vulputate augue posuere id. + +Sed pulvinar nunc eu purus eleifend semper. Nullam ligula tellus, interdum in risus eget, lacinia imperdiet massa. Mauris quis eros lorem. Maecenas elementum ipsum enim, vel porta lectus pellentesque quis. Fusce molestie eros sagittis sapien interdum venenatis. Sed mi nisi, iaculis vitae gravida a, euismod molestie mauris. Aliquam arcu ipsum, lobortis in ex ut, commodo venenatis eros. + +Aenean hendrerit vestibulum quam quis bibendum. Ut placerat enim et euismod feugiat. Etiam porttitor luctus nisi eget faucibus. Etiam vel lacus sit amet ante eleifend auctor vitae non est. Praesent eget nisi in enim dignissim semper. Vestibulum id vulputate dolor. Aenean id dolor dui. Duis eu imperdiet nulla, a dignissim tellus. Nam pellentesque vel massa quis tristique. Aenean eget consectetur quam. Praesent at sagittis felis, sed sodales nisl. + +Nulla aliquam luctus ipsum, sed condimentum mi consectetur nec. Maecenas non magna eget massa sagittis accumsan. Suspendisse mattis lorem non mi pretium, suscipit pellentesque dui pharetra. Ut et nisl viverra, elementum sem nec, egestas tortor. Proin viverra sapien nec augue tristique ullamcorper. Phasellus pretium diam in lectus ultricies, ac mollis quam imperdiet. Maecenas porta lorem vel mauris dictum, quis vestibulum mauris vulputate. Vestibulum ligula odio, cursus ac fermentum ac, congue vitae felis. + +Curabitur feugiat augue egestas turpis vulputate lacinia. Ut vitae urna ac mauris ultrices tincidunt a vehicula dolor. Vestibulum mattis dui dictum ipsum hendrerit, quis hendrerit arcu eleifend. Vivamus sed sollicitudin purus. Pellentesque commodo porta nibh nec porta. Suspendisse id efficitur odio. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu eleifend orci. Aliquam erat volutpat. Sed sed orci eget ligula porta iaculis non sit amet justo. Fusce ac sodales lectus, et lacinia ligula. Quisque turpis mauris, condimentum at risus id, lacinia viverra ex. Pellentesque imperdiet risus eu nunc egestas faucibus vel non turpis. + +Sed in hendrerit est. Integer consequat risus non eros varius, non tincidunt erat gravida. Proin libero metus, blandit sed cursus quis, sodales nec erat. Cras tortor nisl, mollis lacinia purus et, tincidunt accumsan sem. Sed sodales lacinia condimentum. Quisque sed sollicitudin diam. Phasellus ut odio nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed tempus egestas lorem, sed euismod mi pharetra id. Phasellus tincidunt fringilla ultrices. Praesent viverra massa nibh, eget faucibus massa ullamcorper sit amet. Pellentesque et venenatis libero, quis mollis felis. Vestibulum vitae elit vitae sapien vehicula finibus. Pellentesque volutpat sem ut quam faucibus, vitae vehicula dui suscipit. Aenean porttitor quam a augue egestas, pulvinar pellentesque leo rutrum. + +Sed pellentesque quam est, sit amet efficitur est mattis faucibus. Duis ac molestie lacus. Nunc turpis lectus, ultricies quis tortor nec, lobortis viverra dui. Vivamus lacinia dictum arcu, nec accumsan enim elementum eu. Aenean faucibus, dui et condimentum cursus, libero dolor semper enim, ac semper quam dolor sed eros. Proin cursus risus tellus, ut posuere est lobortis a. Morbi dignissim urna quis hendrerit blandit. + +Sed suscipit augue urna, et pretium libero sollicitudin at. Phasellus eu tincidunt lacus. Nam odio orci, ullamcorper nec magna ut, accumsan ullamcorper libero. Donec efficitur velit augue, non elementum ipsum tincidunt a. Nulla ultrices turpis quis vulputate venenatis. In hac habitasse platea dictumst. Curabitur eleifend non massa at malesuada. Cras interdum, diam et vehicula pretium, odio lectus convallis massa, at dignissim risus ex quis sapien. Sed velit turpis, mollis ut lacus ut, venenatis congue diam. + +Mauris ut auctor nunc. In sollicitudin felis quis consequat imperdiet. Quisque aliquet luctus placerat. Cras eget nisi eget sem porta suscipit tincidunt sed neque. Aliquam sed volutpat enim, sollicitudin efficitur risus. Duis ultricies condimentum justo, sit amet egestas ligula. Aenean molestie eros vel tortor dignissim, sed commodo dui consectetur. + +Nunc viverra ex vel augue efficitur, maximus hendrerit est tincidunt. Nam massa sapien, varius nec convallis a, semper et nisi. Duis vitae feugiat mauris, ut mattis diam. Proin ac lacus accumsan, lacinia ex et, tempus justo. Aenean cursus sed dolor eget pulvinar. Integer nec ante est. Vestibulum est dolor, fringilla ac luctus nec, volutpat vitae elit. Nunc egestas ullamcorper quam, nec aliquam enim auctor quis. Quisque commodo eros et sem ultrices ultrices. Vivamus porta erat mauris. Morbi et mi neque. Praesent varius venenatis nunc id efficitur. Etiam eget arcu lorem. Mauris porttitor nec enim et commodo. Fusce efficitur odio ac tortor congue tempus. + +Aliquam tellus augue, dapibus sed molestie et, mattis sed risus. Sed vel feugiat ligula. Vestibulum vitae eleifend dolor. In hac habitasse platea dictumst. Sed et pulvinar orci. Morbi nec tortor odio. Sed feugiat varius tellus. In feugiat purus a quam viverra malesuada. Sed ac lectus tortor. + +Integer vehicula bibendum eros, et pulvinar ante aliquet ut. Pellentesque quis cursus nisi, sed mollis felis. Quisque consequat ac erat at porta. Sed vitae nisl nisl. Nam viverra consequat ligula, et placerat magna posuere ac. Vivamus pulvinar nisl imperdiet dictum laoreet. Curabitur a sem leo. + +Suspendisse placerat ultricies nisi vitae rutrum. Nulla varius neque sed iaculis molestie. Nam ullamcorper, risus sit amet sagittis efficitur, mauris diam elementum lectus, vitae fringilla arcu nibh molestie nulla. Vestibulum tempus sit amet tortor in egestas. In quis velit ligula. Proin ac lectus a massa varius ultricies quis quis orci. Vivamus hendrerit vel quam in bibendum. Vestibulum congue viverra nisl at mattis. + +Praesent nec sollicitudin nunc. Mauris sed condimentum urna. Nulla iaculis sollicitudin bibendum. Sed non sagittis ante, pellentesque elementum purus. Suspendisse pretium dolor ac quam fermentum semper. Aliquam tempus sit amet leo eget mollis. Mauris ut accumsan tortor. Etiam interdum eleifend auctor. Cras ultricies luctus est, sit amet tincidunt purus molestie eu. Mauris sem ipsum, imperdiet ac blandit in, placerat vel velit. Sed pretium dictum justo, a venenatis massa pellentesque ac. Donec a mauris non eros eleifend viverra. Vivamus eros eros, efficitur semper risus sed, tincidunt pretium nisl. + +Vivamus pretium, justo et lobortis finibus, mi urna blandit justo, vitae sodales orci leo in justo. Maecenas dignissim purus a eleifend sagittis. Nam massa enim, pretium vitae ante quis, ultrices bibendum lacus. Suspendisse fermentum rhoncus nisi et porta. Sed auctor erat sit amet fermentum congue. Fusce a vestibulum metus, quis ultricies dui. Curabitur quis orci suscipit, tempor tellus vel, rutrum ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent pretium arcu vitae lacinia faucibus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vestibulum a magna nec enim elementum egestas. Nulla congue maximus odio, vel euismod metus tempor id. Donec placerat, magna nec pharetra posuere, ex orci malesuada est, et venenatis nulla mi malesuada erat. Nam congue condimentum rhoncus. Morbi massa enim, pellentesque eget tortor et, hendrerit ultricies diam. + +Cras in ante sed sem gravida tincidunt in id justo. Donec pellentesque mollis justo quis egestas. Mauris et orci malesuada, consectetur augue ac, suscipit libero. Pellentesque a purus diam. Aenean ullamcorper lectus id nisi auctor pharetra. Maecenas eleifend eros pretium, varius turpis nec, vulputate libero. Phasellus id rhoncus augue. In interdum felis lectus, nec dictum orci mollis a. Integer ut pellentesque tellus. Pellentesque auctor maximus ligula, ut dapibus sem cursus quis. Nunc sit amet felis arcu. Praesent varius ultrices metus ut consectetur. Nulla id libero congue, imperdiet mi viverra, dapibus nisl. Pellentesque eget neque in neque dignissim pulvinar id quis tortor. Proin ac ullamcorper quam, vestibulum laoreet turpis. + +Cras suscipit vulputate sapien in viverra. Praesent placerat mattis felis. Duis auctor dui diam, sed egestas neque tristique a. Aenean consequat egestas massa, a fringilla elit consectetur eget. Duis erat lacus, semper id accumsan nec, rhoncus et nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque consequat eros lectus, viverra imperdiet magna congue vel. Donec varius felis vitae arcu consectetur, non varius dolor placerat. Morbi et tortor id augue luctus malesuada nec quis nulla. Nullam aliquam pretium ante. Quisque quis lobortis tellus. Etiam at euismod ipsum. Aenean convallis in urna in euismod. Vestibulum euismod, risus quis ullamcorper molestie, sapien lacus condimentum dolor, at ullamcorper tortor sem et justo. + +Aenean vestibulum suscipit facilisis. Praesent et vestibulum risus. Cras in arcu erat. Aliquam nec turpis bibendum, hendrerit eros non, molestie ligula. Donec scelerisque sagittis urna, a vehicula ipsum maximus sit amet. Vestibulum vitae iaculis turpis. Sed ornare ante a mi imperdiet, non consequat ante mollis. Aenean placerat nulla augue, a luctus risus pulvinar ac. Curabitur dignissim varius quam quis sodales. Nunc faucibus lorem a elit scelerisque volutpat. Donec tempor placerat augue, ac aliquet felis blandit a. Maecenas aliquet pretium mattis. Maecenas pretium lectus et nisi venenatis scelerisque. + +Pellentesque eu pellentesque leo. Nam vehicula at sem eget tempor. Mauris vulputate dignissim malesuada. Sed venenatis felis vitae mauris tempor, id sodales sem lacinia. Aenean nibh libero, efficitur at vulputate eu, fermentum in dui. Sed feugiat felis nec diam dictum, quis porta nibh consequat. In condimentum aliquam leo. Mauris fermentum tortor placerat dignissim interdum. Etiam ultricies aliquam aliquet. Duis at libero maximus, ultricies ex a, fermentum diam. Nulla facilisis ex vel pharetra congue. Duis volutpat gravida dui a porttitor. + +Maecenas nec convallis nulla. Aenean tempor elementum erat et sodales. Curabitur ornare sodales consectetur. In congue lorem nisi, vitae tristique leo laoreet in. Nullam euismod felis eget nulla convallis, id pretium odio hendrerit. Nulla mollis fringilla euismod. Nullam eleifend facilisis risus sed tincidunt. Sed venenatis erat ex, ut congue odio laoreet pretium. Proin et porttitor erat, at tempor lorem. Quisque ultrices libero risus, sit amet condimentum turpis rhoncus ut. Sed vel nibh diam. + +Nunc viverra augue a feugiat viverra. Suspendisse gravida cursus neque ac tincidunt. Quisque vitae placerat lacus. Nunc pellentesque felis ac iaculis pellentesque. Quisque finibus turpis quis ipsum maximus ultrices. Nullam ut ultricies massa, non bibendum enim. Pellentesque nec rhoncus tellus. Etiam condimentum sagittis nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse laoreet, mauris ut lacinia mollis, turpis metus volutpat mi, volutpat vestibulum eros nisl sit amet nibh. Donec in congue orci. Praesent elementum rutrum elit nec pharetra. Integer commodo suscipit augue, in bibendum est porttitor et. Nullam ullamcorper ut nisl eu elementum. Curabitur aliquam orci in dolor eleifend rhoncus. + +Morbi sit amet rhoncus nulla, quis interdum nulla. Etiam luctus, est eget rutrum pulvinar, erat est varius eros, vitae venenatis ante quam non elit. Integer non lectus in turpis vehicula aliquet et eu ipsum. Etiam vulputate massa ac urna tempus, mattis lacinia felis vulputate. Quisque commodo, orci sit amet ullamcorper auctor, dolor nibh tristique nulla, eget mollis mauris mi ac ipsum. Donec faucibus nisi id ex viverra lobortis. Sed porta et ante id feugiat. Phasellus mollis, erat quis sollicitudin vestibulum, quam risus dapibus arcu, in scelerisque diam libero tincidunt orci. Integer aliquam, ante ac placerat euismod, libero lacus aliquet lorem, ut viverra risus felis hendrerit est. Cras sollicitudin sem eget nulla iaculis iaculis tristique nec sem. Maecenas accumsan tellus in finibus porttitor. + +Aliquam at mi felis. Pellentesque sollicitudin lorem eget mi lacinia, vitae varius risus vulputate. Sed lobortis augue orci, eget mollis augue volutpat ac. Nulla dignissim ut felis sit amet posuere. Vivamus facilisis tristique diam eu aliquet. Morbi fermentum magna vel consequat egestas. Integer nulla tortor, tristique quis rutrum quis, sodales a dolor. Aenean in finibus nunc. Nulla ornare semper auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean faucibus lacus non pulvinar luctus. Sed semper aliquet lectus venenatis convallis. Mauris luctus libero a metus efficitur fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean a sem arcu. Integer aliquet vestibulum nibh id luctus. + +Quisque pretium est quis risus condimentum rhoncus eget ultricies dolor. Morbi sed mi luctus elit fringilla ultrices ut vitae purus. Maecenas at quam id sapien pulvinar scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse sed ultrices sapien, sit amet tincidunt odio. Suspendisse sed hendrerit massa. Phasellus fermentum ipsum diam, non gravida libero venenatis sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc posuere libero quis efficitur condimentum. Proin vulputate libero massa, et vulputate nisl volutpat malesuada. Morbi eu molestie ipsum. Praesent vulputate magna eget velit suscipit lacinia. + +Sed ultricies, massa at dignissim bibendum, elit diam vestibulum risus, quis tincidunt ipsum diam vel mauris. Nam sed tortor id augue consectetur pulvinar ac non eros. Praesent ac velit id magna elementum tristique volutpat quis mauris. Praesent consectetur elementum dolor at mollis. Vestibulum interdum diam non odio commodo, non sollicitudin dui consectetur. Praesent pharetra finibus arcu, eu tristique magna posuere non. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi faucibus nisl non augue bibendum, id venenatis elit vestibulum. Etiam sed sollicitudin ligula. Suspendisse at ex condimentum, pulvinar neque id, consequat odio. Integer euismod porttitor orci ac commodo. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc augue mi, efficitur non placerat eu, iaculis nec neque. Suspendisse in felis viverra, dictum erat gravida, lobortis tortor. Cras eget elementum enim. Suspendisse potenti. Pellentesque dignissim lorem vel leo sagittis, ut molestie elit tempor. Ut vitae porta nulla. Suspendisse consequat, lorem sit amet ullamcorper vehicula, nulla nisi fermentum nulla, eget interdum leo erat quis lectus. Sed finibus urna urna, vel ultricies urna aliquet non. Sed convallis rutrum mi, vitae mollis diam fringilla pulvinar. + +Praesent eu ultrices nulla. Nunc semper tincidunt magna nec fermentum. Sed posuere lobortis mauris, at bibendum lorem eleifend nec. Donec ut fringilla tellus. Curabitur efficitur, turpis id ultrices semper, risus diam aliquet turpis, vel porta justo tortor non felis. Sed ut mi mollis, sagittis libero sed, mattis est. Quisque et turpis vel diam convallis congue et quis enim. Nam aliquet lorem eu augue convallis sagittis. Sed laoreet quis erat eu semper. Nunc suscipit dui nec elit mollis sodales ac in orci. Sed eu erat sit amet elit tristique ullamcorper quis ut justo. Nullam egestas id nunc ac aliquet. + +Aliquam quis hendrerit est, nec maximus lectus. Curabitur iaculis eget risus at pellentesque. Integer sit amet massa malesuada eros imperdiet placerat. Mauris elit lacus, dictum eget mauris sit amet, condimentum commodo erat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque volutpat velit at elit aliquam porttitor sit amet dictum quam. Fusce vel egestas felis, at blandit dui. Nunc eget massa sit amet dolor venenatis rhoncus. Donec malesuada rutrum eros, eget placerat augue ultrices at. Quisque pretium quam nec pellentesque suscipit. Aliquam placerat justo tortor, ut ornare nisi scelerisque a. Suspendisse vel ultricies elit. Donec luctus laoreet porttitor. Vivamus sit amet eleifend nisl. Donec tincidunt tincidunt lacus, vel ullamcorper urna ultrices a. + +Vivamus bibendum tellus augue, a cursus elit facilisis vitae. Aenean dapibus lorem ac elit placerat, sed blandit lacus molestie. Donec bibendum, tellus ac commodo aliquam, diam nulla molestie mi, at suscipit sapien nisl non elit. Mauris sit amet pulvinar lacus. Ut pulvinar pellentesque semper. Quisque vel luctus tellus, sed tempor diam. Proin porta dui mauris, non accumsan magna iaculis non. Etiam maximus imperdiet molestie. Phasellus luctus sagittis sapien nec malesuada. Etiam nec metus arcu. Vivamus a purus non nisi posuere venenatis. Duis non metus rhoncus velit accumsan fringilla at ut augue. Maecenas nec neque justo. Vestibulum ut fringilla ante, sit amet tempus purus. + +Suspendisse scelerisque tincidunt erat, non molestie erat auctor at. Vivamus ac maximus mi, quis faucibus sem. Suspendisse tincidunt massa eget bibendum convallis. Praesent id viverra quam. Proin tempus ante tincidunt suscipit auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer ac orci sit amet lorem commodo porttitor eget eu ex. Aliquam ultricies sapien et lobortis bibendum. Mauris nec nisi odio. Quisque cursus sagittis turpis nec euismod. Proin rutrum dui non egestas rhoncus. Curabitur congue luctus urna et euismod. Phasellus ac nisl libero. Vestibulum laoreet maximus dolor sed lacinia. Nam vulputate tempor magna non feugiat. + +Nullam vitae orci rhoncus, eleifend odio a, tempus dolor. Quisque nec libero facilisis, aliquam nunc eget, efficitur massa. Vestibulum id est pretium, pharetra urna sit amet, dapibus nunc. Nulla bibendum nisl justo. Praesent vitae iaculis nibh. Aenean lobortis hendrerit lacinia. Vivamus nisl neque, suscipit et pulvinar in, vulputate a quam. Curabitur ullamcorper hendrerit malesuada. Etiam laoreet dolor eu justo vehicula scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc et augue non ante tincidunt condimentum at vel nisl. Proin tempus ante vel ex blandit, ac scelerisque enim lobortis. Suspendisse potenti. Nulla felis erat, blandit in libero ut, blandit mattis leo. + +Phasellus ut lectus neque. Praesent egestas leo in sapien sodales, et aliquam libero iaculis. Quisque ut efficitur tellus, sit amet faucibus nunc. Aenean ac purus convallis, commodo massa at, molestie ex. Donec sollicitudin est quis enim porta, at placerat diam rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean hendrerit, lectus id hendrerit sollicitudin, ante ante euismod arcu, a blandit felis urna eu odio. Ut finibus nibh purus. Sed vestibulum tristique mattis. Fusce sed leo id quam consectetur cursus a ac nisl. Integer fermentum accumsan auctor. Suspendisse in ligula quis augue euismod lobortis. + +Duis gravida lorem at nibh aliquet feugiat et id erat. Mauris vestibulum tortor ac arcu tempor, nec lacinia arcu efficitur. Nunc faucibus fermentum felis. Donec sed lacus sed quam pharetra venenatis nec et tortor. Donec fermentum dolor a nibh accumsan placerat. Phasellus risus sapien, varius vitae viverra non, tincidunt at arcu. Fusce mollis elit quis aliquet egestas. + +Etiam a dolor sit amet elit commodo rhoncus. Morbi sit amet erat semper, cursus magna vel, facilisis sapien. Mauris nec mi non urna aliquam mattis. Fusce placerat varius sodales. Aenean ullamcorper magna a eros eleifend, ut malesuada dui pharetra. Vivamus porttitor consectetur lectus. Aenean nunc quam, semper at libero eget, posuere varius turpis. Phasellus dolor ante, varius in volutpat vel, blandit scelerisque urna. Cras id neque id arcu vehicula venenatis iaculis vel justo. + +Etiam felis diam, lobortis non turpis eu, volutpat hendrerit diam. Pellentesque eu metus accumsan, tempus enim eu, vehicula arcu. Cras vehicula tortor in augue elementum vestibulum. Donec vitae mi dignissim, sagittis ligula quis, rhoncus nibh. Sed scelerisque elementum accumsan. Morbi et quam non erat efficitur elementum quis in lacus. Etiam ut dapibus ex. Nullam suscipit placerat pretium. Aliquam mattis dolor lacus, consectetur accumsan nibh luctus quis. Nullam semper odio sit amet risus imperdiet blandit. + +Fusce non dapibus orci. Fusce feugiat dictum velit, ac venenatis ipsum. Nunc quis arcu massa. Phasellus lobortis vitae neque ut consequat. Donec bibendum ipsum quis lacus ultrices, in commodo lacus laoreet. Nam facilisis nulla quis porttitor interdum. Aliquam eget hendrerit sem, volutpat eleifend enim. Ut commodo justo massa. Nunc varius est efficitur pharetra pellentesque. Nullam convallis tincidunt diam, vel tempus libero gravida non. Donec consequat elit non est ornare, ac vestibulum est tempus. Sed sed rutrum nisi, non posuere nisi. Morbi malesuada semper orci, id venenatis ipsum accumsan imperdiet. + +Fusce sollicitudin nunc in orci malesuada pellentesque. Maecenas interdum finibus sapien. Suspendisse pulvinar semper rhoncus. Praesent ex justo, blandit quis nisi ut, scelerisque porta massa. Praesent vitae massa sed ligula faucibus viverra. In hac habitasse platea dictumst. Phasellus scelerisque lectus tristique, vehicula mauris vitae, egestas turpis. Fusce faucibus hendrerit magna sit amet gravida. Fusce condimentum hendrerit lacus, id ultrices libero aliquam id. Sed ultricies ultrices nisl vel dictum. Duis felis eros, consectetur nec lacus in, vestibulum condimentum metus. Vestibulum nec malesuada massa. Donec maximus mi augue, et eleifend ante auctor id. In cursus tincidunt nibh. + +Curabitur bibendum volutpat felis, ac facilisis elit interdum sagittis. Duis luctus risus massa, ac tincidunt nulla ultrices quis. Phasellus quis nisl efficitur, posuere nulla non, ornare orci. Ut sit amet aliquet dui. Morbi ut ligula ut ex blandit tincidunt eu eu est. Mauris non volutpat urna. Nunc quis congue ex. Cras aliquam pellentesque fermentum. + +Sed eu turpis a eros semper ornare. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut tincidunt justo nec nibh placerat, vitae lacinia nunc tincidunt. Ut malesuada, purus eu tristique bibendum, purus quam convallis magna, in porta eros dui quis massa. Maecenas molestie sem vel urna dignissim ullamcorper. Praesent lobortis porta vestibulum. Ut pharetra iaculis urna, et porta ante maximus non. Pellentesque suscipit luctus libero nec viverra. Sed egestas mi vitae tortor condimentum, sit amet fermentum sem pretium. Etiam neque ipsum, tempor ut vulputate sed, accumsan ut mi. Pellentesque fermentum ultrices augue, quis venenatis massa egestas eu. Mauris blandit posuere fermentum. + +Pellentesque quis tempor ante, at convallis metus. Vestibulum hendrerit, libero eget malesuada sagittis, dolor mi consectetur urna, non malesuada tortor lacus in mauris. Maecenas placerat sem quis eros commodo, nec efficitur nulla varius. Suspendisse interdum, nulla sit amet egestas aliquam, ante tortor porta metus, in condimentum risus purus eget magna. Nulla ultrices eget turpis eu luctus. In imperdiet, mi ornare venenatis sodales, ligula risus porttitor ante, sed fermentum lacus mauris a tortor. Morbi lacinia ornare nunc eget finibus. Fusce a facilisis eros. Quisque vulputate purus sit amet tellus mattis, nec consectetur nibh viverra. + +Maecenas sodales lacinia elit commodo eleifend. Phasellus vitae urna in tellus porttitor rhoncus a ac dui. Integer vel elit eget neque mattis bibendum. Duis ullamcorper risus ut mi iaculis, et scelerisque erat facilisis. Vivamus vestibulum diam vitae urna scelerisque vestibulum. Ut tincidunt velit convallis nisl tempor, a feugiat dui efficitur. Morbi enim mauris, rhoncus et sagittis condimentum, luctus eget augue. Praesent aliquet posuere pharetra. Nullam laoreet pretium sem quis suscipit. Pellentesque vitae hendrerit urna. Praesent eu nibh at elit malesuada suscipit nec quis urna. Phasellus vel massa a urna vulputate suscipit in id diam. + +Pellentesque hendrerit mi a convallis scelerisque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus volutpat eros tellus, eget semper purus aliquet et. Donec sodales mauris ut mi interdum placerat. Donec rutrum elementum porttitor. Praesent ultrices posuere aliquam. Vivamus quis dui auctor, posuere neque quis, placerat sapien. Morbi aliquet leo vitae lacus euismod euismod. Quisque placerat massa et magna sodales euismod. Curabitur lobortis dolor non quam porta scelerisque eget in eros. Praesent gravida eros in est feugiat, ac condimentum libero iaculis. Cras eleifend urna mauris, ac luctus velit consectetur pharetra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis ipsum quam, faucibus ut urna et, porttitor pellentesque velit. Maecenas sit amet lectus hendrerit, gravida turpis vitae, aliquet velit. + +Donec ut accumsan enim, ac finibus erat. Phasellus eleifend tempor orci sit amet fringilla. Donec blandit, est sit amet malesuada fermentum, ex augue rutrum magna, in ultricies mi nulla ac leo. Fusce blandit neque in ipsum blandit, sit amet porttitor velit sodales. Vestibulum suscipit nunc sit amet bibendum vulputate. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet finibus finibus. Quisque tincidunt ac lectus non rhoncus. Sed mi est, porttitor tincidunt porttitor in, rutrum a risus. Curabitur pellentesque quis sem condimentum cursus. Vivamus sed est sollicitudin, mattis orci at, bibendum mauris. Fusce blandit vulputate interdum. Mauris tortor turpis, convallis a diam posuere, blandit imperdiet quam. Maecenas quis dolor sagittis, semper turpis et, malesuada nibh. Suspendisse eget urna non augue porttitor fringilla. Nullam sagittis, nibh at pharetra placerat, leo massa rutrum elit, et placerat erat ex ac ante. + +Donec nec scelerisque augue, sed venenatis orci. Donec eget dictum est. Suspendisse potenti. In hac habitasse platea dictumst. Quisque tempus congue sapien vitae elementum. Maecenas in diam eget nulla pellentesque luctus. Maecenas felis elit, vulputate in ligula ac, luctus aliquam massa. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce fermentum magna a vehicula venenatis. Etiam vitae augue lobortis, volutpat dui a, pharetra dolor. Pellentesque elementum at neque et sollicitudin. Donec ligula massa, lacinia sit amet hendrerit ac, ornare ac nulla. Vivamus vitae iaculis dui. Sed fringilla orci sed massa efficitur accumsan. + +Sed sed dui nibh. Nam ut sapien a nisi bibendum tempor et sollicitudin mauris. Cras dignissim urna non mi pellentesque, at mollis justo gravida. Nulla rhoncus orci ut lacinia sollicitudin. Donec posuere scelerisque egestas. Nam sodales erat consectetur, faucibus ex sed, rutrum eros. Sed condimentum mattis volutpat. Fusce ac dignissim mi. Aliquam non laoreet lectus. Morbi sit amet metus sed velit faucibus maximus a nec odio. Mauris mollis diam nec finibus scelerisque. Proin ac erat elementum, pellentesque lacus vel, porta arcu. Proin tempus ornare mi, vitae sodales elit lobortis aliquam. + +Nulla augue felis, scelerisque non lacinia sed, faucibus vel justo. Aenean a tristique libero, sit amet suscipit ex. Integer venenatis magna sed velit sollicitudin, dictum lobortis felis eleifend. Maecenas malesuada eros eu erat pharetra elementum. Aliquam efficitur odio eget pharetra sagittis. Aliquam arcu lectus, sollicitudin finibus erat hendrerit, posuere laoreet arcu. Donec congue dolor quis massa condimentum, nec semper risus fringilla. Suspendisse potenti. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi sed consequat lacus. Quisque auctor facilisis mauris sit amet porttitor. + +In dui mauris, laoreet a ex id, facilisis lobortis ante. Fusce lectus magna, hendrerit cursus mollis vitae, pellentesque eget elit. Aenean vehicula vel lectus tempus vestibulum. Nunc ut diam a erat facilisis congue at non nibh. Curabitur semper lectus commodo, rutrum arcu eget, aliquam est. Vestibulum non metus maximus, aliquet quam nec, blandit odio. Phasellus dapibus bibendum diam quis rhoncus. Ut at mi elit. Cras condimentum pharetra leo, ut sagittis libero luctus eu. In ultrices enim lacus. In elit urna, porta sit amet tempus eu, mattis at tortor. Vestibulum molestie tincidunt orci, vel finibus eros sodales ut. Vestibulum et sapien suscipit, venenatis ligula et, mollis ex. Sed iaculis malesuada venenatis. + +Aliquam erat volutpat. Donec porttitor vehicula nisi, at dapibus neque. In hac habitasse platea dictumst. Vivamus dignissim sodales tristique. Sed vestibulum mattis blandit. Sed in rhoncus nibh. Fusce feugiat massa risus, non lacinia arcu vestibulum vel. Vivamus nec lorem mollis, auctor risus quis, varius leo. Praesent ac aliquam sem, et vehicula tortor. Nam consequat enim et felis interdum efficitur. Maecenas eget velit eros. Nullam sodales erat vel maximus lobortis. + +Curabitur fringilla quam lectus, ac sodales sapien aliquet at. Nunc porta urna odio, et facilisis ligula eleifend nec. Etiam semper quam erat, quis vulputate odio porttitor quis. Donec et vulputate justo. Mauris ultrices quis tortor sed tincidunt. Cras fringilla gravida nunc, sit amet convallis metus auctor a. Maecenas ut velit quis nibh facilisis pretium sed nec dolor. Curabitur porttitor vel diam eu viverra. + +Ut ornare metus ac viverra ultricies. Vivamus sit amet quam in dui molestie efficitur ac a dui. Aenean eget ante a nisi facilisis semper volutpat eget ipsum. Integer et lorem eu ligula lobortis eleifend molestie non nisi. Maecenas quis tortor sed quam semper porttitor. Quisque laoreet ipsum ut imperdiet ultricies. Nunc consectetur neque sed ex scelerisque molestie. Sed varius, urna sed convallis molestie, libero felis finibus tortor, eget semper magna lorem vel erat. Duis gravida erat tortor. Nullam commodo leo vel nulla lobortis, vel semper nisl euismod. Ut libero mi, convallis sit amet tristique ut, pellentesque nec odio. Etiam convallis tortor volutpat leo facilisis fringilla. Aliquam ultrices arcu eu lobortis tristique. Vestibulum ac nulla massa. Vestibulum varius commodo felis id consequat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + +Duis vitae erat fringilla, rhoncus turpis at, sodales odio. Mauris convallis non velit a varius. Vestibulum porttitor accumsan libero id vulputate. Duis eu lectus aliquet, vulputate enim a, feugiat metus. Proin luctus leo quis nisi iaculis, sit amet pretium turpis sodales. Sed luctus quam ut massa imperdiet scelerisque. Phasellus consequat faucibus dolor, in pellentesque felis. Morbi tortor eros, eleifend at maximus quis, condimentum eu nisl. Suspendisse ullamcorper ut orci sed volutpat. Curabitur eu elementum magna. + +Ut hendrerit, nunc lobortis venenatis pharetra, lorem augue venenatis turpis, in semper risus nulla sed ante. Mauris in dolor ut orci venenatis fringilla. Morbi gravida viverra rhoncus. Nunc a justo dui. Curabitur bibendum mattis risus. Mauris a viverra sem. Nunc id venenatis justo, vel lobortis leo. Proin tempus lobortis orci sit amet eleifend. Maecenas vel volutpat ante. Nulla tristique felis at dui viverra cursus. Aliquam vel erat tristique neque tincidunt scelerisque sed in dui. Vivamus quis mauris id enim molestie eleifend quis a arcu. + +Nulla hendrerit feugiat nisl vel ornare. Curabitur sit amet consectetur diam. Sed feugiat vulputate luctus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum pulvinar libero nunc, nec cursus risus gravida et. In dapibus quam sit amet nisl luctus gravida. Aliquam sit amet posuere orci, imperdiet maximus nibh. Aenean nec tortor ut nunc suscipit vulputate. Proin iaculis vitae mi sit amet eleifend. Pellentesque nec viverra magna, nec pretium leo. Nunc mollis sollicitudin velit. Morbi tortor dolor, aliquam sit amet lacus id, pharetra rhoncus felis. + +Etiam commodo ex augue, eu gravida mi iaculis ut. Sed et suscipit justo. Donec ultricies risus nunc, sit amet volutpat ex tempor ac. Pellentesque eleifend porta varius. Nam pulvinar sem in ultrices sollicitudin. Sed sed sem id metus scelerisque ultricies. Sed a odio vel lectus fermentum ultricies non eu nulla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis ac urna vitae sapien convallis dignissim. + +Aliquam sollicitudin pretium odio, quis viverra nisi mollis eget. Ut rhoncus ante vel porta tincidunt. Nunc mattis, quam quis aliquet mattis, ipsum arcu tempor leo, in interdum sem urna non tellus. Nunc mauris metus, bibendum a varius quis, mattis quis ex. Vestibulum rhoncus augue a nulla fringilla gravida. Quisque diam risus, dignissim id sagittis vel, hendrerit vitae turpis. Praesent est diam, dignissim id volutpat quis, cursus non sem. Mauris eget malesuada nunc. Proin et quam porta, porttitor massa in, faucibus dui. Phasellus in dictum mi, quis dignissim enim. Cras semper ipsum ac condimentum iaculis. + +Aliquam ac tortor eu purus suscipit pulvinar tincidunt ac tellus. Mauris gravida mi eu pretium sollicitudin. Sed convallis ligula nec metus suscipit, id efficitur ligula facilisis. Etiam erat urna, suscipit et posuere ullamcorper, elementum id enim. Nullam tempus sapien sed ex venenatis, et vehicula sapien aliquam. Donec leo dolor, fermentum in metus ultrices, interdum laoreet lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam pretium eu nulla vel pretium. In nec risus elit. Etiam nisl lorem, convallis nec luctus sit amet, lacinia eu tellus. Fusce et vulputate velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Praesent elementum dolor id mattis consequat. + +Praesent libero tellus, interdum quis sollicitudin non, volutpat vitae nulla. Cras nibh quam, sodales in lorem porta, aliquet lacinia nisl. Aenean placerat leo libero, a tempor leo vulputate non. Phasellus iaculis quam quis urna consequat fringilla. Curabitur hendrerit dictum eros, ac elementum orci. Sed dignissim mi nisl. Nunc in risus maximus nibh tincidunt vehicula. Mauris eleifend, purus non interdum volutpat, turpis ligula laoreet ligula, eu fringilla nunc tellus nec sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec eu sollicitudin orci. Donec augue arcu, rhoncus eget imperdiet ut, volutpat et quam. Mauris suscipit est ut diam blandit condimentum. Aliquam bibendum a massa ac cursus. Quisque felis dui, egestas vel tellus at, lobortis dapibus turpis. + +Nam tempus consectetur nunc, et convallis urna ullamcorper a. Vestibulum placerat purus in euismod euismod. Suspendisse eget congue quam, quis placerat tortor. Aliquam erat volutpat. Vestibulum ut nisi vitae lacus ultrices varius eu sodales nulla. Phasellus congue, lacus sit amet sagittis accumsan, enim risus laoreet urna, vitae blandit eros quam sit amet erat. Proin id gravida tortor. Nam in elit nec leo imperdiet elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent interdum leo nunc, quis iaculis ante fermentum vitae. + +Phasellus vehicula egestas turpis, tristique ullamcorper sapien dapibus quis. Maecenas commodo magna in cursus gravida. Praesent vitae dui risus. Nullam eget faucibus odio. Quisque id cursus justo, a pretium magna. Suspendisse lobortis libero eget dapibus laoreet. Ut laoreet, nunc sit amet tincidunt cursus, tortor felis dignissim dolor, a sagittis nisi lacus ac odio. Ut laoreet ut metus eget venenatis. Suspendisse aliquet dignissim risus, a bibendum mi imperdiet sit amet. Proin fermentum libero id finibus euismod. Mauris vulputate massa et velit imperdiet, ut luctus sem feugiat. Nunc vel tellus elementum, lacinia orci quis, lobortis libero. Aenean a iaculis lectus. Donec ut diam eget magna fringilla ultricies in sed justo. Etiam aliquet diam metus, ac ornare massa dapibus nec. Quisque vestibulum nisi et lobortis hendrerit. + +Proin pulvinar vestibulum risus, non iaculis enim suscipit vitae. Duis a odio eget magna egestas scelerisque molestie eget massa. Etiam blandit eget enim et fermentum. In hac habitasse platea dictumst. Donec a nunc nulla. Etiam in elit ante. Proin nunc turpis, semper eget est volutpat, congue volutpat nisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Mauris quis nulla maximus, placerat odio ac, facilisis lectus. Proin et semper purus, eget placerat urna. Nulla ullamcorper enim felis, nec dictum ex blandit sit amet. Vestibulum a ullamcorper diam, id rhoncus dui. Aenean diam lorem, auctor vitae libero vel, commodo imperdiet lectus. Nunc pellentesque purus neque, non pulvinar dui convallis aliquet. Duis euismod dui ut elit fringilla, id consequat neque convallis. + +Cras efficitur cursus sollicitudin. Morbi aliquam nisi magna, in lacinia nunc lobortis ultrices. Nullam suscipit metus at venenatis tincidunt. Sed id sem felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum tempor elit ut enim condimentum ultrices. In hac habitasse platea dictumst. + +Suspendisse tincidunt, sapien quis tempor egestas, augue orci accumsan nisi, in ullamcorper nisi urna nec eros. Etiam placerat, lorem id consequat maximus, ipsum ligula placerat sem, vitae fermentum dolor nibh eget sapien. Donec ornare magna quam, eu aliquet nulla laoreet at. Sed eros sem, aliquam vel quam facilisis, tincidunt mollis nibh. Sed eu sapien non orci fermentum accumsan. Pellentesque fringilla dui ante, nec ultricies augue dignissim et. Quisque luctus venenatis facilisis. Aenean sollicitudin sem id vehicula posuere. Nulla sit amet libero iaculis, semper mi nec, interdum diam. Quisque dui lacus, dictum ut semper non, tristique id risus. Etiam non lacus est. Vivamus maximus laoreet pulvinar. Aenean vel enim nulla. Vestibulum pharetra non magna in hendrerit. Phasellus congue neque at nibh maximus vulputate. + +Donec congue fermentum neque ut suscipit. Duis viverra, turpis pharetra dapibus maximus, ex purus ornare dolor, eu congue est odio ut massa. Donec rhoncus eu urna in molestie. Cras cursus placerat mauris sed scelerisque. Suspendisse sit amet dolor et libero efficitur ullamcorper sit amet eu mi. Cras odio augue, bibendum eget vestibulum ac, rhoncus at augue. Praesent euismod vel augue eget suscipit. Maecenas consequat libero nec erat ultrices tincidunt eu in nisi. + +Ut blandit urna ut lacus varius fermentum. Aliquam ac nunc id neque mollis consectetur. Etiam sapien dolor, dignissim nec dui at, ultricies semper enim. Nunc vitae nunc diam. Aliquam porttitor volutpat dictum. Cras consequat finibus turpis, ac tristique nisl convallis eget. Phasellus interdum nibh ut diam bibendum dictum. Donec nec mi arcu. Sed ac urna a enim ullamcorper molestie. Phasellus porta leo nunc, nec mattis lectus iaculis sed. Duis sit amet metus dui. Aliquam erat volutpat. Donec felis urna, blandit at pulvinar vitae, malesuada at velit. Phasellus vulputate aliquet turpis sit amet sollicitudin. Pellentesque tempus augue purus, et efficitur lectus iaculis eget. Cras ultricies tellus ac nibh hendrerit sodales. + +Maecenas vehicula libero eget eros tincidunt fringilla. Suspendisse sit amet facilisis velit. Aliquam nulla ante, ullamcorper eu eleifend ut, consectetur a ex. Fusce sed elementum mi, sit amet congue urna. Pellentesque tristique malesuada tempor. Aenean egestas faucibus rhoncus. Proin vel eleifend enim. Mauris tristique, orci non scelerisque condimentum, enim neque facilisis lectus, vitae convallis dui dui sed nibh. Fusce finibus tincidunt quam, a fermentum justo. Aenean sed euismod tellus. Suspendisse bibendum elit enim, ac congue sem mattis eu. Nulla vitae blandit nisl. Nullam risus justo, efficitur in dignissim in, lobortis et ante. Cras est magna, ornare vel tempus ac, scelerisque eu dui. + +Nam semper diam in nunc cursus, eget venenatis sem ultrices. Pellentesque placerat dignissim sem, eu ultrices ligula congue nec. Cras posuere id sapien vitae vulputate. Phasellus elementum felis vel ligula lobortis, vitae vulputate nulla elementum. Nullam a sem magna. In lobortis, tellus eget blandit tincidunt, diam lectus tincidunt magna, at semper turpis magna feugiat nunc. In ac sapien in turpis facilisis ultrices id sit amet orci. Vestibulum id maximus mi, id viverra nisi. Etiam ac aliquam ex, id commodo turpis. + +Nunc sagittis pulvinar ipsum, ac semper libero scelerisque vel. Phasellus condimentum euismod justo sed facilisis. Ut eget molestie neque. Maecenas risus sem, mollis finibus urna feugiat, elementum facilisis enim. Nunc ultricies, turpis a scelerisque feugiat, turpis arcu vehicula lorem, quis maximus quam eros et ex. Nunc maximus mi sed velit cursus lacinia. Donec sit amet arcu a sapien hendrerit pharetra. Donec in mollis mauris. Vivamus scelerisque velit eget turpis rutrum, vel condimentum urna mattis. Praesent tempor imperdiet diam, sit amet imperdiet mauris posuere at. Aenean vitae imperdiet urna. Morbi lacinia arcu erat, vel faucibus mauris volutpat in. Mauris consequat mollis tellus ut varius. Quisque pharetra ipsum et nulla sollicitudin, ac scelerisque nisl faucibus. Nunc id iaculis augue. + +Donec sem nunc, hendrerit tincidunt nunc vel, congue consectetur elit. Aenean laoreet lorem ut est tincidunt semper. Cras accumsan iaculis metus a blandit. Maecenas nec laoreet dui. Nunc odio est, vestibulum sed faucibus id, mattis sed ex. Ut tristique placerat molestie. Integer id lacus a magna finibus luctus et dignissim enim. Quisque ac est sit amet purus porta auctor. + +Sed sollicitudin tincidunt odio, eu feugiat tellus facilisis eu. Quisque nec posuere quam, sit amet malesuada purus. Praesent ut dui et turpis varius laoreet eget et nibh. Donec a justo felis. Nulla vitae tellus mauris. Cras vehicula non urna sit amet varius. Vivamus scelerisque iaculis nunc, vestibulum bibendum nulla pulvinar vel. Sed libero metus, luctus nec porta eget, facilisis vitae nisl. Fusce non sagittis sem. Integer et erat vel mi vulputate posuere et vitae arcu. Maecenas fermentum felis vitae ultrices placerat. Fusce in molestie augue, quis varius nibh. Etiam lacinia efficitur tincidunt. In non ante orci. + +Fusce accumsan cursus lobortis. Cras id accumsan magna, quis vulputate enim. Integer feugiat mattis dolor ut sollicitudin. Aliquam scelerisque arcu metus, eget posuere felis sagittis vel. Praesent convallis facilisis sem quis dignissim. Phasellus pharetra diam nec faucibus tempor. Praesent porttitor cursus metus et accumsan. Praesent rhoncus accumsan malesuada. Donec purus nunc, condimentum nec volutpat a, hendrerit vitae risus. Maecenas placerat lobortis urna sed egestas. Pellentesque blandit nunc ante, id viverra magna mattis nec. + +Proin dui sapien, aliquet in dui vitae, condimentum egestas ante. Suspendisse potenti. Etiam ullamcorper rhoncus velit vel gravida. Proin in ante cursus, luctus libero a, vehicula odio. Nullam a efficitur turpis. Duis porttitor lectus ac mauris pulvinar cursus. Etiam non magna nec massa consectetur scelerisque. Nam posuere at nunc sit amet blandit. Cras dui elit, porta non vehicula quis, suscipit ac mauris. Sed fermentum nunc ut augue hendrerit, et mollis elit vestibulum. Nulla pharetra, turpis non euismod auctor, nisl leo commodo dolor, porta sodales ex leo eu nibh. Duis at erat et libero euismod tincidunt eu sit amet lorem. Praesent sem purus, pretium sed est vitae, venenatis elementum nisl. Vestibulum rutrum mattis nisl vitae blandit. Sed efficitur quam id neque finibus pharetra. Praesent in consequat diam. + +In sit amet dignissim ligula. Sed ac enim at metus fringilla tincidunt sit amet vel enim. Sed eleifend augue vitae elit bibendum, non pharetra sapien eleifend. Cras aliquam pharetra ligula id elementum. Vestibulum id velit lectus. Etiam efficitur molestie mollis. Mauris tempus lorem eu pellentesque faucibus. Vestibulum vitae ipsum sed nibh pretium placerat. Sed dapibus facilisis leo, eget vestibulum turpis lacinia pellentesque. Duis venenatis id nibh vel laoreet. Integer quis justo a mauris lobortis consequat sit amet nec diam. Curabitur laoreet feugiat sem, euismod congue eros ultricies sed. Maecenas sit amet rhoncus nunc. Donec orci nisl, finibus in finibus id, interdum tempus nunc. Vestibulum rutrum tortor non libero lobortis laoreet. Aliquam nunc ipsum, eleifend ornare luctus dignissim, volutpat eu elit. + +Nam eget ipsum lobortis, pellentesque eros sit amet, congue felis. Maecenas facilisis blandit ex in malesuada. Pellentesque facilisis sem nec elementum consectetur. Vestibulum velit ligula, mattis sit amet rhoncus vel, congue id quam. Quisque nec lacinia metus. Vivamus consequat convallis nibh sed egestas. In nec mi volutpat, sollicitudin magna in, laoreet nisl. Praesent non accumsan ipsum, in interdum mi. Praesent pellentesque neque non nunc fermentum commodo. + +Proin volutpat tincidunt neque eget luctus. Duis nibh purus, maximus et justo nec, varius aliquet purus. Aliquam luctus diam nec velit rhoncus porttitor in quis diam. Nullam ut pretium neque, vitae feugiat mauris. Sed euismod dictum odio. Nulla gravida neque sed arcu finibus iaculis. Phasellus facilisis enim quis risus accumsan, vitae dapibus justo maximus. Donec eget dictum tortor, vel porttitor nibh. Phasellus fringilla nibh vel mi euismod, vel rhoncus odio rhoncus. In vel porttitor est. Morbi bibendum ligula vitae orci lobortis posuere. + +Maecenas at imperdiet felis. Aenean at massa porta, molestie nibh id, malesuada lacus. Donec accumsan tellus orci, vel posuere ligula porttitor id. In malesuada leo luctus dui consectetur mollis. Nullam non sapien hendrerit, dictum justo id, pulvinar nulla. Fusce porta varius ligula, in sollicitudin leo elementum quis. Aenean sit amet venenatis risus, in fringilla ipsum. Pellentesque mattis gravida pellentesque. Pellentesque id erat at felis posuere hendrerit. Sed id iaculis risus. + +Vestibulum molestie tempus faucibus. Morbi ullamcorper tempor augue, ac ultrices lorem sollicitudin eu. Nam dignissim, quam at pulvinar tincidunt, turpis velit suscipit turpis, sed varius elit diam quis enim. Curabitur imperdiet, massa a lobortis sagittis, lorem augue aliquet nunc, cursus bibendum ante diam ac sapien. Aliquam eget luctus arcu, quis vehicula tellus. Fusce semper eget ligula porta sagittis. Quisque maximus scelerisque porta. Vestibulum consequat quam eget condimentum mollis. Aliquam eget magna elit. Mauris volutpat sem vel tortor mattis consectetur. Etiam consectetur ante nec lacus bibendum, vel vehicula leo mollis. Aenean lacinia tellus id elementum rhoncus. Aliquam ut euismod leo. Sed eros augue, tempus eget urna quis, laoreet tristique tellus. Cras volutpat, orci vitae commodo tempor, mi mauris iaculis turpis, in tempor sapien ipsum non mi. + +Nunc at molestie magna, ut pulvinar risus. Integer vestibulum sapien at felis sollicitudin volutpat. Etiam ac faucibus neque, nec ornare dolor. Nunc et magna ut nunc rhoncus suscipit vel at quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent quis scelerisque augue, tempor finibus sem. Nullam tincidunt eros lorem, vitae maximus enim ornare eget. Ut sed sapien magna. + +Fusce auctor elementum lacinia. Etiam vel lorem elementum, commodo tellus id, auctor augue. Duis eu diam vitae lorem consectetur semper. Curabitur fermentum nibh vitae mi maximus tincidunt at non sem. Integer ac quam condimentum, fringilla ante sed, consectetur sapien. Nunc non convallis magna. Donec luctus porta efficitur. Quisque arcu nibh, convallis mattis sollicitudin nec, bibendum a lectus. + +Nullam lectus tellus, pretium nec mi nec, euismod tempus sem. Donec ut cursus massa. Vestibulum pellentesque magna dictum, bibendum nulla at, ultrices elit. Mauris bibendum condimentum laoreet. Nullam nulla metus, iaculis et eleifend a, auctor quis lectus. In hac habitasse platea dictumst. Quisque ac lectus dictum, scelerisque arcu quis, accumsan massa. Nulla ultricies sem vel metus pretium feugiat. + +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam ornare dolor a neque interdum posuere. Etiam sem mauris, malesuada sit amet sem eu, suscipit maximus elit. Quisque rhoncus ullamcorper felis, vel vestibulum turpis egestas eget. Suspendisse mauris lacus, elementum id suscipit vel, pulvinar id arcu. Mauris odio elit, condimentum a facilisis et, semper ultrices magna. Cras tincidunt tempus pretium. Pellentesque pharetra suscipit convallis. Nam eu massa vel orci placerat tempus. Sed feugiat maximus consequat. Curabitur arcu augue, sodales a purus ut, facilisis feugiat tortor. Integer pretium at sem dictum eleifend. + +Fusce ac turpis risus. Proin ipsum libero, pretium at nibh sit amet, vulputate cursus sapien. In gravida est metus, in rutrum velit lacinia at. Proin at hendrerit turpis. Ut sodales tincidunt dolor, luctus consequat ipsum gravida non. Cras in gravida neque. Nunc vitae sem eu justo ultrices interdum bibendum sit amet neque. + +Morbi id eros vitae diam commodo blandit. Pellentesque efficitur ex vitae nibh fringilla ultrices. Maecenas tristique risus sit amet nibh maximus, ut faucibus odio pharetra. Maecenas luctus ultricies odio a sollicitudin. Fusce sed lorem non ante faucibus faucibus. Nam tristique id tellus quis maximus. Vestibulum diam nunc, aliquam at placerat vitae, facilisis ac libero. Curabitur non ultrices lectus, a dignissim urna. + +Aenean nec sem congue, condimentum lacus ac, gravida sapien. Integer euismod sagittis quam, id sagittis lorem commodo ut. Ut vehicula turpis quis tortor sagittis, et venenatis neque ultricies. Aliquam eu sem dui. Quisque vehicula, nulla nec sollicitudin pulvinar, sapien dui condimentum enim, vel dignissim nunc risus sit amet ante. Quisque in neque feugiat, mollis lacus dignissim, lobortis nibh. Duis efficitur posuere molestie. + +Vestibulum dignissim neque nibh, quis faucibus mi tristique non. Integer auctor arcu eu dolor iaculis, ut congue augue consectetur. Nulla hendrerit nibh mauris, eu varius sem ornare et. Pellentesque sagittis aliquet orci, ac hendrerit magna feugiat et. Ut egestas enim eget orci tempus posuere. Pellentesque imperdiet justo ac nulla facilisis semper. Integer malesuada vestibulum sapien et viverra. Donec ut facilisis nibh. Sed at tempor arcu, aliquet bibendum augue. Duis sit amet egestas quam. + +Nulla aliquam nunc tortor, lobortis semper erat varius aliquam. Integer tempus faucibus dolor vitae tristique. Praesent dignissim ac urna non mattis. Sed porttitor maximus auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed luctus sodales tristique. In ac euismod nisi, egestas suscipit tortor. Curabitur finibus placerat dui, vitae malesuada est luctus id. + +Praesent sit amet justo sit amet leo feugiat auctor. Vestibulum ullamcorper arcu at nisl dictum tincidunt. Maecenas non arcu blandit velit ultricies tempor ut vel tortor. Suspendisse vehicula augue quis orci pulvinar, vitae sagittis diam venenatis. Pellentesque convallis justo non libero posuere, non posuere massa convallis. Sed porttitor non enim aliquam venenatis. Quisque ipsum ligula, aliquam vel consequat sit amet, fermentum at augue. Maecenas nec lectus id purus dignissim eleifend. Maecenas accumsan risus urna, vitae volutpat nulla viverra a. Vivamus ac hendrerit eros, egestas pretium odio. Pellentesque nec enim vel dui mattis sagittis vitae a turpis. Quisque varius porttitor urna vel porttitor. + +Donec in nunc tristique, lobortis ex aliquam, viverra arcu. Pellentesque placerat leo interdum, lacinia nisl ut, dapibus ipsum. Praesent feugiat metus vel augue condimentum consectetur. Nullam accumsan luctus eros, eget sollicitudin libero molestie at. Quisque sapien erat, porta nec est eget, bibendum condimentum erat. Sed fringilla a metus nec suscipit. Morbi ac ex porta, tristique ex et, tristique erat. Mauris condimentum, augue et mattis commodo, nisl justo fermentum massa, eu rutrum risus lorem non elit. Suspendisse fringilla ornare interdum. + +Pellentesque vitae velit non mauris vehicula tincidunt eu ac nulla. Donec nec vestibulum neque. Etiam id arcu nec est placerat blandit ac vel lorem. Pellentesque consectetur nunc eget nunc pharetra, eu commodo urna malesuada. Nunc lacinia efficitur luctus. Curabitur scelerisque tortor sit amet lectus faucibus fringilla. Proin molestie lorem ac facilisis consectetur. Cras auctor dui ut erat vestibulum, ut pretium sem gravida. Ut et ullamcorper orci, nec sagittis sem. Cras fermentum convallis ante, id vestibulum erat mollis non. Aenean at fringilla arcu. Duis congue metus at purus mattis euismod. Nam luctus volutpat justo. Nunc vehicula pellentesque orci eget laoreet. Cras dictum nulla in ligula placerat interdum. Donec condimentum massa aliquet iaculis facilisis. + +Sed gravida libero a neque efficitur, rutrum varius est tristique. Maecenas feugiat elit neque, sit amet feugiat velit tempus id. Donec ut volutpat turpis. Sed maximus mauris lacus, eu finibus turpis scelerisque sit amet. Fusce molestie volutpat lorem vitae viverra. In hac habitasse platea dictumst. Phasellus lobortis purus quis metus faucibus iaculis. Morbi non mi metus. Sed ut finibus erat. Nulla a porta sapien, a hendrerit elit. Donec a cursus tellus. Proin efficitur ante tellus, vitae viverra elit sodales ut. Integer ac molestie tortor. Pellentesque vulputate aliquet imperdiet. + +Ut efficitur justo aliquam molestie blandit. Ut posuere lectus auctor, euismod lorem id, laoreet justo. Aliquam convallis, risus sit amet rutrum hendrerit, urna velit lacinia lacus, in varius metus nunc vel orci. Cras suscipit, neque et sollicitudin gravida, lorem elit gravida eros, a dapibus ligula odio vitae nisi. Etiam ac tortor orci. Fusce sagittis non quam eu posuere. In pretium ullamcorper justo id aliquam. In condimentum, dolor quis gravida iaculis, enim ante pharetra tortor, bibendum ullamcorper magna dolor at erat. Morbi et nunc egestas, blandit ante vel, bibendum nunc. Morbi tincidunt lorem urna. Nunc tristique quam leo, sit amet congue arcu sodales nec. + +Ut porttitor venenatis varius. Donec vitae justo dui. Vestibulum eget metus interdum, congue nunc interdum, bibendum diam. Sed at nibh libero. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hac habitasse platea dictumst. Nulla dolor lacus, convallis non vulputate a, consequat a orci. Aliquam sodales massa orci, id congue eros dapibus vel. Suspendisse massa lacus, convallis nec cursus quis, congue a elit. Praesent convallis, neque a imperdiet bibendum, velit neque molestie orci, sed faucibus diam libero ac nisi. Etiam tempus finibus orci lacinia faucibus. Ut semper venenatis justo, in tempus libero luctus et. Duis dictum mattis metus. Aliquam malesuada elementum pharetra. + +Sed non sapien mollis, bibendum neque pellentesque, tincidunt ipsum. Etiam libero lectus, tincidunt sed sodales vel, hendrerit nec mi. Nulla fermentum, mi sit amet dapibus laoreet, arcu neque mollis purus, quis dictum lorem mauris ut arcu. Vestibulum varius fermentum euismod. Nunc ut lobortis purus. Nunc eu nibh euismod mi venenatis rhoncus sit amet et quam. Maecenas iaculis nisi felis, sit amet cursus justo gravida ut. Suspendisse fringilla turpis non lobortis fermentum. Integer vehicula augue in blandit cursus. Aliquam erat volutpat. Donec finibus pharetra mauris. In pulvinar imperdiet tincidunt. + +Sed maximus tincidunt lacinia. Praesent a mauris sed nibh accumsan congue. Etiam vel nisi sit amet eros vehicula posuere. Sed hendrerit semper massa, sit amet lacinia purus finibus nec. Morbi a dui ullamcorper, euismod dolor scelerisque, vehicula lectus. Integer auctor vestibulum ligula, a pharetra turpis posuere at. Nunc consectetur sem nisi, vitae lobortis risus ornare sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec pharetra diam a nisl bibendum sagittis. + +Quisque commodo rutrum tempor. Fusce at augue metus. Pellentesque dapibus placerat est eget lobortis. Sed porttitor vel libero eget hendrerit. Sed posuere libero nulla, in commodo urna egestas quis. Nam nec odio tristique sem rhoncus porttitor. Nullam eget nisl elit. Donec justo magna, ullamcorper eu quam ut, bibendum laoreet sapien. Integer euismod euismod metus, quis interdum ipsum vulputate et. Praesent volutpat risus leo, vel faucibus sem auctor quis. Mauris venenatis urna ac odio sagittis congue. Nulla iaculis sagittis mauris vel maximus. Praesent luctus velit ligula, vel luctus velit vehicula nec. Curabitur et condimentum nisl, in accumsan sapien. + +Curabitur et eros tempor, tempus mauris quis, feugiat mauris. Morbi quis ligula malesuada, sollicitudin est at, pellentesque nunc. Sed nisi quam, dapibus a porttitor quis, venenatis quis diam. Aenean sed bibendum urna. Curabitur eget dolor ante. Aliquam sit amet consequat odio, non convallis magna. Cras gravida lorem et felis efficitur, sit amet viverra ligula suscipit. + +Vestibulum consectetur lobortis arcu. Aliquam efficitur nunc quis est laoreet, et efficitur erat porta. Vivamus molestie nunc eu arcu porttitor venenatis. Duis non consectetur nulla. Nunc felis leo, accumsan ac neque a, commodo cursus massa. Quisque pretium vestibulum justo in aliquam. Aliquam erat volutpat. Duis molestie lorem eget mauris tempus, efficitur elementum velit tincidunt. Donec ultrices placerat felis. Integer sed ultrices nunc. Sed fermentum lorem vitae felis commodo, vitae posuere felis commodo. Fusce eu suscipit metus, ac imperdiet tortor. Nunc a ligula sodales, tincidunt justo ut, ultrices ante. Nam non enim sodales, maximus felis in, ullamcorper nulla. + +Pellentesque maximus vulputate convallis. Maecenas blandit viverra urna in efficitur. Mauris pellentesque sollicitudin turpis, eu ornare lectus finibus sit amet. Praesent in hendrerit mi, tincidunt tincidunt ante. Ut orci mi, tempor in rhoncus sed, ornare maximus ligula. Nulla volutpat lectus elementum ligula sodales vehicula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla risus velit, sodales eu varius non, laoreet sed nunc. In placerat aliquam erat, et commodo nisi hendrerit ut. Aenean auctor blandit urna, eget semper justo condimentum id. Suspendisse potenti. + +Donec tincidunt orci sit amet turpis vestibulum, nec gravida diam consectetur. Ut pretium ante molestie, euismod libero et, luctus ex. Mauris ornare accumsan tincidunt. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Quisque pulvinar tincidunt purus quis dignissim. Aenean neque quam, luctus ultricies magna sed, dapibus imperdiet velit. Fusce faucibus blandit eros, ut convallis massa molestie ut. Nullam ultricies tellus pharetra neque posuere, vitae luctus massa sollicitudin. Pellentesque a turpis a nibh dignissim feugiat. Ut et tellus condimentum, congue lectus vel, eleifend eros. Pellentesque a justo at ipsum vehicula hendrerit. Nunc eget sem libero. Proin sodales nibh eget lectus cursus accumsan. + +Pellentesque rutrum pulvinar sapien, pellentesque semper metus cursus non. Phasellus sed sem vel enim mollis pretium. Mauris sodales nisl eget ullamcorper dapibus. Curabitur lacinia quam non nisi maximus tempor. Vivamus pharetra velit eu leo congue, nec commodo nulla pharetra. Phasellus eu nunc ipsum. Fusce viverra tincidunt ligula, non vestibulum elit feugiat in. Duis auctor quam nec pretium elementum. Morbi a augue massa. + +Pellentesque id hendrerit metus. Sed rhoncus dapibus lectus, ut interdum sem efficitur at. Sed vehicula aliquam hendrerit. Fusce eget sapien felis. Etiam ac tempus eros. Etiam nec orci euismod, varius ex sed, ullamcorper neque. Aenean dictum malesuada sem, sit amet ultrices augue sagittis ac. Proin eget nibh ac nunc consequat euismod. Etiam suscipit est in odio dignissim, suscipit iaculis dui varius. Proin hendrerit eget velit sit amet porttitor. Sed vel lacus est. Nullam at justo eget odio venenatis efficitur nec et lectus. Mauris nec lacinia magna, vel rutrum lectus. Donec tincidunt, lacus ac fringilla cursus, odio velit facilisis ligula, nec cursus orci dui at nibh. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at lectus tempor mauris efficitur semper ac eu dui. Ut interdum eget est bibendum faucibus. Donec et leo sed est porttitor blandit. Suspendisse elit odio, consequat sed scelerisque non, lacinia ac dui. Etiam imperdiet interdum nulla. Curabitur risus metus, malesuada quis congue in, sollicitudin at orci. Mauris sit amet tempus justo, ut scelerisque nunc. Donec et efficitur est. Donec a magna et eros scelerisque facilisis. Praesent hendrerit convallis turpis ut viverra. Curabitur ut nibh non quam interdum interdum. Quisque eget sapien vitae orci malesuada fermentum. Vestibulum nec nisi sit amet purus ullamcorper sagittis. Aliquam mattis, ligula non posuere mollis, velit dui lobortis ante, consequat porta mauris nisi in massa. + +Donec euismod quis augue quis consectetur. Pellentesque sit amet varius velit, et auctor nisl. Ut fringilla augue id mauris consectetur auctor. Nulla sit amet turpis hendrerit diam gravida rhoncus. Praesent ipsum velit, scelerisque at maximus sit amet, tincidunt et ligula. Donec cursus scelerisque dictum. Ut elementum sem finibus elementum auctor. Donec vitae sem vestibulum, vehicula enim at, pellentesque dui. Fusce vestibulum, nibh vel viverra pulvinar, nunc velit auctor dolor, vel placerat sapien neque ut massa. Donec nisi nisl, lacinia vel tortor eu, maximus lobortis sem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent sed ultricies odio. Duis eu congue mi, nec rhoncus elit. Vestibulum nunc lorem, eleifend a porttitor sit amet, pretium finibus sapien. + +Nulla nec est porta, sagittis urna eu, finibus nisl. Curabitur dignissim iaculis dolor in molestie. Vestibulum molestie neque sem, sit amet malesuada urna accumsan sit amet. Mauris dictum euismod sagittis. Donec ac purus id eros dictum varius imperdiet nec mi. Nam semper, odio quis mattis eleifend, turpis velit suscipit ex, vel pulvinar sapien libero id ex. Donec vitae tellus et orci pulvinar interdum. Sed eget nisi id eros dictum ultricies ut vel enim. In venenatis mauris arcu. Sed tincidunt nisl purus, id placerat ante pellentesque sed. Pellentesque vel arcu molestie, posuere sapien nec, volutpat quam. Nulla at odio pellentesque, finibus augue ut, blandit ipsum. Fusce venenatis augue eget fermentum venenatis. + +Nulla sollicitudin scelerisque nisl, luctus lacinia enim vehicula sed. Nunc luctus turpis sed euismod condimentum. Pellentesque scelerisque, sapien at eleifend viverra, ante justo porta nisi, non rhoncus ante nibh et justo. Cras mattis ante a est luctus, vel tincidunt risus finibus. In urna dui, accumsan non orci sit amet, aliquet porta quam. Vestibulum et est eu est varius finibus. Suspendisse potenti. Sed sapien felis, tincidunt et erat ut, luctus elementum diam. Donec tincidunt ultrices porttitor. + +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed luctus lobortis nibh eu fringilla. Cras vitae pellentesque enim. Proin sed lorem et sapien congue placerat quis quis lectus. Duis purus nulla, malesuada at lectus non, consectetur convallis ante. Aenean faucibus odio sit amet risus pretium lacinia. Morbi mollis, nisi quis tristique porttitor, nisi tellus ultrices risus, nec pellentesque mauris dolor vel lorem. In tristique nunc eget metus accumsan, sed sagittis velit varius. Vivamus sit amet sapien ultrices, pretium neque vel, hendrerit nisi. Proin ut ligula id quam laoreet consequat vitae sit amet quam. Aliquam non lacus velit. Duis sed suscipit sapien. Pellentesque non justo in nibh consectetur aliquet. Nulla facilisi. Nunc sollicitudin nisi vulputate ultricies vestibulum. Aliquam aliquam posuere nulla. + +Nam consectetur nibh ut purus euismod dictum. Donec dolor ante, ultricies in est ullamcorper, consectetur suscipit erat. Pellentesque nec porta mauris. Cras tempor mattis libero ut vehicula. Morbi suscipit porttitor velit, nec dictum diam commodo et. Morbi porttitor elementum hendrerit. Nullam in lorem egestas, faucibus libero malesuada, viverra diam. Mauris luctus massa eget massa dapibus mattis non ac augue. Nulla sollicitudin, lectus non congue ornare, felis ligula congue mauris, id convallis ligula arcu a mauris. Proin sit amet mi a nibh molestie tincidunt. Praesent gravida nunc sit amet eros posuere pulvinar. Phasellus ut placerat mauris. Praesent id venenatis turpis. + +Nam eu leo mi. Mauris elementum orci ac nunc aliquam, nec luctus nisi convallis. In hac habitasse platea dictumst. Aenean vitae orci massa. Donec lacus nulla, ultrices ut porttitor ut, blandit id ex. Nullam auctor odio vitae enim dictum convallis. Aenean in pretium felis, laoreet mollis lacus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec malesuada egestas tortor non accumsan. Mauris tempor enim rhoncus, pulvinar dolor eget, semper est. Nullam laoreet vitae dui a euismod. Praesent cursus varius arcu, sit amet ultrices urna vehicula at. Donec vestibulum, lorem vel ultrices commodo, ligula erat dapibus mauris, vel tincidunt lacus erat eu enim. + +Integer ut neque sed lacus rhoncus scelerisque vel in neque. Nunc non odio dictum quam fermentum fermentum porta ut erat. Suspendisse egestas sit amet ex eu cursus. Pellentesque pretium massa non congue tempus. Sed ac faucibus quam. Aenean eu dui aliquam, consequat eros quis, cursus eros. Morbi venenatis blandit ante ac imperdiet. Aliquam a massa nec felis ultrices maximus laoreet et nulla. In sed massa vitae dui malesuada commodo sit amet a sem. Donec ac nibh diam. Sed rhoncus laoreet orci, at sodales tellus consectetur quis. + +Nulla egestas urna sed mollis hendrerit. Quisque eget odio sit amet arcu semper aliquet vitae non mi. Nullam nulla libero, interdum efficitur elit scelerisque, bibendum condimentum neque. Sed laoreet pretium massa, nec pretium diam lacinia eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer congue non elit eu dignissim. Vivamus volutpat ante et tortor mollis finibus. Donec sollicitudin ex eget dignissim tempor. Ut et nibh turpis. Vestibulum ut est purus. Donec posuere aliquet magna sit amet faucibus. Praesent feugiat augue nisl, at congue sapien feugiat at. Morbi luctus dignissim viverra. Nulla ultrices odio at tempus vehicula. Cras nec fringilla tellus. Donec faucibus nisi luctus urna imperdiet volutpat. + +Vivamus lacus turpis, iaculis sed molestie vel, dignissim nec metus. Nullam ut ullamcorper nisl, sed bibendum urna. Nam et viverra arcu, nec volutpat diam. Nullam auctor dapibus aliquam. In lobortis, felis vel laoreet viverra, dolor mi auctor libero, ac mattis leo nibh lacinia orci. Mauris efficitur, tortor vel volutpat ultrices, dolor libero iaculis justo, id rutrum est diam quis arcu. Sed quis ipsum placerat, ultricies erat ac, faucibus turpis. + +Proin a consectetur ante. Donec ultricies nunc in tortor mollis blandit. Cras arcu libero, ultrices accumsan sollicitudin ut, porta vel risus. Donec id mauris purus. Nam dictum urna non neque faucibus tincidunt. Fusce faucibus libero et sapien condimentum, ac gravida tortor tempor. Morbi sit amet tellus malesuada, iaculis diam sit amet, facilisis leo. Nunc finibus tellus risus, id faucibus dui condimentum at. In lobortis leo at vulputate laoreet. Donec id blandit libero, bibendum fringilla nisl. Sed pharetra eros quis leo efficitur imperdiet. Nulla aliquam purus libero, at accumsan libero dignissim non. + +Phasellus lorem arcu, gravida sed ante ut, dapibus tincidunt mauris. Nunc imperdiet vehicula ligula. Aliquam erat volutpat. Vestibulum neque justo, rutrum a arcu aliquet, cursus vulputate risus. Quisque hendrerit tortor vel tempor scelerisque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec cursus sagittis est vel gravida. Proin lobortis molestie diam non ullamcorper. Donec at viverra lacus. Integer vel nisl a leo blandit tempus. Nullam ac est vestibulum, vehicula tellus et, ullamcorper arcu. Donec pellentesque cursus vulputate. Ut vel nulla et ipsum imperdiet imperdiet. Curabitur eu finibus odio. Suspendisse tellus lacus, mattis et dui eget, ultricies consequat ipsum. Nunc in tortor ligula. + +In augue tellus, euismod sed vehicula in, sagittis sed leo. Nulla consectetur facilisis lacus, bibendum feugiat urna consequat eget. Ut ornare dui bibendum dapibus consectetur. Pellentesque eget congue lacus, a bibendum ligula. Maecenas laoreet lacus nibh, at vestibulum ex laoreet ut. Nunc laoreet urna eu placerat ultrices. Fusce non purus ullamcorper, suscipit odio a, suscipit tortor. + +Nunc elementum urna sit amet ligula viverra, nec vestibulum mauris congue. Pellentesque eget porta diam. Quisque sed varius augue, sed porttitor velit. Praesent nec risus et quam tempor hendrerit. In pulvinar dui et rutrum tempor. Vestibulum eleifend lorem quis ligula pellentesque, sit amet bibendum ipsum fringilla. Sed leo nisl, aliquam eget erat nec, porttitor cursus ante. Aliquam tristique justo ac purus egestas, in blandit erat convallis. Nullam vitae nunc id nulla pharetra convallis volutpat nec ex. + +Pellentesque interdum faucibus est eu pharetra. Cras convallis nulla libero, cursus facilisis nulla imperdiet sed. Ut risus ex, venenatis ut eros iaculis, pellentesque accumsan mi. Nam sollicitudin pulvinar lacus, vel sodales felis fringilla vel. Donec ultricies, elit quis dapibus bibendum, nibh est tristique dui, eget malesuada nulla odio vitae diam. Pellentesque placerat, felis id posuere gravida, lectus velit mollis magna, non interdum odio ex et justo. Donec quam tortor, iaculis ac sem a, dapibus elementum neque. Fusce at nisi sed ante suscipit imperdiet. Duis tempor magna sed suscipit aliquet. Aliquam metus massa, accumsan non nunc sit amet, dapibus consequat tortor. In a iaculis libero, vel ornare orci. Phasellus eget lectus vitae eros vestibulum efficitur. Sed mollis tincidunt ex. Pellentesque tempor quis massa ac efficitur. Curabitur lobortis ante non dolor posuere, vitae posuere ex commodo. + +Integer felis risus, malesuada id arcu sit amet, dignissim elementum sapien. Curabitur porta quis magna quis varius. Curabitur dolor elit, vulputate vitae imperdiet vestibulum, posuere id ante. Ut eget porta elit. Vestibulum posuere feugiat est consectetur ullamcorper. Ut dolor metus, aliquam quis ornare at, vulputate id est. Vestibulum eu sapien ultricies, viverra quam nec, egestas turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean et maximus diam, eget porta justo. Duis ornare magna quam, nec posuere velit blandit sed. Donec elementum euismod scelerisque. Sed cursus ligula in diam gravida placerat. Praesent et mauris quis orci maximus iaculis. Nullam lobortis semper orci, sed fringilla risus tempus at. Nullam at porta nulla. + +Cras in massa eu felis bibendum varius et quis lorem. Nunc interdum velit nulla, sed pulvinar nunc dapibus laoreet. Maecenas nec ex libero. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vitae massa quis sapien tincidunt tincidunt eu in eros. Suspendisse lacus massa, venenatis vitae libero id, sodales eleifend nisi. Fusce quis felis tellus. Sed interdum faucibus ipsum sed fermentum. Nam eget velit neque. Integer iaculis nisl sit amet odio venenatis, eget sollicitudin lorem tempor. Suspendisse accumsan augue tincidunt odio laoreet interdum. Vivamus tristique volutpat elit sit amet suscipit. + +Sed sodales sem dolor, ac porta ipsum consequat tristique. Aenean pharetra ipsum id ipsum scelerisque, a iaculis leo porta. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque elementum risus ac nisi feugiat dapibus. Nunc eget egestas purus. Cras tempor, purus eu maximus imperdiet, lacus ante pharetra ante, nec feugiat nisi massa vitae ante. Cras quam orci, eleifend eget ligula ut, faucibus finibus mauris. Curabitur lacinia ultrices enim, a vulputate elit porta ut. Cras at risus varius urna viverra sodales eu nec ante. Vivamus tortor ante, mollis in mi a, consequat feugiat turpis. Nunc porta felis sed lectus mollis lobortis. Quisque tellus metus, molestie eget lorem ut, efficitur consequat leo. Curabitur bibendum quam id leo sagittis efficitur eu id ipsum. + +Sed semper eros vel justo laoreet euismod. Morbi egestas non eros in euismod. Fusce nec urna nec odio commodo dapibus ut et est. In et turpis pretium, rutrum nunc ac, consectetur justo. Nunc ut nunc consequat, euismod turpis ac, posuere sapien. Quisque dapibus nibh nec urna cursus iaculis. Nunc suscipit ornare ipsum, quis bibendum augue efficitur eget. Vestibulum tincidunt elementum lorem et rutrum. Fusce condimentum metus mi, eu posuere eros lacinia in. Nullam iaculis nibh mauris. Nullam vehicula volutpat posuere. Suspendisse cursus accumsan urna, at posuere felis faucibus et. Donec at velit vitae ex fringilla laoreet nec ac nunc. Phasellus efficitur neque diam, quis rutrum purus rhoncus nec. Aliquam scelerisque mauris eget risus tincidunt vehicula. Nullam faucibus enim eget dolor efficitur mattis. + +Sed dui orci, posuere vitae turpis eu, placerat consequat tellus. In et lacus mattis, placerat ex vitae, posuere urna. Ut pharetra nunc mollis felis blandit, quis congue felis vestibulum. Fusce placerat quis ipsum sed ultricies. Proin pharetra purus in diam tristique maximus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam molestie, risus et tempor luctus, sem nisl vulputate elit, in fringilla diam metus nec ante. + +Sed maximus nibh felis, eget congue sapien porttitor vel. Etiam et dolor rhoncus, sodales est vel, finibus urna. Sed eu tortor finibus, feugiat eros id, consectetur massa. Sed maximus tempus feugiat. Quisque nisl metus, sagittis et dui vel, viverra luctus dui. Etiam orci est, mattis a facilisis eu, rhoncus eget diam. Mauris aliquam scelerisque aliquet. Proin purus est, iaculis vel ullamcorper eu, maximus eget metus. Phasellus quis purus non elit suscipit condimentum ac et risus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse sodales mattis mauris, nec hendrerit purus. Duis placerat tortor tellus, et condimentum justo porttitor id. Phasellus malesuada, turpis non scelerisque condimentum, orci libero posuere arcu, in placerat metus tellus at quam. + +Phasellus et erat sem. Aliquam faucibus tristique feugiat. Vivamus eu lacus vel lorem condimentum maximus a vitae ligula. Donec molestie consequat lorem non venenatis. Donec quis nunc orci. Proin sit amet malesuada est, vel aliquam ipsum. Sed posuere risus id posuere aliquet. + +Nam mattis massa a arcu tristique fringilla. Aliquam hendrerit lobortis egestas. Aenean ornare lectus in est blandit luctus. Nam eu ultrices nisl. Nulla efficitur nisi rhoncus lectus blandit, vitae bibendum nisl consequat. Sed ut tempus leo. Nullam vestibulum hendrerit diam, lacinia fringilla est venenatis quis. Nulla eu aliquam tortor, at efficitur neque. Sed facilisis tortor rutrum tortor condimentum, in laoreet mi iaculis. In luctus nec purus pretium tristique. Nulla sodales lectus eget orci egestas congue. Sed id feugiat ligula. Phasellus suscipit id lacus in convallis. + +Pellentesque purus est, sodales sed cursus ut, ullamcorper sit amet neque. Aenean condimentum rhoncus sapien, quis porttitor enim maximus a. Suspendisse ut sagittis nunc. Quisque non justo id turpis pulvinar mollis ut non nunc. Fusce lacus nibh, fringilla ac nulla vitae, posuere gravida ipsum. Nam efficitur, augue in faucibus ornare, urna sem interdum dui, sodales euismod dui sapien et quam. Ut vel urna vitae lacus venenatis gravida non nec urna. Donec a arcu tempor, consequat risus sit amet, tempus urna. In sollicitudin mi commodo velit dapibus blandit. Praesent eleifend enim in nulla porta finibus. + +Nulla facilisi. Praesent ullamcorper nec neque quis pulvinar. Vestibulum molestie interdum nunc, in sollicitudin velit elementum auctor. Suspendisse potenti. Donec ac leo quis arcu ornare pulvinar et accumsan arcu. Nunc bibendum nunc vel blandit posuere. Quisque nec elementum lacus. Pellentesque aliquam auctor dui ac rutrum. Integer ullamcorper lacus ante, in viverra arcu porttitor vel. Aliquam sit amet sem eu sem lacinia blandit. Donec tincidunt congue pharetra. + +In volutpat tempor dolor. Phasellus lorem nibh, luctus non enim sed, iaculis accumsan ipsum. Cras egestas consectetur urna, quis blandit lectus ullamcorper non. Curabitur erat felis, ornare et risus sit amet, blandit sollicitudin purus. Vivamus pretium porttitor varius. Donec et porta nulla. Mauris sed nulla interdum, imperdiet mauris et, dictum odio. Ut ut erat libero. + +Nulla eleifend mauris et efficitur lobortis. Curabitur quis rhoncus mi, non rutrum urna. Quisque hendrerit, risus sed egestas consectetur, neque tortor dapibus eros, sed lacinia felis felis in nisi. Curabitur ut tortor vitae urna aliquam rutrum non id nunc. Duis tempor tellus eget ligula gravida, ac tincidunt magna vulputate. Sed tincidunt quam vitae tortor tempor consequat. Vivamus vulputate diam sed lectus egestas blandit. Cras ex lacus, tempus semper luctus et, porta at quam. Aliquam ac metus libero. Etiam molestie accumsan sapien, quis gravida dolor rhoncus et. Nam in elementum nisi. Nunc dignissim felis sem, sit amet venenatis turpis faucibus a. Nulla lacinia nisl elit, eget pellentesque sem finibus vitae. Aliquam porta commodo nunc, non tincidunt lorem volutpat sit amet. + +Nulla semper enim non pharetra dapibus. Pellentesque hendrerit orci sit amet gravida ullamcorper. Nam elementum ligula vel orci rutrum, in pharetra magna vulputate. Cras quis ipsum nec enim interdum faucibus vel nec magna. Etiam id ante lacinia, venenatis libero at, accumsan est. Aliquam varius at urna et convallis. Phasellus commodo nisi ut mauris molestie, et rhoncus metus dictum. Vivamus venenatis augue ex, sit amet pellentesque odio condimentum at. Quisque id semper lacus. + +Etiam sit amet pharetra augue. Fusce sit amet quam auctor, eleifend risus euismod, malesuada sapien. Donec finibus luctus turpis id porttitor. Maecenas mi diam, rutrum quis mi at, sagittis laoreet nunc. Curabitur consequat vulputate pellentesque. Morbi vel interdum dui. Maecenas lacinia, ante et aliquam bibendum, urna augue vestibulum nisi, vitae feugiat sapien nibh eu eros. Mauris cursus, purus sed cursus commodo, enim tellus semper arcu, quis hendrerit purus lorem quis nibh. Etiam id lobortis felis, sed ultricies libero. Quisque hendrerit ipsum ut aliquet viverra. Quisque eu tempus velit, vel gravida eros. Fusce a massa consequat dolor condimentum dictum quis a neque. + +Morbi malesuada vestibulum feugiat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis dictum suscipit imperdiet. Nulla id diam eu lectus suscipit tincidunt sit amet pulvinar arcu. Aenean pulvinar facilisis nibh nec feugiat. Fusce eu est vitae nunc bibendum cursus. Sed ullamcorper molestie lacus, non feugiat nibh feugiat non. Fusce bibendum felis a arcu bibendum, ac hendrerit eros blandit. Aliquam a quam sit amet sem ornare ullamcorper ut vitae felis. Sed porta, ex non ultrices scelerisque, nisl massa elementum ipsum, nec placerat est justo sit amet augue. Maecenas facilisis nulla aliquet massa tincidunt, eget semper orci pulvinar. + +Phasellus at quam a libero blandit iaculis. Sed sit amet magna in felis mollis sagittis. Nulla vestibulum suscipit commodo. Nullam dictum turpis eu nisi sollicitudin bibendum. Nullam eu ex pretium, eleifend libero tincidunt, placerat augue. Nullam quis porttitor nisl. Suspendisse rhoncus orci et ex maximus euismod. Nunc imperdiet augue maximus, dignissim ipsum et, feugiat sem. Vestibulum in nunc sed libero efficitur dignissim. Morbi vel arcu quis ipsum vehicula faucibus. Quisque scelerisque ligula libero, vitae consequat ex posuere eget. Sed eu nunc cursus, euismod dolor id, mollis tellus. Ut accumsan quis metus in sagittis. Vestibulum consequat lobortis vehicula. Maecenas risus nisi, sodales sit amet diam ut, faucibus mattis libero. + +Nullam quis justo pretium, dapibus purus sit amet, rhoncus magna. Pellentesque eget velit a urna sollicitudin feugiat. Mauris lacus nisl, posuere ut est in, pulvinar tincidunt augue. Nulla in libero sit amet est iaculis commodo. Nulla aliquet vel mi a ultrices. Cras nec varius nisl, non condimentum nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus ut ex a odio cursus dignissim. Mauris a mauris hendrerit, facilisis tellus a, porttitor mi. Vivamus posuere, arcu ac tincidunt pharetra, ante ex eleifend elit, et aliquam ante dui quis ante. Duis ut hendrerit nulla. Sed et consectetur dolor, a elementum felis. Proin elementum ex lacus, interdum convallis tortor laoreet in. Donec tempus condimentum ante, nec blandit orci posuere vitae. Fusce non facilisis erat. + +Ut viverra lorem augue, ut efficitur dolor vehicula volutpat. Aenean eu dapibus elit, sit amet sagittis quam. Ut sed cursus lectus, quis varius mi. Etiam malesuada dignissim eros ut rhoncus. Integer posuere dui nec neque sollicitudin, nec posuere eros luctus. Cras dictum tristique erat et congue. Etiam congue laoreet quam, eget mattis nunc convallis vel. Vestibulum sit amet massa id enim dapibus suscipit. Curabitur eget consectetur neque. Duis non faucibus nibh. + +Nulla nec ipsum lobortis, cursus diam et, placerat erat. Integer id erat ut est ornare iaculis at at odio. Phasellus sed ligula nec purus suscipit maximus volutpat id magna. Integer neque ipsum, lobortis ut risus elementum, commodo iaculis leo. Fusce vel velit diam. Vivamus augue quam, iaculis quis maximus at, cursus id risus. Vestibulum finibus bibendum nunc, eget pulvinar sem placerat eu. Nam convallis non metus sit amet venenatis. Pellentesque rutrum ante iaculis felis dapibus porta. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Fusce ac eleifend metus. Curabitur scelerisque, dui a bibendum vestibulum, augue dolor scelerisque eros, vitae lobortis tellus leo a tellus. + +Maecenas tristique fringilla leo id scelerisque. Phasellus in pharetra neque. Praesent aliquam, est congue gravida condimentum, arcu arcu auctor purus, eu mollis nisi orci sit amet libero. Etiam eget facilisis lorem. Mauris facilisis in sem id dapibus. Ut convallis et mauris a pharetra. Suspendisse pulvinar quam pulvinar lectus mattis, id ultricies nisl faucibus. Quisque mauris quam, pellentesque a urna non, condimentum aliquet dui. Donec arcu nisi, maximus ultricies nibh quis, ultrices consectetur quam. Proin mollis enim non convallis aliquam. Ut quis tempor lectus. Praesent id interdum metus, sit amet iaculis felis. Duis facilisis lorem velit, id viverra nisl fermentum sit amet. + +Pellentesque et dui tincidunt, mattis nibh bibendum, hendrerit justo. Nulla lobortis enim massa, et tempus tortor pharetra eu. Curabitur vitae erat mi. Duis ornare eu magna tincidunt dignissim. Nulla at tortor vel sem auctor luctus. Quisque sollicitudin ullamcorper velit, a tempor metus faucibus et. Donec ante ligula, fermentum vel volutpat id, commodo non metus. Fusce a fermentum libero, a tristique dolor. Donec in bibendum libero. Morbi nec mauris molestie, accumsan turpis nec, scelerisque tellus. + +Pellentesque ligula mi, cursus eget tincidunt quis, iaculis a nulla. Cras sed nisi id lacus gravida facilisis nec ac leo. Sed dictum dolor sit amet nulla porta scelerisque. Vivamus quis semper leo, eget imperdiet est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed tristique tempus placerat. Cras tristique sit amet purus non efficitur. Maecenas a bibendum eros, sit amet pharetra lacus. Maecenas quis dictum purus. + +Curabitur in dolor ut ante iaculis ullamcorper. Vestibulum sed euismod tellus. Sed maximus consectetur velit non congue. Nullam sit amet elit at enim elementum commodo. Praesent venenatis hendrerit ante, eu eleifend neque feugiat pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris eleifend purus sed commodo volutpat. Proin dictum lectus nec justo rutrum scelerisque. Sed ornare, purus quis pharetra lacinia, leo augue rutrum lorem, vitae semper sem justo ac metus. Vivamus pulvinar sit amet dui ut consequat. Duis sit amet libero porttitor dui iaculis malesuada et vitae augue. + +Nunc semper augue in consectetur venenatis. Nulla facilisi. Vivamus sed risus eget lectus aliquet pulvinar ut eget ipsum. Duis justo urna, tempor et vehicula ut, auctor sit amet enim. Vestibulum quis diam quis nibh aliquam blandit sed quis eros. Morbi id dui venenatis, aliquet leo ut, maximus ex. Vestibulum vel quam at arcu suscipit consequat a sit amet velit. Duis et elit tempus, tincidunt arcu eget, accumsan mi. Vivamus maximus sem in turpis maximus iaculis. In gravida vulputate lacinia. Morbi volutpat massa dolor, non finibus leo porta non. Cras porta, dui sed imperdiet pharetra, massa sapien efficitur elit, at imperdiet neque leo ut est. Nunc dictum luctus faucibus. Donec quis bibendum justo, et fringilla orci. Cras interdum, lectus et efficitur viverra, libero elit fringilla metus, at cursus magna nulla vitae nulla. Aliquam lectus dui, malesuada ultricies lobortis posuere, iaculis ac erat. + +Pellentesque elementum risus mauris. Proin lacus purus, congue ac auctor blandit, eleifend id eros. Vestibulum tincidunt sagittis ante, vitae ultricies orci elementum non. Aenean ac vulputate magna. Morbi dignissim quis massa eget condimentum. Aliquam molestie malesuada dolor ac elementum. Quisque facilisis, dolor eu venenatis finibus, augue metus finibus ex, a fringilla mi arcu id sapien. Sed congue vestibulum urna, eget suscipit est tempus at. Nunc pretium aliquam augue, tempor luctus ligula tempus vel. Nam malesuada fermentum diam eget convallis. Donec porttitor eleifend leo dapibus vulputate. Sed gravida luctus ligula, ac vestibulum nisi vulputate eu. Curabitur porta risus massa, aliquet convallis tortor hendrerit eget. Cras iaculis turpis at venenatis lobortis. Pellentesque at nisi ac lacus condimentum tristique et quis magna. Integer eget quam in quam convallis porta sed a magna. + +Aliquam orci ex, feugiat fringilla metus eu, faucibus sodales nisi. Duis euismod scelerisque hendrerit. Ut rutrum suscipit orci vitae efficitur. Curabitur vulputate urna nisl, at consectetur urna pharetra eget. Pellentesque viverra, erat in vulputate fermentum, felis ligula dapibus ligula, quis scelerisque orci sem iaculis neque. Nunc sagittis tincidunt nulla, tempus imperdiet elit scelerisque sed. Proin risus nisi, pharetra in enim vitae, viverra ultrices augue. In eu lacinia massa. Integer tempus elit id laoreet imperdiet. + +Sed dictum lorem eget risus ultrices euismod. Duis imperdiet metus enim, ut vulputate libero ultricies aliquet. Etiam semper, magna ac convallis scelerisque, nisl nulla auctor magna, eget rutrum lorem ligula eu risus. Ut id augue at lorem aliquet ultricies. Cras imperdiet consectetur imperdiet. Nulla facilisi. Quisque vitae ullamcorper ipsum. + +Etiam ac eros porttitor neque tempus tempor in vitae massa. Suspendisse vestibulum, tortor a condimentum egestas, orci turpis cursus magna, vitae suscipit arcu quam non magna. Nam vel turpis a orci maximus ornare eget ac tortor. Curabitur rhoncus est sit amet faucibus sagittis. Nullam quis nisl orci. Maecenas ut pharetra tellus, a condimentum justo. Ut vulputate laoreet ante non suscipit. Cras orci lorem, varius eu quam eget, ullamcorper maximus metus. Duis sit amet justo efficitur, efficitur est et, pharetra nunc. Donec quis ornare erat. Curabitur pretium dapibus libero. Ut lorem diam, ornare in congue nec, tempus ut velit. + +Mauris venenatis vitae velit nec consequat. Cras et ligula feugiat, tincidunt turpis a, imperdiet neque. Suspendisse tempus, dui eget hendrerit tristique, neque enim fermentum augue, ut aliquam odio lacus eu lorem. Morbi fringilla auctor tortor, sit amet hendrerit sapien egestas vitae. Nam dolor lacus, auctor vel sem ut, faucibus tempor magna. Duis sit amet rutrum est, ac tempus nulla. Sed euismod urna et dictum aliquet. Proin hendrerit urna felis, quis lobortis erat accumsan eu. Duis velit neque, hendrerit ornare sem vitae, ultrices condimentum massa. Donec convallis metus turpis, a dictum leo tincidunt nec. Suspendisse eget felis nibh. Integer sollicitudin nunc tempor dolor consequat, nec pretium quam maximus. Maecenas consequat purus sed tortor aliquet, et dictum magna ultricies. Curabitur sollicitudin ipsum leo, eget placerat mauris scelerisque in. Aenean sed lectus pulvinar, lacinia odio et, pretium enim. Nam vestibulum ipsum nec lectus fermentum venenatis. + +In blandit nunc eget arcu condimentum, fermentum posuere orci auctor. Aliquam nec dui sit amet turpis pulvinar feugiat a vitae nibh. Cras vel eros ante. Suspendisse potenti. Nullam ac nisl ante. Vestibulum ullamcorper ultricies justo, feugiat mollis ex lobortis nec. Aliquam consequat arcu nec est semper, in pharetra arcu pretium. Fusce volutpat eros nec maximus scelerisque. + +Nunc bibendum nibh ex, in laoreet tortor varius sed. Maecenas elementum nisl nec turpis laoreet varius. Integer sed egestas augue, nec mollis nulla. Sed non eros ac lectus rutrum aliquam. Vestibulum ac consectetur dolor. Fusce enim nibh, venenatis id est vitae, rutrum gravida nibh. Phasellus id enim nunc. Curabitur tristique mi sit amet vestibulum tempor. Nulla in fringilla velit, quis euismod ex. Nulla facilisi. Sed vulputate nunc nec felis convallis, vel laoreet tortor condimentum. Morbi non mauris in lectus congue molestie non id sem. + +In eu viverra tellus, luctus consectetur nibh. Sed vel quam id arcu pharetra ullamcorper quis sed tellus. Vivamus condimentum, eros eu consequat tristique, massa dui pretium eros, ut finibus est erat id mauris. Nam ut augue quis orci accumsan dignissim eget vel lectus. Morbi vulputate pretium nunc, eu efficitur quam tincidunt vel. Maecenas accumsan euismod bibendum. Nulla facilisi. Duis imperdiet vitae tortor eu sagittis. Sed viverra lobortis nibh. + +Curabitur id tempor nulla. Quisque id scelerisque dui, a tincidunt magna. Mauris interdum purus scelerisque faucibus vehicula. Nam ut rutrum nisl, a pellentesque metus. Quisque eu ultrices eros. Aenean fermentum maximus varius. Vestibulum imperdiet risus mauris, id dictum urna elementum at. In hac habitasse platea dictumst. Curabitur pulvinar, dolor eu auctor vulputate, tellus ipsum faucibus nunc, sed laoreet libero dui quis metus. Vestibulum fringilla elit eu massa porttitor vestibulum. Nullam tincidunt lobortis faucibus. Nunc et nisi diam. Donec at turpis bibendum, lobortis quam rhoncus, blandit ex. Sed in leo metus. + +Maecenas auctor, nisi eu gravida fringilla, magna nisl lobortis enim, malesuada ultricies elit tortor eu lacus. Suspendisse venenatis enim vel nisl condimentum, nec scelerisque nisi malesuada. Mauris pellentesque fermentum nulla, quis fermentum quam molestie vitae. Vestibulum tincidunt nec dui pretium suscipit. Phasellus eu dui eu enim sollicitudin aliquam vel mollis ante. Etiam nec aliquam dolor, at lobortis turpis. Curabitur finibus eget felis sit amet euismod. Nulla sollicitudin, leo dapibus egestas fermentum, nulla odio condimentum est, nec lacinia augue nibh ac tellus. In sagittis mauris sapien, id rhoncus libero pulvinar id. Donec sagittis consequat mauris in scelerisque. Quisque tristique leo scelerisque bibendum sodales. Cras tempor enim ac elit maximus, id scelerisque dui imperdiet. Aenean condimentum a nisi nec egestas. Vestibulum mollis augue a nisl tincidunt pulvinar. Quisque lacinia, est nec accumsan luctus, felis nibh iaculis nisi, id gravida dolor diam a ante. Ut molestie vestibulum eros a laoreet. + +Praesent sed odio sed nisi volutpat consequat ac in massa. Maecenas blandit porta dolor cursus sodales. Sed aliquam nec leo efficitur iaculis. Pellentesque ac tortor in nulla sollicitudin placerat quis quis odio. Duis a egestas lacus. Curabitur ullamcorper, est sit amet porta blandit, quam augue blandit ligula, non faucibus sem erat id neque. Etiam maximus, odio et egestas tristique, purus velit accumsan erat, at semper justo sapien faucibus metus. Praesent sed vestibulum mauris. Duis eu elementum neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur finibus orci in elit vehicula pulvinar. In hac habitasse platea dictumst. Aliquam quis leo eget tellus ultricies ultricies. Nulla facilisi. Morbi pulvinar quam augue, vitae vulputate augue posuere id. + +Sed pulvinar nunc eu purus eleifend semper. Nullam ligula tellus, interdum in risus eget, lacinia imperdiet massa. Mauris quis eros lorem. Maecenas elementum ipsum enim, vel porta lectus pellentesque quis. Fusce molestie eros sagittis sapien interdum venenatis. Sed mi nisi, iaculis vitae gravida a, euismod molestie mauris. Aliquam arcu ipsum, lobortis in ex ut, commodo venenatis eros. + +Aenean hendrerit vestibulum quam quis bibendum. Ut placerat enim et euismod feugiat. Etiam porttitor luctus nisi eget faucibus. Etiam vel lacus sit amet ante eleifend auctor vitae non est. Praesent eget nisi in enim dignissim semper. Vestibulum id vulputate dolor. Aenean id dolor dui. Duis eu imperdiet nulla, a dignissim tellus. Nam pellentesque vel massa quis tristique. Aenean eget consectetur quam. Praesent at sagittis felis, sed sodales nisl. + +Nulla aliquam luctus ipsum, sed condimentum mi consectetur nec. Maecenas non magna eget massa sagittis accumsan. Suspendisse mattis lorem non mi pretium, suscipit pellentesque dui pharetra. Ut et nisl viverra, elementum sem nec, egestas tortor. Proin viverra sapien nec augue tristique ullamcorper. Phasellus pretium diam in lectus ultricies, ac mollis quam imperdiet. Maecenas porta lorem vel mauris dictum, quis vestibulum mauris vulputate. Vestibulum ligula odio, cursus ac fermentum ac, congue vitae felis. + +Curabitur feugiat augue egestas turpis vulputate lacinia. Ut vitae urna ac mauris ultrices tincidunt a vehicula dolor. Vestibulum mattis dui dictum ipsum hendrerit, quis hendrerit arcu eleifend. Vivamus sed sollicitudin purus. Pellentesque commodo porta nibh nec porta. Suspendisse id efficitur odio. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu eleifend orci. Aliquam erat volutpat. Sed sed orci eget ligula porta iaculis non sit amet justo. Fusce ac sodales lectus, et lacinia ligula. Quisque turpis mauris, condimentum at risus id, lacinia viverra ex. Pellentesque imperdiet risus eu nunc egestas faucibus vel non turpis. + +Sed in hendrerit est. Integer consequat risus non eros varius, non tincidunt erat gravida. Proin libero metus, blandit sed cursus quis, sodales nec erat. Cras tortor nisl, mollis lacinia purus et, tincidunt accumsan sem. Sed sodales lacinia condimentum. Quisque sed sollicitudin diam. Phasellus ut odio nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed tempus egestas lorem, sed euismod mi pharetra id. Phasellus tincidunt fringilla ultrices. Praesent viverra massa nibh, eget faucibus massa ullamcorper sit amet. Pellentesque et venenatis libero, quis mollis felis. Vestibulum vitae elit vitae sapien vehicula finibus. Pellentesque volutpat sem ut quam faucibus, vitae vehicula dui suscipit. Aenean porttitor quam a augue egestas, pulvinar pellentesque leo rutrum. + +Sed pellentesque quam est, sit amet efficitur est mattis faucibus. Duis ac molestie lacus. Nunc turpis lectus, ultricies quis tortor nec, lobortis viverra dui. Vivamus lacinia dictum arcu, nec accumsan enim elementum eu. Aenean faucibus, dui et condimentum cursus, libero dolor semper enim, ac semper quam dolor sed eros. Proin cursus risus tellus, ut posuere est lobortis a. Morbi dignissim urna quis hendrerit blandit. + +Sed suscipit augue urna, et pretium libero sollicitudin at. Phasellus eu tincidunt lacus. Nam odio orci, ullamcorper nec magna ut, accumsan ullamcorper libero. Donec efficitur velit augue, non elementum ipsum tincidunt a. Nulla ultrices turpis quis vulputate venenatis. In hac habitasse platea dictumst. Curabitur eleifend non massa at malesuada. Cras interdum, diam et vehicula pretium, odio lectus convallis massa, at dignissim risus ex quis sapien. Sed velit turpis, mollis ut lacus ut, venenatis congue diam. + +Mauris ut auctor nunc. In sollicitudin felis quis consequat imperdiet. Quisque aliquet luctus placerat. Cras eget nisi eget sem porta suscipit tincidunt sed neque. Aliquam sed volutpat enim, sollicitudin efficitur risus. Duis ultricies condimentum justo, sit amet egestas ligula. Aenean molestie eros vel tortor dignissim, sed commodo dui consectetur. + +Nunc viverra ex vel augue efficitur, maximus hendrerit est tincidunt. Nam massa sapien, varius nec convallis a, semper et nisi. Duis vitae feugiat mauris, ut mattis diam. Proin ac lacus accumsan, lacinia ex et, tempus justo. Aenean cursus sed dolor eget pulvinar. Integer nec ante est. Vestibulum est dolor, fringilla ac luctus nec, volutpat vitae elit. Nunc egestas ullamcorper quam, nec aliquam enim auctor quis. Quisque commodo eros et sem ultrices ultrices. Vivamus porta erat mauris. Morbi et mi neque. Praesent varius venenatis nunc id efficitur. Etiam eget arcu lorem. Mauris porttitor nec enim et commodo. Fusce efficitur odio ac tortor congue tempus. + +Aliquam tellus augue, dapibus sed molestie et, mattis sed risus. Sed vel feugiat ligula. Vestibulum vitae eleifend dolor. In hac habitasse platea dictumst. Sed et pulvinar orci. Morbi nec tortor odio. Sed feugiat varius tellus. In feugiat purus a quam viverra malesuada. Sed ac lectus tortor. + +Integer vehicula bibendum eros, et pulvinar ante aliquet ut. Pellentesque quis cursus nisi, sed mollis felis. Quisque consequat ac erat at porta. Sed vitae nisl nisl. Nam viverra consequat ligula, et placerat magna posuere ac. Vivamus pulvinar nisl imperdiet dictum laoreet. Curabitur a sem leo. + +Suspendisse placerat ultricies nisi vitae rutrum. Nulla varius neque sed iaculis molestie. Nam ullamcorper, risus sit amet sagittis efficitur, mauris diam elementum lectus, vitae fringilla arcu nibh molestie nulla. Vestibulum tempus sit amet tortor in egestas. In quis velit ligula. Proin ac lectus a massa varius ultricies quis quis orci. Vivamus hendrerit vel quam in bibendum. Vestibulum congue viverra nisl at mattis. + +Praesent nec sollicitudin nunc. Mauris sed condimentum urna. Nulla iaculis sollicitudin bibendum. Sed non sagittis ante, pellentesque elementum purus. Suspendisse pretium dolor ac quam fermentum semper. Aliquam tempus sit amet leo eget mollis. Mauris ut accumsan tortor. Etiam interdum eleifend auctor. Cras ultricies luctus est, sit amet tincidunt purus molestie eu. Mauris sem ipsum, imperdiet ac blandit in, placerat vel velit. Sed pretium dictum justo, a venenatis massa pellentesque ac. Donec a mauris non eros eleifend viverra. Vivamus eros eros, efficitur semper risus sed, tincidunt pretium nisl. + +Vivamus pretium, justo et lobortis finibus, mi urna blandit justo, vitae sodales orci leo in justo. Maecenas dignissim purus a eleifend sagittis. Nam massa enim, pretium vitae ante quis, ultrices bibendum lacus. Suspendisse fermentum rhoncus nisi et porta. Sed auctor erat sit amet fermentum congue. Fusce a vestibulum metus, quis ultricies dui. Curabitur quis orci suscipit, tempor tellus vel, rutrum ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent pretium arcu vitae lacinia faucibus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vestibulum a magna nec enim elementum egestas. Nulla congue maximus odio, vel euismod metus tempor id. Donec placerat, magna nec pharetra posuere, ex orci malesuada est, et venenatis nulla mi malesuada erat. Nam congue condimentum rhoncus. Morbi massa enim, pellentesque eget tortor et, hendrerit ultricies diam. + +Cras in ante sed sem gravida tincidunt in id justo. Donec pellentesque mollis justo quis egestas. Mauris et orci malesuada, consectetur augue ac, suscipit libero. Pellentesque a purus diam. Aenean ullamcorper lectus id nisi auctor pharetra. Maecenas eleifend eros pretium, varius turpis nec, vulputate libero. Phasellus id rhoncus augue. In interdum felis lectus, nec dictum orci mollis a. Integer ut pellentesque tellus. Pellentesque auctor maximus ligula, ut dapibus sem cursus quis. Nunc sit amet felis arcu. Praesent varius ultrices metus ut consectetur. Nulla id libero congue, imperdiet mi viverra, dapibus nisl. Pellentesque eget neque in neque dignissim pulvinar id quis tortor. Proin ac ullamcorper quam, vestibulum laoreet turpis. + +Cras suscipit vulputate sapien in viverra. Praesent placerat mattis felis. Duis auctor dui diam, sed egestas neque tristique a. Aenean consequat egestas massa, a fringilla elit consectetur eget. Duis erat lacus, semper id accumsan nec, rhoncus et nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque consequat eros lectus, viverra imperdiet magna congue vel. Donec varius felis vitae arcu consectetur, non varius dolor placerat. Morbi et tortor id augue luctus malesuada nec quis nulla. Nullam aliquam pretium ante. Quisque quis lobortis tellus. Etiam at euismod ipsum. Aenean convallis in urna in euismod. Vestibulum euismod, risus quis ullamcorper molestie, sapien lacus condimentum dolor, at ullamcorper tortor sem et justo. + +Aenean vestibulum suscipit facilisis. Praesent et vestibulum risus. Cras in arcu erat. Aliquam nec turpis bibendum, hendrerit eros non, molestie ligula. Donec scelerisque sagittis urna, a vehicula ipsum maximus sit amet. Vestibulum vitae iaculis turpis. Sed ornare ante a mi imperdiet, non consequat ante mollis. Aenean placerat nulla augue, a luctus risus pulvinar ac. Curabitur dignissim varius quam quis sodales. Nunc faucibus lorem a elit scelerisque volutpat. Donec tempor placerat augue, ac aliquet felis blandit a. Maecenas aliquet pretium mattis. Maecenas pretium lectus et nisi venenatis scelerisque. + +Pellentesque eu pellentesque leo. Nam vehicula at sem eget tempor. Mauris vulputate dignissim malesuada. Sed venenatis felis vitae mauris tempor, id sodales sem lacinia. Aenean nibh libero, efficitur at vulputate eu, fermentum in dui. Sed feugiat felis nec diam dictum, quis porta nibh consequat. In condimentum aliquam leo. Mauris fermentum tortor placerat dignissim interdum. Etiam ultricies aliquam aliquet. Duis at libero maximus, ultricies ex a, fermentum diam. Nulla facilisis ex vel pharetra congue. Duis volutpat gravida dui a porttitor. + +Maecenas nec convallis nulla. Aenean tempor elementum erat et sodales. Curabitur ornare sodales consectetur. In congue lorem nisi, vitae tristique leo laoreet in. Nullam euismod felis eget nulla convallis, id pretium odio hendrerit. Nulla mollis fringilla euismod. Nullam eleifend facilisis risus sed tincidunt. Sed venenatis erat ex, ut congue odio laoreet pretium. Proin et porttitor erat, at tempor lorem. Quisque ultrices libero risus, sit amet condimentum turpis rhoncus ut. Sed vel nibh diam. + +Nunc viverra augue a feugiat viverra. Suspendisse gravida cursus neque ac tincidunt. Quisque vitae placerat lacus. Nunc pellentesque felis ac iaculis pellentesque. Quisque finibus turpis quis ipsum maximus ultrices. Nullam ut ultricies massa, non bibendum enim. Pellentesque nec rhoncus tellus. Etiam condimentum sagittis nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse laoreet, mauris ut lacinia mollis, turpis metus volutpat mi, volutpat vestibulum eros nisl sit amet nibh. Donec in congue orci. Praesent elementum rutrum elit nec pharetra. Integer commodo suscipit augue, in bibendum est porttitor et. Nullam ullamcorper ut nisl eu elementum. Curabitur aliquam orci in dolor eleifend rhoncus. + +Morbi sit amet rhoncus nulla, quis interdum nulla. Etiam luctus, est eget rutrum pulvinar, erat est varius eros, vitae venenatis ante quam non elit. Integer non lectus in turpis vehicula aliquet et eu ipsum. Etiam vulputate massa ac urna tempus, mattis lacinia felis vulputate. Quisque commodo, orci sit amet ullamcorper auctor, dolor nibh tristique nulla, eget mollis mauris mi ac ipsum. Donec faucibus nisi id ex viverra lobortis. Sed porta et ante id feugiat. Phasellus mollis, erat quis sollicitudin vestibulum, quam risus dapibus arcu, in scelerisque diam libero tincidunt orci. Integer aliquam, ante ac placerat euismod, libero lacus aliquet lorem, ut viverra risus felis hendrerit est. Cras sollicitudin sem eget nulla iaculis iaculis tristique nec sem. Maecenas accumsan tellus in finibus porttitor. + +Aliquam at mi felis. Pellentesque sollicitudin lorem eget mi lacinia, vitae varius risus vulputate. Sed lobortis augue orci, eget mollis augue volutpat ac. Nulla dignissim ut felis sit amet posuere. Vivamus facilisis tristique diam eu aliquet. Morbi fermentum magna vel consequat egestas. Integer nulla tortor, tristique quis rutrum quis, sodales a dolor. Aenean in finibus nunc. Nulla ornare semper auctor. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean faucibus lacus non pulvinar luctus. Sed semper aliquet lectus venenatis convallis. Mauris luctus libero a metus efficitur fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean a sem arcu. Integer aliquet vestibulum nibh id luctus. + +Quisque pretium est quis risus condimentum rhoncus eget ultricies dolor. Morbi sed mi luctus elit fringilla ultrices ut vitae purus. Maecenas at quam id sapien pulvinar scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse sed ultrices sapien, sit amet tincidunt odio. Suspendisse sed hendrerit massa. Phasellus fermentum ipsum diam, non gravida libero venenatis sed. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc posuere libero quis efficitur condimentum. Proin vulputate libero massa, et vulputate nisl volutpat malesuada. Morbi eu molestie ipsum. Praesent vulputate magna eget velit suscipit lacinia. + +Sed ultricies, massa at dignissim bibendum, elit diam vestibulum risus, quis tincidunt ipsum diam vel mauris. Nam sed tortor id augue consectetur pulvinar ac non eros. Praesent ac velit id magna elementum tristique volutpat quis mauris. Praesent consectetur elementum dolor at mollis. Vestibulum interdum diam non odio commodo, non sollicitudin dui consectetur. Praesent pharetra finibus arcu, eu tristique magna posuere non. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi faucibus nisl non augue bibendum, id venenatis elit vestibulum. Etiam sed sollicitudin ligula. Suspendisse at ex condimentum, pulvinar neque id, consequat odio. Integer euismod porttitor orci ac commodo. diff --git a/examples/ml_selector/BUCK b/examples/ml_selector/BUCK index 9894d29eb..1f08d0ee8 100644 --- a/examples/ml_selector/BUCK +++ b/examples/ml_selector/BUCK @@ -1,7 +1,7 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary") -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxbinary") +load("../../defs.bzl", "zs_cxxbinary") oncall("data_compression") @@ -15,9 +15,9 @@ zs_cxxbinary( "core_model.h", ], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", - "//data_compression/experimental/zstrong/tools:zstrong_ml", + "../..:zstronglib", + "../../tools:fileio", + "../../tools:zstrong_ml", ], ) @@ -26,10 +26,10 @@ zs_cxxbinary( srcs = ["zs2_mlselector.cpp"], headers = ["model.h"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", - "//data_compression/experimental/zstrong/tools:zstrong_cpp", - "//data_compression/experimental/zstrong/tools:zstrong_ml", + "../..:zstronglib", + "../../tools:fileio", + "../../tools:zstrong_cpp", + "../../tools:zstrong_ml", ], external_deps = [ "CLI11", @@ -37,16 +37,17 @@ zs_cxxbinary( ) python_binary( + # @autodeps-skip name = "train_model", main_function = ".train_model.main", main_src = "train_model.py", deps = [ + "../../tools/py:zstrong_ml", # @manual "fbsource//third-party/pypi/click:click", "fbsource//third-party/pypi/numpy:numpy", "fbsource//third-party/pypi/pandas:pandas", "fbsource//third-party/pypi/scikit-learn:scikit-learn", "fbsource//third-party/pypi/xgboost:xgboost", - "//data_compression/experimental/zstrong/tools/py:zstrong_ml", ], ) diff --git a/examples/ml_selector/README.md b/examples/ml_selector/README.md index d209bb2a8..77b4ee85e 100644 --- a/examples/ml_selector/README.md +++ b/examples/ml_selector/README.md @@ -1,7 +1,7 @@ # ML Selector Tutorial This tutorial would walk you through the steps needed to train and test an ML -selector in Zstrong. Currently only compiles in fbsource environment. +selector. Currently only compiles in fbsource environment. The example follows 4 steps: @@ -10,6 +10,8 @@ The example follows 4 steps: 3. Model training 4. Testing +**Important**: The ordering of successors must not change between training and inference. Since the model uses numeric indices to represent successors, any change in successor ordering would cause predictions to map to incorrect compression strategies. + ## Quick start ### ML Selector @@ -18,15 +20,15 @@ The example follows 4 steps: divided into a train and test directory): ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:generate_data -- /tmp/ml_train_samples - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:generate_data -- /tmp/ml_test_samples + buck2 run @//mode/opt examples/ml_selector:generate_data -- /tmp/ml_train_samples + buck2 run @//mode/opt examples/ml_selector:generate_data -- /tmp/ml_test_samples ``` Before going forward, check current model's inference results (the starter model always selects FieldLz as a successor): ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:zs2_mlselector -- infer -i /tmp/ml_test_samples/ + buck2 run @//mode/opt examples/ml_selector:zs2_mlselector -- infer -i /tmp/ml_test_samples/ ``` Example output: @@ -38,20 +40,20 @@ The example follows 4 steps: 2. Run feature extraction: ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:zs2_mlselector -- train -i /tmp/ml_train_samples/ -o /tmp/ml_features + buck2 run @//mode/opt examples/ml_selector:zs2_mlselector -- train -i /tmp/ml_train_samples/ -o /tmp/ml_features ``` 3. Train a model and save it as the inference's new model (make sure to run this - command from zstrong root directory): + command from openzl/dev or openzl/prod): ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:train_model -- /tmp/ml_features -o examples/ml_selector/model -m EXAMPLE_MODEL + buck2 run @//mode/opt examples/ml_selector:train_model -- /tmp/ml_features -o examples/ml_selector/model -m EXAMPLE_MODEL ``` 4. Test the generated model inference on the test data: ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:zs2_mlselector -- infer -i /tmp/ml_test_samples/ + buck2 run @//mode/opt examples/ml_selector:zs2_mlselector -- infer -i /tmp/ml_test_samples/ ``` Example output: @@ -65,15 +67,15 @@ The example follows 4 steps: 1. Generate test data (as alternative you can use your own data): ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:generate_data -- /tmp/ml_train_samples - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:generate_data -- /tmp/ml_test_samples + buck2 run @//mode/opt examples/ml_selector:generate_data -- /tmp/ml_train_samples + buck2 run @//mode/opt examples/ml_selector:generate_data -- /tmp/ml_test_samples ``` Before going forward, check current model's inference results (the starter model always selects FieldLz as a successor): ``` - buck2 run @//mode/lldb //data_compression/experimental/zstrong/examples/ml_selector:zs2_core_mlselector /tmp/ml_test_samples/ + buck2 run @//mode/lldb examples/ml_selector:zs2_core_mlselector /tmp/ml_test_samples/ ``` Example output: @@ -86,7 +88,7 @@ The example follows 4 steps: result should be better than the starter model's results. ``` - buck2 run @//mode/lldb //data_compression/experimental/zstrong/examples/ml_selector:zs2_core_mlselector /tmp/ml_test_samples/ -g + buck2 run @//mode/lldb examples/ml_selector:zs2_core_mlselector /tmp/ml_test_samples/ -g ``` Example output: @@ -99,20 +101,20 @@ The example follows 4 steps: 2. Run feature extraction: ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:zs2_mlselector -- train -i /tmp/ml_train_samples/ -o /tmp/ml_features + buck2 run @//mode/opt examples/ml_selector:zs2_mlselector -- train -i /tmp/ml_train_samples/ -o /tmp/ml_features ``` 3. Train a model and save it as the inference's new model (make sure to run this - command from zstrong root directory): + command from openzl/dev or openzl/prod): ``` - buck2 run @//mode/opt //data_compression/experimental/zstrong/examples/ml_selector:train_model -- -c /tmp/ml_features -o examples/ml_selector/core_model -m EXAMPLE_CORE_MODEL + buck2 run @//mode/opt examples/ml_selector:train_model -- -c /tmp/ml_features -o examples/ml_selector/core_model -m EXAMPLE_CORE_MODEL ``` 4. Test the generated model inference on the test data: ``` - buck2 run @//mode/lldb //data_compression/experimental/zstrong/examples/ml_selector:zs2_core_mlselector /tmp/ml_test_samples/ + buck2 run @//mode/lldb examples/ml_selector:zs2_core_mlselector /tmp/ml_test_samples/ ``` Example output: @@ -161,7 +163,7 @@ successors to the training selector. The `train_model` script takes a features files and generates a model based on it with XGBoost. The script would then serialize the model into a format -digestible by Zstrong. The path to the output file is given with the `-o` +digestible by openzl. The path to the output file is given with the `-o` parameter. The `-m` parameter controls the name of the string representing the model in the header file. For this example we use `EXAMPLE_MODEL`. At the end of the run the script would apply the model to all of the data from the feature diff --git a/examples/ml_selector/core_model.c b/examples/ml_selector/core_model.c index f84d5461c..a91ec5c0c 100644 --- a/examples/ml_selector/core_model.c +++ b/examples/ml_selector/core_model.c @@ -1,5 +1,5 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -// THIS FILE WAS AUTOMATICALLY GENERATED BY test_zstrong_ml_models_generator.py +// THIS FILE WAS AUTOMATICALLY GENERATED BY train_model.py #include "examples/ml_selector/core_model.h" @@ -33,8 +33,8 @@ static const GBTPredictor EXAMPLE_CORE_MODEL_PREDICTOR = { } }; -static const Label EXAMPLE_CORE_MODEL_CLASS_LABELS[] = {"fieldlz"}; -static const size_t EXAMPLE_CORE_MODEL_NB_LABELS = 1; + +static const size_t EXAMPLE_CORE_MODEL_NB_SUCCESSORS = 1; static const Label EXAMPLE_CORE_MODEL_FEATURE_LABELS[] = {"nbElts"}; static const size_t EXAMPLE_CORE_MODEL_NB_FEATURES = 1; @@ -42,8 +42,7 @@ GBTModel getExampleCoreModelGbtModel(FeatureGenerator featureGenerator) { GBTModel gbtModel = { .predictor = &EXAMPLE_CORE_MODEL_PREDICTOR, .featureGenerator = featureGenerator, - .nbLabels = EXAMPLE_CORE_MODEL_NB_LABELS, - .classLabels = EXAMPLE_CORE_MODEL_CLASS_LABELS, + .nbSuccessors = EXAMPLE_CORE_MODEL_NB_SUCCESSORS, .nbFeatures = EXAMPLE_CORE_MODEL_NB_FEATURES, .featureLabels = EXAMPLE_CORE_MODEL_FEATURE_LABELS, }; diff --git a/examples/ml_selector/core_model.h b/examples/ml_selector/core_model.h index 33f0de38e..36c6c3f7e 100644 --- a/examples/ml_selector/core_model.h +++ b/examples/ml_selector/core_model.h @@ -11,9 +11,12 @@ #ifdef __cplusplus extern "C" { #endif +typedef enum { + EXAMPLE_CORE_MODEL_FIELDLZ = 0, +} ExampleCoreModelLabelEnum; // GENERATED EXAMPLE_CORE_MODEL MODEL GETTER FUNCTION -extern GBTModel getExampleCoreModelGbtModel(FeatureGenerator featureGenerator); +extern GBTModel getExampleCoreModelGbtModel(FeatureGenerator featureGenerator); #ifdef __cplusplus } diff --git a/examples/ml_selector/generate_data.py b/examples/ml_selector/generate_data.py index 4feebf510..be171e3ec 100644 --- a/examples/ml_selector/generate_data.py +++ b/examples/ml_selector/generate_data.py @@ -8,9 +8,7 @@ from typing import List import click - import numpy as np - from manifold.clients.python import ManifoldClient diff --git a/examples/ml_selector/train_model.py b/examples/ml_selector/train_model.py index 11db94614..d3f71d5be 100644 --- a/examples/ml_selector/train_model.py +++ b/examples/ml_selector/train_model.py @@ -6,11 +6,10 @@ import typing as t import click - import numpy as np import pandas as pd import xgboost as xgb -import zstrong_ml # @manual=//data_compression/experimental/zstrong/tools/py:zstrong_ml +import zstrong_ml # @manual from sklearn.model_selection import train_test_split # Ugly fix for old XGBoost version using deprecated Pandas features @@ -43,7 +42,8 @@ def train_model(path: str) -> t.Tuple[xgb.XGBClassifier, pd.DataFrame]: # Process the samples into dataframes df_features, df_results = zstrong_ml.process_training_samples( - samples, None # , choice_function + samples, + None, # , choice_function ) choice_breakdown = ( @@ -61,50 +61,76 @@ def train_model(path: str) -> t.Tuple[xgb.XGBClassifier, pd.DataFrame]: X_test = X_test.loc[test_mask].copy() y_test = y_test.loc[test_mask].copy() - params = { + params: dict[str, float | int | str] = { "learning_rate": 0.1, - "n_estimators": 30, - "n_jobs": 1, + "nthread": 1, "min_child_weight": 0.0, "subsample": 0.7, "colsample_bynode": 0.8, } + + # Use binary:logistic for 2 classes, multi:softmax otherwise + unordered_labels = list(samples[0].targets.keys()) + num_successors = len(unordered_labels) + if num_successors == 2: + params["objective"] = "binary:logistic" + else: + params["objective"] = "multi:softmax" + params["num_class"] = num_successors + logger.info("Training model") - booster = xgb.sklearn.XGBClassifier(**params) - _ = booster.fit( - X_train, - y_train["choice"], - eval_set=[(X_train, y_train["choice"]), (X_test, y_test["choice"])], - # eval_metric="mae", + + # Create DMatrix for native XGBoost + dtrain = xgb.DMatrix(X_train, label=y_train["choice"]) + dtest = xgb.DMatrix(X_test, label=y_test["choice"]) + + # Train with early stopping + evals = [(dtrain, "train"), (dtest, "test")] + booster = xgb.train( + params, + dtrain, + num_boost_round=30, + evals=evals, early_stopping_rounds=10, - verbose=False, + verbose_eval=False, ) logger.info("Model trained") - # pyre-ignore - params["n_estimators"] = booster.best_iteration + 1 - booster = xgb.sklearn.XGBClassifier(**params) - _ = booster.fit( - df_features, - df_results["choice"], - verbose=False, + # Retrain on all data with optimal number of rounds + best_iteration = booster.best_iteration + 1 + dfull = xgb.DMatrix(df_features, label=df_results["choice"]) + booster = xgb.train( + params, + dfull, + num_boost_round=best_iteration, + verbose_eval=False, ) - prediction = booster.predict(X_test) + prediction = booster.predict(xgb.DMatrix(X_test)) prediction_breakdown = ( pd.DataFrame(pd.Series(prediction).value_counts()).reset_index().to_string() ) logger.info(f"Breakdown of predictions for test data:\n{prediction_breakdown}") + if len(prediction) > 0 and not isinstance(prediction[0], str): + idx_to_label = {samples[0].targets[k]["idx"]: k for k in unordered_labels} + successor_labels = [idx_to_label[i] for i in range(len(idx_to_label))] + + prediction = np.array([idx_to_label[int(p)] for p in prediction]) + + booster.successor_labels_ = successor_labels + else: + booster.successor_labels_ = list(booster.classes_) + prediction_size = sum( [sum(y_test[p].values[prediction == p]) for p in np.unique(prediction)] ) prediction_best_size = sum(y_test.best_size) prediction_ratio = prediction_size / prediction_best_size logger.info( - f"Using our model on the training + test data we will get {100 * (prediction_ratio-1):.02}% worse compression ratio than optimum (predicted size = {prediction_size:.02}, best size = {prediction_best_size:.02})" + f"Using our model on the training + test data we will get {100 * (prediction_ratio - 1):.02}% worse compression ratio than optimum (predicted size = {prediction_size:.02}, best size = {prediction_best_size:.02})" ) return (booster, df_features) @@ -116,7 +142,7 @@ def get_trained_serialized_model(path: str): # so we add another even if there's only one class. # TODO: fix GBT predictors, consider using forced_successor # pyre-ignore - classes = list(booster.classes_) + classes = list(booster.successor_labels_) if len(classes) == 1: classes.append(classes[0]) @@ -132,7 +158,7 @@ def get_trained_core_model(path: str, prefix: str) -> zstrong_ml.CoreModel: (booster, df_features) = train_model(path) # Fix as mentioned in the get_trained_serialized_model - classes = list(booster.classes_) + classes = list(booster.successor_labels_) if len(classes) == 1: classes.append(classes[0]) @@ -186,7 +212,7 @@ def write_core_files(path: str, model_strings: t.Dict[str, zstrong_ml.CoreModel] #ifndef {path.replace("/", "_").replace(".", "_").upper()} #define {path.replace("/", "_").replace(".", "_").upper()} -#include "zstrong/compress/selectors/ml/gbt.h" +#include "openzl/compress/selectors/ml/gbt.h" #ifdef __cplusplus extern "C" {{ @@ -262,10 +288,11 @@ def main(training_samples: str, out: str, model_name: str, core: bool): print("Please do not include file extension in the path") return - if not os.getcwd().endswith("data_compression/experimental/zstrong"): + if not (os.getcwd().endswith("openzl/dev") or os.getcwd().endswith("openzl/prod")): print("Please run this file from zstrong root director") return + print("XGBoost version:" + xgb.__version__) if not core: write_header(out, {model_name: get_trained_serialized_model(training_samples)}) else: diff --git a/examples/ml_selector/zs2_core_mlselector.c b/examples/ml_selector/zs2_core_mlselector.c index 790460573..d4d5d3fc2 100644 --- a/examples/ml_selector/zs2_core_mlselector.c +++ b/examples/ml_selector/zs2_core_mlselector.c @@ -153,10 +153,10 @@ static LabeledGraphResult generateSuccessors(ZL_Compressor* cgraph) cgraph, ZL_Type_numeric, /* sort */ true, delta_fieldlz, fieldlz); ZL_LabeledGraphID temp_graphs[6] = { + { .label = "delta_fieldlz", .graph = delta_fieldlz }, { .label = "fieldlz", .graph = fieldlz }, { .label = "range_pack", .graph = range_pack }, { .label = "range_pack_zstd", .graph = range_pack_zstd }, - { .label = "delta_fieldlz", .graph = delta_fieldlz }, { .label = "tokenize_delta_fieldlz", .graph = tokenize_delta_fieldlz }, { .label = "zstd", .graph = ZL_GRAPH_ZSTD } }; diff --git a/examples/ml_selector/zs2_mlselector.cpp b/examples/ml_selector/zs2_mlselector.cpp index b44956eb9..934acb19f 100644 --- a/examples/ml_selector/zs2_mlselector.cpp +++ b/examples/ml_selector/zs2_mlselector.cpp @@ -106,6 +106,7 @@ generateSuccessors(ZL_Compressor* cgraph) ZL_GraphID tokenize_delta_fieldlz = ZL_Compressor_registerTokenizeGraph( cgraph, ZL_Type_numeric, /* sort */ true, delta_fieldlz, fieldlz); + // Successors are in alphabetical order std::map successors = { { "fieldlz", fieldlz }, { "range_pack", range_pack }, diff --git a/examples/ppmf_unit/high/benchmark.zlc b/examples/ppmf_unit/high/benchmark.zlc deleted file mode 100644 index 47e80e90a..000000000 Binary files a/examples/ppmf_unit/high/benchmark.zlc and /dev/null differ diff --git a/examples/ppmf_unit/high/test.txt b/examples/ppmf_unit/high/test.txt deleted file mode 100644 index 162d983e5..000000000 --- a/examples/ppmf_unit/high/test.txt +++ /dev/null @@ -1,356 +0,0 @@ -unit_0.csv -unit_10.csv -unit_11.csv -unit_12.csv -unit_13.csv -unit_14.csv -unit_15.csv -unit_16.csv -unit_18.csv -unit_19.csv -unit_1.csv -unit_20.csv -unit_211.csv -unit_212.csv -unit_213.csv -unit_215.csv -unit_216.csv -unit_217.csv -unit_218.csv -unit_219.csv -unit_21.csv -unit_220.csv -unit_221.csv -unit_222.csv -unit_224.csv -unit_225.csv -unit_226.csv -unit_227.csv -unit_228.csv -unit_229.csv -unit_22.csv -unit_230.csv -unit_231.csv -unit_232.csv -unit_233.csv -unit_235.csv -unit_236.csv -unit_237.csv -unit_238.csv -unit_239.csv -unit_23.csv -unit_240.csv -unit_241.csv -unit_242.csv -unit_243.csv -unit_244.csv -unit_246.csv -unit_247.csv -unit_248.csv -unit_249.csv -unit_24.csv -unit_250.csv -unit_251.csv -unit_252.csv -unit_253.csv -unit_254.csv -unit_255.csv -unit_256.csv -unit_257.csv -unit_258.csv -unit_259.csv -unit_25.csv -unit_260.csv -unit_261.csv -unit_262.csv -unit_263.csv -unit_264.csv -unit_265.csv -unit_266.csv -unit_267.csv -unit_268.csv -unit_269.csv -unit_26.csv -unit_270.csv -unit_271.csv -unit_272.csv -unit_273.csv -unit_274.csv -unit_275.csv -unit_276.csv -unit_277.csv -unit_278.csv -unit_279.csv -unit_280.csv -unit_281.csv -unit_282.csv -unit_283.csv -unit_284.csv -unit_285.csv -unit_286.csv -unit_287.csv -unit_288.csv -unit_289.csv -unit_28.csv -unit_290.csv -unit_291.csv -unit_292.csv -unit_293.csv -unit_294.csv -unit_295.csv -unit_296.csv -unit_297.csv -unit_298.csv -unit_299.csv -unit_29.csv -unit_2.csv -unit_300.csv -unit_301.csv -unit_302.csv -unit_303.csv -unit_304.csv -unit_305.csv -unit_306.csv -unit_307.csv -unit_308.csv -unit_309.csv -unit_30.csv -unit_310.csv -unit_311.csv -unit_312.csv -unit_313.csv -unit_314.csv -unit_315.csv -unit_316.csv -unit_317.csv -unit_318.csv -unit_319.csv -unit_31.csv -unit_320.csv -unit_321.csv -unit_322.csv -unit_323.csv -unit_324.csv -unit_325.csv -unit_326.csv -unit_327.csv -unit_328.csv -unit_329.csv -unit_32.csv -unit_330.csv -unit_331.csv -unit_332.csv -unit_333.csv -unit_334.csv -unit_335.csv -unit_336.csv -unit_337.csv -unit_338.csv -unit_339.csv -unit_33.csv -unit_340.csv -unit_341.csv -unit_342.csv -unit_344.csv -unit_345.csv -unit_346.csv -unit_347.csv -unit_348.csv -unit_349.csv -unit_34.csv -unit_350.csv -unit_351.csv -unit_352.csv -unit_353.csv -unit_354.csv -unit_355.csv -unit_357.csv -unit_358.csv -unit_359.csv -unit_35.csv -unit_360.csv -unit_361.csv -unit_362.csv -unit_363.csv -unit_364.csv -unit_365.csv -unit_366.csv -unit_367.csv -unit_368.csv -unit_369.csv -unit_36.csv -unit_370.csv -unit_371.csv -unit_372.csv -unit_373.csv -unit_374.csv -unit_375.csv -unit_376.csv -unit_378.csv -unit_379.csv -unit_37.csv -unit_380.csv -unit_381.csv -unit_382.csv -unit_383.csv -unit_384.csv -unit_385.csv -unit_386.csv -unit_387.csv -unit_388.csv -unit_389.csv -unit_38.csv -unit_390.csv -unit_392.csv -unit_393.csv -unit_394.csv -unit_395.csv -unit_396.csv -unit_397.csv -unit_398.csv -unit_399.csv -unit_400.csv -unit_401.csv -unit_403.csv -unit_404.csv -unit_405.csv -unit_407.csv -unit_408.csv -unit_409.csv -unit_410.csv -unit_411.csv -unit_412.csv -unit_413.csv -unit_414.csv -unit_415.csv -unit_416.csv -unit_417.csv -unit_418.csv -unit_419.csv -unit_420.csv -unit_421.csv -unit_423.csv -unit_424.csv -unit_425.csv -unit_426.csv -unit_427.csv -unit_428.csv -unit_429.csv -unit_430.csv -unit_431.csv -unit_432.csv -unit_433.csv -unit_434.csv -unit_435.csv -unit_436.csv -unit_437.csv -unit_438.csv -unit_439.csv -unit_440.csv -unit_441.csv -unit_442.csv -unit_443.csv -unit_444.csv -unit_445.csv -unit_446.csv -unit_447.csv -unit_448.csv -unit_449.csv -unit_450.csv -unit_451.csv -unit_452.csv -unit_453.csv -unit_454.csv -unit_455.csv -unit_456.csv -unit_457.csv -unit_458.csv -unit_459.csv -unit_460.csv -unit_461.csv -unit_462.csv -unit_463.csv -unit_464.csv -unit_465.csv -unit_466.csv -unit_467.csv -unit_468.csv -unit_469.csv -unit_470.csv -unit_471.csv -unit_472.csv -unit_473.csv -unit_474.csv -unit_475.csv -unit_476.csv -unit_477.csv -unit_478.csv -unit_479.csv -unit_480.csv -unit_481.csv -unit_483.csv -unit_484.csv -unit_485.csv -unit_486.csv -unit_487.csv -unit_488.csv -unit_489.csv -unit_490.csv -unit_491.csv -unit_492.csv -unit_493.csv -unit_494.csv -unit_495.csv -unit_496.csv -unit_497.csv -unit_498.csv -unit_499.csv -unit_4.csv -unit_501.csv -unit_503.csv -unit_504.csv -unit_505.csv -unit_506.csv -unit_508.csv -unit_509.csv -unit_510.csv -unit_511.csv -unit_512.csv -unit_513.csv -unit_514.csv -unit_515.csv -unit_516.csv -unit_518.csv -unit_519.csv -unit_520.csv -unit_521.csv -unit_522.csv -unit_523.csv -unit_524.csv -unit_525.csv -unit_527.csv -unit_528.csv -unit_529.csv -unit_530.csv -unit_531.csv -unit_532.csv -unit_533.csv -unit_534.csv -unit_535.csv -unit_536.csv -unit_537.csv -unit_538.csv -unit_539.csv -unit_540.csv -unit_541.csv -unit_542.csv -unit_543.csv -unit_544.csv -unit_545.csv -unit_546.csv -unit_547.csv -unit_5.csv -unit_6.csv -unit_7.csv -unit_8.csv -unit_9.csv diff --git a/examples/ppmf_unit/high/train.txt b/examples/ppmf_unit/high/train.txt deleted file mode 100644 index a85c64896..000000000 --- a/examples/ppmf_unit/high/train.txt +++ /dev/null @@ -1,20 +0,0 @@ -unit_17.csv -unit_214.csv -unit_223.csv -unit_234.csv -unit_245.csv -unit_27.csv -unit_343.csv -unit_356.csv -unit_377.csv -unit_391.csv -unit_3.csv -unit_402.csv -unit_406.csv -unit_422.csv -unit_482.csv -unit_500.csv -unit_502.csv -unit_507.csv -unit_517.csv -unit_526.csv diff --git a/examples/ppmf_unit/low/benchmark_low.zlc b/examples/ppmf_unit/low/benchmark_low.zlc deleted file mode 100644 index 42f3bc192..000000000 Binary files a/examples/ppmf_unit/low/benchmark_low.zlc and /dev/null differ diff --git a/examples/ppmf_unit/low/test.txt b/examples/ppmf_unit/low/test.txt deleted file mode 100644 index 39f8da231..000000000 --- a/examples/ppmf_unit/low/test.txt +++ /dev/null @@ -1,152 +0,0 @@ -unit_100.csv -unit_101.csv -unit_102.csv -unit_103.csv -unit_104.csv -unit_106.csv -unit_107.csv -unit_108.csv -unit_109.csv -unit_110.csv -unit_111.csv -unit_112.csv -unit_114.csv -unit_115.csv -unit_116.csv -unit_117.csv -unit_118.csv -unit_119.csv -unit_120.csv -unit_121.csv -unit_122.csv -unit_123.csv -unit_124.csv -unit_125.csv -unit_126.csv -unit_128.csv -unit_129.csv -unit_130.csv -unit_131.csv -unit_132.csv -unit_133.csv -unit_134.csv -unit_135.csv -unit_136.csv -unit_137.csv -unit_138.csv -unit_140.csv -unit_141.csv -unit_142.csv -unit_144.csv -unit_145.csv -unit_146.csv -unit_147.csv -unit_148.csv -unit_149.csv -unit_150.csv -unit_151.csv -unit_152.csv -unit_153.csv -unit_154.csv -unit_155.csv -unit_157.csv -unit_158.csv -unit_159.csv -unit_161.csv -unit_163.csv -unit_164.csv -unit_165.csv -unit_166.csv -unit_167.csv -unit_168.csv -unit_169.csv -unit_170.csv -unit_171.csv -unit_172.csv -unit_173.csv -unit_174.csv -unit_175.csv -unit_176.csv -unit_177.csv -unit_178.csv -unit_179.csv -unit_181.csv -unit_182.csv -unit_183.csv -unit_184.csv -unit_186.csv -unit_188.csv -unit_189.csv -unit_191.csv -unit_193.csv -unit_194.csv -unit_195.csv -unit_196.csv -unit_197.csv -unit_198.csv -unit_199.csv -unit_200.csv -unit_201.csv -unit_202.csv -unit_203.csv -unit_205.csv -unit_206.csv -unit_207.csv -unit_208.csv -unit_209.csv -unit_210.csv -unit_40.csv -unit_42.csv -unit_43.csv -unit_44.csv -unit_45.csv -unit_46.csv -unit_47.csv -unit_48.csv -unit_49.csv -unit_50.csv -unit_51.csv -unit_52.csv -unit_53.csv -unit_54.csv -unit_55.csv -unit_56.csv -unit_57.csv -unit_58.csv -unit_59.csv -unit_62.csv -unit_63.csv -unit_64.csv -unit_65.csv -unit_66.csv -unit_67.csv -unit_68.csv -unit_69.csv -unit_70.csv -unit_71.csv -unit_72.csv -unit_73.csv -unit_74.csv -unit_75.csv -unit_76.csv -unit_77.csv -unit_78.csv -unit_81.csv -unit_82.csv -unit_83.csv -unit_84.csv -unit_85.csv -unit_86.csv -unit_87.csv -unit_88.csv -unit_89.csv -unit_90.csv -unit_91.csv -unit_92.csv -unit_93.csv -unit_94.csv -unit_95.csv -unit_96.csv -unit_97.csv -unit_98.csv -unit_99.csv diff --git a/examples/ppmf_unit/low/train.txt b/examples/ppmf_unit/low/train.txt deleted file mode 100644 index e54286eb6..000000000 --- a/examples/ppmf_unit/low/train.txt +++ /dev/null @@ -1,20 +0,0 @@ -unit_105.csv -unit_113.csv -unit_127.csv -unit_139.csv -unit_143.csv -unit_156.csv -unit_160.csv -unit_162.csv -unit_180.csv -unit_185.csv -unit_187.csv -unit_190.csv -unit_192.csv -unit_204.csv -unit_39.csv -unit_41.csv -unit_60.csv -unit_61.csv -unit_79.csv -unit_80.csv diff --git a/examples/py/BUCK b/examples/py/BUCK index a028feb45..95ea3424a 100644 --- a/examples/py/BUCK +++ b/examples/py/BUCK @@ -5,23 +5,27 @@ load("@fbcode_macros//build_defs:python_binary.bzl", "python_binary") oncall("data_compression") python_binary( + # @autodeps-skip name = "quick_start", srcs = ["quick_start.py"], + base_module = "openzl.examples.py", labels = ["autodeps2_generated"], - main_module = "data_compression.experimental.zstrong.examples.py.quick_start", + main_module = "openzl.examples.py.quick_start", deps = [ + "../../py:openzl", "fbsource//third-party/pypi/numpy:numpy", - "//data_compression/experimental/zstrong/py:openzl", ], ) python_binary( + # @autodeps-skip name = "parsing", srcs = ["parsing.py"], + base_module = "openzl.examples.py", labels = ["autodeps2_generated"], - main_module = "data_compression.experimental.zstrong.examples.py.parsing", + main_module = "openzl.examples.py.parsing", deps = [ + "../../py:openzl", "fbsource//third-party/pypi/numpy:numpy", - "//data_compression/experimental/zstrong/py:openzl", ], ) diff --git a/examples/py/parsing.py b/examples/py/parsing.py index ca123ddb9..f3740cf7a 100644 --- a/examples/py/parsing.py +++ b/examples/py/parsing.py @@ -5,7 +5,6 @@ import struct from typing import List -import numpy as np import openzl.ext as zl # --8<-- [end:imports] @@ -214,7 +213,7 @@ def decompress(compressed: bytes) -> bytes: # Decompress the compressed data. # OpenZL compressed data can decompress to multiple outputs of several types. - # Here, we expect to recieve a single output of serial data. + # Here, we expect to receive a single output of serial data. outputs = dctx.decompress(compressed) if len(outputs) != 1 or outputs[0].type != zl.Type.Serial: raise RuntimeError("Only one serial output supported") diff --git a/examples/sddl/sao_full.oldv1.sddl b/examples/sddl/sao_full.oldv1.sddl new file mode 100644 index 000000000..bddb487b4 --- /dev/null +++ b/examples/sddl/sao_full.oldv1.sddl @@ -0,0 +1,65 @@ +# ============================================================================= +# Star Catalog (SAO) parser using SDDL1 syntax only. +# +# Mirrors the dynamic capabilities of the SDDL2 version by leveraging features +# of SDDL1 that aren't documented in Syntax.md but are visible in +# tools/sddl/compiler/Grammar.cpp: +# +# * Lambdas / parameterized records: `Name = (a, b) { ...body... }` +# * Conditional fields are emulated with the array-length trick. +# * abs(x) is emulated arithmetically +# +# NOTE: SDDL1 lambdas do NOT capture surrounding-scope variables. Anything a +# lambda body uses must be defined inside the body or passed as a parameter. +# ============================================================================= + +# ---- Header ---- +# STARN can be negative (encodes J2000 vs B1950), so use Int32LE. +Header = { + STAR0: Int32LE # Subtract from star number to get sequence number + STAR1: Int32LE # First star number in file + STARN: Int32LE # Number of stars; <0 -> J2000 coordinates + STNUM: Int32LE # ID scheme / name flag + MPROP: Int32LE # Motion info: 0=none, 1=proper, 2=radial + NMAG : Int32LE # Number of magnitudes (negative allowed) + NBENT: Int32LE # Bytes per star entry +} + +# ---- abs() helper ---- +abs = (val) { + _ret = val * (2 * (val >= 0) - 1) +} + +# ---- Star entry as a parameterized lambda ---- +StarEntryLambda = (abs, STNUM, MPROP, NMAG) { + XnoSub = { XNO: Float32LE } # when STNUM > 0 + PmSub = { # when MPROP >= 1 + XRPM: Float32LE + XDPM: Float32LE + } + RvSub = { SVEL: Float64LE } # when MPROP == 2 + + : XnoSub[STNUM > 0] # Optional catalog number + + SRA0 : Float64LE # Right ascension (radians) + SDEC0: Float64LE # Declination (radians) + ISP : Byte[2] # Spectral type + + : Int16LE[(:abs(NMAG))._ret] # |NMAG| magnitudes + + : PmSub[MPROP >= 1] # Proper motion (R.A., Dec.) + : RvSub[MPROP == 2] # Radial velocity + + : Byte[STNUM > 0 * -STNUM] # Object name, length |STNUM| if STNUM<0 +} + +# ---- File structure ---- +header: Header + +STNUM = header.STNUM +MPROP = header.MPROP +NMAG = header.NMAG +STARN = header.STARN + +StarEntry = StarEntryLambda(abs, STNUM, MPROP, NMAG) +: StarEntry[STARN] diff --git a/examples/sddl/sao_silesia.oldv1.sddl b/examples/sddl/sao_silesia.oldv1.sddl new file mode 100644 index 000000000..a7f981d2f --- /dev/null +++ b/examples/sddl/sao_silesia.oldv1.sddl @@ -0,0 +1,21 @@ +# ========================================== +# Star Catalog +# File `sao` part of the silesia compression corpus +# Using SDDL1 last syntax (undocumented) +# ========================================== + +# Star entry definition (Record with 6 fields) +StarEntry = { + Float64LE + Float64LE + Byte + Byte + Int16LE + Float32LE + Float32LE +} + +# File structure +: Byte[28] +num_stars = _rem / sizeof StarEntry +: StarEntry[num_stars] diff --git a/examples/sddl2/sao_full.sddl b/examples/sddl2/sao_full.sddl new file mode 100644 index 000000000..63306b40f --- /dev/null +++ b/examples/sddl2/sao_full.sddl @@ -0,0 +1,55 @@ +# ========================================== +# Star Catalog Format (B1950 / J2000) +# Supports complete specification +# at http://tdc-www.harvard.edu/software/catalogs/catalogsb.html +# Using SDDL v0.6 +# ========================================== + +record CatalogHeader() { + STAR0: Int32LE, # Subtract from star number to get sequence number + STAR1: Int32LE, # First star number in file + STARN: Int32LE, # Number of stars; <0 → coordinates J2000 + STNUM: Int32LE, # ID scheme / name flag + MPROP: Int32LE, # Motion info: 0=none, 1=proper, 2=radial + NMAG: Int32LE, # Number of magnitudes (0–10) + NBENT: Int32LE # Bytes per star entry +} + +# ------------------------------------------ +# Star entry definition +# ------------------------------------------ +record StarEntry(STNUM, MPROP, NMAG) { + when STNUM > 0 { XNO: Float32LE }, # Catalog number + + SRA0: Float64LE, # Right Ascension (radians) + SDEC0: Float64LE, # Declination (radians) + ISP: Bytes(2), # Spectral type + + when abs(NMAG) > 0 { MAG: Int16LE[abs(NMAG)] }, # Magnitudes (0–10) + + when MPROP >= 1 { + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion + }, + + when MPROP == 2 { SVEL: Float64LE }, # Radial velocity + + when STNUM < 0 { NAME: Bytes(-STNUM) } # Object name +} + + +# ------------------------------------------ +# File structure +# ------------------------------------------ +header: CatalogHeader + +# Parse the header to get the number of stars and entry parameters +STNUM = header.STNUM +MPROP = header.MPROP +NMAG = header.NMAG +NBENT = header.NBENT +record_count = abs(header.STARN) + +expect sizeof(StarEntry(STNUM, MPROP, NMAG)) == NBENT + +stars: StarEntry(STNUM, MPROP, NMAG)[record_count] diff --git a/examples/sddl2/sao_silesia.sddl b/examples/sddl2/sao_silesia.sddl new file mode 100644 index 000000000..890e2968d --- /dev/null +++ b/examples/sddl2/sao_silesia.sddl @@ -0,0 +1,23 @@ +# ========================================== +# Star Catalog +# File `sao` part of the silesia compression corpus +# Using SDDL v0.5 +# ========================================== + +# ------------------------------------------ +# Star entry definition +# ------------------------------------------ +record StarEntry() { + SRA0: Float64LE, # Right Ascension (radians) + SDEC0: Float64LE, # Declination (radians) + ISP: Bytes(2), # Spectral type + MAG: Int16LE, # Magnitudes (0–10) + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion +} + +# ------------------------------------------ +# File structure +# ------------------------------------------ +header: Byte[28] +stars: StarEntry[] diff --git a/examples/sddl2_asm/sao_full.asm b/examples/sddl2_asm/sao_full.asm new file mode 100644 index 000000000..325096dcb --- /dev/null +++ b/examples/sddl2_asm/sao_full.asm @@ -0,0 +1,130 @@ +############################################################ +# SAO Star Catalog Format (B1950 / J2000) +# SDDL2 Assembly - Full Implementation +# +# Translation of sao_full.sddl to SDDL2 assembly using only +# existing opcodes (no var.* or macros needed). +# +# Strategy: Reload header values from buffer as needed, use +# push.stack_depth for counting conditional types. +############################################################ + +# ------------------------------------------ +# SECTION 1: Parse Header (28 bytes) +# ------------------------------------------ +push.i32 28 +segment.create_unspecified + +# ------------------------------------------ +# SECTION 2: Build Conditional Type Structure +# ------------------------------------------ + +# Optional XNO (Float32LE if STNUM > 0) +push.type.f32le +push.u32 12 +load.i32le # STNUM +push.zero +cmp.le # STNUM <= 0 → drops when STNUM <= 0 → keeps when STNUM > 0 +stack.drop_if + +# Always: SRA0 (Float64LE) +push.type.f64le + +# Always: SDEC0 (Float64LE) +push.type.f64le + +# Always: ISP (Bytes[2]) +push.type.bytes +push.u32 2 +type.fixed_array + +# Optional MAG (Int16LE[abs(NMAG)] if NMAG != 0) +push.u32 20 +load.i32le # NMAG +stack.dup +push.zero +cmp.eq +stack.swap +math.abs +stack.dup +push.u32 10 +cmp.le +expect_true +push.type.i16le +stack.swap +type.fixed_array +stack.swap +stack.drop_if + +# Optional XRPM (Float32LE if MPROP >= 1) +push.type.f32le +push.u32 16 +load.i32le # MPROP +push.u32 1 +cmp.lt +stack.drop_if + +# Optional XDPM (Float32LE if MPROP >= 1) +push.type.f32le +push.u32 16 +load.i32le # MPROP +push.u32 1 +cmp.lt +stack.drop_if + +# Optional SVEL (Float64LE if MPROP == 2) +push.type.f64le +push.u32 16 +load.i32le # MPROP +push.u32 2 +cmp.ne +stack.drop_if + +# Optional NAME (Bytes[abs(STNUM)] if STNUM < 0) +push.u32 12 +load.i32le # STNUM +stack.dup +push.zero +cmp.ge +stack.swap +math.abs +push.type.bytes +stack.swap +type.fixed_array +stack.swap +stack.drop_if + +# ------------------------------------------ +# SECTION 3: Count Types and Create Structure +# Stack: Type0, Type1, ..., TypeN +# ------------------------------------------ + +push.stack_depth +type.structure + +# ------------------------------------------ +# SECTION 4: Validate entry_size using type.sizeof +# Stack: StarEntry_type +# ------------------------------------------ + +stack.dup # Duplicate the type for validation +type.sizeof # Get size of the structure type +push.u32 24 +load.i32le # NBENT (expected entry size) +cmp.eq +expect_true + +# ------------------------------------------ +# SECTION 5: Create Stars Segment +# Stack: StarEntry_type +# ------------------------------------------ +push.tag 1 +stack.swap + +push.u32 8 +load.i32le # STARN +math.abs + +segment.create_tagged + +halt diff --git a/examples/sddl2_asm/sao_full.bin b/examples/sddl2_asm/sao_full.bin new file mode 100644 index 000000000..7932d4eb3 Binary files /dev/null and b/examples/sddl2_asm/sao_full.bin differ diff --git a/examples/sddl2_asm/sao_silesia.asm b/examples/sddl2_asm/sao_silesia.asm new file mode 100644 index 000000000..35cb37ce6 --- /dev/null +++ b/examples/sddl2_asm/sao_silesia.asm @@ -0,0 +1,83 @@ +# ========================================== +# SAO Star Catalog - SDDL2 Assembly +# Compiled from sao_silesia.sddl +# ========================================== +# +# This demonstrates the power of push.remaining for dynamic +# data layout where the number of records isn't known upfront. +# +# File structure: +# - 28-byte header +# - Variable number of 28-byte StarEntry records +# +# Each StarEntry contains: +# - SRA0: Float64LE (8 bytes) - Right Ascension +# - SDEC0: Float64LE (8 bytes) - Declination +# - ISP: Bytes[2] (2 bytes) - Spectral type (ASCII) +# - MAG: Int16LE (2 bytes) - Magnitude +# - XRPM: Float32LE (4 bytes) - RA proper motion +# - XDPM: Float32LE (4 bytes) - Dec proper motion +# Total: 28 bytes per star +# ========================================== + +# ------------------------------------------ +# Step 1: Process header +# ------------------------------------------ +push.i32 28 # Header size +segment.create_unspecified + +# ------------------------------------------ +# Step 2: Build StarEntry structure type +# ------------------------------------------ +push.type.f64le # SRA0: Right Ascension (8 bytes) - FIRST +push.type.f64le # SDEC0: Declination (8 bytes) + +# ISP: Spectral type - 2 bytes as Bytes[2] + +#push.type.bytes # Base type: Bytes +#push.i32 2 # Array size: 2 +#type.fixed_array # Creates Bytes[2] type + +push.type.u16le # Treat 2 bytes as a 16-bit unsigned integer + # This is not completely accurate, + # but the trainer works better this way + +push.type.i16le # MAG: Magnitude (2 bytes) +push.type.f32le # XRPM: RA proper motion (4 bytes) +push.type.f32le # XDPM: Dec proper motion (4 bytes) - LAST + +# Now create the structure with all 6 members +push.i32 6 # Member count +type.structure # Stack: StarEntry_type + +# ------------------------------------------ +# Step 4: Create stars segment (tag 2) +# ------------------------------------------ +# Stack currently has: StarEntry_type +# We need: tag, type, count for segment.create_tagged + +push.tag 2 # Tag for "stars" +stack.swap # Stack: tag, StarEntry_type + +# ------------------------------------------ +# Step 3: Calculate number of star entries +# ------------------------------------------ +# After consuming 28 bytes for header, use remaining bytes +# to determine how many complete StarEntry records exist. +# Each StarEntry is exactly 28 bytes. + +push.remaining # Stack: remaining_bytes +push.u32 28 # Stack: remaining_bytes, 28 +math.div # Stack: star_count = remaining_bytes / 28 + +# Note: In production, you'd want to validate that +# remaining_bytes % 28 == 0 to ensure complete records. +# For this example, we assume the file is well-formed. + +# ------------------------------------------ +# Step 4: Create Segment +# ------------------------------------------ +# Stack: tag, StarEntry_type, star_count +segment.create_tagged + +halt # note: optional diff --git a/examples/sddl2_asm/sao_silesia.bin b/examples/sddl2_asm/sao_silesia.bin new file mode 100644 index 000000000..5913f72f8 Binary files /dev/null and b/examples/sddl2_asm/sao_silesia.bin differ diff --git a/examples/zs2_selector.c b/examples/zs2_selector.c index 0f8e64052..1beaa4754 100644 --- a/examples/zs2_selector.c +++ b/examples/zs2_selector.c @@ -8,7 +8,6 @@ #include "openzl/zl_public_nodes.h" /* ------ create custom transforms -------- */ -#include "openzl/zl_ctransform.h" // ZL_PipeEncoderDesc // Made up custom transforms #include // printf diff --git a/include/openzl/codecs/zl_bitpack.h b/include/openzl/codecs/zl_bitpack.h index cbc022138..4257768fe 100644 --- a/include/openzl/codecs/zl_bitpack.h +++ b/include/openzl/codecs/zl_bitpack.h @@ -11,11 +11,7 @@ extern "C" { // These Graphs essentially call their namesake Node and then STORE the result // into the frame -#define ZL_GRAPH_BITPACK \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_bitpack \ - } +#define ZL_GRAPH_BITPACK ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_bitpack) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_bitsplit.h b/include/openzl/codecs/zl_bitsplit.h new file mode 100644 index 000000000..39b3d6a86 --- /dev/null +++ b/include/openzl/codecs/zl_bitsplit.h @@ -0,0 +1,36 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_H +#define OPENZL_CODECS_BITSPLIT_H + +#include "openzl/zl_nodes.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +// bitsplit transforms + +// Input : 1 numeric stream (all widths supported: 1, 2, 4, 8 bytes) +// Output : 1 or 2 numeric streams (lower remainder bits, upper bits) +// Note : All variants share the same wire format (bitSplit). +// Each variant bundles a different policy for choosing bit widths. +#define ZL_NODE_BITSPLIT_TOP8 ZL_MAKE_NODE_ID(ZL_StandardNodeID_bitsplit_top8) + +// input : 1 numeric stream (IEEE 754 widths: 2, 4, or 8 bytes) +// output : 1 variable output stream of 3 outputs +// (mantissa, exponent, sign) +// Supports IEEE 754 fp16, fp32, fp64. +#define ZL_NODE_BITSPLIT_FP ZL_MAKE_NODE_ID(ZL_StandardNodeID_bitsplit_fp) + +// input : 1 numeric stream (2-byte bfloat16 elements) +// output : 1 variable output stream of 3 outputs +// (mantissa, exponent, sign) +// bfloat16: sign (1 bit), exponent (8 bits), mantissa (7 bits). +#define ZL_NODE_BITSPLIT_BF16 ZL_MAKE_NODE_ID(ZL_StandardNodeID_bitsplit_bf16) + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/include/openzl/codecs/zl_bitunpack.h b/include/openzl/codecs/zl_bitunpack.h index 6c40af594..05085b56a 100644 --- a/include/openzl/codecs/zl_bitunpack.h +++ b/include/openzl/codecs/zl_bitunpack.h @@ -23,20 +23,20 @@ extern "C" { // zeroes. Both of these invariants are checked and compression would fail if // the checks fail. enum { ZL_Bitunpack_numBits = 1 }; -#define ZS2_NODE_BITUNPACK \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_bitunpack \ - } -#define ZL_CREATENODE_BITUNPACK(graph, nbBits) \ - ZL_Compressor_cloneNode( \ - graph, \ - ZS2_NODE_BITUNPACK, \ - &(const ZL_LocalParams){ \ - { &(const ZL_IntParam){ ZL_Bitunpack_numBits, nbBits }, \ - 1 }, \ - { NULL, 0 }, \ - { NULL, 0 } }) +#define ZS2_NODE_BITUNPACK ZL_MAKE_NODE_ID(ZL_StandardNodeID_bitunpack) +#define ZL_CREATENODE_BITUNPACK(graph, nbBits) \ + ZL_Compressor_registerParameterizedNode( \ + graph, \ + &(const ZL_ParameterizedNodeDesc){ \ + .node = ZS2_NODE_BITUNPACK, \ + .localParams = \ + &(const ZL_LocalParams){ \ + { &(const ZL_IntParam){ \ + ZL_Bitunpack_numBits, nbBits }, \ + 1 }, \ + { NULL, 0 }, \ + { NULL, 0 } }, \ + }) ZL_NodeID ZL_Compressor_registerBitunpackNode( ZL_Compressor* cgraph, int nbBits); diff --git a/include/openzl/codecs/zl_concat.h b/include/openzl/codecs/zl_concat.h index a9aa6c462..64701e66d 100644 --- a/include/openzl/codecs/zl_concat.h +++ b/include/openzl/codecs/zl_concat.h @@ -14,39 +14,23 @@ extern "C" { // Output : 1 numeric stream, containing the size of each Input stream, // + 1 serial stream, concatenation of all Input Streams, preserving // order. -#define ZL_NODE_CONCAT_SERIAL \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_concat_serial \ - } +#define ZL_NODE_CONCAT_SERIAL ZL_MAKE_NODE_ID(ZL_StandardNodeID_concat_serial) // Concat Numeric // Input : Multiple Numeric streams (this is a VI node) // Output : 1 numeric stream, containing the size of each Input stream, // + 1 numeric stream, concatenation of all Input Streams, preserving // order. -#define ZL_NODE_CONCAT_NUMERIC \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_concat_num \ - } +#define ZL_NODE_CONCAT_NUMERIC ZL_MAKE_NODE_ID(ZL_StandardNodeID_concat_num) // Concat Struct // Input : Multiple Struct streams (this is a VI node) // Output : 1 numeric stream, containing the size of each Input stream, // + 1 struct stream, concatenation of all Input Streams, preserving // order. -#define ZL_NODE_CONCAT_STRUCT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_concat_struct \ - } - -#define ZL_NODE_CONCAT_STRING \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_concat_string \ - } +#define ZL_NODE_CONCAT_STRUCT ZL_MAKE_NODE_ID(ZL_StandardNodeID_concat_struct) + +#define ZL_NODE_CONCAT_STRING ZL_MAKE_NODE_ID(ZL_StandardNodeID_concat_string) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_constant.h b/include/openzl/codecs/zl_constant.h index 406816fd0..038a737c2 100644 --- a/include/openzl/codecs/zl_constant.h +++ b/include/openzl/codecs/zl_constant.h @@ -18,11 +18,7 @@ extern "C" { // Note : compression will fail if the stream is empty or isn't constant // Example 1 : 1 1 1 1 1 as 5 fields of size 1 => 1 as 1 field of size 1 // Example 2 : 300 300 300 as 3 fields of size 3 => 300 as 1 field of size 3 -#define ZL_GRAPH_CONSTANT \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_constant \ - } +#define ZL_GRAPH_CONSTANT ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_constant) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_conversion.h b/include/openzl/codecs/zl_conversion.h index 6f032c524..e009b1833 100644 --- a/include/openzl/codecs/zl_conversion.h +++ b/include/openzl/codecs/zl_conversion.h @@ -6,12 +6,12 @@ #include #include +#include "openzl/zl_data.h" #include "openzl/zl_graph_api.h" #include "openzl/zl_graphs.h" #include "openzl/zl_localParams.h" #include "openzl/zl_nodes.h" #include "openzl/zl_opaque_types.h" -#include "openzl/zl_stream.h" #if defined(__cplusplus) extern "C" { @@ -319,22 +319,24 @@ ZL_Edge_runConvertSerialToStringNode( // The reverse operation, unbundling string, actually generates 2 output // streams: the first one (serialized) with the concatenation of all strings, // and the second one (numeric) for the array of string sizes. -#define ZL_NODE_SEPARATE_STRING_COMPONENTS \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_separate_string_components \ - } +#define ZL_NODE_SEPARATE_STRING_COMPONENTS \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_separate_string_components) // Old names for nodes enum { ZL_trlip_tokenSize = 1 }; -#define ZL_CREATENODE_CONVERT_SERIAL_TO_TOKEN(g, l) \ - ZL_Compressor_cloneNode( \ - g, \ - ZL_NODE_CONVERT_SERIAL_TO_STRUCT, \ - &(const ZL_LocalParams){ \ - { &(const ZL_IntParam){ ZL_trlip_tokenSize, l }, 1 }, \ - { NULL, 0 }, \ - { NULL, 0 } }) +#define ZL_CREATENODE_CONVERT_SERIAL_TO_TOKEN(g, l) \ + ZL_Compressor_registerParameterizedNode( \ + g, \ + &(const ZL_ParameterizedNodeDesc){ \ + .node = ZL_NODE_CONVERT_SERIAL_TO_STRUCT, \ + .localParams = \ + &(const ZL_LocalParams){ \ + { &(const ZL_IntParam){ \ + ZL_trlip_tokenSize, l }, \ + 1 }, \ + { NULL, 0 }, \ + { NULL, 0 } }, \ + }) #define ZL_NODE_CONVERT_SERIAL_TO_TOKENX ZL_NODE_CONVERT_SERIAL_TO_STRUCT #define ZL_NODE_CONVERT_SERIAL_TO_TOKEN2 ZL_NODE_CONVERT_SERIAL_TO_STRUCT2 diff --git a/include/openzl/codecs/zl_conversion_manual.md b/include/openzl/codecs/zl_conversion_manual.md index 5a3d3372d..dc694fa8f 100644 --- a/include/openzl/codecs/zl_conversion_manual.md +++ b/include/openzl/codecs/zl_conversion_manual.md @@ -14,7 +14,7 @@ An input of type serial, struct, numeric. A single output of the specified type that is compatible - serial, struct, numeric. The output contains the converted data in the output format. See the spec for more details on the typed format. ## SerialToString -StringToSerial has 2 ouputs, one of type serial containing a serial representation of the string data, the second output contains a numeric output containing sizes of the strings in the input. +StringToSerial has 2 outputs, one of type serial containing a serial representation of the string data, the second output contains a numeric output containing sizes of the strings in the input. ### Use Cases Used to invoke codecs with different underlying types from the received type. One common example is entropy codecs which only take serial inputs. When compressing numeric data, it is necessary to convert to serial then run the entropy codecs. diff --git a/include/openzl/codecs/zl_dedup.h b/include/openzl/codecs/zl_dedup.h index d9882f44c..75ed4f922 100644 --- a/include/openzl/codecs/zl_dedup.h +++ b/include/openzl/codecs/zl_dedup.h @@ -13,11 +13,7 @@ extern "C" { // Input : Multiple Numeric streams (this is a VI node) // Condition: All input streams must be exactly identical // Output : 1 numeric stream, one copy of Input Streams -#define ZL_NODE_DEDUP_NUMERIC \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_dedup_num \ - } +#define ZL_NODE_DEDUP_NUMERIC ZL_MAKE_NODE_ID(ZL_StandardNodeID_dedup_num) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_delta.h b/include/openzl/codecs/zl_delta.h index efec76ef7..084a0c2ab 100644 --- a/include/openzl/codecs/zl_delta.h +++ b/include/openzl/codecs/zl_delta.h @@ -15,11 +15,7 @@ extern "C" { // Result : this transform stores the first value "raw", // and then each value is a delta from previous value. // Negative values are stored using 2-complement convention. -#define ZL_NODE_DELTA_INT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_delta_int \ - } +#define ZL_NODE_DELTA_INT ZL_MAKE_NODE_ID(ZL_StandardNodeID_delta_int) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_dispatch.h b/include/openzl/codecs/zl_dispatch.h index fce912f34..51d797acc 100644 --- a/include/openzl/codecs/zl_dispatch.h +++ b/include/openzl/codecs/zl_dispatch.h @@ -6,10 +6,10 @@ #include #include +#include "openzl/zl_data.h" #include "openzl/zl_graph_api.h" #include "openzl/zl_nodes.h" #include "openzl/zl_opaque_types.h" -#include "openzl/zl_stream.h" #if defined(__cplusplus) extern "C" { @@ -57,11 +57,7 @@ extern "C" { // ZL_DISPATCH_CHANNEL_ID, which can be used for coordination with // downstream node if needed. // -#define ZL_NODE_DISPATCH \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_dispatchN_byTag \ - } +#define ZL_NODE_DISPATCH ZL_MAKE_NODE_ID(ZL_StandardNodeID_dispatchN_byTag) typedef struct { const size_t* segmentSizes; @@ -134,11 +130,8 @@ ZL_Edge_runDispatchNode( #define ZL_DISPATCH_STRING_NUM_OUTPUTS_PID 47 #define ZL_DISPATCH_STRING_INDICES_PID 48 -#define ZL_NODE_DISPATCH_STRING \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_dispatch_string \ - } +#define ZL_NODE_DISPATCH_STRING \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_dispatch_string) /** * Convenience function to get the maximum number of dispatches supported by the diff --git a/include/openzl/codecs/zl_divide_by.h b/include/openzl/codecs/zl_divide_by.h index 22254af30..785f70fde 100644 --- a/include/openzl/codecs/zl_divide_by.h +++ b/include/openzl/codecs/zl_divide_by.h @@ -20,14 +20,10 @@ extern "C" { // by the divisor. If 0 is // provided or the divisor is unavailable, instead calculates the GCD // and uses that as the divisor. -#define ZL_NODE_DIVIDE_BY \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_divide_by \ - } +#define ZL_NODE_DIVIDE_BY ZL_MAKE_NODE_ID(ZL_StandardNodeID_divide_by) /// If set, 8-byte local param key containing the divisor -/// If unset, the disor is computed to be the GSD +/// If unset, the divisor is computed to be the GCD #define ZL_DIVIDE_BY_PID 112 /** diff --git a/include/openzl/codecs/zl_entropy.h b/include/openzl/codecs/zl_entropy.h index c2a405850..746797a43 100644 --- a/include/openzl/codecs/zl_entropy.h +++ b/include/openzl/codecs/zl_entropy.h @@ -11,26 +11,14 @@ extern "C" { // Entropy backend that can use backends that are at least as fast as FSE // Supports serialized inputs -#define ZL_GRAPH_FSE \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_fse \ - } +#define ZL_GRAPH_FSE ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_fse) // Entropy backend that can use backends that are at least as fast as Huffman // Supports both serialized & 2-byte struct inputs -#define ZL_GRAPH_HUFFMAN \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_huffman \ - } +#define ZL_GRAPH_HUFFMAN ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_huffman) // Entropy backend that can use any backend that satisfies the compression & // decompression speed requirements. Supports both serialized & 2-byte struct // inputs -#define ZL_GRAPH_ENTROPY \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_entropy \ - } +#define ZL_GRAPH_ENTROPY ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_entropy) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_field_lz.h b/include/openzl/codecs/zl_field_lz.h index b976dae58..e4e36440e 100644 --- a/include/openzl/codecs/zl_field_lz.h +++ b/include/openzl/codecs/zl_field_lz.h @@ -23,11 +23,7 @@ extern "C" { // Output 3: Offsets: A numeric stream of non-zero u32 offsets. // Output 4: Extra Literal Lengths: A numeric stream of u32 lengths. // Output 5: Extra Match Lengths: A numeric stream of u32 lengths. -#define ZL_NODE_FIELD_LZ \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_field_lz \ - } +#define ZL_NODE_FIELD_LZ ZL_MAKE_NODE_ID(ZL_StandardNodeID_field_lz) /** * Create the field lz graph with the default backends. @@ -36,11 +32,7 @@ extern "C" { * * Input: A fixed size stream of width 1, 2, 4, or 8. */ -#define ZL_GRAPH_FIELD_LZ \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_field_lz \ - } +#define ZL_GRAPH_FIELD_LZ ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_field_lz) /// DEPRECATED: Use ZL_GRAPH_FIELD_LZ instead. /// @returns ZL_GRAPH_FIELD_LZ diff --git a/include/openzl/codecs/zl_flatpack.h b/include/openzl/codecs/zl_flatpack.h index c3546cdfa..0e79e9c68 100644 --- a/include/openzl/codecs/zl_flatpack.h +++ b/include/openzl/codecs/zl_flatpack.h @@ -9,11 +9,7 @@ extern "C" { #endif -#define ZL_GRAPH_FLATPACK \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_flatpack \ - } +#define ZL_GRAPH_FLATPACK ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_flatpack) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_float_deconstruct.h b/include/openzl/codecs/zl_float_deconstruct.h index dd73ac3da..d176a27ba 100644 --- a/include/openzl/codecs/zl_float_deconstruct.h +++ b/include/openzl/codecs/zl_float_deconstruct.h @@ -16,21 +16,12 @@ extern "C" { // Note : See zstrong/compress/transforms/float_deconstruct_encode.h for // detailed description // of the bit layout for each transform. -#define ZL_NODE_FLOAT32_DECONSTRUCT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_float32_deconstruct \ - } -#define ZL_NODE_BFLOAT16_DECONSTRUCT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_bfloat16_deconstruct \ - } -#define ZL_NODE_FLOAT16_DECONSTRUCT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_float16_deconstruct \ - } +#define ZL_NODE_FLOAT32_DECONSTRUCT \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_float32_deconstruct) +#define ZL_NODE_BFLOAT16_DECONSTRUCT \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_bfloat16_deconstruct) +#define ZL_NODE_FLOAT16_DECONSTRUCT \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_float16_deconstruct) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_generic.h b/include/openzl/codecs/zl_generic.h index fd298c3ca..fd5925f7a 100644 --- a/include/openzl/codecs/zl_generic.h +++ b/include/openzl/codecs/zl_generic.h @@ -9,27 +9,20 @@ extern "C" { #endif -#define ZL_GRAPH_COMPRESS_GENERIC \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_compress_generic \ - } // "default" compression for any stream type - supports multiple inputs -#define ZL_GRAPH_GENERIC_LZ_BACKEND \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_select_generic_lz_backend \ - } // Selects between LZ backends based on compression level - superseded by - // ZL_GRAPH_COMPRESS_GENERIC - could be retired now +// "default" compression for any stream type - supports multiple inputs +#define ZL_GRAPH_COMPRESS_GENERIC \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_compress_generic) + +// Selects between LZ backends based on compression level - superseded by +// ZL_GRAPH_COMPRESS_GENERIC - could be retired now +#define ZL_GRAPH_GENERIC_LZ_BACKEND \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_select_generic_lz_backend) // Numeric // Input : 1 stream of numeric data // Result : compresses a stream of numeric data using a GBT model to select the // best compression algorithm based on stream -#define ZL_GRAPH_NUMERIC \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_select_numeric \ - } +#define ZL_GRAPH_NUMERIC ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_select_numeric) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_illegal.h b/include/openzl/codecs/zl_illegal.h index ce100118e..5b90cf87d 100644 --- a/include/openzl/codecs/zl_illegal.h +++ b/include/openzl/codecs/zl_illegal.h @@ -11,21 +11,13 @@ extern "C" { #endif // Error node, to specify an error in functions that return ZL_NodeID -#define ZL_NODE_ILLEGAL \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_illegal \ - } +#define ZL_NODE_ILLEGAL ZL_MAKE_NODE_ID(ZL_StandardNodeID_illegal) // Error graph, to specify an error in functions that return ZL_GraphID -#define ZL_GRAPH_ILLEGAL \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_illegal \ - } +#define ZL_GRAPH_ILLEGAL ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_illegal) #if defined(__cplusplus) -} +} // extern "C" #endif #endif diff --git a/include/openzl/codecs/zl_interleave.h b/include/openzl/codecs/zl_interleave.h index bfeb8f249..ca7b90d57 100644 --- a/include/openzl/codecs/zl_interleave.h +++ b/include/openzl/codecs/zl_interleave.h @@ -12,11 +12,8 @@ extern "C" { // Input: Variable number of stream with the same type and number of elements // Output: 1 stream with the same type consisting of the input streams // interleaved in round-robin order -#define ZL_NODE_INTERLEAVE_STRING \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_interleave_string \ - } +#define ZL_NODE_INTERLEAVE_STRING \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_interleave_string) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_lz.h b/include/openzl/codecs/zl_lz.h new file mode 100644 index 000000000..b2cd27603 --- /dev/null +++ b/include/openzl/codecs/zl_lz.h @@ -0,0 +1,37 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_LZ_H +#define OPENZL_CODECS_LZ_H + +#include "openzl/zl_graphs.h" +#include "openzl/zl_nodes.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +// LZ compresses a serial byte stream using LZ77 matching, +// decomposing it into four output streams. +// +// Input: A serial byte stream. +// Output 1: Literals: A serial stream of unmatched bytes. +// Output 2: Offsets: A numeric stream of match distances. +// Output 3: Literal Lengths: A numeric stream of literal run lengths. +// Output 4: Match Lengths: A numeric stream of match lengths. +#define ZL_NODE_LZ ZL_MAKE_NODE_ID(ZL_StandardNodeID_lz) + +/// Standard function graph for LZ compression. +/// Runs ZL_NODE_LZ with presets to offer performance similar to Zstd. +/// In the future, it will be parameterizable to select different tradeoffs +/// (like LZ4) and control the parameters like compression level. +#define ZL_GRAPH_LZ ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_lz) + +/// The LZ encoder sets the metadata on this ID to the minimum possible +/// match length emitted by the encoder. +#define ZL_LZ_MIN_MATCH_LENGTH_METADATA_ID 77 + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/include/openzl/codecs/zl_lz4.h b/include/openzl/codecs/zl_lz4.h new file mode 100644 index 000000000..e40d9c806 --- /dev/null +++ b/include/openzl/codecs/zl_lz4.h @@ -0,0 +1,27 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_LZ4_H +#define OPENZL_CODECS_LZ4_H + +#include "openzl/zl_errors.h" +#include "openzl/zl_graphs.h" +#include "openzl/zl_opaque_types.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +#define ZL_GRAPH_LZ4 ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_lz4) + +/// @returns ZL_GRAPH_LZ4 with overridden compression level +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildLZ4Graph(ZL_Compressor* cgraph, int compressionLevel); + +/// Set this integer parameter to override the compression level +#define ZL_LZ4_COMPRESSION_LEVEL_OVERRIDE_PID 0 + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/include/openzl/codecs/zl_merge_sorted.h b/include/openzl/codecs/zl_merge_sorted.h index adca02a54..9d511074b 100644 --- a/include/openzl/codecs/zl_merge_sorted.h +++ b/include/openzl/codecs/zl_merge_sorted.h @@ -3,6 +3,7 @@ #ifndef ZSTRONG_CODECS_MERGE_SORTED_H #define ZSTRONG_CODECS_MERGE_SORTED_H +#include "openzl/zl_graphs.h" #include "openzl/zl_nodes.h" #include "openzl/zl_opaque_types.h" @@ -23,11 +24,7 @@ extern "C" { // Bitset with one bit per sorted run. The width is determined // by the number of sorted runs. // Output 1: Numeric: The merged list of strictly increasing u32s -#define ZL_NODE_MERGE_SORTED \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_merge_sorted \ - } +#define ZL_NODE_MERGE_SORTED ZL_MAKE_NODE_ID(ZL_StandardNodeID_merge_sorted) /** * Creates a graph for ZL_NODE_MERGE_SORTED that first detects whether diff --git a/include/openzl/codecs/zl_mlselector.h b/include/openzl/codecs/zl_mlselector.h new file mode 100644 index 000000000..360f3b4de --- /dev/null +++ b/include/openzl/codecs/zl_mlselector.h @@ -0,0 +1,53 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_CODECS_MLSELECTOR_H +#define ZSTRONG_CODECS_MLSELECTOR_H + +#include "openzl/zl_errors.h" +#include "openzl/zl_opaque_types.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +#define ZL_GRAPH_ML_SELECTOR ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_ml_selector) + +/** + * @brief Builds an untrained ML selector graph. + * + * The ML selector uses an XGBoost model to predict which successor to use for + * compression. Until trained, this selector always selects the first successor. + * + * Supported types: Numeric integer data. + * + * Training workflow: + * 1. Build your compressor with an ML selector graph using this function + * 2. Wrap the resulting graph with ZL_NODE_CONVERT_SERIAL_TO_NUM_LE# (for + * #-bit data) and parameterize using ZL_Compressor_parameterizeGraph + * 3. Serialize the compressor: compressor.serialize() -> save to file.zlc + * 4. Train: ./zli train --compressor file.zlc -o trained.zli + * 5. Use: ./zli compress --compressor trained.zli -o + * + * Alternatively, use the built-in profile for 64-bit numeric data: + * ./zli train --profile numeric-ml-selector-64 -o trained.zli + * + * Note: Successor ordering must stay the same between training and inference. + * + * See tools/ml_selector/README.md for more details and example. + * + * @param compressor The compressor to register the graph with + * @param successors The set of successor graphs to choose from + * @param nbSuccessors The number of successors + * @return The graph ID of the registered ML selector, or an error + */ +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildUntrainedMLSelector( + ZL_Compressor* compressor, + const ZL_GraphID* successors, + size_t nbSuccessors); + +#if defined(__cplusplus) +} +#endif + +#endif // ZSTRONG_CODECS_MLSELECTOR_H diff --git a/include/openzl/codecs/zl_mux_lengths.h b/include/openzl/codecs/zl_mux_lengths.h new file mode 100644 index 000000000..44a5a5563 --- /dev/null +++ b/include/openzl/codecs/zl_mux_lengths.h @@ -0,0 +1,52 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_ZL_MUX_LENGTHS_H +#define OPENZL_CODECS_ZL_MUX_LENGTHS_H + +#include "openzl/zl_nodes.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Multiplexes literal lengths and match lengths into a single byte stream + * with overflow streams for values that don't fit inline. + * + * Each (literal_length, match_length) pair is packed into a single byte: + * - Low `split_point` bits: inline literal length + * - Upper `8 - split_point` bits: inline match length (after subtracting + * match_length_bias) + * + * The `split_point` is set via ZL_MUX_LENGTHS_SPLIT_POINT_PID and if unset the + * optimal `split_point` is computed to minimize overflow lengths. + * + * The `match_length_bias` is set via ZL_MUX_LENGTHS_MATCH_LENGTH_BIAS_PID. + * If unset is read from the ZL_LZ_MIN_MATCH_LENGTH_PID of the match lengths + * input. If both are unset it defaults to zero. + * + * Values exceeding the inline capacity are stored in separate overflow streams. + * + * Input 0: Numeric literal lengths + * Input 1: Numeric match lengths + * Output 0: Serial muxed byte stream + * Output 1: Numeric overflow lengths (interleaved literal and match) + */ +#define ZL_NODE_MUX_LENGTHS ZL_MAKE_NODE_ID(ZL_StandardNodeID_mux_lengths) + +/// Int param: number of bits assigned to literal lengths in each muxed byte. +/// Default: computed to minimize overflow lengths. +/// Valid range: [0, 8]. +#define ZL_MUX_LENGTHS_SPLIT_POINT_PID 0 + +/// Int param: match length bias subtracted before muxing. +/// Default: read from the ZL_LZ_MIN_MATCH_LENGTH_PID of the match lengths +/// input or zero if unset. +/// Valid range: [0, 15]. +#define ZL_MUX_LENGTHS_MATCH_LENGTH_BIAS_PID 1 + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/include/openzl/codecs/zl_parse_int.h b/include/openzl/codecs/zl_parse_int.h index cb30ecc2b..7ae1b1eaf 100644 --- a/include/openzl/codecs/zl_parse_int.h +++ b/include/openzl/codecs/zl_parse_int.h @@ -14,11 +14,7 @@ extern "C" { // Input: 1 string stream, each string containing an ASCII representation of an // int64 // Output: 1 numeric stream, integers converted from input strings -#define ZL_NODE_PARSE_INT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_parse_int \ - } +#define ZL_NODE_PARSE_INT ZL_MAKE_NODE_ID(ZL_StandardNodeID_parse_int) /** * Try Parse Int diff --git a/include/openzl/codecs/zl_partition.h b/include/openzl/codecs/zl_partition.h new file mode 100644 index 000000000..e8b1b5ec5 --- /dev/null +++ b/include/openzl/codecs/zl_partition.h @@ -0,0 +1,94 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_ZL_PARTITION_H +#define OPENZL_CODECS_ZL_PARTITION_H + +#include + +#include "openzl/zl_errors.h" +#include "openzl/zl_graphs.h" +#include "openzl/zl_nodes.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Partitions unsigned integers into buckets and extra bits. + * + * Each value is assigned a bucket based on a configurable list of partition + * boundaries. The extra bits encode the offset within the bucket using + * ceil(log2(bucket_size)) bits per value. + * + * Presets are available for common partitioning schemes. + * Custom partition lists can be provided via ZL_PARTITION_CUSTOM_PID. + * + * Input: Numeric unsigned integers (1, 2, 4, or 8 bytes) + * Output 0: Numeric 8-bit unsigned bucket IDs + * Output 1: Serial extra-bits + */ +#define ZL_NODE_PARTITION ZL_MAKE_NODE_ID(ZL_StandardNodeID_partition) + +/// Maximum number of buckets supported by the partition codec. +#define ZL_PARTITION_MAX_PARTITIONS 256 + +/// Int param key selecting a ZL_PartitionPreset value. +#define ZL_PARTITION_PRESET_PID 120 + +/** + * Copy param key for custom partition settings + * + * The format is: + * [uint64_t] starting value for the first partition + * N * [uint64_t] partition size + * + * Requirements: + * - At least one partition + * - If there is only one partition, then the starting value must not be zero + * - Each partition size must be > 0 + * - The sum of the partition sizes must be <= 2^64 + * - If the partitioning does not cover the entire range of inputs, + * the input MUST NOT contain values outside of the range, otherwise + * compression will fail. + */ +#define ZL_PARTITION_CUSTOM_PID 121 + +/// Preset partition IDs for the codec header. +typedef enum { + ZL_PartitionParamsPreset_quantizeOffsets = 0, + ZL_PartitionParamsPreset_quantizeLengths = 1, + ZL_PartitionParamsPreset_varbyte16 = 2, + ZL_PartitionParamsPreset_custom, +} ZL_PartitionParamsPreset; + +/// Build a partition node using a preset partitioning scheme. +ZL_RESULT_OF(ZL_NodeID) +ZL_Compressor_buildPartitionNodeFromPreset( + ZL_Compressor* compressor, + ZL_PartitionParamsPreset preset); + +/// Build a partition node with a custom partition list. +ZL_RESULT_OF(ZL_NodeID) +ZL_Compressor_buildPartitionNode( + ZL_Compressor* compressor, + uint64_t startValue, + const uint64_t* partitionSizes, + size_t numPartitions); + +/// If set to ZL_TernaryParam_auto, use default behavior +/// If set to ZL_TernaryParam_enable, enable optimal mode (slower for slightly +/// better compression) +/// If set to ZL_TernaryParam_disable, disable optimal mode (much faster but +/// slightly worse compression) +#define ZL_GRAPH_PARTITION_BITPACK_OPTIMAL_PID 0 + +/// Graph that computes partition boundaries for 16-bit numeric data, +/// routing bucket IDs to ZL_GRAPH_BITPACK and offsets to ZL_GRAPH_STORE. +#define ZL_GRAPH_PARTITION_BITPACK \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_partition_bitpack) + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/include/openzl/codecs/zl_prefix.h b/include/openzl/codecs/zl_prefix.h index d9101e818..4d1673d00 100644 --- a/include/openzl/codecs/zl_prefix.h +++ b/include/openzl/codecs/zl_prefix.h @@ -29,11 +29,7 @@ extern "C" { // If the // stream is not sorted or there is not much overlap between the strings, // another transform may be more performant (see example 2) -#define ZL_NODE_PREFIX \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_prefix \ - } +#define ZL_NODE_PREFIX ZL_MAKE_NODE_ID(ZL_StandardNodeID_prefix) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_range_pack.h b/include/openzl/codecs/zl_range_pack.h index ee113137c..afe1b9475 100644 --- a/include/openzl/codecs/zl_range_pack.h +++ b/include/openzl/codecs/zl_range_pack.h @@ -13,11 +13,7 @@ extern "C" { // Substracts the minimal (unsigned) element from all other elements in the // stream and outputs the minimal sized numeric stream type that can contain the // 0-based range of values. -#define ZL_NODE_RANGE_PACK \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_range_pack \ - } +#define ZL_NODE_RANGE_PACK ZL_MAKE_NODE_ID(ZL_StandardNodeID_range_pack) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_sddl.md b/include/openzl/codecs/zl_sddl.md index 66651dec0..2753041d1 100644 --- a/include/openzl/codecs/zl_sddl.md +++ b/include/openzl/codecs/zl_sddl.md @@ -1,29 +1,242 @@ ## Introduction -OpenZL's backend compression graphs are most effective on streams of self-similar, typed data. +> [!WARNING] This document describes the syntax for the first version of the +> SDDL language. This differs from the version currently in development. -The Simple Data Description Language (SDDL) module provides a lightweight tool to decompose simple structured data formats into their components, so that they can be effectively compressed by OpenZL's backends. +OpenZL's backend compression graphs are most effective on streams of +self-similar, typed data. + +The Simple Data Description Language (SDDL) module provides a lightweight tool +to decompose simple structured data formats into their components, so that they +can be effectively compressed by OpenZL's backends. The SDDL functionality is comprised of a few pieces: -* The SDDL graph, which takes a compiled description and uses it to parse and split up the input into a number of output streams. +- The SDDL graph, which takes a compiled description and uses it to parse and + decompose the input into a number of output streams. -* The SDDL compiler, which takes a description written in the SDDL language and translates it into the binary format that the SDDL graph accepts. +- The SDDL compiler, which takes a description written in the SDDL language and + translates it into the binary format that the SDDL engine accepts. -* The SDDL profile, a pre-built compressor available in the CLI which runs SDDL on the input and passes all of its outputs to the generic clustering graph. +- The SDDL profile, a pre-built compressor available in the CLI which runs SDDL + on the input and passes all of its outputs to the generic clustering graph. These components and how to use them are described below. ---8<-- "src/tools/sddl/compiler/Syntax.md" +## Writing an SDDL Description + +The Simple Data Description Language is a Domain-Specific Language that makes it +easy to describe to OpenZL the components that make up simple data formats. + +The fundamental task of an SDDL Description is to associate each byte of the +input stream with a corresponding **Field**, whose purpose is to give OpenZL a +hint for how to group and handle that part of the input. SDDL has a number of +built-in fields, like `UInt32LE` or `Byte`. Descriptions can also construct +compound fields (analogous to C structs and arrays) out of other fields. + +The operative part of an SDDL Description, the part that actually constructs +that association between a part of the input stream and a **Field**, is an +operation called **consumption**. Consumption is represented by the `:` operator +and looks like `: Byte`, for example. + +!!! example "Introductory Example" + + Imagine you are trying to compress a stream of readings from an accelerometer. Suppose the format you receive is an array of samples, each of which looks like this in C: + + ``` + struct AccelerometerSample { + uint64_t timestamp; + float x_accel; + float y_accel; + float z_accel; + }; + ``` + + A possible SDDL description of this format would be: + + ``` + # Declare a new compound field "AccelerometerSample" which describes the + # structure of an individual sample using a Record, SDDL's aggregate type. + AccelerometerSample = { + timestamp : UInt64LE; + x_accel : Float32LE; + y_accel : Float32LE; + z_accel : Float32LE; + } + + # Consume the whole input as an array of AccelerometerSample records. + : AccelerometerSample[] + ``` + +When executing an SDDL Description, the SDDL engine starts at the beginning of +the input. As the execution proceeds, and the description is applied to the +input, each consumption operation associates the next byte(s), starting at the +current position, with the consumed field and then advances past the consumed +content. + +The task of the description is complete when all of the input has been consumed. +(If the description ends and the whole input hasn't been consumed, or if the +description tries to consume bytes past the end of the input, the execution +fails.) + +### Examples + +While there's an in-depth language/syntax reference available below, the best +way to gain familiarity with SDDL is probably to look at some examples. So here +are a couple: + +#### SAO + +??? example "SAO File Description" + + ``` + # Send all header fields to the same output + HeaderInt = UInt32LE + + Header = { + STAR0: HeaderInt + STAR1: HeaderInt # First star number in file + STARN: HeaderInt # Number of stars in file + STNUM: HeaderInt # star i.d. number presence + MPROP: HeaderInt # True if proper motion is included + NMAG : HeaderInt # Number of magnitudes present + NBENT: HeaderInt # Number of bytes per star entry + } + + Row = { + SRA0 : Float64LE # Right ascension in degrees + SDEC0: Float64LE # Declination in degrees + IS : Byte[2] # Instrument status flags + MAG : UInt16LE # Magnitude * 100 + XRPM : Float32LE # X-axis rate per minute + XDPM : Float32LE # X-axis drift per minute + } + + # Read the header + header: Header + + # Validate format expectations + expect header.STNUM == 0 + expect header.MPROP == 1 + expect header.NMAG == 1 + expect header.NBENT == sizeof Row + + # The header is followed by STARN records + data: Row[header.STARN] + ``` + +#### Bitmap Images + +??? example "BMP v3 Format Description" + + ``` + # Supports uncompressed BMP Version 3 formatted files, described here: + # https://gibberlings3.github.io/iesdp/file_formats/ie_formats/bmp.htm + # Convert images to this with: + # ``` + # magick $SOURCE -compress none BMP3:$DEST + # ``` + + GenericU8 = UInt8 + GenericU16 = UInt16LE + GenericU32 = UInt32LE + + FileHeader = { + signature : GenericU16 + file_size : GenericU32 + reserved : GenericU32 + data_offset : GenericU32 + } + + file_header : FileHeader + + expect file_header.signature == 0x4d42 # "BM" + expect file_header.reserved == 0 + + InfoHeader = { + header_size : GenericU32 + width : GenericU32 + height : GenericU32 + planes : GenericU16 + bits_per_pixel : GenericU16 + compression : GenericU32 + image_size : GenericU32 + x_pixels_per_m : GenericU32 + y_pixels_per_m : GenericU32 + colors_used : GenericU32 + important_colors : GenericU32 + } + + info_header : InfoHeader + + expect info_header.compression == 0 + + width = info_header.width + height = info_header.height + bits_per_pixel = info_header.bits_per_pixel + + num_colors = ( + (bits_per_pixel == 1) * 2 + + (bits_per_pixel == 4) * 16 + + (bits_per_pixel == 8) * 256 + ) + + ColorTableEntry = { + red : GenericU8; + green : GenericU8; + blue : GenericU8; + reserved : GenericU8; + } + + color_table_entries : ColorTableEntry[num_colors]; + + row1_bytes = 4 * ((width + 31) / 32) + row4_bytes = 4 * ((width + 7) / 8) + row8_bytes = 4 * ((width + 3) / 4) + row16_bytes = 4 * ((width + 1) / 2) + row24_bytes = 4 * ((width + 1) * 3 / 4) + + Image = { + : GenericU8[row1_bytes][height][bits_per_pixel == 1] + : GenericU8[row4_bytes][height][bits_per_pixel == 4] + : GenericU8[row8_bytes][height][bits_per_pixel == 8] + : GenericU16[row16_bytes / 2][height][bits_per_pixel == 16] + : GenericU8[row24_bytes][height][bits_per_pixel == 24] + } + + image : Image + ``` + +#### Binary STL Files + +??? example "STLB Format Description" + + ``` + # Binary STL Files begin with an 80-byte header. + header : Byte[80] + + # Followed by the number of triangles they store. + triangle_count : UInt32LE + + Triangle = { + normal_vec : Float32LE[3] + vertices : Float32LE[3][3] + attributes : Byte[2] + } + + # The rest of the file is triangles + : Triangle[triangle_count] + ``` ## Running SDDL ### The SDDL Profile -The easiest way to run SDDL over an input is via the SDDL profile built into the CLI. +The easiest way to run SDDL over an input is via the SDDL profile built into the +CLI. -!!! example - Start by writing an SDDL Description for your data. Here's a trivial one that splits the input into alternating integer streams: +!!! example Start by writing an SDDL Description for your data. Here's a trivial +one that splits the input into alternating integer streams: ```sh cat <desc.sddl @@ -33,6 +246,8 @@ The easiest way to run SDDL over an input is via the SDDL profile built into the } num_rows = _rem / sizeof Row : Row[num_rows] + + # Consume any remaining input. : Byte[_rem] EOF ``` @@ -57,13 +272,15 @@ The easiest way to run SDDL over an input is via the SDDL profile built into the ### The SDDL Graph -The SDDL Graph allows you to integrate SDDL into compressors other than the prebuilt SDDL profile. You can create an SDDL graph with `ZL_Compressor_buildSDDLGraph`: +The SDDL Graph allows you to integrate SDDL into compressors other than the +prebuilt SDDL profile. You can create an SDDL graph with +`ZL_Compressor_buildSDDLGraph`: ::: ZL_Compressor_buildSDDLGraph The SDDL Graph has the following structure: -``` mermaid +```mermaid flowchart TD subgraph SDDL Graph Desc([Description]); @@ -88,25 +305,79 @@ flowchart TD OuterParam[ZL_LocalCopyParam] --> Desc; ``` -This graph takes a single serial input and applies the given description to it, using that description to decompose the input into fields which are mapped to one or more output streams. These streams, as well as two control streams are all sent to a single invocation of the successor graph. The successor must therefore be a multi-input graph able to accept any number of numeric and serial streams (at least). +This graph takes a single serial input and applies the given description to it, +using that description to decompose the input into fields which are mapped to +one or more output streams. These streams, as well as two control streams are +all sent to a single invocation of the successor graph. The successor must +therefore be a multi-input graph able to accept any number of numeric and serial +streams (at least). + +(The control streams are: a numeric stream containing the stream indices into +which each field has been placed and a numeric stream containing the size of +each field. See also the documentation for `dispatchN_byTag` and particularly, +`ZL_Edge_runDispatchNode()`, which is the underlying component that this graph +uses to actually decompose the input, for more information about the dispatch +operation. These streams respectively are the first and second stream passed +into the successor graph, and the streams into which the input has been +dispatched follow, in order.) + +The streams on which the successor graph is invoked are also tagged with int +metadata, with key 0 set to their index. (For the moment. Future work may allow +for more robust/stable tagging.) This makes this graph compatible with the +generic clustering graph (see `ZL_Clustering_registerGraph()`), and the `sddl` +profile in the demo CLI, for example, is set up that way, with the SDDL graph +succeeded by the generic clusterer. + +The description given to the graph must be pre-compiled. Use the SDDL Compiler +to translate your description to the compiled representation that the graph +accepts: -(The control streams are: a numeric stream containing the stream indices into which each field has been placed and a numeric stream containing the size of each field. See also the documentation for `dispatchN_byTag` and particularly, `ZL_Edge_runDispatchNode()`, which is the underlying component that this graph uses to actually decompose the input, for more information about the dispatch operation. These streams respectively are the first and second stream passed into the successor graph, and the streams into which the input has been dispatched follow, in order.) +### The SDDL Compiler -The streams on which the successor graph is invoked are also tagged with int metadata, with key 0 set to their index. (For the moment. Future work may allow for more robust/stable tagging.) This makes this graph compatible with the generic clustering graph (see `ZL_Clustering_registerGraph()`), and the `sddl` profile in the demo CLI, for example, is set up that way, with the SDDL graph succeeded by the generic clusterer. +The SDDL compiler can be invoked in a few different ways: -The description given to the graph must be pre-compiled. Use the SDDL Compiler to translate your description to the compiled representation that the graph accepts: +#### The SDDL Profile -### The SDDL Compiler +The `sddl` profile in the CLI internally invokes the compiler as part of setting +up the compressor. -#### API +#### Standalone Binary + +A simple, standalone compiler binary is also available. + +!!! example "CMake Build Instructions" + + ``` + mkdir tmp + cd tmp + cmake .. -DOPENZL_BUILD_TOOLS=ON + make sddl_compiler + ``` -::: openzl::sddl::Compiler +!!! example "Make Build Instructions" + + ``` + make sddl_compiler + ``` + +The SDDL compiler binary takes in a program from `stdin` and writes the compiled +code to `stdout`. It takes any number of `-v` flags as arguments, which increase +the verbosity of the compiler. This can be a useful aid when your program isn't +compiling correctly. + +#### C++ API + +A C++ API is offered in `tools/sddl/compiler/Compiler.h`: + +::: openzl::sddl::Compiler::compile #### Compiled Representation -The SDDL engine accepts, and the SDDL compiler produces, a translated / compiled representation of the description, which is a CBOR-serialized expression tree. +The SDDL engine accepts, and the SDDL compiler produces, a translated / compiled +representation of the description, which is a CBOR-serialized expression tree. -!!! danger - The compiled format is unstable and subject to change! +!!! danger The compiled format is unstable and subject to change! You should not expect SDDL descriptions compiled with one version of OpenZL to work with SDDL graphs from other versions of OpenZL. Nor should you currently build codegen that targets this unstable format. + +--8<-- "src/tools/sddl/compiler/Syntax.md" diff --git a/include/openzl/codecs/zl_sddl2.h b/include/openzl/codecs/zl_sddl2.h new file mode 100644 index 000000000..6330d8cd9 --- /dev/null +++ b/include/openzl/codecs/zl_sddl2.h @@ -0,0 +1,116 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_SDDL2_H +#define OPENZL_CODECS_SDDL2_H + +#include +#include "openzl/zl_opaque_types.h" +#include "openzl/zl_segmenter.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Graph ID for the SDDL2 (Simple Data Description Language v2) component. + * + * This is an enhanced bytecode execution engine for parsing and decomposing + * structured data. It provides significant performance improvements over SDDL + * v1 while maintaining compatibility with the OpenZL compression framework. + * + * The public SDDL2 graph is an auto-segmenting graph. + * + * It requires: + * 1. Bytecode parameter (SDDL2_BYTECODE_PARAM) + * + * It may also be given: + * 1. A successor graph to process the parsed segments. If omitted, the graph + * defaults to ZL_GRAPH_COMPRESS_GENERIC. + * 2. A chunk-size hint through SDDL2_CHUNK_BYTE_SIZE_PARAM or + * ZL_Compressor_registerSDDL2Graph_advanced(). + * + * Use the C++ wrapper openzl::graphs::SDDL2 for convenient graph construction. + */ +#define ZL_GRAPH_SDDL2 \ + (ZL_GraphID) \ + { \ + ZL_StandardGraphID_simple_data_description_language_v2 \ + } + +/** + * Parameter ID at which the SDDL2 graph expects to receive the bytecode it + * will execute. + * + * The bytecode should be generated by the SDDL compiler or assembler and + * passed as a local copy parameter. + */ +#define SDDL2_BYTECODE_PARAM 7685 + +/** + * Default target chunk size applied by the public SDDL2 segmenter when no + * chunk-size hint is provided. + */ +#define SDDL2_DEFAULT_CHUNK_BYTE_SIZE ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE + +/** + * Optional parameter ID for setting the maximum target chunk size of the + * public SDDL2 segmenter. + * + * When this parameter is omitted, or set to 0, the segmenter defaults to + * SDDL2_DEFAULT_CHUNK_BYTE_SIZE. + */ +#define SDDL2_CHUNK_BYTE_SIZE_PARAM 7686 + +/** + * Registers a Simple Data Description Language v2 graph with the provided + * (pre-compiled) @p bytecode. + * + * This configures the standard auto-segmenting SDDL2 graph with bytecode, the + * default successor graph ZL_GRAPH_COMPRESS_GENERIC, and the default chunking + * behavior (equivalent to omitting SDDL2_CHUNK_BYTE_SIZE_PARAM, which resolves + * to SDDL2_DEFAULT_CHUNK_BYTE_SIZE at runtime). + * + * @param compressor The compressor instance to register the graph with + * @param bytecode Pointer to the compiled SDDL2 bytecode + * @param bytecode_size Size of the bytecode in bytes + * @return The registered graph ID + * + * @note The bytecode should be generated by the SDDL compiler or assembler. + * The bytecode format is documented in the SDDL2 specification. + */ +ZL_GraphID ZL_Compressor_registerSDDL2Graph( + ZL_Compressor* compressor, + const void* bytecode, + size_t bytecode_size); + +/** + * Registers a Simple Data Description Language v2 graph with the provided + * (pre-compiled) @p bytecode, explicit @p destination graph, and optional + * chunking hint. + * + * Use this variant when the default successor graph or single-chunk behavior + * is not appropriate. + * + * @param compressor The compressor instance to register the graph with + * @param bytecode Pointer to the compiled SDDL2 bytecode + * @param bytecode_size Size of the bytecode in bytes + * @param destination The graph to process the parsed segments + * @param chunk_byte_size Optional max chunk size in bytes. Pass 0 to use the + * default SDDL2_DEFAULT_CHUNK_BYTE_SIZE chunking. + * @return The registered graph ID + * + * @note The bytecode should be generated by the SDDL compiler or assembler. + * The bytecode format is documented in the SDDL2 specification. + */ +ZL_GraphID ZL_Compressor_registerSDDL2Graph_advanced( + ZL_Compressor* compressor, + const void* bytecode, + size_t bytecode_size, + ZL_GraphID destination, + size_t chunk_byte_size); + +#if defined(__cplusplus) +} +#endif + +#endif // OPENZL_CODECS_SDDL2_H diff --git a/include/openzl/codecs/zl_segmenters.h b/include/openzl/codecs/zl_segmenters.h new file mode 100644 index 000000000..928b553ae --- /dev/null +++ b/include/openzl/codecs/zl_segmenters.h @@ -0,0 +1,136 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_CODECS_SEGMENTERS_H +#define ZSTRONG_CODECS_SEGMENTERS_H + +#include "openzl/codecs/zl_illegal.h" // ZL_GRAPH_ILLEGAL +#include "openzl/zl_errors.h" // ZL_RESULT_OF +#include "openzl/zl_graphs.h" +#include "openzl/zl_opaque_types.h" +#include "openzl/zl_segmenter.h" + +#include // size_t + +#if defined(__cplusplus) +extern "C" { +#endif + +/** Pass as successorGraph to let the segmenter substitute its built-in + * default successor. Each segmenter family resolves this to its own + * default — see the corresponding builder's documentation + * (e.g. ZL_Compressor_buildNumFromSerialSegmenter resolves to + * ZL_GRAPH_INTERPRET_NUMxx_COMPRESS; ZL_Compressor_buildSerialSegmenter + * resolves to ZL_GRAPH_COMPRESS_GENERIC). */ +#define ZL_SEGMENTER_DEFAULT_SUCCESSOR ZL_GRAPH_ILLEGAL + +// Numeric segmenter (numeric input) +// Input : 1 stream of numeric data +// Result : chunks the numeric input using default chunk size +// and compresses each chunk independently with default +// ZL_GRAPH_NUMERIC_COMPRESS +#define ZL_SEGMENT_NUMERIC ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_segment_numeric) + +// Serial-input numeric segmenters +// Input : 1 stream of serial data, interpreted as N-bit numeric elements +// Result : chunks the serial input using default chunk size, +// then converts each chunk to numeric of specified width +// and compresses using a default successor graph. +// Can be overridden via ZL_Compressor_buildNumFromSerialSegmenter. +#define ZL_SEGMENT_NUM8_FROM_SERIAL \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_segment_num8_from_serial) +#define ZL_SEGMENT_NUM16_FROM_SERIAL \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_segment_num16_from_serial) +#define ZL_SEGMENT_NUM32_FROM_SERIAL \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_segment_num32_from_serial) +#define ZL_SEGMENT_NUM64_FROM_SERIAL \ + ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_segment_num64_from_serial) + +// Serial-input segmenter (no element-width interpretation) +// Input : 1 stream of serial data +// Result : chunks the serial input using default chunk size, +// and forwards each chunk to the default successor +// ZL_GRAPH_COMPRESS_GENERIC. +// Both chunk size and successor can be overridden via +// ZL_Compressor_buildSerialSegmenter(). +#define ZL_SEGMENT_SERIAL ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_segment_serial) + +/** + * Local int parameter ID for the serial segmenter's chunk byte size. + * When omitted, ZL_SEGMENT_SERIAL falls back to + * ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE. + */ +#define ZL_SEGMENT_SERIAL_CHUNK_BYTE_SIZE_PARAM 7700 + +/** + * @brief Register a serial-numeric segmenter. + * + * Creates a parameterized segmenter that accepts serial input, chunks it + * by @p chunkByteSize (aligned to @p eltByteWidth), and forwards each chunk + * to @p successorGraph. + * + * @param compressor The compressor to register with + * @param eltByteWidth Element width in bytes (1, 2, 4, or 8) + * @param chunkByteSize Maximum chunk size in bytes (will be aligned down + * to element width). Pass 0 to use the built-in default + * (ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE). Otherwise must be in + * [ZL_MIN_CHUNK_SIZE, INT_MAX]; smaller positive values are rejected + * because ZL_compressBound() assumes chunks of at least + * ZL_MIN_CHUNK_SIZE bytes. + * @param successorGraph The graph to process each chunk, or + * ZL_SEGMENTER_DEFAULT_SUCCESSOR to use the built-in default + * interpret+compress pipeline + * @return The registered segmenter graph ID, or ZL_GRAPH_ILLEGAL on error + */ +ZL_GraphID ZL_Compressor_buildNumFromSerialSegmenter( + ZL_Compressor* compressor, + size_t eltByteWidth, + size_t chunkByteSize, + ZL_GraphID successorGraph); + +/** + * Same as ZL_Compressor_buildNumFromSerialSegmenter(), but returns a + * ZL_RESULT_OF(ZL_GraphID) for richer error reporting. + */ +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildNumFromSerialSegmenter2( + ZL_Compressor* compressor, + size_t eltByteWidth, + size_t chunkByteSize, + ZL_GraphID successorGraph); + +/** + * @brief Register a serial segmenter. + * + * Creates a parameterized segmenter that accepts serial input, chunks it + * by @p chunkByteSize, and forwards each chunk to @p successorGraph. + * + * @param compressor The compressor to register with + * @param chunkByteSize Maximum chunk size in bytes. Pass 0 to use the + * built-in default (ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE). Otherwise + * must be in [ZL_MIN_CHUNK_SIZE, INT_MAX]; smaller positive values + * are rejected because ZL_compressBound() assumes chunks of at least + * ZL_MIN_CHUNK_SIZE bytes. + * @param successorGraph The graph to process each chunk, or + * ZL_SEGMENTER_DEFAULT_SUCCESSOR to use ZL_GRAPH_COMPRESS_GENERIC + * @return The registered segmenter graph ID, or ZL_GRAPH_ILLEGAL on error + */ +ZL_GraphID ZL_Compressor_buildSerialSegmenter( + ZL_Compressor* compressor, + size_t chunkByteSize, + ZL_GraphID successorGraph); + +/** + * Same as ZL_Compressor_buildSerialSegmenter(), but returns a + * ZL_RESULT_OF(ZL_GraphID) for richer error reporting. + */ +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildSerialSegmenter2( + ZL_Compressor* compressor, + size_t chunkByteSize, + ZL_GraphID successorGraph); + +#if defined(__cplusplus) +} +#endif + +#endif // ZSTRONG_CODECS_SEGMENTERS_H diff --git a/include/openzl/codecs/zl_sentinel.h b/include/openzl/codecs/zl_sentinel.h new file mode 100644 index 000000000..57972d866 --- /dev/null +++ b/include/openzl/codecs/zl_sentinel.h @@ -0,0 +1,83 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_ZL_SENTINEL_H +#define OPENZL_CODECS_ZL_SENTINEL_H + +#include +#include + +#include "openzl/zl_errors.h" +#include "openzl/zl_graph_api.h" +#include "openzl/zl_nodes.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Sentinel-byte node. + * + * Encodes each numeric input element into a 1-byte values stream and a + * full-width exceptions stream. Values < 255 are stored directly as a + * single byte; values >= 255 are replaced by the sentinel 255 in the values + * stream and stored at the original width in the exceptions stream. + * + * Input: 1 numeric stream (width >= 2) + * Output 0: numeric stream of 1-byte values (sentinel or narrowed value) + * Output 1: numeric stream of exceptions at the original input width + */ +#define ZL_NODE_SENTINEL_BYTE ZL_MAKE_NODE_ID(ZL_StandardNodeID_sentinel_byte) + +/** + * General sentinel node. + * + * Encodes a numeric input by writing a sentinel marker at designated + * exception positions and moving the original values to an exceptions + * stream. The values stream retains the same element width as the input. + * + * This node is intended to be invoked within a function graph via + * ZL_Edge_runSentinelNode() or ZL_Edge_runNode_withParams(). + * + * Local parameters: + * ZL_SENTINEL_INDICES_PID (ref): sorted array of size_t exception indices + * ZL_SENTINEL_VALUE_PID (ref): pointer to uint64_t sentinel value + * (optional, defaults to max for elem width) + * + * Input: 1 numeric stream + * Output 0: numeric stream of values (same width, sentinel at exception pos) + * Output 1: numeric stream of exceptions (same width as input) + */ +#define ZL_NODE_SENTINEL_NUM ZL_MAKE_NODE_ID(ZL_StandardNodeID_sentinel_num) + +/// Ref/Copy param ID for the sorted array of exception indices (size_t[]). +#define ZL_SENTINEL_INDICES_PID 130 + +/// Ref/Copy param ID for the sentinel value (uint64_t) which will be masked to +/// the element width. +/// Optional: defaults to max value for the element width if absent. +#define ZL_SENTINEL_VALUE_PID 131 + +/** + * Run the general sentinel node on @p input within a function graph. + * + * Convenience wrapper around ZL_Edge_runNode_withParams() that packages + * exception indices and sentinel value as local params. + * + * @param input The input edge to process + * @param exceptionIndices Sorted array of indices to move to exceptions + * @param numExceptions Number of exception indices + * @param sentinel The sentinel value to use + * @returns An EdgeList with 2 edges: [0] = values, [1] = exceptions + */ +ZL_RESULT_OF(ZL_EdgeList) +ZL_Edge_runSentinelNode( + ZL_Edge* input, + const size_t* exceptionIndices, + size_t numExceptions, + uint64_t sentinel); + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/include/openzl/codecs/zl_split.h b/include/openzl/codecs/zl_split.h index 6fc97199b..f58b180d9 100644 --- a/include/openzl/codecs/zl_split.h +++ b/include/openzl/codecs/zl_split.h @@ -5,14 +5,39 @@ #include +#include "openzl/zl_data.h" #include "openzl/zl_graph_api.h" +#include "openzl/zl_nodes.h" #include "openzl/zl_opaque_types.h" -#include "openzl/zl_stream.h" #if defined(__cplusplus) extern "C" { #endif +// split_byrange +// Input: 1 numeric stream (all widths: 1, 2, 4, 8 bytes) +// Output: variable number of numeric streams, one per detected range segment. +// Automatically detects boundaries where values belong to non-overlapping +// ranges, and splits the input at those boundaries. +// Built on top of splitN: shares the same wire format and decoder. +// +// Limitation: each segment must have at least minSegmentSize elements +// (default 16) for the boundary to be detected. Ranges that alternate +// at finer granularity (e.g. element-level [low, high, low, high]) +// will not be split. +// +// Optional parameter: +// ZL_SPLIT_BYRANGE_MIN_SEGMENT_SIZE_PID (int): +// Minimum number of elements per segment. A split is rejected if either +// side would have fewer elements. Higher values reduce false positives +// from noise; lower values allow detecting shorter segments. +// Default is width-dependent: larger for narrow types (u8). +#define ZL_NODE_SPLIT_BYRANGE ZL_MAKE_NODE_ID(ZL_StandardNodeID_split_byrange) + +/// Optional int param: minimum segment size for split_byrange. +/// If unset, uses a width-dependent default (larger for narrow types). +#define ZL_SPLIT_BYRANGE_MIN_SEGMENT_SIZE_PID 324 + // SplitN // Input: 1 stream, of type either Serial, Numeric of Struct. // Outputs : a variable nb of output streams, of same type as input, @@ -34,7 +59,9 @@ extern "C" { // }; // ZL_LocalCopyParams lcp = { &ssp, 1 }; // ZL_LocalParams lParams = { .copyParams = lcp }; -// ZL_NodeID nid = ZL_Compressor_cloneNode(cgraph, ZS2_NODE_SPLITN, &lParams); +// ZL_NodeID nid = ZL_Compressor_registerParameterizedNode(cgraph, +// &(const ZL_ParameterizedNodeDesc){ .node = ZS2_NODE_SPLITN, .localParams +// = &lParams }); // // The whole declaration logic is abstracted behind a public function // ZL_Compressor_registerSplitNode_withParams(), which achieves the same thing diff --git a/include/openzl/codecs/zl_store.h b/include/openzl/codecs/zl_store.h index 813f23e5c..060431170 100644 --- a/include/openzl/codecs/zl_store.h +++ b/include/openzl/codecs/zl_store.h @@ -10,11 +10,7 @@ extern "C" { #endif // Storage operation. Final stage of any stored stream. -#define ZL_GRAPH_STORE \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_store \ - } +#define ZL_GRAPH_STORE ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_store) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_tokenize.h b/include/openzl/codecs/zl_tokenize.h index adf251c2d..0c940afe7 100644 --- a/include/openzl/codecs/zl_tokenize.h +++ b/include/openzl/codecs/zl_tokenize.h @@ -6,10 +6,10 @@ #include #include +#include "openzl/zl_data.h" #include "openzl/zl_errors.h" #include "openzl/zl_graph_api.h" #include "openzl/zl_opaque_types.h" -#include "openzl/zl_stream.h" #if defined(__cplusplus) extern "C" { diff --git a/include/openzl/codecs/zl_transpose.h b/include/openzl/codecs/zl_transpose.h index 5356aef30..e2b7226a9 100644 --- a/include/openzl/codecs/zl_transpose.h +++ b/include/openzl/codecs/zl_transpose.h @@ -6,6 +6,7 @@ #include #include "openzl/zl_graph_api.h" +#include "openzl/zl_graphs.h" #include "openzl/zl_nodes.h" #include "openzl/zl_opaque_types.h" @@ -21,11 +22,8 @@ extern "C" { // Example : 1 2 3 4 5 6 7 8 as 2 fields of size 4 // => transposed into 4 streams as 2 fields of size 1 // => (1, 5), (2, 6), (3, 7), (4, 8) -#define ZL_NODE_TRANSPOSE_SPLIT \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_transpose_split \ - } +#define ZL_NODE_TRANSPOSE_SPLIT \ + ZL_MAKE_NODE_ID(ZL_StandardNodeID_transpose_split) /** * Helper function to create a graph for ZL_NODE_TRANSPOSE_SPLIT. diff --git a/include/openzl/codecs/zl_zigzag.h b/include/openzl/codecs/zl_zigzag.h index 5e9aceaa1..9afc95478 100644 --- a/include/openzl/codecs/zl_zigzag.h +++ b/include/openzl/codecs/zl_zigzag.h @@ -20,11 +20,7 @@ extern "C" { // with expected decreasing distribution starting from 0. // Note : It's unclear if this transform is really useful. // If not, it will be removed from Standard Transforms. -#define ZL_NODE_ZIGZAG \ - (ZL_NodeID) \ - { \ - ZL_StandardNodeID_zigzag \ - } +#define ZL_NODE_ZIGZAG ZL_MAKE_NODE_ID(ZL_StandardNodeID_zigzag) #if defined(__cplusplus) } diff --git a/include/openzl/codecs/zl_zstd.h b/include/openzl/codecs/zl_zstd.h index b41831b55..c7a6deeff 100644 --- a/include/openzl/codecs/zl_zstd.h +++ b/include/openzl/codecs/zl_zstd.h @@ -10,11 +10,7 @@ extern "C" { #endif -#define ZL_GRAPH_ZSTD \ - (ZL_GraphID) \ - { \ - ZL_StandardGraphID_zstd \ - } +#define ZL_GRAPH_ZSTD ZL_MAKE_GRAPH_ID(ZL_StandardGraphID_zstd) /// @return zstd graph with a compression level overridden ZL_GraphID ZL_Compressor_registerZstdGraph_withLevel( diff --git a/include/openzl/detail/zl_error_context.h b/include/openzl/detail/zl_error_context.h index 386aeb39b..83391e53a 100644 --- a/include/openzl/detail/zl_error_context.h +++ b/include/openzl/detail/zl_error_context.h @@ -49,6 +49,10 @@ ZL_CONST_FN ZL_OperationContext* ZL_CompressorSerializer_getOperationContext( ZL_CompressorSerializer* ctx); ZL_CONST_FN ZL_OperationContext* ZL_CompressorDeserializer_getOperationContext( ZL_CompressorDeserializer* ctx); +ZL_CONST_FN ZL_OperationContext* ZL_Segmenter_getOperationContext( + ZL_Segmenter* ctx); +ZL_CONST_FN ZL_OperationContext* ZL_Materializer_getOperationContext( + ZL_Materializer* ctx); ZL_CONST_FN ZL_OperationContext* ZL_ErrorContext_getOperationContext( ZL_ErrorContext* ctx); ZL_CONST_FN ZL_OperationContext* ZL_NULL_getOperationContext(void* ctx); @@ -101,6 +105,16 @@ ZL_INLINE ZL_CONST_FN ZL_OperationContext* ZL_getOperationContextImpl( { return ZL_CompressorDeserializer_getOperationContext(ctx); } +ZL_INLINE ZL_CONST_FN ZL_OperationContext* ZL_getOperationContextImpl( + ZL_Segmenter* ctx) +{ + return ZL_Segmenter_getOperationContext(ctx); +} +ZL_INLINE ZL_CONST_FN ZL_OperationContext* ZL_getOperationContextImpl( + ZL_Materializer* ctx) +{ + return ZL_Materializer_getOperationContext(ctx); +} ZL_INLINE ZL_CONST_FN ZL_OperationContext* ZL_getOperationContextImpl( ZL_ErrorContext* ctx) { @@ -123,26 +137,27 @@ extern "C" { #else -# define ZL_GET_OPERATION_CONTEXT_IMPL(ctx) \ - _Generic( \ - (ctx), \ - ZL_Compressor \ - *: ZL_Compressor_getOperationContext((void*)(ctx)), \ - ZL_CCtx *: ZL_CCtx_getOperationContext((void*)(ctx)), \ - ZL_DCtx *: ZL_DCtx_getOperationContext((void*)(ctx)), \ - ZL_Encoder *: ZL_Encoder_getOperationContext((void*)(ctx)), \ - ZL_Decoder *: ZL_Decoder_getOperationContext((void*)(ctx)), \ - ZL_Graph *: ZL_Graph_getOperationContext((void*)(ctx)), \ - ZL_Edge *: ZL_Edge_getOperationContext((void*)(ctx)), \ - ZL_CompressorSerializer \ - *: ZL_CompressorSerializer_getOperationContext( \ - (void*)(ctx)), \ - ZL_CompressorDeserializer \ - *: ZL_CompressorDeserializer_getOperationContext( \ - (void*)(ctx)), \ - ZL_ErrorContext \ - *: ZL_ErrorContext_getOperationContext((void*)(ctx)), \ - ZL_OperationContext *: (ctx), \ +# define ZL_GET_OPERATION_CONTEXT_IMPL(ctx) \ + _Generic( \ + (ctx), \ + ZL_Compressor*: ZL_Compressor_getOperationContext( \ + (void*)(ctx)), \ + ZL_CCtx*: ZL_CCtx_getOperationContext((void*)(ctx)), \ + ZL_DCtx*: ZL_DCtx_getOperationContext((void*)(ctx)), \ + ZL_Encoder*: ZL_Encoder_getOperationContext((void*)(ctx)), \ + ZL_Decoder*: ZL_Decoder_getOperationContext((void*)(ctx)), \ + ZL_Graph*: ZL_Graph_getOperationContext((void*)(ctx)), \ + ZL_Edge*: ZL_Edge_getOperationContext((void*)(ctx)), \ + ZL_CompressorSerializer*: ZL_CompressorSerializer_getOperationContext( \ + (void*)(ctx)), \ + ZL_CompressorDeserializer*: ZL_CompressorDeserializer_getOperationContext( \ + (void*)(ctx)), \ + ZL_Segmenter*: ZL_Segmenter_getOperationContext((void*)(ctx)), \ + ZL_Materializer*: ZL_Materializer_getOperationContext( \ + (void*)(ctx)), \ + ZL_ErrorContext*: ZL_ErrorContext_getOperationContext( \ + (void*)(ctx)), \ + ZL_OperationContext*: (ctx), \ void*: ZL_NULL_getOperationContext(ctx)) #endif diff --git a/include/openzl/detail/zl_errors_detail.h b/include/openzl/detail/zl_errors_detail.h index f6676094a..19919dba1 100644 --- a/include/openzl/detail/zl_errors_detail.h +++ b/include/openzl/detail/zl_errors_detail.h @@ -23,6 +23,17 @@ extern "C" { #endif +// Zero-initialization syntax differs between C and C++. +// C++ uses {} to avoid -Wmissing-braces with nested structs. +// C uses { 0 } which is the standard zero-initialization idiom. +#if defined(__cplusplus) +# define ZL_ZERO_INIT \ + { \ + } +#else +# define ZL_ZERO_INIT { 0 } +#endif + #ifndef ZL_ERROR_ENABLE_STATIC_ERROR_INFO # define ZL_ERROR_ENABLE_STATIC_ERROR_INFO 1 #endif @@ -78,6 +89,10 @@ extern "C" { #define ZL_ErrorCode_graph_nonserializable__desc_str \ "Graph incompatible with serialization" #define ZL_ErrorCode_graph_invalidNumInputs__desc_str "Graph invalid nb inputs" +#define ZL_ErrorCode_graph_parser_malformedInput__desc_str \ + "Parser encountered malformed input" +#define ZL_ErrorCode_graph_parser_unhandledInput__desc_str \ + "Parser encountered unhandled input" #define ZL_ErrorCode_successor_invalid__desc_str \ "Selected an invalid Successor Graph" #define ZL_ErrorCode_successor_alreadySet__desc_str \ @@ -135,6 +150,9 @@ extern "C" { #define ZL_ErrorCode_srcSize_tooLarge__desc_str "Source size too large" #define ZL_ErrorCode_integerOverflow__desc_str "Integer overflow" #define ZL_ErrorCode_invalidName__desc_str "Invalid name of graph component" +#define ZL_ErrorCode_dict_corruption__desc_str "Dictionary corruption detected" +#define ZL_ErrorCode_dict_materialization__desc_str \ + "Dictionary materialization failure" /********************** * ZL_StaticErrorInfo * @@ -151,11 +169,16 @@ struct ZL_StaticErrorInfo_s { }; #if ZL_ERROR_ENABLE_STATIC_ERROR_INFO -# define ZL_E_DECLARE_STATIC_ERROR_INFO(name, c, f) \ - static const ZL_StaticErrorInfo name = (ZL_StaticErrorInfo) \ - { \ - .code = c, .fmt = f, .file = __FILE__, .func = __func__, \ - .line = __LINE__ \ +// MSVC doesn't allow __func__ in static initializers (it's a variable, not a +// constant) Use __FUNCTION__ instead for MSVC (it's a string literal constant) +# ifdef _MSC_VER +# define ZL_FUNC_NAME __FUNCTION__ +# else +# define ZL_FUNC_NAME __func__ +# endif +# define ZL_E_DECLARE_STATIC_ERROR_INFO(name, c, f) \ + static const ZL_StaticErrorInfo name = { \ + c, (f), __FILE__, ZL_FUNC_NAME, __LINE__ \ } # define ZL_E_POINTER_TO_STATIC_ERROR_INFO(name) (&(name)) #else @@ -214,14 +237,46 @@ struct ZL_Error_s { ZL_ErrorInfo _info; }; -#define ZL_EE_EMPTY ((ZL_ErrorInfo){ ._st = NULL }) +#if defined(__cplusplus) +// C++ compatible versions using constructor syntax +# define ZL_EE_EMPTY (ZL_ErrorInfo{ nullptr }) +# define ZL_E_EMPTY (ZL_Error{ ZL_ErrorCode_no_error, ZL_EE_EMPTY }) +#else +// C99 compound literals +# define ZL_EE_EMPTY ((ZL_ErrorInfo){ ._st = NULL }) +# define ZL_E_EMPTY \ + ((ZL_Error){ ._code = ZL_ErrorCode_no_error, ._info = ZL_EE_EMPTY }) +#endif -#define ZL_E_EMPTY \ - ((ZL_Error){ ._code = ZL_ErrorCode_no_error, ._info = ZL_EE_EMPTY }) +ZL_INLINE ZL_ErrorInfo ZL_EE_fromStaticErrorInfo(const ZL_StaticErrorInfo* st) +{ + ZL_ErrorInfo ei = ZL_EE_EMPTY; + ei._st = st; + return ei; +} + +#if ZL_ERROR_ENABLE_STATIC_ERROR_INFO +# define ZL_EE_FROM_STATIC(name) \ + ZL_EE_fromStaticErrorInfo(ZL_E_POINTER_TO_STATIC_ERROR_INFO(name)) +#else +# define ZL_EE_FROM_STATIC(name) ZL_EE_EMPTY +#endif // Returns the ZL_Error descriptor from a ZL_RESULT_OF() object. #define ZL_RES_error(res) ((res)._error) +#define ZL_E_INNER(err, ...) \ + ZL_E_CODE_INNER(ZL_EXPAND_ERRCODE(err), __VA_ARGS__) +#define ZL_E_CODE_INNER(code, ...) \ + ZL_E_create( \ + NULL, \ + &ZL__errorContext, \ + __FILE__, \ + __func__, \ + __LINE__, \ + code, \ + __VA_ARGS__) + #define ZL_E_DECLARE_WITH_STATIC_AND_CONTEXT( \ name, static_error, scope_context, err, ...) \ ZL_Error const name = ZL_E_create( \ @@ -271,9 +326,9 @@ void ZL_E_appendToMessage(ZL_Error err, char const* fmt, ...); * * This function can be called directly, but is primarily used indirectly. * Firstly, if you want to invoke this function yourself, it's easier to use - * @ref ZL_E_ADDFRAME_PUBLIC instead since it populates some of the arguments + * @ref ZL_E_ADDFRAME instead since it populates some of the arguments * for you. Secondly, this is an implementation detail mostly here to be used - * by @ref ZL_RET_T_IF_ERR and friends, which call this to add more context to + * by @ref ZL_ERR_IF_ERR and friends, which call this to add more context to * the error as it passes by. * * @note OpenZL must have been compiled with ZL_ERROR_ENABLE_STACKS defined to @@ -281,9 +336,10 @@ void ZL_E_appendToMessage(ZL_Error err, char const* fmt, ...); * * @returns the modified error. */ -ZL_Error ZL_E_addFrame_public( +ZL_Error ZL_E_addFrame( ZL_ErrorContext const* ctx, ZL_Error error, + ZL_ErrorInfo backup, const char* file, const char* func, int line, @@ -291,11 +347,18 @@ ZL_Error ZL_E_addFrame_public( ...); /** - * Macro wrapper around @ref ZL_E_addFrame_public that automatically adds the - * file, function, and line number macros to the args. + * Macro wrapper around @ref ZL_E_addFrame that automatically adds the + * scope context, file, function, and line number macros to the args. */ -#define ZL_E_ADDFRAME_PUBLIC(ctx, error, ...) \ - ZL_E_addFrame_public(ctx, error, __FILE__, __func__, __LINE__, __VA_ARGS__) +#define ZL_E_ADDFRAME(error, backup, ...) \ + ZL_E_addFrame( \ + &ZL__errorContext, \ + error, \ + backup, \ + __FILE__, \ + __func__, \ + __LINE__, \ + __VA_ARGS__) /** * ZL_Error_Array: a const view into an array of errors, returned by some @@ -347,8 +410,8 @@ typedef struct { { \ /* Avoids using the inactive members of the union. */ \ if (ZL_RES_isError(result)) { \ - *error = result._error; \ - _value_type dummy_value; \ + *error = result._error; \ + _value_type dummy_value = ZL_ZERO_INIT; \ memset(&dummy_value, 0, sizeof(dummy_value)); \ return dummy_value; \ } else { \ @@ -366,227 +429,72 @@ typedef struct { # define ZL_RESULT_DECLARE_INNER_TYPES(_value_type) /* nothing */ #endif -#define ZL_RESULT_MAKE_ERROR(type, err, ...) \ - ZL_RESULT_MAKE_ERROR_CODE(type, ZL_EXPAND_ERRCODE(err), __VA_ARGS__) +#define ZL_RESULT_MAKE_ERROR(type, ...) \ + ZL_RESULT_WRAP_ERROR(type, ZL_E(__VA_ARGS__)) #define ZL_RESULT_MAKE_ERROR_CODE(type, ...) \ - ZS_MACRO_PAD4(ZL_RESULT_MAKE_ERROR_CODE_INNER, "", "", type, __VA_ARGS__) - -#define ZL_RESULT_MAKE_ERROR_CODE_INNER( \ - __PLACEHOLDER1__, __PLACEHOLDER2__, type, ...) \ - ((ZL_RESULT_OF(type)){ \ - ._error = ZL_E_create( \ - NULL, NULL, __FILE__, __func__, __LINE__, __VA_ARGS__) }) - -#define ZL_RESULT_WRAP_ERROR(type, err) \ - ((ZL_RESULT_OF(type)){ ._error = (err) }) - -#define ZL_RESULT_WRAP_VALUE(type, value) \ - ((ZL_RESULT_OF(type)){ \ - ._value = { \ - ._code = ZL_ErrorCode_no_error, \ - ._value = (value), \ - }, \ - }) - -#define ZL_RET_IF_NOT_UNARY_IMPL(type, errcode, expr, ...) \ - ZL_RET_IF_UNARY_IMPL(type, errcode, !(expr), __VA_ARGS__) - -#define ZL_RET_IF_NN_IMPL(type, errcode, expr, ...) \ - ZL_RET_IF_BINARY_IMPL( \ - type, \ - errcode, \ - !=, \ - (const char*)(const void*)expr, \ - (const char*)0, \ - __VA_ARGS__) - -#define ZL_RET_IF_NULL_IMPL(type, errcode, expr, ...) \ - ZL_RET_IF_BINARY_IMPL( \ - type, \ - errcode, \ - ==, \ - (const char*)(const void*)expr, \ - (const char*)0, \ - __VA_ARGS__) - -#define ZL_RET_IMPL(type, res) \ - do { \ - return (res); \ - } while (0) + ZL_RESULT_WRAP_ERROR(type, ZL_E_CODE(__VA_ARGS__)) -#define ZL_RET_ERR_IMPL(type, errcode, ...) \ - do { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_EXPAND_ERRCODE(errcode), \ - "Unconditional failure: " ZL_EXPAND_ERRCODE_DESC_STR( \ - errcode) ": " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_RET_ERR_WITH_STATIC_AND_CONTEXT( \ - type, \ - ZL_E_POINTER_TO_STATIC_ERROR_INFO(__zl_static_error_info), \ - NULL, \ - errcode, \ - __VA_ARGS__); \ - } while (0) - -#define ZL_RET_ERR_WITH_STATIC_AND_CONTEXT( \ - type, static_error, scope_context, errcode, ...) \ - do { \ - ZL_E_DECLARE_WITH_STATIC_AND_CONTEXT( \ - __zl_tmp_error, \ - static_error, \ - scope_context, \ - errcode, \ - "Unconditional failure: " __VA_ARGS__); \ - ZL_E_appendToMessage(__zl_tmp_error, "\n\t"); \ - return ZL_RESULT_WRAP_ERROR(type, __zl_tmp_error); \ - } while (0) - -#define ZL_RET_IF_ERR_IMPL(type, expr, ...) \ - do { \ - ZL_RESULT_OF(type) \ - _result = ZL_RESULT_WRAP_ERROR(type, ZL_RES_error(expr)); \ - if (ZL_UNLIKELY(ZL_RES_isError(_result))) { \ - ZL_RES_error(_result) = ZL_E_ADDFRAME_PUBLIC( \ - NULL, ZL_RES_error(_result), __VA_ARGS__); \ - return _result; \ - } \ - } while (0) - -// undef'ed and replaced in the internal errors header -#define ZL_RET_IF_UNARY_IMPL(type, errcode, expr, ...) \ - do { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_EXPAND_ERRCODE(errcode), \ - "Check `" #expr "' failed: " ZL_EXPAND_ERRCODE_DESC_STR( \ - errcode) ": " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_RET_IF_UNARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, \ - ZL_E_POINTER_TO_STATIC_ERROR_INFO(__zl_static_error_info), \ - NULL, \ - errcode, \ - expr, \ - __VA_ARGS__); \ - } while (0) - -// undef'ed and replaced in the internal errors header -#define ZL_RET_IF_BINARY_IMPL(type, errcode, op, lhs, rhs, ...) \ - do { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_EXPAND_ERRCODE(errcode), \ - "Check `" #lhs " " #op " " #rhs \ - "' failed: " ZL_EXPAND_ERRCODE_DESC_STR( \ - errcode) ": " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_RET_IF_BINARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, \ - ZL_E_POINTER_TO_STATIC_ERROR_INFO(__zl_static_error_info), \ - NULL, \ - errcode, \ - op, \ - lhs, \ - rhs, \ - __VA_ARGS__); \ - } while (0) - -#define ZL_RET_IF_UNARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, static_error, scope_context, errcode, expr, ...) \ - do { \ - if (ZL_UNLIKELY(expr)) { \ - ZL_E_DECLARE_WITH_STATIC_AND_CONTEXT( \ - __zl_tmp_error, \ - static_error, \ - scope_context, \ - errcode, \ - "Check `%s' failed", \ - #expr); \ - ZL_E_appendToMessage(__zl_tmp_error, "\n\t" __VA_ARGS__); \ - return ZL_RESULT_WRAP_ERROR(type, __zl_tmp_error); \ - } \ - } while (0) +#if defined(__cplusplus) +} // extern "C" -// Controls whether to use the verbose non-standards-compliant binary assertion -// implementation (if enabled) or the fallback standards-compliant version (if -// disabled). -#ifndef ZL_ENABLE_RET_IF_ARG_PRINTING -# if defined(__GNUC__) -# define ZL_ENABLE_RET_IF_ARG_PRINTING 1 -# else -# define ZL_ENABLE_RET_IF_ARG_PRINTING 0 -# endif -#endif +// Helper functions for C++ to avoid compound literals +// These must be outside extern "C" block +namespace openzl::detail { +template +inline T make_result_with_error(ZL_Error err) +{ + T result; + result._error = err; + return result; +} + +template +inline T make_result_with_value(V value) +{ + T result; + result._value._code = ZL_ErrorCode_no_error; + result._value._value = value; + return result; +} +} // namespace openzl::detail + +// C++ compatible versions using helper functions +# define ZL_RESULT_MAKE_ERROR_CODE_INNER( \ + __PLACEHOLDER1__, __PLACEHOLDER2__, type, ...) \ + (::openzl::detail::make_result_with_error< \ + ZL_RESULT_OF(type)>(ZL_E_create( \ + NULL, NULL, __FILE__, __func__, __LINE__, __VA_ARGS__))) + +# define ZL_RESULT_WRAP_ERROR(type, err) \ + (::openzl::detail::make_result_with_error(err)) + +# define ZL_RESULT_WRAP_VALUE(type, value) \ + (::openzl::detail::make_result_with_value(value)) -#if ZL_ENABLE_RET_IF_ARG_PRINTING -/* We can only evaluate the lhs and rhs arguments once (they might have - * side-effects). But we use their values twice. So we need to store the - * results of their evaluation in temporary variables. But it's very difficult - * to know what type those temporaries should have. - * - * So we do this weird typeof(...) dance to get temporaries that preserve or - * exceed the signedness / precision / pointerness of the arguments. When the - * the arguments are arithmetic types, the `L + (L - R)` construct resolves to - * a suitably promoted type. When the arguments are pointers it just resoves to - * the pointer type (`T* + (T* - T*)` becomes `T* + ptrdiff_t`, which is `T*`). - * - * Annoyingly, we can't use lhs and rhs directly in the typeof expression, - * because clang has a warning (-Wnull-pointer-subtraction) that fires if one - * of the arguments is a null pointer. So we use surrogate variables. - */ -# define ZL_RET_IF_BINARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, static_error, scope_context, errcode, op, lhs, rhs, ...) \ - do { \ - const __typeof__(lhs) __dbg_lhs_type = (__typeof__(lhs))0; \ - const __typeof__(rhs) __dbg_rhs_type = (__typeof__(rhs))0; \ - const __typeof__((__dbg_lhs_type) + ((__dbg_lhs_type) - (__dbg_rhs_type))) __dbg_lhs = \ - (__typeof__((__dbg_lhs_type) + ((__dbg_lhs_type) - (__dbg_rhs_type))))(lhs); \ - const __typeof__((__dbg_lhs_type) + ((__dbg_lhs_type) - (__dbg_rhs_type))) __dbg_rhs = \ - (__typeof__((__dbg_lhs_type) + ((__dbg_lhs_type) - (__dbg_rhs_type))))(rhs); \ - if (0 && ((lhs)op(rhs))) /* enforce type comparability */ { \ - } \ - if (ZL_UNLIKELY(__dbg_lhs op __dbg_rhs)) { \ - ZL_E_DECLARE_WITH_STATIC_AND_CONTEXT( \ - __zl_tmp_error, \ - static_error, \ - scope_context, \ - errcode, \ - ZS_GENERIC_PRINTF_BUILD_FORMAT_2_ARG( \ - __dbg_lhs, \ - "Check `%s %s %s' failed where:\n\tlhs = ", \ - "\n\trhs = ", \ - ""), \ - #lhs, \ - #op, \ - #rhs, \ - ZS_GENERIC_PRINTF_CAST(__dbg_lhs), \ - ZS_GENERIC_PRINTF_CAST(__dbg_rhs)); \ - ZL_E_appendToMessage(__zl_tmp_error, "\n\t" __VA_ARGS__); \ - return ZL_RESULT_WRAP_ERROR(type, __zl_tmp_error); \ - } \ - } while (0) +extern "C" { #else -/* Otherwise, if we don't have typeof(), it's impossible to store the results - * safely. So we just evaluate and use them directly in the comparison, and - * give up the ability to print their values. - */ -# define ZL_RET_IF_BINARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, static_error, scope_context, errcode, op, lhs, rhs, ...) \ - do { \ - if (ZL_UNLIKELY((lhs)op(rhs))) { \ - ZL_E_DECLARE_WITH_STATIC_AND_CONTEXT( \ - __zl_tmp_error, \ - static_error, \ - scope_context, \ - errcode, \ - "Check `%s %s %s' failed", \ - #lhs, \ - #op, \ - #rhs); \ - ZL_E_appendToMessage(__zl_tmp_error, "\n\t" __VA_ARGS__); \ - return ZL_RESULT_WRAP_ERROR(type, __zl_tmp_error); \ - } \ - } while (0) +// C99 compound literals +# define ZL_RESULT_MAKE_ERROR_CODE_INNER( \ + __PLACEHOLDER1__, __PLACEHOLDER2__, type, ...) \ + ((ZL_RESULT_OF(type)){ ._error = ZL_E_create( \ + NULL, \ + NULL, \ + __FILE__, \ + __func__, \ + __LINE__, \ + __VA_ARGS__) }) + +# define ZL_RESULT_WRAP_ERROR(type, err) \ + ((ZL_RESULT_OF(type)){ ._error = (err) }) + +# define ZL_RESULT_WRAP_VALUE(type, value) \ + ((ZL_RESULT_OF(type)){ \ + ._value = { \ + ._code = ZL_ErrorCode_no_error, \ + ._value = (value), \ + }, \ + }) #endif ////////////////////////////////////////////// @@ -594,8 +502,7 @@ typedef struct { ////////////////////////////////////////////// #define ZL_WRAP_ERROR_ADD_FRAME(error) \ - ZL_WRAP_ERROR_NO_FRAME( \ - ZL_E_ADDFRAME_PUBLIC(&ZL__errorContext, error, "Wrapping error.")) + ZL_WRAP_ERROR_NO_FRAME(ZL_E_ADDFRAME(error, ZL_EE_EMPTY, "Wrapping error.")) #define ZL_ERR_RET_IMPL(errcode, ...) \ do { \ @@ -614,14 +521,20 @@ typedef struct { return ZL_WRAP_ERROR_NO_FRAME(__zl_tmp_error); \ } while (0) -#define ZL_ERR_IF_ERR_IMPL(expr, ...) \ - do { \ - ZL__RetType _result = ZL_WRAP_ERROR_NO_FRAME(ZL_RES_error(expr)); \ - if (ZL_UNLIKELY(ZL_RES_isError(_result))) { \ - ZL_RES_error(_result) = ZL_E_ADDFRAME_PUBLIC( \ - &ZL__errorContext, ZL_RES_error(_result), __VA_ARGS__); \ - return _result; \ - } \ +#define ZL_ERR_IF_ERR_IMPL(expr, ...) \ + do { \ + ZL__RetType _result = ZL_WRAP_ERROR_NO_FRAME(ZL_RES_error(expr)); \ + if (ZL_UNLIKELY(ZL_RES_isError(_result))) { \ + ZL_E_DECLARE_STATIC_ERROR_INFO( \ + __zl_static_error_info, \ + ZL_ErrorCode_GENERIC, \ + "Forwarding error: " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ + ZL_RES_error(_result) = ZL_E_ADDFRAME( \ + ZL_RES_error(_result), \ + ZL_EE_FROM_STATIC(__zl_static_error_info), \ + __VA_ARGS__); \ + return _result; \ + } \ } while (0) #define ZL_ERR_IF_UNARY_IMPL(expr, errcode, ...) \ diff --git a/include/openzl/zl_cgraph.h b/include/openzl/zl_cgraph.h deleted file mode 100644 index 188361882..000000000 --- a/include/openzl/zl_cgraph.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. - -// Note: this header is only kept for compatibility with existing user code -// which do not yet employ the new terminology (cgraph => compressor) - -#include "openzl/zl_compressor.h" - -// Note: in the future, this redirection will be removed, -// so use the zs2_compressor.h only from now on. diff --git a/include/openzl/zl_common_types.h b/include/openzl/zl_common_types.h index 6e1e67586..c3969f642 100644 --- a/include/openzl/zl_common_types.h +++ b/include/openzl/zl_common_types.h @@ -57,6 +57,24 @@ typedef struct { size_t nbNodeIDs; } ZL_NodeIDList; +/** + * @brief Data layout for comment contained in the frame header. + */ +typedef struct { + const void* data; + size_t size; +} ZL_Comment; + +/** + * @brief Typedef for void pointer to satisfy ZL_RESULT_OF requirements. + * + * ZL_RESULT_OF requires a bare type name, so we need a typedef for void*. You + * should use ZL_RESULT_OF(VoidPtr) instead of ZL_RESULT_OF(void*) and similarly + * with ZL_RESULT_DECLARE_SCOPE + */ +typedef void* ZL_VoidPtr; +typedef const void* ZL_ConstVoidPtr; + #if defined(__cplusplus) } // extern "C" #endif diff --git a/include/openzl/zl_compress.h b/include/openzl/zl_compress.h index 74795b7db..b6d87fcf3 100644 --- a/include/openzl/zl_compress.h +++ b/include/openzl/zl_compress.h @@ -36,20 +36,57 @@ extern "C" { // size_t srcSize, // int compressionLevel); -#define ZL_COMPRESSBOUND(s) (((s) * 2) + 512 + 8) +/** + * Assumed minimum chunk size for segmented compression. + * ZL_compressBound() relies on this assumption to bound per-chunk overhead. + * Segmenters producing chunks smaller than this value may cause the output + * to exceed ZL_compressBound(). This is a documented assumption, not enforced. + * Matches the default block size of the entropy layer. + */ +#define ZL_MIN_CHUNK_SIZE (32768) + +/** + * Maximum per-chunk overhead in bytes (STORE chunk header + both checksums). + * Generous overestimate: actual overhead is ~13 bytes for a 32 KB chunk. + * Breakdown: chunk header varints (~3-7 bytes) + content checksum (4 bytes) + * + compressed checksum (4 bytes). + */ +#define ZL_CHUNK_OVERHEAD_MAX (16) + +/** + * Maximum frame-level overhead in bytes (frame header + EOF marker). + * Generous overestimate: actual overhead is ~9-17 bytes. + * Breakdown: magic (4) + flags (1) + input type (1) + input size varint (<=9) + * + header checksum (1) + EOF marker (1). + */ +#define ZL_FRAME_OVERHEAD_MAX (32) + +#define ZL_COMPRESSBOUND(s) \ + ((s) + ZL_FRAME_OVERHEAD_MAX \ + + (((s) / ZL_MIN_CHUNK_SIZE) + 1) * ZL_CHUNK_OVERHEAD_MAX) + /** * Provides the upper bound for the compressed size needed to ensure - * that compressing @p totalSrcSize is successful. When compressing - * multiple inputs, @p totalSrcSize must be the sum of the size of each input. - * - * @param totalSrcSize The sum of all input sizes - * @returns The upper bound of the compressed size - * - * @note This is a very large over-estimation, to be tightened later + * that compressing @p totalSrcSize bytes is successful. + * + * This bound is valid for a single serial input compressed with the default + * pipeline (default segmenter, StoreOnExpansion enabled). For other scenarios, + * callers should allocate a larger buffer: + * + * @param totalSrcSizeInBytes The total input size in bytes (not element count) + * @returns The upper bound of the compressed size, in bytes + * + * @pre Single serial input. Multi-input or multi-typed compression (e.g. via + * ZL_CCtx_compressMultiTypedRef) may produce additional per-stream + * overhead in chunk headers that exceeds this bound. + * @pre StoreOnExpansion is enabled (default). When disabled, compressed output + * may exceed this bound. + * @pre Segmented compression uses chunks of at least ZL_MIN_CHUNK_SIZE bytes, + * except for the last chunk which may be smaller (remainder). */ -ZL_INLINE size_t ZL_compressBound(size_t totalSrcSize) +ZL_INLINE size_t ZL_compressBound(size_t totalSrcSizeInBytes) { - return ZL_COMPRESSBOUND(totalSrcSize); + return ZL_COMPRESSBOUND(totalSrcSizeInBytes); } // ---------------------------------------------------- @@ -121,6 +158,12 @@ typedef enum { /// one must pass a negative threshold value. ZL_CParam_minStreamSize = 11, + /// Controls whether chunks that expand during compression + /// are automatically replaced with STORE (anti-inflation guard). + /// Valid values for this parameter use the ZS2_cv3_* format. + /// @default 0 currently means enabled, preserving existing behavior. + ZL_CParam_storeOnExpansion = 12, + // Other possible parameters (ideas) : // - Backup when a node errors out (continue with generic LZ, or error // out) @@ -368,6 +411,22 @@ ZL_TypedRef* ZL_TypedRef_createString( const uint32_t* strLens, size_t nbStrings); +/** + * Adds header comment to the compressed frame for the following compression. + * The message will be overridden if added a second time. The message is erased + * from the cctx at the end of each compression. + * + * @note A comment of size 0 clears the comment field. + * + * @param comment The comment to add. The comment is copied and stored in the + * cctx. + * @param commentSize The size of the comment or 0 to clear the comment. + */ +ZL_Report ZL_CCtx_addHeaderComment( + ZL_CCtx* cctx, + const void* comment, + size_t commentSize); + /** * Frees the given `ZL_TypedRef`. * diff --git a/include/openzl/zl_compressor.h b/include/openzl/zl_compressor.h index d6d1f85b5..c45401166 100644 --- a/include/openzl/zl_compressor.h +++ b/include/openzl/zl_compressor.h @@ -20,7 +20,7 @@ #include "openzl/zl_compress.h" // ZL_CCtx #include "openzl/zl_errors.h" // ZL_Report, ZL_ErrorCode #include "openzl/zl_localParams.h" // ZL_LocalParams -#include "openzl/zl_opaque_types.h" // ZL_GraphID +#include "openzl/zl_opaque_types.h" // ZL_GraphID, ZL_Compressor #include "openzl/zl_portability.h" // ZL_NOEXCEPT_FUNC_PTR #include "openzl/zl_public_nodes.h" @@ -57,8 +57,6 @@ extern "C" { * @{ */ -typedef struct ZL_Compressor_s ZL_Compressor; - /** * @brief Create a new @ref ZL_Compressor. * @@ -149,7 +147,7 @@ ZL_Error_Array ZL_Compressor_getWarnings(const ZL_Compressor* compressor); * @param value The value to set for the global parameter. */ ZL_Report ZL_Compressor_setParameter( - ZL_Compressor* compresor, + ZL_Compressor* compressor, ZL_CParam gcparam, int value); @@ -340,6 +338,11 @@ typedef struct { /// Optionally the new local params, if NULL then the parameters are not /// updated. const ZL_LocalParams* localParams; + /// Optionally, a new dict ID. If set to ZL_DICT_ID_NULL, then the dict ID + /// is not updated. + ZL_DictID dictID; + /// Optionally, a new MParam. + ZL_MParam mparam; } ZL_NodeParameters; /** @@ -364,6 +367,11 @@ typedef struct { /// Optionally the new local params, if NULL then the parameters are not /// updated. const ZL_LocalParams* localParams; + /// Optionally, a new dict ID. If set to ZL_DICT_ID_NULL, then the dict ID + /// is not updated. + ZL_DictID dictID; + /// Optionally, a new MParam. + ZL_MParam mparam; } ZL_ParameterizedNodeDesc; /** @@ -378,21 +386,6 @@ ZL_NodeID ZL_Compressor_registerParameterizedNode( ZL_Compressor* compressor, const ZL_ParameterizedNodeDesc* desc); -/** - * @brief Simplified variant of @ref ZL_Compressor_registerParameterizedNode(). - * Clone an existing @ref ZL_NodeID from an already registered - * @p nodeid but employs new parameters, set via @p localParams. - * - * @returns The new node id of the cloned node. - * - * @param nodeid The node to clone. - * @param localParams The local parameters to use for the node. - **/ -ZL_NodeID ZL_Compressor_cloneNode( - ZL_Compressor* compressor, - ZL_NodeID nodeid, - const ZL_LocalParams* localParams); - /** * @} */ @@ -694,6 +687,53 @@ ZL_Report ZL_compress_usingGraphFn( size_t srcSize, ZL_GraphFn graphFunction); +/* + * ===================== Compression-Time Dicts ================================ + * + * At compression time, codecs may require sideband information to operate. + * + * DICTIONARIES: Dictionaries are resources required at both compression and + * decompression time. These can include information like pre-computed entropy + * tables and tokenization alphabets. The exact materialization can vary at + * compression and decompression time, but the serialized blob presented to the + * ZL_Compressor/ZL_DictLoader must be the same. Since dictionaries are required + * for decompression, they can only be used for codecs. + * + * If an encoder requires a dictionary, it must declare a set of + * materialization and dematerialization functions within its ZL_MIEncoderDesc + * at registration time. The ZL_Compressor will refer to these materialization + * functions to do the required creation and destruction. The ZL_Compressor will + * own the materialized objects. + * + * You must provide all serialized dicts to the compressor using + * ZL_Compressor_loadDictBundle(). The "Bundle" is an object recording all the + * Dict IDs required by the compressor. The compressor, bundles, and dict blobs + * are produced at the same time via training. See TODO(csv) for more details. + * + * For the corresponding APIs for decompression, refer to the ZL_DictLoader in + * zl_dict.h + */ + +/** + * Fetches the bundle ID in-use by the compressor, if there is one. + * Returns NULL if no bundle has been set. + */ +const ZL_BundleID* ZL_Compressor_getDictBundleID( + const ZL_Compressor* compressor); + +/** + * This is a convenience implementation to provide a serialized ZL_DictBundle + * and associated serialized ZL_Dict to the compressor. + * + * This function expects an all-in-one "fat" bundle generated by the training + * scripts. This can be produced some other way, but training is guaranteed to + * generate a valid fat bundle if provided the option --fat-bundle. + */ +ZL_Report ZL_Compressor_loadDictBundle( + ZL_Compressor* compressor, + const void* serializedDictBundle, + size_t serializedDictBundleSize); + #if defined(__cplusplus) } // extern "C" #endif diff --git a/include/openzl/zl_compressor_serialization.h b/include/openzl/zl_compressor_serialization.h index 181b53ca2..dedb766b6 100644 --- a/include/openzl/zl_compressor_serialization.h +++ b/include/openzl/zl_compressor_serialization.h @@ -81,7 +81,7 @@ extern "C" { * contents of the buffer `ZL_CopyParam` will be provided to the * corresponding component on the destination compressor, which might be * in a different process which doesn't have access to things pointed-to - * outside of that bufer. + * outside of that buffer. * * - Note however that a copy or modification of a non-serializable object * which does not modify any of the non-serializable attributes is generally @@ -90,7 +90,7 @@ extern "C" { * component, produced by modifying or composing the original * non-serializable component, via, e.g.: * - * - ZL_Compressor_cloneNode (see note) + * - ZL_Compressor_registerParameterizedNode (see note) * * - ZL_Compressor_registerStaticGraph_fromNode1o * - ZL_Compressor_registerStaticGraph_fromPipelineNodes1o diff --git a/include/openzl/zl_config.h b/include/openzl/zl_config.h index 53112c4ed..42f96a8c2 100644 --- a/include/openzl/zl_config.h +++ b/include/openzl/zl_config.h @@ -3,8 +3,6 @@ #ifndef ZSTRONG_ZS2_CONFIG_H #define ZSTRONG_ZS2_CONFIG_H -#define ZL_HAVE_FBCODE 1 - #define ZL_HAVE_X86_64_ASM 1 #define ZL_ALLOW_INTROSPECTION 1 diff --git a/include/openzl/zl_ctransform.h b/include/openzl/zl_ctransform.h index 1171b70b0..404ac88ea 100644 --- a/include/openzl/zl_ctransform.h +++ b/include/openzl/zl_ctransform.h @@ -16,6 +16,7 @@ #include "openzl/zl_ctransform_legacy.h" // Pipe and Split transforms #include "openzl/zl_errors.h" // ZL_Report #include "openzl/zl_input.h" +#include "openzl/zl_materializer.h" // ZL_MaterializerDesc, ZL_MParam #include "openzl/zl_opaque_types.h" #include "openzl/zl_output.h" #include "openzl/zl_portability.h" // ZL_NOEXCEPT_FUNC_PTR @@ -336,6 +337,44 @@ typedef struct { * registration fails, and it lives for the lifetime of the compressor. */ ZL_OpaquePtr opaque; + /** + * Optional materializer descriptor for materialized local params. + * If both materializeFn and dematerializeFn are non-null, the materializer + * will be used to create materialized objects from local params. + */ + ZL_MaterializerDesc materializer; + + // New API. In progress. + /** + * Optional materializer descriptor for materialized dicts. + * If both materializeFn and dematerializeFn are non-null, the materializer + * will be used to create materialized objects. Create a node with + * materialization using ZL_Compressor_parameterizeNode(). + */ + ZL_MaterializerDesc2 dictMat; + /** + * Optional dictionary ID associated with this encoder. + * When set, identifies the dictionary that this encoder requires. + * A zero-initialized value (ZL_DICT_ID_NULL) means no dictionary is + * associated. + */ + ZL_DictID dictID; + /** + * Optional materializer for compression-only materialized parameters + * (MParams). If materializeFn is non-null, it will be called during + * compressor deserialization to create the materialized object from + * the serialized MParam blob. Unlike dicts, MParams are NOT required + * at decompression time. + */ + ZL_MaterializerDesc2 mparamMat; + /** + * Optional MParam associated with this encoder. The provided content blob + * will be materialized as dictated by @p mparamMat . OpenZL will not take + * ownership of the content provided. The caller is free to free the buffer + * anytime after registering the MIEncoder with + * ZL_Compressor_registerMIEncoder(). + */ + ZL_MParam mparam; } ZL_MIEncoderDesc; /** @@ -426,6 +465,19 @@ ZL_LocalIntParams ZL_Encoder_getLocalIntParams(const ZL_Encoder* eic); */ const ZL_LocalParams* ZL_Encoder_getLocalParams(const ZL_Encoder* eic); +/** + * @returns The materialized dictionary object associated with this node, if + * there is one. Otherwise NULL. + */ +const void* ZL_Encoder_getMaterializedDict(const ZL_Encoder* eictx); + +/** + * @returns The materialized MParam object associated with this node, if + * there is one. Otherwise NULL. MParams are compression-only resources + * that are not required at decompression time. + */ +const void* ZL_Encoder_getMParam(const ZL_Encoder* eictx); + /* Scratch space allocation: * When the transform needs some buffer space for some local operation, * it can request such space from the Graph Engine. It is allowed to diff --git a/include/openzl/zl_ctransform_legacy.h b/include/openzl/zl_ctransform_legacy.h index 885ad6bba..6ba55c06c 100644 --- a/include/openzl/zl_ctransform_legacy.h +++ b/include/openzl/zl_ctransform_legacy.h @@ -50,7 +50,7 @@ extern "C" { * though this API does not define any specific list of error codes. **/ -typedef size_t (*ZL_PipeDstCapacityFn)(const void* src, size_t srcSize) +typedef size_t (*ZL_CPipeDstCapacityFn)(const void* src, size_t srcSize) ZL_NOEXCEPT_FUNC_PTR; typedef size_t (*ZL_PipeEncoderFn)( void* dst, @@ -61,7 +61,7 @@ typedef size_t (*ZL_PipeEncoderFn)( typedef struct { ZL_IDType CTid; ZL_PipeEncoderFn transform_f; - ZL_PipeDstCapacityFn dstBound_f; + ZL_CPipeDstCapacityFn dstBound_f; const char* name; // Optional display name, for debugging purposes. Allowed // to be NULL. } ZL_PipeEncoderDesc; diff --git a/include/openzl/zl_data.h b/include/openzl/zl_data.h index 07def6fe0..16e81625d 100644 --- a/include/openzl/zl_data.h +++ b/include/openzl/zl_data.h @@ -48,11 +48,13 @@ typedef enum { ZL_Type_serial | ZL_Type_struct | ZL_Type_numeric \ | ZL_Type_string) -#define ZL_DATA_ID_INPUTSTREAM \ - (ZL_DataID) \ - { \ - .sid = (ZL_IDType) - 1 \ - } +#if defined(__cplusplus) +// C++ compatible version using constructor syntax +# define ZL_DATA_ID_INPUTSTREAM (ZL_DataID{ (ZL_IDType) - 1 }) +#else +// C99 compound literal +# define ZL_DATA_ID_INPUTSTREAM (ZL_DataID){ .sid = (ZL_IDType) - 1 } +#endif /* ============================== */ /* ===== Data object ===== */ diff --git a/include/openzl/zl_decompress.h b/include/openzl/zl_decompress.h index a08f1f6c6..f1c84e6fa 100644 --- a/include/openzl/zl_decompress.h +++ b/include/openzl/zl_decompress.h @@ -4,7 +4,10 @@ #define ZSTRONG_ZS2_DECOMPRESS_H // basic definitions -#include "openzl/zl_errors.h" // ZL_Report, ZL_isError() +#include "openzl/zl_common_types.h" +#include "openzl/zl_errors.h" // ZL_Report, ZL_isError() +#include "openzl/zl_introspection.h" // ZL_DecompressIntrospectionHooks +#include "openzl/zl_opaque_types.h" // ZL_DCtx #include "openzl/zl_output.h" #if defined(__cplusplus) @@ -66,11 +69,6 @@ ZL_Report ZL_getCompressedSize(const void* compressed, size_t testedSize); // One-pass decompression with advanced parameters // ------------------------------------------------ -/** - * @brief Decompression context for state management (incomplete type). - */ -typedef struct ZL_DCtx_s ZL_DCtx; - /** * @brief Creates a new decompression context. * @@ -123,6 +121,18 @@ typedef enum { */ ZL_DParam_checkContentChecksum = 3, + /** + * @brief Enable codec fusion during decompression. + * + * Codec fusion combines multiple adjacent codec nodes into a single + * optimized decoder. Setting this to ZL_TernaryParam_disable causes each + * codec in the graph to be decoded individually, which can be useful for + * debugging or testing codec correctness without fusion. + * + * Valid values use the ZL_TernaryParam format defaulting to enabled. + */ + ZL_DParam_enableCodecFusion = 4, + } ZL_DParam; /** @@ -340,6 +350,16 @@ ZL_Report ZL_FrameInfo_getDecompressedSize( */ ZL_Report ZL_FrameInfo_getNumElts(const ZL_FrameInfo* fi, int outputID); +ZL_RESULT_DECLARE_TYPE(ZL_Comment); + +/** + * @brief Gets the comment stored in the FrameInfo. + * + * @returns The comment or an error. If no comment is present it + * returns a comment with `size == 0`. The buffer returned is owned by @p zfi + */ +ZL_RESULT_OF(ZL_Comment) ZL_FrameInfo_getComment(const ZL_FrameInfo* zfi); + // ---------------------------------------------------- // Decompression of Typed content // ---------------------------------------------------- @@ -605,6 +625,29 @@ const uint32_t* ZL_TypedBuffer_rStringLens(const ZL_TypedBuffer* tbuffer); */ ZL_Report ZL_getHeaderSize(const void* src, size_t srcSize); +// ----------------------------- +// Decompression Introspection +// ----------------------------- + +/** + * Attach introspection hooks to the DCtx. Hooks allow code to run at specific + * DWAYPOINTs during decompression. A hook set to NULL will simply be skipped. + * There can only be one set of hooks attached at a time; calling this again + * will overwrite the previous hooks. The caller is responsible for maintaining + * the lifetime of the objects referenced by the hooks. + * + * @note This will only do something if the library is compiled with the + * ALLOW_INTROSPECTION option. Otherwise, all the hooks will be no-ops. + */ +ZL_Report ZL_DCtx_attachDecompressIntrospectionHooks( + ZL_DCtx* dctx, + const ZL_DecompressIntrospectionHooks* hooks); + +/** + * Detach any decompression introspection hooks currently attached to the DCtx. + */ +ZL_Report ZL_DCtx_detachAllDecompressIntrospectionHooks(ZL_DCtx* dctx); + #if defined(__cplusplus) } // extern "C" #endif diff --git a/include/openzl/zl_dict.h b/include/openzl/zl_dict.h new file mode 100644 index 000000000..6d587d048 --- /dev/null +++ b/include/openzl/zl_dict.h @@ -0,0 +1,95 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_ZL_DICT_H +#define OPENZL_ZL_DICT_H + +#include +#include + +#include "openzl/zl_errors.h" +#include "openzl/zl_opaque_types.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +// ============================================================================ +// ZL_Dict - A single dictionary +// ============================================================================ + +typedef struct { + ZL_DictID dictID; + ZL_UniqueID contentHash; // SHA-256 of raw dict content + ZL_IDType materializingCodec; + bool isCustomCodec; + void* dictObj; + size_t packedSize; +} ZL_Dict; + +typedef const ZL_Dict* ZL_DictConstPtr; +ZL_RESULT_DECLARE_TYPE(ZL_DictConstPtr); + +// ============================================================================ +// ZL_ParsedDict - Parsed (non-owning) view of a serialized dict +// ============================================================================ + +typedef struct { + ZL_DictID dictID; + ZL_UniqueID contentHash; // SHA-256 of raw dict content + ZL_IDType materializingCodec; + bool isCustomCodec; + const void* dictContent; + size_t contentSize; + size_t packedSize; +} ZL_ParsedDict; + +ZL_RESULT_DECLARE_TYPE(ZL_ParsedDict); + +/// Warning: The produced ZL_ParsedDict is non-owning. The dictContent field is +/// just a pointer to somewhere in the @p buf . +ZL_RESULT_OF(ZL_ParsedDict) ZL_Dict_parse(const void* buf, size_t size); + +// ============================================================================ +// ZL_BundleInfo - Metadata about the bundle and associated dicts +// ============================================================================ + +typedef struct { + ZL_BundleID bundleID; + bool isFatBundle; + size_t numDicts; + const ZL_DictID* dictIDs; + size_t packedSize; +} ZL_BundleInfo; + +typedef const ZL_BundleInfo* ZL_BundleInfoConstPtr; +ZL_RESULT_DECLARE_TYPE(ZL_BundleInfoConstPtr); +ZL_RESULT_DECLARE_TYPE(ZL_BundleInfo); + +/// Warning: The produced ZL_BundleInfo is non-owning. The dictIDs field is +/// just a pointer to somewhere in the @p buf . The caller must ensure that +/// @p buf outlives any use of the returned struct's dictIDs, or otherwise copy +/// the buffer. +ZL_RESULT_OF(ZL_BundleInfo) ZL_BundleInfo_parse(const void* buf, size_t size); + +// ============================================================================ +// ZL_DictBundle - A bundle of dictionaries +// ============================================================================ + +/** + * A non-owning "view" of a bundle. The backing memory must be managed by an + * external allocator. + */ +typedef struct { + ZL_BundleInfo info; + size_t packedSize; + const ZL_Dict** dicts; +} ZL_DictBundle; + +typedef const ZL_DictBundle* ZL_DictBundleConstPtr; +ZL_RESULT_DECLARE_TYPE(ZL_DictBundleConstPtr); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_ZL_DICT_H diff --git a/include/openzl/zl_dtransform.h b/include/openzl/zl_dtransform.h index 565614b10..9af51cbf5 100644 --- a/include/openzl/zl_dtransform.h +++ b/include/openzl/zl_dtransform.h @@ -18,6 +18,7 @@ #include "openzl/zl_decompress.h" // ZL_DCtx #include "openzl/zl_dtransform_legacy.h" // Pipe and Split transforms #include "openzl/zl_errors.h" // ZL_Report, ZL_isError() +#include "openzl/zl_opaque_types.h" // ZL_Decoder #include "openzl/zl_portability.h" // ZL_NOEXCEPT_FUNC_PTR #if defined(__cplusplus) @@ -68,8 +69,6 @@ extern "C" { * Consistency is what tilted the balance in favor of current design. **/ -typedef struct ZL_Decoder_s ZL_Decoder; // incomplete type - typedef ZL_Report (*ZL_TypedDecoderFn)(ZL_Decoder* dictx, const ZL_Input* src[]) ZL_NOEXCEPT_FUNC_PTR; diff --git a/include/openzl/zl_dtransform_legacy.h b/include/openzl/zl_dtransform_legacy.h index 81f8b30ad..e8cc5dfb5 100644 --- a/include/openzl/zl_dtransform_legacy.h +++ b/include/openzl/zl_dtransform_legacy.h @@ -44,7 +44,7 @@ extern "C" { * Any @return value > dstCapacity will be interpreted as an error. */ -typedef size_t (*ZL_PipeDstCapacityFn)(const void* src, size_t srcSize) +typedef size_t (*ZL_DPipeDstCapacityFn)(const void* src, size_t srcSize) ZL_NOEXCEPT_FUNC_PTR; typedef size_t (*ZL_PipeDecoderFn)( void* dst, @@ -54,7 +54,7 @@ typedef size_t (*ZL_PipeDecoderFn)( typedef struct { ZL_IDType CTid; - ZL_PipeDstCapacityFn dstBound_f; + ZL_DPipeDstCapacityFn dstBound_f; ZL_PipeDecoderFn transform_f; const char* name; // Optional display name, for debugging purposes. Allowed // to be NULL. diff --git a/include/openzl/zl_dyngraph.h b/include/openzl/zl_dyngraph.h deleted file mode 100644 index 5186d3fda..000000000 --- a/include/openzl/zl_dyngraph.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. - -// Note: this header is only kept for compatibility with existing user code -// which do not yet employ the new terminology (cgraph => compressor) - -#include "openzl/zl_graph_api.h" - -// Note: in the future, this redirection will be removed, -// so use the zs2_graph_api.h only from now on. diff --git a/include/openzl/zl_errors.h b/include/openzl/zl_errors.h index af17c2001..8f65ee98b 100644 --- a/include/openzl/zl_errors.h +++ b/include/openzl/zl_errors.h @@ -7,14 +7,16 @@ * and processing mechanisms. */ -#ifndef ZSTRONG_ZS2_ERRORS_H -#define ZSTRONG_ZS2_ERRORS_H +#ifndef ZSTRONG_ZL_ERRORS_H +#define ZSTRONG_ZL_ERRORS_H #include #include // size_t +#include "openzl/zl_common_types.h" // ZL_VoidPtr, ZL_ConstVoidPtr #include "openzl/zl_errors_types.h" // ZL_ErrorCode #include "openzl/zl_macro_helpers.h" // ZS_MACRO_PAD1 and friends +#include "openzl/zl_opaque_types.h" // ZL_GraphID, ZL_NodeID #include "openzl/zl_portability.h" // ZL_INLINE #include "openzl/detail/zl_errors_detail.h" // implementation details @@ -28,17 +30,17 @@ extern "C" { // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! /********************************** - * ZS2_Result Handling in Zstrong * + * ZL_Result Handling in Zstrong * **********************************/ /** - * Zstrong employs the `ZS2_Result` type as a primary method for error handling - * and value returning. A `ZS2_Result` acts as a sum-type, encapsulating either + * Zstrong employs the `ZL_Result` type as a primary method for error handling + * and value returning. A `ZL_Result` acts as a sum-type, encapsulating either * an error or a successful value, ensuring that error checking is systematic * and robust across the library. * * Usage: - * - A `ZS2_Result` must always be checked using `ZL_RES_isError` before + * - A `ZL_Result` must always be checked using `ZL_RES_isError` before * accessing the value. * - On success, the value can be retrieved using `ZL_RES_value`. * - On error, the error code is accessible through `ZL_RES_code`, the @@ -71,7 +73,7 @@ extern "C" { /** * When an error occurs, Zstrong can provide a rich error message using the * context object where the error has ocurred. This message is a string that can - * be retrieved using ZS2_{context}_getErrorContextString() which contains the + * be retrieved using ZL_{context}_getErrorContextString() which contains the * call stack of the error source. For example, @ref * ZL_CCtx_getErrorContextString is the variant that takes the compression * context as input. Below is an example of printing the rich error. @@ -159,7 +161,7 @@ extern "C" { * ZL_Report serialize_something(...) { * ZL_RESULT_DECLARE_SCOPE(Foo, NULL); * ZL_CompressorSerializer serializer; - * ZL_ERR_IF_ERR(ZL_CompressorSerializer_init(&serialier)); + * ZL_ERR_IF_ERR(ZL_CompressorSerializer_init(&serializer)); * ZL_RESULT_UPDATE_SCOPE_CONTEXT(&serializer); * // ... * } @@ -185,17 +187,22 @@ extern "C" { // Returns the error code, of type ZL_ErrorCode #define ZL_RES_code(res) ((res)._code) +// Returns the ZL_Error descriptor from a ZL_RESULT_OF() object. +#define ZL_RES_error(res) ((res)._error) + /*-********************************************* * Common Result types *-********************************************/ ZL_RESULT_DECLARE_TYPE(ZL_GraphID); ZL_RESULT_DECLARE_TYPE(ZL_NodeID); +ZL_RESULT_DECLARE_TYPE(ZL_VoidPtr); +ZL_RESULT_DECLARE_TYPE(ZL_ConstVoidPtr); /*-********************************************* * ZL_Report type *-********************************************* - * ZL_Report is a priviledged Result type, which is employed everywhere within + * ZL_Report is a privileged Result type, which is employed everywhere within * zstrong. It is a Result of size_t, which means it represents either an error * or a size_t. * @@ -265,9 +272,6 @@ ZL_Report ZL_returnError(ZL_ErrorCode err); // Below API allows users to specify a formatted message when they // create and return an error. // -// Note(@Cyan): What's the current status of this error message ? Is it -// displayed in logs ? Is it tracked or registered in the Error object ? -// // ZL_REPORT_ERROR() takes an error code suffix, e.g., `allocation`. // ZL_REPORT_ERROR_CODE() takes an error code variable, or a full enum name // @@ -277,15 +281,6 @@ ZL_Report ZL_returnError(ZL_ErrorCode err); #define ZL_REPORT_ERROR_CODE(...) \ ZS_MACRO_PAD2(ZL_RESULT_MAKE_ERROR_CODE, size_t, __VA_ARGS__) -// Implementation detail (do not use directly) -ZL_Report ZL_reportError( - const char* file, - const char* func, - int line, - ZL_ErrorCode err, - const char* fmt, - ...); - /** * @returns `ZL_OperationContext*`, a possibly-`NULL` pointer to the * operation context owned by the provided @p context, which is where rich @@ -300,6 +295,7 @@ ZL_Report ZL_reportError( * - ZL_Edge * - ZL_CompressorSerializer * - ZL_CompressorDeserializer + * - ZL_Segmenter * * It will return `NULL` if the provided @p context is `NULL`. */ @@ -320,11 +316,56 @@ ZL_Report ZL_reportError( * - ZL_Edge * - ZL_CompressorSerializer * - ZL_CompressorDeserializer + * - ZL_Segmenter * * It will return `NULL` if the provided @p context is `NULL`. */ #define ZL_GET_DEFAULT_ERROR_CONTEXT(context) ZL_GET_ERROR_CONTEXT_IMPL(context) +/********************************** + * ZL_E: ZL_Error + **********************************/ + +////////////////// +// Construction // +////////////////// + +/** + * Using this macro API allows users to specify a formatted message when they + * create and return an error. + * + * ZL_E() takes an error code suffix, e.g., `allocation`, while ZL_E_CODE() + * takes the full name (or a variable or something!). + */ +#define ZL_E(...) ZS_MACRO_PAD1(ZL_E_INNER, __VA_ARGS__) +#define ZL_E_CODE(...) ZS_MACRO_PAD1(ZL_E_CODE_INNER, __VA_ARGS__) + +///////////////// +// Destruction // +///////////////// + +// There is no destructor for ZS2_Errors! The memory is managed elsewhere and +// therefore there's nothing to do to destroy an error. + +/////////////// +// Accessors // +/////////////// + +ZL_INLINE int ZL_E_isError(ZL_Error err) +{ + return err._code != ZL_ErrorCode_no_error; +} + +ZL_INLINE ZL_ErrorCode ZL_E_code(ZL_Error err) +{ + return err._code; +} + +ZL_INLINE const char* ZL_E_codeStr(ZL_Error err) +{ + return ZL_ErrorCode_toString(err._code); +} + ///////////////////////////////////////////// // New and Improved Error Handling Macros! // ///////////////////////////////////////////// @@ -380,16 +421,35 @@ ZL_Report ZL_reportError( #define ZL_ERR(...) ZS_MACRO_PAD1(ZL_ERR_RET_IMPL, __VA_ARGS__) /// Turn a @p value into a result. -#define ZL_WRAP_VALUE(value) \ - ((ZL__RetType){ \ - ._value = { ._code = ZL_ErrorCode_no_error, ._value = (value) } }) +#if defined(__cplusplus) +} // extern "C" + +// C++ compatible version using helper function +# define ZL_WRAP_VALUE(value) \ + (::openzl::detail::make_result_with_value(value)) +extern "C" { +#else +// C99 compound literal +# define ZL_WRAP_VALUE(value) \ + ((ZL__RetType){ ._value = { ._code = ZL_ErrorCode_no_error, \ + ._value = (value) } }) +#endif /// Turn a @p error into a result, and try to add a stack frame to the traceback /// in the error. #define ZL_WRAP_ERROR(error) ZL_WRAP_ERROR_ADD_FRAME(error) /// Turn a @p error into a result, without trying to record a stack frame. -#define ZL_WRAP_ERROR_NO_FRAME(error) ((ZL__RetType){ ._error = (error) }) +#if defined(__cplusplus) +} // extern "C" +// C++ compatible version using helper function +# define ZL_WRAP_ERROR_NO_FRAME(error) \ + (::openzl::detail::make_result_with_error(error)) +extern "C" { +#else +// C99 compound literal +# define ZL_WRAP_ERROR_NO_FRAME(error) ((ZL__RetType){ ._error = (error) }) +#endif #define ZL_TRY_SET(_type, _var, _expr) ZL_TRY_SET_DT(_type, _var, _expr) @@ -398,212 +458,8 @@ ZL_Report ZL_reportError( #define ZL_TRY_LET_CONST(_type, _var, _expr) \ ZL_TRY_LET_CONST_DT(_type, _var, _expr) -/////////////////////////////////////////////// -// Enhanced Control Flow with Error Handling // -/////////////////////////////////////////////// - -/** - * In complex functions with multiple conditional checks, it is often necessary - * to exit early when a condition that leads to an error is met. The following - * macros facilitate this pattern by checking conditions and returning an error - * immediately if the condition is true. This approach simplifies error handling - * by avoiding deep nesting and improving readability. - * - * Usage Pattern: - * - These macros check a specified condition and, if true, construct and return - * an error, effectively exiting the function. - * - If the condition is false, the function's execution continues as normal. - * - Errors are constructed using a specified error suffix, from - * 'zs2_errors_types.h'. - * - Optionally, a format string can be provided for detailed error messages, - * enhancing debugging and logging capabilities. - * - * Example: - * ```c - * // Early exit if pointer allocation fails, with formatted error message - * ZL_RET_R_IF(allocation, ptr == NULL, "Failed to allocate %zu bytes", size); - * ``` - * - * Available Macros: - * - `ZL_RET_R_IF(...)`: Checks a condition, returns an error if true. - * - `ZL_RET_R_IF_NOT(...)`: Logical negation of `ZL_RET_R_IF`. - * - `ZL_RET_R_IF_NULL(...)`: Checks if pointer is NULL, returns an error. - * - `ZL_RET_R_IF_NN(...)`: Inverse of `ZL_RET_R_IF_NULL`. - * - Comparison Macros: `ZL_RET_R_IF_EQ()`, `ZL_RET_R_IF_NE()`, - * `ZL_RET_R_IF_GE()`, etc., for specific relational checks. - * - Logical Macros: `ZL_RET_R_IF_AND()`, `ZL_RET_R_IF_OR()`, to handle - * compound conditions. - * - `ZL_RET_R_IF_ERR(...)`: returns if provided ZL_Report is an error - * - `ZL_RET_R_ERR(...)`: Unconditionally returns an error with optional - * formatted message. - * - `ZL_RET_R(res)`: Directly returns the provided `ZL_Report`. - */ - -#define ZL_RET_R_IF(...) ZL_RET_T_IF(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_NOT(...) ZL_RET_T_IF_NOT(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_NULL(...) ZL_RET_T_IF_NULL(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_NN(...) ZL_RET_T_IF_NN(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_EQ(...) ZL_RET_T_IF_EQ(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_NE(...) ZL_RET_T_IF_NE(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_GE(...) ZL_RET_T_IF_GE(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_LE(...) ZL_RET_T_IF_LE(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_GT(...) ZL_RET_T_IF_GT(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_LT(...) ZL_RET_T_IF_LT(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_AND(...) ZL_RET_T_IF_AND(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_OR(...) ZL_RET_T_IF_OR(size_t, __VA_ARGS__) -#define ZL_RET_R_IF_ERR(...) ZL_RET_T_IF_ERR(size_t, __VA_ARGS__) - -/// Unconditionally constructs and returns an error. -/// Supports optional formatted string. -#define ZL_RET_R_ERR(...) ZL_RET_T_ERR(size_t, __VA_ARGS__) - -/// Unconditionally return a `ZL_Report` wrapping @p err, which must be a -// `ZL_Error`. -#define ZL_RET_R_WRAP_ERR(err) ZL_RET_T_WRAP_ERR(size_t, err) - -/// Unconditionally return a `ZL_Report` wrapping @p val, which must be a -/// `size_t`. -#define ZL_RET_R_VAL(val) \ - ZL_RET_T_RES(size_t, ZL_RESULT_WRAP_VALUE(size_t, val)) - -/// Unconditionally returns @p res, which must be a ZL_Report. -#define ZL_RET_R(res) ZL_RET_T_RES(size_t, res) - -/** - * These macros conditionally set a variable @p _var to the value in the - * result returned by the expression @p _expr. If @p _expr evaluates to an - * error, these macros cause the calling context to bubble up that error by - * returning it. If it evaluates to a result that contains a value, it unwraps - * that value and assigns it into the named variable. - * - * Equivalent to rust's ? operator, e.g. `let x: i32 = "123".parse()?;`. - * - * `ZL_TRY_SET_R()` assumes @p _var already exists. `ZL_TRY_LET_R()` and - * `ZL_TRY_LET_CONST_R()` assume that @p _var doesn't already exist, and - * declares such a variable. As the name hints, the variable that - * `ZL_TRY_LET_CONST_R()` declares is declared as `const`. - * - * In these untyped variants, @p _expr must evaluate to a @ref ZL_Report, - * @p _var must name a variable that either already is or will be of type - * `size_t`, and the function in which these macros are invoked must have a - * return type of @ref ZL_Report. Typed variants (with `_T` or `_TT` suffixes) - * are described below, for when that's not the case, e.g., @ref ZL_TRY_SET_T - * and @ref ZL_TRY_SET_TT. - */ - -#define ZL_TRY_SET_R(_var, _expr) ZL_TRY_SET_T(size_t, _var, _expr) -#define ZL_TRY_LET_R(_var, _expr) ZL_TRY_LET_T(size_t, _var, _expr) -#define ZL_TRY_LET_CONST_R(_var, _expr) ZL_TRY_LET_CONST_T(size_t, _var, _expr) - -/** - * The following set of macros offer the same capabilities as above, but for - * the more generic ZL_RESULT_OF(type) return type. As a consequence, the type - * must be provided explicitly as the first argument of the macro. - */ - -#define ZL_RET_T_IF(type, errcode, ...) \ - ZS_MACRO_PAD3(ZL_RET_IF_UNARY_IMPL, type, errcode, __VA_ARGS__) -#define ZL_RET_T_IF_NOT(type, errcode, ...) \ - ZS_MACRO_PAD3(ZL_RET_IF_NOT_UNARY_IMPL, type, errcode, __VA_ARGS__) -#define ZL_RET_T_IF_EQ(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, ==, __VA_ARGS__) -#define ZL_RET_T_IF_NE(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, !=, __VA_ARGS__) -#define ZL_RET_T_IF_GE(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, >=, __VA_ARGS__) -#define ZL_RET_T_IF_LE(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, <=, __VA_ARGS__) -#define ZL_RET_T_IF_GT(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, >, __VA_ARGS__) -#define ZL_RET_T_IF_LT(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, <, __VA_ARGS__) -#define ZL_RET_T_IF_AND(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, &&, __VA_ARGS__) -#define ZL_RET_T_IF_OR(type, errcode, ...) \ - ZS_MACRO_PAD5(ZL_RET_IF_BINARY_IMPL, type, errcode, ||, __VA_ARGS__) -#define ZL_RET_T_IF_NN(type, errcode, ...) \ - ZS_MACRO_PAD3(ZL_RET_IF_NN_IMPL, type, errcode, __VA_ARGS__) -#define ZL_RET_T_IF_NULL(type, errcode, ...) \ - ZS_MACRO_PAD3(ZL_RET_IF_NULL_IMPL, type, errcode, __VA_ARGS__) - -/// Unconditionally construct and return an error. -#define ZL_RET_T_ERR(type, ...) \ - ZS_MACRO_PAD2(ZL_RET_ERR_IMPL, type, __VA_ARGS__) - -/// Unconditionally return a `ZL_RESULT_OF(type)` wrapping @p err, which must -/// be a `ZL_Error`. -#define ZL_RET_T_WRAP_ERR(type, err) \ - ZL_RET_T_RES(type, ZL_RESULT_WRAP_ERROR(type, err)) - -/// Unconditionally return a `ZL_RESULT_OF(type)` wrapping @p val, which must -/// be of type @p type. -#define ZL_RET_T_VAL(type, val) \ - ZL_RET_T_RES(type, ZL_RESULT_WRAP_VALUE(type, val)) - -/// Unconditionally returns @p res, which must be of type ZL_RESULT_OF(type). -#define ZL_RET_T_RES(type, res) ZL_RET_IMPL(type, res) - -/** - * In functions that return a ZL_RESULT_OF(type), this is a quick helper macro - * to bail if an internal call failed (produced a ZL_RESULT_OF(*) containing - * an error). - */ -#define ZL_RET_T_IF_ERR(type, ...) \ - ZS_MACRO_PAD2(ZL_RET_IF_ERR_IMPL, type, __VA_ARGS__) - -/** - * Like @ref ZL_TRY_SET_R() and friends, but generified across different types. - * I.e., it doesn't assume the result type of @p _expr is @ref ZL_Report and - * that the type of @p _var is `size_t`. Instead, it takes @p _type, which - * indicates both the type of @p _var and also the inner type of the @ref - * ZS2_Result that @p _expr returns. - */ - -#define ZL_TRY_SET_T(_type, _var, _expr) \ - ZL_TRY_SET_TT(size_t, _type, _var, _expr) - -#define ZL_TRY_LET_T(_type, _var, _expr) \ - ZL_TRY_LET_TT(size_t, _type, _var, _expr) - -#define ZL_TRY_LET_CONST_T(_type, _var, _expr) \ - ZL_TRY_LET_CONST_TT(size_t, _type, _var, _expr) - -/** - * Like ZL_TRY_LET_T() but doesn't assume the outer/return type is a - * ZL_Report. Instead, takes two types, the outer type that this may return - * as well as the inner type which is the type of result that the expression - * produces. - */ -#define ZL_TRY_SET_TT(_outer_type, _inner_type, _var, _expr) \ - do { \ - ZL_RESULT_OF(_inner_type) _report = (_expr); \ - ZL_RET_T_IF_ERR(_outer_type, _report); \ - _var = ZL_RES_value(_report); \ - } while (0) - -#define ZL_TRY_LET_TT(_outer_type, _inner_type, _var, _expr) \ - _inner_type _var; \ - ZL_TRY_SET_TT(_outer_type, _inner_type, _var, _expr) - -/** - * Like ZL_TRY_LET_TT() but the variable it defines is declared as - * const. - */ -#define ZL_TRY_LET_CONST_TT(_outer_type, _inner_type, _var, _expr) \ - ZL_Error ZS_MACRO_CONCAT(_var, _tmp_error_storage); \ - const _inner_type _var = \ - ZS_MACRO_CONCAT(ZL_RESULT_OF(_inner_type), _extract)( \ - _expr, &ZS_MACRO_CONCAT(_var, _tmp_error_storage)); \ - if (ZS_MACRO_CONCAT(_var, _tmp_error_storage)._code \ - != ZL_ErrorCode_no_error) { \ - ZL_RET_T_WRAP_ERR( \ - _outer_type, ZS_MACRO_CONCAT(_var, _tmp_error_storage)); \ - } \ - do { \ - } while (0) - #if defined(__cplusplus) } // extern "C" #endif -#endif // ZSTRONG_ZS2_ERRORS_H +#endif // ZSTRONG_ZL_ERRORS_H diff --git a/include/openzl/zl_errors_types.h b/include/openzl/zl_errors_types.h index b0dc77376..db138c613 100644 --- a/include/openzl/zl_errors_types.h +++ b/include/openzl/zl_errors_types.h @@ -64,11 +64,14 @@ typedef enum { ZL_ErrorCode_outputNotCommitted = 24, ZL_ErrorCode_outputNotReserved = 25, ZL_ErrorCode_segmenter_inputNotConsumed = 26, + ZL_ErrorCode_segmenter_noSegments = 27, /* graph stage errors */ - ZL_ErrorCode_graph_invalid = 30, - ZL_ErrorCode_graph_nonserializable = 31, - ZL_ErrorCode_invalidTransform = 32, - ZL_ErrorCode_graph_invalidNumInputs = 33, + ZL_ErrorCode_graph_invalid = 30, + ZL_ErrorCode_graph_nonserializable = 31, + ZL_ErrorCode_invalidTransform = 32, + ZL_ErrorCode_graph_invalidNumInputs = 33, + ZL_ErrorCode_graph_parser_malformedInput = 34, + ZL_ErrorCode_graph_parser_unhandledInput = 35, /* runtime compression errors */ ZL_ErrorCode_successor_invalid = 40, ZL_ErrorCode_successor_alreadySet = 41, @@ -89,6 +92,11 @@ typedef enum { ZL_ErrorCode_formatVersion_unsupported = 60, ZL_ErrorCode_formatVersion_notSet = 61, ZL_ErrorCode_node_versionMismatch = 62, + /* dictionary errors */ + ZL_ErrorCode_dict_corruption = 65, + ZL_ErrorCode_dict_materialization = 66, + ZL_ErrorCode_noValidMaterialization = 67, + ZL_ErrorCode_dictNoRecord = 68, /* internal errors */ ZL_ErrorCode_allocation = 70, ZL_ErrorCode_internalBuffer_tooSmall = 71, diff --git a/include/openzl/zl_graph_api.h b/include/openzl/zl_graph_api.h index 7af208ba6..f0da76f63 100644 --- a/include/openzl/zl_graph_api.h +++ b/include/openzl/zl_graph_api.h @@ -11,6 +11,7 @@ #include "openzl/zl_errors.h" // ZL_Report #include "openzl/zl_input.h" #include "openzl/zl_localParams.h" // ZL_LocalParams +#include "openzl/zl_materializer.h" // ZL_MaterializerDesc #include "openzl/zl_opaque_types.h" // ZL_GraphID #include "openzl/zl_portability.h" // ZL_NOEXCEPT_FUNC_PTR @@ -45,8 +46,6 @@ extern "C" { * Note: Function Graph is (currently) the only way to deal with multiple * Inputs. */ -typedef struct ZL_Graph_s ZL_Graph; -typedef struct ZL_Edge_s ZL_Edge; typedef struct ZL_FunctionGraphDesc ZL_FunctionGraphDesc; /** * The function signature for function graphs. @@ -87,6 +86,12 @@ struct ZL_FunctionGraphDesc { const ZL_NodeID* customNodes; // can be NULL when none employed size_t nbCustomNodes; // Must be zero when customNodes==NULL ZL_LocalParams localParams; + /** + * Optional materializer descriptor for materialized local params. + * If both materializeFn and dematerializeFn are non-null, the materializer + * will be used to create materialized objects from local params. + */ + ZL_MaterializerDesc materializer; /** * Optionally an opaque pointer that can be queried with * ZL_Graph_getOpaquePtr(). @@ -152,14 +157,49 @@ bool ZL_Graph_isNodeSupported(const ZL_Graph* gctx, ZL_NodeID nodeid); const void* ZL_Graph_getOpaquePtr(const ZL_Graph* graph); +/** + * @brief Query the current graph execution depth. + * + * Returns the depth at which the current graph is executing. + * Depth 1 is the root graph; each successor level increments by 1. + * This can be used to detect runaway graph growth. + * + * @param gctx Graph context, must be non-NULL. + * @return Current graph execution depth (>= 1). + */ +unsigned ZL_Graph_getDepth(const ZL_Graph* gctx); + /* access the content of an Edge */ const ZL_Input* ZL_Edge_getData(const ZL_Edge* sctx); +/** + * Gets the error context for a given ZL_Report. This context is useful for + * debugging and for submitting bug reports to Zstrong developers. + * + * @param report The report to get the error context for + * + * @returns A verbose error string containing context about the error that + * occurred. + * + * @note: This string is stored within the @p graph and may only be valid for + * the lifetime of the @p graph. + */ +const char* ZL_Graph_getErrorContextString( + const ZL_Graph* graph, + ZL_Report report); + +/** + * See ZL_Graph_getErrorContextString() + * + * @param error: The error to get the context for + */ +const char* ZL_Graph_getErrorContextString_fromError( + const ZL_Graph* graph, + ZL_Error error); + /* Actions */ /* ------- */ -typedef struct ZL_GraphParameters_s ZL_RuntimeGraphParameters; - /* Scratch space allocation: * When the function graph function needs some temporary space for some * operation, it can requests such space from the Graph Engine. The Function diff --git a/include/openzl/zl_graphs.h b/include/openzl/zl_graphs.h index ad4d081e7..6051d30e1 100644 --- a/include/openzl/zl_graphs.h +++ b/include/openzl/zl_graphs.h @@ -25,11 +25,25 @@ typedef enum { ZL_StandardGraphID_compress_generic, ZL_StandardGraphID_select_generic_lz_backend, + ZL_StandardGraphID_segment_numeric, ZL_StandardGraphID_select_numeric, + ZL_StandardGraphID_ml_selector, ZL_StandardGraphID_clustering, ZL_StandardGraphID_try_parse_int, ZL_StandardGraphID_simple_data_description_language, + ZL_StandardGraphID_simple_data_description_language_v2, + + ZL_StandardGraphID_lz4, + ZL_StandardGraphID_partition_bitpack, + ZL_StandardGraphID_segment_num8_from_serial, + ZL_StandardGraphID_segment_num16_from_serial, + ZL_StandardGraphID_segment_num32_from_serial, + ZL_StandardGraphID_segment_num64_from_serial, + + ZL_StandardGraphID_lz, + + ZL_StandardGraphID_segment_serial, ZL_StandardGraphID_public_end // last id, used to detect end of public // range diff --git a/include/openzl/zl_introspection.h b/include/openzl/zl_introspection.h index eb259e548..ccc4ed5a5 100644 --- a/include/openzl/zl_introspection.h +++ b/include/openzl/zl_introspection.h @@ -13,6 +13,27 @@ typedef struct ZL_CompressIntrospectionHooks_s { void* opaque; // an opaque pointer, passed as-is to all the hooks as the // first argument + /* ******** Segmenter API methods ******** */ + void (*on_segmenterEncode_start)( + void* opaque, + ZL_Segmenter* segCtx, + void* placeholder) ZL_NOEXCEPT_FUNC_PTR; + void (*on_segmenterEncode_end)( + void* opaque, + ZL_Segmenter* segCtx, + ZL_Report r) ZL_NOEXCEPT_FUNC_PTR; + void (*on_ZL_Segmenter_processChunk_start)( + void* opaque, + ZL_Segmenter* segCtx, + const size_t numElts[], + size_t numInputs, + ZL_GraphID startingGraphID, + const ZL_RuntimeGraphParameters* rGraphParams) ZL_NOEXCEPT_FUNC_PTR; + void (*on_ZL_Segmenter_processChunk_end)( + void* opaque, + ZL_Segmenter* segCtx, + ZL_Report r) ZL_NOEXCEPT_FUNC_PTR; + /* ******** Encoder API methods ******** */ void (*on_ZL_Encoder_getScratchSpace)( void* opaque, @@ -82,7 +103,7 @@ typedef struct ZL_CompressIntrospectionHooks_s { /* ******** CCtx entrypoint ******** */ void (*on_ZL_CCtx_compressMultiTypedRef_start)( void* opaque, - ZL_CCtx const* const cctx, + ZL_CCtx* cctx, void const* const dst, size_t const dstCapacity, ZL_TypedRef const* const inputs[], @@ -90,7 +111,55 @@ typedef struct ZL_CompressIntrospectionHooks_s { void (*on_ZL_CCtx_compressMultiTypedRef_end)( void* opaque, ZL_CCtx const* const cctx, - ZL_Report const result); + ZL_Report const result) ZL_NOEXCEPT_FUNC_PTR; } ZL_CompressIntrospectionHooks; +// Introspection hooks for decompress +typedef struct ZL_DecompressIntrospectionHooks_s { + void* opaque; // an opaque pointer, passed as-is to all the hooks as the + // first argument + + /* ******** DCtx entrypoint ******** */ + void (*on_ZL_DCtx_decompressMultiTBuffer_start)( + void* opaque, + ZL_DCtx* dctx, + size_t nbOutputs, + const void* framePtr, + size_t frameSize) ZL_NOEXCEPT_FUNC_PTR; + void (*on_ZL_DCtx_decompressMultiTBuffer_end)( + void* opaque, + ZL_DCtx* dctx, + ZL_Report result) ZL_NOEXCEPT_FUNC_PTR; + + /* ******** Per-chunk ******** */ + void (*on_decompressChunk_start)( + void* opaque, + ZL_DCtx* dctx, + size_t chunkIndex) ZL_NOEXCEPT_FUNC_PTR; + void (*on_decompressChunk_end)( + void* opaque, + ZL_DCtx* dctx, + ZL_Report result) ZL_NOEXCEPT_FUNC_PTR; + + /* ******** Decoder API methods ******** */ + void (*on_ZL_Decoder_getCodecHeader)( + void* opaque, + const ZL_Decoder* dictx, + const void* trh, + size_t trhSize) ZL_NOEXCEPT_FUNC_PTR; + + /* ******** Per-codec/transform execution ******** */ + void (*on_codecDecode_start)( + void* opaque, + ZL_Decoder* dictx, + const ZL_Data* const* inStreams, + size_t nbInStreams) ZL_NOEXCEPT_FUNC_PTR; + void (*on_codecDecode_end)( + void* opaque, + ZL_Decoder* dictx, + const ZL_Data* const* outStreams, + size_t nbOutStreams, + ZL_Report result) ZL_NOEXCEPT_FUNC_PTR; +} ZL_DecompressIntrospectionHooks; + #endif // OPENZL_ZL_INTROSPECTION_H diff --git a/include/openzl/zl_localParams.h b/include/openzl/zl_localParams.h index 50dd0852d..a2dd274fb 100644 --- a/include/openzl/zl_localParams.h +++ b/include/openzl/zl_localParams.h @@ -136,18 +136,9 @@ typedef struct { * ZL_LocalIntParams lip = * ZL_INTPARAMS( {id1, value1}, {id2, value2} ); */ -#define ZL_INTPARAMS(...) \ - { \ - ZL_GENERIC_LIST(ZL_IntParam, __VA_ARGS__) \ - } -#define ZL_COPYPARAMS(...) \ - { \ - ZL_GENERIC_LIST(ZL_CopyParam, __VA_ARGS__) \ - } -#define ZL_REFPARAMS(...) \ - { \ - ZL_GENERIC_LIST(ZL_RefParam, __VA_ARGS__) \ - } +#define ZL_INTPARAMS(...) { ZL_GENERIC_LIST(ZL_IntParam, __VA_ARGS__) } +#define ZL_COPYPARAMS(...) { ZL_GENERIC_LIST(ZL_CopyParam, __VA_ARGS__) } +#define ZL_REFPARAMS(...) { ZL_GENERIC_LIST(ZL_RefParam, __VA_ARGS__) } /* Note(@Cyan): below macros might be replaceable by inline functions */ diff --git a/include/openzl/zl_macro_helpers.h b/include/openzl/zl_macro_helpers.h index 58f20ab4b..c37efd445 100644 --- a/include/openzl/zl_macro_helpers.h +++ b/include/openzl/zl_macro_helpers.h @@ -16,42 +16,45 @@ #define ZS_MACRO_QUOTE_INNER(a) #a #define ZS_MACRO_QUOTE(a) ZS_MACRO_QUOTE_INNER(a) -#define ZS_MACRO_PAD_SELECT_33RD( \ - _1, \ - _2, \ - _3, \ - _4, \ - _5, \ - _6, \ - _7, \ - _8, \ - _9, \ - _10, \ - _11, \ - _12, \ - _13, \ - _14, \ - _15, \ - _16, \ - _17, \ - _18, \ - _19, \ - _20, \ - _21, \ - _22, \ - _23, \ - _24, \ - _25, \ - _26, \ - _27, \ - _28, \ - _29, \ - _30, \ - _31, \ - _32, \ - _33, \ - ...) \ +#define ZS_MACRO_EXPAND(...) __VA_ARGS__ +#define ZS_MACRO_PAD_SELECT_33RD_INNER( \ + _1, \ + _2, \ + _3, \ + _4, \ + _5, \ + _6, \ + _7, \ + _8, \ + _9, \ + _10, \ + _11, \ + _12, \ + _13, \ + _14, \ + _15, \ + _16, \ + _17, \ + _18, \ + _19, \ + _20, \ + _21, \ + _22, \ + _23, \ + _24, \ + _25, \ + _26, \ + _27, \ + _28, \ + _29, \ + _30, \ + _31, \ + _32, \ + _33, \ + ...) \ _33 +#define ZS_MACRO_PAD_SELECT_33RD(...) \ + ZS_MACRO_EXPAND(ZS_MACRO_PAD_SELECT_33RD_INNER(__VA_ARGS__)) #define ZS_MACRO_PAD1_SUFFIX(...) \ ZS_MACRO_PAD_SELECT_33RD( \ __VA_ARGS__, \ @@ -266,11 +269,11 @@ #define ZS_MACRO_PAD5_ARGS(...) \ ZS_MACRO_CONCAT(ZS_MACRO_PAD, ZS_MACRO_PAD5_SUFFIX(__VA_ARGS__)) -#define ZS_MACRO_PAD1_INNER(macro, ...) macro(__VA_ARGS__) -#define ZS_MACRO_PAD2_INNER(macro, ...) macro(__VA_ARGS__) -#define ZS_MACRO_PAD3_INNER(macro, ...) macro(__VA_ARGS__) -#define ZS_MACRO_PAD4_INNER(macro, ...) macro(__VA_ARGS__) -#define ZS_MACRO_PAD5_INNER(macro, ...) macro(__VA_ARGS__) +#define ZS_MACRO_PAD1_INNER(macro, ...) ZS_MACRO_EXPAND(macro(__VA_ARGS__)) +#define ZS_MACRO_PAD2_INNER(macro, ...) ZS_MACRO_EXPAND(macro(__VA_ARGS__)) +#define ZS_MACRO_PAD3_INNER(macro, ...) ZS_MACRO_EXPAND(macro(__VA_ARGS__)) +#define ZS_MACRO_PAD4_INNER(macro, ...) ZS_MACRO_EXPAND(macro(__VA_ARGS__)) +#define ZS_MACRO_PAD5_INNER(macro, ...) ZS_MACRO_EXPAND(macro(__VA_ARGS__)) /** * These macros are designed to handle the case where, after N required diff --git a/include/openzl/zl_materializer.h b/include/openzl/zl_materializer.h new file mode 100644 index 000000000..191e2b653 --- /dev/null +++ b/include/openzl/zl_materializer.h @@ -0,0 +1,218 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_ZL_MATERIALIZER_H +#define OPENZL_ZL_MATERIALIZER_H + +#include // size_t +#include "openzl/zl_common_types.h" +#include "openzl/zl_errors.h" // ZL_RESULT_OF, ZL_VoidPtr +#include "openzl/zl_localParams.h" // ZL_LocalParams +#include "openzl/zl_opaque_types.h" // ZL_Materializer +#include "openzl/zl_portability.h" // ZL_NOEXCEPT_FUNC_PTR + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * @brief Descriptor for materializing and dematerializing local params + * + * This structure defines functions to materialize an in-memory object from + * local parameters and to dematerialize (free) that object. + * + * Materialized objects are available as a @ref ZL_RefParam via the typical + * local params access methods. Specify the retrieval key with the paramId + * field. + */ +typedef struct ZL_MaterializerDesc_s { + /** + * @brief A custom function that materializes an in-memory object from a + * provided @p params object. + * + * This function may arbitrarily use none, any, or all of the provided + * local params to generate the materialized object, but the generation + * MUST be deterministic and hermetic. In particular, materialization shall + * not depend on variables other than the provided @ref ZL_LocalParams + * object. + * + * Materialized object lifetimes will be managed by the @ref ZL_Compressor + * on which the node is registered/parameterized. Objects will be + * materialized around the time of node registration/parameterization and + * will remain allocated for the lifetime of the associated @ref + * ZL_Compressor. + * + * Do NOT rely on the materialization function being called at any specific + * time to do side-effect work. Doing so will result in undefined behavior. + * + * The @ref ZL_Compressor may arbitrarily share the same materialized object + * between multiple nodes with the same @p params and the @ref ZL_CCtx may + * provide concurrent access to materialized objects. DO NOT attempt to + * modify the materialized object after creation, either directly or via API + * getters. + * + * @param matCtx A pointer to a materializer context object associated with + * the @ref ZL_Compressor. The materialization function may use this to + * request managed memory from the ZL_Compressor as an alternative to + * managing allocations itself and via the dematerializeFn. + * @param params A pointer to the local params object to materialize. The + * provided params have no lifetime guarantees past the invocation of this + * function. You may not hold references into the params object in the + * materialized object. + * + * @returns A ZL_RESULT containing a pointer to the materialized object on + * success, or an error. Returning NULL as a valid result (when there's + * nothing to materialize) should be wrapped in ZL_WRAP_VALUE(NULL). Ensure + * the function declares a result scope with ZL_RESULT_DECLARE_SCOPE or you + * will get a compiler error. + */ + ZL_RESULT_OF(ZL_VoidPtr) (*materializeFn)( + ZL_Materializer* matCtx, + const ZL_LocalParams* params)ZL_NOEXCEPT_FUNC_PTR; + + /** + * @brief A custom function that destructs a materialized object. + * + * You should use this to deallocate all non-arena memory and free any held + * resources. As a convenience, if there are no resources or memory to free, + * you may use ZL_NOOP_DEMATERIALIZE as a placeholder. + */ + void (*dematerializeFn)(ZL_Materializer* matCtx, void* materialized) + ZL_NOEXCEPT_FUNC_PTR; + + /** + * The paramId to use for the materialized param. If there is an existing + * param that uses this paramId, the registration will fail. + */ + int paramId; + + /** + * Optionally an opaque pointer that can be queried with + * ZL_Materializer_getOpaquePtr(). OpenZL does not take ownership of this + * pointer. If lifetime extension is needed, it should be managed by the + * `ZL_OpaquePtr` in the outer `ZL_MIEncoderDesc`. + */ + const void* opaque; +} ZL_MaterializerDesc; + +/** + * No-op dematerialization function. + * Use this as a placeholder when there are no resources or memory to free. + */ +void ZL_NOOP_DEMATERIALIZE(ZL_Materializer* matCtx, void* materialized) + ZL_NOEXCEPT_FUNC_PTR; + +/** + * Managed space allocation (Materializers ONLY): + * Materialization may request arena space to hold materialized objects. It is + * allowed to request multiple buffers of any size. Returned buffers are not + * initialized, and cannot be freed individually. All buffers are + * automatically released at end of the owning @ref ZL_Compressor's lifetime. + * + * @note Always returns NULL during dematerialization. + */ +void* ZL_Materializer_allocate(ZL_Materializer* matCtx, size_t size); + +/** + * Scratch space allocation (Materializers ONLY): + * When the materializer needs some buffer space for some local operation, + * it can request such space from the engine. It is allowed to + * request multiple buffers of any size. Returned buffers are not + * initialized, and cannot be freed individually. All scratch buffers are + * automatically released at the end of the materializer's execution. + * + * @note Always returns NULL during dematerialization. + */ +void* ZL_Materializer_getScratchSpace(ZL_Materializer* matCtx, size_t size); + +// ================================================================= +// In-progress API +// ================================================================= +/** + * @brief Descriptor for materializing and dematerializing resource objects + * (dicts and MParams). + * + * Defines functions to create an in-memory object from a raw source buffer + * (materializeFn) and to free that object (dematerializeFn). Used for both + * dictionary objects (required at compression and decompression) and MParam + * objects (compression-only). Note that the registration APIs allow for + * different materializers for compression-time and decompression-time dict + * materialization. + */ +typedef struct { + /** + * @brief A custom function that materializes an in-memory object from a + * provided @p src buffer. Separate function interfaces are provided for + * compression-time and decompression-time materialization. These can be the + * same function or different functions, depending on the specific codec + * implementation. + * + * The generation MUST be deterministic and hermetic. Materialization shall + * not depend on variables other than the provided @p src buffer. + * + * Materialized object lifetimes will be managed by the @ref ZL_DictLoader + * or @ref ZL_Compressor on which the materialization scheme is registered. + * + * Do NOT rely on the materialization function being called at any specific + * time to do side-effect work. Doing so will result in undefined behavior. + * + * DO NOT attempt to modify the materialized object after creation, either + * directly or via API getters. + * + * @param matCtx A pointer to a materializer context object. The + * materialization function may use this to request managed memory as an + * alternative to managing allocations itself and via the dematerializeFn. + * @param src A pointer to the buffer from which to materialize. The + * provided buffer has no lifetime guarantees past the invocation of this + * function. You may not hold references into @p src in the materialized + * object. + * + * @returns A ZL_RESULT containing a pointer to the materialized object on + * success, or an error. Returning NULL as a valid result (when there's + * nothing to materialize) should be wrapped in ZL_WRAP_VALUE(NULL). Ensure + * the function declares a result scope with ZL_RESULT_DECLARE_SCOPE or you + * will get a compiler error. + */ + ZL_RESULT_OF(ZL_VoidPtr) (*materializeFn)( + ZL_Materializer* matCtx, + const void* src, + size_t srcSize)ZL_NOEXCEPT_FUNC_PTR; + + /** + * @brief A custom function that destructs a materialized object. + * + * You should use this to deallocate all non-arena memory and free any held + * resources. As a convenience, if there are no resources or memory to free, + * you may use ZL_NOOP_DEMATERIALIZE as a placeholder. + */ + void (*dematerializeFn)(ZL_Materializer* matCtx, void* materialized) + ZL_NOEXCEPT_FUNC_PTR; + + /** + * Optionally an opaque pointer that can be queried with + * ZL_Materializer_getOpaquePtr(). + * OpenZL unconditionally takes ownership of this pointer, even if + * registration fails, and it lives for the lifetime of the owning + * compressor/dict store. + */ + ZL_OpaquePtr opaque; +} ZL_MaterializerDesc2; + +// MParam structure +typedef struct { + const void* content; + size_t size; + /// For advanced use cases, you can specify a custom ID for this MParam. If + /// unset, a default ID will be assigned. + ZL_MParamID mparamID; +} ZL_MParam; + +/** + * @returns true if @p id is non-NULL and not ZL_MPARAM_ID_NULL. + */ +bool ZL_MParamID_hasValue(const ZL_MParamID* id); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_ZL_MATERIALIZER_H diff --git a/include/openzl/zl_nodes.h b/include/openzl/zl_nodes.h index 67d885fea..674845e12 100644 --- a/include/openzl/zl_nodes.h +++ b/include/openzl/zl_nodes.h @@ -25,7 +25,7 @@ typedef enum { ZL_StandardNodeID_field_lz, - // Autoamtic down-conversion nodes + // Automatic down-conversion nodes ZL_StandardNodeID_convert_struct_to_serial, ZL_StandardNodeID_convert_num_to_struct_le, ZL_StandardNodeID_convert_num_to_serial_le, @@ -80,6 +80,21 @@ typedef enum { ZL_StandardNodeID_quantize_offsets, ZL_StandardNodeID_quantize_lengths, + ZL_StandardNodeID_bitsplit_top8, + ZL_StandardNodeID_bitsplit_fp, + ZL_StandardNodeID_bitsplit_bf16, + + ZL_StandardNodeID_partition, + + ZL_StandardNodeID_split_byrange, + + ZL_StandardNodeID_sentinel_byte, + ZL_StandardNodeID_sentinel_num, + + ZL_StandardNodeID_lz, + + ZL_StandardNodeID_mux_lengths, + ZL_StandardNodeID_public_end // last id, used to detect end of public range } ZL_StandardNodeID; diff --git a/include/openzl/zl_opaque_types.h b/include/openzl/zl_opaque_types.h index 994fac0fc..3d3056be5 100644 --- a/include/openzl/zl_opaque_types.h +++ b/include/openzl/zl_opaque_types.h @@ -12,13 +12,16 @@ extern "C" { // This is a list of opaque types // employed by Zstrong's Public APIs. // Their declaration is required for compilers. -// However, users shoud _never_ access private members of these opaque types. +// However, users should _never_ access private members of these opaque types. // This is extremely important, there is no stability guarantee. // Moreover, the main reason for these opaque types to exist is // to prevent confusion between different opaque types // and erroneous manipulation of values. typedef unsigned int ZL_IDType; +typedef struct { + unsigned char bytes[32]; +} ZL_UniqueID; // opaque => never use definition !!! typedef struct { @@ -33,12 +36,43 @@ typedef struct { ZL_IDType gid; } ZL_GraphID; +typedef struct { + ZL_UniqueID id; +} ZL_DictID; + +typedef struct { + ZL_UniqueID id; +} ZL_MParamID; + +typedef struct { + ZL_UniqueID id; +} ZL_BundleID; + +// Helper macros for creating IDs in a C++ compatible way +#if defined(__cplusplus) +// C++ compatible versions using constructor syntax +# define ZL_MAKE_NODE_ID(id) (ZL_NodeID{ (id) }) +# define ZL_MAKE_GRAPH_ID(id) (ZL_GraphID{ (id) }) +# define ZL_DICT_ID_NULL (ZL_DictID{}) +# define ZL_BUNDLE_ID_NULL (ZL_BundleID{}) +# define ZL_MPARAM_ID_NULL (ZL_MParamID{}) +#else +// C99 compound literals +# define ZL_MAKE_NODE_ID(id) ((ZL_NodeID){ .nid = (id) }) +# define ZL_MAKE_GRAPH_ID(id) ((ZL_GraphID){ .gid = (id) }) +# define ZL_DICT_ID_NULL ((ZL_DictID){ .id = { { 0 } } }) +# define ZL_BUNDLE_ID_NULL ((ZL_BundleID){ .id = { { 0 } } }) +# define ZL_MPARAM_ID_NULL ((ZL_MParamID){ .id = { { 0 } } }) +#endif + // Incomplete types -typedef struct ZL_Data_s ZL_Data; +typedef struct Stream_s Stream; +typedef Stream ZL_Data; typedef struct ZL_Input_s ZL_Input; typedef struct ZL_Output_s ZL_Output; typedef ZL_Input ZL_TypedRef; typedef struct ZL_Compressor_s ZL_Compressor; +typedef struct ZL_Materializer_s ZL_Materializer; typedef struct ZL_CompressorSerializer_s ZL_CompressorSerializer; typedef struct ZL_CompressorDeserializer_s ZL_CompressorDeserializer; typedef struct ZL_CCtx_s ZL_CCtx; @@ -48,6 +82,9 @@ typedef struct ZL_Decoder_s ZL_Decoder; typedef struct ZL_Selector_s ZL_Selector; typedef struct ZL_Graph_s ZL_Graph; typedef struct ZL_Edge_s ZL_Edge; +typedef struct ZL_GraphParameters_s ZL_RuntimeGraphParameters; +typedef struct ZL_Segmenter_s ZL_Segmenter; +typedef struct ZL_DictLoader_s ZL_DictLoader; // Generic List construction macro (C99) #define ZL_LIST_SIZE(_type, ...) \ diff --git a/include/openzl/zl_output.h b/include/openzl/zl_output.h index 43029f8f0..e08573825 100644 --- a/include/openzl/zl_output.h +++ b/include/openzl/zl_output.h @@ -75,8 +75,8 @@ ZL_Report ZL_Output_numElts(const ZL_Output* output); /** * @returns The content size in bytes that has been committed to @p output. * For non-string types, this is the eltWidth * numElts. For string types, this - * is the sum of the lengths of each stream. If @p output has not been commited, - * it returns an error. + * is the sum of the lengths of each stream. If @p output has not been + * committed, it returns an error. */ ZL_Report ZL_Output_contentSize(const ZL_Output* output); @@ -234,7 +234,7 @@ ZL_INLINE ZL_Report ZL_Output_commit(ZL_Output* output, size_t numElts) * there is no known scenario (yet) where this makes sense. */ -/* Simple "enum"-like Medata : +/* Simple "enum"-like Metadata : * ========================= * * This is intended for some simple "tag" scenarios diff --git a/include/openzl/zl_portability.h b/include/openzl/zl_portability.h index 47c3f914d..fe5c5724b 100644 --- a/include/openzl/zl_portability.h +++ b/include/openzl/zl_portability.h @@ -50,7 +50,8 @@ extern "C" { * warn_unused_result is only used in clang, because gcc's version doesn't work * on structs. */ -#if ZL_HAS_C_ATTRIBUTE(nodiscard) || ZL_HAS_CPP_ATTRIBUTE(nodiscard) +#if (ZL_HAS_C_ATTRIBUTE(nodiscard) && __STDC_VERSION__ >= 202311L) \ + || ZL_HAS_CPP_ATTRIBUTE(nodiscard) # define ZL_NODISCARD [[nodiscard]] #elif defined(__clang__) && ZL_HAS_ATTRIBUTE(__warn_unused_result__) # define ZL_NODISCARD __attribute__((__warn_unused_result__)) diff --git a/include/openzl/zl_public_nodes.h b/include/openzl/zl_public_nodes.h index 7fc569471..09c45d580 100644 --- a/include/openzl/zl_public_nodes.h +++ b/include/openzl/zl_public_nodes.h @@ -13,6 +13,7 @@ #include "openzl/codecs/zl_ace.h" // IWYU pragma: export #include "openzl/codecs/zl_bitpack.h" // IWYU pragma: export +#include "openzl/codecs/zl_bitsplit.h" // IWYU pragma: export #include "openzl/codecs/zl_bitunpack.h" // IWYU pragma: export #include "openzl/codecs/zl_brute_force_selector.h" // IWYU pragma: export #include "openzl/codecs/zl_concat.h" // IWYU pragma: export @@ -29,12 +30,17 @@ #include "openzl/codecs/zl_generic.h" // IWYU pragma: export #include "openzl/codecs/zl_illegal.h" // IWYU pragma: export #include "openzl/codecs/zl_interleave.h" // IWYU pragma: export +#include "openzl/codecs/zl_lz.h" // IWYU pragma: export +#include "openzl/codecs/zl_lz4.h" // IWYU pragma: export #include "openzl/codecs/zl_merge_sorted.h" // IWYU pragma: export +#include "openzl/codecs/zl_mlselector.h" // IWYU pragma: export +#include "openzl/codecs/zl_mux_lengths.h" // IWYU pragma: export #include "openzl/codecs/zl_parse_int.h" // IWYU pragma: export #include "openzl/codecs/zl_prefix.h" // IWYU pragma: export #include "openzl/codecs/zl_quantize.h" // IWYU pragma: export #include "openzl/codecs/zl_range_pack.h" // IWYU pragma: export #include "openzl/codecs/zl_sddl.h" // IWYU pragma: export +#include "openzl/codecs/zl_sentinel.h" // IWYU pragma: export #include "openzl/codecs/zl_split.h" // IWYU pragma: export #include "openzl/codecs/zl_split_by_struct.h" // IWYU pragma: export #include "openzl/codecs/zl_store.h" // IWYU pragma: export diff --git a/include/openzl/zl_reflection.h b/include/openzl/zl_reflection.h index 66c6272a0..5f2875688 100644 --- a/include/openzl/zl_reflection.h +++ b/include/openzl/zl_reflection.h @@ -311,6 +311,66 @@ char const* ZL_Compressor_Node_getName( */ bool ZL_Compressor_Node_isStandard(ZL_Compressor const* cgraph, ZL_NodeID node); +/** + * @returns The dict ID associated with the @p node or ZL_DICT_ID_NULL if no + * dict is associated. + */ +ZL_DictID ZL_Compressor_Node_getDictID( + ZL_Compressor const* cgraph, + ZL_NodeID node); + +/** + * @returns The dict index within the compressor's bundle for the @p node. + * Returns an error if no dictionary is associated with this node. + * @note Only valid after ZL_Compressor_validate() has been called. + */ +ZL_Report ZL_Compressor_Node_getDictIndex( + ZL_Compressor const* cgraph, + ZL_NodeID node); + +/** + * @returns The MParam ID associated with the @p node or ZL_MPARAM_ID_NULL if no + * MParam is associated. + */ +ZL_MParamID ZL_Compressor_Node_getMParamID( + ZL_Compressor const* cgraph, + ZL_NodeID node); + +/** + * @returns A pointer to the *unmaterialized* MParam associated with the @p + * node, or NULL if no MParam is associated. + */ +const ZL_MParam* ZL_Compressor_Node_getMParam( + ZL_Compressor const* cgraph, + ZL_NodeID node); + +/** + * @returns The *materialized* Mparam object associated with the @p node or NULL + * if no MParam is associated. + */ +const void* ZL_Compressor_Node_getMParamObj( + ZL_Compressor const* cgraph, + ZL_NodeID node); + +/** + * @returns The number of unique MParam blobs stored in the @p compressor. + */ +size_t ZL_Compressor_numMParams(const ZL_Compressor* compressor); + +typedef ZL_Report (*ZL_Compressor_ForEachMParamCallback)( + void* opaque, + const ZL_MParam* mparam) ZL_NOEXCEPT_FUNC_PTR; + +/** + * Calls @p callback on every unique MParam stored in the @p compressor. + * If @p callback returns an error, short-circuit and return that error. + * @returns Success if all callbacks succeed, or the first error. + */ +ZL_Report ZL_Compressor_forEachMParam( + const ZL_Compressor* compressor, + ZL_Compressor_ForEachMParamCallback callback, + void* opaque); + /** * Reflection API for introspecting a compressed frame. * diff --git a/include/openzl/zl_segmenter.h b/include/openzl/zl_segmenter.h index 0a6b11f88..dbdc00df9 100644 --- a/include/openzl/zl_segmenter.h +++ b/include/openzl/zl_segmenter.h @@ -8,9 +8,9 @@ #include "openzl/zl_common_types.h" // ZL_OpaquePtr #include "openzl/zl_compress.h" // ZL_CParam -#include "openzl/zl_graph_api.h" // ZL_RuntimeGraphParameters #include "openzl/zl_localParams.h" // ZL_LocalParams -#include "openzl/zl_opaque_types.h" // ZL_GraphID +#include "openzl/zl_materializer.h" // ZL_MaterializerDesc +#include "openzl/zl_opaque_types.h" // ZL_GraphID, ZL_RuntimeGraphParameters, ZL_Segmenter #if defined(__cplusplus) extern "C" { @@ -66,7 +66,16 @@ extern "C" { * whatever data is left from Input. */ -typedef struct ZL_Segmenter_s ZL_Segmenter; +/** + * Shared default target chunk size for segmenters that chunk large inputs into + * independently compressed pieces. + * + * This is a policy default, not a lower bound. Individual segmenters may + * expose their own local override parameters or choose a different default when + * there is a format-specific reason to do so. + */ +#define ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE (16 << 20) + typedef ZL_Report (*ZL_SegmenterFn)(ZL_Segmenter* sctx); typedef struct { @@ -81,6 +90,12 @@ typedef struct { const ZL_GraphID* customGraphs; // can be NULL when none employed size_t numCustomGraphs; // Must be zero when customGraphs==NULL ZL_LocalParams localParams; + /** + * Optional materializer descriptor for materialized local params. + * If both materializeFn and dematerializeFn are non-null, the materializer + * will be used to create materialized objects from local params. + */ + ZL_MaterializerDesc materializer; /** * Optionally an opaque pointer that can be queried with * ZL_Graph_getOpaquePtr(). @@ -140,6 +155,14 @@ const void* ZL_Segmenter_getOpaquePtr(const ZL_Segmenter* segCtx); */ int ZL_Segmenter_getCParam(const ZL_Segmenter* segCtx, ZL_CParam gparam); +/** + * @brief Retrieves all local params for the segmenter. + * + * A convenience function equivalent to calling ZL_Segmenter_getLocalIntParam() + * and ZL_Segmenter_getLocalRefParam() on each int and ref param. + */ +const ZL_LocalParams* ZL_Segmenter_getLocalParams(const ZL_Segmenter* segCtx); + /** * @brief Retrieve a local integer parameter value. * diff --git a/include/openzl/zl_selector.h b/include/openzl/zl_selector.h index 01f1f8774..4da92db1e 100644 --- a/include/openzl/zl_selector.h +++ b/include/openzl/zl_selector.h @@ -19,6 +19,7 @@ #include "openzl/zl_data.h" // ZL_Data #include "openzl/zl_input.h" #include "openzl/zl_localParams.h" // ZL_LocalParams +#include "openzl/zl_materializer.h" // ZL_MaterializerDesc #include "openzl/zl_opaque_types.h" // ZL_GraphID, ZL_Selector #include "openzl/zl_portability.h" // ZL_NOEXCEPT_FUNC_PTR @@ -154,8 +155,8 @@ ZL_GraphID ZL_Compressor_registerSerialSelectorGraph( */ typedef ZL_GraphID (*ZL_SelectorFn)( - const ZL_Selector* selCtx, - const ZL_Input* inputStream, + const ZL_Selector* selectorAPI, + const ZL_Input* input, const ZL_GraphID* customGraphs, // list custom Graphs that the selector may choose // as successor. Can be NULL when none needed. @@ -179,6 +180,12 @@ typedef struct { // successors, can be NULL when none employed size_t nbCustomGraphs; // Must be zero when customGraphs==NULL ZL_LocalParams localParams; + /** + * Optional materializer descriptor for materialized local params. + * If both materializeFn and dematerializeFn are non-null, the materializer + * will be used to create materialized objects from local params. + */ + ZL_MaterializerDesc materializer; /** * Optional, the name of the graph rooted by the selector. */ @@ -234,6 +241,19 @@ ZL_Type ZL_Selector_getInput0MaskForGraph( const void* ZL_Selector_getOpaquePtr(const ZL_Selector* selector); +/** + * @brief Query the current graph execution depth. + * + * Returns the depth at which the current graph is executing. + * Depth 1 is the root graph; each successor level increments by 1. + * This can be used by a selector/transformer to detect runaway + * graph growth. + * + * @param selCtx Selector context, must be non-NULL. + * @return Current graph execution depth (>= 1). + */ +unsigned ZL_Selector_getGraphDepth(const ZL_Selector* selCtx); + /* ======================================================= * tryGraph: * ======================================================= diff --git a/include/openzl/zl_selector_declare_helper.h b/include/openzl/zl_selector_declare_helper.h index 13e685895..3bdd1ca22 100644 --- a/include/openzl/zl_selector_declare_helper.h +++ b/include/openzl/zl_selector_declare_helper.h @@ -225,8 +225,7 @@ extern "C" { (const SELECTOR_NAME##_Successors*)_successors); \ } \ static ZL_UNUSED_ATTR SELECTOR_NAME##_Successors \ - SELECTOR_NAME##_successors_init( \ - _ZS2_SELECTOR_INIT_ARGS(__VA_ARGS__)) \ + SELECTOR_NAME##_successors_init(_ZS2_SELECTOR_INIT_ARGS(__VA_ARGS__)) \ { \ return (SELECTOR_NAME##_Successors){ _ZS2_SELECTOR_INIT_SET( \ __VA_ARGS__) }; \ diff --git a/include/openzl/zl_stream.h b/include/openzl/zl_stream.h deleted file mode 100644 index c34374d2a..000000000 --- a/include/openzl/zl_stream.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. - -// Design Note : -// We have multiple public headers, specialized by objects or structures, -// such as buffer, or stream. -// This design is preferred for clarity. -// If it's considered better to feature less header files, -// it would be possible to regroup multiple of them into -// some kind of generic zs2_public_types.h header. - -// Note: this header is only kept for compatibility with existing user code -// which do not yet employ the new terminology (stream => data) - -#include "openzl/zl_data.h" - -// Note: in the future, this redirection will be removed, -// so use the zs2_data.h only from now on. diff --git a/include/openzl/zl_unique_id.h b/include/openzl/zl_unique_id.h new file mode 100644 index 000000000..b7af8ff96 --- /dev/null +++ b/include/openzl/zl_unique_id.h @@ -0,0 +1,55 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_ZL_UNIQUE_ID_H +#define OPENZL_ZL_UNIQUE_ID_H + +#include +#include + +#include "openzl/zl_opaque_types.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Serialize a ZL_UniqueID into a raw byte buffer. + * Writes exactly 32 bytes to @p dst. + */ +void ZL_UniqueID_write(void* dst, const ZL_UniqueID* id); + +/** + * Deserialize a ZL_UniqueID from a raw byte buffer. + * Reads exactly 32 bytes from @p src into @p dst , no endianness conversion + * required. + */ +void ZL_UniqueID_read(ZL_UniqueID* dst, const void* src); + +/** + * @returns An *invalid* ZL_UniqueID with all bytes zero. + */ +ZL_UniqueID ZL_UniqueID_zero(void); + +/** + * @returns true if @p id is non-NULL and not ZL_UniqueID_zero(). + */ +bool ZL_UniqueID_isValid(const ZL_UniqueID* id); + +/** + * Returns a non-cryptographic hash (XXH3) of @p key, or 0 if @p key is NULL. + */ +size_t ZL_UniqueID_hash(const ZL_UniqueID* key); + +bool ZL_UniqueID_eq(const ZL_UniqueID* lhs, const ZL_UniqueID* rhs); + +/** + * Compute the SHA-256 digest of @p data (of length @p size) and return it + * as a ZL_UniqueID. + */ +ZL_UniqueID ZL_UniqueID_computeSHA256(const void* data, size_t size); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_ZL_UNIQUE_ID_H diff --git a/include/openzl/zl_version.h b/include/openzl/zl_version.h index 0c13751a1..a443979f4 100644 --- a/include/openzl/zl_version.h +++ b/include/openzl/zl_version.h @@ -12,19 +12,13 @@ extern "C" { #endif #define ZL_LIBRARY_VERSION_MAJOR 0 -#define ZL_LIBRARY_VERSION_MINOR 0 -#define ZL_LIBRARY_VERSION_PATCH 23 +#define ZL_LIBRARY_VERSION_MINOR 2 +#define ZL_LIBRARY_VERSION_PATCH 0 #define ZL_LIBRARY_VERSION_NUMBER \ (ZL_LIBRARY_VERSION_MAJOR * 10000 + ZL_LIBRARY_VERSION_MINOR * 100 \ + ZL_LIBRARY_VERSION_PATCH * 1) -/** - * Defined to 0 in the dev copy of zstrong and 1 in the release copy of zstrong. - * The value is replaced by regex in the release script. - */ -#define ZL_FBCODE_IS_RELEASE 0 - /** * The frame fomat version tells zstrong which frame format to * encode or decode. This is important to ensure forward and @@ -60,7 +54,7 @@ extern "C" { /// format changes. But note that once a library with /// max format version X is released, we must support X /// through our support window. -#define ZL_MAX_FORMAT_VERSION (21) +#define ZL_MAX_FORMAT_VERSION (24) /// Minimum wire format version required to support chunking. #define ZL_CHUNK_VERSION_MIN (21) @@ -99,6 +93,20 @@ unsigned ZL_getDefaultEncodingVersion(void); */ ZL_Report ZL_getFormatVersionFromFrame(void const* src, size_t srcSize); +/** + * Defined to 1 in the fbcode build of OpenZL and 0 in all other cases. + */ +#ifndef ZL_IS_FBCODE +# define ZL_IS_FBCODE 0 +#endif + +/** + * Defined to 1 in the fbcode release branch of OpenZL and 0 in all other cases. + */ +#ifndef ZL_FBCODE_IS_RELEASE +# define ZL_FBCODE_IS_RELEASE 0 +#endif + #ifdef __cplusplus } // extern "C" #endif diff --git a/py/BUCK b/py/BUCK index 15725e9f9..5657d05b5 100644 --- a/py/BUCK +++ b/py/BUCK @@ -5,10 +5,11 @@ load("@fbcode_macros//build_defs:python_library.bzl", "python_library") oncall("data_compression") python_library( + # @autodeps-skip name = "openzl", srcs = glob(["src/**/*.py"]), base_module = "", deps = [ - "//data_compression/experimental/zstrong/py/ext:openzl_ext", # @manual + "ext:openzl_ext", # @manual ], ) diff --git a/py/CMakeLists.txt b/py/CMakeLists.txt index eb0bca127..7d78d3879 100644 --- a/py/CMakeLists.txt +++ b/py/CMakeLists.txt @@ -93,7 +93,7 @@ target_include_directories( $) # Add dependencies -target_link_libraries(ext PRIVATE openzl_cpp openzl sddl_compiler_lib) +target_link_libraries(ext PRIVATE openzl_cpp openzl sddl_compiler_lib sddl2_compiler_lib) apply_openzl_compile_options_to_target(ext NO_WARNINGS) install(TARGETS ext LIBRARY DESTINATION openzl) diff --git a/py/ext/BUCK b/py/ext/BUCK index 219ae44da..d3661900a 100644 --- a/py/ext/BUCK +++ b/py/ext/BUCK @@ -25,10 +25,10 @@ cpp_python_extension_with_type_stubs( "graphs", ], deps = [ + "../..:zstronglib", + "../../cpp:openzl_cpp", + "../../tools/sddl/compiler:lib", # @manual "fbsource//third-party/nanobind:nanobind", "fbsource//third-party/pypi/numpy:numpy", # @manual - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/tools/sddl/compiler:lib", # @manual ], ) diff --git a/py/ext/openzl/ext.cpp b/py/ext/openzl/ext.cpp index b128e7f8d..9db5f029f 100644 --- a/py/ext/openzl/ext.cpp +++ b/py/ext/openzl/ext.cpp @@ -1123,8 +1123,9 @@ class PyCCtx : public CCtx, for (auto& input : inputs) { refs.emplace_back(input->get()); } - auto compressed = this->CCtx::compress(poly::span( - static_cast(refs.data()), refs.size())); + auto compressed = this->CCtx::compress( + poly::span( + static_cast(refs.data()), refs.size())); return nb::bytes(compressed.data(), compressed.size()); } diff --git a/py/ext/openzl/ext.hpp b/py/ext/openzl/ext.hpp index 0326b47c4..3c202b93e 100644 --- a/py/ext/openzl/ext.hpp +++ b/py/ext/openzl/ext.hpp @@ -473,12 +473,13 @@ class PySelectorState : public nb::intrusive_base { poly::optional> customNodes, poly::optional localParams) { - state_->parameterizeDestination(GraphParameters{ - .name = std::move(name), - .customGraphs = std::move(customGraphs), - .customNodes = std::move(customNodes), - .localParams = std::move(localParams), - }); + state_->parameterizeDestination( + GraphParameters{ + .name = std::move(name), + .customGraphs = std::move(customGraphs), + .customNodes = std::move(customNodes), + .localParams = std::move(localParams), + }); } private: diff --git a/py/ext/openzl/ext/graphs.cpp b/py/ext/openzl/ext/graphs.cpp index bd339ee03..4e126d1f1 100644 --- a/py/ext/openzl/ext/graphs.cpp +++ b/py/ext/openzl/ext/graphs.cpp @@ -211,8 +211,8 @@ void registerFieldLzGraphs(nb::module_& g) PyGraph(graphs::FieldLz{}); } else { - new (obj) PyGraph( - graphs::FieldLz(graphs::FieldLz::Parameters{ + new (obj) PyGraph(graphs::FieldLz( + graphs::FieldLz::Parameters{ .compressionLevel = std::move(compressionLevel), .literalsGraph = @@ -257,8 +257,10 @@ void registerSDDLGraph(nb::module_& g) std::stringstream logs; auto compiled = std::make_shared(); try { - *compiled = sddl::Compiler{ logs }.compile( - description, "[local_input]"); + *compiled = + sddl::Compiler{ sddl::Compiler::Options{}.with_log( + logs) } + .compile(description, "[local_input]"); } catch (const sddl::CompilerException&) { // To-Do: allow adding the error logs somehow? (void)logs; @@ -272,6 +274,29 @@ void registerSDDLGraph(nb::module_& g) nb::arg("successor")); } +void registerSDDL2Graph(nb::module_& g) +{ + registerGraph(g, "SDDL2") + .def( + "__init__", + [](PyGraph* obj, + std::string bytecode, + GraphID successor, + size_t chunkSize) { + // SDDL2 receives pre-compiled bytecode directly (no + // compilation) + auto bytecode_copy = std::make_shared( + std::move(bytecode)); + new (obj) PyGraph( + *bytecode_copy, successor, chunkSize); + obj->stash(std::move(bytecode_copy)); + }, + nb::kw_only(), + nb::arg("bytecode"), + nb::arg("successor"), + nb::arg("chunk_size") = 0); +} + void registerStoreGraph(nb::module_& g) { registerSimpleGraph(g, "Store"); @@ -317,6 +342,7 @@ void registerGraphsModule(nb::module_& m) registerFlatpackGraph(g); registerMergeSortedGraph(g); registerSDDLGraph(g); + registerSDDL2Graph(g); registerStoreGraph(g); registerZstdGraph(g); } diff --git a/py/pyproject.toml b/py/pyproject.toml index 59e5d4ff4..08eef1b92 100644 --- a/py/pyproject.toml +++ b/py/pyproject.toml @@ -1,12 +1,12 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. [build-system] -requires = ["scikit-build-core >=0.11.5", "nanobind >=2.7.0"] +requires = ["scikit-build-core >=0.11.5", "nanobind >=2.7.0, <2.10.0"] build-backend = "scikit_build_core.build" [project] name = "openzl" -version = "0.0.22" +dynamic = ["version"] requires-python = ">=3.8" [project.urls] @@ -30,6 +30,17 @@ wheel.py-api = "cp312" # Point it at the project build directory cmake.source-dir = ".." +[tool.scikit-build.metadata.version] +# https://scikit-build-core.readthedocs.io/en/stable/configuration/dynamic.html#regex +provider = "scikit_build_core.metadata.regex" +input = "../include/openzl/zl_version.h" +regex = '''(?sx) +\#define \s+ ZL_LIBRARY_VERSION_MAJOR \s+ (?P\d+) .*? +\#define \s+ ZL_LIBRARY_VERSION_MINOR \s+ (?P\d+) .*? +\#define \s+ ZL_LIBRARY_VERSION_PATCH \s+ (?P\d+) .*? +''' +result = "{major}.{minor}.{patch}" + [tool.scikit-build.cmake.define] # Build the Python extension, but don't install OpenZL. # We only want to install the Python extension itself. diff --git a/py/tests/BUCK b/py/tests/BUCK index c7e9514c0..40e6b59aa 100644 --- a/py/tests/BUCK +++ b/py/tests/BUCK @@ -5,13 +5,14 @@ load("@fbcode_macros//build_defs:python_unittest.bzl", "python_unittest") oncall("data_compression") python_unittest( + # @autodeps-skip name = "test_openzl_sys", srcs = [ "__init__.py", "test_openzl_sys.py", ], deps = [ + "..:openzl", "fbsource//third-party/pypi/numpy:numpy", - "//data_compression/experimental/zstrong/py:openzl", ], ) diff --git a/py/tests/test_openzl_sys.py b/py/tests/test_openzl_sys.py index 436fb994e..2b6b7364b 100644 --- a/py/tests/test_openzl_sys.py +++ b/py/tests/test_openzl_sys.py @@ -6,7 +6,6 @@ from unittest import TestCase import numpy as np - from openzl import ext diff --git a/scripts/BUCK b/scripts/BUCK index 41af6a960..888bc4a6e 100644 --- a/scripts/BUCK +++ b/scripts/BUCK @@ -10,8 +10,8 @@ cpp_binary( name = "compress", srcs = ["compress.cpp"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:zstrong_json", + "..:zstronglib", + "../tools:zstrong_json", "//folly:file_util", ], ) @@ -20,6 +20,6 @@ cpp_binary( name = "dump_transform_inputs", srcs = ["dump_transform_inputs.cpp"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", + "..:zstronglib", ], ) diff --git a/scripts/check_python_format.sh b/scripts/check_python_format.sh new file mode 100755 index 000000000..900dc4430 --- /dev/null +++ b/scripts/check_python_format.sh @@ -0,0 +1,115 @@ +#!/bin/bash +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# Check or fix Python file formatting using ruff. +# Reports file and line numbers when formatting issues are detected. +# +# Usage: ./scripts/check_python_format.sh [--fix] +# --fix: Apply formatting fixes instead of just checking +# +# Exit codes: +# 0 - All files are correctly formatted (or fixed successfully) +# 1 - Formatting issues detected (check mode only) + +set -euo pipefail + +# Parse arguments +FIX_MODE=false +if [[ "${1:-}" == "--fix" ]]; then + FIX_MODE=true +fi + +# Check if ruff is installed +if ! command -v ruff &> /dev/null; then + echo "Error: 'ruff' is not installed." + echo "Install it with: pip install ruff" + exit 1 +fi + +# Directories to exclude (build artifacts, dependencies, caches) +EXCLUDE_DIRS=(deps build cachedObjs cmakebuild .git __pycache__ .eggs build-py node_modules .cache .claude .vscode) + +# Build the find prune expression +PRUNE_EXPR="" +for dir in "${EXCLUDE_DIRS[@]}"; do + if [[ -n "$PRUNE_EXPR" ]]; then + PRUNE_EXPR="$PRUNE_EXPR -o" + fi + PRUNE_EXPR="$PRUNE_EXPR -name $dir" +done + +# Find all Python files directly (skip excluded directories with -prune) +# Pass files to ruff instead of directories - avoids slow directory traversal +PYTHON_FILES=() +while IFS= read -r file; do + [[ -n "$file" ]] && PYTHON_FILES+=("$file") +done < <( + find . \( $PRUNE_EXPR \) -prune -o -name "*.py" -type f -print +) + +if [[ ${#PYTHON_FILES[@]} -eq 0 ]]; then + echo "No Python files found." + exit 0 +fi + +if [[ "$FIX_MODE" == true ]]; then + echo "Fixing Python file formatting with ruff..." + echo "Found ${#PYTHON_FILES[@]} Python files" + echo "" + ruff format "${PYTHON_FILES[@]}" + echo "" + echo "✓ Python formatting complete." + exit 0 +fi + +# Check mode +echo "Checking Python file formatting with ruff..." +echo "Found ${#PYTHON_FILES[@]} Python files" +echo "" + +# Run ruff format in check mode with diff output +set +e +RUFF_OUTPUT=$(ruff format --check --diff "${PYTHON_FILES[@]}" 2>&1) +RUFF_EXIT_CODE=$? +set -e + +if [[ $RUFF_EXIT_CODE -eq 0 ]]; then + echo "✓ All Python files are correctly formatted." + exit 0 +fi + +# Parse and display the diff output with enhanced information +while IFS= read -r line; do + # Detect file being processed from diff header + if [[ "$line" =~ ^"--- " ]]; then + echo "$line" + elif [[ "$line" =~ ^"+++ " ]]; then + echo "$line" + elif [[ "$line" =~ ^"@@" ]]; then + # Extract line numbers from diff hunk header: @@ -start,count +start,count @@ + echo "$line" + if [[ "$line" =~ @@\ -([0-9]+) ]]; then + LINE_NUM="${BASH_REMATCH[1]}" + echo " → Line $LINE_NUM: Formatting issue detected" + fi + elif [[ "$line" =~ ^[-+] ]] && [[ ! "$line" =~ ^"---" ]] && [[ ! "$line" =~ ^"+++" ]]; then + # Show actual diff lines (additions/removals) + echo "$line" + elif [[ "$line" =~ "would be reformatted" ]]; then + echo "" + echo "❌ $line" + echo " Explanation: This file does not match ruff's formatting standards." + echo " To fix: Run 'ruff format ' locally to auto-format." + elif [[ "$line" =~ "file already formatted" ]] || [[ "$line" =~ "files already formatted" ]]; then + echo "✓ $line" + elif [[ -n "$line" ]]; then + echo "$line" + fi +done <<< "$RUFF_OUTPUT" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "Python formatting check failed!" +echo "Run 'make fix-python-format' to auto-format all Python files." +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +exit 1 diff --git a/scripts/gen_mux_lengths_tables.py b/scripts/gen_mux_lengths_tables.py new file mode 100755 index 000000000..e4b51aa5b --- /dev/null +++ b/scripts/gen_mux_lengths_tables.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 +# Copyright (c) Meta Platforms, Inc. and affiliates. + + +def build_compress_u16_shuffle_lut() -> list[list[int]]: + lut = [] + for byte in range(256): + shuffle = [] + for i in range(8): + if byte & (1 << i): + shuffle.append(2 * i) + shuffle.append(2 * i + 1) + shuffle += [0x80] * (16 - len(shuffle)) + lut.append(shuffle) + return lut + + +def build_expand_u16_shuffle_lut() -> list[list[int]]: + lut = [] + for byte in range(256): + shuffle = [] + pos = 0 + for i in range(8): + if byte & (1 << i): + shuffle.append(2 * pos) + shuffle.append(2 * pos + 1) + pos += 1 + else: + shuffle.append(0x80) + shuffle.append(0x80) + lut.append(shuffle) + return lut + + +def header_guard(path): + return path.replace("src/", "").replace("/", "_").replace(".", "_").upper() + + +def hexify(num): + assert num < 256 + h = hex(num) + if len(h) == 3: + return "0x0" + h[-1] + else: + return h + + +def print_shuffle(shuffle): + return f"{{ {', '.join(hexify(x) for x in shuffle)} }}" + + +SHUFFLES_TEMPLATE = """static const ZL_ALIGNED({shuffle_len}) uint8_t {name}[{num_shuffles}][{shuffle_len}] = {{ + {shuffles} +}};""" + + +def print_shuffle_lut(name, shuffles): + return SHUFFLES_TEMPLATE.format( + name=name, + num_shuffles=len(shuffles), + shuffle_len=len(shuffles[0]), + shuffles=",\n ".join(print_shuffle(r) for r in shuffles), + ) + + +PATH = "src/openzl/codecs/mux_lengths/common_mux_lengths_luts.h" +HEADER_GUARD_MACRO = header_guard(PATH) + +# Make a f-string so the script doesn't get marked as generated +GENERATED = "generated" + +TEMPLATE = f"""// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef {HEADER_GUARD_MACRO} +#define {HEADER_GUARD_MACRO} + +/** + * @{GENERATED} by scripts/gen_mux_lengths_tables.py + * Please don't modify this file directly! + */ + +#include "openzl/shared/portability.h" + +ZL_BEGIN_C_DECLS + +// clang-format off +/** + * Compresses uint16_t values at positions selected by set bits in an 8-bit mask + * and packs them contiguously to the front. Each of the 256 rows is a 16-byte + * PSHUFB control vector. + * + * For output position i in [0, 8]: + * i < popcount(mask) -> select input at the index of the i-th set bit + * i >= popcount(mask) -> zero (0x80) + */ +{print_shuffle_lut("ZL_kCompressU16LUT", build_compress_u16_shuffle_lut())} + +/** + * Expands contiguously packed uint16_t values into positions selected by an + * 8-bit mask. Each of the 256 rows is a 16-byte PSHUFB control vector. + * + * For output position i in [0, 8]: + * bit i SET -> select the next packed input uint16_t + * bit i CLEAR -> zero (PSHUFB treats index 0x80 as zero) + */ +{print_shuffle_lut("ZL_kExpandU16LUT", build_expand_u16_shuffle_lut())} +// clang-format on + +ZL_END_C_DECLS + +#endif // {HEADER_GUARD_MACRO} +""" + +with open(PATH, "w") as f: + f.write(TEMPLATE) + +print(TEMPLATE) diff --git a/scripts/tests/BUCK b/scripts/tests/BUCK index 413b0fef3..d9b8c1323 100644 --- a/scripts/tests/BUCK +++ b/scripts/tests/BUCK @@ -8,6 +8,6 @@ python_unittest( name = "compress_test", srcs = ["compress_test.py"], resources = { - "//data_compression/experimental/zstrong/scripts:compress": "compress", + "..:compress": "compress", }, ) diff --git a/scripts/thrift/BUCK b/scripts/thrift/BUCK index ee083f39b..22980f52c 100644 --- a/scripts/thrift/BUCK +++ b/scripts/thrift/BUCK @@ -3,16 +3,14 @@ # @noautodeps load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary") -load("//data_compression/experimental/zstrong:defs.bzl", "ZS_HEADER_INCLUDE_PATH") oncall("data_compression") cpp_binary( name = "thrift_config_builder", srcs = ["thrift_config_builder.cpp"], - preprocessor_flags = [ZS_HEADER_INCLUDE_PATH], deps = [ - "//data_compression/experimental/zstrong/custom_transforms/thrift:thrift_lib", + "../../custom_transforms/thrift:thrift_lib", "//folly:base64", ], ) diff --git a/src/openzl/codecs/bitSplit/common_bitSplit_kernel.c b/src/openzl/codecs/bitSplit/common_bitSplit_kernel.c new file mode 100644 index 000000000..01b104ecf --- /dev/null +++ b/src/openzl/codecs/bitSplit/common_bitSplit_kernel.c @@ -0,0 +1,19 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/common_bitSplit_kernel.h" +#include + +size_t ZL_bitSplit_outputEltWidth(unsigned bitWidth) +{ + if (bitWidth <= 8) { + return 1; + } + if (bitWidth <= 16) { + return 2; + } + if (bitWidth <= 32) { + return 4; + } + assert(bitWidth <= 64); + return 8; +} diff --git a/src/openzl/codecs/bitSplit/common_bitSplit_kernel.h b/src/openzl/codecs/bitSplit/common_bitSplit_kernel.h new file mode 100644 index 000000000..9bee46ff3 --- /dev/null +++ b/src/openzl/codecs/bitSplit/common_bitSplit_kernel.h @@ -0,0 +1,16 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_COMMON_BITSPLIT_KERNEL_H +#define OPENZL_CODECS_BITSPLIT_COMMON_BITSPLIT_KERNEL_H + +#include + +/** + * Determines the output element width for a given bit width. + * + * @param bitWidth Number of bits (1-64) + * @return Output element width in bytes (1, 2, 4, or 8) + */ +size_t ZL_bitSplit_outputEltWidth(unsigned bitWidth); + +#endif // OPENZL_CODECS_BITSPLIT_COMMON_BITSPLIT_KERNEL_H diff --git a/src/openzl/codecs/bitSplit/decode_bitSplit_binding.c b/src/openzl/codecs/bitSplit/decode_bitSplit_binding.c new file mode 100644 index 000000000..17075f177 --- /dev/null +++ b/src/openzl/codecs/bitSplit/decode_bitSplit_binding.c @@ -0,0 +1,159 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/decode_bitSplit_binding.h" +#include "openzl/codecs/bitSplit/common_bitSplit_kernel.h" +#include "openzl/codecs/bitSplit/decode_bitSplit_kernel.h" +#include "openzl/common/assertion.h" +#include "openzl/decompress/dictx.h" +#include "openzl/shared/mem.h" // ZL_memcpy + +ZL_Report DI_bitSplit( + ZL_Decoder* dictx, + const ZL_Input* compulsorySrcs[], + size_t nbCompulsorySrcs, + const ZL_Input* variableSrcs[], + size_t nbVariableSrcs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + ZL_ASSERT_NN(dictx); + ZL_ASSERT_EQ(nbCompulsorySrcs, 0); + (void)compulsorySrcs; + (void)nbCompulsorySrcs; + + // Get parameters from codec header + // Header format: [outputEltWidth (1 byte)] [stored widths...] + ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); + + // Validate: header must have at least outputEltWidth byte + ZL_ERR_IF_LT( + header.size, + 1, + corruption, + "bitSplit: header must contain outputEltWidth"); + + // Parse header + uint8_t const outputEltWidth = ((const uint8_t*)header.start)[0]; + size_t const nbStoredWidths = header.size - 1; + const uint8_t* storedWidths = (const uint8_t*)header.start + 1; + + // Validate outputEltWidth + ZL_ERR_IF_NOT( + outputEltWidth == 1 || outputEltWidth == 2 || outputEltWidth == 4 + || outputEltWidth == 8, + corruption, + "bitSplit: invalid outputEltWidth in header"); + + // Compute sum of stored widths and determine last width + size_t sumStoredWidths = 0; + for (size_t i = 0; i < nbStoredWidths; i++) { + ZL_ERR_IF_EQ( + storedWidths[i], + 0, + corruption, + "bitSplit: bit width cannot be zero"); + sumStoredWidths += storedWidths[i]; + } + + size_t const outputEltWidthBits = (size_t)outputEltWidth * 8; + + // Validate sum doesn't exceed output width + ZL_ERR_IF_GT( + sumStoredWidths, + outputEltWidthBits, + corruption, + "bitSplit: sum of stored widths exceeds output element width"); + + // Determine coverage based on number of input streams: + // - N inputs (== nbStoredWidths) → partial coverage, upper bits are zero + // - N+1 inputs → full coverage, last width = outputEltWidthBits - sum + size_t const lastWidth = outputEltWidthBits - sumStoredWidths; + + uint8_t bitWidths_local[65]; + + // Initialize like partial coverage + const uint8_t* bitWidths = storedWidths; + size_t nbWidths = nbStoredWidths; + + if (nbVariableSrcs == nbStoredWidths) { + // Partial coverage: use stored widths as-is + } else if (nbVariableSrcs == nbStoredWidths + 1) { + // Full coverage: add computed last width + ZL_ASSERT_LE(nbStoredWidths, 64); // already checked via sumStoredWidths + ZL_ERR_IF_EQ( + lastWidth, + 0, + corruption, + "bitSplit: invalid last width (set to 0)"); + ZL_memcpy(bitWidths_local, storedWidths, nbStoredWidths); + bitWidths_local[nbStoredWidths] = (uint8_t)lastWidth; + + bitWidths = bitWidths_local; + nbWidths = nbStoredWidths + 1; + } else { + ZL_ERR_IF_NOT(0, corruption, "bitSplit: input stream count mismatch"); + } + + // Validate: must have at least one width + ZL_ERR_IF_EQ(nbWidths, 0, corruption, "bitSplit: no bit widths present"); + + // Validate all input streams, and collect their pointers + size_t nbElts = 0; + const void* inputPtrs[64]; + size_t inputWidths[64]; + ZL_ASSERT_LE(nbWidths, 64); + + for (size_t i = 0; i < nbWidths; i++) { + const ZL_Input* in = variableSrcs[i]; + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + + // Verify element count consistency + size_t const streamNbElts = ZL_Input_numElts(in); + if (i == 0) { + nbElts = streamNbElts; + } else { + ZL_ERR_IF_NE( + streamNbElts, + nbElts, + corruption, + "bitSplit: all input streams must have same element count"); + } + + // Verify bit width doesn't exceed input stream capacity + size_t const inputEltWidthBits = ZL_Input_eltWidth(in) * 8; + ZL_ERR_IF_GT( + bitWidths[i], + inputEltWidthBits, + corruption, + "bitSplit: bit width exceeds input stream element width"); + + // Verify element width matches expected + size_t const expectedWidth = ZL_bitSplit_outputEltWidth(bitWidths[i]); + ZL_ERR_IF_NE( + ZL_Input_eltWidth(in), + expectedWidth, + corruption, + "bitSplit: input stream element width mismatch"); + + inputPtrs[i] = ZL_Input_ptr(in); + inputWidths[i] = expectedWidth; + } + + // Create output stream + ZL_Output* const out = + ZL_Decoder_create1OutStream(dictx, nbElts, outputEltWidth); + ZL_ERR_IF_NULL(out, allocation); + + // Kernel owns the hot loop - single call processes all elements + ZL_bitSplitDecode( + ZL_Output_ptr(out), + outputEltWidth, + nbElts, + inputPtrs, + inputWidths, + bitWidths, + nbWidths); + + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/bitSplit/decode_bitSplit_binding.h b/src/openzl/codecs/bitSplit/decode_bitSplit_binding.h new file mode 100644 index 000000000..023710154 --- /dev/null +++ b/src/openzl/codecs/bitSplit/decode_bitSplit_binding.h @@ -0,0 +1,39 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_DECODE_BITSPLIT_BINDING_H +#define OPENZL_CODECS_BITSPLIT_DECODE_BITSPLIT_BINDING_H + +#include "openzl/codecs/bitSplit/graph_bitSplit.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_dtransform.h" + +ZL_BEGIN_C_DECLS + +/** + * bitSplit decoder (MI - Multiple Input) + * + * Reconstructs the original numeric stream from multiple bit-range streams. + * + * Input: N numeric streams (one per bit range) + * Output: 1 numeric stream (reconstructed original values) + * + * Parameters (via codec header): + * Array of bit widths [w₀, w₁, ..., wₙ₋₁] (1 byte each, LSB to MSB order) + * count = header_size (implicit) + * + * Output element width determined by sum of bit widths: + * 1-8 bits → u8, 9-16 bits → u16, 17-32 bits → u32, 33-64 bits → u64 + */ +ZL_Report DI_bitSplit( + ZL_Decoder* dictx, + const ZL_Input* compulsorySrcs[], + size_t nbCompulsorySrcs, + const ZL_Input* variableSrcs[], + size_t nbVariableSrcs); + +#define DI_BITSPLIT(id) \ + { .transform_f = DI_bitSplit, .name = "!zl.private.bit_split" } + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_BITSPLIT_DECODE_BITSPLIT_BINDING_H diff --git a/src/openzl/codecs/bitSplit/decode_bitSplit_kernel.c b/src/openzl/codecs/bitSplit/decode_bitSplit_kernel.c new file mode 100644 index 000000000..d061da412 --- /dev/null +++ b/src/openzl/codecs/bitSplit/decode_bitSplit_kernel.c @@ -0,0 +1,321 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include /* assert */ +#include /* bool */ + +#include "openzl/codecs/bitSplit/decode_bitSplit_kernel.h" + +/* + * Specialized decoder for bf16 pattern: + * - 3 streams with bitWidths {7, 8, 1} + * - All srcEltWidths are 1 (uint8_t) + * - dstEltWidth is 2 (uint16_t) + * + * Layout: [mantissa:7][exponent:8][sign:1] = 16 bits + */ +static inline void +decodeBf16(void* dst, size_t nbElts, const void* const srcPtrs[]) +{ + uint16_t* const dst16 = (uint16_t*)dst; + const uint8_t* const mantissa = (const uint8_t*)srcPtrs[0]; + const uint8_t* const exponent = (const uint8_t*)srcPtrs[1]; + const uint8_t* const sign = (const uint8_t*)srcPtrs[2]; + + for (size_t e = 0; e < nbElts; e++) { + uint16_t value = (uint16_t)mantissa[e]; /* bits 0-6 */ + value |= (uint16_t)exponent[e] << 7; /* bits 7-14 */ + value |= (uint16_t)sign[e] << 15; /* bit 15 */ + dst16[e] = value; + } +} + +/* + * Specialized decoder for fp16 pattern: + * - 3 streams with bitWidths {10, 5, 1} + * - srcEltWidths are {2, 1, 1} (uint16_t, uint8_t, uint8_t) + * - dstEltWidth is 2 (uint16_t) + * + * Layout: [mantissa:10][exponent:5][sign:1] = 16 bits + */ +static inline void +decodeFp16(void* dst, size_t nbElts, const void* const srcPtrs[]) +{ + uint16_t* const dst16 = (uint16_t*)dst; + const uint16_t* const mantissa = (const uint16_t*)srcPtrs[0]; + const uint8_t* const exponent = (const uint8_t*)srcPtrs[1]; + const uint8_t* const sign = (const uint8_t*)srcPtrs[2]; + + for (size_t e = 0; e < nbElts; e++) { + uint16_t value = mantissa[e]; /* bits 0-9 */ + value |= (uint16_t)exponent[e] << 10; /* bits 10-14 */ + value |= (uint16_t)sign[e] << 15; /* bit 15 */ + dst16[e] = value; + } +} + +/* + * Specialized decoder for fp32 pattern: + * - 3 streams with bitWidths {23, 8, 1} + * - srcEltWidths are {4, 1, 1} (uint32_t, uint8_t, uint8_t) + * - dstEltWidth is 4 (uint32_t) + * + * Layout: [mantissa:23][exponent:8][sign:1] = 32 bits + */ +static inline void +decodeFp32(void* dst, size_t nbElts, const void* const srcPtrs[]) +{ + uint32_t* const dst32 = (uint32_t*)dst; + const uint32_t* const mantissa = (const uint32_t*)srcPtrs[0]; + const uint8_t* const exponent = (const uint8_t*)srcPtrs[1]; + const uint8_t* const sign = (const uint8_t*)srcPtrs[2]; + + for (size_t e = 0; e < nbElts; e++) { + uint32_t value = mantissa[e]; /* bits 0-22 */ + value |= (uint32_t)exponent[e] << 23; /* bits 23-30 */ + value |= (uint32_t)sign[e] << 31; /* bit 31 */ + dst32[e] = value; + } +} + +/* + * Specialized decoder for fp64 pattern: + * - 3 streams with bitWidths {52, 11, 1} + * - srcEltWidths are {8, 2, 1} (uint64_t, uint16_t, uint8_t) + * - dstEltWidth is 8 (uint64_t) + * + * Layout: [mantissa:52][exponent:11][sign:1] = 64 bits + */ +static inline void +decodeFp64(void* dst, size_t nbElts, const void* const srcPtrs[]) +{ + uint64_t* const dst64 = (uint64_t*)dst; + const uint64_t* const mantissa = (const uint64_t*)srcPtrs[0]; + const uint16_t* const exponent = (const uint16_t*)srcPtrs[1]; + const uint8_t* const sign = (const uint8_t*)srcPtrs[2]; + + for (size_t e = 0; e < nbElts; e++) { + uint64_t value = mantissa[e]; /* bits 0-51 */ + value |= (uint64_t)exponent[e] << 52; /* bits 52-62 */ + value |= (uint64_t)sign[e] << 63; /* bit 63 */ + dst64[e] = value; + } +} + +/* + * Check if parameters match the bf16 pattern. + */ +static inline bool isBf16Pattern( + size_t dstEltWidth, + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (dstEltWidth != 2) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 7 || bitWidths[1] != 8 || bitWidths[2] != 1) + return false; + if (srcEltWidths[0] != 1 || srcEltWidths[1] != 1 || srcEltWidths[2] != 1) + return false; + return true; +} + +/* + * Check if parameters match the fp16 pattern. + */ +static inline bool isFp16Pattern( + size_t dstEltWidth, + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (dstEltWidth != 2) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 10 || bitWidths[1] != 5 || bitWidths[2] != 1) + return false; + if (srcEltWidths[0] != 2 || srcEltWidths[1] != 1 || srcEltWidths[2] != 1) + return false; + return true; +} + +/* + * Check if parameters match the fp32 pattern. + */ +static inline bool isFp32Pattern( + size_t dstEltWidth, + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (dstEltWidth != 4) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 23 || bitWidths[1] != 8 || bitWidths[2] != 1) + return false; + if (srcEltWidths[0] != 4 || srcEltWidths[1] != 1 || srcEltWidths[2] != 1) + return false; + return true; +} + +/* + * Check if parameters match the fp64 pattern. + */ +static inline bool isFp64Pattern( + size_t dstEltWidth, + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (dstEltWidth != 8) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 52 || bitWidths[1] != 11 || bitWidths[2] != 1) + return false; + if (srcEltWidths[0] != 8 || srcEltWidths[1] != 2 || srcEltWidths[2] != 1) + return false; + return true; +} + +static inline void decodeElements( + void* dst, + const size_t dstEltWidth, + size_t nbElts, + const void* const srcPtrs[], + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + for (size_t e = 0; e < nbElts; e++) { + uint64_t value = 0; + size_t bitPos = 0; + + for (size_t i = 0; i < nbWidths; i++) { + uint64_t part = 0; + switch (srcEltWidths[i]) { + case 1: + part = ((const uint8_t*)srcPtrs[i])[e]; + break; + case 2: + part = ((const uint16_t*)srcPtrs[i])[e]; + break; + case 4: + part = ((const uint32_t*)srcPtrs[i])[e]; + break; + case 8: + part = ((const uint64_t*)srcPtrs[i])[e]; + break; + default: + assert(false); + break; + } + + value |= (part << bitPos); + bitPos += bitWidths[i]; + } + + // If `dstEltWidth` is a constant and `decodeElements()` is inlined, + // we expect the compiler to fold this switch() statement. + switch (dstEltWidth) { + case 1: + ((uint8_t*)dst)[e] = (uint8_t)value; + break; + case 2: + ((uint16_t*)dst)[e] = (uint16_t)value; + break; + case 4: + ((uint32_t*)dst)[e] = (uint32_t)value; + break; + case 8: + ((uint64_t*)dst)[e] = (uint64_t)value; + break; + default: + assert(false); + break; + } + } +} + +void ZL_bitSplitDecode( + void* dst, + size_t dstEltWidth, + size_t nbElts, + const void* const srcPtrs[], + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (nbElts == 0) + return; + + assert(dst != NULL); + assert(dstEltWidth == 1 || dstEltWidth == 2 || dstEltWidth == 4 + || dstEltWidth == 8); + assert(srcPtrs != NULL); + assert(srcEltWidths != NULL); + assert(bitWidths != NULL); + assert(nbWidths > 0); + assert(nbWidths <= 64); + + /* Validate sum of bit widths fits in destination */ + { + size_t sumBitWidths = 0; + for (size_t i = 0; i < nbWidths; i++) { + assert(srcPtrs[i] != NULL); + assert(srcEltWidths[i] == 1 || srcEltWidths[i] == 2 + || srcEltWidths[i] == 4 || srcEltWidths[i] == 8); + assert(bitWidths[i] > 0); + assert(bitWidths[i] <= srcEltWidths[i] * 8); + sumBitWidths += bitWidths[i]; + } + assert(sumBitWidths <= dstEltWidth * 8); + (void)sumBitWidths; + } + + /* Check for specialized patterns and dispatch */ + if (isBf16Pattern(dstEltWidth, srcEltWidths, bitWidths, nbWidths)) { + decodeBf16(dst, nbElts, srcPtrs); + return; + } + if (isFp16Pattern(dstEltWidth, srcEltWidths, bitWidths, nbWidths)) { + decodeFp16(dst, nbElts, srcPtrs); + return; + } + if (isFp32Pattern(dstEltWidth, srcEltWidths, bitWidths, nbWidths)) { + decodeFp32(dst, nbElts, srcPtrs); + return; + } + if (isFp64Pattern(dstEltWidth, srcEltWidths, bitWidths, nbWidths)) { + decodeFp64(dst, nbElts, srcPtrs); + return; + } + + /* Generic path */ + // We expect the compiler to optimize decodeElements() by propagating the + // constant (thus resulting in several instances). + switch (dstEltWidth) { + case 1: + decodeElements( + dst, 1, nbElts, srcPtrs, srcEltWidths, bitWidths, nbWidths); + break; + case 2: + decodeElements( + dst, 2, nbElts, srcPtrs, srcEltWidths, bitWidths, nbWidths); + break; + case 4: + decodeElements( + dst, 4, nbElts, srcPtrs, srcEltWidths, bitWidths, nbWidths); + break; + case 8: + decodeElements( + dst, 8, nbElts, srcPtrs, srcEltWidths, bitWidths, nbWidths); + break; + default: + assert(false); + break; + } +} diff --git a/src/openzl/codecs/bitSplit/decode_bitSplit_kernel.h b/src/openzl/codecs/bitSplit/decode_bitSplit_kernel.h new file mode 100644 index 000000000..7b0862712 --- /dev/null +++ b/src/openzl/codecs/bitSplit/decode_bitSplit_kernel.h @@ -0,0 +1,46 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_DECODE_BITSPLIT_KERNEL_H +#define OPENZL_CODECS_BITSPLIT_DECODE_BITSPLIT_KERNEL_H + +#include /* size_t */ +#include /* uint8_t */ + +/** + * Decodes bit-split streams back into original integer elements. + * + * Reassembles values by concatenating bit ranges from multiple source streams. + * Bit ranges are placed LSB-to-MSB: bitWidths[0] occupies the lowest bits, + * bitWidths[1] the next higher bits, and so on. + * + * If sum(bitWidths) < dstEltWidth*8, upper bits of output are zero. + * + * Preconditions: + * - dstEltWidth in {1, 2, 4, 8} + * - 0 < nbWidths <= 64 + * - If nbElts > 0: + * - dst != NULL + * - srcPtrs != NULL, and each srcPtrs[i] != NULL + * - srcEltWidths != NULL, each srcEltWidths[i] in {1, 2, 4, 8} + * - bitWidths != NULL, each bitWidths[i] > 0 + * - Each bitWidths[i] <= srcEltWidths[i] * 8 + * - sum(bitWidths) <= dstEltWidth * 8 + * + * @param dst Destination array for reconstructed values + * @param dstEltWidth Element width of destination in bytes (1, 2, 4, or 8) + * @param nbElts Number of elements to decode + * @param srcPtrs Array of source pointers, one per bit range (none may be NULL) + * @param srcEltWidths Array of source element widths in bytes + * @param bitWidths Array of bit widths, ordered LSB to MSB + * @param nbWidths Number of bit ranges / source streams (1-64) + */ +void ZL_bitSplitDecode( + void* dst, + size_t dstEltWidth, + size_t nbElts, + const void* const srcPtrs[], + const size_t* srcEltWidths, + const uint8_t* bitWidths, + size_t nbWidths); + +#endif // OPENZL_CODECS_BITSPLIT_DECODE_BITSPLIT_KERNEL_H diff --git a/src/openzl/codecs/bitSplit/encode_bitSplit_binding.c b/src/openzl/codecs/bitSplit/encode_bitSplit_binding.c new file mode 100644 index 000000000..8a3ab0944 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitSplit_binding.c @@ -0,0 +1,185 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/encode_bitSplit_binding.h" +#include "openzl/codecs/bitSplit/common_bitSplit_kernel.h" /* ZL_bitSplit_outputEltWidth */ +#include "openzl/codecs/bitSplit/encode_bitSplit_kernel.h" +#include "openzl/common/assertion.h" +#include "openzl/common/errors_internal.h" +#include "openzl/common/logging.h" +#include "openzl/compress/enc_interface.h" +#include "openzl/compress/private_nodes.h" +#include "openzl/shared/mem.h" // ZL_memcpy +#include "openzl/zl_data.h" +#include "openzl/zl_graph_api.h" + +// Parameter IDs for bitSplit +#define ZL_BITSPLIT_WIDTHS_PID 701 + +ZL_Report EI_bitSplit_withWidths( + ZL_Encoder* eictx, + const ZL_Input* in, + const uint8_t* bitWidths, + size_t nbWidths) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_NN(eictx); + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + ZL_ASSERT_NN(bitWidths); + ZL_ASSERT_GT(nbWidths, 0); + ZL_ASSERT_LE(nbWidths, 64); + + size_t const inputEltWidth = ZL_Input_eltWidth(in); + ZL_ASSERT( + inputEltWidth == 1 || inputEltWidth == 2 || inputEltWidth == 4 + || inputEltWidth == 8); + size_t const inputEltWidthBits = inputEltWidth * 8; + size_t const nbElts = ZL_Input_numElts(in); + + // Validate parameters + size_t sumWidths = 0; + ZL_ERR_IF( + !ZL_bitSplit_paramsAreValid( + bitWidths, nbWidths, inputEltWidthBits, &sumWidths), + nodeParameter_invalid, + "bitSplit parameter validation failed"); + + // Validate top bits are zero if partial coverage + if (sumWidths < inputEltWidthBits) { + ZL_ERR_IF( + !ZL_bitSplit_topBitsAreZero( + ZL_Input_ptr(in), inputEltWidth, nbElts, sumWidths), + corruption, + "bitSplit: top bits must be zero for partial coverage"); + } + + // Build header: [inputEltWidth] [widths...] + // Full coverage: omit last width (computed by decoder) + // Partial coverage: send all widths (decoder adds implicit padding) + uint8_t header[65]; + header[0] = (uint8_t)inputEltWidth; + size_t headerSize; + + if (sumWidths == inputEltWidthBits) { + // Full coverage: omit last width (computed by decoder) + ZL_memcpy(header + 1, bitWidths, nbWidths - 1); + headerSize = 1 + nbWidths - 1; + } else { + // Partial coverage: send all widths (decoder adds implicit padding) + ZL_memcpy(header + 1, bitWidths, nbWidths); + headerSize = 1 + nbWidths; + } + + ZL_Encoder_sendCodecHeader(eictx, header, headerSize); + + // Create output streams + ZL_Output* outputs[64]; + size_t outputWidths[64]; + void* dstPtrs[64]; + + for (size_t i = 0; i < nbWidths; i++) { + outputWidths[i] = ZL_bitSplit_outputEltWidth(bitWidths[i]); + outputs[i] = + ZL_Encoder_createTypedStream(eictx, 0, nbElts, outputWidths[i]); + ZL_ERR_IF_NULL(outputs[i], allocation); + dstPtrs[i] = ZL_Output_ptr(outputs[i]); + } + + // Kernel owns the hot loop - single call processes all elements + ZL_bitSplitEncode( + dstPtrs, + outputWidths, + nbElts, + ZL_Input_ptr(in), + inputEltWidth, + bitWidths, + nbWidths); + + // Commit all outputs + for (size_t i = 0; i < nbWidths; i++) { + ZL_ERR_IF_ERR(ZL_Output_commit(outputs[i], nbElts)); + } + + return ZL_returnValue(nbWidths); +} + +ZL_Report EI_bitSplit(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_NN(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + + // Get parameters from local params + ZL_RefParam const widthsParam = + ZL_Encoder_getLocalParam(eictx, ZL_BITSPLIT_WIDTHS_PID); + + ZL_ERR_IF_EQ( + widthsParam.paramId, + ZL_LP_INVALID_PARAMID, + nodeParameter_invalid, + "bitSplit requires bit widths parameter"); + ZL_ERR_IF_NULL( + widthsParam.paramRef, + nodeParameter_invalid, + "bitSplit bit widths parameter is NULL"); + + const uint8_t* bitWidths = (const uint8_t*)widthsParam.paramRef; + size_t const nbWidths = widthsParam.paramSize; + + // Validate: must have at least one width + ZL_ERR_IF_EQ( + nbWidths, + 0, + nodeParameter_invalid, + "bitSplit requires at least one bit width parameter"); + + return EI_bitSplit_withWidths(eictx, in, bitWidths, nbWidths); +} + +ZL_NodeID ZL_Compressor_registerBitSplitNode( + ZL_Compressor* compressor, + const uint8_t* bitWidths, + size_t nbWidths) +{ + ZL_RESULT_OF(ZL_NodeID) + const result = + ZL_Compressor_buildBitSplitNode(compressor, bitWidths, nbWidths); + if (ZL_RES_isError(result)) + return ZL_NODE_ILLEGAL; + return ZL_RES_value(result); +} + +ZL_RESULT_OF(ZL_NodeID) +ZL_Compressor_buildBitSplitNode( + ZL_Compressor* compressor, + const uint8_t* bitWidths, + size_t nbWidths) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_NodeID, compressor); + + ZL_ERR_IF_EQ( + nbWidths, + 0, + nodeParameter_invalid, + "bitSplit requires at least one bit width"); + ZL_ERR_IF_GT( + nbWidths, + 64, + nodeParameter_invalid, + "bitSplit supports at most 64 bit widths"); + + ZL_CopyParam const widthsParam = { .paramId = ZL_BITSPLIT_WIDTHS_PID, + .paramPtr = bitWidths, + .paramSize = nbWidths }; + ZL_LocalCopyParams const lgp = { &widthsParam, 1 }; + + ZL_LocalParams const lParams = { .copyParams = lgp }; + ZL_NodeParameters const nParams = { .localParams = &lParams }; + + return ZL_Compressor_parameterizeNode( + compressor, ZL_NODE_BITSPLIT, &nParams); +} diff --git a/src/openzl/codecs/bitSplit/encode_bitSplit_binding.h b/src/openzl/codecs/bitSplit/encode_bitSplit_binding.h new file mode 100644 index 000000000..485165694 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitSplit_binding.h @@ -0,0 +1,90 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_BINDING_H +#define OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_BINDING_H + +#include "openzl/codecs/common/graph_vo.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_opaque_types.h" + +ZL_BEGIN_C_DECLS + +/** + * bitSplit encoder + * + * Splits a numeric stream by bit ranges into multiple numeric output streams. + * + * Input: 1 numeric stream (all widths supported: 1, 2, 4, 8 bytes) + * Output: N numeric streams (one per bit range specified in parameters) + * + * Parameters (via local params, use registration function below): + * Array of bit widths [w₀, w₁, ..., wₙ₋₁] (1 byte each, LSB to MSB order) + * + * Output element widths determined by bit range: + * 1-8 bits → u8, 9-16 bits → u16, 17-32 bits → u32, 33-64 bits → u64 + * + * Errors: + * - Empty parameters (no widths) + * - Any width == 0 + * - sum(widths) > input element width in bits + * - Top bits non-zero when partial coverage + */ +ZL_Report EI_bitSplit(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +/** + * Shared bitSplit encode logic used by both EI_bitSplit and EI_bitsplit_top8. + * + * Validates parameters, checks top bits, builds codec header, + * creates output streams, runs the kernel, and commits outputs. + * + * @param eictx Encoder context + * @param in Input stream (must be numeric) + * @param bitWidths Array of bit widths (LSB to MSB order, 1 byte each) + * @param nbWidths Number of bit widths (must be > 0, <= 64) + * @return ZL_Report with number of outputs on success + */ +ZL_Report EI_bitSplit_withWidths( + ZL_Encoder* eictx, + const ZL_Input* in, + const uint8_t* bitWidths, + size_t nbWidths); + +#define EI_BITSPLIT(id) \ + { .gd = GRAPH_VO_NUM(id), \ + .transform_f = EI_bitSplit, \ + .name = "!zl.private.bit_split" } + +/** + * Register a bitSplit node with specified bit widths. + * + * @param cgraph The compressor graph to register with + * @param bitWidths Array of bit widths (LSB to MSB order, 1 byte each) + * @param nbWidths Number of bit widths (must be > 0) + * @return Node ID for the configured bitSplit transform, or ZL_NODE_ILLEGAL on + * error + * + * Example: + * uint8_t widths[] = {4, 8, 12, 8}; // Split 32-bit into 4 ranges + * ZL_NodeID node = ZL_Compressor_registerBitSplitNode(cgraph, widths, 4); + */ +ZL_NodeID ZL_Compressor_registerBitSplitNode( + ZL_Compressor* compressor, + const uint8_t* bitWidths, + size_t nbWidths); + +/** + * Same as ZL_Compressor_registerBitSplitNode(), + * but @returns a ZL_RESULT_OF(ZL_NodeID) error type, + * which can transport more information when there is an error. + */ +ZL_RESULT_OF(ZL_NodeID) +ZL_Compressor_buildBitSplitNode( + ZL_Compressor* compressor, + const uint8_t* bitWidths, + size_t nbWidths); + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_BINDING_H diff --git a/src/openzl/codecs/bitSplit/encode_bitSplit_kernel.c b/src/openzl/codecs/bitSplit/encode_bitSplit_kernel.c new file mode 100644 index 000000000..241e71e6a --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitSplit_kernel.c @@ -0,0 +1,423 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/encode_bitSplit_kernel.h" + +#include /* assert */ +#include + +bool ZL_bitSplit_paramsAreValid( + const uint8_t* bitWidths, + size_t nbWidths, + size_t inputEltWidthBits, + size_t* sumWidths) +{ + assert(bitWidths != NULL); + assert(nbWidths > 0); + + size_t sum = 0; + for (size_t i = 0; i < nbWidths; i++) { + if (bitWidths[i] == 0) { + return false; + } + sum += bitWidths[i]; + } + if (sum > inputEltWidthBits) { + return false; + } + if (sumWidths != NULL) { + *sumWidths = sum; + } + return true; +} + +static inline bool checkTopBitsZero( + const void* src, + size_t srcEltWidth, + size_t nbElts, + uint64_t mask) +{ + for (size_t e = 0; e < nbElts; e++) { + uint64_t value = 0; + switch (srcEltWidth) { + case 1: + value = ((const uint8_t*)src)[e]; + break; + case 2: + value = ((const uint16_t*)src)[e]; + break; + case 4: + value = ((const uint32_t*)src)[e]; + break; + case 8: + value = ((const uint64_t*)src)[e]; + break; + default: + assert(false); + break; + } + if ((value & mask) != 0) { + return false; + } + } + return true; +} + +/* + * Specialized encoder for bf16 pattern: + * - srcEltWidth is 2 (uint16_t) + * - 3 streams with bitWidths {7, 8, 1} + * - All dstEltWidths are 1 (uint8_t) + * + * bf16 layout: [mantissa:7][exponent:8][sign:1] = 16 bits + */ +static inline void +bitSplit_bf16(void* const dstPtrs[], size_t nbElts, const void* src) +{ + uint8_t* restrict const mantissa = (uint8_t*)dstPtrs[0]; + uint8_t* restrict const exponent = (uint8_t*)dstPtrs[1]; + uint8_t* restrict const sign = (uint8_t*)dstPtrs[2]; + const uint16_t* restrict const src16 = (const uint16_t*)src; + + for (size_t e = 0; e < nbElts; e++) { + uint16_t const value = src16[e]; + mantissa[e] = (uint8_t)(value & 0x7F); /* bits 0-6 */ + exponent[e] = (uint8_t)((value >> 7) & 0xFF); /* bits 7-14 */ + sign[e] = (uint8_t)((value >> 15) & 0x01); /* bit 15 */ + } +} + +/* + * Specialized encoder for fp16 pattern: + * - srcEltWidth is 2 (uint16_t) + * - 3 streams with bitWidths {10, 5, 1} + * - dstEltWidths are {2, 1, 1} (uint16_t, uint8_t, uint8_t) + * + * fp16 layout: [mantissa:10][exponent:5][sign:1] = 16 bits + */ +static inline void +bitSplit_fp16(void* const dstPtrs[], size_t nbElts, const void* src) +{ + uint16_t* restrict const mantissa = (uint16_t*)dstPtrs[0]; + uint8_t* restrict const exponent = (uint8_t*)dstPtrs[1]; + uint8_t* restrict const sign = (uint8_t*)dstPtrs[2]; + const uint16_t* restrict const src16 = (const uint16_t*)src; + + for (size_t e = 0; e < nbElts; e++) { + uint16_t const value = src16[e]; + mantissa[e] = (uint16_t)(value & 0x3FF); /* bits 0-9 */ + exponent[e] = (uint8_t)((value >> 10) & 0x1F); /* bits 10-14 */ + sign[e] = (uint8_t)((value >> 15) & 0x1); /* bit 15 */ + } +} + +/* + * Specialized encoder for fp32 pattern: + * - srcEltWidth is 4 (uint32_t) + * - 3 streams with bitWidths {23, 8, 1} + * - dstEltWidths are {4, 1, 1} (uint32_t, uint8_t, uint8_t) + * + * fp32 layout: [mantissa:23][exponent:8][sign:1] = 32 bits + */ +static inline void +bitSplit_fp32(void* const dstPtrs[], size_t nbElts, const void* src) +{ + uint32_t* restrict const mantissa = (uint32_t*)dstPtrs[0]; + uint8_t* restrict const exponent = (uint8_t*)dstPtrs[1]; + uint8_t* restrict const sign = (uint8_t*)dstPtrs[2]; + const uint32_t* restrict const src32 = (const uint32_t*)src; + + for (size_t e = 0; e < nbElts; e++) { + uint32_t const value = src32[e]; + mantissa[e] = (uint32_t)(value & 0x7FFFFF); /* bits 0-22 */ + exponent[e] = (uint8_t)((value >> 23) & 0xFF); /* bits 23-30 */ + sign[e] = (uint8_t)((value >> 31) & 0x1); /* bit 31 */ + } +} + +/* + * Specialized encoder for fp64 pattern: + * - srcEltWidth is 8 (uint64_t) + * - 3 streams with bitWidths {52, 11, 1} + * - dstEltWidths are {8, 2, 1} (uint64_t, uint16_t, uint8_t) + * + * fp64 layout: [mantissa:52][exponent:11][sign:1] = 64 bits + */ +static inline void +bitSplit_fp64(void* const dstPtrs[], size_t nbElts, const void* src) +{ + uint64_t* restrict const mantissa = (uint64_t*)dstPtrs[0]; + uint16_t* restrict const exponent = (uint16_t*)dstPtrs[1]; + uint8_t* restrict const sign = (uint8_t*)dstPtrs[2]; + const uint64_t* restrict const src64 = (const uint64_t*)src; + + for (size_t e = 0; e < nbElts; e++) { + uint64_t const value = src64[e]; + mantissa[e] = (uint64_t)(value & 0xFFFFFFFFFFFFF); /* bits 0-51 */ + exponent[e] = (uint16_t)((value >> 52) & 0x7FF); /* bits 52-62 */ + sign[e] = (uint8_t)((value >> 63) & 0x1); /* bit 63 */ + } +} + +/* + * Check if parameters match the bf16 encode pattern: + * - srcEltWidth is 2 (uint16_t) + * - 3 streams with bitWidths {7, 8, 1} + * - All dstEltWidths are 1 (uint8_t) + */ +static inline bool isEncodeBf16Pattern( + size_t srcEltWidth, + const size_t* dstEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (srcEltWidth != 2) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 7 || bitWidths[1] != 8 || bitWidths[2] != 1) + return false; + if (dstEltWidths[0] != 1 || dstEltWidths[1] != 1 || dstEltWidths[2] != 1) + return false; + return true; +} + +/* + * Check if parameters match the fp16 encode pattern: + * - srcEltWidth is 2 (uint16_t) + * - 3 streams with bitWidths {10, 5, 1} + * - dstEltWidths are {2, 1, 1} (uint16_t, uint8_t, uint8_t) + */ +static inline bool isEncodeFp16Pattern( + size_t srcEltWidth, + const size_t* dstEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (srcEltWidth != 2) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 10 || bitWidths[1] != 5 || bitWidths[2] != 1) + return false; + if (dstEltWidths[0] != 2 || dstEltWidths[1] != 1 || dstEltWidths[2] != 1) + return false; + return true; +} + +/* + * Check if parameters match the fp32 encode pattern: + * - srcEltWidth is 4 (uint32_t) + * - 3 streams with bitWidths {23, 8, 1} + * - dstEltWidths are {4, 1, 1} (uint32_t, uint8_t, uint8_t) + */ +static inline bool isEncodeFp32Pattern( + size_t srcEltWidth, + const size_t* dstEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (srcEltWidth != 4) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 23 || bitWidths[1] != 8 || bitWidths[2] != 1) + return false; + if (dstEltWidths[0] != 4 || dstEltWidths[1] != 1 || dstEltWidths[2] != 1) + return false; + return true; +} + +/* + * Check if parameters match the fp64 encode pattern: + * - srcEltWidth is 8 (uint64_t) + * - 3 streams with bitWidths {52, 11, 1} + * - dstEltWidths are {8, 2, 1} (uint64_t, uint16_t, uint8_t) + */ +static inline bool isEncodeFp64Pattern( + size_t srcEltWidth, + const size_t* dstEltWidths, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (srcEltWidth != 8) + return false; + if (nbWidths != 3) + return false; + if (bitWidths[0] != 52 || bitWidths[1] != 11 || bitWidths[2] != 1) + return false; + if (dstEltWidths[0] != 8 || dstEltWidths[1] != 2 || dstEltWidths[2] != 1) + return false; + return true; +} + +bool ZL_bitSplit_topBitsAreZero( + const void* src, + size_t srcEltWidth, + size_t nbElts, + size_t sumWidths) +{ + if (nbElts == 0) + return true; + + assert(src != NULL); + assert(srcEltWidth == 1 || srcEltWidth == 2 || srcEltWidth == 4 + || srcEltWidth == 8); + + if (sumWidths >= srcEltWidth * 8) { + return true; /* Full coverage, no top bits to check */ + } + uint64_t const mask = ~((1ULL << sumWidths) - 1); + + switch (srcEltWidth) { + case 1: + return checkTopBitsZero(src, 1, nbElts, mask); + case 2: + return checkTopBitsZero(src, 2, nbElts, mask); + case 4: + return checkTopBitsZero(src, 4, nbElts, mask); + case 8: + return checkTopBitsZero(src, 8, nbElts, mask); + default: + assert(false); + break; + } + return true; +} + +static inline void encodeElements( + void* const dstPtrs[], + const size_t* dstEltWidths, + size_t nbElts, + const void* src, + size_t srcEltWidth, + const uint8_t* bitWidths, + size_t nbWidths) +{ + for (size_t e = 0; e < nbElts; e++) { + uint64_t value = 0; + switch (srcEltWidth) { + case 1: + value = ((const uint8_t*)src)[e]; + break; + case 2: + value = ((const uint16_t*)src)[e]; + break; + case 4: + value = ((const uint32_t*)src)[e]; + break; + case 8: + value = ((const uint64_t*)src)[e]; + break; + default: + assert(false); + break; + } + + size_t bitPos = 0; + for (size_t i = 0; i < nbWidths; i++) { + unsigned const width = bitWidths[i]; + uint64_t const mask = (width >= 64) ? ~0ULL : ((1ULL << width) - 1); + uint64_t const extracted = (value >> bitPos) & mask; + + switch (dstEltWidths[i]) { + case 1: + ((uint8_t*)dstPtrs[i])[e] = (uint8_t)extracted; + break; + case 2: + ((uint16_t*)dstPtrs[i])[e] = (uint16_t)extracted; + break; + case 4: + ((uint32_t*)dstPtrs[i])[e] = (uint32_t)extracted; + break; + case 8: + ((uint64_t*)dstPtrs[i])[e] = extracted; + break; + default: + assert(false); + break; + } + + bitPos += width; + } + } +} + +void ZL_bitSplitEncode( + void* const dstPtrs[], + const size_t* dstEltWidths, + size_t nbElts, + const void* src, + size_t srcEltWidth, + const uint8_t* bitWidths, + size_t nbWidths) +{ + if (nbElts == 0) + return; + + assert(dstPtrs != NULL); + assert(dstEltWidths != NULL); + assert(src != NULL); + assert(srcEltWidth == 1 || srcEltWidth == 2 || srcEltWidth == 4 + || srcEltWidth == 8); + assert(bitWidths != NULL); + assert(nbWidths > 0); + assert(nbWidths <= 64); + + /* Validate parameters and individual streams */ + { + size_t sumBitWidths = 0; + for (size_t i = 0; i < nbWidths; i++) { + assert(dstPtrs[i] != NULL); + assert(dstEltWidths[i] == 1 || dstEltWidths[i] == 2 + || dstEltWidths[i] == 4 || dstEltWidths[i] == 8); + assert(bitWidths[i] > 0); + assert(bitWidths[i] <= dstEltWidths[i] * 8); + sumBitWidths += bitWidths[i]; + } + assert(sumBitWidths <= srcEltWidth * 8); + assert(ZL_bitSplit_topBitsAreZero( + src, srcEltWidth, nbElts, sumBitWidths)); + (void)sumBitWidths; + } + + /* Check for specialized patterns and dispatch */ + if (isEncodeBf16Pattern(srcEltWidth, dstEltWidths, bitWidths, nbWidths)) { + bitSplit_bf16(dstPtrs, nbElts, src); + return; + } + if (isEncodeFp16Pattern(srcEltWidth, dstEltWidths, bitWidths, nbWidths)) { + bitSplit_fp16(dstPtrs, nbElts, src); + return; + } + if (isEncodeFp32Pattern(srcEltWidth, dstEltWidths, bitWidths, nbWidths)) { + bitSplit_fp32(dstPtrs, nbElts, src); + return; + } + if (isEncodeFp64Pattern(srcEltWidth, dstEltWidths, bitWidths, nbWidths)) { + bitSplit_fp64(dstPtrs, nbElts, src); + return; + } + + /* Generic path */ + switch (srcEltWidth) { + case 1: + encodeElements( + dstPtrs, dstEltWidths, nbElts, src, 1, bitWidths, nbWidths); + break; + case 2: + encodeElements( + dstPtrs, dstEltWidths, nbElts, src, 2, bitWidths, nbWidths); + break; + case 4: + encodeElements( + dstPtrs, dstEltWidths, nbElts, src, 4, bitWidths, nbWidths); + break; + case 8: + encodeElements( + dstPtrs, dstEltWidths, nbElts, src, 8, bitWidths, nbWidths); + break; + default: + assert(false); + break; + } +} diff --git a/src/openzl/codecs/bitSplit/encode_bitSplit_kernel.h b/src/openzl/codecs/bitSplit/encode_bitSplit_kernel.h new file mode 100644 index 000000000..3f627be69 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitSplit_kernel.h @@ -0,0 +1,93 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_KERNEL_H +#define OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_KERNEL_H + +#include /* bool */ +#include /* size_t */ +#include /* uint8_t */ + +/* + * Validation helpers for assert() precondition checks. + * These verify that parameters are valid before the kernel operates. + */ + +/** + * Validates bitSplit parameters. + * + * Checks that: + * - Each bitWidths[i] > 0 + * - sum(bitWidths) <= inputEltWidthBits + * + * Preconditions: + * - bitWidths != NULL + * - nbWidths > 0 + * + * @param bitWidths Array of bit widths + * @param nbWidths Number of bit widths (must be > 0) + * @param inputEltWidthBits Input element width in bits + * @param sumWidths Output: sum of all bit widths (may be NULL) + * @return true if parameters are valid, false otherwise + */ +bool ZL_bitSplit_paramsAreValid( + const uint8_t* bitWidths, + size_t nbWidths, + size_t inputEltWidthBits, + size_t* sumWidths); + +/** + * Checks if top bits (beyond sum of widths) are zero for all elements. + * + * Preconditions: + * - srcEltWidth in {1, 2, 4, 8} + * - If nbElts > 0: src != NULL + * + * @param src Source array (may be NULL if nbElts == 0) + * @param srcEltWidth Element width of source (1, 2, 4, or 8 bytes) + * @param nbElts Number of elements to check + * @param sumWidths Sum of bit widths used + * @return true if all top bits are zero, false otherwise + */ +bool ZL_bitSplit_topBitsAreZero( + const void* src, + size_t srcEltWidth, + size_t nbElts, + size_t sumWidths); + +/** + * Encodes an array of elements by extracting bit ranges. + * + * Splits each source element into multiple destination streams by extracting + * bit ranges. Bit ranges are extracted LSB-to-MSB: bitWidths[0] extracts the + * lowest bits, bitWidths[1] the next higher bits, and so on. + * + * Preconditions: + * - srcEltWidth in {1, 2, 4, 8} + * - 0 < nbWidths <= 64 + * - If nbElts > 0: + * - dstPtrs != NULL, and each dstPtrs[i] != NULL + * - dstEltWidths != NULL, each dstEltWidths[i] in {1, 2, 4, 8} + * - src != NULL + * - bitWidths != NULL, each bitWidths[i] > 0 + * - sum(bitWidths) <= srcEltWidth * 8 + * - Each bitWidths[i] <= dstEltWidths[i] * 8 + * - Top bits of src elements (beyond sum(bitWidths)) must be zero + * + * @param dstPtrs Array of destination pointers (one per bit range) + * @param dstEltWidths Array of destination element widths in bytes + * @param nbElts Number of elements to encode + * @param src Source array of input values + * @param srcEltWidth Element width of source (1, 2, 4, or 8 bytes) + * @param bitWidths Array of bit widths (LSB to MSB order) + * @param nbWidths Number of bit widths (1-64) + */ +void ZL_bitSplitEncode( + void* const dstPtrs[], + const size_t* dstEltWidths, + size_t nbElts, + const void* src, + size_t srcEltWidth, + const uint8_t* bitWidths, + size_t nbWidths); + +#endif // OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_KERNEL_H diff --git a/src/openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.c b/src/openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.c new file mode 100644 index 000000000..d8bf88eb8 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.c @@ -0,0 +1,34 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.h" +#include "openzl/codecs/bitSplit/encode_bitSplit_binding.h" /* EI_bitSplit_withWidths */ +#include "openzl/common/assertion.h" /* ZL_ASSERT */ +#include "openzl/zl_data.h" /* ZL_Input_type */ +#include "openzl/zl_errors.h" /* ZL_ERR_IF_NOT */ +#include "openzl/zl_input.h" /* ZL_Input_ptr, ZL_Input_eltWidth, ZL_Input_numElts */ + +ZL_Report +EI_bitsplit_bf16(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + + ZL_ASSERT_NN(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + size_t const eltWidth = ZL_Input_eltWidth(in); + ZL_ERR_IF_NOT( + eltWidth == 2, + node_invalid_input, + "bitsplit_bf16 requires 2-byte elements (bfloat16)"); + + // bfloat16: [mantissa:7][exponent:8][sign:1] = 16 bits + uint8_t bitWidths[3]; + bitWidths[0] = 7; // mantissa bits (LSB) + bitWidths[1] = 8; // exponent bits + bitWidths[2] = 1; // sign bit (MSB) + + return EI_bitSplit_withWidths(eictx, in, bitWidths, 3); +} diff --git a/src/openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.h b/src/openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.h new file mode 100644 index 000000000..b67ee53ba --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.h @@ -0,0 +1,43 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_BF16_BINDING_H +#define OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_BF16_BINDING_H + +#include "openzl/codecs/common/graph_vo.h" /* GRAPH_VO_NUM */ +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" /* ZL_Encoder */ +#include "openzl/zl_errors.h" /* ZL_Report */ +#include "openzl/zl_opaque_types.h" + +ZL_BEGIN_C_DECLS + +/** + * bitsplit_bf16 encoder + * + * Decomposes bfloat16 values into 3 separate streams: + * sign (1 bit), exponent (8 bits), and mantissa (7 bits). + * + * bfloat16 layout (16 bits): + * - sign: 1 bit (bit 15) + * - exponent: 8 bits (bits 7-14) + * - mantissa: 7 bits (bits 0-6) + * + * Input: 1 numeric stream (2-byte elements) + * Output: 1 variable output stream of 3 outputs + * (mantissa, exponent, sign) + * + * Parameters: none (parameter-free node) + * + * Wire format: reuses bitSplit transform ID and codec header. + */ +ZL_Report +EI_bitsplit_bf16(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +#define EI_BITSPLIT_BF16(id) \ + { .gd = GRAPH_VO_NUM(id), \ + .transform_f = EI_bitsplit_bf16, \ + .name = "!zl.bitsplit_bf16" } + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_BF16_BINDING_H diff --git a/src/openzl/codecs/bitSplit/encode_bitsplit_fp_binding.c b/src/openzl/codecs/bitSplit/encode_bitsplit_fp_binding.c new file mode 100644 index 000000000..367e74e67 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitsplit_fp_binding.c @@ -0,0 +1,51 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/encode_bitsplit_fp_binding.h" +#include "openzl/codecs/bitSplit/encode_bitSplit_binding.h" /* EI_bitSplit_withWidths */ +#include "openzl/common/assertion.h" /* ZL_ASSERT */ +#include "openzl/zl_data.h" /* ZL_Input_type */ +#include "openzl/zl_errors.h" /* ZL_ERR_IF_NOT */ +#include "openzl/zl_input.h" /* ZL_Input_ptr, ZL_Input_eltWidth, ZL_Input_numElts */ + +ZL_Report EI_bitsplit_fp(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + + ZL_ASSERT_NN(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + size_t const eltWidth = ZL_Input_eltWidth(in); + ZL_ERR_IF_NOT( + eltWidth == 2 || eltWidth == 4 || eltWidth == 8, + node_invalid_input, + "bitsplit_fp requires IEEE 754 floats (2, 4, or 8-byte elements)"); + + uint8_t bitWidths[3]; + + switch (eltWidth) { + case 2: // IEEE 754 binary16 (fp16) + bitWidths[0] = 10; // mantissa bits (LSB) + bitWidths[1] = 5; // exponent bits + bitWidths[2] = 1; // sign bit (MSB) + break; + case 4: // IEEE 754 binary32 (fp32) + bitWidths[0] = 23; // mantissa bits (LSB) + bitWidths[1] = 8; // exponent bits + bitWidths[2] = 1; // sign bit (MSB) + break; + case 8: // IEEE 754 binary64 (fp64) + bitWidths[0] = 52; // mantissa bits (LSB) + bitWidths[1] = 11; // exponent bits + bitWidths[2] = 1; // sign bit (MSB) + break; + default: + ZL_ERR(node_invalid_input, + "Unsupported element width for floating point"); + break; + } + + return EI_bitSplit_withWidths(eictx, in, bitWidths, 3); +} diff --git a/src/openzl/codecs/bitSplit/encode_bitsplit_fp_binding.h b/src/openzl/codecs/bitSplit/encode_bitsplit_fp_binding.h new file mode 100644 index 000000000..5aa19adf1 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitsplit_fp_binding.h @@ -0,0 +1,43 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_FP_BINDING_H +#define OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_FP_BINDING_H + +#include "openzl/codecs/common/graph_vo.h" /* GRAPH_VO_NUM */ +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" /* ZL_Encoder */ +#include "openzl/zl_errors.h" /* ZL_Report */ +#include "openzl/zl_opaque_types.h" + +ZL_BEGIN_C_DECLS + +/** + * bitsplit_fp encoder + * + * Decomposes IEEE 754 floats into 3 separate streams: + * sign (1 bit), exponent, and mantissa. + * + * Supported IEEE 754 widths: + * - 2-byte (16-bit): sign (1 bit), exponent (5 bits), mantissa (10 bits) + * - 4-byte (32-bit): sign (1 bit), exponent (8 bits), mantissa (23 bits) + * - 8-byte (64-bit): sign (1 bit), exponent (11 bits), mantissa (52 bits) + * + * Input: 1 numeric stream (2, 4, or 8-byte elements) + * Output: 1 variable output stream of 3 outputs + * (sign, exponent, mantissa) + * + * Parameters: none (parameter-free node) + * + * Wire format: reuses bitSplit transform ID and codec header. + */ +ZL_Report +EI_bitsplit_fp(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +#define EI_BITSPLIT_FP(id) \ + { .gd = GRAPH_VO_NUM(id), \ + .transform_f = EI_bitsplit_fp, \ + .name = "!zl.bitsplit_fp" } + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_FP_BINDING_H diff --git a/src/openzl/codecs/bitSplit/encode_bitsplit_top8_binding.c b/src/openzl/codecs/bitSplit/encode_bitsplit_top8_binding.c new file mode 100644 index 000000000..3251c4273 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitsplit_top8_binding.c @@ -0,0 +1,121 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/bitSplit/encode_bitsplit_top8_binding.h" +#include "openzl/codecs/bitSplit/encode_bitSplit_binding.h" /* EI_bitSplit_withWidths */ +#include "openzl/common/assertion.h" /* ZL_ASSERT */ +#include "openzl/zl_data.h" /* ZL_Input_type */ +#include "openzl/zl_input.h" /* ZL_Input_ptr, ZL_Input_eltWidth, ZL_Input_numElts */ + +#include /* uint8_t, uint16_t, uint32_t, uint64_t */ + +/** + * Find the maximum value across all elements in a numeric input stream. + * + * @param src Pointer to source data + * @param eltWidth Element width in bytes (1, 2, 4, or 8) + * @param nbElts Number of elements + * @return Maximum value found (0 if nbElts == 0) + */ +static uint64_t findMaxValue(const void* src, size_t eltWidth, size_t nbElts) +{ + if (nbElts == 0) + return 0; + + ZL_ASSERT(src != NULL); + uint64_t maxVal = 0; + + switch (eltWidth) { + case 1: { + const uint8_t* p = (const uint8_t*)src; + for (size_t i = 0; i < nbElts; i++) { + if (p[i] > maxVal) + maxVal = p[i]; + } + break; + } + case 2: { + const uint16_t* p = (const uint16_t*)src; + for (size_t i = 0; i < nbElts; i++) { + if (p[i] > maxVal) + maxVal = p[i]; + } + break; + } + case 4: { + const uint32_t* p = (const uint32_t*)src; + for (size_t i = 0; i < nbElts; i++) { + if (p[i] > maxVal) + maxVal = p[i]; + } + break; + } + case 8: { + const uint64_t* p = (const uint64_t*)src; + for (size_t i = 0; i < nbElts; i++) { + if (p[i] > maxVal) + maxVal = p[i]; + } + break; + } + default: + ZL_ASSERT(0); /* unreachable: eltWidth must be 1, 2, 4, or 8 */ + } + + return maxVal; +} + +/** + * Compute floor(log2(v)) for v > 0. + * Returns the position of the highest set bit (0-indexed). + */ +static unsigned floorLog2(uint64_t v) +{ + ZL_ASSERT(v > 0); + unsigned r = 0; + while (v >>= 1) + r++; + return r; +} + +ZL_Report +EI_bitsplit_top8(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_ASSERT_NN(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + + size_t const eltWidth = ZL_Input_eltWidth(in); + ZL_ASSERT(eltWidth == 1 || eltWidth == 2 || eltWidth == 4 || eltWidth == 8); + size_t const nbElts = ZL_Input_numElts(in); + + /* Scan for maximum value to determine effective bit width */ + uint64_t const maxVal = findMaxValue(ZL_Input_ptr(in), eltWidth, nbElts); + + unsigned effectiveWidth; + if (maxVal == 0) { + effectiveWidth = 0; + } else { + effectiveWidth = floorLog2(maxVal) + 1; + } + + /* Determine bit widths for the split */ + uint8_t bitWidths[2]; + size_t nbWidths; + + if (effectiveWidth <= 8) { + /* All data fits in 8 bits: single output stream */ + bitWidths[0] = (effectiveWidth > 0) ? (uint8_t)effectiveWidth : 1; + nbWidths = 1; + } else { + /* Split into remainder (lower) + top 8 bits (upper) */ + unsigned remainder = effectiveWidth - 8; + bitWidths[0] = (uint8_t)remainder; + bitWidths[1] = 8; + nbWidths = 2; + } + + return EI_bitSplit_withWidths(eictx, in, bitWidths, nbWidths); +} diff --git a/src/openzl/codecs/bitSplit/encode_bitsplit_top8_binding.h b/src/openzl/codecs/bitSplit/encode_bitsplit_top8_binding.h new file mode 100644 index 000000000..d071793e8 --- /dev/null +++ b/src/openzl/codecs/bitSplit/encode_bitsplit_top8_binding.h @@ -0,0 +1,40 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_TOP8_BINDING_H +#define OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_TOP8_BINDING_H + +#include "openzl/codecs/common/graph_vo.h" /* GRAPH_VO_NUM */ +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" /* ZL_Encoder */ +#include "openzl/zl_errors.h" /* ZL_Report */ +#include "openzl/zl_opaque_types.h" + +ZL_BEGIN_C_DECLS + +/** + * bitsplit_top8 encoder + * + * Scans input for max value, determines effective bit width, and splits + * the field into at most 2 streams: the top 8 significant bits and the + * remainder lower bits. + * + * Input: 1 numeric stream (all widths supported: 1, 2, 4, 8 bytes) + * Output: 1 or 2 numeric streams + * - effective width <= 8: 1 stream (8-bit) + * - effective width > 8: 2 streams (remainder bits, top 8 bits) + * + * Parameters: none (parameter-free node) + * + * Wire format: reuses bitSplit transform ID and codec header. + */ +ZL_Report +EI_bitsplit_top8(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +#define EI_BITSPLIT_TOP8(id) \ + { .gd = GRAPH_VO_NUM(id), \ + .transform_f = EI_bitsplit_top8, \ + .name = "!zl.bitsplit_top8" } + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_BITSPLIT_ENCODE_BITSPLIT_TOP8_BINDING_H diff --git a/src/openzl/codecs/bitSplit/graph_bitSplit.h b/src/openzl/codecs/bitSplit/graph_bitSplit.h new file mode 100644 index 000000000..a68afb1ae --- /dev/null +++ b/src/openzl/codecs/bitSplit/graph_bitSplit.h @@ -0,0 +1,18 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_BITSPLIT_GRAPH_BITSPLIT_H +#define OPENZL_CODECS_BITSPLIT_GRAPH_BITSPLIT_H + +#include "openzl/zl_data.h" + +// bitSplit decoder graph: N numeric inputs → 1 numeric output +// The number of inputs is variable (determined by codec header) +#define BITSPLIT_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .lastInputIsVariable = 1, \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + } + +#endif // OPENZL_CODECS_BITSPLIT_GRAPH_BITSPLIT_H diff --git a/src/openzl/codecs/bitpack/common_bitpack_kernel.c b/src/openzl/codecs/bitpack/common_bitpack_kernel.c index e1b334ec3..533105b49 100644 --- a/src/openzl/codecs/bitpack/common_bitpack_kernel.c +++ b/src/openzl/codecs/bitpack/common_bitpack_kernel.c @@ -374,57 +374,57 @@ ZS_BITPACK_ENCODE_8_T(uint64_t, convert16U64ToU8, ZS_bitpackEncode64_generic) # define ZS_BITPACK_ENCODE_16_T_FN(type) ZS_bitpackEncode16_##type##_bmi2 -# define ZS_BITPACK_ENCODE_16_T(type, convert8Fn, leftoversFn) \ - ZL_FORCE_NOINLINE size_t ZS_BITPACK_ENCODE_16_T_FN(type)( \ - uint8_t * op, type const* ip, size_t nbElts, size_t nbBits) \ - { \ - ZL_ASSERT_LE(nbBits, 16); \ - size_t const dstSize = (nbElts * nbBits + 7) / 8; \ - size_t const bytesPerLoop = nbBits; \ - size_t const halfBytesPerLoop = bytesPerLoop / 2; \ - type const* const iend = ip + nbElts; \ - uint8_t* const oend = op + dstSize; \ - uint8_t* olimit = \ - oend - ZL_MAX(halfBytesPerLoop + 7, bytesPerLoop); \ - if (nbBits % 2 == 0) { \ - uint64_t const mask = \ - ((1ull << nbBits) - 1) * 0x0001000100010001ULL; \ - while (op < olimit) { \ - uint16_t ints[8]; \ - convert8Fn(ints, ip); \ - ip += 8; \ - for (size_t i = 0; i < 8; i += 4) { \ - uint64_t const bytes = ZL_read64(ints + i); \ - uint64_t const bits = _pext_u64(bytes, mask); \ - ZS_write64(op, bits); \ - op += halfBytesPerLoop; \ - } \ - } \ - } else { \ - uint64_t const mask = \ - ((1ull << nbBits) - 1) * 0x0001000100010001ULL; \ - size_t const shift0 = nbBits * 4 - 4; \ - size_t const shift1 = 4; \ - while (op < olimit) { \ - uint16_t ints[8]; \ - convert8Fn(ints, ip); \ - ip += 8; \ - uint64_t const bytes0 = ZL_read64(ints + 0); \ - uint64_t const bits0 = _pext_u64(bytes0, mask); \ - ZS_write64(op, bits0); \ - uint64_t const bytes1 = ZL_read64(ints + 4); \ - uint64_t const bits1 = _pext_u64(bytes1, mask); \ - ZL_ASSERT_EQ((bits0 >> shift0) & (size_t)~0xf, 0); \ - ZS_write64( \ - op + halfBytesPerLoop, \ - (bits0 >> shift0) | (bits1 << shift1)); \ - op += bytesPerLoop; \ - } \ - } \ - ZL_ASSERT_LE(ip, iend); \ - op += leftoversFn(op, ip, (size_t)(iend - ip), nbBits); \ - ZL_ASSERT_EQ(op, oend); \ - return dstSize; \ +# define ZS_BITPACK_ENCODE_16_T(type, convert8Fn, leftoversFn) \ + ZL_FORCE_NOINLINE size_t ZS_BITPACK_ENCODE_16_T_FN(type)( \ + uint8_t* op, type const* ip, size_t nbElts, size_t nbBits) \ + { \ + ZL_ASSERT_LE(nbBits, 16); \ + size_t const dstSize = (nbElts * nbBits + 7) / 8; \ + size_t const bytesPerLoop = nbBits; \ + size_t const halfBytesPerLoop = bytesPerLoop / 2; \ + type const* const iend = ip + nbElts; \ + uint8_t* const oend = op + dstSize; \ + uint8_t* olimit = \ + oend - ZL_MAX(halfBytesPerLoop + 7, bytesPerLoop); \ + if (nbBits % 2 == 0) { \ + uint64_t const mask = \ + ((1ull << nbBits) - 1) * 0x0001000100010001ULL; \ + while (op < olimit) { \ + uint16_t ints[8]; \ + convert8Fn(ints, ip); \ + ip += 8; \ + for (size_t i = 0; i < 8; i += 4) { \ + uint64_t const bytes = ZL_read64(ints + i); \ + uint64_t const bits = _pext_u64(bytes, mask); \ + ZS_write64(op, bits); \ + op += halfBytesPerLoop; \ + } \ + } \ + } else { \ + uint64_t const mask = \ + ((1ull << nbBits) - 1) * 0x0001000100010001ULL; \ + size_t const shift0 = nbBits * 4 - 4; \ + size_t const shift1 = 4; \ + while (op < olimit) { \ + uint16_t ints[8]; \ + convert8Fn(ints, ip); \ + ip += 8; \ + uint64_t const bytes0 = ZL_read64(ints + 0); \ + uint64_t const bits0 = _pext_u64(bytes0, mask); \ + ZS_write64(op, bits0); \ + uint64_t const bytes1 = ZL_read64(ints + 4); \ + uint64_t const bits1 = _pext_u64(bytes1, mask); \ + ZL_ASSERT_EQ((bits0 >> shift0) & (size_t)~0xf, 0); \ + ZS_write64( \ + op + halfBytesPerLoop, \ + (bits0 >> shift0) | (bits1 << shift1)); \ + op += bytesPerLoop; \ + } \ + } \ + ZL_ASSERT_LE(ip, iend); \ + op += leftoversFn(op, ip, (size_t)(iend - ip), nbBits); \ + ZL_ASSERT_EQ(op, oend); \ + return dstSize; \ } static void convert8U16ToU16(uint16_t* dst, uint16_t const* src) @@ -951,7 +951,7 @@ static size_t ZS_bitpackDecode8_generic( #if ZS_HAS_FAST_BITPACK -static size_t ZS_bitpackDecode16_bmi2( +static ZL_MAYBE_UNUSED_FUNCTION size_t ZS_bitpackDecode16_bmi2( uint16_t* op, size_t nbElts, uint8_t const* ip, diff --git a/src/openzl/codecs/bitpack/decode_bitpack_binding.c b/src/openzl/codecs/bitpack/decode_bitpack_binding.c index ccb43ac5f..d36c3d6f2 100644 --- a/src/openzl/codecs/bitpack/decode_bitpack_binding.c +++ b/src/openzl/codecs/bitpack/decode_bitpack_binding.c @@ -7,9 +7,37 @@ #include "openzl/zl_data.h" #include "openzl/zl_dtransform.h" +ZL_Report ZL_BitpackHeader_parse( + ZL_BitpackHeader* parsed, + const void* headerData, + size_t headerSize, + size_t packedSize) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_LE(headerSize, 0, header_unknown, "Empty bitpack header"); + ZL_ERR_IF_GT(headerSize, 2, header_unknown, "Bitpack header too large"); + + const uint8_t* header = (const uint8_t*)headerData; + parsed->eltWidth = (size_t)1 << ((header[0] >> 6) & 0x3); + parsed->nbBits = (size_t)(1 + (header[0] & 0x3F)); + ZL_ERR_IF_GT(parsed->nbBits, parsed->eltWidth * 8, corruption); + + size_t nbExtraElts = 0; + if (headerSize > 1) { + nbExtraElts = header[1]; + } + + const size_t maxNbElts = (packedSize * 8) / parsed->nbBits; + ZL_ERR_IF_GT(nbExtraElts, maxNbElts, corruption, "bitpack header corrupt"); + parsed->numElts = maxNbElts - nbExtraElts; + + return ZL_returnSuccess(); +} + static ZL_Report DI_bitpack_typed(ZL_Decoder* dictx, const ZL_Input* ins[], ZL_Type type) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -20,40 +48,32 @@ DI_bitpack_typed(ZL_Decoder* dictx, const ZL_Input* ins[], ZL_Type type) size_t srcSize = ZL_Input_numElts(in); ZL_RBuffer const headerBuffer = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_GT(header_unknown, headerBuffer.size, 2); - ZL_RET_R_IF_LE(header_unknown, headerBuffer.size, 0); - uint8_t const header = *(uint8_t const*)headerBuffer.start; - bool const hasExtraSpace = headerBuffer.size > 1; - size_t const dstEltWidth = (size_t)1 << ((header >> 6) & 0x3); - int const nbBits = 1 + (header & 0x3F); - - ZL_RET_R_IF_GT(internalBuffer_tooSmall, (size_t)nbBits, dstEltWidth * 8); - ZL_RET_R_IF_LE(header_unknown, nbBits, 0); + ZL_BitpackHeader bpHeader; + ZL_ERR_IF_ERR(ZL_BitpackHeader_parse( + &bpHeader, headerBuffer.start, headerBuffer.size, srcSize)); if (type == ZL_Type_serial) { - ZL_RET_R_IF_NE( - header_unknown, dstEltWidth, 1, "Serialized has width 1!"); + ZL_ERR_IF_NE( + bpHeader.eltWidth, + 1, + header_unknown, + "Serialized has width 1!"); } - size_t dstNbElts; - if (hasExtraSpace) { - size_t const maxNbElts = (srcSize * 8) / (size_t)nbBits; - uint8_t const nbExtraElts = ((uint8_t const*)headerBuffer.start)[1]; - ZL_RET_R_IF_GT( - corruption, nbExtraElts, maxNbElts, "bitpack header corrupt"); - dstNbElts = maxNbElts - nbExtraElts; - } else { - dstNbElts = (srcSize * 8) / (size_t)nbBits; - } - ZL_Output* const out = - ZL_Decoder_create1OutStream(dictx, dstNbElts, dstEltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_Output* const out = ZL_Decoder_create1OutStream( + dictx, bpHeader.numElts, bpHeader.eltWidth); + ZL_ERR_IF_NULL(out, allocation); size_t const srcConsumed = ZS_bitpackDecode( - ZL_Output_ptr(out), dstNbElts, dstEltWidth, src, srcSize, nbBits); - ZL_RET_R_IF_NE( - corruption, srcConsumed, srcSize, "entire source not consumed"); + ZL_Output_ptr(out), + bpHeader.numElts, + bpHeader.eltWidth, + src, + srcSize, + (int)bpHeader.nbBits); + ZL_ERR_IF_NE( + srcConsumed, srcSize, corruption, "entire source not consumed"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, bpHeader.numElts)); // Return the number of output streams. return ZL_returnValue(1); diff --git a/src/openzl/codecs/bitpack/decode_bitpack_binding.h b/src/openzl/codecs/bitpack/decode_bitpack_binding.h index 50ae30928..d29360b2d 100644 --- a/src/openzl/codecs/bitpack/decode_bitpack_binding.h +++ b/src/openzl/codecs/bitpack/decode_bitpack_binding.h @@ -9,20 +9,35 @@ ZL_BEGIN_C_DECLS +/// Parsed bitpack header fields. +typedef struct { + size_t eltWidth; // Output element width in bytes (1, 2, 4, or 8) + size_t nbBits; // Number of bits per packed element (1..64) + size_t numElts; // Number of output elements +} ZL_BitpackHeader; + +/// Parse a bitpack header and compute the number of output elements. +/// +/// @param[out] parsed Receives the parsed header fields. +/// @param headerData Pointer to the raw header bytes (1 or 2 bytes). +/// @param headerSize Size of the header in bytes. +/// @param packedSize Size of the packed data stream in bytes. +ZL_Report ZL_BitpackHeader_parse( + ZL_BitpackHeader* parsed, + const void* headerData, + size_t headerSize, + size_t packedSize); + /* new methods, based on typedTransform */ ZL_Report DI_bitpack_numeric(ZL_Decoder* dictx, const ZL_Input* in[]); ZL_Report DI_bitpack_serialized(ZL_Decoder* dictx, const ZL_Input* in[]); // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define DI_BITPACK_INTEGER(id) \ - { \ - .transform_f = DI_bitpack_numeric, .name = "bitpack" \ - } -#define DI_BITPACK_SERIALIZED(id) \ - { \ - .transform_f = DI_bitpack_serialized, .name = "bitpack" \ - } +#define DI_BITPACK_INTEGER(id) \ + { .transform_f = DI_bitpack_numeric, .name = "bitpack" } +#define DI_BITPACK_SERIALIZED(id) \ + { .transform_f = DI_bitpack_serialized, .name = "bitpack" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/bitpack/encode_bitpack_binding.c b/src/openzl/codecs/bitpack/encode_bitpack_binding.c index d5163cb30..b571db627 100644 --- a/src/openzl/codecs/bitpack/encode_bitpack_binding.c +++ b/src/openzl/codecs/bitpack/encode_bitpack_binding.c @@ -55,9 +55,6 @@ static int computeNbBits(ZL_Input const* in) size_t const eltWidth = ZL_Input_eltWidth(in); uint64_t maxValue; switch (eltWidth) { - default: - ZL_ASSERT_FAIL("Impossible"); - ZL_FALLTHROUGH; case 1: maxValue = computeMaxValue8((uint8_t const*)src, nbElts); break; @@ -70,6 +67,9 @@ static int computeNbBits(ZL_Input const* in) case 8: maxValue = computeMaxValue64((uint64_t const*)src, nbElts); break; + default: + ZL_ASSERT_FAIL("Impossible"); + return 0; } // Wastes bits when maxValue == 0... return 1 + (maxValue == 0 ? 0 : (int)ZL_highbit64(maxValue)); @@ -77,6 +77,7 @@ static int computeNbBits(ZL_Input const* in) static ZL_Report checkEtlWidth(size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); switch (eltWidth) { case 1: case 2: @@ -84,14 +85,14 @@ static ZL_Report checkEtlWidth(size_t eltWidth) case 8: return ZL_returnSuccess(); default: - ZL_RET_R_ERR( - GENERIC, "Bitpack expects element width of 1, 2, 4 or 8"); + ZL_ERR(GENERIC, "Bitpack expects element width of 1, 2, 4 or 8"); } } ZL_Report EI_bitpack_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -105,7 +106,7 @@ EI_bitpack_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const eltWidth = ZL_Input_eltWidth(in); // Check that eltWidth is one we support - ZL_RET_R_IF_ERR(checkEtlWidth(eltWidth)); + ZL_ERR_IF_ERR(checkEtlWidth(eltWidth)); int const nbBits = computeNbBits(in); ZL_ASSERT_EQ(ZS_bitpackEncodeVerify(src, nbElts, eltWidth, nbBits), 1); @@ -113,7 +114,7 @@ EI_bitpack_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const dstCapacity = ZS_bitpackEncodeBound(nbElts, nbBits); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint8_t* const ostart = (uint8_t*)ZL_Output_ptr(out); size_t const dstSize = ZS_bitpackEncode( @@ -142,7 +143,7 @@ EI_bitpack_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Encoder_sendCodecHeader(eictx, &header, 1); } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstSize)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/bitpack/encode_bitpack_binding.h b/src/openzl/codecs/bitpack/encode_bitpack_binding.h index e0fe2eff0..9b5200c7a 100644 --- a/src/openzl/codecs/bitpack/encode_bitpack_binding.h +++ b/src/openzl/codecs/bitpack/encode_bitpack_binding.h @@ -13,17 +13,15 @@ ZL_BEGIN_C_DECLS ZL_Report EI_bitpack_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_BITPACK_INTEGER(id) \ - { \ - .gd = INTEGER_BITPACK_GRAPH(id), .transform_f = EI_bitpack_typed, \ - .name = "!zl.private.bitpack_int" \ - } - -#define EI_BITPACK_SERIALIZED(id) \ - { \ - .gd = SERIALIZED_BITPACK_GRAPH(id), .transform_f = EI_bitpack_typed, \ - .name = "!zl.private.bitpack_serial" \ - } +#define EI_BITPACK_INTEGER(id) \ + { .gd = INTEGER_BITPACK_GRAPH(id), \ + .transform_f = EI_bitpack_typed, \ + .name = "!zl.private.bitpack_int" } + +#define EI_BITPACK_SERIALIZED(id) \ + { .gd = SERIALIZED_BITPACK_GRAPH(id), \ + .transform_f = EI_bitpack_typed, \ + .name = "!zl.private.bitpack_serial" } // Trivial redirector based on input type // .selector_f = SI_selector_bitpack, diff --git a/src/openzl/codecs/bitpack/graph_bitpack.h b/src/openzl/codecs/bitpack/graph_bitpack.h index b72c79782..75b53bc3b 100644 --- a/src/openzl/codecs/bitpack/graph_bitpack.h +++ b/src/openzl/codecs/bitpack/graph_bitpack.h @@ -10,16 +10,18 @@ #include "openzl/zl_data.h" // st_* -#define INTEGER_BITPACK_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define INTEGER_BITPACK_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define SERIALIZED_BITPACK_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define SERIALIZED_BITPACK_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } #endif diff --git a/src/openzl/codecs/bitunpack/decode_bitunpack_binding.c b/src/openzl/codecs/bitunpack/decode_bitunpack_binding.c index 25f51083b..33bdcffa0 100644 --- a/src/openzl/codecs/bitunpack/decode_bitunpack_binding.c +++ b/src/openzl/codecs/bitunpack/decode_bitunpack_binding.c @@ -11,6 +11,7 @@ ZL_Report DI_bitunpack(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -22,40 +23,40 @@ ZL_Report DI_bitunpack(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t nbElts = ZL_Input_numElts(in); ZL_RBuffer const headerBuffer = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_LT(header_unknown, headerBuffer.size, 1); - ZL_RET_R_IF_GT(header_unknown, headerBuffer.size, 2); + ZL_ERR_IF_LT(headerBuffer.size, 1, header_unknown); + ZL_ERR_IF_GT(headerBuffer.size, 2, header_unknown); uint8_t const nbBits = *(uint8_t const*)headerBuffer.start; - ZL_RET_R_IF_GT(corruption, nbBits, 8 * eltWidth); + ZL_ERR_IF_GT(nbBits, 8 * eltWidth, corruption); size_t const dstSize = ZS_bitpackEncodeBound(nbElts, nbBits); ZL_Output* const dst = ZL_Decoder_create1OutStream(dictx, dstSize, 1); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); void* dstBuffer = ZL_Output_ptr(dst); const size_t bytesWritten = ZS_bitpackEncode(dstBuffer, dstSize, src, nbElts, eltWidth, nbBits); - ZL_RET_R_IF_NE(GENERIC, bytesWritten, dstSize); + ZL_ERR_IF_NE(bytesWritten, dstSize, GENERIC); if (headerBuffer.size == 2) { // We have some leftover bits uint8_t remBits = ((uint8_t const*)headerBuffer.start)[1]; const size_t remNbBits = dstSize * 8 - nbElts * nbBits; ZL_ASSERT_LT(remNbBits, 8); - ZL_RET_R_IF_EQ( - corruption, + ZL_ERR_IF_EQ( remNbBits, 0, - "remNbBits is zero although trailing bits are expected"); - ZL_RET_R_IF_EQ( corruption, + "remNbBits is zero although trailing bits are expected"); + ZL_ERR_IF_EQ( dstSize, 0, + corruption, "dstSize is zero although trailing bits are expected"); ((uint8_t*)dstBuffer)[dstSize - 1] |= (uint8_t)(remBits << (8 - remNbBits)); } - ZL_RET_R_IF_ERR(ZL_Output_commit(dst, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(dst, dstSize)); // Return the number of output streams. return ZL_returnValue(1); diff --git a/src/openzl/codecs/bitunpack/decode_bitunpack_binding.h b/src/openzl/codecs/bitunpack/decode_bitunpack_binding.h index 4445c1585..381ee6259 100644 --- a/src/openzl/codecs/bitunpack/decode_bitunpack_binding.h +++ b/src/openzl/codecs/bitunpack/decode_bitunpack_binding.h @@ -11,10 +11,7 @@ ZL_BEGIN_C_DECLS ZL_Report DI_bitunpack(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_BITUNPACK(id) \ - { \ - .transform_f = DI_bitunpack, .name = "bitunpack" \ - } +#define DI_BITUNPACK(id) { .transform_f = DI_bitunpack, .name = "bitunpack" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/bitunpack/encode_bitunpack_binding.c b/src/openzl/codecs/bitunpack/encode_bitunpack_binding.c index b241ace76..01f00e3c0 100644 --- a/src/openzl/codecs/bitunpack/encode_bitunpack_binding.c +++ b/src/openzl/codecs/bitunpack/encode_bitunpack_binding.c @@ -5,8 +5,6 @@ #include "openzl/codecs/bitpack/common_bitpack_kernel.h" #include "openzl/common/assertion.h" #include "openzl/common/errors_internal.h" -#include "openzl/shared/bits.h" -#include "openzl/shared/utils.h" #include "openzl/zl_ctransform.h" #include "openzl/zl_data.h" #include "openzl/zl_errors.h" @@ -14,13 +12,13 @@ static ZL_Report getNbBits(ZL_Encoder* eictx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_IntParam const nbBits = ZL_Encoder_getLocalIntParam(eictx, ZL_Bitunpack_numBits); // Parameter **must** be set. - ZL_RET_R_IF_EQ( - nodeParameter_invalid, nbBits.paramId, ZL_LP_INVALID_PARAMID); + ZL_ERR_IF_EQ(nbBits.paramId, ZL_LP_INVALID_PARAMID, nodeParameter_invalid); if (nbBits.paramValue <= 0 || nbBits.paramValue > 64) { - ZL_RET_R_ERR(nodeParameter_invalidValue); + ZL_ERR(nodeParameter_invalidValue); } return ZL_returnValue((size_t)nbBits.paramValue); } @@ -41,31 +39,32 @@ static size_t getEltWidth(const size_t nbBits) ZL_Report EI_bitunpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; ZL_ASSERT_NN(eictx); ZL_ASSERT_NN(in); ZL_ASSERT(ZL_Input_type(in) == ZL_Type_serial); - ZL_TRY_LET_R(nbBits, getNbBits(eictx)); + ZL_TRY_LET(size_t, nbBits, getNbBits(eictx)); const void* const src = ZL_Input_ptr(in); size_t const srcSize = ZL_Input_numElts(in); size_t const nbElts = srcSize * 8 / nbBits; // Make sure we fit well, and that remaining bits are zero - ZL_RET_R_IF_NE(GENERIC, (nbElts * nbBits + 7) / 8, srcSize); + ZL_ERR_IF_NE((nbElts * nbBits + 7) / 8, srcSize, GENERIC); size_t const eltWidth = getEltWidth(nbBits); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, nbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); const size_t bytesRead = ZS_bitpackDecode( ZL_Output_ptr(out), nbElts, eltWidth, src, srcSize, (int)nbBits); - ZL_RET_R_IF_NE(logicError, bytesRead, srcSize); + ZL_ERR_IF_NE(bytesRead, srcSize, logicError); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); // Header's structure: // Byte 1 - nbBits @@ -83,9 +82,8 @@ ZL_Report EI_bitunpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) header[1] = remBits; headerSize += 1; } else { - ZL_RET_R_ERR( - GENERIC, - "Bitunpack support non-zero trailing bits starting at format version 7"); + ZL_ERR(GENERIC, + "Bitunpack support non-zero trailing bits starting at format version 7"); } } } diff --git a/src/openzl/codecs/bitunpack/encode_bitunpack_binding.h b/src/openzl/codecs/bitunpack/encode_bitunpack_binding.h index 7f2ead4ab..633a4cbd5 100644 --- a/src/openzl/codecs/bitunpack/encode_bitunpack_binding.h +++ b/src/openzl/codecs/bitunpack/encode_bitunpack_binding.h @@ -11,11 +11,10 @@ ZL_BEGIN_C_DECLS ZL_Report EI_bitunpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_BITUNPACK(id) \ - { \ - .gd = BITUNPACK_GRAPH(id), .transform_f = EI_bitunpack, \ - .name = "!zl.bitunpack" \ - } +#define EI_BITUNPACK(id) \ + { .gd = BITUNPACK_GRAPH(id), \ + .transform_f = EI_bitunpack, \ + .name = "!zl.bitunpack" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/bitunpack/graph_bitunpack.h b/src/openzl/codecs/bitunpack/graph_bitunpack.h index 1f735ee3f..f28c77b20 100644 --- a/src/openzl/codecs/bitunpack/graph_bitunpack.h +++ b/src/openzl/codecs/bitunpack/graph_bitunpack.h @@ -10,10 +10,11 @@ #include "openzl/zl_data.h" // st_* -#define BITUNPACK_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define BITUNPACK_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/common/bitstream/bf_bitstream.h b/src/openzl/codecs/common/bitstream/bf_bitstream.h index 89402fbf5..93a7a1f95 100644 --- a/src/openzl/codecs/common/bitstream/bf_bitstream.h +++ b/src/openzl/codecs/common/bitstream/bf_bitstream.h @@ -77,12 +77,13 @@ ZL_INLINE void ZS_BitCStreamBF_flush(ZS_BitCStreamBF* bits) ZL_INLINE ZL_Report ZS_BitCStreamBF_finish(ZS_BitCStreamBF* bits) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); ZS_BitCStreamBF_flush(bits); size_t extraBits = 8 - (bits->nbBits % 8); ZS_BitCStreamBF_write(bits, 1 << (extraBits - 1), extraBits); ZL_ASSERT_EQ(bits->nbBits % 8, 0); ZS_BitCStreamBF_flush(bits); - ZL_RET_R_IF(dstCapacity_tooSmall, bits->nbBits); + ZL_ERR_IF(bits->nbBits, dstCapacity_tooSmall); return ZL_returnValue((size_t)(bits->end - bits->ptr)); } diff --git a/src/openzl/codecs/common/bitstream/ff_bitstream.h b/src/openzl/codecs/common/bitstream/ff_bitstream.h index 37af7f6e9..b1d7202ee 100644 --- a/src/openzl/codecs/common/bitstream/ff_bitstream.h +++ b/src/openzl/codecs/common/bitstream/ff_bitstream.h @@ -92,9 +92,10 @@ ZL_INLINE ZS_BitCStreamFF ZS_BitCStreamFF_init(uint8_t* dst, size_t dstCapacity) ZL_INLINE ZL_Report ZS_BitCStreamFF_finish(ZS_BitCStreamFF* bits) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); size_t bytesToWrite = (bits->nbBits + 7) / 8; if (bits->end < bits->ptr + bytesToWrite) - ZL_RET_R_ERR(internalBuffer_tooSmall); + ZL_ERR(internalBuffer_tooSmall); if (bytesToWrite) { ZL_ASSERT_EQ( bits->container, @@ -154,8 +155,9 @@ ZS_BitDStreamFF_init(uint8_t const* src, size_t srcSize) ZL_INLINE ZL_Report ZS_BitDStreamFF_finish(ZS_BitDStreamFF const* bits) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); if (bits->nbBitsRead > ZS_BITSTREAM_READ_MAX_BITS) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/common/fast_table.h b/src/openzl/codecs/common/fast_table.h index c0e3d4209..7730ad715 100644 --- a/src/openzl/codecs/common/fast_table.h +++ b/src/openzl/codecs/common/fast_table.h @@ -76,6 +76,18 @@ ZL_FORCE_INLINE void ZS_FastTable_putT( /// Templated by minMatch. void ZS_FastTable_put(ZS_FastTable* table, uint8_t const* ptr, uint32_t pos); +ZL_FORCE_INLINE void ZS_FastTable_conditionalPutT( + ZS_FastTable* table, + uint8_t const* ptr, + uint32_t pos, + uint32_t kMinMatch, + bool condition) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + table->table[hash] = condition ? pos : table->table[hash]; +} + /// Get the value at ptr. /// Templated by minMatch. ZL_FORCE_INLINE uint32_t diff --git a/src/openzl/codecs/common/fast_table16.c b/src/openzl/codecs/common/fast_table16.c new file mode 100644 index 000000000..ac7be1d4b --- /dev/null +++ b/src/openzl/codecs/common/fast_table16.c @@ -0,0 +1,58 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/common/fast_table16.h" +#include "openzl/shared/portability.h" + +#include + +size_t ZS_FastTable16_tableSize(size_t tableLog) +{ + return ((size_t)1 << tableLog) * sizeof(((ZS_FastTable16*)NULL)->table[0]); +} + +// We are forcing the compiler to not inline this function, so that it won't +// optimize the malloc + memset into a calloc. +ZL_FORCE_NOINLINE void ZS_FastTable16_clear( + ZS_FastTable16* table, + uint32_t tableLog, + uint32_t minMatch) +{ + size_t const tableSize = ZS_FastTable16_tableSize(tableLog); + memset(table->table, 0, tableSize); + table->tableLog = tableLog; + table->minMatch = minMatch; +} + +void ZS_FastTable16_init( + ZS_FastTable16* table, + void* memory, + uint32_t tableLog, + uint32_t minMatch) +{ + // malloc + memset is faster than calloc because we have a random access + // pattern. If we don't memset the table, the pages will be filled into the + // page table one at a time, whenever we first write to that page. That is + // a lot less efficient than linearly loading the entire table into the page + // table, as we memset it. + ZL_ASSERT_NULL(table->table); + table->table = memory; + ZS_FastTable16_clear(table, tableLog, minMatch); +} + +uint32_t ZS_FastTable16_getAndUpdate( + ZS_FastTable16* table, + uint8_t const* ptr, + uint16_t pos) +{ + return ZS_FastTable16_getAndUpdateT(table, ptr, pos, table->minMatch); +} + +void ZS_FastTable16_put(ZS_FastTable16* table, uint8_t const* ptr, uint16_t pos) +{ + ZS_FastTable16_putT(table, ptr, pos, table->minMatch); +} + +uint32_t ZS_FastTable16_get(ZS_FastTable16* table, uint8_t const* ptr) +{ + return ZS_FastTable16_getT(table, ptr, table->minMatch); +} diff --git a/src/openzl/codecs/common/fast_table16.h b/src/openzl/codecs/common/fast_table16.h new file mode 100644 index 000000000..747bd9d92 --- /dev/null +++ b/src/openzl/codecs/common/fast_table16.h @@ -0,0 +1,99 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_COMPRESS_MATCH_FINDER_FAST_TABLE16_H +#define ZSTRONG_COMPRESS_MATCH_FINDER_FAST_TABLE16_H + +#include "openzl/common/assertion.h" +#include "openzl/shared/hash.h" +#include "openzl/shared/portability.h" + +ZL_BEGIN_C_DECLS + +/** + * Fast hash table without any collision resolution. + * Table is sized to 2^tableLog uint32_t. + * Hash looks at the first minMatch bytes of the ptr. + */ +typedef struct { + uint16_t* table; + uint32_t tableLog; + uint32_t minMatch; +} ZS_FastTable16; + +/** + * @returns The table size in bytes for a table log. + */ +size_t ZS_FastTable16_tableSize(size_t tableLog); + +/** + * Initializes the hash table. + * + * @p memory A pointer of `ZS_FastTable16_tableSize(tableLog)` bytes that is at + * least 4-byte aligned. + * @p tableLog The log2 of the numer of entries in the table. + * @p minMatch The number of bytes of the source to hash for the key. + */ +void ZS_FastTable16_init( + ZS_FastTable16* table, + void* memory, + uint32_t tableLog, + uint32_t minMatch); + +/// Get the value at ptr. Replace the value with pos. +/// Templated by minMatch. +ZL_FORCE_INLINE uint32_t ZS_FastTable16_getAndUpdateT( + ZS_FastTable16* table, + uint8_t const* ptr, + uint16_t pos, + uint32_t const kMinMatch) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + uint32_t const match = table->table[hash]; + table->table[hash] = pos; + return match; +} + +/// Get the value at ptr. Replace the value with pos. +uint32_t ZS_FastTable16_getAndUpdate( + ZS_FastTable16* table, + uint8_t const* ptr, + uint16_t pos); + +/// Put pos at ptr. +ZL_FORCE_INLINE void ZS_FastTable16_putT( + ZS_FastTable16* table, + uint8_t const* ptr, + uint16_t pos, + uint32_t kMinMatch) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + table->table[hash] = pos; +} + +/// Put pos at ptr. +/// Templated by minMatch. +void ZS_FastTable16_put( + ZS_FastTable16* table, + uint8_t const* ptr, + uint16_t pos); + +/// Get the value at ptr. +/// Templated by minMatch. +ZL_FORCE_INLINE uint32_t ZS_FastTable16_getT( + ZS_FastTable16* table, + uint8_t const* ptr, + uint32_t kMinMatch) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + return table->table[hash]; +} + +/// Get the value at ptr. +uint32_t ZS_FastTable16_get(ZS_FastTable16* table, uint8_t const* ptr); + +ZL_END_C_DECLS + +#endif // ZSTRONG_COMPRESS_MATCH_FINDER_FAST_TABLE16_H diff --git a/src/openzl/codecs/common/fast_tag_table.c b/src/openzl/codecs/common/fast_tag_table.c new file mode 100644 index 000000000..e4b6e5309 --- /dev/null +++ b/src/openzl/codecs/common/fast_tag_table.c @@ -0,0 +1,63 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/common/fast_tag_table.h" +#include "openzl/shared/portability.h" + +#include + +size_t ZS_FastTagTable_tableSize(size_t tableLog) +{ + return ((size_t)1 << tableLog) * sizeof(((ZS_FastTagTable*)NULL)->table[0]); +} + +// We are forcing the compiler to not inline this function, so that it won't +// optimize the malloc + memset into a calloc. +ZL_FORCE_NOINLINE void ZS_FastTagTable_clear( + ZS_FastTagTable* table, + uint32_t tableLog, + uint32_t minMatch) +{ + size_t const tableSize = ZS_FastTagTable_tableSize(tableLog); + memset(table->table, 0, tableSize); + table->tableLog = tableLog; + table->minMatch = minMatch; +} + +void ZS_FastTagTable_init( + ZS_FastTagTable* table, + void* memory, + uint32_t tableLog, + uint32_t minMatch) +{ + // malloc + memset is faster than calloc because we have a random access + // pattern. If we don't memset the table, the pages will be filled into the + // page table one at a time, whenever we first write to that page. That is + // a lot less efficient than linearly loading the entire table into the page + // table, as we memset it. + ZL_ASSERT_NULL(table->table); + table->table = memory; + ZS_FastTagTable_clear(table, tableLog, minMatch); +} + +ZS_FastTagTable_Entry ZS_FastTagTable_getAndUpdate( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos) +{ + return ZS_FastTagTable_getAndUpdateT(table, ptr, pos, table->minMatch); +} + +void ZS_FastTagTable_put( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos) +{ + ZS_FastTagTable_putT(table, ptr, pos, table->minMatch); +} + +ZS_FastTagTable_Entry ZS_FastTagTable_get( + ZS_FastTagTable* table, + uint8_t const* ptr) +{ + return ZS_FastTagTable_getT(table, ptr, table->minMatch); +} diff --git a/src/openzl/codecs/common/fast_tag_table.h b/src/openzl/codecs/common/fast_tag_table.h new file mode 100644 index 000000000..1bc590d37 --- /dev/null +++ b/src/openzl/codecs/common/fast_tag_table.h @@ -0,0 +1,137 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_COMPRESS_MATCH_FINDER_FAST_TAG_TABLE_H +#define ZSTRONG_COMPRESS_MATCH_FINDER_FAST_TAG_TABLE_H + +#include "openzl/common/assertion.h" +#include "openzl/shared/hash.h" +#include "openzl/shared/portability.h" + +ZL_BEGIN_C_DECLS + +#define ZS_FastTagTable_kTagSize 3 + +typedef struct { + uint32_t data[ZS_FastTagTable_kTagSize]; + uint32_t pos; +} ZS_FastTagTable_Entry; + +#define ZS_FastTagTable_kMaxMatchLen \ + (sizeof(uint32_t) * ZS_FastTagTable_kTagSize) + +/** + * Fast hash table without any collision resolution. + * Table is sized to 2^tableLog uint32_t. + * Hash looks at the first minMatch bytes of the ptr. + */ +typedef struct { + ZS_FastTagTable_Entry* table; + uint32_t tableLog; + uint32_t minMatch; +} ZS_FastTagTable; + +/** + * @returns The table size in bytes for a table log. + */ +size_t ZS_FastTagTable_tableSize(size_t tableLog); + +/** + * Initializes the hash table. + * + * @p memory A pointer of `ZS_FastTagTable_tableSize(tableLog)` bytes that is at + * least 4-byte aligned. + * @p tableLog The log2 of the numer of entries in the table. + * @p minMatch The number of bytes of the source to hash for the key. + */ +void ZS_FastTagTable_init( + ZS_FastTagTable* table, + void* memory, + uint32_t tableLog, + uint32_t minMatch); + +ZL_FORCE_INLINE ZS_FastTagTable_Entry +ZS_FastTagTable_entry(uint8_t const* ptr, uint32_t pos) +{ + ZS_FastTagTable_Entry entry; + if (0 && ZS_FastTagTable_kTagSize == 3) { + memcpy(&entry, ptr, sizeof(entry)); + } else { + memcpy(&entry, ptr, ZS_FastTagTable_kMaxMatchLen); + } + entry.pos = pos; + return entry; +} + +/// Get the value at ptr. Replace the value with pos. +/// Templated by minMatch. +ZL_FORCE_INLINE ZS_FastTagTable_Entry ZS_FastTagTable_getAndUpdateT( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos, + uint32_t const kMinMatch) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + ZS_FastTagTable_Entry const match = table->table[hash]; + table->table[hash] = ZS_FastTagTable_entry(ptr, pos); + return match; +} + +/// Get the value at ptr. Replace the value with pos. +ZS_FastTagTable_Entry ZS_FastTagTable_getAndUpdate( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos); + +/// Put pos at ptr. +ZL_FORCE_INLINE void ZS_FastTagTable_putT( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos, + uint32_t kMinMatch) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + table->table[hash] = ZS_FastTagTable_entry(ptr, pos); +} + +/// Put pos at ptr. +/// Templated by minMatch. +void ZS_FastTagTable_put( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos); + +ZL_FORCE_INLINE void ZS_FastTagTable_conditionalPutT( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t pos, + uint32_t kMinMatch, + bool condition) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + table->table[hash] = + condition ? ZS_FastTagTable_entry(ptr, pos) : table->table[hash]; +} + +/// Get the value at ptr. +/// Templated by minMatch. +ZL_FORCE_INLINE ZS_FastTagTable_Entry ZS_FastTagTable_getT( + ZS_FastTagTable* table, + uint8_t const* ptr, + uint32_t kMinMatch) +{ + ZL_ASSERT_EQ(kMinMatch, table->minMatch); + size_t const hash = ZL_hashPtr(ptr, table->tableLog, kMinMatch); + return table->table[hash]; +} + +/// Get the value at ptr. +ZS_FastTagTable_Entry ZS_FastTagTable_get( + ZS_FastTagTable* table, + uint8_t const* ptr); + +ZL_END_C_DECLS + +#endif // ZSTRONG_COMPRESS_MATCH_FINDER_FAST_TAG_TABLE_H diff --git a/src/openzl/codecs/common/graph_constant.h b/src/openzl/codecs/common/graph_constant.h index 2754b1a62..583e9aba5 100644 --- a/src/openzl/codecs/common/graph_constant.h +++ b/src/openzl/codecs/common/graph_constant.h @@ -10,16 +10,18 @@ #include "openzl/zl_data.h" -#define SERIALIZED_CONSTANT_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define SERIALIZED_CONSTANT_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define FIXED_SIZE_CONSTANT_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ +#define FIXED_SIZE_CONSTANT_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ } #endif diff --git a/src/openzl/codecs/common/graph_pipe.h b/src/openzl/codecs/common/graph_pipe.h index dfcfaeb2f..eca1f6bbf 100644 --- a/src/openzl/codecs/common/graph_pipe.h +++ b/src/openzl/codecs/common/graph_pipe.h @@ -8,16 +8,18 @@ #include "openzl/zl_data.h" // st_* -#define PIPE_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define PIPE_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define NUMPIPE_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define NUMPIPE_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/common/graph_prefix.h b/src/openzl/codecs/common/graph_prefix.h index 42c872681..3c56df6e1 100644 --- a/src/openzl/codecs/common/graph_prefix.h +++ b/src/openzl/codecs/common/graph_prefix.h @@ -8,10 +8,11 @@ /// Graph definition for the prefix transform /// used by both the encoder and decoder side -#define PREFIX_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_string, ZL_Type_numeric), \ +#define PREFIX_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_string, ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/common/graph_tokenize.h b/src/openzl/codecs/common/graph_tokenize.h index 6fd3a724c..90edc7ce9 100644 --- a/src/openzl/codecs/common/graph_tokenize.h +++ b/src/openzl/codecs/common/graph_tokenize.h @@ -7,10 +7,11 @@ /// Graph definition for the tokenize transforms /// used by both the encoder and decoder side. -#define TOKENIZE_GRAPH(id, inType) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(inType), \ - .soTypes = ZL_STREAMTYPELIST(inType, ZL_Type_numeric), \ +#define TOKENIZE_GRAPH(id, inType) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(inType), \ + .soTypes = ZL_STREAMTYPELIST(inType, ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/common/graph_vo.h b/src/openzl/codecs/common/graph_vo.h index 72839871c..7317b6ba5 100644 --- a/src/openzl/codecs/common/graph_vo.h +++ b/src/openzl/codecs/common/graph_vo.h @@ -8,22 +8,31 @@ /* contains graph definition for common vo transforms, * used by both encode and decoder sides */ -#define GRAPH_VO_SERIAL(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = NULL, 0, ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define GRAPH_VO_SERIAL(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = NULL, \ + 0, \ + ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define GRAPH_VO_STRUCT(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = NULL, 0, ZL_STREAMTYPELIST(ZL_Type_struct), \ +#define GRAPH_VO_STRUCT(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = NULL, \ + 0, \ + ZL_STREAMTYPELIST(ZL_Type_struct), \ } -#define GRAPH_VO_NUM(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = NULL, 0, ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define GRAPH_VO_NUM(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = NULL, \ + 0, \ + ZL_STREAMTYPELIST(ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/concat/decode_concat_binding.c b/src/openzl/codecs/concat/decode_concat_binding.c index 346013bc9..4ad7105a1 100644 --- a/src/openzl/codecs/concat/decode_concat_binding.c +++ b/src/openzl/codecs/concat/decode_concat_binding.c @@ -15,14 +15,15 @@ ZL_Report DI_concat( const ZL_Input* variableSrcs[], size_t nbVariableSrcs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_EQ(nbVariableSrcs, 0); (void)variableSrcs; ZL_ASSERT_EQ(nbCompulsorySrcs, 2); ZL_ASSERT_NN(compulsorySrcs); const ZL_Input* const sizes = compulsorySrcs[0]; ZL_ASSERT_NN(sizes); - ZL_RET_R_IF_NE(corruption, ZL_Input_type(sizes), ZL_Type_numeric); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(sizes), sizeof(uint32_t)); + ZL_ERR_IF_NE(ZL_Input_type(sizes), ZL_Type_numeric, corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(sizes), sizeof(uint32_t), corruption); const ZL_Input* const concatenated = compulsorySrcs[1]; ZL_ASSERT_NN(concatenated); @@ -30,45 +31,45 @@ ZL_Report DI_concat( size_t const eltWidth = ZL_Input_eltWidth(concatenated); size_t const nbElts = ZL_Input_numElts(concatenated); const size_t nbRegens = ZL_Input_numElts(sizes); - ZL_RET_R_IF_EQ(corruption, nbRegens, 0); + ZL_ERR_IF_EQ(nbRegens, 0, corruption); const uint32_t* const regenSizes = ZL_Input_ptr(sizes); size_t rPos = 0; - ZL_RET_R_IF_LT(corruption, nbRegens, dictx->nbRegens); + ZL_ERR_IF_LT(nbRegens, dictx->nbRegens, corruption); if (type == ZL_Type_string) { const uint32_t* strLens = ZL_Input_stringLens(concatenated); size_t bytePos = 0; for (size_t n = 0; n < nbRegens; n++) { size_t const rSize = regenSizes[n]; - ZL_RET_R_IF_GT(corruption, rPos + rSize, nbElts); + ZL_ERR_IF_GT(rPos + rSize, nbElts, corruption); size_t byteSize = 0; for (size_t i = rPos; i < rPos + rSize; i++) { byteSize += strLens[i]; } ZL_Output* out = DI_outStream_asReference( dictx, (int)n, concatenated, bytePos, 1, byteSize); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint32_t* regenStrLens = ZL_Output_reserveStringLens(out, rSize); /* TODO(T220688634): This can be avoided if we have API to reference * string lengths*/ ZL_memcpy(regenStrLens, strLens + rPos, rSize * sizeof(uint32_t)); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, rSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, rSize)); rPos += rSize; bytePos += byteSize; } - ZL_RET_R_IF_NE(corruption, rPos, nbElts); + ZL_ERR_IF_NE(rPos, nbElts, corruption); } else { for (size_t n = 0; n < nbRegens; n++) { size_t const rSize = regenSizes[n]; - ZL_RET_R_IF_GT( - corruption, rPos + rSize * eltWidth, nbElts * eltWidth); + ZL_ERR_IF_GT( + rPos + rSize * eltWidth, nbElts * eltWidth, corruption); ZL_Output* out = DI_outStream_asReference( dictx, (int)n, concatenated, rPos, eltWidth, rSize); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); rPos += rSize * eltWidth; } - ZL_RET_R_IF_NE(corruption, rPos, nbElts * eltWidth); + ZL_ERR_IF_NE(rPos, nbElts * eltWidth, corruption); } return ZL_returnSuccess(); diff --git a/src/openzl/codecs/concat/decode_concat_binding.h b/src/openzl/codecs/concat/decode_concat_binding.h index c8a71ee6a..7ab869c28 100644 --- a/src/openzl/codecs/concat/decode_concat_binding.h +++ b/src/openzl/codecs/concat/decode_concat_binding.h @@ -16,25 +16,17 @@ ZL_Report DI_concat( const ZL_Input* variableSrcs[], size_t nbVariableSrcs); -#define DI_CONCAT_SERIAL(id) \ - { \ - .transform_f = DI_concat, .name = "concat_serial_decoder" \ - } - -#define DI_CONCAT_NUM(id) \ - { \ - .transform_f = DI_concat, .name = "concat_num_decoder" \ - } - -#define DI_CONCAT_STRUCT(id) \ - { \ - .transform_f = DI_concat, .name = "concat_struct_decoder" \ - } - -#define DI_CONCAT_STRING(id) \ - { \ - .transform_f = DI_concat, .name = "concat_string_decoder" \ - } +#define DI_CONCAT_SERIAL(id) \ + { .transform_f = DI_concat, .name = "concat_serial_decoder" } + +#define DI_CONCAT_NUM(id) \ + { .transform_f = DI_concat, .name = "concat_num_decoder" } + +#define DI_CONCAT_STRUCT(id) \ + { .transform_f = DI_concat, .name = "concat_struct_decoder" } + +#define DI_CONCAT_STRING(id) \ + { .transform_f = DI_concat, .name = "concat_string_decoder" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/concat/encode_concat_binding.c b/src/openzl/codecs/concat/encode_concat_binding.c index 465868b41..e19c7c24c 100644 --- a/src/openzl/codecs/concat/encode_concat_binding.c +++ b/src/openzl/codecs/concat/encode_concat_binding.c @@ -9,6 +9,7 @@ ZL_Report EI_concat(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_GE(nbIns, 1); ZL_ASSERT_NN(ins); size_t nbElts = 0; @@ -16,42 +17,41 @@ ZL_Report EI_concat(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t eltWidth = ZL_Input_eltWidth(ins[0]); for (size_t n = 0; n < nbIns; n++) { ZL_ASSERT_NN(ins[n]); - ZL_RET_R_IF_NE( - node_unexpected_input_type, + ZL_ERR_IF_NE( ZL_Input_type(ins[n]), type, - "Concat types must be homogenous"); - ZL_RET_R_IF_NE( node_unexpected_input_type, + "Concat types must be homogenous"); + ZL_ERR_IF_NE( ZL_Input_eltWidth(ins[n]), eltWidth, + node_unexpected_input_type, "Concat widths must be homogenous"); - ZL_RET_R_IF_GE( - node_invalid_input, ZL_Input_numElts(ins[n]), UINT32_MAX); - ZL_RET_R_IF( - node_invalid_input, - ZL_overflowAddST(nbElts, ZL_Input_numElts(ins[n]), &nbElts)); + ZL_ERR_IF_GE(ZL_Input_numElts(ins[n]), UINT32_MAX, node_invalid_input); + ZL_ERR_IF( + ZL_overflowAddST(nbElts, ZL_Input_numElts(ins[n]), &nbElts), + node_invalid_input); } size_t eltsCapacity = nbElts; if (type == ZL_Type_string) { eltWidth = 1; eltsCapacity = 0; for (size_t n = 0; n < nbIns; n++) { - ZL_RET_R_IF( - node_invalid_input, + ZL_ERR_IF( ZL_overflowAddST( eltsCapacity, ZL_Input_contentSize(ins[n]), - &eltsCapacity)); + &eltsCapacity), + node_invalid_input); } } ZL_Output* const sizes = ZL_Encoder_createTypedStream(eictx, 0, nbIns, 4); - ZL_RET_R_IF_NULL(allocation, sizes); + ZL_ERR_IF_NULL(sizes, allocation); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 1, eltsCapacity, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint8_t* outPtr = (uint8_t*)ZL_Output_ptr(out); ZL_ASSERT_NN(outPtr); @@ -90,7 +90,7 @@ ZL_Report EI_concat(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_EQ(outPtr, outEnd); (void)outEnd; - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); - ZL_RET_R_IF_ERR(ZL_Output_commit(sizes, nbIns)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(sizes, nbIns)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/concat/encode_concat_binding.h b/src/openzl/codecs/concat/encode_concat_binding.h index 4488d9f31..83beb121a 100644 --- a/src/openzl/codecs/concat/encode_concat_binding.h +++ b/src/openzl/codecs/concat/encode_concat_binding.h @@ -11,29 +11,25 @@ ZL_BEGIN_C_DECLS ZL_Report EI_concat(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_CONCAT_SERIAL(id) \ - { \ - .gd = CONCAT_SERIAL_GRAPH(id), .transform_f = EI_concat, \ - .name = "!zl.concat_serial" \ - } - -#define EI_CONCAT_NUM(id) \ - { \ - .gd = CONCAT_NUM_GRAPH(id), .transform_f = EI_concat, \ - .name = "!zl.concat_num" \ - } - -#define EI_CONCAT_STRUCT(id) \ - { \ - .gd = CONCAT_STRUCT_GRAPH(id), .transform_f = EI_concat, \ - .name = "!zl.concat_struct" \ - } - -#define EI_CONCAT_STRING(id) \ - { \ - .gd = CONCAT_STRING_GRAPH(id), .transform_f = EI_concat, \ - .name = "!zl.concat_string" \ - } +#define EI_CONCAT_SERIAL(id) \ + { .gd = CONCAT_SERIAL_GRAPH(id), \ + .transform_f = EI_concat, \ + .name = "!zl.concat_serial" } + +#define EI_CONCAT_NUM(id) \ + { .gd = CONCAT_NUM_GRAPH(id), \ + .transform_f = EI_concat, \ + .name = "!zl.concat_num" } + +#define EI_CONCAT_STRUCT(id) \ + { .gd = CONCAT_STRUCT_GRAPH(id), \ + .transform_f = EI_concat, \ + .name = "!zl.concat_struct" } + +#define EI_CONCAT_STRING(id) \ + { .gd = CONCAT_STRING_GRAPH(id), \ + .transform_f = EI_concat, \ + .name = "!zl.concat_string" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/concat/graph_concat.h b/src/openzl/codecs/concat/graph_concat.h index d9b6158bb..c05b72b9e 100644 --- a/src/openzl/codecs/concat/graph_concat.h +++ b/src/openzl/codecs/concat/graph_concat.h @@ -7,28 +7,32 @@ #define CONCAT_SERIAL_GRAPH(id) \ { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ .lastInputIsVariable = 1, \ .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_serial), \ } #define CONCAT_NUM_GRAPH(id) \ { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ .lastInputIsVariable = 1, \ .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ } #define CONCAT_STRUCT_GRAPH(id) \ { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ .lastInputIsVariable = 1, \ .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_struct), \ } #define CONCAT_STRING_GRAPH(id) \ { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ .lastInputIsVariable = 1, \ .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_string), \ } diff --git a/src/openzl/codecs/concat/spec.md b/src/openzl/codecs/concat/spec.md index d71283eed..e16e6b2cb 100644 --- a/src/openzl/codecs/concat/spec.md +++ b/src/openzl/codecs/concat/spec.md @@ -6,7 +6,7 @@ The decompressor for the 'concat' codecs take 2 inputs: - an input of type $T$ (either serial, numeric, struct, or string) and element width $n$ for numeric and struct types, which contains all segments concatenated in order ### Decoding -The first input is expected to host 32-bit unsigned values. It must contain as many numeric values as the number of segments to regenerate, and therefore have at least one value. The sum of all values in the sizes input must be strictly equal to the number of elements in the second input. Any deviation from these conditions is considered a corruption. The ouputs are generated by splitting the second input into segments of size indicated by the sizes input. Denoting the $i_{th}$ element of the first input $S_i$, the $k_{th}$ output will have size equal to $S_k$, containing the elements of the second input from the index $\sum_{i = 1}^{k-1} S_i$. +The first input is expected to host 32-bit unsigned values. It must contain as many numeric values as the number of segments to regenerate, and therefore have at least one value. The sum of all values in the sizes input must be strictly equal to the number of elements in the second input. Any deviation from these conditions is considered a corruption. The outputs are generated by splitting the second input into segments of size indicated by the sizes input. Denoting the $i_{th}$ element of the first input $S_i$, the $k_{th}$ output will have size equal to $S_k$, containing the elements of the second input from the index $\sum_{i = 1}^{k-1} S_i$. ### Outputs The outputs of the decompressor are $N$ outputs, equal to the length of the first input, that has type $T$ and width $n$ diff --git a/src/openzl/codecs/constant/decode_constant_binding.c b/src/openzl/codecs/constant/decode_constant_binding.c index dd315ed81..97ac881ac 100644 --- a/src/openzl/codecs/constant/decode_constant_binding.c +++ b/src/openzl/codecs/constant/decode_constant_binding.c @@ -9,6 +9,7 @@ ZL_Report DI_constant_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -22,25 +23,25 @@ ZL_Report DI_constant_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t const eltWidth = ZL_Input_eltWidth(in); ZL_ASSERT_NN(src); ZL_ASSERT_GE(eltWidth, 1); - ZL_RET_R_IF_NE(corruption, nbElts, 1); + ZL_ERR_IF_NE(nbElts, 1, corruption); ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); uint8_t const* hdrStart = (uint8_t const*)header.start; uint8_t const* hdrEnd = hdrStart + header.size; - ZL_TRY_LET_T(uint64_t, dstNbElts, ZL_varintDecode(&hdrStart, hdrEnd)); - ZL_RET_R_IF_NE(corruption, hdrStart, hdrEnd); - ZL_RET_R_IF_LT(corruption, dstNbElts, 1); + ZL_TRY_LET(uint64_t, dstNbElts, ZL_varintDecode(&hdrStart, hdrEnd)); + ZL_ERR_IF_NE(hdrStart, hdrEnd, corruption); + ZL_ERR_IF_LT(dstNbElts, 1, corruption); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstNbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint8_t* const outPtr = (uint8_t*)ZL_Output_ptr(out); ZL_ASSERT_NN(outPtr); size_t const bufferSize = (eltWidth <= 32) ? 32 : eltWidth; void* const eltBuffer = ZL_Decoder_getScratchSpace(dictx, bufferSize); - ZL_RET_R_IF_NULL(allocation, eltBuffer); + ZL_ERR_IF_NULL(eltBuffer, allocation); ZS_decodeConstant(outPtr, dstNbElts, src, eltWidth, eltBuffer); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstNbElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/constant/decode_constant_binding.h b/src/openzl/codecs/constant/decode_constant_binding.h index 3128ba058..39887da79 100644 --- a/src/openzl/codecs/constant/decode_constant_binding.h +++ b/src/openzl/codecs/constant/decode_constant_binding.h @@ -11,14 +11,10 @@ ZL_BEGIN_C_DECLS ZL_Report DI_constant_typed(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_CONSTANT_SERIALIZED(id) \ - { \ - .transform_f = DI_constant_typed, .name = "constant" \ - } -#define DI_CONSTANT_FIXED(id) \ - { \ - .transform_f = DI_constant_typed, .name = "constant" \ - } +#define DI_CONSTANT_SERIALIZED(id) \ + { .transform_f = DI_constant_typed, .name = "constant" } +#define DI_CONSTANT_FIXED(id) \ + { .transform_f = DI_constant_typed, .name = "constant" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/constant/encode_constant_binding.c b/src/openzl/codecs/constant/encode_constant_binding.c index b9c4e0249..c10d0c7f5 100644 --- a/src/openzl/codecs/constant/encode_constant_binding.c +++ b/src/openzl/codecs/constant/encode_constant_binding.c @@ -12,6 +12,7 @@ ZL_Report EI_constant_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -24,13 +25,13 @@ EI_constant_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) const uint8_t* const src = ZL_Input_ptr(in); size_t const nbElts = ZL_Input_numElts(in); size_t const eltWidth = ZL_Input_eltWidth(in); - ZL_RET_R_IF_LT(srcSize_tooSmall, nbElts, 1); + ZL_ERR_IF_LT(nbElts, 1, srcSize_tooSmall); ZL_ASSERT_GE(eltWidth, 1); - ZL_RET_R_IF_EQ( - node_invalid_input, ZS_isConstantStream(src, nbElts, eltWidth), 0); + ZL_ERR_IF_EQ( + ZS_isConstantStream(src, nbElts, eltWidth), 0, node_invalid_input); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, 1, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint8_t* const outPtr = (uint8_t*)ZL_Output_ptr(out); ZL_ASSERT_NN(outPtr); @@ -39,6 +40,6 @@ EI_constant_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Encoder_sendCodecHeader(eictx, header, varintSize); ZS_encodeConstant(outPtr, src, eltWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, 1)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, 1)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/constant/encode_constant_binding.h b/src/openzl/codecs/constant/encode_constant_binding.h index 069a98d38..53f5c38b1 100644 --- a/src/openzl/codecs/constant/encode_constant_binding.h +++ b/src/openzl/codecs/constant/encode_constant_binding.h @@ -14,17 +14,15 @@ ZL_BEGIN_C_DECLS ZL_Report EI_constant_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_CONSTANT_SERIALIZED(id) \ - { \ - .gd = SERIALIZED_CONSTANT_GRAPH(id), .transform_f = EI_constant_typed, \ - .name = "!zl.private.constant_serial" \ - } - -#define EI_CONSTANT_FIXED(id) \ - { \ - .gd = FIXED_SIZE_CONSTANT_GRAPH(id), .transform_f = EI_constant_typed, \ - .name = "!zl.private.constant_fixed" \ - } +#define EI_CONSTANT_SERIALIZED(id) \ + { .gd = SERIALIZED_CONSTANT_GRAPH(id), \ + .transform_f = EI_constant_typed, \ + .name = "!zl.private.constant_serial" } + +#define EI_CONSTANT_FIXED(id) \ + { .gd = FIXED_SIZE_CONSTANT_GRAPH(id), \ + .transform_f = EI_constant_typed, \ + .name = "!zl.private.constant_fixed" } ZL_INLINE bool ZL_Graph_isConstantSupported(const ZL_Graph* graph) { diff --git a/src/openzl/codecs/conversion/decode_conversion_binding.c b/src/openzl/codecs/conversion/decode_conversion_binding.c index ea52bba4b..f0c998531 100644 --- a/src/openzl/codecs/conversion/decode_conversion_binding.c +++ b/src/openzl/codecs/conversion/decode_conversion_binding.c @@ -71,6 +71,7 @@ ZL_Report DI_revert_serial_to_num_be(ZL_Decoder* di, const ZL_Input* ins[]) // Effectively, serial => intX ZL_Report DI_revert_num_to_serial_le(ZL_Decoder* di, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(di); ZL_ASSERT_NN(di); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -82,17 +83,15 @@ ZL_Report DI_revert_num_to_serial_le(ZL_Decoder* di, const ZL_Input* ins[]) // engine ZL_RBuffer const header = ZL_Decoder_getCodecHeader(di); - ZL_RET_R_IF_NE(header_unknown, header.size, 1, "Invalid transform header!"); + ZL_ERR_IF_NE(header.size, 1, header_unknown, "Invalid transform header!"); + size_t const intLog = ((const uint8_t*)header.start)[0]; + ZL_ERR_IF_GT(intLog, 3, header_unknown, "Invalid intLog"); size_t const intSize = (size_t)1 << (((const uint8_t*)header.start)[0]); - ZL_RET_R_IF( - header_unknown, - !(intSize == 1 || intSize == 2 || intSize == 4 || intSize == 8), - "header contains bad integer width"); size_t const nbBytes = ZL_Input_contentSize(in); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( nbBytes % intSize, 0, + corruption, "stream size must be a multiple of the integer size"); size_t const nbInts = nbBytes / intSize; @@ -104,14 +103,14 @@ ZL_Report DI_revert_num_to_serial_le(ZL_Decoder* di, const ZL_Input* ins[]) if (MEM_isAlignedForNumericWidth(ZL_Input_ptr(in), intSize)) { ZL_Output* const out = DI_reference1OutStream(di, in, 0, intSize, nbInts); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); } else { // Not aligned : create new stream, copy into it ZL_Output* const out = ZL_Decoder_create1OutStream(di, nbInts, intSize); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZL_ASSERT(MEM_isAlignedForNumericWidth(ZL_Output_ptr(out), intSize)); size_t const byteSize = ZL_Input_contentSize(in); - ZL_RET_R_IF_ERR(STREAM_copyBytes( + ZL_ERR_IF_ERR(STREAM_copyBytes( ZL_codemodOutputAsData(out), ZL_codemodInputAsData(in), byteSize)); @@ -123,13 +122,14 @@ ZL_Report DI_revert_num_to_serial_le(ZL_Decoder* di, const ZL_Input* ins[]) // Effectively, token(anylength) => serial ZL_Report DI_revert_serial_to_struct(ZL_Decoder* di, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(di); ZL_ASSERT_NN(di); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; ZL_Output* const out = DI_reference1OutStream(di, in, 0, 1, ZL_Input_contentSize(in)); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); return ZL_returnValue(1); } @@ -138,6 +138,7 @@ ZL_Report DI_revert_serial_to_struct(ZL_Decoder* di, const ZL_Input* ins[]) // Effectively, serial => token ZL_Report DI_revert_struct_to_serial(ZL_Decoder* di, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(di); ZL_ASSERT_NN(di); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -152,24 +153,24 @@ ZL_Report DI_revert_struct_to_serial(ZL_Decoder* di, const ZL_Input* ins[]) const uint8_t* ptr = header.start; ZL_RESULT_OF(uint64_t) const r = ZL_varintDecode(&ptr, ptr + header.size); - ZL_RET_R_IF(srcSize_tooSmall, ZL_RES_isError(r)); + ZL_ERR_IF(ZL_RES_isError(r), srcSize_tooSmall); uint64_t const eltSize = ZL_RES_value(r); - ZL_RET_R_IF_EQ(header_unknown, eltSize, 0, "eltSize must not be 0"); - ZL_RET_R_IF_NE( - header_unknown, + ZL_ERR_IF_EQ(eltSize, 0, header_unknown, "eltSize must not be 0"); + ZL_ERR_IF_NE( MEM_ptrDistance(header.start, ptr), header.size, + header_unknown, "Header size wrong"); size_t const nbBytes = ZL_Input_contentSize(in); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( nbBytes % eltSize, 0, + corruption, "stream size must be a multiple of the token size"); size_t const nbTokens = nbBytes / eltSize; ZL_Output* const out = DI_reference1OutStream(di, in, 0, eltSize, nbTokens); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); return ZL_returnValue(1); } @@ -189,6 +190,7 @@ ZL_Report DI_revert_struct_to_num_be(ZL_Decoder* di, const ZL_Input* ins[]) // Effectively, token => int ZL_Report DI_revert_num_to_struct_le(ZL_Decoder* di, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(di); // TODO (@Cyan): support for big-endian systems, // requires a swap operation ZL_REQUIRE( @@ -203,22 +205,22 @@ ZL_Report DI_revert_num_to_struct_le(ZL_Decoder* di, const ZL_Input* ins[]) // engine size_t const eltWidth = ZL_Input_eltWidth(in); if (!(eltWidth == 1 || eltWidth == 2 || eltWidth == 4 || eltWidth == 8)) { - ZL_RET_R_ERR(streamParameter_invalid); + ZL_ERR(streamParameter_invalid); } size_t const nbElts = ZL_Input_numElts(in); if (MEM_isAlignedForNumericWidth(ZL_Input_ptr(in), eltWidth)) { ZL_Output* const out = DI_reference1OutStream(di, in, 0, eltWidth, nbElts); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); } else { // Not aligned : create new stream, copy into it ZL_Output* const out = ZL_Decoder_create1OutStream(di, nbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZL_ASSERT(MEM_isAlignedForNumericWidth(ZL_Output_ptr(out), eltWidth)); size_t const byteSize = ZL_Input_contentSize(in); - ZL_RET_R_IF_ERR(STREAM_copyBytes( + ZL_ERR_IF_ERR(STREAM_copyBytes( ZL_codemodOutputAsData(out), ZL_codemodInputAsData(in), byteSize)); @@ -229,6 +231,7 @@ ZL_Report DI_revert_num_to_struct_le(ZL_Decoder* di, const ZL_Input* ins[]) ZL_Report DI_revert_VSF_separation(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const concatFields = ins[0]; ZL_ASSERT_NN(concatFields); @@ -240,14 +243,14 @@ ZL_Report DI_revert_VSF_separation(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_Output* const vsfRegen = DI_reference1OutStream(dictx, concatFields, 0, 1, contentSize); - ZL_RET_R_IF_NULL(allocation, vsfRegen); + ZL_ERR_IF_NULL(vsfRegen, allocation); const size_t nbFields = ZL_Input_numElts(fieldSizes); // Note : allocation to be changed for local workspace when available uint32_t* const arr32 = ZL_Output_reserveStringLens(vsfRegen, nbFields); - ZL_RET_R_IF_NULL(allocation, arr32); + ZL_ERR_IF_NULL(arr32, allocation); - ZL_RET_R_IF_ERR(NUMOP_write32_fromNumerics( + ZL_ERR_IF_ERR(NUMOP_write32_fromNumerics( arr32, nbFields, ZL_Input_ptr(fieldSizes), @@ -258,13 +261,13 @@ ZL_Report DI_revert_VSF_separation(ZL_Decoder* dictx, const ZL_Input* ins[]) "Calculating totalSize=%llu, as sum of arr32 of %zu elts", totalSize, nbFields); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( totalSize, (uint64_t)contentSize, + corruption, "Incorrect sum of field sizes"); - ZL_RET_R_IF_ERR(ZL_Output_commit(vsfRegen, nbFields)); + ZL_ERR_IF_ERR(ZL_Output_commit(vsfRegen, nbFields)); ZL_DLOG(SEQ, "Produced Stream: Type:%u, nbStrings:%u, eltWidth=%u", ZL_Output_type(vsfRegen), @@ -278,6 +281,7 @@ ZL_Report DI_extract_concatenatedFields( ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const inVSF = ins[0]; ZL_ASSERT_NN(inVSF); @@ -285,6 +289,6 @@ ZL_Report DI_extract_concatenatedFields( ZL_Output* const serialExtract = DI_reference1OutStream( dictx, inVSF, 0, 1, ZL_Input_contentSize(inVSF)); - ZL_RET_R_IF_NULL(allocation, serialExtract); + ZL_ERR_IF_NULL(serialExtract, allocation); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/conversion/decode_conversion_binding.h b/src/openzl/codecs/conversion/decode_conversion_binding.h index 786ce8dfe..ed4500c6e 100644 --- a/src/openzl/codecs/conversion/decode_conversion_binding.h +++ b/src/openzl/codecs/conversion/decode_conversion_binding.h @@ -22,71 +22,51 @@ ZL_Report DI_revert_serial_to_num_le(ZL_Decoder* di, const ZL_Input* ins[]); ZL_Report DI_revert_serial_to_num_be(ZL_Decoder* di, const ZL_Input* ins[]); ZL_Report DI_revert_num_to_serial_le(ZL_Decoder* di, const ZL_Input* ins[]); -#define DI_REVERT_NUM_TO_STRUCT_LE(id) \ - { \ - .transform_f = DI_revert_num_to_struct_le, \ - .name = "zl.convert_num_to_struct_le" \ - } - -#define DI_REVERT_STRUCT_TO_NUM_LE(id) \ - { \ - .transform_f = DI_revert_struct_to_num_le, \ - .name = "zl.convert_struct_to_num_le" \ - } - -#define DI_REVERT_STRUCT_TO_NUM_BE(id) \ - { \ - .transform_f = DI_revert_struct_to_num_be, \ - .name = "zl.convert_struct_to_num_be" \ - } - -#define DI_REVERT_SERIAL_TO_NUM_LE(id) \ - { \ - .transform_f = DI_revert_serial_to_num_le, \ - .name = "zl.convert_serial_to_num_le" \ - } - -#define DI_REVERT_SERIAL_TO_NUM_BE(id) \ - { \ - .transform_f = DI_revert_serial_to_num_be, \ - .name = "zl.convert_serial_to_num_be" \ - } - -#define DI_REVERT_NUM_TO_SERIAL_LE(id) \ - { \ - .transform_f = DI_revert_num_to_serial_le, \ - .name = "zl.convert_num_to_serial_le" \ - } - -#define DI_REVERT_SERIAL_TO_STRUCT(id) \ - { \ - .transform_f = DI_revert_serial_to_struct, \ - .name = "zl.convert_serial_to_struct" \ - } - -#define DI_REVERT_STRUCT_TO_SERIAL(id) \ - { \ - .transform_f = DI_revert_struct_to_serial, \ - .name = "zl.convert_struct_to_serial" \ - } +#define DI_REVERT_NUM_TO_STRUCT_LE(id) \ + { .transform_f = DI_revert_num_to_struct_le, \ + .name = "zl.convert_num_to_struct_le" } + +#define DI_REVERT_STRUCT_TO_NUM_LE(id) \ + { .transform_f = DI_revert_struct_to_num_le, \ + .name = "zl.convert_struct_to_num_le" } + +#define DI_REVERT_STRUCT_TO_NUM_BE(id) \ + { .transform_f = DI_revert_struct_to_num_be, \ + .name = "zl.convert_struct_to_num_be" } + +#define DI_REVERT_SERIAL_TO_NUM_LE(id) \ + { .transform_f = DI_revert_serial_to_num_le, \ + .name = "zl.convert_serial_to_num_le" } + +#define DI_REVERT_SERIAL_TO_NUM_BE(id) \ + { .transform_f = DI_revert_serial_to_num_be, \ + .name = "zl.convert_serial_to_num_be" } + +#define DI_REVERT_NUM_TO_SERIAL_LE(id) \ + { .transform_f = DI_revert_num_to_serial_le, \ + .name = "zl.convert_num_to_serial_le" } + +#define DI_REVERT_SERIAL_TO_STRUCT(id) \ + { .transform_f = DI_revert_serial_to_struct, \ + .name = "zl.convert_serial_to_struct" } + +#define DI_REVERT_STRUCT_TO_SERIAL(id) \ + { .transform_f = DI_revert_struct_to_serial, \ + .name = "zl.convert_struct_to_serial" } /* ===== Variable Size Fields - Conversion operations ===== */ ZL_Report DI_revert_VSF_separation(ZL_Decoder* di, const ZL_Input* ins[]); -#define DI_REVERT_VSF_SEPARATION(id) \ - { \ - .transform_f = DI_revert_VSF_separation, \ - .name = "separate String components" \ - } +#define DI_REVERT_VSF_SEPARATION(id) \ + { .transform_f = DI_revert_VSF_separation, \ + .name = "separate String components" } ZL_Report DI_extract_concatenatedFields(ZL_Decoder* di, const ZL_Input* ins[]); -#define DI_REVERT_SETFIELDSIZES(id) \ - { \ - .transform_f = DI_extract_concatenatedFields, \ - .name = "set String lengths" \ - } +#define DI_REVERT_SETFIELDSIZES(id) \ + { .transform_f = DI_extract_concatenatedFields, \ + .name = "set String lengths" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/conversion/encode_conversion_binding.c b/src/openzl/codecs/conversion/encode_conversion_binding.c index 584e9eaf8..6283f1d8d 100644 --- a/src/openzl/codecs/conversion/encode_conversion_binding.c +++ b/src/openzl/codecs/conversion/encode_conversion_binding.c @@ -4,7 +4,6 @@ #include #include "openzl/common/assertion.h" #include "openzl/common/logging.h" // ZL_DLOG -#include "openzl/common/stream.h" // STREAM_* #include "openzl/compress/enc_interface.h" // ENC_refTypedStream #include "openzl/shared/bits.h" // ZL_isLittleEndian() #include "openzl/shared/mem.h" // MEM_isAlignedForNumericWidth @@ -145,16 +144,17 @@ static ZL_Report EI_convert_serial_to_struct_generic( const ZL_Input* in, size_t tokenWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_NN(in); size_t const inByteSize = ZL_Input_contentSize(in); if (inByteSize % tokenWidth) { - ZL_RET_R_ERR(streamParameter_invalid); // Not a clean multiple + ZL_ERR(streamParameter_invalid); // Not a clean multiple } size_t const nbTokens = inByteSize / tokenWidth; - ZL_RET_R_IF_NULL( - allocation, - ENC_refTypedStream(eictx, 0, tokenWidth, nbTokens, in, 0)); + ZL_ERR_IF_NULL( + ENC_refTypedStream(eictx, 0, tokenWidth, nbTokens, in, 0), + allocation); return ZL_returnValue(1); } @@ -163,6 +163,7 @@ ZL_Report EI_convert_serial_to_struct( const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -170,9 +171,9 @@ ZL_Report EI_convert_serial_to_struct( ZL_IntParam const tokenSize = ZL_Encoder_getLocalIntParam(eictx, ZL_trlip_tokenSize); // Parameter **must** be set. - ZL_RET_R_IF_EQ( - nodeParameter_invalid, tokenSize.paramId, ZL_LP_INVALID_PARAMID); - ZL_RET_R_IF_LE(nodeParameter_invalidValue, tokenSize.paramValue, 0); + ZL_ERR_IF_EQ( + tokenSize.paramId, ZL_LP_INVALID_PARAMID, nodeParameter_invalid); + ZL_ERR_IF_LE(tokenSize.paramValue, 0, nodeParameter_invalidValue); return EI_convert_serial_to_struct_generic( eictx, in, (size_t)tokenSize.paramValue); } @@ -208,6 +209,7 @@ ZL_Report EI_convert_num_to_struct_le( const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -220,22 +222,23 @@ ZL_Report EI_convert_num_to_struct_le( size_t const eltWidth = ZL_Input_eltWidth(in); ZL_ASSERT_GT(eltWidth, 0); size_t const nbElts = ZL_Input_numElts(in); - ZL_RET_R_IF_NULL( - allocation, ENC_refTypedStream(eictx, 0, eltWidth, nbElts, in, 0)); + ZL_ERR_IF_NULL( + ENC_refTypedStream(eictx, 0, eltWidth, nbElts, in, 0), allocation); return ZL_returnValue(1); } static ZL_Report EI_convert_to_serial(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; ZL_ASSERT_NN(in); size_t const byteSize = ZL_Input_contentSize(in); ZL_ASSERT_NN(eictx); - ZL_RET_R_IF_NULL( - allocation, ENC_refTypedStream(eictx, 0, 1, byteSize, in, 0)); + ZL_ERR_IF_NULL( + ENC_refTypedStream(eictx, 0, 1, byteSize, in, 0), allocation); return ZL_returnValue(1); } @@ -287,21 +290,22 @@ ZL_Report EI_separate_VSF_components( const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; ZL_ASSERT_NN(eictx); ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_string); - ZL_RET_R_IF_ERR(EI_convert_to_serial(eictx, ins, nbIns)); + ZL_ERR_IF_ERR(EI_convert_to_serial(eictx, ins, nbIns)); const uint32_t* fieldSizes = ZL_Input_stringLens(in); const size_t nbFields = ZL_Input_numElts(in); size_t const numWidth = NUMOP_numericWidthForArray32(fieldSizes, nbFields); ZL_Output* const sizeStream = ZL_Encoder_createTypedStream(eictx, 1, nbFields, numWidth); - ZL_RET_R_IF_NULL(allocation, sizeStream); + ZL_ERR_IF_NULL(sizeStream, allocation); void* const dst = ZL_Output_ptr(sizeStream); NUMOP_writeNumerics_fromU32(dst, numWidth, fieldSizes, nbFields); - ZL_RET_R_IF_ERR(ZL_Output_commit(sizeStream, nbFields)); + ZL_ERR_IF_ERR(ZL_Output_commit(sizeStream, nbFields)); return ZL_returnValue(2); } diff --git a/src/openzl/codecs/conversion/encode_conversion_binding.h b/src/openzl/codecs/conversion/encode_conversion_binding.h index a1418a683..e26ecb764 100644 --- a/src/openzl/codecs/conversion/encode_conversion_binding.h +++ b/src/openzl/codecs/conversion/encode_conversion_binding.h @@ -70,116 +70,84 @@ ZL_Report EI_convert_num_to_serial_le( const ZL_Input* ins[], size_t nbIns); -#define EI_CONVERT_NUM_TO_STRUCT_LE(id) \ - { \ - .gd = CONVERT_NUM_TOKEN_GRAPH(id), \ - .transform_f = EI_convert_num_to_struct_le, \ - .name = "!zl.convert_num_to_struct_le" \ - } - -#define EI_CONVERT_STRUCT_TO_NUM_LE(id) \ - { \ - .gd = CONVERT_TOKEN_NUM_GRAPH(id), \ - .transform_f = EI_convert_struct_to_num_le, \ - .name = "!zl.convert_struct_to_num_le" \ - } - -#define EI_CONVERT_STRUCT_TO_NUM_BE(id) \ - { \ - .gd = CONVERT_TOKEN_NUM_GRAPH(id), \ - .transform_f = EI_convert_struct_to_num_be, \ - .name = "!zl.convert_struct_to_num_be" \ - } - -#define EI_CONVERT_SERIAL_TO_NUM8(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num8, \ - .name = "!zl.convert_serial_to_num8" \ - } -#define EI_CONVERT_SERIAL_TO_NUM_LE16(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num_le16, \ - .name = "!zl.convert_serial_to_num_le16" \ - } -#define EI_CONVERT_SERIAL_TO_NUM_LE32(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num_le32, \ - .name = "!zl.convert_serial_to_num_le32" \ - } -#define EI_CONVERT_SERIAL_TO_NUM_LE64(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num_le64, \ - .name = "!zl.convert_serial_to_num_le64" \ - } -#define EI_CONVERT_SERIAL_TO_NUM_BE16(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num_be16, \ - .name = "!zl.convert_serial_to_num_be16" \ - } -#define EI_CONVERT_SERIAL_TO_NUM_BE32(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num_be32, \ - .name = "!zl.convert_serial_to_num_be32" \ - } -#define EI_CONVERT_SERIAL_TO_NUM_BE64(id) \ - { \ - .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ - .transform_f = EI_convert_serial_to_num_be64, \ - .name = "!zl.convert_serial_to_num_be64" \ - } - -#define EI_CONVERT_NUM_TO_SERIAL_LE(id) \ - { \ - .gd = CONVERT_NUM_SERIAL_GRAPH(id), \ - .transform_f = EI_convert_num_to_serial_le, \ - .name = "!zl.convert_num_to_serial_le" \ - } - -#define EI_CONVERT_SERIAL_TO_STRUCT(id) \ - { \ - .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ - .transform_f = EI_convert_serial_to_struct, \ - .name = "!zl.convert_serial_to_struct" \ - } +#define EI_CONVERT_NUM_TO_STRUCT_LE(id) \ + { .gd = CONVERT_NUM_TOKEN_GRAPH(id), \ + .transform_f = EI_convert_num_to_struct_le, \ + .name = "!zl.convert_num_to_struct_le" } + +#define EI_CONVERT_STRUCT_TO_NUM_LE(id) \ + { .gd = CONVERT_TOKEN_NUM_GRAPH(id), \ + .transform_f = EI_convert_struct_to_num_le, \ + .name = "!zl.convert_struct_to_num_le" } + +#define EI_CONVERT_STRUCT_TO_NUM_BE(id) \ + { .gd = CONVERT_TOKEN_NUM_GRAPH(id), \ + .transform_f = EI_convert_struct_to_num_be, \ + .name = "!zl.convert_struct_to_num_be" } + +#define EI_CONVERT_SERIAL_TO_NUM8(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num8, \ + .name = "!zl.convert_serial_to_num8" } +#define EI_CONVERT_SERIAL_TO_NUM_LE16(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num_le16, \ + .name = "!zl.convert_serial_to_num_le16" } +#define EI_CONVERT_SERIAL_TO_NUM_LE32(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num_le32, \ + .name = "!zl.convert_serial_to_num_le32" } +#define EI_CONVERT_SERIAL_TO_NUM_LE64(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num_le64, \ + .name = "!zl.convert_serial_to_num_le64" } +#define EI_CONVERT_SERIAL_TO_NUM_BE16(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num_be16, \ + .name = "!zl.convert_serial_to_num_be16" } +#define EI_CONVERT_SERIAL_TO_NUM_BE32(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num_be32, \ + .name = "!zl.convert_serial_to_num_be32" } +#define EI_CONVERT_SERIAL_TO_NUM_BE64(id) \ + { .gd = CONVERT_SERIAL_NUM_GRAPH(id), \ + .transform_f = EI_convert_serial_to_num_be64, \ + .name = "!zl.convert_serial_to_num_be64" } + +#define EI_CONVERT_NUM_TO_SERIAL_LE(id) \ + { .gd = CONVERT_NUM_SERIAL_GRAPH(id), \ + .transform_f = EI_convert_num_to_serial_le, \ + .name = "!zl.convert_num_to_serial_le" } + +#define EI_CONVERT_SERIAL_TO_STRUCT(id) \ + { .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ + .transform_f = EI_convert_serial_to_struct, \ + .name = "!zl.convert_serial_to_struct" } #define CONVERT_PARAM_TOKENSIZE(l) ZL_LP_1INTPARAM(ZL_trlip_tokenSize, l) -#define EI_CONVERT_SERIAL_TO_STRUCT2(id) \ - { \ - .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ - .transform_f = EI_convert_serial_to_struct, \ - .localParams = CONVERT_PARAM_TOKENSIZE(2), \ - .name = "!zl.convert_serial_to_struct2" \ - } - -#define EI_CONVERT_SERIAL_TO_STRUCT4(id) \ - { \ - .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ - .transform_f = EI_convert_serial_to_struct, \ - .localParams = CONVERT_PARAM_TOKENSIZE(4), \ - .name = "!zl.convert_serial_to_struct4" \ - } - -#define EI_CONVERT_SERIAL_TO_STRUCT8(id) \ - { \ - .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ - .transform_f = EI_convert_serial_to_struct, \ - .localParams = CONVERT_PARAM_TOKENSIZE(8), \ - .name = "!zl.convert_serial_to_struct8" \ - } - -#define EI_CONVERT_STRUCT_TO_SERIAL(id) \ - { \ - .gd = CONVERT_TOKEN_SERIAL_GRAPH(id), \ - .transform_f = EI_convert_struct_to_serial, \ - .name = "!zl.convert_struct_to_serial" \ - } +#define EI_CONVERT_SERIAL_TO_STRUCT2(id) \ + { .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ + .transform_f = EI_convert_serial_to_struct, \ + .localParams = CONVERT_PARAM_TOKENSIZE(2), \ + .name = "!zl.convert_serial_to_struct2" } + +#define EI_CONVERT_SERIAL_TO_STRUCT4(id) \ + { .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ + .transform_f = EI_convert_serial_to_struct, \ + .localParams = CONVERT_PARAM_TOKENSIZE(4), \ + .name = "!zl.convert_serial_to_struct4" } + +#define EI_CONVERT_SERIAL_TO_STRUCT8(id) \ + { .gd = CONVERT_SERIAL_TOKEN_GRAPH(id), \ + .transform_f = EI_convert_serial_to_struct, \ + .localParams = CONVERT_PARAM_TOKENSIZE(8), \ + .name = "!zl.convert_serial_to_struct8" } + +#define EI_CONVERT_STRUCT_TO_SERIAL(id) \ + { .gd = CONVERT_TOKEN_SERIAL_GRAPH(id), \ + .transform_f = EI_convert_struct_to_serial, \ + .name = "!zl.convert_struct_to_serial" } /* ===== String - Conversion operations ===== */ @@ -196,23 +164,20 @@ EI_setStringLens(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); #define ZL_SETSTRINGLENS_PARSINGF_PID 520 #define ZL_SETSTRINGLENS_ARRAY_PID 521 -#define EI_SETSTRINGLENS(id) \ - { \ - .gd = CONVERT_SERIAL_STRING_GRAPH(id), \ - .transform_f = EI_setStringLens, .name = "!zl.private.set_string_lens" \ - } +#define EI_SETSTRINGLENS(id) \ + { .gd = CONVERT_SERIAL_STRING_GRAPH(id), \ + .transform_f = EI_setStringLens, \ + .name = "!zl.private.set_string_lens" } ZL_Report EI_separate_VSF_components( ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_SEPARATE_VSF_COMPONENTS(id) \ - { \ - .gd = SEPARATE_VSF_COMPONENTS_GRAPH(id), \ - .transform_f = EI_separate_VSF_components, \ - .name = "!zl.separate_string_components" \ - } +#define EI_SEPARATE_VSF_COMPONENTS(id) \ + { .gd = SEPARATE_VSF_COMPONENTS_GRAPH(id), \ + .transform_f = EI_separate_VSF_components, \ + .name = "!zl.separate_string_components" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/conversion/encode_setStringSizes_binding.c b/src/openzl/codecs/conversion/encode_setStringSizes_binding.c index 5b74a84a6..54993de01 100644 --- a/src/openzl/codecs/conversion/encode_setStringSizes_binding.c +++ b/src/openzl/codecs/conversion/encode_setStringSizes_binding.c @@ -1,6 +1,5 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -#include #include #include "openzl/codecs/conversion/encode_conversion_binding.h" #include "openzl/common/assertion.h" @@ -69,6 +68,7 @@ static ZL_SetStringLensInstructions getStringLens( ZL_Report EI_setStringLens(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -82,7 +82,7 @@ EI_setStringLens(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) const size_t nbStrings = sfsi.nbStrings; const uint32_t* const stringLens = sfsi.stringLens; - ZL_RET_R_IF(nodeParameter_invalid, nbStrings && stringLens == NULL); + ZL_ERR_IF(nbStrings && stringLens == NULL, nodeParameter_invalid); ZL_DLOG(BLOCK, "EI_setStringLens: converting %zu bytes into %zu strings", @@ -91,21 +91,21 @@ EI_setStringLens(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // Here : check parser's output uint64_t const parserTotalSize = NUMOP_sumArray32(stringLens, nbStrings); - ZL_RET_R_IF_NE( - nodeParameter_invalidValue, + ZL_ERR_IF_NE( parserTotalSize, (uint64_t)inputSize, + nodeParameter_invalidValue, "EI_setStringLens: the external parser provides invalid total size"); ZL_Output* const out = ENC_refTypedStream(eictx, 0, 1, inputSize, in, 0); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint32_t* const fs = ZL_Output_reserveStringLens(out, nbStrings); - ZL_RET_R_IF_NULL(allocation, fs); + ZL_ERR_IF_NULL(fs, allocation); ZL_memcpy(fs, stringLens, nbStrings * sizeof(uint32_t)); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbStrings)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbStrings)); return ZL_returnSuccess(); } @@ -135,7 +135,12 @@ ZL_NodeID ZL_Compressor_registerConvertSerialToStringNode( ZL_LocalCopyParams const lgp = { &ssp, 1 }; ZL_LocalParams const lParams = { .copyParams = lgp }; - return ZL_Compressor_cloneNode(cgraph, ZL_NODE_SETSTRINGLENS, &lParams); + return ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = ZL_NODE_SETSTRINGLENS, + .localParams = &lParams, + }); } ZL_RESULT_OF(ZL_EdgeList) @@ -148,9 +153,10 @@ ZL_Edge_runConvertSerialToStringNode( ZL_ASSERT_NN(stringLens); const ZL_LocalParams params = { - .refParams = ZL_REFPARAMS({ ZL_SETSTRINGLENS_ARRAY_PID, - stringLens, - nbString * sizeof(uint32_t) }), + .refParams = ZL_REFPARAMS( + { ZL_SETSTRINGLENS_ARRAY_PID, + stringLens, + nbString * sizeof(uint32_t) }), }; return ZL_Edge_runNode_withParams(sctx, ZL_NODE_SETSTRINGLENS, ¶ms); diff --git a/src/openzl/codecs/conversion/graph_conversion.h b/src/openzl/codecs/conversion/graph_conversion.h index 4acd61e22..04b6a1bc5 100644 --- a/src/openzl/codecs/conversion/graph_conversion.h +++ b/src/openzl/codecs/conversion/graph_conversion.h @@ -9,52 +9,60 @@ /* contains graph definition for conversion operations, * used by both encoder and decoder sides */ -#define CONVERT_TOKEN_NUM_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define CONVERT_TOKEN_NUM_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } -#define CONVERT_NUM_TOKEN_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ +#define CONVERT_NUM_TOKEN_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ } -#define CONVERT_SERIAL_NUM_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define CONVERT_SERIAL_NUM_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } -#define CONVERT_NUM_SERIAL_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define CONVERT_NUM_SERIAL_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define CONVERT_SERIAL_TOKEN_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ +#define CONVERT_SERIAL_TOKEN_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ } -#define CONVERT_TOKEN_SERIAL_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define CONVERT_TOKEN_SERIAL_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define CONVERT_SERIAL_STRING_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ +#define CONVERT_SERIAL_STRING_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ } -#define SEPARATE_VSF_COMPONENTS_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_numeric), \ +#define SEPARATE_VSF_COMPONENTS_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_numeric), \ } #endif // ZSTRONG_TRANSFORMS_CONVERSION_GRAPH_CONVERSION_H diff --git a/src/openzl/codecs/conversion/spec.md b/src/openzl/codecs/conversion/spec.md index 8ff4363c3..129aaaeb7 100644 --- a/src/openzl/codecs/conversion/spec.md +++ b/src/openzl/codecs/conversion/spec.md @@ -7,10 +7,10 @@ An input of type serial, struct, numeric. - A numeric input containing the lengths of the strings. ### Codec Header -Codecs NumToSerial and StructToSerial contain a varint encoded value in the header. This represents the element width. +Codecs NumToSerial and StructToSerial contain a variant encoded value in the header. This represents the element width. ### Decoding -Codecs exist for conversion between serial and any other type, as well as the reverse. The input is decoded such that the byte representation of the input is the same as in the output. The element width is specfied in the header. +Codecs exist for conversion between serial and any other type, as well as the reverse. The input is decoded such that the byte representation of the input is the same as in the output. The element width is specified in the header. #### Numeric Input Byte Representation A numeric input's byte representation is determined by its element width. With width $n$, each value in the input is written into the $n$ bytes in little endian format. @@ -26,4 +26,4 @@ A string input has byte representation where each string is consecutively writte A single output of the specified type that is compatible - serial, struct, numeric. The output contains the converted data in the output format. #### StringToSerial -StringToSerial has 2 ouputs, one of type serial containing a serial representation of the string data, the second output contains a numeric output containing sizes of the strings in the input. +StringToSerial has 2 outputs, one of type serial containing a serial representation of the string data, the second output contains a numeric output containing sizes of the strings in the input. diff --git a/src/openzl/codecs/decoder_registry.c b/src/openzl/codecs/decoder_registry.c index f544db688..f197b3d88 100644 --- a/src/openzl/codecs/decoder_registry.c +++ b/src/openzl/codecs/decoder_registry.c @@ -2,6 +2,7 @@ #include "openzl/codecs/decoder_registry.h" +#include "openzl/codecs/bitSplit/decode_bitSplit_binding.h" #include "openzl/codecs/bitpack/decode_bitpack_binding.h" #include "openzl/codecs/bitunpack/decode_bitunpack_binding.h" #include "openzl/codecs/concat/decode_concat_binding.h" @@ -18,13 +19,19 @@ #include "openzl/codecs/interleave/decode_interleave_binding.h" #include "openzl/codecs/lz/decode_lz_binding.h" #include "openzl/codecs/lz/graph_lz.h" +#include "openzl/codecs/lz4/decode_lz4_binding.h" #include "openzl/codecs/merge_sorted/decode_merge_sorted_binding.h" +#include "openzl/codecs/mux_lengths/decode_mux_lengths_binding.h" +#include "openzl/codecs/mux_lengths/graph_mux_lengths.h" #include "openzl/codecs/parse_int/decode_parse_int_binding.h" #include "openzl/codecs/parse_int/graph_parse_int.h" +#include "openzl/codecs/partition/decode_partition_binding.h" +#include "openzl/codecs/partition/decode_partition_bitpack_fusion.h" #include "openzl/codecs/prefix/decode_prefix_binding.h" #include "openzl/codecs/quantize/decode_quantize_binding.h" #include "openzl/codecs/range_pack/decode_range_pack_binding.h" #include "openzl/codecs/rolz/decode_rolz_binding.h" +#include "openzl/codecs/sentinel/decode_sentinel_binding.h" #include "openzl/codecs/splitByStruct/decode_splitByStruct_binding.h" #include "openzl/codecs/splitN/decode_splitN_binding.h" #include "openzl/codecs/tokenize/decode_tokenize_binding.h" @@ -124,6 +131,11 @@ const StandardDTransform SDecoders_array[ZL_StandardTransformID_end] = { REGISTER_TTRANSFORM(ZL_StandardTransformID_prefix, 11, PREFIX), REGISTER_TTRANSFORM_G(ZL_StandardTransformID_divide_by, 16, DI_DIVIDE_BY_INT, NUMPIPE_GRAPH), REGISTER_TTRANSFORM(ZL_StandardTransformID_parse_int, 19, PARSE_INT), + REGISTER_TTRANSFORM_G(ZL_StandardTransformID_lz4, 23, DI_LZ4, PIPE_GRAPH), + REGISTER_TTRANSFORM_G(ZL_StandardTransformID_partition, 24, DI_PARTITION, PARTITION_GRAPH), + REGISTER_TTRANSFORM_G(ZL_StandardTransformID_sentinel, 24, DI_SENTINEL, SENTINEL_GRAPH), + REGISTER_TTRANSFORM_G(ZL_StandardTransformID_lz, 24, DI_LZ, LZ_GRAPH), + REGISTER_TTRANSFORM_G(ZL_StandardTransformID_mux_lengths, 24, DI_MUX_LENGTHS, MUX_LENGTHS_GRAPH), REGISTER_VOTRANSFORM_G(ZL_StandardTransformID_splitn, 9, DI_SPLITN, GRAPH_VO_SERIAL), REGISTER_VOTRANSFORM_G(ZL_StandardTransformID_splitn_struct, 14, DI_SPLITN_STRUCT, GRAPH_VO_STRUCT), @@ -138,6 +150,7 @@ const StandardDTransform SDecoders_array[ZL_StandardTransformID_end] = { REGISTER_MITRANSFORM_G(ZL_StandardTransformID_concat_string, 18, DI_CONCAT_STRING, CONCAT_STRING_GRAPH), REGISTER_MITRANSFORM_G(ZL_StandardTransformID_dedup_num, 16, DI_DEDUP_NUM, DEDUP_NUM_GRAPH), REGISTER_MITRANSFORM_G(ZL_StandardTransformID_interleave_string, 20, DI_INTERLEAVE, INTERLEAVE_STRING_GRAPH), + REGISTER_VOTRANSFORM_G(ZL_StandardTransformID_bitSplit, 24, DI_BITSPLIT, GRAPH_VO_NUM), // Conversion operations REGISTER_TTRANSFORM_G(ZL_StandardTransformID_convert_serial_to_struct, 3, DI_REVERT_SERIAL_TO_STRUCT, CONVERT_SERIAL_TOKEN_GRAPH), @@ -163,4 +176,21 @@ const StandardDTransform SDecoders_array[ZL_StandardTransformID_end] = { REGISTER_DEPRECATED_TTRANSFORM_G(ZL_StandardTransformID_huffman_deprecated, 3, 14, DI_HUFFMAN, PIPE_GRAPH), REGISTER_DEPRECATED_TTRANSFORM_G(ZL_StandardTransformID_huffman_fixed_deprecated, 3, 14, DI_HUFFMAN_FIXED, FIXED_ENTROPY_GRAPH), }; + +const ZL_DecoderFusionDesc ZL_DecoderFusion_array[ZL_DecoderFusionID_end] = { + [ZL_DecoderFusionID_partitionBitpack] = { + .pattern = { + .parentCodec = ZL_StandardTransformID_partition, + .numChildren = 1, + .children = (const ZL_DecoderFusionChild[]){ + { + .codec = ZL_StandardTransformID_bitpack_int, + .numRegens = 1, + .parentIndices = (const uint32_t[]){ 0 }, + } + }, + }, + .fusionFn = ZL_partitionBitpackFusedDecode, + }, +}; // clang-format on diff --git a/src/openzl/codecs/decoder_registry.h b/src/openzl/codecs/decoder_registry.h index ed975b1ea..1db620cc0 100644 --- a/src/openzl/codecs/decoder_registry.h +++ b/src/openzl/codecs/decoder_registry.h @@ -3,7 +3,8 @@ #ifndef ZSTRONG_TRANSFORMS_DECODER_REGISTRY_H #define ZSTRONG_TRANSFORMS_DECODER_REGISTRY_H -#include "openzl/common/wire_format.h" // ZL_StandardTransformID_end +#include "openzl/common/wire_format.h" // ZL_StandardTransformID_end +#include "openzl/decompress/decoder_fusion.h" #include "openzl/decompress/dtransforms.h" // DTransform, DTrDesc #include "openzl/shared/portability.h" @@ -17,6 +18,17 @@ typedef struct { extern const StandardDTransform SDecoders_array[ZL_StandardTransformID_end]; +/// IDs for the built-in decoder fusions. New fusions should be added before +/// ZL_DecoderFusionID_end. +typedef enum { + ZL_DecoderFusionID_partitionBitpack, + ZL_DecoderFusionID_end, +} ZL_DecoderFusionID; + +/// The built-in decoder fusion descriptors, indexed by ZL_DecoderFusionID. +extern const ZL_DecoderFusionDesc + ZL_DecoderFusion_array[ZL_DecoderFusionID_end]; + ZL_END_C_DECLS #endif diff --git a/src/openzl/codecs/dedup/decode_dedup_binding.c b/src/openzl/codecs/dedup/decode_dedup_binding.c index 18bccca0e..18006c151 100644 --- a/src/openzl/codecs/dedup/decode_dedup_binding.c +++ b/src/openzl/codecs/dedup/decode_dedup_binding.c @@ -14,6 +14,7 @@ ZL_Report DI_dedup_num( const ZL_Input* variableSrcs[], size_t nbVariableSrcs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_EQ(nbVariableSrcs, 0); (void)variableSrcs; ZL_ASSERT_EQ(nbCompulsorySrcs, 1); @@ -30,7 +31,7 @@ ZL_Report DI_dedup_num( for (size_t n = 0; n < nbRegens; n++) { ZL_Output* const out = DI_outStream_asReference( dictx, (int)n, numSrc, 0, eltWidth, eltCount); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); } return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/dedup/decode_dedup_binding.h b/src/openzl/codecs/dedup/decode_dedup_binding.h index b12091b02..f3dceea39 100644 --- a/src/openzl/codecs/dedup/decode_dedup_binding.h +++ b/src/openzl/codecs/dedup/decode_dedup_binding.h @@ -17,10 +17,8 @@ ZL_Report DI_dedup_num( const ZL_Input* variableSrcs[], size_t nbVariableSrcs); -#define DI_DEDUP_NUM(id) \ - { \ - .transform_f = DI_dedup_num, .name = "dedup_num_decoder" \ - } +#define DI_DEDUP_NUM(id) \ + { .transform_f = DI_dedup_num, .name = "dedup_num_decoder" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/dedup/encode_dedup_binding.c b/src/openzl/codecs/dedup/encode_dedup_binding.c index 8f4d60758..fca6418d6 100644 --- a/src/openzl/codecs/dedup/encode_dedup_binding.c +++ b/src/openzl/codecs/dedup/encode_dedup_binding.c @@ -14,6 +14,7 @@ static ZL_Report EI_dedup_num_internal( size_t nbIns, int inputsIdentical) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); // Input sanitization ZL_ASSERT_GE(nbIns, 1); ZL_ASSERT_NN(ins); @@ -37,19 +38,19 @@ static ZL_Report EI_dedup_num_internal( 0); } else { // Actively check that inputs are indeed all identical - ZL_RET_R_IF_NE( - node_invalid_input, ZL_Input_eltWidth(ins[n]), eltWidth); - ZL_RET_R_IF_NE( - node_invalid_input, ZL_Input_numElts(ins[n]), eltCount); + ZL_ERR_IF_NE( + ZL_Input_eltWidth(ins[n]), eltWidth, node_invalid_input); + ZL_ERR_IF_NE( + ZL_Input_numElts(ins[n]), eltCount, node_invalid_input); int const isDifferent = memcmp( ZL_Input_ptr(ins[n]), ZL_Input_ptr(ins[0]), totalSize); - ZL_RET_R_IF(node_invalid_input, isDifferent); + ZL_ERR_IF(isDifferent, node_invalid_input); } } ZL_Output* const out = ENC_refTypedStream(eictx, 0, eltWidth, eltCount, ins[0], 0); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/dedup/encode_dedup_binding.h b/src/openzl/codecs/dedup/encode_dedup_binding.h index d9e0c2bfa..151e26a54 100644 --- a/src/openzl/codecs/dedup/encode_dedup_binding.h +++ b/src/openzl/codecs/dedup/encode_dedup_binding.h @@ -15,11 +15,10 @@ ZL_BEGIN_C_DECLS */ ZL_Report EI_dedup_num(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_DEDUP_NUM(id) \ - { \ - .gd = DEDUP_NUM_GRAPH(id), .transform_f = EI_dedup_num, \ - .name = "!zl.dedup_num" \ - } +#define EI_DEDUP_NUM(id) \ + { .gd = DEDUP_NUM_GRAPH(id), \ + .transform_f = EI_dedup_num, \ + .name = "!zl.dedup_num" } // Integer parameter, set to 1 to state that inputs are trusted to be identical // Note(@Cyan): not part of the public API yet @@ -33,11 +32,10 @@ ZL_Report EI_dedup_num(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); ZL_Report EI_dedup_num_trusted(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_DEDUP_NUM_TRUSTED(id) \ - { \ - .gd = DEDUP_NUM_GRAPH(id), .transform_f = EI_dedup_num_trusted, \ - .name = "!zl.private.dedup_num_trusted" \ - } +#define EI_DEDUP_NUM_TRUSTED(id) \ + { .gd = DEDUP_NUM_GRAPH(id), \ + .transform_f = EI_dedup_num_trusted, \ + .name = "!zl.private.dedup_num_trusted" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/dedup/graph_dedup.h b/src/openzl/codecs/dedup/graph_dedup.h index 4e86905e6..9c58a3686 100644 --- a/src/openzl/codecs/dedup/graph_dedup.h +++ b/src/openzl/codecs/dedup/graph_dedup.h @@ -5,11 +5,12 @@ #include "openzl/zl_data.h" // ZS2_Type_* -#define DEDUP_NUM_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .lastInputIsVariable = 1, \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define DEDUP_NUM_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .lastInputIsVariable = 1, \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/delta/decode_delta_binding.c b/src/openzl/codecs/delta/decode_delta_binding.c index b742c85e5..85d5e547e 100644 --- a/src/openzl/codecs/delta/decode_delta_binding.c +++ b/src/openzl/codecs/delta/decode_delta_binding.c @@ -9,6 +9,7 @@ // This variant is compatible with any allowed integer width ZL_Report DI_delta_int(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -32,10 +33,10 @@ ZL_Report DI_delta_int(ZL_Decoder* dictx, const ZL_Input* ins[]) // New variant: First element is written into the transform header. ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); if (header.size != 0) { - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( header.size, intWidth, + corruption, "Header must be a single int"); first = header.start; deltas = ZL_Input_ptr(in); @@ -43,20 +44,20 @@ ZL_Report DI_delta_int(ZL_Decoder* dictx, const ZL_Input* ins[]) } else { // Special case: If the transform header is empty, then we must have // nbDeltas == 0, and then nbInts == 0. - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( nbDeltas, 0, + corruption, "Empty header but non-empty deltas"); } } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbInts, intWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Note : proper alignment is guaranteed by graph engine ZS_deltaDecode(ZL_Output_ptr(out), first, deltas, nbInts, intWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbInts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbInts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/delta/decode_delta_binding.h b/src/openzl/codecs/delta/decode_delta_binding.h index 20bf20dba..638db7244 100644 --- a/src/openzl/codecs/delta/decode_delta_binding.h +++ b/src/openzl/codecs/delta/decode_delta_binding.h @@ -12,10 +12,7 @@ ZL_BEGIN_C_DECLS // Ingests and generates a Numeric stream ZL_Report DI_delta_int(ZL_Decoder* dictx, const ZL_Input* in[]); -#define DI_DELTA_INT(id) \ - { \ - .transform_f = DI_delta_int, .name = "delta" \ - } +#define DI_DELTA_INT(id) { .transform_f = DI_delta_int, .name = "delta" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/delta/decode_delta_kernel.c b/src/openzl/codecs/delta/decode_delta_kernel.c index d0f78038b..24da30d3c 100644 --- a/src/openzl/codecs/delta/decode_delta_kernel.c +++ b/src/openzl/codecs/delta/decode_delta_kernel.c @@ -4,7 +4,6 @@ #include "decode_delta_kernel.h" #include -#include // size_t #include // uint32_t #include "openzl/shared/mem.h" diff --git a/src/openzl/codecs/delta/encode_delta_binding.c b/src/openzl/codecs/delta/encode_delta_binding.c index 721f4de83..3b72d16b3 100644 --- a/src/openzl/codecs/delta/encode_delta_binding.c +++ b/src/openzl/codecs/delta/encode_delta_binding.c @@ -10,6 +10,7 @@ // This variant is compatible with any allowed integer width ZL_Report EI_delta_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); @@ -21,17 +22,17 @@ ZL_Report EI_delta_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const nbInts = ZL_Input_numElts(in); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, nbInts, intWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); const void* src = ZL_Input_ptr(in); // Note : proper alignment is guaranteed by graph engine void* dst = ZL_Output_ptr(out); if (nbInts == 0) { // Special case: Zero ints behaves the same for both variants. - ZL_RET_R_IF_ERR(ZL_Output_commit(out, 0)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, 0)); } else if (ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion) < 13) { // Old variant: Write the first element to the first value in the stream ZS_deltaEncode(dst, (char*)dst + intWidth, src, nbInts, intWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbInts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbInts)); } else { // New variant: Write the first element to the stream header uint8_t header[8]; @@ -39,7 +40,7 @@ ZL_Report EI_delta_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_LE(intWidth, sizeof(header)); ZS_deltaEncode(header, dst, src, nbInts, intWidth); ZL_Encoder_sendCodecHeader(eictx, header, intWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbInts - 1)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbInts - 1)); } return ZL_returnValue(1); } diff --git a/src/openzl/codecs/delta/encode_delta_binding.h b/src/openzl/codecs/delta/encode_delta_binding.h index f79884437..9b965f2b2 100644 --- a/src/openzl/codecs/delta/encode_delta_binding.h +++ b/src/openzl/codecs/delta/encode_delta_binding.h @@ -12,11 +12,10 @@ ZL_BEGIN_C_DECLS // Use and generate Integer streams ZL_Report EI_delta_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_DELTA_INT(id) \ - { \ - .gd = NUMPIPE_GRAPH(id), .transform_f = EI_delta_int, \ - .name = "!zl.delta_int" \ - } +#define EI_DELTA_INT(id) \ + { .gd = NUMPIPE_GRAPH(id), \ + .transform_f = EI_delta_int, \ + .name = "!zl.delta_int" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/delta/encode_delta_kernel.c b/src/openzl/codecs/delta/encode_delta_kernel.c index c33d51bd9..f675182ec 100644 --- a/src/openzl/codecs/delta/encode_delta_kernel.c +++ b/src/openzl/codecs/delta/encode_delta_kernel.c @@ -5,7 +5,6 @@ #include #include -#include // size_t #include // uint32_t, uint64_t #include diff --git a/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.c b/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.c index 26127afc9..8badccced 100644 --- a/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.c +++ b/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.c @@ -23,6 +23,7 @@ ZL_Report DI_dispatchN_byTag( const ZL_Input* inVariable[], size_t nbInVariable) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_DLOG(BLOCK, "DI_dispatchN_byTag (%zu inputs to join)", nbInVariable); ZL_ASSERT_NN(dictx); ZL_ASSERT_EQ(nbInFixed, 2); @@ -37,26 +38,25 @@ ZL_Report DI_dispatchN_byTag( const ZL_Input* tags = inFixed[dnbt_tags]; const ZL_Input* segSizes = inFixed[dnbt_segSizes]; size_t const nbSegments = ZL_Input_numElts(segSizes); - ZL_RET_R_IF_NE(corruption, ZL_Input_numElts(tags), nbSegments); + ZL_ERR_IF_NE(ZL_Input_numElts(tags), nbSegments, corruption); if (DI_getFrameFormatVersion(dictx) < 20) { - ZL_RET_R_IF_GE(temporaryLibraryLimitation, nbInVariable, 256); - ZL_RET_R_IF_GT(temporaryLibraryLimitation, ZL_Input_eltWidth(tags), 1); + ZL_ERR_IF_GE(nbInVariable, 256, temporaryLibraryLimitation); + ZL_ERR_IF_GT(ZL_Input_eltWidth(tags), 1, temporaryLibraryLimitation); } else { - ZL_RET_R_IF_GE(temporaryLibraryLimitation, nbInVariable, 1 << 16); - ZL_RET_R_IF_GT(temporaryLibraryLimitation, ZL_Input_eltWidth(tags), 2); + ZL_ERR_IF_GE(nbInVariable, 1 << 16, temporaryLibraryLimitation); + ZL_ERR_IF_GT(ZL_Input_eltWidth(tags), 2, temporaryLibraryLimitation); } size_t total = 0; for (size_t n = 0; n < nbInVariable; n++) { // Must be validated ZL_ASSERT_NN(inVariable[n]); - ZL_RET_R_IF_NE( - corruption, ZL_Input_type(inVariable[n]), ZL_Type_serial); + ZL_ERR_IF_NE(ZL_Input_type(inVariable[n]), ZL_Type_serial, corruption); total += ZL_Input_numElts(inVariable[n]); } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, total, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Note : reserving scratch buffers should be a property offered by DICtx*. // Currently it doesn't exist, so allocate directly instead. @@ -74,7 +74,7 @@ ZL_Report DI_dispatchN_byTag( ZL_Decoder_getScratchSpace(dictx, sizeof(*bufIndex) * nbSegments); if (!srcs || !srcSizes || !segmentSizes || !bufIndex) { - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } /* prepare arrays for raw transform */ @@ -98,9 +98,8 @@ ZL_Report DI_dispatchN_byTag( /* Check validity of tags */ if (!NUMOP_underLimitU16(bufIndex, nbSegments, (unsigned)nbInVariable)) { - ZL_RET_R_ERR( - corruption, - "vector of tags incorrect : some value(s) > nb srcs"); + ZL_ERR(corruption, + "vector of tags incorrect : some value(s) > nb srcs"); } /* Check validity of segment sizes */ @@ -109,10 +108,9 @@ ZL_Report DI_dispatchN_byTag( } for (size_t n = 0; n < nbInVariable; n++) { if (srcSizes[n] != ZL_Input_numElts(inVariable[n])) { - ZL_RET_R_ERR( - corruption, - "segment sizes incorrect : invalid total size for stream %zu", - n); + ZL_ERR(corruption, + "segment sizes incorrect : invalid total size for stream %zu", + n); } } @@ -127,7 +125,7 @@ ZL_Report DI_dispatchN_byTag( ZL_ASSERT_EQ(r, total); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, total)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, total)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.h b/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.h index 4500bef02..deee0dc59 100644 --- a/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.h +++ b/src/openzl/codecs/dispatchN_byTag/decode_dispatchN_byTag_binding.h @@ -23,10 +23,8 @@ ZL_Report DI_dispatchN_byTag( const ZL_Input* inVO[], size_t nbInVOs); -#define DI_DIPATCHNBYTAG(id) \ - { \ - .transform_f = DI_dispatchN_byTag, .name = "decode_dispatchN_byTag" \ - } +#define DI_DIPATCHNBYTAG(id) \ + { .transform_f = DI_dispatchN_byTag, .name = "decode_dispatchN_byTag" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.c b/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.c index 6f21d7658..02d3c8d1b 100644 --- a/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.c +++ b/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.c @@ -60,6 +60,7 @@ static DispatchNBT_ExtParser_s const* getExtParser(ZL_Encoder const* eictx) static ZL_RESULT_OF(ZL_DispatchInstructions) getSplitInstructions(ZL_Encoder* eictx, const ZL_Input* in) { + ZL_RESULT_DECLARE_SCOPE(ZL_DispatchInstructions, eictx); ZL_DLOG(SEQ, "getSplitInstructions()"); if (ZL_Input_numElts(in) == 0) { @@ -79,25 +80,17 @@ static ZL_RESULT_OF(ZL_DispatchInstructions) ZL_DispatchState state = { eictx, NULL }; DispatchNBT_ExtParser_s const* s = getExtParser(eictx); - ZL_RET_T_IF_NULL( - ZL_DispatchInstructions, - nodeParameter_invalid, - s, - "dispatchN parser not provided"); + ZL_ERR_IF_NULL(s, nodeParameter_invalid, "dispatchN parser not provided"); ZL_DispatchParserFn f = s->f; ZL_DispatchInstructions si = f(&state, in); if (si.segmentSizes == NULL) { if (state.message != NULL) { - ZL_RET_T_ERR( - ZL_DispatchInstructions, - nodeParameter_invalid, - "External dispatchN parser failed with message: %s", - state.message); + ZL_ERR(nodeParameter_invalid, + "External dispatchN parser failed with message: %s", + state.message); } else { - ZL_RET_T_ERR( - ZL_DispatchInstructions, - nodeParameter_invalid, - "external dispatchN parser failed to provide split instructions"); + ZL_ERR(nodeParameter_invalid, + "external dispatchN parser failed to provide split instructions"); } } return ZL_RESULT_WRAP_VALUE(ZL_DispatchInstructions, si); @@ -106,6 +99,7 @@ static ZL_RESULT_OF(ZL_DispatchInstructions) ZL_Report EI_dispatchN_byTag(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -115,7 +109,8 @@ EI_dispatchN_byTag(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_serial); ZL_ASSERT_NN(eictx); - ZL_TRY_LET_T(ZL_DispatchInstructions, si, getSplitInstructions(eictx, in)); + ZL_TRY_LET_CONST( + ZL_DispatchInstructions, si, getSplitInstructions(eictx, in)); ZL_DLOG(BLOCK, "EI_dispatchN_byTag: splitting %zu segments into %zu streams", @@ -127,26 +122,26 @@ EI_dispatchN_byTag(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) NUMOP_findMaxST(si.segmentSizes, si.nbSegments); // Must check too see if any are too large to guard against overflow if (ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion) < 20) { - ZL_RET_R_IF_GE(temporaryLibraryLimitation, si.nbTags, 256); + ZL_ERR_IF_GE(si.nbTags, 256, temporaryLibraryLimitation); } else { - ZL_RET_R_IF_GE(temporaryLibraryLimitation, si.nbTags, 1 << 16); + ZL_ERR_IF_GE(si.nbTags, 1 << 16, temporaryLibraryLimitation); } - ZL_RET_R_IF_GT( - nodeParameter_invalidValue, + ZL_ERR_IF_GT( maxSegmentSize, inputSize, + nodeParameter_invalidValue, "EI_dispatchN_byTag: One of the segment sizes is bigger than the input size"); size_t const parserTotalSize = NUMOP_sumArrayST(si.segmentSizes, si.nbSegments); - ZL_RET_R_IF_NE( - nodeParameter_invalidValue, + ZL_ERR_IF_NE( parserTotalSize, inputSize, + nodeParameter_invalidValue, "EI_dispatchN_byTag: the external parser provides invalid total size"); - ZL_RET_R_IF( - nodeParameter_invalidValue, + ZL_ERR_IF( !NUMOP_underLimit(si.tags, si.nbSegments, si.nbTags), + nodeParameter_invalidValue, "EI_dispatchN_byTag: external parser returns invalid tags!"); // Dimension and allocate output streams @@ -157,27 +152,27 @@ EI_dispatchN_byTag(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Output* const outTags = ZL_Encoder_createTypedStream( eictx, dnbt_tags, si.nbSegments, tagsWidth); - ZL_RET_R_IF_NULL(allocation, outTags); + ZL_ERR_IF_NULL(outTags, allocation); NUMOP_writeNumerics_fromU32( ZL_Output_ptr(outTags), tagsWidth, si.tags, si.nbSegments); - ZL_RET_R_IF_ERR(ZL_Output_commit(outTags, si.nbSegments)); + ZL_ERR_IF_ERR(ZL_Output_commit(outTags, si.nbSegments)); ZL_Output* const segSizes = ZL_Encoder_createTypedStream( eictx, dnbt_segSizes, si.nbSegments, segSizesWidth); - ZL_RET_R_IF_NULL(allocation, segSizes); + ZL_ERR_IF_NULL(segSizes, allocation); NUMOP_writeNumerics_fromST( ZL_Output_ptr(segSizes), segSizesWidth, si.segmentSizes, si.nbSegments); - ZL_RET_R_IF_ERR(ZL_Output_commit(segSizes, si.nbSegments)); + ZL_ERR_IF_ERR(ZL_Output_commit(segSizes, si.nbSegments)); ZL_STATIC_ASSERT( sizeof(size_t) == sizeof(void*), "not necessarily true, will revisit if a platform that doesn't respect this assumption is needed"); size_t const workSize = 2 * si.nbTags * sizeof(size_t); void* const workspace = ZL_Encoder_getScratchSpace(eictx, workSize); - ZL_RET_R_IF_NULL(allocation, workspace); + ZL_ERR_IF_NULL(workspace, allocation); ZL_ASSERT((size_t)workspace % sizeof(size_t) == 0); size_t* const outSizes = workspace; void** const outBuffers = ((void**)workspace) + si.nbTags; @@ -187,10 +182,10 @@ EI_dispatchN_byTag(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) for (size_t n = 0; n < si.nbTags; n++) { ZL_Output* const out = ZL_Encoder_createTypedStream( eictx, dnbt_segments, outSizes[n], 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); outBuffers[n] = ZL_Output_ptr(out); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, outSizes[n])); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR(ZL_Output_commit(out, outSizes[n])); + ZL_ERR_IF_ERR( ZL_Output_setIntMetadata(out, ZL_DISPATCH_CHANNEL_ID, (int)n)); } @@ -218,7 +213,12 @@ ZL_NodeID ZL_Compressor_registerDispatchNode( ZL_LocalCopyParams const lgp = { &ssp, 1 }; ZL_LocalParams const lParams = { .copyParams = lgp }; - return ZL_Compressor_cloneNode(cgraph, ZL_NODE_DISPATCH, &lParams); + return ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = ZL_NODE_DISPATCH, + .localParams = &lParams, + }); } void* ZL_DispatchState_malloc(ZL_DispatchState* state, size_t size) diff --git a/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.h b/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.h index 258e9296d..86a8b9f39 100644 --- a/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.h +++ b/src/openzl/codecs/dispatchN_byTag/encode_dispatchN_byTag_binding.h @@ -27,11 +27,10 @@ ZL_NodeID ZL_Compressor_registerDispatchNode( ZL_Report EI_dispatchN_byTag(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_DISPATCHNBYTAG(id) \ - { \ - .gd = GRAPH_DIPATCHNBYTAG(id), .transform_f = EI_dispatchN_byTag, \ - .name = "!zl.dispatchN_byTag" \ - } +#define EI_DISPATCHNBYTAG(id) \ + { .gd = GRAPH_DIPATCHNBYTAG(id), \ + .transform_f = EI_dispatchN_byTag, \ + .name = "!zl.dispatchN_byTag" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/dispatchN_byTag/graph_dispatchN_byTag.h b/src/openzl/codecs/dispatchN_byTag/graph_dispatchN_byTag.h index c50a943dc..64151ed17 100644 --- a/src/openzl/codecs/dispatchN_byTag/graph_dispatchN_byTag.h +++ b/src/openzl/codecs/dispatchN_byTag/graph_dispatchN_byTag.h @@ -11,11 +11,12 @@ typedef enum { dnbt_segments = 2 } DNBT_streamIDs_e; -#define GRAPH_DIPATCHNBYTAG(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ - ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define GRAPH_DIPATCHNBYTAG(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ + ZL_STREAMTYPELIST(ZL_Type_serial), \ } #endif // ZSTRONG_TRANSFORMS_DISPATCHN_BYTAG_GRAPH_DISPATCHN_BYTAG_H diff --git a/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.c b/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.c index b9987eaf5..58a3dcef7 100644 --- a/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.c +++ b/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.c @@ -15,6 +15,7 @@ ZL_Report DI_dispatch_string( const ZL_Input* variableSrcs[], size_t nbVariableSrcs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_EQ(nbCompulsorySrcs, 1); ZL_ASSERT_NN(compulsorySrcs); @@ -28,22 +29,22 @@ ZL_Report DI_dispatch_string( } if (is16bitDispatch) { - ZL_RET_R_IF_NE( - node_invalid_input, + ZL_ERR_IF_NE( ZL_Input_eltWidth(compulsorySrcs[0]), - 2); // dispatch indices are 16-bit - ZL_RET_R_IF_GT( - node_invalid, + 2, + node_invalid_input); // dispatch indices are 16-bit + ZL_ERR_IF_GT( nbVariableSrcs, ZL_DISPATCH_STRING_MAX_DISPATCHES, + node_invalid, "Invalid number of streams"); } else { - ZL_RET_R_IF_NE( - node_invalid_input, ZL_Input_eltWidth(compulsorySrcs[0]), 1); - ZL_RET_R_IF_GT( - node_invalid, + ZL_ERR_IF_NE( + ZL_Input_eltWidth(compulsorySrcs[0]), 1, node_invalid_input); + ZL_ERR_IF_GT( nbVariableSrcs, ZL_DISPATCH_STRING_MAX_DISPATCHES_V20, + node_invalid, "Invalid number of streams"); } ZL_ASSERT_NN(variableSrcs); @@ -55,9 +56,9 @@ ZL_Report DI_dispatch_string( // validate index, src streams + build total buffer size const size_t nbStrs = ZL_Input_numElts(compulsorySrcs[0]); - ZL_RET_R_IF( - node_invalid_input, + ZL_ERR_IF( (nbStrs != 0) && (nbVariableSrcs == 0), + node_invalid_input, "Number of indices incompatible with number of streams"); size_t totalSize = 0; @@ -70,10 +71,10 @@ ZL_Report DI_dispatch_string( ZL_Decoder_getScratchSpace(dictx, sizeof(ZL_Histogram16)); ZL_Histogram_init(histogram, ZL_DISPATCH_STRING_MAX_DISPATCHES); ZL_Histogram_build(histogram, inputIndices, nbStrs, 2); - ZL_RET_R_IF_GE( - node_invalid_input, + ZL_ERR_IF_GE( histogram->maxSymbol, nbVariableSrcs, + node_invalid_input, "Invalid index stream"); } else { const uint8_t* inputIndices = ZL_Input_ptr(compulsorySrcs[0]); @@ -82,18 +83,18 @@ ZL_Report DI_dispatch_string( ZL_Decoder_getScratchSpace(dictx, sizeof(ZL_Histogram8)); ZL_Histogram_init(histogram, 255); ZL_Histogram_build(histogram, inputIndices, nbStrs, 1); - ZL_RET_R_IF_GE( - node_invalid_input, + ZL_ERR_IF_GE( histogram->maxSymbol, nbVariableSrcs, + node_invalid_input, "Invalid index stream"); } for (size_t i = 0; i < nbVariableSrcs; i++) { totalSize += ZL_Input_contentSize(variableSrcs[i]); - ZL_RET_R_IF_NE( - node_invalid_input, + ZL_ERR_IF_NE( ZL_Input_numElts(variableSrcs[i]), histogram->count[i], + node_invalid_input, "Index stream requires different input length than provided src[%u]", i); } @@ -102,13 +103,13 @@ ZL_Report DI_dispatch_string( // input stream massaging const char** srcBuffers = ZL_Decoder_getScratchSpace(dictx, nbVariableSrcs * sizeof(void*)); - ZL_RET_R_IF_NULL(allocation, srcBuffers); + ZL_ERR_IF_NULL(srcBuffers, allocation); const uint32_t** srcStrLens = ZL_Decoder_getScratchSpace( dictx, nbVariableSrcs * sizeof(uint32_t*)); - ZL_RET_R_IF_NULL(allocation, srcStrLens); + ZL_ERR_IF_NULL(srcStrLens, allocation); size_t* srcNbStrs = ZL_Decoder_getScratchSpace(dictx, nbVariableSrcs * sizeof(size_t)); - ZL_RET_R_IF_NULL(allocation, srcNbStrs); + ZL_ERR_IF_NULL(srcNbStrs, allocation); for (size_t i = 0; i < nbVariableSrcs; i++) { srcBuffers[i] = ZL_Input_ptr(variableSrcs[i]); srcStrLens[i] = ZL_Input_stringLens(variableSrcs[i]); @@ -117,7 +118,7 @@ ZL_Report DI_dispatch_string( ZL_Output* const dst = ZL_Decoder_create1StringStream( dictx, nbStrs, totalSize + ZL_DISPATCH_STRING_BLK_SIZE); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); if (is16bitDispatch) { ZL_DispatchString_decode16( @@ -140,7 +141,7 @@ ZL_Report DI_dispatch_string( srcNbStrs, ZL_Input_ptr(compulsorySrcs[0])); } - ZL_RET_R_IF_ERR(ZL_Output_commit(dst, nbStrs)); + ZL_ERR_IF_ERR(ZL_Output_commit(dst, nbStrs)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.h b/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.h index 2b291bb94..091a2a8b2 100644 --- a/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.h +++ b/src/openzl/codecs/dispatch_string/decode_dispatch_string_binding.h @@ -21,9 +21,10 @@ ZL_Report DI_dispatch_string( const ZL_Input* variableSrcs[], size_t nbVariableSrcs); -#define DI_DISPATCH_STRING(id) \ - { \ - .transform_f = DI_dispatch_string, .name = "dispatch_string decode", \ +#define DI_DISPATCH_STRING(id) \ + { \ + .transform_f = DI_dispatch_string, \ + .name = "dispatch_string decode", \ } ZL_END_C_DECLS diff --git a/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.c b/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.c index 5e5961a1d..021c15f39 100644 --- a/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.c +++ b/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.c @@ -18,6 +18,7 @@ size_t ZL_DispatchString_maxDispatches(void) ZL_Report EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -30,14 +31,14 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) eictx, ZL_DISPATCH_STRING_NUM_OUTPUTS_PID) .paramValue; const size_t nbOutputs = (size_t)nbOutputsInt; - ZL_RET_R_IF_GT( - streamParameter_invalid, + ZL_ERR_IF_GT( nbOutputs, ZL_DISPATCH_STRING_MAX_DISPATCHES, - "dispatch_string: invalid number of outputs"); - ZL_RET_R_IF( streamParameter_invalid, + "dispatch_string: invalid number of outputs"); + ZL_ERR_IF( nbElts > 0 && nbOutputs == 0, + streamParameter_invalid, "dispatch_string: ill-formed degenerate case (%u, %i)", nbElts, nbOutputsInt); @@ -45,9 +46,9 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) const uint16_t* indices = (const uint16_t*)ZL_Encoder_getLocalParam( eictx, ZL_DISPATCH_STRING_INDICES_PID) .paramRef; - ZL_RET_R_IF_NULL( - streamParameter_invalid, + ZL_ERR_IF_NULL( indices, + streamParameter_invalid, "dispatch_string: indices pointer is null"); // validate indices stream and calculate output sizes @@ -57,21 +58,21 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) indicesValid &= (indices[i] < nbOutputs); } - ZL_RET_R_IF_NOT( - streamParameter_invalid, + ZL_ERR_IF_NOT( indicesValid == 1, + streamParameter_invalid, "Dispatch index out of bounds. Expected all to be in range [0,%u)", nbOutputs); size_t* outputSizes = ZL_Encoder_getScratchSpace(eictx, nbOutputs * sizeof(size_t)); - ZL_RET_R_IF_NULL(allocation, outputSizes); + ZL_ERR_IF_NULL(outputSizes, allocation); memset(outputSizes, 0, nbOutputs * sizeof(size_t)); for (size_t i = 0; i < nbElts; ++i) { outputSizes[indices[i]] += srcStrLens[i]; } - ZL_DLOG(DEBUG, + ZL_DLOG(TRANSFORM, "EI_dispatch_string: splitting %u strings into %i outputs", nbElts, nbOutputs); @@ -79,24 +80,24 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // create streams for outputs ZL_Output* indices_out = ZL_Encoder_createTypedStream(eictx, 0, nbElts, sizeof(uint16_t)); - ZL_RET_R_IF_NULL(allocation, indices_out); + ZL_ERR_IF_NULL(indices_out, allocation); // allocate space for output streams and raw handles ZL_Output** outs = ZL_Encoder_getScratchSpace(eictx, nbOutputs * sizeof(ZL_Output*)); - ZL_RET_R_IF_NULL(allocation, outs); + ZL_ERR_IF_NULL(outs, allocation); void** dstBuffers = ZL_Encoder_getScratchSpace(eictx, nbOutputs * sizeof(void*)); - ZL_RET_R_IF_NULL(allocation, dstBuffers); + ZL_ERR_IF_NULL(dstBuffers, allocation); uint32_t** dstStrLens = ZL_Encoder_getScratchSpace(eictx, nbOutputs * sizeof(uint32_t*)); - ZL_RET_R_IF_NULL(allocation, dstStrLens); + ZL_ERR_IF_NULL(dstStrLens, allocation); size_t* dstNbStrs = ZL_Encoder_getScratchSpace(eictx, nbOutputs * sizeof(size_t)); - ZL_RET_R_IF_NULL(allocation, dstNbStrs); + ZL_ERR_IF_NULL(dstNbStrs, allocation); if (nbElts > 0) { for (int i = 0; i < (int)nbOutputs; ++i) { ZL_Output* out = ZL_Encoder_createStringStream( @@ -104,7 +105,7 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) 1, nbElts, outputSizes[i] + ZL_DISPATCH_STRING_BLK_SIZE); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); outs[i] = out; dstBuffers[i] = ZL_Output_ptr(out); dstStrLens[i] = ZL_Output_stringLens(out); @@ -121,7 +122,7 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) indices); for (size_t i = 0u; i < nbOutputs; ++i) { - ZL_RET_R_IF_ERR(ZL_Output_commit(outs[i], dstNbStrs[i])); + ZL_ERR_IF_ERR(ZL_Output_commit(outs[i], dstNbStrs[i])); } } @@ -129,7 +130,7 @@ EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) if (nbElts > 0) { memcpy(ZL_Output_ptr(indices_out), indices, nbElts * sizeof(uint16_t)); } - ZL_RET_R_IF_ERR(ZL_Output_commit(indices_out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(indices_out, nbElts)); return ZL_returnSuccess(); } @@ -145,8 +146,12 @@ ZL_NodeID ZL_Compressor_registerDispatchStringNode( .refParams = ZL_REFPARAMS( { ZL_DISPATCH_STRING_INDICES_PID, dispatchIndicesParam }), }; - return ZL_Compressor_cloneNode( - cgraph, ZL_NODE_DISPATCH_STRING, &localParams); + return ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = ZL_NODE_DISPATCH_STRING, + .localParams = &localParams, + }); } ZL_RESULT_OF(ZL_EdgeList) @@ -155,10 +160,10 @@ ZL_Edge_runDispatchStringNode( int nbOutputs, const uint16_t* indices) { - ZL_RET_T_IF( - ZL_EdgeList, - nodeParameter_invalid, + ZL_RESULT_DECLARE_SCOPE(ZL_EdgeList, sctx); + ZL_ERR_IF( nbOutputs < 0 || nbOutputs > ZL_DISPATCH_STRING_MAX_DISPATCHES, + nodeParameter_invalid, "dispatch_string: invalid number of outputs (%i)", nbOutputs); diff --git a/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.h b/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.h index cd5392212..8bd80a66d 100644 --- a/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.h +++ b/src/openzl/codecs/dispatch_string/encode_dispatch_string_binding.h @@ -17,10 +17,11 @@ ZL_BEGIN_C_DECLS ZL_Report EI_dispatch_string(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_DISPATCH_STRING(id) \ - { \ - .gd = GRAPH_DISPATCH_STRING(id), .transform_f = EI_dispatch_string, \ - .name = "!zl.dispatch_string", \ +#define EI_DISPATCH_STRING(id) \ + { \ + .gd = GRAPH_DISPATCH_STRING(id), \ + .transform_f = EI_dispatch_string, \ + .name = "!zl.dispatch_string", \ } ZL_END_C_DECLS diff --git a/src/openzl/codecs/dispatch_string/graph_dispatch_string.h b/src/openzl/codecs/dispatch_string/graph_dispatch_string.h index a722fc1b4..baa88afff 100644 --- a/src/openzl/codecs/dispatch_string/graph_dispatch_string.h +++ b/src/openzl/codecs/dispatch_string/graph_dispatch_string.h @@ -5,11 +5,12 @@ #include "openzl/zl_data.h" // st_* -#define GRAPH_DISPATCH_STRING(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .voTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ +#define GRAPH_DISPATCH_STRING(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .voTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ } #endif diff --git a/src/openzl/codecs/divide_by/decode_divide_by_binding.c b/src/openzl/codecs/divide_by/decode_divide_by_binding.c index ea6cd95f3..9f8a4c334 100644 --- a/src/openzl/codecs/divide_by/decode_divide_by_binding.c +++ b/src/openzl/codecs/divide_by/decode_divide_by_binding.c @@ -9,6 +9,7 @@ ZL_Report DI_divide_by_int(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -21,57 +22,57 @@ ZL_Report DI_divide_by_int(ZL_Decoder* dictx, const ZL_Input* ins[]) void const* quotients = ZL_Input_ptr(in); if (header.size == 0) { - ZL_RET_R_ERR(corruption); + ZL_ERR(corruption); } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbElts, intWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); const uint8_t* headerPtr = (const uint8_t*)header.start; ZL_RESULT_OF(uint64_t) const varint = ZL_varintDecode( &headerPtr, (const uint8_t*)header.start + header.size); - ZL_TRY_LET_T(uint64_t, divisor, varint); - ZL_RET_R_IF_EQ(node_invalid_input, divisor, 0, "Attempt to divide by 0"); + ZL_TRY_LET(uint64_t, divisor, varint); + ZL_ERR_IF_EQ(divisor, 0, node_invalid_input, "Attempt to divide by 0"); switch (intWidth) { case 1: - ZL_RET_R_IF_GT(node_invalid_input, divisor, UCHAR_MAX); + ZL_ERR_IF_GT(divisor, UCHAR_MAX, node_invalid_input); for (size_t i = 0; i < nbElts; ++i) { - ZL_RET_R_IF_GT( - node_invalid_input, + ZL_ERR_IF_GT( ((const uint8_t*)quotients)[i], - UCHAR_MAX / divisor); + UCHAR_MAX / divisor, + node_invalid_input); } break; case 2: - ZL_RET_R_IF_GT(node_invalid_input, divisor, USHRT_MAX); + ZL_ERR_IF_GT(divisor, USHRT_MAX, node_invalid_input); for (size_t i = 0; i < nbElts; ++i) { - ZL_RET_R_IF_GT( - node_invalid_input, + ZL_ERR_IF_GT( ((const uint16_t*)quotients)[i], - USHRT_MAX / divisor); + USHRT_MAX / divisor, + node_invalid_input); } break; case 4: - ZL_RET_R_IF_GT(node_invalid_input, divisor, UINT_MAX); + ZL_ERR_IF_GT(divisor, UINT_MAX, node_invalid_input); for (size_t i = 0; i < nbElts; ++i) { - ZL_RET_R_IF_GT( - node_invalid_input, + ZL_ERR_IF_GT( ((const uint32_t*)quotients)[i], - UINT_MAX / divisor); + UINT_MAX / divisor, + node_invalid_input); } break; case 8: for (size_t i = 0; i < nbElts; ++i) { - ZL_RET_R_IF_GT( - node_invalid_input, + ZL_ERR_IF_GT( ((const uint64_t*)quotients)[i], - ULLONG_MAX / divisor); + ULLONG_MAX / divisor, + node_invalid_input); } break; default: ZL_ASSERT_FAIL("Unsupported int width"); } ZS_divideByDecode(ZL_Output_ptr(out), quotients, nbElts, divisor, intWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/divide_by/decode_divide_by_binding.h b/src/openzl/codecs/divide_by/decode_divide_by_binding.h index 6e8c8ab7c..2740ef753 100644 --- a/src/openzl/codecs/divide_by/decode_divide_by_binding.h +++ b/src/openzl/codecs/divide_by/decode_divide_by_binding.h @@ -12,10 +12,8 @@ ZL_BEGIN_C_DECLS // Use and generate Integer streams ZL_Report DI_divide_by_int(ZL_Decoder* dictx, const ZL_Input* in[]); -#define DI_DIVIDE_BY_INT(id) \ - { \ - .transform_f = DI_divide_by_int, .name = "divide by" \ - } +#define DI_DIVIDE_BY_INT(id) \ + { .transform_f = DI_divide_by_int, .name = "divide by" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/divide_by/encode_divide_by_binding.c b/src/openzl/codecs/divide_by/encode_divide_by_binding.c index fb964480b..8ce9d4629 100644 --- a/src/openzl/codecs/divide_by/encode_divide_by_binding.c +++ b/src/openzl/codecs/divide_by/encode_divide_by_binding.c @@ -21,56 +21,47 @@ static ZL_RESULT_OF(uint64_t) getDivisor( uint64_t divisor, const void* src) { + ZL_RESULT_DECLARE_SCOPE(uint64_t, NULL); if (divisor == 0) { divisor = ZL_gcdVec(src, nbInts, intWidth); return ZL_RESULT_WRAP_VALUE(uint64_t, divisor); } switch (intWidth) { case 1: - ZL_RET_T_IF_GT( - uint64_t, - node_invalid_input, + ZL_ERR_IF_GT( divisor, UCHAR_MAX, - "Divisor too large"); - ZL_RET_T_IF_NE( - uint64_t, node_invalid_input, + "Divisor too large"); + ZL_ERR_IF_NE( ZL_firstIndexNotDivisibleBy8(src, nbInts, divisor), - nbInts); + nbInts, + node_invalid_input); break; case 2: - ZL_RET_T_IF_GT( - uint64_t, - node_invalid_input, + ZL_ERR_IF_GT( divisor, USHRT_MAX, - "Divisor too large"); - ZL_RET_T_IF_NE( - uint64_t, node_invalid_input, + "Divisor too large"); + ZL_ERR_IF_NE( ZL_firstIndexNotDivisibleBy16(src, nbInts, divisor), - nbInts); + nbInts, + node_invalid_input); break; case 4: - ZL_RET_T_IF_GT( - uint64_t, - node_invalid_input, - divisor, - UINT_MAX, - "Divisor too large"); - ZL_RET_T_IF_NE( - uint64_t, - node_invalid_input, + ZL_ERR_IF_GT( + divisor, UINT_MAX, node_invalid_input, "Divisor too large"); + ZL_ERR_IF_NE( ZL_firstIndexNotDivisibleBy32(src, nbInts, divisor), - nbInts); + nbInts, + node_invalid_input); break; case 8: - ZL_RET_T_IF_NE( - uint64_t, - node_invalid_input, + ZL_ERR_IF_NE( ZL_firstIndexNotDivisibleBy64(src, nbInts, divisor), - nbInts); + nbInts, + node_invalid_input); break; default: ZL_ASSERT_FAIL("Unsupported int width"); @@ -81,6 +72,7 @@ static ZL_RESULT_OF(uint64_t) getDivisor( ZL_Report EI_divide_by_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -92,24 +84,25 @@ EI_divide_by_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const nbInts = ZL_Input_numElts(in); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, nbInts, intWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); const void* src = ZL_Input_ptr(in); void* dst = ZL_Output_ptr(out); uint8_t header[ZL_VARINT_LENGTH_64]; - ZL_RefParam div = ZL_Encoder_getLocalParam(eictx, ZL_DIVIDE_BY_PID); - ZL_RESULT_OF(uint64_t) - divisor = getDivisor( - intWidth, - nbInts, - div.paramRef ? *(const uint64_t*)div.paramRef : 0, - src); - ZL_RET_R_IF_ERR(divisor); - uint64_t divisorValue = ZL_RES_value(divisor); + ZL_RefParam div = ZL_Encoder_getLocalParam(eictx, ZL_DIVIDE_BY_PID); + uint64_t divParam = 0; + if (div.paramRef != NULL) { + ZL_ERR_IF_NE(div.paramSize, sizeof(uint64_t), graphParameter_invalid); + divParam = *(const uint64_t*)div.paramRef; + } + ZL_TRY_LET( + uint64_t, + divisorValue, + getDivisor(intWidth, nbInts, divParam, src)); ZS_divideByEncode(dst, src, nbInts, divisorValue, intWidth); size_t encodeSize = ZL_varintEncode64Fast(divisorValue, header); ZL_Encoder_sendCodecHeader(eictx, header, encodeSize); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbInts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbInts)); return ZL_returnSuccess(); } @@ -124,8 +117,12 @@ ZL_NodeID ZL_Compressor_registerDivideByNode( ZL_LocalCopyParams copyParams = { .copyParams = ©Param, .nbCopyParams = 1 }; ZL_LocalParams localParams = { .copyParams = copyParams }; - ZL_NodeID const node_divideBy = - ZL_Compressor_cloneNode(cgraph, ZL_NODE_DIVIDE_BY, &localParams); + ZL_NodeID const node_divideBy = ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = ZL_NODE_DIVIDE_BY, + .localParams = &localParams, + }); return node_divideBy; } diff --git a/src/openzl/codecs/divide_by/encode_divide_by_binding.h b/src/openzl/codecs/divide_by/encode_divide_by_binding.h index 3f76b7fd3..833952a98 100644 --- a/src/openzl/codecs/divide_by/encode_divide_by_binding.h +++ b/src/openzl/codecs/divide_by/encode_divide_by_binding.h @@ -12,11 +12,10 @@ ZL_BEGIN_C_DECLS ZL_Report EI_divide_by_int(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_DIVIDE_BY_INT(id) \ - { \ - .gd = NUMPIPE_GRAPH(id), .transform_f = EI_divide_by_int, \ - .name = "!zl.divide_by" \ - } +#define EI_DIVIDE_BY_INT(id) \ + { .gd = NUMPIPE_GRAPH(id), \ + .transform_f = EI_divide_by_int, \ + .name = "!zl.divide_by" } // Legacy ZL_Report EI_divide_by_int_as_typedTransform( diff --git a/src/openzl/codecs/encoder_registry.c b/src/openzl/codecs/encoder_registry.c index a6bd75b96..aa9082155 100644 --- a/src/openzl/codecs/encoder_registry.c +++ b/src/openzl/codecs/encoder_registry.c @@ -2,6 +2,10 @@ #include "openzl/codecs/encoder_registry.h" +#include "openzl/codecs/bitSplit/encode_bitSplit_binding.h" +#include "openzl/codecs/bitSplit/encode_bitsplit_bf16_binding.h" +#include "openzl/codecs/bitSplit/encode_bitsplit_fp_binding.h" +#include "openzl/codecs/bitSplit/encode_bitsplit_top8_binding.h" #include "openzl/codecs/bitpack/encode_bitpack_binding.h" #include "openzl/codecs/bitunpack/encode_bitunpack_binding.h" #include "openzl/codecs/concat/encode_concat_binding.h" @@ -17,24 +21,25 @@ #include "openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.h" #include "openzl/codecs/interleave/encode_interleave_binding.h" #include "openzl/codecs/lz/encode_lz_binding.h" +#include "openzl/codecs/lz4/encode_lz4_binding.h" #include "openzl/codecs/merge_sorted/encode_merge_sorted_binding.h" +#include "openzl/codecs/mux_lengths/encode_mux_lengths_binding.h" #include "openzl/codecs/parse_int/encode_parse_int_binding.h" +#include "openzl/codecs/partition/encode_partition_binding.h" #include "openzl/codecs/prefix/encode_prefix_binding.h" #include "openzl/codecs/quantize/encode_quantize_binding.h" #include "openzl/codecs/range_pack/encode_range_pack_binding.h" #include "openzl/codecs/rolz/encode_rolz_binding.h" +#include "openzl/codecs/sentinel/encode_sentinel_binding.h" #include "openzl/codecs/splitByStruct/encode_splitByStruct_binding.h" #include "openzl/codecs/splitN/encode_splitN_binding.h" +#include "openzl/codecs/splitN/encode_split_byrange_binding.h" #include "openzl/codecs/tokenize/encode_tokenize_binding.h" #include "openzl/codecs/transpose/encode_transpose_binding.h" #include "openzl/codecs/zigzag/encode_zigzag_binding.h" #include "openzl/codecs/zstd/encode_zstd_binding.h" #include "openzl/common/assertion.h" #include "openzl/compress/private_nodes.h" -#include "openzl/compress/selectors/selector_compress.h" -#include "openzl/compress/selectors/selector_constant.h" -#include "openzl/compress/selectors/selector_genericLZ.h" -#include "openzl/compress/selectors/selector_store.h" #include "openzl/shared/utils.h" #include "openzl/zl_version.h" @@ -108,6 +113,15 @@ const CNode ER_standardNodes[STANDARD_ENCODERS_NB] = { REGISTER_TRANSFORM(ZL_StandardNodeID_tokenize_string, ZL_StandardTransformID_tokenize_string, 11, EI_TOKENIZE_STRING), REGISTER_TRANSFORM(ZL_StandardNodeID_quantize_offsets, ZL_StandardTransformID_quantize_offsets, 3, EI_QUANTIZE_OFFSETS), REGISTER_TRANSFORM(ZL_StandardNodeID_quantize_lengths, ZL_StandardTransformID_quantize_lengths, 3, EI_QUANTIZE_LENGTHS), + REGISTER_TRANSFORM(ZL_StandardNodeID_bitsplit_top8, ZL_StandardTransformID_bitSplit, 24, EI_BITSPLIT_TOP8), + REGISTER_TRANSFORM(ZL_StandardNodeID_bitsplit_fp, ZL_StandardTransformID_bitSplit, 24, EI_BITSPLIT_FP), + REGISTER_TRANSFORM(ZL_StandardNodeID_bitsplit_bf16, ZL_StandardTransformID_bitSplit, 24, EI_BITSPLIT_BF16), + REGISTER_TRANSFORM(ZL_StandardNodeID_partition, ZL_StandardTransformID_partition, 24, EI_PARTITION), + REGISTER_TRANSFORM(ZL_StandardNodeID_split_byrange, ZL_StandardTransformID_splitn_num, 24, EI_SPLIT_BYRANGE), + REGISTER_TRANSFORM(ZL_StandardNodeID_sentinel_byte, ZL_StandardTransformID_sentinel, 24, EI_SENTINEL_BYTE), + REGISTER_TRANSFORM(ZL_StandardNodeID_sentinel_num, ZL_StandardTransformID_sentinel, 24, EI_SENTINEL), + REGISTER_TRANSFORM(ZL_StandardNodeID_lz, ZL_StandardTransformID_lz, 24, EI_LZ), + REGISTER_TRANSFORM(ZL_StandardNodeID_mux_lengths, ZL_StandardTransformID_mux_lengths, 24, EI_MUX_LENGTHS), // Private Nodes REGISTER_TRANSFORM(ZL_PrivateStandardNodeID_set_string_lens, ZL_StandardTransformID_convert_serial_string, 10, EI_SETSTRINGLENS), @@ -128,6 +142,8 @@ const CNode ER_standardNodes[STANDARD_ENCODERS_NB] = { REGISTER_TRANSFORM(ZL_PrivateStandardNodeID_tokenize_sorted, ZL_StandardTransformID_tokenize_numeric, 8, EI_TOKENIZE_SORTED), REGISTER_TRANSFORM(ZL_PrivateStandardNodeID_tokenize_string_sorted, ZL_StandardTransformID_tokenize_string, 11, EI_TOKENIZE_VSF_SORTED), REGISTER_TRANSFORM(ZL_PrivateStandardNodeID_dedup_num_trusted, ZL_StandardTransformID_dedup_num, 16, EI_DEDUP_NUM_TRUSTED), + REGISTER_TRANSFORM(ZL_PrivateStandardNodeID_lz4, ZL_StandardTransformID_lz4, 23, EI_LZ4), + REGISTER_TRANSFORM(ZL_PrivateStandardNodeID_bitSplit, ZL_StandardTransformID_bitSplit, 24, EI_BITSPLIT), // Deprecated Nodes REGISTER_DEPRECATED_TRANSFORM(ZL_PrivateStandardNodeID_rolz_deprecated, ZL_StandardTransformID_rolz, 3, 12, EI_ROLZ), @@ -171,9 +187,10 @@ void ER_getAllStandardNodeIDs(ZL_NodeID* nodes, size_t nodesSize) ZL_Report ER_forEachStandardNode(ER_StandardNodesCallback cb, void* opaque) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (ZL_IDType nid = 0; nid < ZL_ARRAY_SIZE(ER_standardNodes); ++nid) { if (ER_standardNodes[nid].nodetype == node_internalTransform) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( cb(opaque, (ZL_NodeID){ nid }, &ER_standardNodes[nid])); } } diff --git a/src/openzl/codecs/entropy/decode_entropy_binding.c b/src/openzl/codecs/entropy/decode_entropy_binding.c index 38fec90d9..586255055 100644 --- a/src/openzl/codecs/entropy/decode_entropy_binding.c +++ b/src/openzl/codecs/entropy/decode_entropy_binding.c @@ -63,38 +63,39 @@ buildFSEDTable(ZL_Decoder* dictx, int16_t const* norm, size_t nbSymbols) ZL_Report DI_fse_v2(ZL_Decoder* dictx, const ZL_Input* in[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const normStream = in[0]; ZL_Input const* const bitsStream = in[1]; ZL_ASSERT_EQ(ZL_Input_type(normStream), ZL_Type_numeric); ZL_ASSERT_EQ(ZL_Input_type(bitsStream), ZL_Type_serial); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(normStream), 2); + ZL_ERR_IF_NE(ZL_Input_eltWidth(normStream), 2, corruption); FSE_DTable const* dtable = buildFSEDTable( dictx, (int16_t const*)ZL_Input_ptr(normStream), ZL_Input_numElts(normStream)); - ZL_RET_R_IF_NULL(corruption, dtable); + ZL_ERR_IF_NULL(dtable, corruption); unsigned nbStates; size_t dstSize; { ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_LT(corruption, header.size, 2, "Min size = 2 bytes"); - ZL_RET_R_IF_GT(corruption, header.size, 9, "Max size = 9 bytes"); + ZL_ERR_IF_LT(header.size, 2, corruption, "Min size = 2 bytes"); + ZL_ERR_IF_GT(header.size, 9, corruption, "Max size = 9 bytes"); uint8_t const* ptr = (uint8_t const*)header.start; nbStates = *ptr++; - ZL_RET_R_IF_NOT( - corruption, + ZL_ERR_IF_NOT( nbStates == 2 || nbStates == 4, + corruption, "Unsupported number of states"); dstSize = ZL_readLE64_N(ptr, header.size - 1); - ZL_RET_R_IF_LT(corruption, dstSize, 2, "Must have at least 2 elements"); + ZL_ERR_IF_LT(dstSize, 2, corruption, "Must have at least 2 elements"); } ZL_Output* const outStream = ZL_Decoder_create1OutStream(dictx, dstSize, 1); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); size_t const ret = FSE_decompress_usingDTable( ZL_Output_ptr(outStream), @@ -103,25 +104,26 @@ ZL_Report DI_fse_v2(ZL_Decoder* dictx, const ZL_Input* in[]) ZL_Input_numElts(bitsStream), dtable, nbStates); - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( FSE_isError(ret), + corruption, "FSE decoding failed: %s", FSE_getErrorName(ret)); - ZL_RET_R_IF_NE(corruption, ret, dstSize); + ZL_ERR_IF_NE(ret, dstSize, corruption); - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, dstSize)); return ZL_returnSuccess(); } ZL_Report DI_fse_ncount(ZL_Decoder* dictx, const ZL_Input* in[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const srcStream = in[0]; ZL_Output* ncountStream = ZL_Decoder_create1OutStream(dictx, 256, sizeof(short)); - ZL_RET_R_IF_NULL(allocation, ncountStream); + ZL_ERR_IF_NULL(ncountStream, allocation); unsigned maxSymbolValue = 255; unsigned tableLog = FSE_MAX_TABLELOG; @@ -131,14 +133,14 @@ ZL_Report DI_fse_ncount(ZL_Decoder* dictx, const ZL_Input* in[]) &tableLog, ZL_Input_ptr(srcStream), ZL_Input_numElts(srcStream)); - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( FSE_isError(ncountSize), + corruption, "Failed to read nCount: %s", FSE_getErrorName(ncountSize)); - ZL_RET_R_IF_NE(corruption, ncountSize, ZL_Input_numElts(srcStream)); + ZL_ERR_IF_NE(ncountSize, ZL_Input_numElts(srcStream), corruption); - ZL_RET_R_IF_ERR(ZL_Output_commit(ncountStream, 1 + maxSymbolValue)); + ZL_ERR_IF_ERR(ZL_Output_commit(ncountStream, 1 + maxSymbolValue)); return ZL_returnSuccess(); } @@ -285,6 +287,7 @@ static HUF_DTable const* buildHUFDTable( ZL_Report DI_huffman_v2(ZL_Decoder* dictx, const ZL_Input* in[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const weightsStream = in[0]; ZL_Input const* const bitsStream = in[1]; @@ -293,19 +296,19 @@ ZL_Report DI_huffman_v2(ZL_Decoder* dictx, const ZL_Input* in[]) ZL_ASSERT_EQ(ZL_Input_type(weightsStream), ZL_Type_numeric); ZL_ASSERT_EQ(ZL_Input_type(bitsStream), ZL_Type_serial); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(weightsStream), 1); + ZL_ERR_IF_NE(ZL_Input_eltWidth(weightsStream), 1, corruption); bool x4; size_t dstSize; { ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_LT(corruption, header.size, 2, "Min size = 2 bytes"); - ZL_RET_R_IF_GT(corruption, header.size, 9, "Max size = 9 bytes"); + ZL_ERR_IF_LT(header.size, 2, corruption, "Min size = 2 bytes"); + ZL_ERR_IF_GT(header.size, 9, corruption, "Max size = 9 bytes"); uint8_t const* ptr = (uint8_t const*)header.start; x4 = (*ptr & 0x1) != 0; ++ptr; dstSize = ZL_readLE64_N(ptr, header.size - 1); - ZL_RET_R_IF_LT(corruption, dstSize, 2, "Must have at least 2 elements"); + ZL_ERR_IF_LT(dstSize, 2, corruption, "Must have at least 2 elements"); } bool const x2 = x4 @@ -317,10 +320,10 @@ ZL_Report DI_huffman_v2(ZL_Decoder* dictx, const ZL_Input* in[]) (uint8_t const*)ZL_Input_ptr(weightsStream), ZL_Input_numElts(weightsStream), x2); - ZL_RET_R_IF_NULL(corruption, dtable); + ZL_ERR_IF_NULL(dtable, corruption); ZL_Output* const outStream = ZL_Decoder_create1OutStream(dictx, dstSize, 1); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); { void* dst = ZL_Output_ptr(outStream); @@ -333,15 +336,15 @@ ZL_Report DI_huffman_v2(ZL_Decoder* dictx, const ZL_Input* in[]) : HUF_decompress1X1_usingDTable; ZL_ASSERT_EQ(!x4 && x2, false); size_t const ret = decode(dst, dstSize, src, srcSize, dtable); - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( HUF_isError(ret), + corruption, "HUF decoding failed: %s", HUF_getErrorName(ret)); - ZL_RET_R_IF_NE(corruption, ret, dstSize); + ZL_ERR_IF_NE(ret, dstSize, corruption); } - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, dstSize)); return ZL_returnSuccess(); } @@ -414,6 +417,7 @@ static ZS_Huf16DElt const* buildHUF16DTable( ZL_Report DI_huffman_struct_v2(ZL_Decoder* dictx, const ZL_Input* in[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const weightsStream = in[0]; ZL_Input const* const bitsStream = in[1]; @@ -422,19 +426,19 @@ ZL_Report DI_huffman_struct_v2(ZL_Decoder* dictx, const ZL_Input* in[]) ZL_ASSERT_EQ(ZL_Input_type(weightsStream), ZL_Type_numeric); ZL_ASSERT_EQ(ZL_Input_type(bitsStream), ZL_Type_serial); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(weightsStream), 1); + ZL_ERR_IF_NE(ZL_Input_eltWidth(weightsStream), 1, corruption); bool x4; size_t dstSize; { ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_LT(corruption, header.size, 2, "Min size = 2 bytes"); - ZL_RET_R_IF_GT(corruption, header.size, 9, "Max size = 9 bytes"); + ZL_ERR_IF_LT(header.size, 2, corruption, "Min size = 2 bytes"); + ZL_ERR_IF_GT(header.size, 9, corruption, "Max size = 9 bytes"); uint8_t const* ptr = (uint8_t const*)header.start; x4 = (*ptr & 0x1) != 0; ++ptr; dstSize = ZL_readLE64_N(ptr, header.size - 1); - ZL_RET_R_IF_LT(corruption, dstSize, 2, "Must have at least 2 elements"); + ZL_ERR_IF_LT(dstSize, 2, corruption, "Must have at least 2 elements"); } int tableLog; @@ -443,10 +447,10 @@ ZL_Report DI_huffman_struct_v2(ZL_Decoder* dictx, const ZL_Input* in[]) (uint8_t const*)ZL_Input_ptr(weightsStream), ZL_Input_numElts(weightsStream), &tableLog); - ZL_RET_R_IF_NULL(corruption, dtable); + ZL_ERR_IF_NULL(dtable, corruption); ZL_Output* const outStream = ZL_Decoder_create1OutStream(dictx, dstSize, 2); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); { ZL_RC src = ZL_RC_wrap( @@ -456,12 +460,12 @@ ZL_Report DI_huffman_struct_v2(ZL_Decoder* dictx, const ZL_Input* in[]) dst, dstSize, &src, dtable, tableLog) : ZS_largeHuffmanDecodeUsingDTable( dst, dstSize, &src, dtable, tableLog); - ZL_RET_R_IF_ERR(report); - ZL_RET_R_IF_NE(corruption, ZL_validResult(report), dstSize); - ZL_RET_R_IF_NE(corruption, ZL_RC_avail(&src), 0); + ZL_ERR_IF_ERR(report); + ZL_ERR_IF_NE(ZL_validResult(report), dstSize, corruption); + ZL_ERR_IF_NE(ZL_RC_avail(&src), 0, corruption); } - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, dstSize)); return ZL_returnSuccess(); } @@ -469,13 +473,14 @@ ZL_Report DI_huffman_struct_v2(ZL_Decoder* dictx, const ZL_Input* in[]) static ZL_Report DI_entropyDstBound(const void* src, size_t srcSize, size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (srcSize == 0) { return ZL_returnValue(0); } ZL_Report const ret = ZS_Entropy_getDecodedSize(src, srcSize, eltWidth); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF( ZL_isError(ret), + GENERIC, "corruption: ZS_Entropy_getDecodedSize failed"); return ret; } @@ -488,6 +493,7 @@ static ZL_Report DI_entropyDecode( size_t eltWidth, ZS_Entropy_DecodeParameters const* optionalParams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (srcSize == 0) { return ZL_returnValue(0); } @@ -500,8 +506,8 @@ static ZL_Report DI_entropyDecode( &rc, eltWidth, optionalParams ? optionalParams : &deafultParams); - ZL_RET_R_IF(corruption, ZL_isError(ret), "ZS_Entropy_decodeDefault failed"); - ZL_RET_R_IF_NE(corruption, ZL_RC_avail(&rc), 0, "Not all input consumed"); + ZL_ERR_IF(ZL_isError(ret), corruption, "ZS_Entropy_decodeDefault failed"); + ZL_ERR_IF_NE(ZL_RC_avail(&rc), 0, corruption, "Not all input consumed"); return ret; } @@ -509,6 +515,7 @@ static ZL_Report DI_entropyDecode( static ZL_Report DI_huffman_typed(ZL_Decoder* dictx, const ZL_Input* ins[], bool hasHeader) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -533,50 +540,54 @@ DI_huffman_typed(ZL_Decoder* dictx, const ZL_Input* ins[], bool hasHeader) ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); uint8_t const* hdr = (uint8_t const*)header.start; uint8_t const* hdrEnd = hdr + header.size; - ZL_RET_R_IF_LT(header_unknown, header.size, 2); + ZL_ERR_IF_LT(header.size, 2, header_unknown); bool const isTransposed = *hdr++ != 0; ZL_RESULT_OF(uint64_t) const r = ZL_varintDecode(&hdr, hdrEnd); - ZL_RET_R_IF(header_unknown, ZL_RES_isError(r)); - ZL_RET_R_IF_NE(header_unknown, hdr, hdrEnd); + ZL_ERR_IF(ZL_RES_isError(r), header_unknown); + ZL_ERR_IF_NE(hdr, hdrEnd, header_unknown); uint64_t const eltWidth = ZL_RES_value(r); - ZL_RET_R_IF_EQ(header_unknown, eltWidth, 0, "Invalid element width!"); + ZL_ERR_IF_EQ(eltWidth, 0, header_unknown, "Invalid element width!"); entropyEltWidth = isTransposed ? 1 : eltWidth; - ZL_TRY_LET_R(nbElts, DI_entropyDstBound(src, srcSize, entropyEltWidth)); + ZL_TRY_LET( + size_t, + nbElts, + DI_entropyDstBound(src, srcSize, entropyEltWidth)); entropyNbElts = nbElts; dstEltWidth = eltWidth; dstNbElts = entropyNbElts / (dstEltWidth / entropyEltWidth); } else { entropyEltWidth = 1; - ZL_TRY_LET_R(nbElts, DI_entropyDstBound(src, srcSize, 1)); + ZL_TRY_LET(size_t, nbElts, DI_entropyDstBound(src, srcSize, 1)); entropyNbElts = nbElts; dstEltWidth = 1; dstNbElts = entropyNbElts; } - ZL_RET_R_IF_NE( - header_unknown, + ZL_ERR_IF_NE( entropyNbElts * entropyEltWidth, dstNbElts * dstEltWidth, + header_unknown, "Overflow computing element widths"); if (DI_getFrameFormatVersion(dictx) >= 11) { - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( dstEltWidth, 2, + corruption, "eltWidth > 2 is not supported in version 11 or newer."); } //> Create the output stream. ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstNbElts, dstEltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); //> Decode & tell how much we wrote to the output buffer. - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, dSize, DI_entropyDecode( ZL_Output_ptr(out), @@ -585,8 +596,8 @@ DI_huffman_typed(ZL_Decoder* dictx, const ZL_Input* ins[], bool hasHeader) srcSize, entropyEltWidth, NULL)); - ZL_RET_R_IF_NE(corruption, dSize, entropyNbElts, "Entropy decoding failed"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_NE(dSize, entropyNbElts, corruption, "Entropy decoding failed"); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstNbElts)); //> Return the number of output streams. return ZL_returnValue(1); @@ -604,6 +615,7 @@ ZL_Report DI_huffman_fixed(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_Report DI_fse_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -620,37 +632,38 @@ ZL_Report DI_fse_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) if (header.size) { // Header should be only 1 bytes, anything else is probably a // corruption - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( header.size, 1, + corruption, "FSE header size should be at most 1, got unexpected header size - %d", header.size); nbStates = *(uint8_t const*)header.start; // We support only 2 or 4 states, anything else is probably a // corruption - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( nbStates != 2 && nbStates != 4, + corruption, "FSE supports only 2 or 4 states, got unexpected number of states - %d", nbStates); } - ZL_TRY_LET_R(nbElts, DI_entropyDstBound(src, srcSize, 1)); + ZL_TRY_LET(size_t, nbElts, DI_entropyDstBound(src, srcSize, 1)); // Create the output stream. ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbElts, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Decode & tell how much we wrote to the output buffer. ZS_Entropy_DecodeParameters params = ZS_Entropy_DecodeParameters_default(); params.fseNbStates = nbStates; - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, dSize, DI_entropyDecode( ZL_Output_ptr(out), nbElts, src, srcSize, 1, ¶ms)); - ZL_RET_R_IF_NE(corruption, dSize, nbElts, "FSE decoding failed"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_NE(dSize, nbElts, corruption, "FSE decoding failed"); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); // Return the number of output streams. return ZL_returnValue(1); diff --git a/src/openzl/codecs/entropy/decode_entropy_binding.h b/src/openzl/codecs/entropy/decode_entropy_binding.h index d871bb0fa..9381ef955 100644 --- a/src/openzl/codecs/entropy/decode_entropy_binding.h +++ b/src/openzl/codecs/entropy/decode_entropy_binding.h @@ -19,42 +19,23 @@ ZL_Report DI_fse_typed(ZL_Decoder* dictx, const ZL_Input* in[]); ZL_Report DI_huffman_serialized(ZL_Decoder* dictx, const ZL_Input* in[]); ZL_Report DI_huffman_fixed(ZL_Decoder* dictx, const ZL_Input* in[]); -#define DI_FSE_V2(id) \ - { \ - .transform_f = DI_fse_v2, .name = "fse v2" \ - } - -#define DI_FSE_NCOUNT(id) \ - { \ - .transform_f = DI_fse_ncount, .name = "fse ncount" \ - } - -#define DI_HUFFMAN_V2(id) \ - { \ - .transform_f = DI_huffman_v2, .name = "huffman v2" \ - } - -#define DI_HUFFMAN_STRUCT_V2(id) \ - { \ - .transform_f = DI_huffman_struct_v2, .name = "huffman struct v2" \ - } +#define DI_FSE_V2(id) { .transform_f = DI_fse_v2, .name = "fse v2" } + +#define DI_FSE_NCOUNT(id) { .transform_f = DI_fse_ncount, .name = "fse ncount" } + +#define DI_HUFFMAN_V2(id) { .transform_f = DI_huffman_v2, .name = "huffman v2" } + +#define DI_HUFFMAN_STRUCT_V2(id) \ + { .transform_f = DI_huffman_struct_v2, .name = "huffman struct v2" } // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define DI_FSE(id) \ - { \ - .transform_f = DI_fse_typed, .name = "fse" \ - } - -#define DI_HUFFMAN(id) \ - { \ - .transform_f = DI_huffman_serialized, .name = "huffman" \ - } - -#define DI_HUFFMAN_FIXED(id) \ - { \ - .transform_f = DI_huffman_fixed \ - } +#define DI_FSE(id) { .transform_f = DI_fse_typed, .name = "fse" } + +#define DI_HUFFMAN(id) \ + { .transform_f = DI_huffman_serialized, .name = "huffman" } + +#define DI_HUFFMAN_FIXED(id) { .transform_f = DI_huffman_fixed } ZL_END_C_DECLS diff --git a/src/openzl/codecs/entropy/decode_huffman_kernel.c b/src/openzl/codecs/entropy/decode_huffman_kernel.c index 5c9b423f5..93f08c7a4 100644 --- a/src/openzl/codecs/entropy/decode_huffman_kernel.c +++ b/src/openzl/codecs/entropy/decode_huffman_kernel.c @@ -6,10 +6,7 @@ #include "openzl/codecs/entropy/common_huffman_kernel.h" #include "openzl/codecs/entropy/deprecated/common_entropy.h" -#include "openzl/common/debug.h" #include "openzl/fse/bitstream.h" -#include "openzl/fse/huf.h" -#include "openzl/shared/mem.h" #include "openzl/shared/utils.h" #include "openzl/zl_errors.h" @@ -165,6 +162,7 @@ ZL_FORCE_INLINE ZL_Report ZS_largeHuffmanDecodeX4_body( int tableLog, int const kUnroll) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint16_t* ptrs[4]; memcpy(ptrs, dsts, sizeof(ptrs)); if ((size_t)(dsts[4] - dsts[3]) >= (size_t)kUnroll) { @@ -184,7 +182,7 @@ ZL_FORCE_INLINE ZL_Report ZS_largeHuffmanDecodeX4_body( } for (int i = 0; i < 4; ++i) { if (ptrs[i] > dsts[i + 1]) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZS_largeHuffmanDecode_body( ptrs[i], @@ -204,23 +202,24 @@ ZL_Report ZS_largeHuffmanDecodeUsingDTableX4( ZS_Huf16DElt const* dtable, int tableLog) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint16_t* dsts[5]; BIT_DStream_t dstreams[4]; uint16_t* dstEnd = dst; for (int i = 0; i < 4; ++i) { dsts[i] = dstEnd; if (ZL_RC_avail(src) < 8) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint32_t const dstSize = ZL_RC_popCE32(src); uint32_t const srcSize = ZL_RC_popCE32(src); if (ZL_RC_avail(src) < srcSize || capacity < (size_t)(dstSize + (dstEnd - dst))) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (ERR_isError( BIT_initDStream(&dstreams[i], ZL_RC_ptr(src), srcSize))) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_RC_advance(src, srcSize); dstEnd += dstSize; @@ -256,17 +255,18 @@ ZL_Report ZS_largeHuffmanDecodeUsingDTable( ZS_Huf16DElt const* dtable, int tableLog) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_RC_avail(src) < 8) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint32_t const dstSize = ZL_RC_popCE32(src); uint32_t const srcSize = ZL_RC_popCE32(src); if (ZL_RC_avail(src) < srcSize || capacity < dstSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } BIT_DStream_t dstream; if (ERR_isError(BIT_initDStream(&dstream, ZL_RC_ptr(src), srcSize))) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_RC_advance(src, srcSize); @@ -297,19 +297,20 @@ ZL_Report ZS_largeHuffmanDecodeUsingDTable( ZL_Report ZS_largeHuffmanDecode(uint16_t* dst, size_t capacity, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_RC_avail(src) < 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZS_HufTransformPrefix_e const header = (ZS_HufTransformPrefix_e)ZL_RC_pop(src); if (header == ZS_HufTransformPrefix_constant) { - ZL_TRY_LET_CONST_T(uint64_t, nelts, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, nelts, ZL_RC_popVarint(src)); if (ZL_RC_avail(src) < sizeof(uint16_t)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint16_t const value = ZL_RC_popCE16(src); if (capacity < nelts) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } for (size_t i = 0; i < nelts; ++i) { dst[i] = value; @@ -317,12 +318,12 @@ ZL_Report ZS_largeHuffmanDecode(uint16_t* dst, size_t capacity, ZL_RC* src) return ZL_returnValue((size_t)nelts); } if (header == ZS_HufTransformPrefix_lit) { - ZL_TRY_LET_CONST_T(uint64_t, nelts, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, nelts, ZL_RC_popVarint(src)); if (capacity < nelts) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (ZL_RC_avail(src) < nelts * sizeof(uint16_t)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } for (size_t i = 0; i < nelts; ++i) { dst[i] = ZL_RC_popCE16(src); @@ -330,19 +331,19 @@ ZL_Report ZS_largeHuffmanDecode(uint16_t* dst, size_t capacity, ZL_RC* src) return ZL_returnValue((size_t)nelts); } if (header != ZS_HufTransformPrefix_huf) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } int tableLog; ZS_Huf16DElt* const dtable = ZS_largeHuffmanCreateDTable(src, &tableLog); if (dtable == NULL) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } // Decompress if (ZL_RC_avail(src) < 1) { free(dtable); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } bool const x4 = (bool)ZL_RC_pop(src); diff --git a/src/openzl/codecs/entropy/deprecated/decode_entropy_decompress.c b/src/openzl/codecs/entropy/deprecated/decode_entropy_decompress.c index 4ae64837c..1f7238ccd 100644 --- a/src/openzl/codecs/entropy/deprecated/decode_entropy_decompress.c +++ b/src/openzl/codecs/entropy/deprecated/decode_entropy_decompress.c @@ -67,9 +67,10 @@ static ZL_Report ZS_Bit_getHeader(ZS_Bit_Header_t* header, ZL_RC* src); ZL_Report ZS_Entropy_getType(void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (srcSize == 0) { ZL_DLOG(ERROR, "Source is empty"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t const header = *(uint8_t const*)src; ZS_Entropy_Type_e const type = header & 0x7; @@ -78,7 +79,7 @@ ZL_Report ZS_Entropy_getType(void const* src, size_t srcSize) "Assumption"); if (type >= ZS_Entropy_Type_reserved0) { ZL_DLOG(V1, "Bad type"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_DLOG(V1, "Type = %d", type); return ZL_returnValue(type); @@ -90,52 +91,53 @@ static ZL_Report ZS_Entropy_getEncodedSize_internal( size_t elementSize, size_t maxDepth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_RC rc = ZL_RC_wrap((uint8_t const*)src, srcSize); ZL_Report ret = ZS_Entropy_getType(src, srcSize); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); size_t extraSize; switch (ZL_validResult(ret)) { case ZS_Entropy_Type_fse: case ZS_Entropy_Type_huf: { ZS_HufAndFse_Header_t header; - ZL_RET_R_IF_ERR(ZS_HufAndFse_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_HufAndFse_getHeader(&header, &rc)); extraSize = header.encodedSize; break; } case ZS_Entropy_Type_raw: { ZS_RawAndConstant_Header_t header; - ZL_RET_R_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); extraSize = header.decodedSize * elementSize; break; } case ZS_Entropy_Type_constant: { ZS_RawAndConstant_Header_t header; - ZL_RET_R_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); extraSize = elementSize; break; } // TODO: Add these modes case ZS_Entropy_Type_bit: { ZS_Bit_Header_t header; - ZL_RET_R_IF_ERR(ZS_Bit_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_Bit_getHeader(&header, &rc)); extraSize = (header.decodedSize * header.numBits + 7) / 8; break; } case ZS_Entropy_Type_multi: { if (maxDepth == 0) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZS_Multi_Header_t header; - ZL_RET_R_IF_ERR(ZS_Multi_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_Multi_getHeader(&header, &rc)); for (uint64_t block = 0; block < header.numBlocks; ++block) { ZL_Report const blockSize = ZS_Entropy_getEncodedSize_internal( ZL_RC_ptr(&rc), ZL_RC_avail(&rc), elementSize, maxDepth - 1); - ZL_RET_R_IF_ERR(blockSize); + ZL_ERR_IF_ERR(blockSize); if (ZL_validResult(blockSize) > ZL_RC_avail(&rc)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_RC_advance(&rc, ZL_validResult(blockSize)); } @@ -143,10 +145,10 @@ static ZL_Report ZS_Entropy_getEncodedSize_internal( break; } default: - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (ZL_RC_avail(&rc) < extraSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } size_t const consumed = srcSize - ZL_RC_avail(&rc); ZL_ASSERT_NE(consumed, 0); @@ -171,36 +173,37 @@ static ZL_Report ZS_Entropy_getDecodedSize_internal( size_t elementSize, size_t maxDepth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_RC rc = ZL_RC_wrap((uint8_t const*)src, srcSize); ZL_Report ret = ZS_Entropy_getType(src, srcSize); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); switch (ZL_validResult(ret)) { case ZS_Entropy_Type_fse: case ZS_Entropy_Type_huf: { ZS_HufAndFse_Header_t header; - ZL_RET_R_IF_ERR(ZS_HufAndFse_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_HufAndFse_getHeader(&header, &rc)); return ZL_returnValue(header.decodedSize); } case ZS_Entropy_Type_raw: case ZS_Entropy_Type_constant: { ZS_RawAndConstant_Header_t header; - ZL_RET_R_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); return ZL_returnValue(header.decodedSize); } // TODO: Add these modes case ZS_Entropy_Type_bit: { ZS_Bit_Header_t header; - ZL_RET_R_IF_ERR(ZS_Bit_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_Bit_getHeader(&header, &rc)); return ZL_returnValue(header.decodedSize); } case ZS_Entropy_Type_multi: { if (maxDepth == 0) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZS_Multi_Header_t header; uint64_t decodedSize = 0; - ZL_RET_R_IF_ERR(ZS_Multi_getHeader(&header, &rc)); - ZL_RET_R_IF_GT(corruption, header.numBlocks, ZL_RC_avail(&rc)); + ZL_ERR_IF_ERR(ZS_Multi_getHeader(&header, &rc)); + ZL_ERR_IF_GT(header.numBlocks, ZL_RC_avail(&rc), corruption); for (uint64_t block = 0; block < header.numBlocks; ++block) { ZL_Report const blockEncodedSize = ZS_Entropy_getEncodedSize_internal( @@ -214,14 +217,14 @@ static ZL_Report ZS_Entropy_getDecodedSize_internal( ZL_RC_avail(&rc), elementSize, maxDepth - 1); - ZL_RET_R_IF_ERR(blockEncodedSize); - ZL_RET_R_IF_ERR(blockDecodedSize); + ZL_ERR_IF_ERR(blockEncodedSize); + ZL_ERR_IF_ERR(blockDecodedSize); // Disallow zero sized blocks because it makes no sense to // generate them, and the fuzzer generates a bunch of them and // times out. - ZL_RET_R_IF_EQ(corruption, ZL_validResult(blockDecodedSize), 0); + ZL_ERR_IF_EQ(ZL_validResult(blockDecodedSize), 0, corruption); if (ZL_validResult(blockEncodedSize) > ZL_RC_avail(&rc)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_RC_advance(&rc, ZL_validResult(blockEncodedSize)); decodedSize += ZL_validResult(blockDecodedSize); @@ -229,7 +232,7 @@ static ZL_Report ZS_Entropy_getDecodedSize_internal( return ZL_returnValue(decodedSize); } default: - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } } @@ -246,35 +249,36 @@ ZS_Entropy_getDecodedSize(void const* src, size_t srcSize, size_t elementSize) ZL_Report ZS_Entropy_getHeaderSize(void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_RC rc = ZL_RC_wrap((uint8_t const*)src, srcSize); ZL_Report ret = ZS_Entropy_getType(src, srcSize); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); switch (ZL_validResult(ret)) { case ZS_Entropy_Type_fse: case ZS_Entropy_Type_huf: { ZS_HufAndFse_Header_t header; - ZL_RET_R_IF_ERR(ZS_HufAndFse_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_HufAndFse_getHeader(&header, &rc)); break; } case ZS_Entropy_Type_raw: case ZS_Entropy_Type_constant: { ZS_RawAndConstant_Header_t header; - ZL_RET_R_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_RawAndConstant_getHeader(&header, &rc)); break; } // TODO: Add these modes case ZS_Entropy_Type_bit: { ZS_Bit_Header_t header; - ZL_RET_R_IF_ERR(ZS_Bit_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_Bit_getHeader(&header, &rc)); break; } case ZS_Entropy_Type_multi: { ZS_Multi_Header_t header; - ZL_RET_R_IF_ERR(ZS_Multi_getHeader(&header, &rc)); + ZL_ERR_IF_ERR(ZS_Multi_getHeader(&header, &rc)); break; } default: - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } return ZL_returnValue(srcSize - ZL_RC_avail(&rc)); } @@ -296,31 +300,32 @@ static ZL_Report ZS_Entropy_decode_internal( ZS_Entropy_DecodeParameters const* params, size_t maxDepth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V1, "ZS_Entropy_decode(dstCapacity = %zu, ZL_RC_avail(src) = %zu, elementSize = %zu", dstCapacity, ZL_RC_avail(src), elementSize); ZL_Report ret = ZS_Entropy_getType(ZL_RC_ptr(src), ZL_RC_avail(src)); - ZL_RET_R_IF_ERR(ret); + ZL_ERR_IF_ERR(ret); if (!(params->allowedTypes & (1 << ZL_validResult(ret)))) { ZL_DLOG(ERROR, "Type not allowed!"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } switch (ZL_validResult(ret)) { case ZS_Entropy_Type_fse: { ZS_HufAndFse_Header_t header; - ZL_RET_R_IF_ERR(ZS_HufAndFse_getHeader(&header, src)); + ZL_ERR_IF_ERR(ZS_HufAndFse_getHeader(&header, src)); if (ZL_RC_avail(src) < header.encodedSize) { ZL_DLOG(ERROR, "Source size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (dstCapacity < header.decodedSize) { ZL_DLOG(ERROR, "Dst size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } - ZL_RET_R_IF_ERR(ZS_Fse_decode( + ZL_ERR_IF_ERR(ZS_Fse_decode( dst, header.decodedSize, ZL_RC_ptr(src), @@ -332,16 +337,16 @@ static ZL_Report ZS_Entropy_decode_internal( } case ZS_Entropy_Type_huf: { ZS_HufAndFse_Header_t header; - ZL_RET_R_IF_ERR(ZS_HufAndFse_getHeader(&header, src)); + ZL_ERR_IF_ERR(ZS_HufAndFse_getHeader(&header, src)); if (ZL_RC_avail(src) < header.encodedSize) { ZL_DLOG(ERROR, "Src size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (dstCapacity < header.decodedSize) { ZL_DLOG(ERROR, "Dst size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } - ZL_RET_R_IF_ERR(ZS_Huf_decodeImpl( + ZL_ERR_IF_ERR(ZS_Huf_decodeImpl( dst, header.decodedSize, ZL_RC_ptr(src), @@ -355,20 +360,20 @@ static ZL_Report ZS_Entropy_decode_internal( } case ZS_Entropy_Type_raw: { ZS_RawAndConstant_Header_t header; - ZL_RET_R_IF_ERR(ZS_RawAndConstant_getHeader(&header, src)); + ZL_ERR_IF_ERR(ZS_RawAndConstant_getHeader(&header, src)); size_t const srcSize = header.decodedSize * elementSize; if (ZL_RC_avail(src) < srcSize) { ZL_DLOG(ERROR, "Source size too small: %zu < %zu", ZL_RC_avail(src), srcSize); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (dstCapacity < header.decodedSize) { ZL_DLOG(ERROR, "Dst size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } - ZL_RET_R_IF_ERR(ZS_Raw_decode( + ZL_ERR_IF_ERR(ZS_Raw_decode( dst, header.decodedSize, ZL_RC_ptr(src), @@ -382,13 +387,13 @@ static ZL_Report ZS_Entropy_decode_internal( } case ZS_Entropy_Type_constant: { ZS_RawAndConstant_Header_t header; - ZL_RET_R_IF_ERR(ZS_RawAndConstant_getHeader(&header, src)); + ZL_ERR_IF_ERR(ZS_RawAndConstant_getHeader(&header, src)); size_t const srcSize = elementSize; if (ZL_RC_avail(src) < srcSize || dstCapacity < header.decodedSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } - ZL_RET_R_IF_ERR(ZS_Constant_decode( + ZL_ERR_IF_ERR(ZS_Constant_decode( dst, header.decodedSize, ZL_RC_ptr(src), @@ -399,18 +404,18 @@ static ZL_Report ZS_Entropy_decode_internal( } case ZS_Entropy_Type_bit: { ZS_Bit_Header_t header; - ZL_RET_R_IF_ERR(ZS_Bit_getHeader(&header, src)); + ZL_ERR_IF_ERR(ZS_Bit_getHeader(&header, src)); size_t const srcSize = (header.decodedSize * header.numBits + 7) / 8; if (ZL_RC_avail(src) < srcSize) { ZL_DLOG(ERROR, "src size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (dstCapacity < header.decodedSize) { ZL_DLOG(ERROR, "dst size too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } - ZL_RET_R_IF_ERR(ZS_Bit_decode( + ZL_ERR_IF_ERR(ZS_Bit_decode( dst, header.decodedSize, ZL_RC_ptr(src), @@ -423,10 +428,10 @@ static ZL_Report ZS_Entropy_decode_internal( case ZS_Entropy_Type_multi: { ZL_DLOG(V1, "MULTI decode"); if (maxDepth == 0) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZS_Multi_Header_t header; - ZL_RET_R_IF_ERR(ZS_Multi_getHeader(&header, src)); + ZL_ERR_IF_ERR(ZS_Multi_getHeader(&header, src)); ZL_DLOG(V1, "NBlocks = %llu", (unsigned long long)header.numBlocks); size_t dstSize = 0; for (size_t i = 0; i < header.numBlocks; ++i) { @@ -440,7 +445,7 @@ static ZL_Report ZS_Entropy_decode_internal( elementSize, params, maxDepth - 1); - ZL_RET_R_IF_ERR(blockSizeRet); + ZL_ERR_IF_ERR(blockSizeRet); size_t const blockSize = ZL_validResult(blockSizeRet); dstSize += blockSize; size_t const avail2 = ZL_RC_avail(src); @@ -450,7 +455,7 @@ static ZL_Report ZS_Entropy_decode_internal( return ZL_returnValue(dstSize); } default: - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } } @@ -473,9 +478,10 @@ static ZL_Report ZS_HufAndFse_getHeader( ZS_HufAndFse_Header_t* header, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_RC_avail(src) < 2) { ZL_DLOG(ERROR, "Source too small"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } size_t const avail = ZL_RC_avail(src); uint16_t const hdr = ZL_RC_popCE16(src); @@ -486,10 +492,10 @@ static ZL_Report ZS_HufAndFse_getHeader( header->encodedSize = (hdr >> 12) & 0x0F; if (hasVarints) { ZL_DLOG(V1, "varint 1..."); - ZL_TRY_LET_CONST_T(uint64_t, decodedSizeVarint, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, decodedSizeVarint, ZL_RC_popVarint(src)); header->decodedSize |= decodedSizeVarint << 5; ZL_DLOG(V1, "varint 2..."); - ZL_TRY_LET_CONST_T(uint64_t, encodedSizeVarint, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, encodedSizeVarint, ZL_RC_popVarint(src)); header->encodedSize |= encodedSizeVarint << 4; } size_t const avail2 = ZL_RC_avail(src); @@ -506,15 +512,16 @@ static ZL_Report ZS_RawAndConstant_getHeader( ZS_RawAndConstant_Header_t* header, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_RC_avail(src) < 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t const hdr = ZL_RC_pop(src); bool const hasVarint = hdr & 0x80; header->decodedSize = (hdr >> 3) & 0xF; if (hasVarint) { ZL_DLOG(V1, "grabbing varint"); - ZL_TRY_LET_CONST_T(uint64_t, decodedSizeVarint, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, decodedSizeVarint, ZL_RC_popVarint(src)); header->decodedSize |= decodedSizeVarint << 4; } ZL_DLOG(V1, "decodedSize = %llu", (unsigned long long)header->decodedSize); @@ -523,15 +530,16 @@ static ZL_Report ZS_RawAndConstant_getHeader( static ZL_Report ZS_Multi_getHeader(ZS_Multi_Header_t* header, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_RC_avail(src) < 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t const hdr = ZL_RC_pop(src); bool const hasVarint = hdr & 0x80; header->numBlocks = (hdr >> 3) & 0xF; if (hasVarint) { ZL_DLOG(V1, "have varint"); - ZL_TRY_LET_CONST_T(uint64_t, numBlocksVarint, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, numBlocksVarint, ZL_RC_popVarint(src)); header->numBlocks |= numBlocksVarint << 4; } return ZL_returnSuccess(); @@ -539,13 +547,14 @@ static ZL_Report ZS_Multi_getHeader(ZS_Multi_Header_t* header, ZL_RC* src) static ZL_Report ZS_Bit_getHeader(ZS_Bit_Header_t* header, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_RC_avail(src) < 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t const hdr = ZL_RC_pop(src); ZL_ASSERT_EQ(hdr & 0x7, ZS_Entropy_Type_bit); header->numBits = hdr >> 3; - ZL_TRY_LET_CONST_T(uint64_t, decodedSizeVarint, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, decodedSizeVarint, ZL_RC_popVarint(src)); header->decodedSize = decodedSizeVarint; return ZL_returnSuccess(); } @@ -558,16 +567,17 @@ ZL_Report ZS_Fse_decode( size_t elementSize, ZS_Entropy_DecodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V1, "FSE decode"); (void)params; if (elementSize != 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } // TODO: Customize the format for e.g. vectorization, for now just use FSE. size_t const fseDSize = FSE_decompress2(dst, dstSize, src, srcSize, 0, params->fseNbStates); if (FSE_isError(fseDSize) || fseDSize != dstSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } return ZL_returnSuccess(); } @@ -581,10 +591,11 @@ static ZL_Report ZS_Huf_decodeImpl( bool avx2, ZS_Entropy_DecodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V1, "HUF decode"); (void)params; if (elementSize < 1 || elementSize > 2) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } // TODO: Currently large alphabet huffman has its own header with the // encoded/decoded size. Fix that by absorbing the header into this layer. @@ -594,15 +605,15 @@ static ZL_Report ZS_Huf_decodeImpl( size_t const dsize = ZS_Huf16Avx2_decode(dst, dstSize, src, srcSize); if (dsize != dstSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } } else { ZL_RC rc = ZL_RC_wrap(src, srcSize); ZL_Report hufDSize = ZS_largeHuffmanDecode((uint16_t*)dst, dstSize, &rc); - ZL_RET_R_IF_ERR(hufDSize); + ZL_ERR_IF_ERR(hufDSize); if (ZL_validResult(hufDSize) != dstSize || ZL_RC_avail(&rc) > 0) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } } return ZL_returnSuccess(); @@ -614,12 +625,12 @@ static ZL_Report ZS_Huf_decodeImpl( if (avx2) { size_t const ret = ZS_HufAvx2_decode(dst, dstSize, src, srcSize); if (ret != dstSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } } else { if (HUF_isError(HUF_decompress(dst, dstSize, src, srcSize))) { ZL_DLOG(ERROR, "Huff error"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } } return ZL_returnSuccess(); @@ -644,12 +655,13 @@ ZL_Report ZS_Raw_decode( size_t const srcSize, size_t const elementSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V1, "RAW decode"); if (!ZL_isPow2(elementSize) || elementSize == 0 || elementSize > 8) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (dstSize * elementSize != srcSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (srcSize == 0) { return ZL_returnSuccess(); @@ -675,12 +687,13 @@ ZL_Report ZS_Constant_decode( size_t srcSize, size_t elementSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V1, "Constant decode"); if (!ZL_isPow2(elementSize) || elementSize == 0 || elementSize > 8) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (srcSize != elementSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (elementSize == 1) { uint8_t const value = *(uint8_t const*)src; @@ -729,17 +742,18 @@ ZL_Report ZS_Bit_decode( size_t elementSize, size_t numBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (elementSize > 2) { ZL_DLOG(ERROR, "Not supported yet."); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (numBits >= 8 * elementSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } size_t const expectedSrcSize = (dstSize * numBits + 7) / 8; if (srcSize != expectedSrcSize) { ZL_DLOG(ERROR, "Corruption!"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZS_bitpackDecode(dst, dstSize, elementSize, src, srcSize, (int)numBits); diff --git a/src/openzl/codecs/entropy/deprecated/decode_fse_kernel.c b/src/openzl/codecs/entropy/deprecated/decode_fse_kernel.c index 736d67b47..03a660ba7 100644 --- a/src/openzl/codecs/entropy/deprecated/decode_fse_kernel.c +++ b/src/openzl/codecs/entropy/deprecated/decode_fse_kernel.c @@ -36,8 +36,10 @@ ZL_FORCE_INLINE ZL_Report ZS_fseContextDecodeImpl( uint8_t (*mix)(void* opaque, uint8_t ctx, uint8_t o1) /* template */, bool const O1 /* template */) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + //> Read the number of symbols - ZL_TRY_LET_CONST_T(uint64_t, nbSymbols, ZL_RC_popVarint(src)); + ZL_TRY_LET_CONST(uint64_t, nbSymbols, ZL_RC_popVarint(src)); ZL_ASSERT(mix == NULL || (ctx != NULL && ZL_RC_avail(ctx) >= nbSymbols)); ZL_ASSERT(mix == NULL || O1); @@ -49,7 +51,7 @@ ZL_FORCE_INLINE ZL_Report ZS_fseContextDecodeImpl( //> Read the clustering ZL_ContextClustering clustering; - ZL_RET_R_IF_ERR(ZL_ContextClustering_decode(&clustering, src)); + ZL_ERR_IF_ERR(ZL_ContextClustering_decode(&clustering, src)); size_t const numClusters = clustering.numClusters; //> Read the headers and build the table for each cluster diff --git a/src/openzl/codecs/entropy/deprecated/decode_huf_avx2_decompress.c b/src/openzl/codecs/entropy/deprecated/decode_huf_avx2_decompress.c index dc1d724a4..023cdd86e 100644 --- a/src/openzl/codecs/entropy/deprecated/decode_huf_avx2_decompress.c +++ b/src/openzl/codecs/entropy/deprecated/decode_huf_avx2_decompress.c @@ -32,8 +32,10 @@ #if ZL_HAS_AVX2 # include -# include -# include +# if !defined(_MSC_VER) +# include +# include +# endif # include # define _ 9 @@ -591,7 +593,7 @@ static ZL_ALIGNED(32) uint32_t permute[256][8] = { // reverse binary bit order // clang-format on // Simulated gather. This is sometimes faster as it can run on other ports. -static inline __m256i +static ZL_MAYBE_UNUSED_FUNCTION inline __m256i _mm256_i32gather_epi32x(void const* bv, __m256i idx, int size) { ZL_ALIGNED(32) int c[8]; @@ -648,7 +650,7 @@ _mm256_i32gather_epi32x(void const* bv, __m256i idx, int size) # define LZ44_mm256_i32gather_epi32 _mm256_i32gather_epi32x # endif -static void dpr(char const* name, __m256i const vec32) +static ZL_MAYBE_UNUSED_FUNCTION void dpr(char const* name, __m256i const vec32) { size_t n = 8; uint32_t data[8]; @@ -942,9 +944,9 @@ size_t ZS_HufAvx2_decode( stateV1 = _mm256_sllv_epi32(stateV1, nbitsV1); bitsV1 = _mm256_add_epi32(bitsV1, nbitsV1); __m256i const reloadV1 = _mm256_cmpgt_epi32(bitsV1, thresholdV); - int const reloadM1 = _mm256_movemask_ps((__m256)reloadV1); - __m256i const permV1 = getPermute(reloadV1, reloadM1); - bitsV1 = _mm256_sub_epi32( + int const reloadM1 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV1)); + __m256i const permV1 = getPermute(reloadV1, reloadM1); + bitsV1 = _mm256_sub_epi32( bitsV1, _mm256_and_si256(thresholdV, reloadV1)); /// if (bits > 16) state |= ZL_readLE16(bs) << bits @@ -972,7 +974,7 @@ size_t ZS_HufAvx2_decode( __m256i const reloadV2 = _mm256_cmpgt_epi32(bitsV2, thresholdV); /// if (bits > 16) - int const reloadM2 = _mm256_movemask_ps((__m256)reloadV2); + int const reloadM2 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV2)); __m256i const permV2 = getPermute(reloadV2, reloadM2); /// if (bits > 16) bits -= 16 @@ -1028,9 +1030,9 @@ size_t ZS_HufAvx2_decode( bitsV3 = _mm256_add_epi32(bitsV3, nbitsV3); __m256i const reloadV3 = _mm256_cmpgt_epi32(bitsV3, thresholdV); - int const reloadM3 = _mm256_movemask_ps((__m256)reloadV3); - __m256i const permV3 = getPermute(reloadV3, reloadM3); - bitsV3 = _mm256_sub_epi32( + int const reloadM3 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV3)); + __m256i const permV3 = getPermute(reloadV3, reloadM3); + bitsV3 = _mm256_sub_epi32( bitsV3, _mm256_and_si256(thresholdV, reloadV3)); /// if (bits > 16) state |= ZL_readLE16(bs) << bits @@ -1056,7 +1058,7 @@ size_t ZS_HufAvx2_decode( __m256i const reloadV4 = _mm256_cmpgt_epi32(bitsV4, thresholdV); /// if (bits > 16) - int const reloadM4 = _mm256_movemask_ps((__m256)reloadV4); + int const reloadM4 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV4)); __m256i const permV4 = getPermute(reloadV4, reloadM4); /// if (bits > 16) bits -= 16 @@ -1358,9 +1360,9 @@ size_t ZS_Huf16Avx2_decode( stateV1 = _mm256_sllv_epi32(stateV1, nbitsV1); bitsV1 = _mm256_add_epi32(bitsV1, nbitsV1); __m256i const reloadV1 = _mm256_cmpgt_epi32(bitsV1, thresholdV); - int const reloadM1 = _mm256_movemask_ps((__m256)reloadV1); - __m256i const permV1 = getPermute(reloadV1, reloadM1); - bitsV1 = _mm256_sub_epi32( + int const reloadM1 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV1)); + __m256i const permV1 = getPermute(reloadV1, reloadM1); + bitsV1 = _mm256_sub_epi32( bitsV1, _mm256_and_si256(thresholdV, reloadV1)); /// if (bits > 16) state |= ZL_readLE16(bs) << bits @@ -1389,7 +1391,7 @@ size_t ZS_Huf16Avx2_decode( __m256i const reloadV2 = _mm256_cmpgt_epi32(bitsV2, thresholdV); /// if (bits > 16) - int const reloadM2 = _mm256_movemask_ps((__m256)reloadV2); + int const reloadM2 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV2)); __m256i const permV2 = getPermute(reloadV2, reloadM2); /// if (bits > 16) bits -= 16 @@ -1446,9 +1448,9 @@ size_t ZS_Huf16Avx2_decode( bitsV3 = _mm256_add_epi32(bitsV3, nbitsV3); __m256i const reloadV3 = _mm256_cmpgt_epi32(bitsV3, thresholdV); - int const reloadM3 = _mm256_movemask_ps((__m256)reloadV3); - __m256i const permV3 = getPermute(reloadV3, reloadM3); - bitsV3 = _mm256_sub_epi32( + int const reloadM3 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV3)); + __m256i const permV3 = getPermute(reloadV3, reloadM3); + bitsV3 = _mm256_sub_epi32( bitsV3, _mm256_and_si256(thresholdV, reloadV3)); /// if (bits > 16) state |= ZL_readLE16(bs) << bits @@ -1474,7 +1476,7 @@ size_t ZS_Huf16Avx2_decode( __m256i const reloadV4 = _mm256_cmpgt_epi32(bitsV4, thresholdV); /// if (bits > 16) - int const reloadM4 = _mm256_movemask_ps((__m256)reloadV4); + int const reloadM4 = _mm256_movemask_ps(_mm256_castsi256_ps(reloadV4)); __m256i const permV4 = getPermute(reloadV4, reloadM4); /// if (bits > 16) bits -= 16 diff --git a/src/openzl/codecs/entropy/deprecated/encode_entropy_compress.c b/src/openzl/codecs/entropy/deprecated/encode_entropy_compress.c index bfd86a9e8..5c2096fde 100644 --- a/src/openzl/codecs/entropy/deprecated/encode_entropy_compress.c +++ b/src/openzl/codecs/entropy/deprecated/encode_entropy_compress.c @@ -178,6 +178,7 @@ static ZL_Report ZS_RawAndConstant_writeHeader( size_t srcSize, ZS_Entropy_Type_e type) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_LT(type, 0x8); int const needVarint = srcSize > 0xF ? 1 : 0; int const hdr = (int)type /* type: bits [0, 3) */ @@ -186,7 +187,7 @@ static ZL_Report ZS_RawAndConstant_writeHeader( size_t const varintSize = needVarint ? ZL_varintSize(srcSize >> 4) : 0; size_t const hdrSize = 1 + varintSize; if (ZL_WC_avail(dst) < hdrSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_push(dst, (uint8_t)hdr); if (needVarint) { @@ -207,20 +208,21 @@ static ZL_Report ZS_Entropy_encodeFastest( size_t elementSize, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "Fastest"); // TODO: Could enable block splitting for LZ4 decoding speeds (not fastest) if (ZS_Entropy_useConstant(src, srcSize, elementSize, params)) { - ZL_RET_R_IF_ERR(ZS_RawAndConstant_writeHeader( + ZL_ERR_IF_ERR(ZS_RawAndConstant_writeHeader( dst, srcSize, ZS_Entropy_Type_constant)); return ZS_Constant_encode(dst, src, elementSize); } ZL_DLOG(V7, "dst avail = %zu", ZL_WC_avail(dst)); if (params->allowedTypes & ZS_Entropy_TypeMask_raw) { - ZL_RET_R_IF_ERR(ZS_RawAndConstant_writeHeader( + ZL_ERR_IF_ERR(ZS_RawAndConstant_writeHeader( dst, srcSize, ZS_Entropy_Type_raw)); return ZS_Raw_encode(dst, src, srcSize, elementSize); } - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } static size_t ZS_HufAndFse_headerSize(size_t srcSize, size_t maxDstSize) @@ -283,11 +285,12 @@ static ZL_Report ZS_Entropy_encodeLAHuf( size_t elementSize, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "LA Huf (srcSize = %zu)", srcSize); uint16_t const* src16 = (uint16_t const*)src; ZL_ASSERT_EQ(elementSize, 2); if (!ZL_uintFits(params->maxValueUpperBound, sizeof(uint16_t))) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint16_t maxSymbolValue = (uint16_t)params->maxValueUpperBound; size_t maxSymbolCount = 0; @@ -313,7 +316,7 @@ static ZL_Report ZS_Entropy_encodeLAHuf( srcSize, elementSize, maxSymbolValue, params->allowedTypes); size_t const headerSize = ZS_HufAndFse_headerSize(srcSize, maxDstSize); if (ZL_WC_avail(&dst2) < headerSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t* const header = ZL_WC_ptr(&dst2); ZL_WC_advance(&dst2, headerSize); @@ -340,7 +343,7 @@ static ZL_Report ZS_Entropy_encodeLAHuf( size_t const hufCSize = totalCSize - headerSize; if (!error && totalCSize < maxDstSize) { *dst = dst2; - ZL_RET_R_IF_ERR(ZS_HufAndFse_writeHeader( + ZL_ERR_IF_ERR(ZS_HufAndFse_writeHeader( header, headerSize, srcSize, @@ -467,13 +470,14 @@ static ZS_Entropy_Type_e ZS_Entropy_selectType( static ZL_Report ZS_Multi_writeHeader(ZL_WC* dst, size_t numBlocks) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); int const needVarint = numBlocks > 0xF ? 1 : 0; int const hdr = (int)ZS_Entropy_Type_multi /* type: bits [0, 3) */ | (((int)numBlocks & 0xF) << 3) /* decoded size: bits [0, 7) */ | (needVarint << 7) /* more varint: bits [7, 8) */; size_t const hdrSize = 1 + ZL_varintSize(numBlocks >> 4); if (ZL_WC_avail(dst) < hdrSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_push(dst, (uint8_t)hdr); ZL_DLOG(V7, "MULTI HEADER = %zu", numBlocks); @@ -491,6 +495,7 @@ static ZL_Report ZS_Entropy_encodeBlockSplit( size_t elementSize, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_WC dstOriginal = *dst; ZL_ASSERT_NN(params->blockSplits); ZS_Entropy_EncodeParameters paramsCopy = *params; @@ -498,7 +503,7 @@ static ZL_Report ZS_Entropy_encodeBlockSplit( size_t const nbSplits = params->blockSplits->nbSplits; size_t const nbBlocks = nbSplits + 1; ZL_DLOG(V7, "SPLIT %zu into %zu blocks", srcSize, nbBlocks); - ZL_RET_R_IF_ERR(ZS_Multi_writeHeader(dst, nbBlocks)); + ZL_ERR_IF_ERR(ZS_Multi_writeHeader(dst, nbBlocks)); for (size_t b = 0; b < nbBlocks; ++b) { size_t const begin = b == 0 ? 0 : params->blockSplits->splits[b - 1]; size_t const end = @@ -538,19 +543,20 @@ static ZL_Report ZS_Entropy_encodeMulti( size_t elementSize, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_Entropy_EncodeParameters paramsCopy = *params; paramsCopy.allowedTypes &= ~ZS_Entropy_TypeMask_multi; size_t const numBlocks = (srcSize + ZS_ENTROPY_BLOCK_SPLIT_FIXED_SIZE - 1) / ZS_ENTROPY_BLOCK_SPLIT_FIXED_SIZE; ZL_DLOG(V7, "MULTI %zu - %zu", srcSize, numBlocks); - ZL_RET_R_IF_ERR(ZS_Multi_writeHeader(dst, numBlocks)); + ZL_ERR_IF_ERR(ZS_Multi_writeHeader(dst, numBlocks)); // TODO: Add smarter block splitting here... while (srcSize > 0) { size_t const blockSize = ZL_MIN(srcSize, ZS_ENTROPY_BLOCK_SPLIT_FIXED_SIZE); size_t const avail1 = ZL_WC_avail(dst); ZL_DLOG(V7, "Encoding block..."); - ZL_RET_R_IF_ERR(ZS_Entropy_encode( + ZL_ERR_IF_ERR(ZS_Entropy_encode( dst, src, blockSize, elementSize, ¶msCopy)); size_t const avail2 = ZL_WC_avail(dst); ZL_DLOG(V7, "block size = %zu", avail1 - avail2); @@ -570,6 +576,7 @@ static ZL_Report ZS_Entropy_encodeHufImpl( uint64_t maxSymbol, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "HUF"); ZL_WC dst2 = *dst; ZL_ASSERT_GE(srcSize, 2); @@ -584,7 +591,7 @@ static ZL_Report ZS_Entropy_encodeHufImpl( if (srcSize > ZS_HUF_MAX_BLOCK_SIZE) { ZL_DLOG(ERROR, "Multi must be supported for large sources..."); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint32_t const maxTableLog = ZL_MIN(HUF_TABLELOG_MAX, params->maxTableLog); @@ -623,12 +630,13 @@ static ZL_Report ZS_Entropy_encodeFseImpl( uint64_t maxSymbol, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "FSE"); ZL_WC dst2 = *dst; ZL_ASSERT_EQ(elementSize, 1); size_t const headerSize = ZS_HufAndFse_headerSize(srcSize, srcSize); if (ZL_WC_avail(dst) < headerSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t* const header = ZL_WC_ptr(dst); ZL_WC_advance(dst, headerSize); @@ -645,7 +653,7 @@ static ZL_Report ZS_Entropy_encodeFseImpl( size_t const maxDstSize = ZS_Entropy_entropySizeBound( srcSize, elementSize, (uint32_t)maxSymbol, params->allowedTypes); if (fseCSize >= maxDstSize || fseCSize <= 1 - || fseCSize == (size_t) - (int)ZSTD_error_dstSize_tooSmall) { + || fseCSize == (size_t)-(int)ZSTD_error_dstSize_tooSmall) { *dst = dst2; if (maxSymbol < 128 && (params->allowedTypes & ZS_Entropy_TypeMask_bit)) { @@ -655,7 +663,7 @@ static ZL_Report ZS_Entropy_encodeFseImpl( return ZS_Entropy_encodeFastest(dst, src, srcSize, elementSize, params); } if (FSE_isError(fseCSize)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_advance(dst, fseCSize); return ZS_HufAndFse_writeHeader( @@ -670,13 +678,14 @@ static ZL_Report ZS_Entropy_encodeFseImpl( static ZL_Report ZS_Bit_writeHeader(ZL_WC* dst, size_t srcSize, size_t numBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_LT(numBits, 32); int const hdr = (int)ZS_Entropy_Type_bit /* type: bits [0, 3) */ | ((int)numBits << 3) /* num bits: bits [3, 8) */; size_t const varintSize = ZL_varintSize(srcSize); size_t const hdrSize = 1 + varintSize; if (ZL_WC_avail(dst) < hdrSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_push(dst, (uint8_t)hdr); ZL_WC_pushVarint(dst, srcSize); @@ -695,10 +704,11 @@ static ZL_Report ZS_Entropy_encodeBit( uint64_t maxSymbolValue, ZS_Entropy_EncodeParameters const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "Bit encoding..."); ZL_WC dst2 = *dst; if (elementSize > 2) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } size_t const numBits = 1 + (size_t)(maxSymbolValue == 0 @@ -799,9 +809,10 @@ ZL_Report ZS_Entropy_encode( ZL_Report ZS_Constant_encode(ZL_WC* dst, void const* src, size_t elementSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "Constant"); if (ZL_WC_avail(dst) < elementSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } switch (elementSize) { case 1: @@ -817,7 +828,7 @@ ZL_Report ZS_Constant_encode(ZL_WC* dst, void const* src, size_t elementSize) ZL_WC_pushCE64(dst, ZL_read64(src)); break; default: - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } return ZL_returnSuccess(); } @@ -825,6 +836,7 @@ ZL_Report ZS_Constant_encode(ZL_WC* dst, void const* src, size_t elementSize) ZL_Report ZS_Raw_encode(ZL_WC* dst, void const* src, size_t srcSize, size_t elementSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(V7, "RAW"); if (srcSize == 0) { return ZL_returnSuccess(); @@ -832,7 +844,7 @@ ZS_Raw_encode(ZL_WC* dst, void const* src, size_t srcSize, size_t elementSize) size_t const dstSize = srcSize * elementSize; ZL_DLOG(V7, "avail = %zu | dstSize = %zu", ZL_WC_avail(dst), dstSize); if (ZL_WC_avail(dst) < dstSize) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_RC srcRC = ZL_RC_wrap(src, srcSize * elementSize); size_t const a = ZL_WC_avail(dst); diff --git a/src/openzl/codecs/entropy/deprecated/encode_fse_kernel.c b/src/openzl/codecs/entropy/deprecated/encode_fse_kernel.c index 7a1179454..50f4f29a8 100644 --- a/src/openzl/codecs/entropy/deprecated/encode_fse_kernel.c +++ b/src/openzl/codecs/entropy/deprecated/encode_fse_kernel.c @@ -67,6 +67,7 @@ ZL_Report ZS_fseContextEncode( ZL_RC* ctx, ZL_ContextClustering const* clustering) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const numClusters = clustering->numClusters; ZL_ASSERT_LE(numClusters, 256); ZL_ASSERT_EQ(ZL_RC_avail(ctx), ZL_RC_avail(src)); @@ -86,7 +87,7 @@ ZL_Report ZS_fseContextEncode( } //> Write the clustering - ZL_RET_R_IF_ERR(ZL_ContextClustering_encode(dst, clustering)); + ZL_ERR_IF_ERR(ZL_ContextClustering_encode(dst, clustering)); //> Initialize the FSE infos & write the NCounts ZS_FseClusterCStates* states; diff --git a/src/openzl/codecs/entropy/encode_entropy_binding.c b/src/openzl/codecs/entropy/encode_entropy_binding.c index 695392c46..88cc08d04 100644 --- a/src/openzl/codecs/entropy/encode_entropy_binding.c +++ b/src/openzl/codecs/entropy/encode_entropy_binding.c @@ -2,8 +2,6 @@ #include "openzl/codecs/entropy/encode_entropy_binding.h" -#include - #define FSE_STATIC_LINKING_ONLY #define HUF_STATIC_LINKING_ONLY @@ -52,6 +50,7 @@ static ZL_Histogram const* getHistogram(ZL_Encoder* eictx, const ZL_Input* in) ZL_Report EI_fse_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -60,15 +59,15 @@ ZL_Report EI_fse_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const srcSize = ZL_Input_numElts(in); ZL_Histogram const* histogram = getHistogram(eictx, in); - ZL_RET_R_IF_LT( - node_invalid_input, + ZL_ERR_IF_LT( srcSize, 2, - "Must not use FSE for 0 or 1 element (should be impossible for users to trigger)"); - ZL_RET_R_IF_EQ( node_invalid_input, + "Must not use FSE for 0 or 1 element (should be impossible for users to trigger)"); + ZL_ERR_IF_EQ( histogram->count[histogram->maxSymbol], histogram->total, + node_invalid_input, "Must not use FSE on constant data (should be impossible for users to trigger)"); // 1. Decide on number of states & send header @@ -88,39 +87,39 @@ ZL_Report EI_fse_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const normSize = histogram->maxSymbol + 1; ZL_Output* const normStream = ZL_Encoder_createTypedStream(eictx, 0, normSize, 2); - ZL_RET_R_IF_NULL(allocation, normStream); + ZL_ERR_IF_NULL(normStream, allocation); int16_t* const normCount = ZL_Output_ptr(normStream); unsigned const tableLog = FSE_optimalTableLog( FSE_DEFAULT_TABLELOG, srcSize, histogram->maxSymbol); ctable = ZL_Encoder_getScratchSpace( eictx, FSE_CTABLE_SIZE(tableLog, histogram->maxSymbol)); - ZL_RET_R_IF_NULL(allocation, ctable); + ZL_ERR_IF_NULL(ctable, allocation); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF( FSE_isError(FSE_normalizeCount( normCount, tableLog, histogram->count, srcSize, histogram->maxSymbol, - true))); + true)), + GENERIC); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF( FSE_isError(FSE_buildCTable( - ctable, normCount, histogram->maxSymbol, tableLog))); + ctable, normCount, histogram->maxSymbol, tableLog)), + GENERIC); - ZL_RET_R_IF_ERR(ZL_Output_setIntMetadata(normStream, 0, (int)tableLog)); - ZL_RET_R_IF_ERR(ZL_Output_commit(normStream, normSize)); + ZL_ERR_IF_ERR(ZL_Output_setIntMetadata(normStream, 0, (int)tableLog)); + ZL_ERR_IF_ERR(ZL_Output_commit(normStream, normSize)); } // 3. Encode size_t const bitCapacity = FSE_compressBound(srcSize); ZL_Output* bitStream = ZL_Encoder_createTypedStream(eictx, 1, bitCapacity, 1); - ZL_RET_R_IF_NULL(allocation, bitStream); + ZL_ERR_IF_NULL(bitStream, allocation); size_t const bitSize = FSE_compress_usingCTable( ZL_Output_ptr(bitStream), @@ -129,31 +128,32 @@ ZL_Report EI_fse_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) srcSize, ctable, nbStates); - ZL_RET_R_IF(node_invalid_input, FSE_isError(bitSize)); - ZL_RET_R_IF_EQ( - node_invalid_input, + ZL_ERR_IF(FSE_isError(bitSize), node_invalid_input); + ZL_ERR_IF_EQ( bitSize, 0, + node_invalid_input, "FSE source is not compressible (should be impossible to trigger for user)"); - ZL_RET_R_IF_ERR(ZL_Output_commit(bitStream, bitSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(bitStream, bitSize)); return ZL_returnSuccess(); } ZL_Report EI_fse_ncount(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; ZL_ASSERT(ZL_Input_type(in) == ZL_Type_numeric); - ZL_RET_R_IF_NE(node_invalid_input, ZL_Input_eltWidth(in), 2); + ZL_ERR_IF_NE(ZL_Input_eltWidth(in), 2, node_invalid_input); short const* const ncount = ZL_Input_ptr(in); size_t const nbCounts = ZL_Input_numElts(in); - ZL_RET_R_IF_EQ(node_invalid_input, nbCounts, 0); - ZL_RET_R_IF_GT(node_invalid_input, nbCounts, 256); - ZL_RET_R_IF_EQ(node_invalid_input, ncount[nbCounts - 1], 0); + ZL_ERR_IF_EQ(nbCounts, 0, node_invalid_input); + ZL_ERR_IF_GT(nbCounts, 256, node_invalid_input); + ZL_ERR_IF_EQ(ncount[nbCounts - 1], 0, node_invalid_input); bool invalid = false; uint64_t sum = 0; @@ -161,17 +161,17 @@ ZL_Report EI_fse_ncount(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) sum += ncount[i] == -1 ? (uint64_t)1 : (uint64_t)ncount[i]; invalid |= ncount[i] < -1; } - ZL_RET_R_IF(node_invalid_input, invalid, "Ncount must not be less than -1"); - ZL_RET_R_IF_NOT(node_invalid_input, ZL_isPow2(sum)); - ZL_RET_R_IF_EQ(node_invalid_input, sum, 0); + ZL_ERR_IF(invalid, node_invalid_input, "Ncount must not be less than -1"); + ZL_ERR_IF_NOT(ZL_isPow2(sum), node_invalid_input); + ZL_ERR_IF_EQ(sum, 0, node_invalid_input); unsigned const tableLog = (unsigned)ZL_highbit64(sum); - ZL_RET_R_IF_LT(node_invalid_input, tableLog, FSE_MIN_TABLELOG); - ZL_RET_R_IF_GT(node_invalid_input, tableLog, FSE_MAX_TABLELOG); + ZL_ERR_IF_LT(tableLog, FSE_MIN_TABLELOG, node_invalid_input); + ZL_ERR_IF_GT(tableLog, FSE_MAX_TABLELOG, node_invalid_input); ZL_Output* const dstStream = ZL_Encoder_createTypedStream(eictx, 0, FSE_NCOUNTBOUND, 1); - ZL_RET_R_IF_NULL(allocation, dstStream); + ZL_ERR_IF_NULL(dstStream, allocation); size_t const ncountSize = FSE_writeNCount( ZL_Output_ptr(dstStream), @@ -179,19 +179,20 @@ ZL_Report EI_fse_ncount(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ncount, (unsigned)nbCounts - 1, tableLog); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF( FSE_isError(ncountSize), + GENERIC, "%s", FSE_getErrorName(ncountSize)); - ZL_RET_R_IF_ERR(ZL_Output_commit(dstStream, ncountSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(dstStream, ncountSize)); return ZL_returnSuccess(); } ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -200,15 +201,15 @@ ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const srcSize = ZL_Input_numElts(in); ZL_Histogram const* histogram = getHistogram(eictx, in); - ZL_RET_R_IF_LT( - node_invalid_input, + ZL_ERR_IF_LT( srcSize, 2, - "Must not use Huffman for 0 or 1 element (should be impossible for users to trigger)"); - ZL_RET_R_IF_EQ( node_invalid_input, + "Must not use Huffman for 0 or 1 element (should be impossible for users to trigger)"); + ZL_ERR_IF_EQ( histogram->count[histogram->maxSymbol], histogram->total, + node_invalid_input, "Must not use Huffman on constant data (should be impossible for users to trigger)"); // 1. Build table @@ -217,20 +218,20 @@ ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const weightsSize = histogram->maxSymbol + 1; ZL_Output* const weightsStream = ZL_Encoder_createTypedStream(eictx, 0, weightsSize, 1); - ZL_RET_R_IF_NULL(allocation, weightsStream); + ZL_ERR_IF_NULL(weightsStream, allocation); uint8_t* const weights = ZL_Output_ptr(weightsStream); size_t tableLog = HUF_optimalTableLog( HUF_TABLELOG_DEFAULT, srcSize, histogram->maxSymbol); ctable = ZL_Encoder_getScratchSpace( eictx, HUF_CTABLE_SIZE(histogram->maxSymbol)); - ZL_RET_R_IF_NULL(allocation, ctable); + ZL_ERR_IF_NULL(ctable, allocation); tableLog = HUF_buildCTable( ctable, histogram->count, histogram->maxSymbol, (unsigned)tableLog); - ZL_RET_R_IF(GENERIC, HUF_isError(tableLog)); + ZL_ERR_IF(HUF_isError(tableLog), GENERIC); HUF_CElt const* ct = ctable + 1; for (size_t i = 0; i < weightsSize; ++i) { @@ -240,13 +241,13 @@ ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_EQ(weights[i] == 0, histogram->count[i] == 0); } - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Output_setIntMetadata(weightsStream, 0, (int)tableLog)); - ZL_RET_R_IF_ERR(ZL_Output_commit(weightsStream, weightsSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(weightsStream, weightsSize)); } // 2. Decide on 4x streams & send header - bool const x4 = srcSize > 1000; + bool const x4 = srcSize >= 256; { size_t const nbBytes = (size_t)(ZL_nextPow2(srcSize + 1) + 7) / 8; uint8_t header[sizeof(uint64_t) + 1]; @@ -260,7 +261,7 @@ ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const bitCapacity = HUF_compressBound(srcSize); ZL_Output* bitStream = ZL_Encoder_createTypedStream(eictx, 1, bitCapacity, 1); - ZL_RET_R_IF_NULL(allocation, bitStream); + ZL_ERR_IF_NULL(bitStream, allocation); size_t const bitSize = x4 ? HUF_compress4X_usingCTable( ZL_Output_ptr(bitStream), @@ -274,13 +275,13 @@ ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) src, srcSize, ctable); - ZL_RET_R_IF(node_invalid_input, HUF_isError(bitSize)); - ZL_RET_R_IF_EQ( - node_invalid_input, + ZL_ERR_IF(HUF_isError(bitSize), node_invalid_input); + ZL_ERR_IF_EQ( bitSize, 0, + node_invalid_input, "Huffman source is not compressible (should be impossible to trigger for user)"); - ZL_RET_R_IF_ERR(ZL_Output_commit(bitStream, bitSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(bitStream, bitSize)); return ZL_returnSuccess(); } @@ -288,25 +289,26 @@ ZL_Report EI_huffman_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Report EI_huffman_struct_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; - ZL_RET_R_IF_NE(node_invalid_input, ZL_Input_eltWidth(in), 2); + ZL_ERR_IF_NE(ZL_Input_eltWidth(in), 2, node_invalid_input); ZL_ASSERT(ZL_Input_type(in) == ZL_Type_struct); uint16_t const* src = ZL_Input_ptr(in); size_t const srcSize = ZL_Input_numElts(in); ZL_Histogram const* histogram = getHistogram(eictx, in); - ZL_RET_R_IF_LT( - node_invalid_input, + ZL_ERR_IF_LT( srcSize, 2, - "Must not use Huffman for 0 or 1 element (should be impossible for users to trigger)"); - ZL_RET_R_IF_EQ( node_invalid_input, + "Must not use Huffman for 0 or 1 element (should be impossible for users to trigger)"); + ZL_ERR_IF_EQ( histogram->count[histogram->maxSymbol], histogram->total, + node_invalid_input, "Must not use Huffman on constant data (should be impossible for users to trigger)"); // 1. Build table @@ -316,15 +318,15 @@ EI_huffman_struct_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const weightsSize = histogram->maxSymbol + 1; ZL_Output* const weightsStream = ZL_Encoder_createTypedStream(eictx, 0, weightsSize, 1); - ZL_RET_R_IF_NULL(allocation, weightsStream); + ZL_ERR_IF_NULL(weightsStream, allocation); uint8_t* const weights = ZL_Output_ptr(weightsStream); ctable = ZL_Encoder_getScratchSpace( eictx, sizeof(ZS_Huf16CElt) * weightsSize); - ZL_RET_R_IF_NULL(allocation, ctable); + ZL_ERR_IF_NULL(ctable, allocation); ZL_Report tableLogRet = ZS_largeHuffmanBuildCTable( ctable, histogram->count, (uint16_t)histogram->maxSymbol, 0); - ZL_RET_R_IF_ERR(tableLogRet); + ZL_ERR_IF_ERR(tableLogRet); tableLog = (int)ZL_validResult(tableLogRet); for (size_t i = 0; i < weightsSize; ++i) { @@ -333,9 +335,9 @@ EI_huffman_struct_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_EQ(weights[i] == 0, histogram->count[i] == 0); } - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Output_setIntMetadata(weightsStream, 0, (int)tableLog)); - ZL_RET_R_IF_ERR(ZL_Output_commit(weightsStream, weightsSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(weightsStream, weightsSize)); } // 2. Decide on 4x streams & send header @@ -353,7 +355,7 @@ EI_huffman_struct_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const bitCapacity = 2 * srcSize + 32; ZL_Output* bitStream = ZL_Encoder_createTypedStream(eictx, 1, bitCapacity, 1); - ZL_RET_R_IF_NULL(allocation, bitStream); + ZL_ERR_IF_NULL(bitStream, allocation); ZL_WC bits = ZL_WC_wrap(ZL_Output_ptr(bitStream), bitCapacity); ZL_Report const report = x4 @@ -361,9 +363,9 @@ EI_huffman_struct_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) &bits, src, srcSize, ctable, tableLog) : ZS_largeHuffmanEncodeUsingCTable( &bits, src, srcSize, ctable, tableLog); - ZL_RET_R_IF_ERR(report); + ZL_ERR_IF_ERR(report); ZL_ASSERT_LE(ZL_WC_size(&bits), bitCapacity); - ZL_RET_R_IF_ERR(ZL_Output_commit(bitStream, ZL_WC_size(&bits))); + ZL_ERR_IF_ERR(ZL_Output_commit(bitStream, ZL_WC_size(&bits))); return ZL_returnSuccess(); } @@ -371,6 +373,7 @@ EI_huffman_struct_v2(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // ZL_TypedEncoderFn ZL_Report EI_fse_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -379,14 +382,14 @@ ZL_Report EI_fse_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT( ZL_Input_type(in) == ZL_Type_serial || ZL_Input_type(in) == ZL_Type_struct); - ZL_RET_R_IF_NE(GENERIC, ZL_Input_eltWidth(in), 1); + ZL_ERR_IF_NE(ZL_Input_eltWidth(in), 1, GENERIC); const void* const src = ZL_Input_ptr(in); size_t const srcSize = ZL_Input_numElts(in); size_t const dstCapacity = ZS_Entropy_encodedSizeBound(srcSize, /* elementSize */ 1); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Starting version 5 we can support more than two states and we send the // number of states in the header, otherwise we conform to older versions // that only support 2 states. @@ -400,11 +403,11 @@ ZL_Report EI_fse_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // ZL_WriteCursor API, it should be updated to no longer depends on this // abstraction ZL_WriteCursor wc = ZL_WC_wrap(ZL_Output_ptr(out), dstCapacity); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF( ZL_isError(ZS_Entropy_encodeFse( - &wc, src, srcSize, /* elementSize */ 1, nbStates))); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, ZL_WC_size(&wc))); + &wc, src, srcSize, /* elementSize */ 1, nbStates)), + GENERIC); + ZL_ERR_IF_ERR(ZL_Output_commit(out, ZL_WC_size(&wc))); return ZL_returnValue(1); } @@ -429,6 +432,7 @@ static void EI_huffman_header(ZL_Encoder* eictx, ZL_Input const* in) ZL_Report EI_huffman_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -442,16 +446,16 @@ EI_huffman_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const eltWidth = ZL_Input_eltWidth(in); size_t const nbElts = ZL_Input_numElts(in); - ZL_RET_R_IF_GT( - node_invalid_input, + ZL_ERR_IF_GT( eltWidth, 2, + node_invalid_input, "eltWidth > 2 is no longer supported for encoding."); ZL_ASSERT( ZL_Input_type(in) == ZL_Type_serial || ZL_Input_type(in) == ZL_Type_struct); - ZL_RET_R_IF_GT(GENERIC, eltWidth, 2); + ZL_ERR_IF_GT(eltWidth, 2, GENERIC); //> Tell the entropy compressor to use Huffman, or a raw-bits mode, //> and allow block splitting. @@ -465,20 +469,20 @@ EI_huffman_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const dstCapacity = ZS_Entropy_encodedSizeBound(nbElts, eltWidth); ZL_Output* const out = ZL_Encoder_createTypedStream( eictx, 0, dstCapacity, /* eltWidth */ 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZL_WriteCursor wc = ZL_WC_wrap(ZL_Output_ptr(out), dstCapacity); //> Write our header & encode EI_huffman_header(eictx, in); if (nbElts > 0) { - ZL_RET_R_IF( - GENERIC, - ZL_isError(ZS_Entropy_encode( - &wc, src, nbElts, eltWidth, ¶ms))); + ZL_ERR_IF( + ZL_isError( + ZS_Entropy_encode(&wc, src, nbElts, eltWidth, ¶ms)), + GENERIC); } //> Tell how large the output stream is. - ZL_RET_R_IF_ERR(ZL_Output_commit(out, ZL_WC_size(&wc))); + ZL_ERR_IF_ERR(ZL_Output_commit(out, ZL_WC_size(&wc))); //> Return the number of output streams. return ZL_returnValue(1); @@ -493,6 +497,7 @@ EI_huffman_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) static ZL_RESULT_OF(ZL_EdgeList) chunkInputStream(ZL_Graph* gctx, ZL_Edge** sctx) { + ZL_RESULT_DECLARE_SCOPE(ZL_EdgeList, gctx); ZL_Input const* input = ZL_Edge_getData(*sctx); size_t const nbElts = ZL_Input_numElts(input); ZL_ASSERT_NE(ZL_Input_type(input) & (ZL_Type_serial | ZL_Type_struct), 0); @@ -503,13 +508,13 @@ static ZL_RESULT_OF(ZL_EdgeList) size_t const kMinSizeToChunk = 100000; if (nbElts < kMinSizeToChunk) { ZL_EdgeList out = { .edges = sctx, .nbEdges = 1 }; - return ZL_RESULT_WRAP_VALUE(ZL_EdgeList, out); + return ZL_WRAP_VALUE(out); } size_t const nbChunks = (nbElts + kChunkSize - 1) / kChunkSize; size_t* chunkSizes = ZL_Graph_getScratchSpace(gctx, sizeof(size_t) * nbChunks); - ZL_RET_T_IF_NULL(ZL_EdgeList, allocation, chunkSizes); + ZL_ERR_IF_NULL(chunkSizes, allocation); ZL_ASSERT_GE(nbChunks, 1); for (size_t i = 0; i < nbChunks - 1; ++i) { @@ -587,12 +592,13 @@ static ZL_Histogram* getHistogram8(ZL_Graph* gctx, DataStatsU8* stats) static ZL_Report runBitpack(ZL_Edge* input) { - ZL_TRY_LET_T( + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET( ZL_EdgeList, streams, ZL_Edge_runNode(input, ZL_NODE_INTERPRET_TOKEN_AS_LE)); ZL_ASSERT_EQ(streams.nbEdges, 1); - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_BITPACK)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_BITPACK)); return ZL_returnSuccess(); } @@ -603,6 +609,7 @@ static ZL_Report runBitpack(ZL_Edge* input) static ZL_Report entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); ZL_Input const* input = ZL_Edge_getData(chunk); size_t const nbElts = ZL_Input_numElts(input); size_t const eltWidth = ZL_Input_eltWidth(input); @@ -616,7 +623,7 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) ZL_ASSERT_EQ(ZL_Input_type(input), ZL_Type_struct); ZL_Histogram* histogram = (ZL_Histogram*)ZL_Graph_getScratchSpace( gctx, sizeof(ZL_Histogram16)); - ZL_RET_R_IF_NULL(allocation, histogram); + ZL_ERR_IF_NULL(histogram, allocation); ZL_Histogram_init(histogram, 65535); ZL_Histogram_build(histogram, ZL_Input_ptr(input), nbElts, eltWidth); @@ -651,24 +658,24 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) // Check if we can use tokenization if (histogram->cardinality < 256) { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, ZL_Edge_runNode(chunk, ZL_NODE_TOKENIZE)); ZL_ASSERT_EQ(streams.nbEdges, 2); // Bitpack the values stream if possible - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( nbBits < 16 ? runBitpack(streams.edges[0]) : ZL_Edge_setDestination( streams.edges[0], ZL_GRAPH_STORE)); // Huffman compress the tokenized stream - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_HUFFMAN)); return ZL_returnSuccess(); } // TODO: Allow tokenization - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, runNode_wHistogram( @@ -677,9 +684,8 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) ZL_PrivateStandardNodeID_huffman_struct_v2 }, histogram)); ZL_ASSERT_EQ(streams.nbEdges, 2); - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_FSE)); - ZL_RET_R_IF_ERR( - ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_STORE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_FSE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_STORE)); return ZL_returnSuccess(); } @@ -724,7 +730,7 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) ZL_Histogram* histogram = getHistogram8(gctx, &stats); if (mode == EBM_huf) { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, runNode_wHistogram( @@ -732,12 +738,11 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) (ZL_NodeID){ ZL_PrivateStandardNodeID_huffman_v2 }, histogram)); ZL_ASSERT_EQ(streams.nbEdges, 2); - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_FSE)); - ZL_RET_R_IF_ERR( - ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_STORE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_FSE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_STORE)); return ZL_returnSuccess(); } else { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, runNode_wHistogram( @@ -745,11 +750,10 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) (ZL_NodeID){ ZL_PrivateStandardNodeID_fse_v2 }, histogram)); ZL_ASSERT_EQ(streams.nbEdges, 2); - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( + ZL_ERR_IF_ERR(ZL_Edge_setDestination( streams.edges[0], (ZL_GraphID){ ZL_PrivateStandardGraphID_fse_ncount })); - ZL_RET_R_IF_ERR( - ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_STORE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[1], ZL_GRAPH_STORE)); return ZL_returnSuccess(); } } @@ -757,15 +761,17 @@ entropyCompressChunk(ZL_Graph* gctx, ZL_Edge* chunk, EntropyBackendMode mode) static ZL_Report entropyDynamicGraph(ZL_Graph* gctx, ZL_Edge* sctx, EntropyBackendMode mode) { - ZL_TRY_LET_T(ZL_EdgeList, chunks, chunkInputStream(gctx, &sctx)); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_TRY_LET(ZL_EdgeList, chunks, chunkInputStream(gctx, &sctx)); for (size_t i = 0; i < chunks.nbEdges; ++i) { - ZL_RET_R_IF_ERR(entropyCompressChunk(gctx, chunks.edges[i], mode)); + ZL_ERR_IF_ERR(entropyCompressChunk(gctx, chunks.edges[i], mode)); } return ZL_returnSuccess(); } static ZL_Report doEntropyConversion(ZL_Graph* gctx, ZL_Edge** sctx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); (void)gctx; ZL_Input const* const input = ZL_Edge_getData(*sctx); @@ -779,19 +785,18 @@ static ZL_Report doEntropyConversion(ZL_Graph* gctx, ZL_Edge** sctx) ZL_NodeID const conversion = type == ZL_Type_numeric ? ZL_NODE_CONVERT_NUM_TO_SERIAL : ZL_NODE_CONVERT_TOKEN_TO_SERIAL; - ZL_TRY_LET_T( - ZL_EdgeList, serial, ZL_Edge_runNode(*sctx, conversion)); + ZL_TRY_LET(ZL_EdgeList, serial, ZL_Edge_runNode(*sctx, conversion)); *sctx = serial.edges[0]; } } else { ZL_ASSERT_GT(eltWidth, 1); - ZL_RET_R_IF_NE(node_invalid_input, eltWidth, 2); + ZL_ERR_IF_NE(eltWidth, 2, node_invalid_input); if (type == ZL_Type_numeric) { // Accept numeric inputs so we don't get a conversion from // numeric -> struct -> serial for eltWidth 1 data. Then convert // to struct for eltWidth 2. - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, structs, ZL_Edge_runNode(*sctx, ZL_NODE_CONVERT_NUM_TO_TOKEN)); @@ -815,11 +820,12 @@ static ZL_Report doEntropyConversion(ZL_Graph* gctx, ZL_Edge** sctx) ZL_Report EI_fseDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) { - ZL_RET_R_IF(graph_invalidNumInputs, nbIns != 1); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_ERR_IF(nbIns != 1, graph_invalidNumInputs); ZL_Edge* input = inputs[0]; - ZL_RET_R_IF_ERR(doEntropyConversion(gctx, &input)); + ZL_ERR_IF_ERR(doEntropyConversion(gctx, &input)); if (ZL_Graph_getCParam(gctx, ZL_CParam_formatVersion) < 15) { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, ZL_Edge_runNode( @@ -835,9 +841,10 @@ ZL_Report EI_fseDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) ZL_Report EI_huffmanDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) { - ZL_RET_R_IF(graph_invalidNumInputs, nbIns != 1); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_ERR_IF(nbIns != 1, graph_invalidNumInputs); ZL_Edge* input = inputs[0]; - ZL_RET_R_IF_ERR(doEntropyConversion(gctx, &input)); + ZL_ERR_IF_ERR(doEntropyConversion(gctx, &input)); if (ZL_Graph_getCParam(gctx, ZL_CParam_formatVersion) < 15) { ZL_NodeID const node = ZL_Input_type(ZL_Edge_getData(input)) == ZL_Type_serial @@ -845,7 +852,7 @@ EI_huffmanDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) : (ZL_NodeID){ ZL_PrivateStandardNodeID_huffman_fixed_deprecated }; - ZL_TRY_LET_T(ZL_EdgeList, streams, ZL_Edge_runNode(input, node)); + ZL_TRY_LET(ZL_EdgeList, streams, ZL_Edge_runNode(input, node)); ZL_ASSERT_EQ(streams.nbEdges, 1); return ZL_Edge_setDestination(streams.edges[0], ZL_GRAPH_STORE); } @@ -855,13 +862,14 @@ EI_huffmanDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) ZL_Report EI_entropyDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) { - ZL_RET_R_IF(graph_invalidNumInputs, nbIns != 1); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_ERR_IF(nbIns != 1, graph_invalidNumInputs); ZL_Edge* input = inputs[0]; - ZL_RET_R_IF_ERR(doEntropyConversion(gctx, &input)); + ZL_ERR_IF_ERR(doEntropyConversion(gctx, &input)); if (ZL_Graph_getCParam(gctx, ZL_CParam_formatVersion) < 15) { ZL_Input const* stream = ZL_Edge_getData(input); if (ZL_Input_type(stream) != ZL_Type_serial) { - return EI_huffmanDynamicGraph(gctx, inputs, nbIns); + return EI_huffmanDynamicGraph(gctx, &input, 1); } ZL_GraphID const graph = EI_selector_entropy(gctx, input); return ZL_Edge_setDestination(input, graph); diff --git a/src/openzl/codecs/entropy/encode_entropy_binding.h b/src/openzl/codecs/entropy/encode_entropy_binding.h index 1e3c00ff1..d76a5bf1f 100644 --- a/src/openzl/codecs/entropy/encode_entropy_binding.h +++ b/src/openzl/codecs/entropy/encode_entropy_binding.h @@ -26,50 +26,42 @@ EI_huffmanDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns); ZL_Report EI_entropyDynamicGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns); -#define EI_FSE_V2(id) \ - { \ - .gd = FSE_V2_GRAPH(id), .transform_f = EI_fse_v2, \ - .name = "!zl.private.fse_v2" \ - } - -#define EI_FSE_NCOUNT(id) \ - { \ - .gd = FSE_NCOUNT_GRAPH(id), .transform_f = EI_fse_ncount, \ - .name = "!zl.private.fse_ncount" \ - } - -#define EI_HUFFMAN_V2(id) \ - { \ - .gd = HUFFMAN_V2_GRAPH(id), .transform_f = EI_huffman_v2, \ - .name = "!zl.private.huffman_v2" \ - } - -#define EI_HUFFMAN_STRUCT_V2(id) \ - { \ - .gd = HUFFMAN_STRUCT_V2_GRAPH(id), \ - .transform_f = EI_huffman_struct_v2, \ - .name = "!zl.private.huffman_struct_v2" \ - } +#define EI_FSE_V2(id) \ + { .gd = FSE_V2_GRAPH(id), \ + .transform_f = EI_fse_v2, \ + .name = "!zl.private.fse_v2" } + +#define EI_FSE_NCOUNT(id) \ + { .gd = FSE_NCOUNT_GRAPH(id), \ + .transform_f = EI_fse_ncount, \ + .name = "!zl.private.fse_ncount" } + +#define EI_HUFFMAN_V2(id) \ + { .gd = HUFFMAN_V2_GRAPH(id), \ + .transform_f = EI_huffman_v2, \ + .name = "!zl.private.huffman_v2" } + +#define EI_HUFFMAN_STRUCT_V2(id) \ + { .gd = HUFFMAN_STRUCT_V2_GRAPH(id), \ + .transform_f = EI_huffman_struct_v2, \ + .name = "!zl.private.huffman_struct_v2" } // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define EI_FSE(id) \ - { \ - .gd = SERIALIZED_ENTROPY_GRAPH(id), .transform_f = EI_fse_typed, \ - .name = "!zl.private.fse_deprecated" \ - } - -#define EI_HUFFMAN(id) \ - { \ - .gd = SERIALIZED_ENTROPY_GRAPH(id), .transform_f = EI_huffman_typed, \ - .name = "!zl.private.huffman_deprecated" \ - } - -#define EI_HUFFMAN_FIXED(id) \ - { \ - .gd = FIXED_ENTROPY_GRAPH(id), .transform_f = EI_huffman_typed, \ - .name = "!zl.private.huffman_fixed_deprecated" \ - } +#define EI_FSE(id) \ + { .gd = SERIALIZED_ENTROPY_GRAPH(id), \ + .transform_f = EI_fse_typed, \ + .name = "!zl.private.fse_deprecated" } + +#define EI_HUFFMAN(id) \ + { .gd = SERIALIZED_ENTROPY_GRAPH(id), \ + .transform_f = EI_huffman_typed, \ + .name = "!zl.private.huffman_deprecated" } + +#define EI_HUFFMAN_FIXED(id) \ + { .gd = FIXED_ENTROPY_GRAPH(id), \ + .transform_f = EI_huffman_typed, \ + .name = "!zl.private.huffman_fixed_deprecated" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/entropy/encode_huffman_kernel.c b/src/openzl/codecs/entropy/encode_huffman_kernel.c index 22e102773..6c566f022 100644 --- a/src/openzl/codecs/entropy/encode_huffman_kernel.c +++ b/src/openzl/codecs/entropy/encode_huffman_kernel.c @@ -7,9 +7,7 @@ #include "openzl/codecs/entropy/common_huffman_kernel.h" #include "openzl/codecs/entropy/deprecated/common_entropy.h" -#include "openzl/common/debug.h" #include "openzl/fse/bitstream.h" -#include "openzl/fse/huf.h" #include "openzl/shared/bits.h" #include "openzl/shared/mem.h" #include "openzl/zl_errors.h" @@ -298,13 +296,14 @@ static ZL_Report ZS_largeHuffmanBuildCTableFromTree( uint16_t maxSymbolValue, int maxNbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); int const alphabetSize = (int)(maxSymbolValue + 1); uint16_t* nbPerRank = calloc((size_t)1 << maxNbBits, sizeof(uint16_t)); - ZL_RET_R_IF_NULL(allocation, nbPerRank); + ZL_ERR_IF_NULL(nbPerRank, allocation); uint16_t* valPerRank = calloc((size_t)1 << maxNbBits, sizeof(uint16_t)); if (valPerRank == NULL) { free(nbPerRank); - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } for (int n = 0; n <= nonNullRank; n++) { @@ -339,10 +338,11 @@ ZL_Report ZS_largeHuffmanBuildCTable( uint16_t maxSymbolValue, int maxNbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_RankPos rankPosition[ZS_kLargeHuffmanMaxRank + 1]; ZS_NodeElt* const huffNodeTable = calloc((size_t)(2 * maxSymbolValue + 3), sizeof(ZS_NodeElt)); - ZL_RET_R_IF_NULL(allocation, huffNodeTable); + ZL_ERR_IF_NULL(huffNodeTable, allocation); ZS_NodeElt* const huffNode = huffNodeTable + 1; @@ -364,13 +364,13 @@ ZL_Report ZS_largeHuffmanBuildCTable( maxNbBits = ZS_largeHuffmanSetMaxHeight(huffNode, nonNullRank, maxNbBits); if (maxNbBits > ZS_kLargeHuffmanMaxTableLog) { free(huffNodeTable); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } const ZL_Report report = ZS_largeHuffmanBuildCTableFromTree( ctable, huffNode, nonNullRank, maxSymbolValue, maxNbBits); free(huffNodeTable); - ZL_RET_R_IF_ERR(report); + ZL_ERR_IF_ERR(report); return ZL_returnValue((size_t)maxNbBits); } @@ -381,9 +381,10 @@ ZL_Report ZS_largeHuffmanWriteCTable( uint16_t maxSymbolValue, int maxNbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); int const maxSymbolValue1 = (int)maxSymbolValue + 1; uint8_t* const weights = malloc((size_t)(maxSymbolValue + 1)); - ZL_RET_R_IF_NULL(allocation, weights); + ZL_ERR_IF_NULL(weights, allocation); for (int s = 0; s < maxSymbolValue1; ++s) { ZL_ASSERT_LE(ctable[s].nbBits, maxNbBits); @@ -397,14 +398,14 @@ ZL_Report ZS_largeHuffmanWriteCTable( if (ZL_WC_avail(dst) < 7) { free(weights); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_push(dst, (uint8_t)maxNbBits); ZL_WC_pushCE16(dst, maxSymbolValue); if (ZL_isError(ZS_Entropy_encodeFse( dst, weights, (size_t)maxSymbolValue1, 1, 2))) { free(weights); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } free(weights); @@ -443,8 +444,9 @@ ZL_Report ZS_largeHuffmanEncodeUsingCTable( ZS_Huf16CElt const* ctable, int maxNbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_WC_avail(dst) < 8) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_pushCE32(dst, (uint32_t)size); uint8_t* const sizePtr = ZL_WC_ptr(dst); @@ -453,7 +455,7 @@ ZL_Report ZS_largeHuffmanEncodeUsingCTable( BIT_CStream_t cstream; if (ERR_isError( BIT_initCStream(&cstream, ZL_WC_ptr(dst), ZL_WC_avail(dst)))) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (ZL_64bits()) { @@ -481,7 +483,7 @@ ZL_Report ZS_largeHuffmanEncodeUsingCTable( size_t const streamSize = BIT_closeCStream(&cstream); if (streamSize == 0) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_advance(dst, streamSize); @@ -496,11 +498,12 @@ ZL_Report ZS_largeHuffmanEncodeUsingCTableX4( ZS_Huf16CElt const* ctable, int maxNbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t off = 0; size_t const maxChunkSize = size / 4 + 1; for (int i = 0; i < 4; ++i) { size_t const chunkSize = ZL_MIN(maxChunkSize, size - off); - ZL_RET_R_IF_ERR(ZS_largeHuffmanEncodeUsingCTable( + ZL_ERR_IF_ERR(ZS_largeHuffmanEncodeUsingCTable( dst, src + off, chunkSize, ctable, maxNbBits)); off += chunkSize; } @@ -511,8 +514,9 @@ ZL_Report ZS_largeHuffmanEncodeUsingCTableX4( static ZL_Report ZS_largeHuffmanUncompressed(ZL_WC* dst, uint16_t const* src, size_t size) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_WC_avail(dst) < 1 + ZL_varintSize((uint64_t)size) + 2 * size) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_push(dst, (uint8_t)ZS_HufTransformPrefix_lit); ZL_WC_pushVarint(dst, (uint64_t)size); @@ -529,6 +533,7 @@ ZL_Report ZS_largeHuffmanEncode( uint16_t maxSymbolValue, int maxTableLog) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (maxTableLog > ZS_kLargeHuffmanMaxTableLog || maxTableLog == 0) { maxTableLog = ZS_kLargeHuffmanMaxTableLog; } @@ -538,7 +543,7 @@ ZL_Report ZS_largeHuffmanEncode( ZL_WC cpy = *dst; if (ZL_WC_avail(dst) < 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t* const header = ZL_WC_ptr(dst); @@ -546,7 +551,7 @@ ZL_Report ZS_largeHuffmanEncode( //> Histogram uint32_t* const histogram = calloc((size_t)(maxSymbolValue + 1), sizeof(uint32_t)); - ZL_RET_R_IF_NULL(allocation, histogram); + ZL_ERR_IF_NULL(histogram, allocation); { int maxSymbolValueUpperBound = 0; for (size_t i = 0; i < size; ++i) { @@ -569,7 +574,7 @@ ZL_Report ZS_largeHuffmanEncode( *header = (uint8_t)ZS_HufTransformPrefix_constant; if (ZL_WC_avail(dst) < ZL_varintSize((uint64_t)size) + sizeof(uint16_t)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_WC_pushVarint(dst, (uint64_t)size); ZL_WC_pushCE16(dst, maxSymbolValue); @@ -581,14 +586,14 @@ ZL_Report ZS_largeHuffmanEncode( calloc((size_t)(maxSymbolValue + 1), sizeof(ZS_Huf16CElt)); if (ctable == NULL) { free(histogram); - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } ZL_Report const maxNbBitsReport = ZS_largeHuffmanBuildCTable( ctable, histogram, maxSymbolValue, maxTableLog); if (ZL_isError(maxNbBitsReport)) { free(histogram); free(ctable); - ZL_RET_R(maxNbBitsReport); + return maxNbBitsReport; } int const maxNbBits = (int)ZL_validResult(maxNbBitsReport); diff --git a/src/openzl/codecs/entropy/graph_entropy.h b/src/openzl/codecs/entropy/graph_entropy.h index 6a5c2a633..1f56ed75a 100644 --- a/src/openzl/codecs/entropy/graph_entropy.h +++ b/src/openzl/codecs/entropy/graph_entropy.h @@ -10,32 +10,36 @@ #include "openzl/zl_data.h" // st_* -#define ENTROPY_V2_GRAPH(id, inType) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(inType), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_serial), \ +#define ENTROPY_V2_GRAPH(id, inType) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(inType), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_serial), \ } #define FSE_V2_GRAPH(id) ENTROPY_V2_GRAPH(id, ZL_Type_serial) #define HUFFMAN_V2_GRAPH(id) ENTROPY_V2_GRAPH(id, ZL_Type_serial) #define HUFFMAN_STRUCT_V2_GRAPH(id) ENTROPY_V2_GRAPH(id, ZL_Type_struct) -#define FSE_NCOUNT_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define FSE_NCOUNT_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define FIXED_ENTROPY_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define FIXED_ENTROPY_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define SERIALIZED_ENTROPY_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define SERIALIZED_ENTROPY_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } #endif diff --git a/src/openzl/codecs/flatpack/decode_flatpack_binding.c b/src/openzl/codecs/flatpack/decode_flatpack_binding.c index d6d38eea5..b5f232530 100644 --- a/src/openzl/codecs/flatpack/decode_flatpack_binding.c +++ b/src/openzl/codecs/flatpack/decode_flatpack_binding.c @@ -6,6 +6,7 @@ ZL_Report DI_flatpack(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const alphabet = ins[0]; ZL_Input const* const packed = ins[1]; @@ -15,13 +16,13 @@ ZL_Report DI_flatpack(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t const alphabetSize = ZL_Input_numElts(alphabet); size_t const packedSize = ZL_Input_numElts(packed); - ZL_RET_R_IF_GT(corruption, alphabetSize, 256, "Alphabet too large!"); + ZL_ERR_IF_GT(alphabetSize, 256, corruption, "Alphabet too large!"); size_t const nbElts = ZS_FlatPack_nbElts( alphabetSize, (uint8_t const*)ZL_Input_ptr(packed), packedSize); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbElts, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZS_FlatPackSize const size = ZS_flatpackDecode( (uint8_t*)ZL_Output_ptr(out), @@ -30,10 +31,10 @@ ZL_Report DI_flatpack(ZL_Decoder* dictx, const ZL_Input* ins[]) alphabetSize, (uint8_t const*)ZL_Input_ptr(packed), packedSize); - ZL_RET_R_IF( - corruption, ZS_FlatPack_isError(size), "Flatpack decoding failed!"); + ZL_ERR_IF( + ZS_FlatPack_isError(size), corruption, "Flatpack decoding failed!"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/flatpack/decode_flatpack_binding.h b/src/openzl/codecs/flatpack/decode_flatpack_binding.h index d3c6a6f6a..81e32a587 100644 --- a/src/openzl/codecs/flatpack/decode_flatpack_binding.h +++ b/src/openzl/codecs/flatpack/decode_flatpack_binding.h @@ -8,9 +8,6 @@ ZL_Report DI_flatpack(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_FLATPACK(id) \ - { \ - .transform_f = DI_flatpack, .name = "flatpack" \ - } +#define DI_FLATPACK(id) { .transform_f = DI_flatpack, .name = "flatpack" } #endif diff --git a/src/openzl/codecs/flatpack/encode_flatpack_binding.c b/src/openzl/codecs/flatpack/encode_flatpack_binding.c index 2cc14bf87..62609a9a1 100644 --- a/src/openzl/codecs/flatpack/encode_flatpack_binding.c +++ b/src/openzl/codecs/flatpack/encode_flatpack_binding.c @@ -6,6 +6,7 @@ ZL_Report EI_flatpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -20,7 +21,7 @@ ZL_Report EI_flatpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Encoder_createTypedStream(eictx, 1, packedCapacity, 1); if (alphabet == NULL || packed == NULL) { - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } ZS_FlatPackSize const size = ZS_flatpackEncode( @@ -32,8 +33,8 @@ ZL_Report EI_flatpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) nbElts); ZL_ASSERT(!ZS_FlatPack_isError(size)); - ZL_RET_R_IF_ERR(ZL_Output_commit(alphabet, ZS_FlatPack_alphabetSize(size))); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR(ZL_Output_commit(alphabet, ZS_FlatPack_alphabetSize(size))); + ZL_ERR_IF_ERR( ZL_Output_commit(packed, ZS_FlatPack_packedSize(size, nbElts))); return ZL_returnValue(2); diff --git a/src/openzl/codecs/flatpack/encode_flatpack_binding.h b/src/openzl/codecs/flatpack/encode_flatpack_binding.h index 8253d5759..93b80efbc 100644 --- a/src/openzl/codecs/flatpack/encode_flatpack_binding.h +++ b/src/openzl/codecs/flatpack/encode_flatpack_binding.h @@ -11,11 +11,10 @@ ZL_BEGIN_C_DECLS ZL_Report EI_flatpack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_FLATPACK(id) \ - { \ - .gd = FLATPACK_GRAPH(id), .transform_f = EI_flatpack, \ - .name = "!zl.private.flatpack" \ - } +#define EI_FLATPACK(id) \ + { .gd = FLATPACK_GRAPH(id), \ + .transform_f = EI_flatpack, \ + .name = "!zl.private.flatpack" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/flatpack/graph_flatpack.h b/src/openzl/codecs/flatpack/graph_flatpack.h index 10e653106..6ffd8c19d 100644 --- a/src/openzl/codecs/flatpack/graph_flatpack.h +++ b/src/openzl/codecs/flatpack/graph_flatpack.h @@ -7,10 +7,11 @@ /// Graph definition for the flabpack transform /// used by both the encoder and decoder side. -#define FLATPACK_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_serial), \ +#define FLATPACK_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_serial), \ } #endif diff --git a/src/openzl/codecs/float_deconstruct/common_float_deconstruct_binding.h b/src/openzl/codecs/float_deconstruct/common_float_deconstruct_binding.h index 5dc201529..6d73d4508 100644 --- a/src/openzl/codecs/float_deconstruct/common_float_deconstruct_binding.h +++ b/src/openzl/codecs/float_deconstruct/common_float_deconstruct_binding.h @@ -23,6 +23,7 @@ static const FLTDECON_ElementType_e FLTDECON_ElementTypeEnumMaxValue = ZL_INLINE_KEYWORD ZL_Report FLTDECON_ElementWidth(FLTDECON_ElementType_e type) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); switch (type) { case FLTDECON_ElementType_float32: return ZL_returnValue(4); @@ -31,11 +32,12 @@ ZL_INLINE_KEYWORD ZL_Report FLTDECON_ElementWidth(FLTDECON_ElementType_e type) case FLTDECON_ElementType_float16: return ZL_returnValue(2); } - ZL_RET_R_ERR(logicError); + ZL_ERR(logicError); } ZL_INLINE_KEYWORD ZL_Report FLTDECON_SignFracWidth(FLTDECON_ElementType_e type) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); switch (type) { case FLTDECON_ElementType_float32: return ZL_returnValue(3); @@ -44,12 +46,13 @@ ZL_INLINE_KEYWORD ZL_Report FLTDECON_SignFracWidth(FLTDECON_ElementType_e type) case FLTDECON_ElementType_float16: return ZL_returnValue(2); } - ZL_RET_R_ERR(logicError); + ZL_ERR(logicError); } ZL_INLINE_KEYWORD ZL_Report FLTDECON_ExponentWidth(FLTDECON_ElementType_e type) { - ZL_RET_R_IF_GT(logicError, type, FLTDECON_ElementTypeEnumMaxValue); + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); + ZL_ERR_IF_GT(type, FLTDECON_ElementTypeEnumMaxValue, logicError); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.c b/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.c index 584f0a9bb..221d80b3b 100644 --- a/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.c +++ b/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.c @@ -12,6 +12,7 @@ ZL_Report DI_float_deconstruct(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const signFracStream = ins[0]; ZL_Input const* const exponentStream = ins[1]; @@ -19,27 +20,25 @@ ZL_Report DI_float_deconstruct(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_ASSERT_EQ(ZL_Input_type(signFracStream), ZL_Type_struct); size_t const nbElts = ZL_Input_numElts(exponentStream); - ZL_RET_R_IF_NE(corruption, nbElts, ZL_Input_numElts(signFracStream)); + ZL_ERR_IF_NE(nbElts, ZL_Input_numElts(signFracStream), corruption); FLTDECON_ElementType_e eltType = FLTDECON_ElementType_float32; if (DI_getFrameFormatVersion(dictx) >= 5) { ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_NE(corruption, header.size, 1); + ZL_ERR_IF_NE(header.size, 1, corruption); uint8_t const* const hdr = (uint8_t const*)header.start; - ZL_RET_R_IF_GT(corruption, *hdr, FLTDECON_ElementTypeEnumMaxValue); + ZL_ERR_IF_GT(*hdr, FLTDECON_ElementTypeEnumMaxValue, corruption); eltType = (FLTDECON_ElementType_e)(*hdr); } - ZL_TRY_LET_R(signFracWidth, FLTDECON_SignFracWidth(eltType)); - ZL_TRY_LET_R(exponentWidth, FLTDECON_ExponentWidth(eltType)); - ZL_RET_R_IF_NE( - corruption, ZL_Input_eltWidth(signFracStream), signFracWidth); - ZL_RET_R_IF_NE( - corruption, ZL_Input_eltWidth(exponentStream), exponentWidth); + ZL_TRY_LET(size_t, signFracWidth, FLTDECON_SignFracWidth(eltType)); + ZL_TRY_LET(size_t, exponentWidth, FLTDECON_ExponentWidth(eltType)); + ZL_ERR_IF_NE(ZL_Input_eltWidth(signFracStream), signFracWidth, corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(exponentStream), exponentWidth, corruption); - ZL_TRY_LET_R(eltWidth, FLTDECON_ElementWidth(eltType)); + ZL_TRY_LET(size_t, eltWidth, FLTDECON_ElementWidth(eltType)); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint8_t const* const exponent = (uint8_t const*)ZL_Input_ptr(exponentStream); @@ -63,6 +62,6 @@ ZL_Report DI_float_deconstruct(ZL_Decoder* dictx, const ZL_Input* ins[]) break; } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.h b/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.h index 4e79bf8dd..a8aa7d4dc 100644 --- a/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.h +++ b/src/openzl/codecs/float_deconstruct/decode_float_deconstruct_binding.h @@ -9,16 +9,12 @@ ZL_Report DI_float_deconstruct(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define FLOAT_DECONSTRUCT_GRAPH(id) \ - { \ - .CTid = ZL_StandardTransformID_float_deconstruct, \ - .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) \ - } +#define FLOAT_DECONSTRUCT_GRAPH(id) \ + { .CTid = ZL_StandardTransformID_float_deconstruct, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) } -#define DI_FLOAT_DECONSTRUCT(id) \ - { \ - .transform_f = DI_float_deconstruct, .name = "float deconstruct" \ - } +#define DI_FLOAT_DECONSTRUCT(id) \ + { .transform_f = DI_float_deconstruct, .name = "float deconstruct" } #endif diff --git a/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.c b/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.c index 777e014bc..4132eebac 100644 --- a/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.c +++ b/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.c @@ -11,10 +11,11 @@ ZL_INLINE_KEYWORD ZL_Report float_deconstruct( const ZL_Input* in, FLTDECON_ElementType_e eltType) { - ZL_RET_R_IF_GT(logicError, eltType, FLTDECON_ElementTypeEnumMaxValue); - ZL_TRY_LET_R(expectedEltWidth, FLTDECON_ElementWidth(eltType)); - ZL_RET_R_IF_NE( - streamParameter_invalid, ZL_Input_eltWidth(in), expectedEltWidth); + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ERR_IF_GT(eltType, FLTDECON_ElementTypeEnumMaxValue, logicError); + ZL_TRY_LET(size_t, expectedEltWidth, FLTDECON_ElementWidth(eltType)); + ZL_ERR_IF_NE( + ZL_Input_eltWidth(in), expectedEltWidth, streamParameter_invalid); ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); size_t const nbElts = ZL_Input_numElts(in); @@ -25,19 +26,19 @@ ZL_INLINE_KEYWORD ZL_Report float_deconstruct( uint8_t safeEltType = (uint8_t)eltType; ZL_Encoder_sendCodecHeader(eictx, &safeEltType, sizeof(safeEltType)); } else { - ZL_RET_R_IF_NE(logicError, eltType, FLTDECON_ElementType_float32); + ZL_ERR_IF_NE(eltType, FLTDECON_ElementType_float32, logicError); } - ZL_TRY_LET_R(signFracWidth, FLTDECON_SignFracWidth(eltType)); + ZL_TRY_LET(size_t, signFracWidth, FLTDECON_SignFracWidth(eltType)); ZL_Output* signFracStream = ZL_Encoder_createTypedStream(eictx, 0, nbElts, signFracWidth); - ZL_TRY_LET_R(exponentWidth, FLTDECON_ExponentWidth(eltType)); + ZL_TRY_LET(size_t, exponentWidth, FLTDECON_ExponentWidth(eltType)); ZL_Output* exponentStream = ZL_Encoder_createTypedStream(eictx, 1, nbElts, exponentWidth); if (signFracStream == NULL || exponentStream == NULL) { - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } uint8_t* const exponent = (uint8_t*)ZL_Output_ptr(exponentStream); @@ -60,8 +61,8 @@ ZL_INLINE_KEYWORD ZL_Report float_deconstruct( break; } - ZL_RET_R_IF_ERR(ZL_Output_commit(exponentStream, nbElts)); - ZL_RET_R_IF_ERR(ZL_Output_commit(signFracStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(exponentStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(signFracStream, nbElts)); return ZL_returnValue(2); } diff --git a/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.h b/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.h index a68099a66..8bb8d31a6 100644 --- a/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.h +++ b/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_binding.h @@ -18,35 +18,26 @@ EI_float16_deconstruct(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); // TODO(embg) Support float64 -#define EI_FLOAT32_DECONSTRUCT(id) \ - { \ - .gd = { .CTid = id, \ - .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = \ - ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) }, \ - .transform_f = EI_float32_deconstruct, \ - .name = "!zl.float32_deconstruct" \ - } - -#define EI_BFLOAT16_DECONSTRUCT(id) \ - { \ - .gd = { .CTid = id, \ - .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = \ - ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) }, \ - .transform_f = EI_bfloat16_deconstruct, \ - .name = "!zl.bfloat16_deconstruct" \ - } - -#define EI_FLOAT16_DECONSTRUCT(id) \ - { \ - .gd = { .CTid = id, \ - .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = \ - ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) }, \ - .transform_f = EI_float16_deconstruct, \ - .name = "!zl.float16_deconstruct" \ - } +#define EI_FLOAT32_DECONSTRUCT(id) \ + { .gd = { .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) }, \ + .transform_f = EI_float32_deconstruct, \ + .name = "!zl.float32_deconstruct" } + +#define EI_BFLOAT16_DECONSTRUCT(id) \ + { .gd = { .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) }, \ + .transform_f = EI_bfloat16_deconstruct, \ + .name = "!zl.bfloat16_deconstruct" } + +#define EI_FLOAT16_DECONSTRUCT(id) \ + { .gd = { .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct, ZL_Type_serial) }, \ + .transform_f = EI_float16_deconstruct, \ + .name = "!zl.float16_deconstruct" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_kernel.c b/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_kernel.c index 5c29b9258..3c038b7b4 100644 --- a/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_kernel.c +++ b/src/openzl/codecs/float_deconstruct/encode_float_deconstruct_kernel.c @@ -2,6 +2,7 @@ #include "openzl/codecs/float_deconstruct/encode_float_deconstruct_kernel.h" #include "openzl/shared/mem.h" +#include "openzl/shared/utils.h" #if ZL_HAS_AVX2 # include @@ -226,7 +227,7 @@ static void bfloat16_deconstruct_encode_AVX2( } #endif -static void float16_deconstruct_encode_scalar( +static ZL_MAYBE_UNUSED_FUNCTION void float16_deconstruct_encode_scalar( uint16_t const* __restrict const src16, uint8_t* __restrict const exponent, uint8_t* __restrict const signFrac, @@ -250,7 +251,7 @@ static void float16_deconstruct_encode_AVX2( size_t const nbElts) { // TODO(embg): support recent GCC -# ifdef __clang__ +# if defined(__clang__) && defined(NDEBUG) // Adding this pragma helps clang generate optimal code when AVX2 // instructions are available. The generated code is 20% faster, thanks to // better instructions for byte-packing. diff --git a/src/openzl/codecs/interleave/decode_interleave_binding.c b/src/openzl/codecs/interleave/decode_interleave_binding.c index ae3830867..faf57c4cc 100644 --- a/src/openzl/codecs/interleave/decode_interleave_binding.c +++ b/src/openzl/codecs/interleave/decode_interleave_binding.c @@ -88,7 +88,7 @@ ZL_Report DI_interleave( } } for (size_t i = 0; i < nbStreams; ++i) { - ZL_RET_R_IF_ERR(ZL_Output_commit(regen[i], nbStringsPerStream)); + ZL_ERR_IF_ERR(ZL_Output_commit(regen[i], nbStringsPerStream)); } return ZL_WRAP_VALUE(0); diff --git a/src/openzl/codecs/interleave/decode_interleave_binding.h b/src/openzl/codecs/interleave/decode_interleave_binding.h index 02e593767..3ea0780cc 100644 --- a/src/openzl/codecs/interleave/decode_interleave_binding.h +++ b/src/openzl/codecs/interleave/decode_interleave_binding.h @@ -16,10 +16,8 @@ ZL_Report DI_interleave( const ZL_Input* variableSrcs[], size_t nbVariableSrcs); -#define DI_INTERLEAVE(id) \ - { \ - .transform_f = DI_interleave, .name = "!zl.interleave/decode" \ - } +#define DI_INTERLEAVE(id) \ + { .transform_f = DI_interleave, .name = "!zl.interleave/decode" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/interleave/encode_interleave_binding.c b/src/openzl/codecs/interleave/encode_interleave_binding.c index b1024b391..cc17fbee6 100644 --- a/src/openzl/codecs/interleave/encode_interleave_binding.c +++ b/src/openzl/codecs/interleave/encode_interleave_binding.c @@ -15,7 +15,7 @@ ZL_Report EI_interleave(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) node_invalid_input, "Too many inputs. Only support up to 512 inputs for now"); for (size_t i = 0; i < nbIns; i++) { - ZL_RET_R_IF_NULL(node_invalid_input, ins[i]); + ZL_ERR_IF_NULL(ins[i], node_invalid_input); ZL_ERR_IF_NE( ZL_Input_type(ins[i]), ZL_Type_string, @@ -37,7 +37,7 @@ ZL_Report EI_interleave(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Encoder_sendCodecHeader(eictx, &nbInsU32, sizeof(nbInsU32)); ZL_Output* out = ZL_Encoder_createStringStream( eictx, 0, nbStrsPerInput * nbIns, totSize); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); char* ptr = ZL_Output_ptr(out); uint32_t* strLenPtr = ZL_Output_stringLens(out); @@ -60,6 +60,6 @@ ZL_Report EI_interleave(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ++strLenPtr; } } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbStrsPerInput * nbIns)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbStrsPerInput * nbIns)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/interleave/encode_interleave_binding.h b/src/openzl/codecs/interleave/encode_interleave_binding.h index fb511584b..255f64031 100644 --- a/src/openzl/codecs/interleave/encode_interleave_binding.h +++ b/src/openzl/codecs/interleave/encode_interleave_binding.h @@ -16,11 +16,10 @@ ZL_BEGIN_C_DECLS // interleaved in round-robin order ZL_Report EI_interleave(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_INTERLEAVE_STRING(id) \ - { \ - .gd = INTERLEAVE_STRING_GRAPH(id), .transform_f = EI_interleave, \ - .name = "!zl.interleave_string" \ - } +#define EI_INTERLEAVE_STRING(id) \ + { .gd = INTERLEAVE_STRING_GRAPH(id), \ + .transform_f = EI_interleave, \ + .name = "!zl.interleave_string" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/interleave/graph_interleave.h b/src/openzl/codecs/interleave/graph_interleave.h index 9c7a519eb..aa8bddb4a 100644 --- a/src/openzl/codecs/interleave/graph_interleave.h +++ b/src/openzl/codecs/interleave/graph_interleave.h @@ -3,11 +3,10 @@ #ifndef OPENZL_CODECS_INTERLEAVE_GRAPH_INTERLEAVE_H #define OPENZL_CODECS_INTERLEAVE_GRAPH_INTERLEAVE_H -#define INTERLEAVE_STRING_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ - .lastInputIsVariable = true, \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_string) \ - } +#define INTERLEAVE_STRING_GRAPH(id) \ + { .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ + .lastInputIsVariable = true, \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_string) } #endif // OPENZL_CODECS_INTERLEAVE_GRAPH_INTERLEAVE_H diff --git a/src/openzl/codecs/lz/decode_field_lz.c b/src/openzl/codecs/lz/decode_field_lz.c index b786cdb34..f450d7f11 100644 --- a/src/openzl/codecs/lz/decode_field_lz.c +++ b/src/openzl/codecs/lz/decode_field_lz.c @@ -143,6 +143,7 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( size_t const kShortLLCode, size_t const kShortMLCode) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint32_t const minMatch = kMinMatch(1 << kEltBits); uint8_t* const outStart = (uint8_t*)dst; @@ -175,8 +176,10 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( ZL_ASSERT(kShortLL % 16 == 0 || kShortLLCode == kMaxLitLengthCode - 1); ZL_ASSERT(kShortML % 16 == 0 || kShortMLCode == kMaxMatchLengthCode - 1); - uint8_t const* const outLimit = outEnd - kUnroll * (kTokenLL + kTokenML); - uint8_t const* const litsLimit = litsEnd - kUnroll * kTokenLL; + uint8_t const* const outLimit = + outEnd - kUnroll * (kTokenLL + kTokenML) - ZS_WILDCOPY_OVERLENGTH; + uint8_t const* const litsLimit = + litsEnd - kUnroll * kTokenLL - ZS_WILDCOPY_OVERLENGTH; uint16_t const* const toksLimit = toksEnd - kUnroll + 1; uint32_t const* const offsLimit = offsEnd - kUnroll + 1; @@ -227,10 +230,10 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( out += llen; lits += llen; if (ZL_UNLIKELY(llCode == kMaxLitLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, + ZL_ERR_IF_EQ( ells, ellsEnd, + srcSize_tooSmall, "Not enough extra literal lengths"); uint32_t const extra = *ells++ << kEltBits; if (ZL_UNLIKELY( @@ -257,7 +260,7 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( "Corruption: offset too large: %u vs %u", offset, (unsigned)(out - outStart)); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t const* match = out - offset; @@ -276,17 +279,17 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( out += mlen; match += mlen; if (ZL_UNLIKELY(mlCode == kMaxMatchLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, + ZL_ERR_IF_EQ( emls, emlsEnd, + srcSize_tooSmall, "Not enough extra match lengths"); uint32_t const extra = *emls++ << kEltBits; if (ZL_UNLIKELY(out + extra >= outLimit)) { - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT( out + extra, outEnd, + internalBuffer_tooSmall, "Match too long"); ZS_safecopy( out, @@ -306,18 +309,18 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( // TODO: Optimize this uint32_t plen = mlen; if (ZL_UNLIKELY(mlCode == kMaxMatchLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, + ZL_ERR_IF_EQ( emls, emlsEnd, + srcSize_tooSmall, "Not enough extra match lengths"); uint32_t const extra = *emls++ << kEltBits; plen += extra; if (ZL_UNLIKELY(out + plen >= outLimit)) { - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT( out + plen, outEnd, + internalBuffer_tooSmall, "Match too long"); ZS_safecopy(out, match, plen, ZS_wo_src_before_dst); out += plen; @@ -341,35 +344,35 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( uint32_t mlen = (mlCode + minMatch) << kEltBits; if (ZL_UNLIKELY(llCode == kMaxLitLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, + ZL_ERR_IF_EQ( ells, ellsEnd, + srcSize_tooSmall, "Not enough extra lit lengths"); uint32_t const extra = *ells++; llen += extra << kEltBits; } if (ZL_UNLIKELY(mlCode == kMaxMatchLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, + ZL_ERR_IF_EQ( emls, emlsEnd, + srcSize_tooSmall, "Not enough extra match lengths"); uint32_t const extra = *emls++; mlen += extra << kEltBits; } //> Ensure we have output space - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT( out + llen + mlen, outEnd, + internalBuffer_tooSmall, "Output buffer too small"); //> Copy literals - ZL_RET_R_IF_GT( - srcSize_tooSmall, lits + llen, litsEnd, "Too few literals"); + ZL_ERR_IF_GT( + lits + llen, litsEnd, srcSize_tooSmall, "Too few literals"); ZS_safecopy(out, lits, llen, ZS_wo_no_overlap); lits += llen; @@ -383,7 +386,7 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( "Corruption: offset too large: %u vs %u", offset, (unsigned)(out - outStart)); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } //> Copy match @@ -406,7 +409,7 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( //> Decode offset uint32_t offset; if (ofCode == 3) { - ZL_RET_R_IF_EQ(srcSize_tooSmall, offs, offsEnd, "Too few offsets"); + ZL_ERR_IF_EQ(offs, offsEnd, srcSize_tooSmall, "Too few offsets"); offset = *offs++ << kEltBits; reps[2] = reps[1]; reps[1] = reps[0]; @@ -430,8 +433,8 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( //> Decode literal length uint32_t literalLength = llCode; if (ZL_UNLIKELY(llCode == kMaxLitLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, ells, ellsEnd, "Too few extra llens"); + ZL_ERR_IF_EQ( + ells, ellsEnd, srcSize_tooSmall, "Too few extra llens"); uint32_t const extra = *ells++; literalLength += extra; } @@ -440,33 +443,32 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( //> Decode match length uint32_t matchLength = mlCode + minMatch; if (ZL_UNLIKELY(mlCode == kMaxMatchLengthCode)) { - ZL_RET_R_IF_EQ( - srcSize_tooSmall, emls, emlsEnd, "Too few extra mlens"); + ZL_ERR_IF_EQ( + emls, emlsEnd, srcSize_tooSmall, "Too few extra mlens"); uint32_t const extra = *emls++; matchLength += extra; } matchLength <<= kEltBits; //> Ensure we have output space - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT( (uint64_t)literalLength + (uint64_t)matchLength, (uint64_t)(outEnd - out), + internalBuffer_tooSmall, "Output size too small"); //> Copy literals - ZL_RET_R_IF_GT( - srcSize_tooSmall, + ZL_ERR_IF_GT( literalLength, (litsEnd - lits), + srcSize_tooSmall, "Too few literals"); ZS_safecopy(out, lits, literalLength, ZS_wo_no_overlap); lits += literalLength; out += literalLength; //> Validate offset - ZL_RET_R_IF_GT( - corruption, offset, (out - outStart), "Offset too large"); + ZL_ERR_IF_GT(offset, (out - outStart), corruption, "Offset too large"); //> Copy match uint8_t const* const match = out - offset; @@ -475,19 +477,19 @@ ZL_FORCE_INLINE ZL_Report ZL_FieldLz_decompress_impl2( } if (lits != litsEnd) { size_t const lastLiterals = (size_t)(litsEnd - lits); - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT( lastLiterals, (size_t)(outEnd - out), + internalBuffer_tooSmall, "Output size too small for last lits"); memcpy(out, lits, lastLiterals); lits += lastLiterals; out += lastLiterals; } - ZL_RET_R_IF_NE(corruption, offs, offsEnd, "too many offsets"); - ZL_RET_R_IF_NE(corruption, ells, ellsEnd, "too many extra llens"); - ZL_RET_R_IF_NE(corruption, emls, emlsEnd, "too many extra mlens"); + ZL_ERR_IF_NE(offs, offsEnd, corruption, "too many offsets"); + ZL_ERR_IF_NE(ells, ellsEnd, corruption, "too many extra llens"); + ZL_ERR_IF_NE(emls, emlsEnd, corruption, "too many extra mlens"); ZL_ASSERT_EQ((out - outStart) % (1 << kEltBits), 0); @@ -586,7 +588,7 @@ ZL_selectDecompressor(unsigned eltBits, uint16_t const* tokens, size_t nbTokens) return ZL_FIELD_LZ_DECOMPRESS_FN(0, 14, 14); } - if (0) { + if ((0)) { if (eltBits == 1) { shortLLCode = shortMLCode = 14; } @@ -753,15 +755,16 @@ ZL_Report ZS2_FieldLz_decompress( size_t eltWidth, ZL_FieldLz_InSequences const* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (src->nbTokens == 0) { - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, src->nbLiteralElts, dstEltCapacity); + ZL_ERR_IF_GT( + src->nbLiteralElts, dstEltCapacity, internalBuffer_tooSmall); memcpy(dst, src->literalElts, src->nbLiteralElts * eltWidth); return ZL_returnValue(src->nbLiteralElts); } if (!ZL_isPow2(eltWidth)) { ZL_LOG(ERROR, "eltWidth %u is not a power of 2", (unsigned)eltWidth); - ZL_RET_R_ERR(compressionParameter_invalid); + ZL_ERR(compressionParameter_invalid); } #ifndef NDEBUG tokenStats(src->tokens, src->nbTokens); diff --git a/src/openzl/codecs/lz/decode_lz_binding.c b/src/openzl/codecs/lz/decode_lz_binding.c index a3a9acf0d..1cc60d597 100644 --- a/src/openzl/codecs/lz/decode_lz_binding.c +++ b/src/openzl/codecs/lz/decode_lz_binding.c @@ -3,6 +3,7 @@ #include "openzl/codecs/lz/decode_lz_binding.h" #include "openzl/codecs/lz/common_field_lz.h" +#include "openzl/codecs/lz/decode_lz_kernel.h" #include "openzl/common/assertion.h" #include "openzl/shared/utils.h" #include "openzl/shared/varint.h" @@ -11,6 +12,7 @@ ZL_Report DI_fieldLz(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const literals = ins[0]; ZL_Input const* const tokens = ins[1]; ZL_Input const* const offsets = ins[2]; @@ -24,32 +26,32 @@ ZL_Report DI_fieldLz(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_ASSERT_NN(ins[4]); size_t const eltWidth = ZL_Input_eltWidth(literals); - ZL_RET_R_IF_NOT(corruption, ZL_isPow2(eltWidth)); + ZL_ERR_IF_NOT(ZL_isPow2(eltWidth), corruption); - ZL_RET_R_IF_NE(corruption, 2, ZL_Input_eltWidth(tokens)); - ZL_RET_R_IF_NE(corruption, 4, ZL_Input_eltWidth(offsets)); - ZL_RET_R_IF_NE(corruption, 4, ZL_Input_eltWidth(extraLiteralLengths)); - ZL_RET_R_IF_NE(corruption, 4, ZL_Input_eltWidth(extraMatchLengths)); + ZL_ERR_IF_NE(2, ZL_Input_eltWidth(tokens), corruption); + ZL_ERR_IF_NE(4, ZL_Input_eltWidth(offsets), corruption); + ZL_ERR_IF_NE(4, ZL_Input_eltWidth(extraLiteralLengths), corruption); + ZL_ERR_IF_NE(4, ZL_Input_eltWidth(extraMatchLengths), corruption); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( ZL_Input_eltWidth(tokens), 2, - "FieldLz tokens should be 2 bytes width"); - ZL_RET_R_IF_NE( corruption, + "FieldLz tokens should be 2 bytes width"); + ZL_ERR_IF_NE( ZL_Input_eltWidth(offsets), 4, - "FieldLz offsets should be 4 bytes width"); - ZL_RET_R_IF_NE( corruption, + "FieldLz offsets should be 4 bytes width"); + ZL_ERR_IF_NE( ZL_Input_eltWidth(extraLiteralLengths), 4, - "FieldLz extraLiteralLengths should be 4 bytes width"); - ZL_RET_R_IF_NE( corruption, + "FieldLz extraLiteralLengths should be 4 bytes width"); + ZL_ERR_IF_NE( ZL_Input_eltWidth(extraMatchLengths), 4, + corruption, "FieldLz extraMatchLengths should be 4 bytes width"); ZL_FieldLz_InSequences src = { @@ -78,18 +80,18 @@ ZL_Report DI_fieldLz(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_RESULT_OF(uint64_t) const r = ZL_varintDecode(&hdr, end); if (ZL_RES_isError(r)) { ZL_DLOG(ERROR, "header decoding failed"); - ZL_RET_R_ERR(srcSize_tooSmall); + ZL_ERR(srcSize_tooSmall); } if (hdr < end) { ZL_DLOG(ERROR, "header leftover bytes"); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } dstEltsCapacity = ZL_RES_value(r); } ZL_Output* dst = ZL_Decoder_create1OutStream(dictx, dstEltsCapacity, eltWidth); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); ZL_Report const dstSize = ZS2_FieldLz_decompress( ZL_Output_ptr(dst), dstEltsCapacity, eltWidth, &src); @@ -97,7 +99,63 @@ ZL_Report DI_fieldLz(ZL_Decoder* dictx, const ZL_Input* ins[]) return dstSize; } - ZL_RET_R_IF_ERR(ZL_Output_commit(dst, ZL_validResult(dstSize))); + ZL_ERR_IF_ERR(ZL_Output_commit(dst, ZL_validResult(dstSize))); return ZL_returnValue(1); } + +ZL_Report DI_lz(ZL_Decoder* dictx, const ZL_Input* ins[]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + + ZL_Input const* const literals = ins[0]; + ZL_Input const* const offsets = ins[1]; + ZL_Input const* const literalLens = ins[2]; + ZL_Input const* const matchLens = ins[3]; + + size_t const offsetsEltWidth = ZL_Input_eltWidth(offsets); + size_t const literalLensEltWidth = ZL_Input_eltWidth(literalLens); + size_t const matchLensEltWidth = ZL_Input_eltWidth(matchLens); + + size_t const numSequences = ZL_Input_numElts(offsets); + ZL_ERR_IF_NE( + numSequences, + ZL_Input_numElts(literalLens), + corruption, + "LZ: offsets and literal_lengths must have same count"); + ZL_ERR_IF_NE( + numSequences, + ZL_Input_numElts(matchLens), + corruption, + "LZ: offsets and match_lengths must have same count"); + + ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); + uint8_t const* headerStart = (uint8_t const*)header.start; + uint8_t const* const headerEnd = headerStart + header.size; + ZL_TRY_LET_CONST( + uint64_t, dstSize, ZL_varintDecode(&headerStart, headerEnd)); + ZL_ERR_IF_NE( + headerStart, headerEnd, corruption, "LZ: header leftover bytes"); + + ZL_Output* dst = ZL_Decoder_create1OutStream(dictx, dstSize, 1); + ZL_ERR_IF_NULL(dst, allocation); + + ZL_Lz_InSequences const src = { + .literals = (const uint8_t*)ZL_Input_ptr(literals), + .numLiterals = ZL_Input_numElts(literals), + .offsets = ZL_Input_ptr(offsets), + .offsetsEltWidth = offsetsEltWidth, + .literalLengths = ZL_Input_ptr(literalLens), + .literalLengthsEltWidth = literalLensEltWidth, + .matchLengths = ZL_Input_ptr(matchLens), + .matchLengthsEltWidth = matchLensEltWidth, + .numSequences = numSequences, + }; + ZL_LzError const err = + ZL_Lz_decode((uint8_t*)ZL_Output_ptr(dst), (size_t)dstSize, &src); + ZL_ERR_IF_NE(err, ZL_LzError_ok, corruption, "LZ decode failed"); + + ZL_ERR_IF_ERR(ZL_Output_commit(dst, (size_t)dstSize)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/lz/decode_lz_binding.h b/src/openzl/codecs/lz/decode_lz_binding.h index 0e52b6d93..8112d6006 100644 --- a/src/openzl/codecs/lz/decode_lz_binding.h +++ b/src/openzl/codecs/lz/decode_lz_binding.h @@ -10,11 +10,10 @@ ZL_BEGIN_C_DECLS ZL_Report DI_fieldLz(ZL_Decoder* dictx, const ZL_Input* ins[]); +ZL_Report DI_lz(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_FIELD_LZ(id) \ - { \ - .transform_f = DI_fieldLz, .name = "field lz" \ - } +#define DI_FIELD_LZ(id) { .transform_f = DI_fieldLz, .name = "field lz" } +#define DI_LZ(id) { .transform_f = DI_lz, .name = "!zl.lz" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/lz/decode_lz_kernel.c b/src/openzl/codecs/lz/decode_lz_kernel.c new file mode 100644 index 000000000..32277a8a3 --- /dev/null +++ b/src/openzl/codecs/lz/decode_lz_kernel.c @@ -0,0 +1,692 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/lz/decode_lz_kernel.h" + +#include + +#include "openzl/codecs/common/copy.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" +#include "openzl/shared/utils.h" + +enum { + // The loop is not currently unrolled, but leave kUnroll in place so it can + // be easily unrolled in the future, and make sure all logic takes kUnroll + // into account. + ZL_Lz_kUnroll = 1, + + // Each sequences always copies 32-bytes of literals and match, and copies + // in chunks of 32-bytes. So the loop needs to ensure that it is always safe + // to copy up to roundUp(litLength, 32) and roundUp(matchLength, 32) bytes. + ZL_Lz_kLitCopyLen = 32, + ZL_Lz_kMatchCopyLen = 32, + + // The amount of remaining literals the fast decoding loop needs to execute + // one + // iteration. + ZL_Lz_kLitSlop = ZL_Lz_kUnroll * ZL_Lz_kLitCopyLen, + + // The amount of remaining output space the fast decoding loop needs to + // execute one iteration. + ZL_Lz_kOutSlop = ZL_Lz_kLitSlop + (ZL_Lz_kUnroll * ZL_Lz_kMatchCopyLen) +}; + +/** + * Logically: + * + * ``` + * char tmp[kLength]; + * memcpy(tmp, src, kLength); + * memcpy(dst, tmp, kLength); + * ``` + * + * Unlike `memcpy()` @p src and @p dst are allowed to overlap, and we guarantee + * that the copy happens as-if they were not overlapped. + */ +ZL_FORCE_INLINE void +copyNonOverlapping(uint8_t* dst, const uint8_t* src, size_t kLength) +{ +#if ZL_HAS_SSSE3 + if (kLength == 16) { + const __m128i v = _mm_lddqu_si128((const __m128i_u*)src); + _mm_storeu_si128((__m128i_u*)dst, v); + return; + } +#endif + +#if ZL_HAS_AVX2 + if (kLength == 32) { + const __m256i v = _mm256_lddqu_si256((const __m256i_u*)src); + _mm256_storeu_si256((__m256i_u*)dst, v); + return; + } else if (kLength == 64) { + const __m256i v0 = _mm256_lddqu_si256((const __m256i_u*)src); + const __m256i v1 = _mm256_lddqu_si256((const __m256i_u*)(src + 32)); + _mm256_storeu_si256((__m256i_u*)dst, v0); + _mm256_storeu_si256((__m256i_u*)(dst + 32), v1); + return; + } +#endif + + assert(kLength <= 64); + char tmp[64]; + memcpy(tmp, src, kLength); + memcpy(dst, tmp, kLength); +} + +/** + * Helper macro to copy @p kCopyLength bytes and sink a bounds check @p + * shouldExit to only run if @p length > @p kCopyLength. And finally + * copy @p length bytes @p kCopyLength bytes at a time. It uses the + * @p copy function or function-like-macro to do the copy. + * + * Sinking the bounds check behind the unlikely long length check avoids + * the bounds check in the majority of cases. + */ +#define ZL_LZ_COPY_LOOP(copy, kCopyLength, length, shouldExit) \ + do { \ + copy(0, kCopyLength); \ + if (ZL_UNLIKELY(length > kCopyLength)) { \ + if (ZL_UNLIKELY(shouldExit)) { \ + goto _exit; \ + } \ + ptrdiff_t copied = kCopyLength; \ + do { \ + copy(copied, kCopyLength); \ + copied += kCopyLength; \ + } while (copied < length); \ + } \ + } while (0) + +#define ZL_LZ_COPY_LITERALS_IMPL(copied, kCopyLength) \ + copyNonOverlapping( \ + out + outPos + copied, lits + litPos + copied, kCopyLength) + +/** + * Copies @p length literals from `lit + litPos` to `out + outPos` + * `ZL_Lz_kLitCopyLen` bytes at a time. Uses the bounds check @p shouldExit + * for lengths longer than `ZL_Lz_kLitCopyLen` to `goto _exit` when it is true. + */ +#define ZL_LZ_COPY_LITERALS(length, shouldExit) \ + ZL_LZ_COPY_LOOP( \ + ZL_LZ_COPY_LITERALS_IMPL, ZL_Lz_kLitCopyLen, length, shouldExit) + +#define ZL_LZ_COPY_MATCH_NON_OVERLAPPING_IMPL(copied, kCopyLength) \ + copyNonOverlapping( \ + out + outMatch + copied, out + match + copied, kCopyLength) + +/** + * Copies @p length bytes from `out + match` to `out + outMatch` @p kCopyLength + * bytes at a time. Uses the bounds check @p shouldExit for lengths longer than + * @p kCopyLen to `goto _exit` when it is true. + * + * @pre `offset >= kCopyLength || offset >= length` + */ +#define ZL_LZ_COPY_MATCH_NON_OVERLAPPING(length, kCopyLength, shouldExit) \ + assert(offset >= kCopyLength || offset >= length); \ + ZL_LZ_COPY_LOOP( \ + ZL_LZ_COPY_MATCH_NON_OVERLAPPING_IMPL, \ + kCopyLength, \ + length, \ + shouldExit) + +#if ZL_HAS_AVX2 +// clang-format off +// LUT for generating an initial 16-byte pattern from the first `offset` bytes. +// Entry [offset][pos] = pos % offset, used as a shuffle mask for _mm_shuffle_epi8. +// Entry [0] is unused (offset=0 is invalid) and zeroed out via 0x80. +static const uint8_t ZL_ALIGNED(16) +kPatternGeneration[17][16] = { + {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, // offset 0 (unused) + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // offset 1 + {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // offset 2 + {0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0}, // offset 3 + {0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3}, // offset 4 + {0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0}, // offset 5 + {0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3}, // offset 6 + {0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1}, // offset 7 + {0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7}, // offset 8 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6}, // offset 9 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5}, // offset 10 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 0, 1, 2, 3, 4}, // offset 11 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 1, 2, 3}, // offset 12 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12, 0, 1, 2}, // offset 13 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13, 0, 1}, // offset 14 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, 0}, // offset 15 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15}, // offset 16 +}; + +// LUT for reshuffling a pattern to advance by 16 positions. +// Entry [offset][pos] = (16 + pos) % offset, used to rotate the pattern +// for the next 16-byte store when offset is not a power of 2. +static const uint8_t ZL_ALIGNED(16) +kPatternReshuffle[17][16] = { + {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80}, // offset 0 (unused) + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // offset 1 + {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // offset 2 + {1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1}, // offset 3 + {0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3}, // offset 4 + {1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1}, // offset 5 + {4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1}, // offset 6 + {2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3}, // offset 7 + {0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7}, // offset 8 + {7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4}, // offset 9 + {6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1}, // offset 10 + {5, 6, 7, 8, 9,10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, // offset 11 + {4, 5, 6, 7, 8, 9,10,11, 0, 1, 2, 3, 4, 5, 6, 7}, // offset 12 + {3, 4, 5, 6, 7, 8, 9,10,11,12, 0, 1, 2, 3, 4, 5}, // offset 13 + {2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13, 0, 1, 2, 3}, // offset 14 + {1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, 0, 1}, // offset 15 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15}, // offset 16 +}; +// clang-format on + +/// Loads the pattern for copying 16 bytes from @p src when the offset is @p +/// offset, accounting for overlapping matches. +/// @pre offset <= 16 +/// @note Defines offset == 0 to memset(0) +ZL_FORCE_INLINE __m128i loadPattern(const uint8_t* src, ptrdiff_t offset) +{ + assert(offset >= 0 && offset <= 16); + __m128i generation = + _mm_load_si128((const __m128i*)kPatternGeneration[offset]); + __m128i data = _mm_lddqu_si128((const __m128i_u*)src); + return _mm_shuffle_epi8(data, generation); +} + +/// Loads the reshuffle mask for the pattern. This is used to rotate the pattern +/// after each 16-byte copy. For example, if the offset is 5, then the original +/// pattern is: +/// +/// 0123401234012340 +/// +/// And after copying 16 bytes it needs to be reshuffled to start with 1 +/// +/// 1234012340123401 +ZL_FORCE_INLINE __m128i loadReshuffle(ptrdiff_t offset) +{ + return _mm_load_si128((const __m128i*)kPatternReshuffle[offset]); +} + +/// Store @p pattern to @p dst +ZL_FORCE_INLINE void copyPattern32(uint8_t* dst, __m256i pattern) +{ + _mm256_storeu_si256((__m256i_u*)dst, pattern); +} + +/// Store @p pattern to @p dst twice +ZL_FORCE_INLINE void copyPattern2x16(uint8_t* dst, __m128i pattern) +{ + _mm_storeu_si128((__m128i_u*)dst, pattern); + _mm_storeu_si128((__m128i_u*)(dst + 16), pattern); +} + +/// Store @p pattern to @p dst twice and uses @p reshuffle to shuffle the mask +/// after each store. +/// @returns The shuffled pattern +ZL_FORCE_INLINE __m128i +copyPatternWithReshuffle2x16(uint8_t* dst, __m128i pattern, __m128i reshuffle) +{ + _mm_storeu_si128((__m128i_u*)dst, pattern); + pattern = _mm_shuffle_epi8(pattern, reshuffle); + _mm_storeu_si128((__m128i_u*)(dst + 16), pattern); + pattern = _mm_shuffle_epi8(pattern, reshuffle); + return pattern; +} + +# define ZL_LZ_COPY_MATCH_OVERLAPPING_OFFSET_1_IMPL(copied, kCopyLength) \ + copyPattern32(out + outMatch + copied, pattern) + +/** + * Copies @p length bytes from `out + match` to `out + outMatch` @p kCopyLength + * bytes at a time. Uses the bounds check @p shouldExit for lengths longer than + * @p kCopyLen to `goto _exit` when it is true. + * + * @pre `offset == 1` + */ +# define ZL_LZ_COPY_MATCH_OVERLAPPING_OFFSET_1(length, shouldExit) \ + do { \ + assert(offset == 1); \ + assert(ZL_Lz_kMatchCopyLen >= 32); \ + const __m256i pattern = _mm256_set1_epi8((char)out[match]); \ + ZL_LZ_COPY_LOOP( \ + ZL_LZ_COPY_MATCH_OVERLAPPING_OFFSET_1_IMPL, \ + 32, \ + length, \ + shouldExit); \ + } while (0) + +# define ZL_LZ_COPY_MATCH_OVERLAPPING_POW2_IMPL(copied, kCopyLength) \ + copyPattern2x16(out + outMatch + copied, pattern) + +/** + * Copies @p length bytes from `out + match` to `out + outMatch` @p kCopyLength + * bytes at a time. Uses the bounds check @p shouldExit for lengths longer than + * @p kCopyLen to `goto _exit` when it is true. + * + * @pre `ZL_isPow2(offset)` + */ +# define ZL_LZ_COPY_MATCH_OVERLAPPING_POW2(length, shouldExit) \ + do { \ + assert(ZL_isPow2((uint64_t)offset)); \ + assert(ZL_Lz_kMatchCopyLen >= 32); \ + const __m128i pattern = loadPattern(out + match, offset); \ + ZL_LZ_COPY_LOOP( \ + ZL_LZ_COPY_MATCH_OVERLAPPING_POW2_IMPL, \ + 32, \ + length, \ + shouldExit); \ + } while (0) + +# define ZL_LZ_COPY_MATCH_OVERLAPPING_NON_POW2_IMPL(copied, kCopyLength) \ + do { \ + pattern = copyPatternWithReshuffle2x16( \ + out + outMatch + copied, pattern, reshuffle); \ + } while (0) + +/** + * Copies @p length bytes from `out + match` to `out + outMatch` @p kCopyLength + * bytes at a time. Uses the bounds check @p shouldExit for lengths longer than + * @p kCopyLen to `goto _exit` when it is true. + * + * @pre `offset <= 16` + */ +# define ZL_LZ_COPY_MATCH_OVERLAPPING_NON_POW2(length, shouldExit) \ + do { \ + assert(offset <= 16); \ + assert(ZL_Lz_kMatchCopyLen >= 32); \ + __m128i pattern = loadPattern(out + match, offset); \ + const __m128i reshuffle = loadReshuffle(offset); \ + ZL_LZ_COPY_LOOP( \ + ZL_LZ_COPY_MATCH_OVERLAPPING_NON_POW2_IMPL, \ + 32, \ + length, \ + shouldExit); \ + } while (0) + +/** + * Copies @p length bytes from `out + match` to `out + outMatch` @p kCopyLength + * bytes at a time. Uses the bounds check @p shouldExit for lengths longer than + * @p kCopyLen to `goto _exit` when it is true. + * + * @note Handles the case when `offset < length` + */ +# define ZL_LZ_COPY_MATCH_OVERLAPPING(length, shouldExit) \ + do { \ + if (offset == 1) { \ + ZL_LZ_COPY_MATCH_OVERLAPPING_OFFSET_1(matchLen, shouldExit); \ + } else if ( \ + offset == 2 || offset == 4 || offset == 8 \ + || offset == 16) { \ + ZL_LZ_COPY_MATCH_OVERLAPPING_POW2(matchLen, shouldExit); \ + } else if (offset <= 16) { \ + ZL_LZ_COPY_MATCH_OVERLAPPING_NON_POW2(matchLen, shouldExit); \ + } else { \ + ZL_LZ_COPY_MATCH_NON_OVERLAPPING(matchLen, 16, shouldExit); \ + } \ + } while (0) +#else + +/** + * Copies @p length bytes from `out + match` to `out + outMatch` @p kCopyLength + * bytes at a time. Uses the bounds check @p shouldExit for lengths longer than + * @p kCopyLen to `goto _exit` when it is true. + * + * @note Handles the case when `offset < length` + */ +# define ZL_LZ_COPY_MATCH_OVERLAPPING(length, shouldExit) \ + do { \ + assert(ZL_Lz_kMatchCopyLen >= ZS_WILDCOPY_OVERLENGTH); \ + if (shouldExit) { \ + goto _exit; \ + } \ + ZS_wildcopy( \ + out + outMatch, \ + out + match, \ + length, \ + ZS_wo_src_before_dst); \ + } while (0) +#endif + +/** + * Decodes a single LZ sequences and updates @p outPos and @p litPos + */ +static ZL_LzError ZL_Lz_decode_sequence( + uint8_t* dst, + size_t dstSize, + const ZL_Lz_InSequences* src, + ptrdiff_t seq, + ptrdiff_t* outPos, + ptrdiff_t* litPos) +{ + const uint8_t* const literals = src->literals; + ptrdiff_t const numLiterals = (ptrdiff_t)src->numLiterals; + const void* const offsets = src->offsets; + ptrdiff_t const offsetsEltWidth = (ptrdiff_t)src->offsetsEltWidth; + const void* const literalLengths = src->literalLengths; + ptrdiff_t const literalLengthsEltWidth = + (ptrdiff_t)src->literalLengthsEltWidth; + const void* const matchLengths = src->matchLengths; + ptrdiff_t const matchLengthsEltWidth = (ptrdiff_t)src->matchLengthsEltWidth; + + assert((size_t)seq < src->numSequences); + assert((size_t)*outPos <= dstSize); + assert(*litPos <= numLiterals); + + ptrdiff_t const litLen = (ptrdiff_t)ZL_readN( + (const uint8_t*)literalLengths + seq * literalLengthsEltWidth, + (size_t)literalLengthsEltWidth); + ptrdiff_t const offset = (ptrdiff_t)ZL_readN( + (const uint8_t*)offsets + seq * offsetsEltWidth, + (size_t)offsetsEltWidth); + ptrdiff_t const matchLen = (ptrdiff_t)ZL_readN( + (const uint8_t*)matchLengths + seq * matchLengthsEltWidth, + (size_t)matchLengthsEltWidth); + + // Copy literals + if (*litPos + litLen > numLiterals) { + return ZL_LzError_notEnoughLiterals; + } + if (*outPos + litLen > (ptrdiff_t)dstSize) { + return ZL_LzError_literalLengthTooLarge; + } + if (litLen > 0) { + memcpy(dst + *outPos, literals + *litPos, (size_t)litLen); + } + *outPos += litLen; + *litPos += litLen; + + // Validate offset + if (offset == 0) { + return ZL_LzError_offsetZero; + } + if (offset > *outPos) { + return ZL_LzError_offsetTooLarge; + } + + // Copy match (byte-by-byte to handle overlapping matches) + if (*outPos + matchLen > (ptrdiff_t)dstSize) { + return ZL_LzError_matchLengthTooLarge; + } + for (ptrdiff_t i = 0; i < matchLen; ++i) { + dst[*outPos + i] = dst[*outPos + i - offset]; + } + *outPos += matchLen; + return ZL_LzError_ok; +} + +/** + * Decodes the remaining literals in the literals buffer after all sequences + * have been executed. + */ +static ZL_LzError ZL_Lz_decode_lastLiterals( + uint8_t* dst, + size_t dstSize, + const ZL_Lz_InSequences* src, + ptrdiff_t outPos, + ptrdiff_t litPos) +{ + const uint8_t* const literals = src->literals; + ptrdiff_t const numLiterals = (ptrdiff_t)src->numLiterals; + + if (litPos > numLiterals) { + // This can happen when using the temporary literal buffer. + // It is okay, however, because we are just reading zeros. + assert(litPos - numLiterals <= ZL_Lz_kLitSlop); + return ZL_LzError_notEnoughLiterals; + } + + assert(outPos <= (ptrdiff_t)dstSize); + + if (litPos < numLiterals) { + const ptrdiff_t lastLits = numLiterals - litPos; + if (outPos + lastLits > (ptrdiff_t)dstSize) { + return ZL_LzError_literalsTooLarge; + } + memcpy(dst + outPos, literals + litPos, (size_t)lastLits); + outPos += lastLits; + } + + if (outPos != (ptrdiff_t)dstSize) { + return ZL_LzError_dstSizeTooLarge; + } + + return ZL_LzError_ok; +} + +/// The fallback LZ decoder that works on all numeric widths but is slow +static ZL_LzError +ZL_Lz_decode_generic(uint8_t* dst, size_t dstSize, const ZL_Lz_InSequences* src) +{ + ptrdiff_t seq = 0; + ptrdiff_t outPos = 0; + ptrdiff_t litPos = 0; + + ptrdiff_t const numSequences = (ptrdiff_t)src->numSequences; + for (; seq < numSequences; seq++) { + const ZL_LzError err = + ZL_Lz_decode_sequence(dst, dstSize, src, seq, &outPos, &litPos); + if (err != ZL_LzError_ok) { + return err; + } + } + + return ZL_Lz_decode_lastLiterals(dst, dstSize, src, outPos, litPos); +} + +typedef struct { + ZL_Lz_InSequences src; + ptrdiff_t seq; + ptrdiff_t outPos; + ptrdiff_t litPos; + ptrdiff_t litLimit; +} ZL_Lz_DecodeState; + +/** + * The hot LZ decoding loop. + * + * @pre state->seq <= state->src.numSequences - ZL_Lz_kUnroll + * @pre state->outPos <= dstSize - ZL_Lz_kOutSlop + * @pre state->litPos <= state->litLimit + * + * NOTE: This is force outlined because the loop is tight on registers. If there + * is a function call in the loop body, then the compiler has to worry about + * callee saved registers, and spills more variables to the stack. So force + * outline the hot loop and also ensure that every function it calls is force + * inlined. + * + * NOTE: This kernel uses ptrdiff_t rather than pointers to avoid UB with + * pointers, which are only valid within the buffer and one past the end. + */ +ZL_FORCE_NOINLINE ZL_LzError ZL_Lz_decode_u16Loop( + uint8_t* const dst, + size_t dstSize, + ZL_Lz_DecodeState* state) +{ + uint8_t* const out = dst; + const size_t numSeqs = state->src.numSequences; + const uint8_t* const lits = state->src.literals; + const uint16_t* const offs = state->src.offsets; + const uint16_t* const litLens = state->src.literalLengths; + const uint16_t* const matchLens = state->src.matchLengths; + + ptrdiff_t outPos = state->outPos; + const ptrdiff_t outLimit = (ptrdiff_t)dstSize - ZL_Lz_kOutSlop; + + ptrdiff_t litPos = state->litPos; + const ptrdiff_t litLimit = state->litLimit; + + ptrdiff_t seq = state->seq; + const ptrdiff_t seqLimit = (ptrdiff_t)numSeqs - ZL_Lz_kUnroll; + + do { + assert(seq <= seqLimit); + assert(litPos <= litLimit); + assert(outPos <= outLimit); +#ifdef __clang__ +# pragma clang loop unroll(full) +#endif + for (size_t u = 0; u < ZL_Lz_kUnroll; ++u) { + assert((size_t)seq < numSeqs); + assert((size_t)litPos <= state->src.numLiterals); + assert((size_t)outPos <= dstSize); + + const ptrdiff_t litLen = litLens[seq]; + const ptrdiff_t matchLen = matchLens[seq]; + const ptrdiff_t offset = offs[seq]; + + const ptrdiff_t outMatch = outPos + litLen; + const ptrdiff_t outNext = outMatch + matchLen; + const ptrdiff_t litNext = litPos + litLen; + + // Copies literals and breaks if the literals go beyond litLimit or + // the sequences goes beyond outLimit. Check outNext rather than + // outMatch so that if the literals are long, we don't need to + // re-copy the literals if the match will exit. + // + // The bounds check only needs to be executed when + // litLen > ZL_Lz_kLitCopyLen because we guarantee there is enough + // space to copy short literals. + ZL_LZ_COPY_LITERALS( + litLen, (litNext > litLimit || outNext > outLimit)); + + const ptrdiff_t match = outMatch - offset; + if (ZL_UNLIKELY(match < 0)) { + return ZL_LzError_offsetTooLarge; + } + + // Copies the match using different strategies for the common case + // where the match doesn't overlap, and for when the match does + // overlap. + // + // The bounds check only needs to be executed when + // matchLen > ZL_Lz_kMatchCopyLen because we guarantee there is + // enough space to copy short matches. + if (ZL_UNLIKELY(offset < matchLen)) { + ZL_LZ_COPY_MATCH_OVERLAPPING(matchLen, (outNext > outLimit)); + } else { + ZL_LZ_COPY_MATCH_NON_OVERLAPPING( + matchLen, ZL_Lz_kMatchCopyLen, (outNext > outLimit)); + } + + // Only update the state at the end of the loop because either the + // literal or match copy may reach a limit, and we will need to + // reprocess the current sequence. + outPos = outNext; + litPos = litNext; + ++seq; + } + } while (seq <= seqLimit && outPos <= outLimit && litPos <= litLimit); + +_exit: + state->seq = seq; + state->outPos = outPos; + state->litPos = litPos; + + return ZL_LzError_ok; +} + +static ZL_LzError ZL_Lz_decode_u16( + uint8_t* const dst, + size_t dstSize, + const ZL_Lz_InSequences* src) +{ + ZL_Lz_DecodeState state = { + .src = *src, + .seq = 0, + .outPos = 0, + .litPos = 0, + .litLimit = (ptrdiff_t)state.src.numLiterals - ZL_Lz_kLitSlop, + }; + + const ptrdiff_t numSeqs = (ptrdiff_t)state.src.numSequences; + const ptrdiff_t outLimit = (ptrdiff_t)dstSize - ZL_Lz_kOutSlop; + const ptrdiff_t seqLimit = + (ptrdiff_t)state.src.numSequences - ZL_Lz_kUnroll; + + uint8_t litBuffer[2 * ZL_Lz_kLitSlop] = { 0 }; + + for (; state.seq < numSeqs;) { + // Transfer the literals to a temporary buffer that is guaranteed to + // have enough slop space when close to the end. This avoids pessimizing + // the edge case where there are many sequences remaining but very few + // literals remaining. + if (state.litPos > state.litLimit) { + if (state.src.literals != src->literals) { + // We've already transferred the literals + assert(state.litPos <= (ptrdiff_t)sizeof(litBuffer)); + // Implies not enough literals + return ZL_LzError_notEnoughLiterals; + } + assert(state.litPos <= (ptrdiff_t)state.src.numLiterals); + const size_t remainingLiterals = + state.src.numLiterals - (size_t)state.litPos; + assert(remainingLiterals <= ZL_Lz_kLitSlop); + if (remainingLiterals > 0) { + memcpy(litBuffer, + state.src.literals + state.litPos, + remainingLiterals); + } + state.src.literals = litBuffer; + state.src.numLiterals = remainingLiterals; + state.litPos = 0; + state.litLimit = (ptrdiff_t)remainingLiterals; + } + if (state.outPos <= outLimit && state.litPos <= state.litLimit + && state.seq <= seqLimit) { + const ZL_LzError err = ZL_Lz_decode_u16Loop(dst, dstSize, &state); + if (err != ZL_LzError_ok) { + return err; + } + if (state.litPos > (ptrdiff_t)state.src.numLiterals) { + // This can happen when using the temporary literal buffer. + // But still guaranteed not to overflow the buffer. + assert(state.src.literals == litBuffer); + assert(state.litPos <= (ptrdiff_t)sizeof(litBuffer)); + return ZL_LzError_notEnoughLiterals; + } + } + + if (state.seq < numSeqs) { + // Execute a single sequence. We need to do it here because + // ZL_Lz_decode_u16Loop may be exactly one sequence short of hitting + // a limit, so we need to execute one before transferring the + // literals (if that was the limiting factor), otherwise we will + // infinite loop. + // + // Then, after transferring literals, this code also handles the + // trailing sequences. + const ZL_LzError err = ZL_Lz_decode_sequence( + dst, + dstSize, + &state.src, + state.seq, + &state.outPos, + &state.litPos); + if (err != ZL_LzError_ok) { + return err; + } + ++state.seq; + } + } + + // Copy the remaining literals + return ZL_Lz_decode_lastLiterals( + dst, dstSize, &state.src, state.outPos, state.litPos); +} + +ZL_LzError +ZL_Lz_decode(uint8_t* dst, size_t dstSize, const ZL_Lz_InSequences* src) +{ + // Optimize for cases that the encoder actually produces + if (src->offsetsEltWidth == 2 && src->literalLengthsEltWidth == 2 + && src->matchLengthsEltWidth == 2) { + return ZL_Lz_decode_u16(dst, dstSize, src); + } + + // Generic fallback to handle any width to allow us to update the encoder + // without guaranteeing 100% of decoders are updated. If the encoder is + // updated, a new specialization should be added, but then we only need to + // wait for most decoders to be updated, rather than 100% of decoders. + return ZL_Lz_decode_generic(dst, dstSize, src); +} diff --git a/src/openzl/codecs/lz/decode_lz_kernel.h b/src/openzl/codecs/lz/decode_lz_kernel.h new file mode 100644 index 000000000..0983b781a --- /dev/null +++ b/src/openzl/codecs/lz/decode_lz_kernel.h @@ -0,0 +1,51 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZS_DECODE_LZ_KERNEL_H +#define ZS_DECODE_LZ_KERNEL_H + +#include +#include + +typedef struct { + const uint8_t* literals; + size_t numLiterals; + + const void* offsets; + size_t offsetsEltWidth; + + const void* literalLengths; + size_t literalLengthsEltWidth; + + const void* matchLengths; + size_t matchLengthsEltWidth; + + size_t numSequences; +} ZL_Lz_InSequences; + +/// Detailed error codes for LZ decoding. +typedef enum { + ZL_LzError_ok = 0, + ZL_LzError_literalLengthTooLarge, + ZL_LzError_notEnoughLiterals, + ZL_LzError_offsetZero, + ZL_LzError_offsetTooLarge, + ZL_LzError_matchLengthTooLarge, + ZL_LzError_literalsTooLarge, + ZL_LzError_dstSizeTooLarge, +} ZL_LzError; + +/** + * Decodes LZ sequences back into the original byte stream. + * + * dst must have capacity for at least dstSize bytes. + * Exactly dstSize bytes must be produced, otherwise an error is returned. + * + * The three numeric streams (offsets, literalLengths, matchLengths) may + * have any element width (1, 2, 4, or 8 bytes), specified independently. + * + * @returns ZL_LzError_ok on success, or an error code upon corruption. + */ +ZL_LzError +ZL_Lz_decode(uint8_t* dst, size_t dstSize, const ZL_Lz_InSequences* src); + +#endif diff --git a/src/openzl/codecs/lz/encode_field_lz.c b/src/openzl/codecs/lz/encode_field_lz.c index 66823f292..496136c3b 100644 --- a/src/openzl/codecs/lz/encode_field_lz.c +++ b/src/openzl/codecs/lz/encode_field_lz.c @@ -58,6 +58,7 @@ static ZL_Report writeOutSequences( ZS_seqStore const* seqStore, size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); int const eltBits = ZL_highbit32((uint32_t)eltWidth); //> Copy literals { @@ -65,8 +66,7 @@ static ZL_Report writeOutSequences( (size_t)(seqStore->lits.ptr - seqStore->lits.start); ZL_ASSERT_EQ(litsSize % eltWidth, 0); size_t const nbLits = litsSize >> eltBits; - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, nbLits, dst->literalEltsCapacity); + ZL_ERR_IF_GT(nbLits, dst->literalEltsCapacity, internalBuffer_tooSmall); memcpy(dst->literalElts, seqStore->lits.start, litsSize); dst->nbLiteralElts = nbLits; } @@ -91,10 +91,10 @@ static ZL_Report writeOutSequences( } else if (seqs[s].matchType == ZS_mt_lz) { uint32_t const offset = seqs[s].matchCode; token |= 3; - ZL_RET_R_IF_GE( - internalBuffer_tooSmall, + ZL_ERR_IF_GE( dst->nbOffsets, - dst->sequencesCapacity); + dst->sequencesCapacity, + internalBuffer_tooSmall); // Offset has already been reduced by eltBits. // TODO(terrelln): Clean up the eltBits reduction logic. dst->offsets[dst->nbOffsets++] = offset; @@ -114,10 +114,10 @@ static ZL_Report writeOutSequences( token |= (uint16_t)(literalLengthCode << kTokenOFBits); } else { token |= (uint16_t)(kMaxLitLengthCode << kTokenOFBits); - ZL_RET_R_IF_GE( - internalBuffer_tooSmall, + ZL_ERR_IF_GE( dst->nbExtraLiteralLengths, - dst->sequencesCapacity); + dst->sequencesCapacity, + internalBuffer_tooSmall); dst->extraLiteralLengths[dst->nbExtraLiteralLengths++] = literalLengthCode - kMaxLitLengthCode; } @@ -128,17 +128,17 @@ static ZL_Report writeOutSequences( } else { token |= (uint16_t)(kMaxMatchLengthCode << (kTokenOFBits + kTokenLLBits)); - ZL_RET_R_IF_GE( - internalBuffer_tooSmall, + ZL_ERR_IF_GE( dst->nbExtraMatchLengths, - dst->sequencesCapacity); + dst->sequencesCapacity, + internalBuffer_tooSmall); dst->extraMatchLengths[dst->nbExtraMatchLengths++] = matchLengthCode - kMaxMatchLengthCode; } - ZL_RET_R_IF_GE( - internalBuffer_tooSmall, + ZL_ERR_IF_GE( dst->nbTokens, - dst->sequencesCapacity); + dst->sequencesCapacity, + internalBuffer_tooSmall); dst->tokens[dst->nbTokens++] = token; } } @@ -153,9 +153,10 @@ ZL_Report ZS2_FieldLz_compress( int level, ZL_FieldLz_Allocator alloc) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (!ZL_isPow2(eltWidth)) { ZL_LOG(ERROR, "eltWidth %u is not a power of 2", (unsigned)eltWidth); - ZL_RET_R_ERR(compressionParameter_invalid); + ZL_ERR(compressionParameter_invalid); } ZL_Report ret; @@ -171,12 +172,12 @@ ZL_Report ZS2_FieldLz_compress( &seqStore, srcSize, ZL_MAX(eltWidth, 4), alloc); error |= ZS_window_init(&window, ZL_MIN((uint32_t)srcSize, 1u << 23), 8); - ZL_RET_R_IF(allocation, error); + ZL_ERR_IF(error, allocation); } ZS_matchFinder const* matchFinder = greedy ? &ZS_greedyTokenLzMatchFinder : &ZS_tokenLzMatchFinder; ZS_matchFinderCtx* mfCtx = matchFinder->ctx_create(&window, ¶ms); - ZL_RET_R_IF_NULL(allocation, mfCtx); + ZL_ERR_IF_NULL(mfCtx, allocation); ZS_window_update(&window, (uint8_t const*)src, srcSize); // TODO(terrelln): We can write directly to the output streams diff --git a/src/openzl/codecs/lz/encode_field_lz_literals_selector.c b/src/openzl/codecs/lz/encode_field_lz_literals_selector.c index 3ffae9b8e..50da6c12e 100644 --- a/src/openzl/codecs/lz/encode_field_lz_literals_selector.c +++ b/src/openzl/codecs/lz/encode_field_lz_literals_selector.c @@ -2,8 +2,6 @@ #include "openzl/codecs/lz/encode_field_lz_literals_selector.h" -#include - #include "openzl/codecs/constant/encode_constant_binding.h" #include "openzl/common/assertion.h" #include "openzl/shared/data_stats.h" diff --git a/src/openzl/codecs/lz/encode_lz_binding.c b/src/openzl/codecs/lz/encode_lz_binding.c index 224f7d1bd..14e352215 100644 --- a/src/openzl/codecs/lz/encode_lz_binding.c +++ b/src/openzl/codecs/lz/encode_lz_binding.c @@ -2,21 +2,25 @@ #include "openzl/codecs/lz/encode_lz_binding.h" +#include "openzl/codecs/common/fast_table.h" #include "openzl/codecs/lz/common_field_lz.h" #include "openzl/codecs/lz/encode_field_lz_literals_selector.h" -#include "openzl/compress/private_nodes.h" +#include "openzl/codecs/lz/encode_lz_kernel.h" +#include "openzl/codecs/zl_entropy.h" +#include "openzl/codecs/zl_lz.h" +#include "openzl/codecs/zl_mux_lengths.h" +#include "openzl/codecs/zl_partition.h" #include "openzl/shared/utils.h" #include "openzl/shared/varint.h" #include "openzl/zl_ctransform.h" #include "openzl/zl_data.h" #include "openzl/zl_graph_api.h" -#include "openzl/zl_reflection.h" /** * Set the maximum bytes to process to 4B to avoid overflow in the match finder. * It could likely be higher, but this is close enough to 2^32-1. */ -static const size_t kFieldLzContentSizeBytes = 4000000000u; +static const size_t kLzContentSizeBytes = 4000000000u; static void* allocEICtx(void* opaque, size_t size) { @@ -47,7 +51,7 @@ ZL_Report EI_fieldLz(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) } ZL_ERR_IF_GT( ZL_Input_contentSize(in), - kFieldLzContentSizeBytes, + kLzContentSizeBytes, temporaryLibraryLimitation, "FieldLZ only supports up to 4B of input due to 32-bit overflow in the match finder"); @@ -127,11 +131,81 @@ ZL_Report EI_fieldLz(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) return ZL_returnValue(5); } +ZL_Report EI_lz(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + size_t const srcSize = ZL_Input_numElts(in); + + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_serial); + ZL_ERR_IF_GT( + srcSize, + kLzContentSizeBytes, + temporaryLibraryLimitation, + "LZ only supports up to 4B of input"); + + size_t const maxNumSeq = ZL_Lz_maxNumSequences(srcSize); + + // Create output streams + size_t const literalsCapacity = srcSize + ZL_LZ_LIT_OVER_LENGTH; + ZL_Output* const literals = + ZL_Encoder_createTypedStream(eictx, 0, literalsCapacity, 1); + ZL_Output* const offsets = + ZL_Encoder_createTypedStream(eictx, 1, maxNumSeq, 2); + ZL_Output* const literalLengths = + ZL_Encoder_createTypedStream(eictx, 2, maxNumSeq, 2); + ZL_Output* const matchLengths = + ZL_Encoder_createTypedStream(eictx, 3, maxNumSeq, 2); + + ZL_ERR_IF_NULL(literals, allocation); + ZL_ERR_IF_NULL(offsets, allocation); + ZL_ERR_IF_NULL(literalLengths, allocation); + ZL_ERR_IF_NULL(matchLengths, allocation); + + // Allocate hash table from scratch space + size_t const hashTableSize = ZS_FastTable_tableSize(ZL_LZ_TABLE_LOG); + void* hashTableMem = ZL_Encoder_getScratchSpace(eictx, hashTableSize); + ZL_ERR_IF_NULL(hashTableMem, allocation); + + ZL_Lz_OutSequences dst = { + .literals = (uint8_t*)ZL_Output_ptr(literals), + .literalsCapacity = literalsCapacity, + .numLiterals = 0, + + .offsets = (uint16_t*)ZL_Output_ptr(offsets), + .literalLengths = (uint16_t*)ZL_Output_ptr(literalLengths), + .matchLengths = (uint16_t*)ZL_Output_ptr(matchLengths), + .sequencesCapacity = maxNumSeq, + .numSequences = 0, + }; + + ZL_Lz_encode(&dst, (const uint8_t*)ZL_Input_ptr(in), srcSize, hashTableMem); + + // Write the original size as a varint codec header + uint8_t header[ZL_VARINT_LENGTH_64]; + size_t const headerSize = ZL_varintEncode(srcSize, header); + ZL_Encoder_sendCodecHeader(eictx, header, headerSize); + + ZL_ERR_IF_ERR(ZL_Output_commit(literals, dst.numLiterals)); + ZL_ERR_IF_ERR(ZL_Output_commit(offsets, dst.numSequences)); + ZL_ERR_IF_ERR(ZL_Output_commit(literalLengths, dst.numSequences)); + ZL_ERR_IF_ERR(ZL_Output_commit(matchLengths, dst.numSequences)); + + ZL_ERR_IF_ERR(ZL_Output_setIntMetadata( + matchLengths, ZL_LZ_MIN_MATCH_LENGTH_METADATA_ID, ZL_LZ_MIN_MATCH)); + + return ZL_returnSuccess(); +} + static ZL_Report tokensDynGraph(ZL_Graph* gctx, ZL_Edge* tokens) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); if (ZL_Graph_getCParam(gctx, ZL_CParam_decompressionLevel) <= 1 || ZL_Input_numElts(ZL_Edge_getData(tokens)) <= 128) { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, ZL_Edge_runNode(tokens, ZL_NODE_INTERPRET_TOKEN_AS_LE)); @@ -145,7 +219,8 @@ static ZL_Report tokensDynGraph(ZL_Graph* gctx, ZL_Edge* tokens) static ZL_Report quantizeDynGraph(ZL_Graph* gctx, ZL_Edge* stream, ZL_NodeID quantizeNode) { - ZL_TRY_LET_T(ZL_EdgeList, streams, ZL_Edge_runNode(stream, quantizeNode)); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_TRY_LET(ZL_EdgeList, streams, ZL_Edge_runNode(stream, quantizeNode)); ZL_ASSERT_EQ(streams.nbEdges, 2); ZL_Edge* const codes = streams.edges[0]; @@ -155,10 +230,10 @@ quantizeDynGraph(ZL_Graph* gctx, ZL_Edge* stream, ZL_NodeID quantizeNode) } else { codesGraph = ZL_GRAPH_FSE; } - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(codes, codesGraph)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(codes, codesGraph)); ZL_Edge* const extraBits = streams.edges[1]; - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(extraBits, ZL_GRAPH_STORE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(extraBits, ZL_GRAPH_STORE)); return ZL_returnSuccess(); } @@ -173,7 +248,8 @@ static size_t getMinStreamSize(ZL_Graph* gctx) ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) { - ZL_RET_R_IF(graph_invalidNumInputs, nbIns != 1); + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_ERR_IF(nbIns != 1, graph_invalidNumInputs); ZL_Edge* input = inputs[0]; ZL_Input const* in = ZL_Edge_getData(input); ZL_ASSERT_NE(ZL_Input_type(in) & (ZL_Type_struct | ZL_Type_numeric), 0); @@ -189,7 +265,7 @@ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) // the input type is numeric. bool const inputIsNumeric = ZL_Input_type(in) == ZL_Type_numeric; if (inputIsNumeric) { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, ZL_Edge_runNode(input, ZL_NODE_CONVERT_NUM_TO_TOKEN)); @@ -211,7 +287,7 @@ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) localParams.intParams.intParams = &compressionLevelOverride; localParams.intParams.nbIntParams = 1; } - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, streams, ZL_Edge_runNode_withParams(input, ZL_NODE_FIELD_LZ, &localParams)); @@ -226,7 +302,7 @@ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) size_t const streamSize = ZL_Input_contentSize(ZL_Edge_getData(streams.edges[i])); if (streamSize < streamSizeLimit) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(streams.edges[i], ZL_GRAPH_STORE)); successorSet[i] = 1; continue; @@ -234,13 +310,13 @@ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) ZL_IntParam const param = ZL_Graph_getLocalIntParam(gctx, i); if (param.paramId == i) { - ZL_RET_R_IF_LT(nodeParameter_invalid, param.paramValue, 0); - ZL_RET_R_IF_GT( - nodeParameter_invalid, + ZL_ERR_IF_LT(param.paramValue, 0, nodeParameter_invalid); + ZL_ERR_IF_GE( (size_t)param.paramValue, - customGraphs.nbGraphIDs); + customGraphs.nbGraphIDs, + nodeParameter_invalid); ZL_GraphID const graph = customGraphs.graphids[param.paramValue]; - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(streams.edges[i], graph)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(streams.edges[i], graph)); successorSet[i] = 1; } } @@ -256,22 +332,22 @@ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) // Run the successors if (literals != NULL) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(literals, ZL_GRAPH_FIELD_LZ_LITERALS)); } if (tokens != NULL) { - ZL_RET_R_IF_ERR(tokensDynGraph(gctx, tokens)); + ZL_ERR_IF_ERR(tokensDynGraph(gctx, tokens)); } if (offsets != NULL) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( quantizeDynGraph(gctx, offsets, ZL_NODE_QUANTIZE_OFFSETS)); } if (extraLiteralLengths != NULL) { - ZL_RET_R_IF_ERR(quantizeDynGraph( + ZL_ERR_IF_ERR(quantizeDynGraph( gctx, extraLiteralLengths, ZL_NODE_QUANTIZE_LENGTHS)); } if (extraMatchLengths != NULL) { - ZL_RET_R_IF_ERR(quantizeDynGraph( + ZL_ERR_IF_ERR(quantizeDynGraph( gctx, extraMatchLengths, ZL_NODE_QUANTIZE_LENGTHS)); } @@ -281,27 +357,28 @@ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) ZL_Report EI_fieldLzLiteralsDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); (void)gctx; - ZL_RET_R_IF(graph_invalidNumInputs, nbIns != 1); + ZL_ERR_IF(nbIns != 1, graph_invalidNumInputs); ZL_Edge* literals = inputs[0]; // Transpose // TODO(terrelln): Determine if we should transpose at all. // E.g. if we have a small number of literals don't transpose. size_t const eltWidth = ZL_Input_eltWidth(ZL_Edge_getData(literals)); if (eltWidth == 1) { - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( + ZL_ERR_IF_ERR(ZL_Edge_setDestination( literals, ZL_GRAPH_FIELD_LZ_LITERALS_CHANNEL)); return ZL_returnSuccess(); } ZL_NodeID const transpose = ZL_Graph_getTransposeSplitNode(gctx, eltWidth); - ZL_TRY_LET_T(ZL_EdgeList, streams, ZL_Edge_runNode(literals, transpose)); + ZL_TRY_LET(ZL_EdgeList, streams, ZL_Edge_runNode(literals, transpose)); ZL_ASSERT_EQ(streams.nbEdges, eltWidth); // TODO(terrelln): Share information between channels. // E.g. if stream i is uncompressible, then stream i+1 is likely to be // uncompressible, if we're compressing numeric data. for (size_t i = 0; i < streams.nbEdges; ++i) { - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( + ZL_ERR_IF_ERR(ZL_Edge_setDestination( streams.edges[i], ZL_GRAPH_FIELD_LZ_LITERALS_CHANNEL)); } @@ -322,6 +399,44 @@ ZL_GraphID SI_fieldLzLiteralsChannelSelector( return ZS2_transposedLiteralStreamSelector_impl(selCtx, input, &successors); } +ZL_Report EI_lzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_Edge* input = inputs[0]; + + // Run the LZ node + ZL_TRY_LET(ZL_EdgeList, streams, ZL_Edge_runNode(input, ZL_NODE_LZ)); + ZL_ASSERT_EQ(streams.nbEdges, 4); + + ZL_Edge* const literals = streams.edges[0]; + ZL_Edge* const offsets = streams.edges[1]; + ZL_Edge* const literalLengths = streams.edges[2]; + ZL_Edge* const matchLengths = streams.edges[3]; + + // Send literals to Huffman + ZL_ERR_IF_ERR(ZL_Edge_setDestination(literals, ZL_GRAPH_HUFFMAN)); + + // Send offsets to partition bitpack + ZL_ERR_IF_ERR(ZL_Edge_setDestination(offsets, ZL_GRAPH_PARTITION_BITPACK)); + + // Run mux_lengths node (auto-computes split point and min match length) + ZL_Edge* muxInputs[2] = { literalLengths, matchLengths }; + ZL_TRY_LET( + ZL_EdgeList, + muxStreams, + ZL_Edge_runMultiInputNode(muxInputs, 2, ZL_NODE_MUX_LENGTHS)); + ZL_ASSERT_EQ(muxStreams.nbEdges, 2); + + // Route mux_lengths outputs: muxed bytes and overflow lengths to Huffman + ZL_ERR_IF_ERR( + ZL_Edge_setDestination(muxStreams.edges[0], ZL_GRAPH_HUFFMAN)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination( + muxStreams.edges[1], ZL_GRAPH_COMPRESS_SMALL_LENGTHS)); + + return ZL_returnSuccess(); +} + ZL_GraphID ZL_Compressor_registerFieldLZGraph_withLiteralsGraph( ZL_Compressor* cgraph, ZL_GraphID literals) @@ -356,8 +471,9 @@ ZL_GraphID ZL_Compressor_registerFieldLZGraph_withLevel( int compressionLevel) { ZL_LocalParams localParams = { - .intParams = ZL_INTPARAMS({ ZL_FIELD_LZ_COMPRESSION_LEVEL_OVERRIDE_PID, - compressionLevel }) + .intParams = ZL_INTPARAMS( + { ZL_FIELD_LZ_COMPRESSION_LEVEL_OVERRIDE_PID, + compressionLevel }) }; ZL_ParameterizedGraphDesc desc = { diff --git a/src/openzl/codecs/lz/encode_lz_binding.h b/src/openzl/codecs/lz/encode_lz_binding.h index 186009965..271a130e0 100644 --- a/src/openzl/codecs/lz/encode_lz_binding.h +++ b/src/openzl/codecs/lz/encode_lz_binding.h @@ -11,12 +11,18 @@ ZL_BEGIN_C_DECLS ZL_Report EI_fieldLz(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); +ZL_Report EI_lz(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); /** * Dynamic graph backing ZL_GRAPH_FIELD_LZ */ ZL_Report EI_fieldLzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns); +/** + * Standard function graph for LZ + */ +ZL_Report EI_lzDynGraph(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbIns); + /** * Dynamic graph backing the default literals graph for Field LZ */ @@ -33,10 +39,18 @@ ZL_GraphID SI_fieldLzLiteralsChannelSelector( const ZL_GraphID* customGraphs, size_t nbCustomGraphs); -#define EI_FIELD_LZ(id) \ - { \ - .gd = FIELD_LZ_GRAPH(id), .transform_f = EI_fieldLz, \ - .name = "!zl.field_lz", \ +#define EI_FIELD_LZ(id) \ + { \ + .gd = FIELD_LZ_GRAPH(id), \ + .transform_f = EI_fieldLz, \ + .name = "!zl.field_lz", \ + } + +#define EI_LZ(id) \ + { \ + .gd = LZ_GRAPH(id), \ + .transform_f = EI_lz, \ + .name = "!zl.lz", \ } ZL_END_C_DECLS diff --git a/src/openzl/codecs/lz/encode_lz_kernel.c b/src/openzl/codecs/lz/encode_lz_kernel.c new file mode 100644 index 000000000..f4918b880 --- /dev/null +++ b/src/openzl/codecs/lz/encode_lz_kernel.c @@ -0,0 +1,208 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/lz/encode_lz_kernel.h" + +#include + +#include "openzl/codecs/common/copy.h" +#include "openzl/codecs/common/fast_table.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/simd_wrapper.h" + +#define ZL_LZ_HASH_LEN 7 + +#define ZL_LZ_MATCH_OVER_LENGTH 16 +#define ZL_LZ_SEARCH_STRENGTH 8 + +static ptrdiff_t matchLength( + uint8_t const* const in, + ptrdiff_t inPos, + ptrdiff_t matchPos, + ptrdiff_t inEnd) +{ + { + ZL_ASSERT_LE(inPos + 16, inEnd); + const ZL_Vec128 matchVec = ZL_Vec128_read(in + matchPos); + const ZL_Vec128 ipVec = ZL_Vec128_read(in + inPos); + const ZL_Vec128 maskVec = ZL_Vec128_cmp8(matchVec, ipVec); + const uint32_t mask = ZL_Vec128_mask8(maskVec); + const uint32_t len = (uint32_t)ZL_ctz32(~mask); + if (ZL_LIKELY(len < 16)) { + return len; + } + } + ptrdiff_t totalLength = 16; + const ptrdiff_t inLimit = inEnd - 16; + while (inPos + totalLength < inLimit) { + const ZL_Vec128 matchVec = ZL_Vec128_read(in + matchPos + totalLength); + const ZL_Vec128 ipVec = ZL_Vec128_read(in + inPos + totalLength); + const ZL_Vec128 maskVec = ZL_Vec128_cmp8(matchVec, ipVec); + const uint32_t mask = ZL_Vec128_mask8(maskVec); + const uint32_t length = (uint32_t)ZL_ctz32(~mask); + if (length < 16) { + return totalLength + length; + } + totalLength += 16; + if (ZL_UNLIKELY(totalLength > UINT16_MAX)) { + return UINT16_MAX; + } + } + + while (inPos + totalLength < inEnd + && in[inPos + totalLength] == in[matchPos + totalLength]) { + ++totalLength; + } + return totalLength; +} + +size_t ZL_Lz_maxNumSequences(size_t srcSize) +{ + if (srcSize == 0) { + return 0; + } + // Each real match sequence consumes at least MIN_MATCH bytes. + // Each overflow no-op sequence consumes UINT16_MAX literal bytes. + // Add 2 for the trailing literal sequence and rounding. + return srcSize / ZL_LZ_MIN_MATCH + srcSize / UINT16_MAX + 2; +} + +/** + * Match finding algorithm that runs the equivalent of the ZSTD_fast strategy. + * + * NOTE: This kernel uses ptrdiff_t rather than pointers to avoid UB with + * pointers, which are only valid within the buffer and one past the end. + */ +void ZL_Lz_encode( + ZL_Lz_OutSequences* dst, + const uint8_t* const src, + size_t srcSize, + void* hashTableMem) +{ + if (srcSize == 0) { + dst->numLiterals = 0; + dst->numSequences = 0; + return; + } + + assert(dst->literalsCapacity >= srcSize + ZL_LZ_LIT_OVER_LENGTH); + assert(dst->sequencesCapacity >= ZL_Lz_maxNumSequences(srcSize)); + + ZS_FastTable table = { 0, 0, 0 }; + ZS_FastTable_init(&table, hashTableMem, ZL_LZ_TABLE_LOG, ZL_LZ_HASH_LEN); + + const ptrdiff_t kSrcOverLength = + ZL_MAX(ZL_LZ_LIT_OVER_LENGTH, ZL_LZ_MATCH_OVER_LENGTH); + + const uint8_t* const in = src; + const ptrdiff_t inEnd = (ptrdiff_t)srcSize; + ptrdiff_t inLitStart = 0; + ptrdiff_t inPos = 1; + ptrdiff_t inLimit = (ptrdiff_t)srcSize - kSrcOverLength; + + // Cache output pointers locally to avoid reloading through dst + uint8_t* lits = dst->literals; + uint16_t* const litLens = dst->literalLengths; + uint16_t* const matchLens = dst->matchLengths; + uint16_t* const offsets = dst->offsets; + + size_t seq = 0; + + const ptrdiff_t kStepIncr = 1 << ZL_LZ_SEARCH_STRENGTH; + ptrdiff_t step = 1; + ptrdiff_t nextStep = inPos + kStepIncr; + + while (inPos <= inLimit) { + const uint8_t* const inPtr = in + inPos; + ptrdiff_t match = ZS_FastTable_getAndUpdateT( + &table, inPtr, (uint32_t)inPos, ZL_LZ_HASH_LEN); + const ptrdiff_t distance = inPos - match; + if (ZL_read32(in + match) == ZL_read32(inPtr) + && distance <= ZL_LZ_MAX_OFFSET) { + ptrdiff_t ml = 4 + matchLength(in, inPos + 4, match + 4, inEnd); + + // Walk the match backwards + while (match > 0 && inPos > inLitStart + && in[match - 1] == in[inPos - 1]) { + --match; + --inPos; + ++ml; + } + + // Truncate match to fit in a uint16_t + if (ZL_UNLIKELY(ml > UINT16_MAX)) { + ml = UINT16_MAX; + } + + // Copy literals + size_t ll = (size_t)(inPos - inLitStart); + assert(inPos + ZL_LZ_LIT_OVER_LENGTH <= (ptrdiff_t)srcSize); + memcpy(lits, in + inLitStart, 16); + if (ZL_UNLIKELY(ll > 16)) { + assert(ZL_LZ_LIT_OVER_LENGTH >= ZS_WILDCOPY_OVERLENGTH); + ZS_wildcopy( + lits, in + inLitStart, (ptrdiff_t)ll, ZS_wo_no_overlap); + } + lits += ll; + + // Store the sequence + if (ZL_LIKELY(ll <= UINT16_MAX)) { + litLens[seq] = (uint16_t)ll; + } else { + // If the literal length is too large, split it into multiple + // sequences with match length 0 and offset 1. + while (ll > UINT16_MAX) { + litLens[seq] = UINT16_MAX; + matchLens[seq] = 0; + offsets[seq] = 1; + ++seq; + ll -= UINT16_MAX; + } + litLens[seq] = (uint16_t)ll; + } + matchLens[seq] = (uint16_t)ml; + offsets[seq] = (uint16_t)distance; + ++seq; + + // Update the hash table with positions at the start and end of the + // match. + // NOTE: Taken from zstd_fast.c + ZS_FastTable_putT( + &table, + in + inPos + 2, + (uint32_t)(inPos + 2), + ZL_LZ_HASH_LEN); + inPos += ml; + if (inPos <= inLimit) { + ZS_FastTable_putT( + &table, + in + inPos - 2, + (uint32_t)(inPos - 2), + ZL_LZ_HASH_LEN); + } + inLitStart = inPos; + step = 1; + nextStep = inPos + kStepIncr; + } else { + inPos += step; + + // This logic helps skip over incompressible data quickly by + // progresssively speeding up every kStepIncr bytes and resetting + // when a match is found. + if (inPos >= nextStep) { + ++step; + nextStep += kStepIncr; + } + } + } + + // Handle trailing literals + const size_t lastLits = srcSize - (size_t)inLitStart; + memcpy(lits, in + inLitStart, lastLits); + lits += lastLits; + + dst->numLiterals = (size_t)(lits - dst->literals); + dst->numSequences = seq; + + assert(dst->numLiterals + ZL_LZ_LIT_OVER_LENGTH <= dst->literalsCapacity); + assert(dst->numSequences <= dst->sequencesCapacity); +} diff --git a/src/openzl/codecs/lz/encode_lz_kernel.h b/src/openzl/codecs/lz/encode_lz_kernel.h new file mode 100644 index 000000000..02feda02d --- /dev/null +++ b/src/openzl/codecs/lz/encode_lz_kernel.h @@ -0,0 +1,52 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZS_ENCODE_LZ_KERNEL_H +#define ZS_ENCODE_LZ_KERNEL_H + +#include +#include + +#define ZL_LZ_LIT_OVER_LENGTH 32 +#define ZL_LZ_MIN_MATCH 4 +#define ZL_LZ_TABLE_LOG 14 +#define ZL_LZ_MAX_OFFSET UINT16_MAX + +typedef struct { + uint8_t* literals; + size_t literalsCapacity; + size_t numLiterals; + + uint16_t* offsets; + uint16_t* literalLengths; + uint16_t* matchLengths; + size_t sequencesCapacity; + size_t numSequences; +} ZL_Lz_OutSequences; + +/** + * Returns the maximum number of sequences that the encoder can produce + * for an input of srcSize bytes. + */ +size_t ZL_Lz_maxNumSequences(size_t srcSize); + +/** + * Encodes src[0..srcSize) into LZ sequences. + * + * All output buffers in dst must be pre-allocated by the caller: + * - dst->literals: at least srcSize bytes + * - dst->offsets, dst->literalLengths, dst->matchLengths: + * at least ZL_Lz_maxNumSequences(srcSize) elements each + * + * hashTableMem must point to at least + * ZS_FastTable_tableSize(ZL_LZ_TABLE_LOG) bytes of writable memory. + * + * dst->numLiterals and dst->numSequences are set to the number of + * output literals and sequences respectively. + */ +void ZL_Lz_encode( + ZL_Lz_OutSequences* dst, + const uint8_t* src, + size_t srcSize, + void* hashTableMem); + +#endif diff --git a/src/openzl/codecs/lz/encode_match_finder_fast_field_lz.c b/src/openzl/codecs/lz/encode_match_finder_fast_field_lz.c index cbea03106..047bd9574 100644 --- a/src/openzl/codecs/lz/encode_match_finder_fast_field_lz.c +++ b/src/openzl/codecs/lz/encode_match_finder_fast_field_lz.c @@ -353,7 +353,7 @@ bool findMatchDFast( // search the next position. If it is enabled, it may insert // into the hash table at the end of the match, which causes // offset=0 matches. - if (0) { + if ((0)) { uint8_t const* const ip1 = ip + kFieldSize; uint32_t const largeMatchPos = ZS_FastTable_getAndUpdateT( largeTable, ip1, (uint32_t)(ip1 - base), kLargeMatch); @@ -433,7 +433,7 @@ ZL_FORCE_INLINE void ZS_tokenLzMatchFinder_parseT( uint8_t const* match = NULL; if (1) { - if (0) { + if ((0)) { for (int r = 0; r < kNumRep; ++r) { bool isRepMatch = ZS_checkMatch(ip, ip - rep[r], kSmallMatch); diff --git a/src/openzl/codecs/lz/graph_lz.h b/src/openzl/codecs/lz/graph_lz.h index 8f3f015bc..eeb2a9b31 100644 --- a/src/openzl/codecs/lz/graph_lz.h +++ b/src/openzl/codecs/lz/graph_lz.h @@ -12,15 +12,34 @@ /// 3. Offsets /// 4. Extra literal lengths /// 5. Extra match lengths -#define FIELD_LZ_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST( \ - ZL_Type_struct, \ - ZL_Type_struct, \ - ZL_Type_numeric, \ - ZL_Type_numeric, \ - ZL_Type_numeric), \ +#define FIELD_LZ_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST( \ + ZL_Type_struct, \ + ZL_Type_struct, \ + ZL_Type_numeric, \ + ZL_Type_numeric, \ + ZL_Type_numeric), \ + } + +/// Graph definition for the LZ codec. +/// Input: 1 serial stream +/// Output streams are: +/// 1. Literals (serial) +/// 2. Offsets (numeric) +/// 3. Literal lengths (numeric) +/// 4. Match lengths (numeric) +#define LZ_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = ZL_STREAMTYPELIST( \ + ZL_Type_serial, \ + ZL_Type_numeric, \ + ZL_Type_numeric, \ + ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/lz/spec_lz.md b/src/openzl/codecs/lz/spec_lz.md new file mode 100644 index 000000000..ddd16937a --- /dev/null +++ b/src/openzl/codecs/lz/spec_lz.md @@ -0,0 +1,56 @@ +# LZ Codec + +## Overview + +The LZ codec implements LZ77 matching on a byte-level serial input stream, +decomposing it into four output streams: literals, offsets, literal lengths, and +match lengths. + +## Inputs + +| Stream | Type | Element Width | Description | +|--------|--------|---------------|--------------------------| +| input | Serial | 1 | Input byte stream | + +## Outputs + +| Index | Stream | Type | Element Width | Description | +|-------|-----------------|---------|---------------|-----------------------------------------------| +| 0 | literals | Serial | 1 | Literal bytes not part of matches | +| 1 | offsets | Numeric | Any | Distance back to start of match | +| 2 | literal_lengths | Numeric | Any | Number of literal bytes before each match | +| 3 | match_lengths | Numeric | Any | Number of bytes to copy from the match | + +The decoder MUST accept any element width for the three numeric streams. +However, the decoder MAY only optimize for certain widths, e.g. 2-byte and 4-byte. + +## Codec Header + +A single varint encoding the decompressed (original) size in bytes. + +## Decoding Algorithm + +```python +def decode(literals, offsets, literal_lengths, match_lengths): + assert len(offsets) == len(literal_lengths) == len(match_lengths) + + output = [] + lit_pos = 0 + for offset, lit_len, match_len in zip(offsets, literal_lengths, match_lengths): + # Copy literals + assert lit_pos + lit_len <= len(literals) + output.extend(literals[lit_pos : lit_pos + lit_len]) + lit_pos += lit_len + + # Copy match + # NOTE: match_len may be larger than offset + assert offset != 0 + assert offset <= len(output) + for i in range(match_len): + output.append(output[-offset]) + + # Copy remaining literals + output.extend(literals[lit_pos:]) + + return output +``` diff --git a/src/openzl/codecs/lz4/decode_lz4_binding.c b/src/openzl/codecs/lz4/decode_lz4_binding.c new file mode 100644 index 000000000..19ad43ebd --- /dev/null +++ b/src/openzl/codecs/lz4/decode_lz4_binding.c @@ -0,0 +1,44 @@ +#include "openzl/codecs/lz4/decode_lz4_binding.h" +#include +#include "openzl/common/assertion.h" +#include "openzl/shared/varint.h" + +#ifndef LZ4_STATIC_LINKING_ONLY +# define LZ4_STATIC_LINKING_ONLY +#endif +#include + +ZL_Report DI_lz4(ZL_Decoder* dic, const ZL_Input* ins[]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dic); + ZL_ASSERT_NN(dic); + ZL_ASSERT_NN(ins); + + const ZL_Input* in = ins[0]; + size_t inSize = ZL_Input_numElts(in); + ZL_ERR_IF_GT(inSize, INT_MAX, node_invalid_input); + + // Read the original size from the header + ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dic); + ZL_ERR_IF_EQ(header.size, 0, GENERIC, "No header provided"); + const uint8_t* headerStart = (const uint8_t*)header.start; + const uint8_t* headerEnd = (const uint8_t*)header.start + header.size; + ZL_TRY_LET_CONST( + uint64_t, outSize, ZL_varintDecode(&headerStart, headerEnd)); + ZL_ERR_IF_GT(outSize, INT_MAX, node_invalid_input); + + // Allocate the output buffer + ZL_Output* const out = ZL_Decoder_createTypedStream(dic, 0, outSize, 1); + ZL_ERR_IF_NULL(out, allocation); + + // Do the decompression + int consumed = LZ4_decompress_safe( + (const char*)ZL_Input_ptr(in), + (char*)ZL_Output_ptr(out), + (int)inSize, + (int)outSize); + ZL_ERR_IF_NE(consumed, outSize, GENERIC, "LZ4_decompress_safe failed"); + ZL_ERR_IF_ERR(ZL_Output_commit(out, (size_t)consumed)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/lz4/decode_lz4_binding.h b/src/openzl/codecs/lz4/decode_lz4_binding.h new file mode 100644 index 000000000..6981a34b8 --- /dev/null +++ b/src/openzl/codecs/lz4/decode_lz4_binding.h @@ -0,0 +1,15 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef ZSTRONG_TRANSFORMS_LZ4_DECODE_LZ4_BINDING_H +#define ZSTRONG_TRANSFORMS_LZ4_DECODE_LZ4_BINDING_H + +#include "openzl/zl_dtransform.h" + +ZL_Report DI_lz4(ZL_Decoder* dictx, const ZL_Input* ins[]); + +#define DI_LZ4(id) \ + { \ + .transform_f = DI_lz4, \ + .name = "!zl.private.lz4", \ + } + +#endif // ZSTRONG_TRANSFORMS_LZ4_DECODE_LZ4_BINDING_H diff --git a/src/openzl/codecs/lz4/encode_lz4_binding.c b/src/openzl/codecs/lz4/encode_lz4_binding.c new file mode 100644 index 000000000..ff0104da8 --- /dev/null +++ b/src/openzl/codecs/lz4/encode_lz4_binding.c @@ -0,0 +1,86 @@ +#include "openzl/codecs/lz4/encode_lz4_binding.h" +#include "openzl/common/assertion.h" +#include "openzl/compress/private_nodes.h" // ZL_PrivateStandardNodeID_lz4 +#include "openzl/shared/varint.h" +#include "openzl/zl_data.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_errors_types.h" +#include "openzl/zl_localParams.h" + +#ifndef LZ4_STATIC_LINKING_ONLY +# define LZ4_STATIC_LINKING_ONLY +#endif +#include +#include + +ZL_Report EI_lz4(ZL_Encoder* eic, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eic); + ZL_ASSERT_NN(eic); + ZL_ASSERT_NN(ins); + ZL_ASSERT_EQ(nbIns, 1); + + const ZL_Input* in = ins[0]; + size_t inSize = ZL_Input_numElts(in); + ZL_ERR_IF_GT(inSize, LZ4_MAX_INPUT_SIZE, node_invalid_input); + + // By default use the global compression level + int cLevel = ZL_Encoder_getCParam(eic, ZL_CParam_compressionLevel); + + // Get the compression level override, if it exists + ZL_IntParam cLevelParam = ZL_Encoder_getLocalIntParam( + eic, ZL_LZ4_COMPRESSION_LEVEL_OVERRIDE_PID); + if (cLevelParam.paramId == ZL_LZ4_COMPRESSION_LEVEL_OVERRIDE_PID) { + cLevel = cLevelParam.paramValue; + } + + // Allocate the output buffer + int outSize = LZ4_compressBound((int)inSize); + ZL_Output* const out = + ZL_Encoder_createTypedStream(eic, 0, (size_t)outSize, 1); + ZL_ERR_IF_NULL(out, allocation); + + // Do the compression + int compressedSize; + if (cLevel <= 1) { + const int acceleration = (cLevel < 0) ? -cLevel + 1 : 1; + compressedSize = LZ4_compress_fast( + (const char*)ZL_Input_ptr(in), + (char*)ZL_Output_ptr(out), + (int)inSize, + outSize, + acceleration); + } else { + compressedSize = LZ4_compress_HC( + (const char*)ZL_Input_ptr(in), + (char*)ZL_Output_ptr(out), + (int)inSize, + outSize, + cLevel); + } + ZL_ERR_IF_LE(compressedSize, 0, GENERIC, "LZ4_compress_default failed"); + ZL_ERR_IF_ERR(ZL_Output_commit(out, (size_t)compressedSize)); + + // Write the original size as a varint + uint8_t header[ZL_VARINT_LENGTH_32]; + size_t headerSize = ZL_varintEncode((uint64_t)inSize, header); + ZL_Encoder_sendCodecHeader(eic, header, headerSize); + + return ZL_returnSuccess(); +} + +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildLZ4Graph(ZL_Compressor* compressor, int compressionLevel) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(compressor); + ZL_IntParam intParam = { ZL_LZ4_COMPRESSION_LEVEL_OVERRIDE_PID, + compressionLevel }; + + ZL_LocalParams localParams = { + .intParams = { &intParam, 1 }, + }; + ZL_GraphParameters desc = { + .localParams = &localParams, + }; + return ZL_Compressor_parameterizeGraph(compressor, ZL_GRAPH_LZ4, &desc); +} diff --git a/src/openzl/codecs/lz4/encode_lz4_binding.h b/src/openzl/codecs/lz4/encode_lz4_binding.h new file mode 100644 index 000000000..6a1ad8a9f --- /dev/null +++ b/src/openzl/codecs/lz4/encode_lz4_binding.h @@ -0,0 +1,25 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef ZSTRONG_CODECS_LZ4_ENCODE_LZ4_BINDING_H +#define ZSTRONG_CODECS_LZ4_ENCODE_LZ4_BINDING_H + +#include "openzl/codecs/common/graph_pipe.h" +#include "openzl/shared/portability.h" + +ZL_BEGIN_C_DECLS + +/// Encode with lz4. +/// Takes either serialized or fixed size inputs. +ZL_Report EI_lz4(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +// /* state management */ + +#define EI_LZ4(id) \ + { \ + .gd = PIPE_GRAPH(id), \ + .transform_f = EI_lz4, \ + .name = "!zl.private.lz4", \ + } + +ZL_END_C_DECLS + +#endif // ZSTRONG_TRANSFORMS_LZ4_ENCODE_LZ4_BINDING_H diff --git a/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.c b/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.c index e2479f61e..b04d9e7f1 100644 --- a/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.c +++ b/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.c @@ -13,10 +13,11 @@ static ZL_Report fillDstPtrsFromHeader( size_t bitsetWidth, size_t nbElts) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); uint64_t maxDstSize = 0; - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( ZL_overflowMulU64(bitsetWidth * 8, nbElts, &maxDstSize), + corruption, "Multiplication overflowed"); ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); @@ -25,23 +26,23 @@ static ZL_Report fillDstPtrsFromHeader( uint8_t const* hp = hs; uint64_t dstSize = 0; while (hp != he) { - ZL_TRY_LET_T(uint64_t, size, ZL_varintDecode(&hp, he)); - ZL_RET_R_IF( - corruption, + ZL_TRY_LET(uint64_t, size, ZL_varintDecode(&hp, he)); + ZL_ERR_IF( ZL_overflowAddU64(dstSize, size, &dstSize), + corruption, "Addition overflowed"); } - ZL_RET_R_IF_GT( - corruption, dstSize, maxDstSize, "dstSize bigger than possible!"); + ZL_ERR_IF_GT( + dstSize, maxDstSize, corruption, "dstSize bigger than possible!"); ZL_Output* dst = ZL_Decoder_create1OutStream(dictx, dstSize, 4); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); uint32_t* dstPtr = ZL_Output_ptr(dst); - ZL_RET_R_IF_ERR(ZL_Output_commit(dst, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(dst, dstSize)); hp = hs; size_t nbDsts = 0; while (hp != he) { - ZL_RET_R_IF_EQ(corruption, nbDsts, 64); + ZL_ERR_IF_EQ(nbDsts, 64, corruption); ZL_RESULT_OF(uint64_t) size = ZL_varintDecode(&hp, he); ZL_ASSERT(!ZL_RES_isError(size)); dsts[nbDsts] = dstPtr; @@ -50,10 +51,10 @@ static ZL_Report fillDstPtrsFromHeader( ++nbDsts; } - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( nbDsts, bitsetWidth * 8, + corruption, "Too many dsts for the width of the bitset"); return ZL_returnValue(nbDsts); @@ -61,19 +62,20 @@ static ZL_Report fillDstPtrsFromHeader( ZL_Report DI_mergeSorted(ZL_Decoder* dictx, ZL_Input const* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* bitset = ins[0]; ZL_Input const* merged = ins[1]; - ZL_RET_R_IF_NE( - corruption, ZL_Input_numElts(merged), ZL_Input_numElts(bitset)); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(merged), 4); + ZL_ERR_IF_NE( + ZL_Input_numElts(merged), ZL_Input_numElts(bitset), corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(merged), 4, corruption); size_t const bitsetWidth = ZL_Input_eltWidth(bitset); uint32_t* dsts[64]; uint32_t* dstEnds[64]; ZL_Report const nbDsts = fillDstPtrsFromHeader( dictx, dsts, dstEnds, bitsetWidth, ZL_Input_numElts(bitset)); - ZL_RET_R_IF_ERR(nbDsts); + ZL_ERR_IF_ERR(nbDsts); bool success; switch (bitsetWidth) { @@ -114,9 +116,9 @@ ZL_Report DI_mergeSorted(ZL_Decoder* dictx, ZL_Input const* ins[]) ZL_Input_numElts(merged)); break; default: - ZL_RET_R_ERR(corruption, "Bad bitset width!"); + ZL_ERR(corruption, "Bad bitset width!"); } - ZL_RET_R_IF_NOT(corruption, success); + ZL_ERR_IF_NOT(success, corruption); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.h b/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.h index 46e47f3a6..18cb379e8 100644 --- a/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.h +++ b/src/openzl/codecs/merge_sorted/decode_merge_sorted_binding.h @@ -8,9 +8,7 @@ ZL_Report DI_mergeSorted(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_MERGE_SORTED(id) \ - { \ - .transform_f = DI_mergeSorted, .name = "merge sorted" \ - } +#define DI_MERGE_SORTED(id) \ + { .transform_f = DI_mergeSorted, .name = "merge sorted" } #endif diff --git a/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.c b/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.c index 8000d16b6..a5e59c755 100644 --- a/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.c +++ b/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.c @@ -2,12 +2,13 @@ #include "openzl/codecs/merge_sorted/encode_merge_sorted_binding.h" #include "openzl/codecs/merge_sorted/encode_merge_sorted_kernel.h" +#include "openzl/codecs/zl_merge_sorted.h" #include "openzl/common/errors_internal.h" +#include "openzl/compress/private_nodes.h" #include "openzl/shared/bits.h" #include "openzl/shared/varint.h" #include "openzl/zl_compressor.h" -#include "openzl/zl_selector.h" -#include "openzl/zl_selector_declare_helper.h" +#include "openzl/zl_graph_api.h" /** * Fill in @p srcs and @p srcEnds with the begin/end of each sorted run. @@ -21,6 +22,7 @@ static ZL_Report getSortedRuns( uint32_t const* srcs[64], uint32_t const* srcEnds[64]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const kMaxNbSrcs = 64; uint32_t const* ip = (uint32_t const*)ZL_Input_ptr(in); uint32_t const* const iend = ip + ZL_Input_numElts(in); @@ -33,7 +35,7 @@ static ZL_Report getSortedRuns( if (ip[0] <= ip[-1]) { srcEnds[nbSrcs] = ip; ++nbSrcs; - ZL_RET_R_IF_GE(node_invalid_input, nbSrcs, kMaxNbSrcs); + ZL_ERR_IF_GE(nbSrcs, kMaxNbSrcs, node_invalid_input); srcs[nbSrcs] = ip; } } @@ -50,10 +52,11 @@ static ZL_Report writeHeader( uint32_t const* srcEnds[64], size_t nbSrcs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); uint8_t* header = ZL_Encoder_getScratchSpace(eictx, nbSrcs * ZL_VARINT_LENGTH_64); uint8_t* hp = header; - ZL_RET_R_IF_NULL(allocation, header); + ZL_ERR_IF_NULL(header, allocation); for (size_t i = 0; i < nbSrcs; ++i) { uint64_t const srcSize = (uint64_t)(srcEnds[i] - srcs[i]); hp += ZL_varintEncode(srcSize, hp); @@ -64,14 +67,15 @@ static ZL_Report writeHeader( ZL_Report EI_mergeSorted(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; size_t const nbElts = ZL_Input_numElts(in); - ZL_RET_R_IF_NE(node_invalid_input, ZL_Input_eltWidth(in), 4); + ZL_ERR_IF_NE(ZL_Input_eltWidth(in), 4, node_invalid_input); uint32_t const* srcs[64]; uint32_t const* srcEnds[64]; - ZL_TRY_LET_R(nbSrcs, getSortedRuns(in, srcs, srcEnds)); + ZL_TRY_LET(size_t, nbSrcs, getSortedRuns(in, srcs, srcEnds)); int const bitsetWidthLog = nbSrcs == 0 ? 1 : ZL_nextPow2((nbSrcs + 7) / 8); size_t const bitsetWidth = (size_t)1 << bitsetWidthLog; @@ -80,10 +84,10 @@ ZL_Report EI_mergeSorted(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Encoder_createTypedStream(eictx, 0, nbElts, bitsetWidth); ZL_Output* merged = ZL_Encoder_createTypedStream(eictx, 1, nbElts, 4); - ZL_RET_R_IF_NULL(allocation, bitset); - ZL_RET_R_IF_NULL(allocation, merged); + ZL_ERR_IF_NULL(bitset, allocation); + ZL_ERR_IF_NULL(merged, allocation); - ZL_RET_R_IF_ERR(writeHeader(eictx, srcs, srcEnds, nbSrcs)); + ZL_ERR_IF_ERR(writeHeader(eictx, srcs, srcEnds, nbSrcs)); ZL_Report nbUniqueValues = ZL_returnValue(0); if (nbSrcs > 0) { @@ -126,28 +130,39 @@ ZL_Report EI_mergeSorted(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) } } - ZL_RET_R_IF_ERR(nbUniqueValues); + ZL_ERR_IF_ERR(nbUniqueValues); - ZL_RET_R_IF_ERR(ZL_Output_commit(bitset, ZL_validResult(nbUniqueValues))); - ZL_RET_R_IF_ERR(ZL_Output_commit(merged, ZL_validResult(nbUniqueValues))); + ZL_ERR_IF_ERR(ZL_Output_commit(bitset, ZL_validResult(nbUniqueValues))); + ZL_ERR_IF_ERR(ZL_Output_commit(merged, ZL_validResult(nbUniqueValues))); return ZL_returnSuccess(); } -ZL_DECLARE_SELECTOR( - ZS2_SelectMergeSorted, - ZL_Type_numeric, - SUCCESSOR(mergeSortedGraph), - SUCCESSOR(backupGraph)) - -ZL_GraphID ZS2_SelectMergeSorted_impl( - ZL_Selector const* selCtx, - ZL_Input const* in, - ZS2_SelectMergeSorted_Successors const* successors) +/** + * Function graph that selects between the merge sorted graph and backup graph. + * Selects mergeSortedGraph if input has <= 64 sorted runs, otherwise + * backupGraph. + * + * Custom graphs are expected in order: [mergeSortedGraph, backupGraph] + */ +ZL_Report +mergeSortedSelectorFnGraph(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs) { - (void)selCtx; + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + ZL_ASSERT_EQ(nbInputs, 1); + ZL_Edge* input = inputs[0]; + + ZL_GraphIDList const customGraphs = ZL_Graph_getCustomGraphs(graph); + ZL_ERR_IF_NE(customGraphs.nbGraphIDs, 2, graphParameter_invalid); + ZL_GraphID const mergeSortedGraph = customGraphs.graphids[0]; + ZL_GraphID const backupGraph = customGraphs.graphids[1]; + + const ZL_Input* in = ZL_Edge_getData(input); + ZL_ASSERT_NN(in); + if (ZL_Input_eltWidth(in) != 4) { - return successors->backupGraph; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, backupGraph)); + return ZL_returnSuccess(); } size_t const kMaxNbRuns = 64; @@ -168,10 +183,12 @@ ZL_GraphID ZS2_SelectMergeSorted_impl( } if (nbRuns <= kMaxNbRuns) { - return successors->mergeSortedGraph; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, mergeSortedGraph)); } else { - return successors->backupGraph; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, backupGraph)); } + + return ZL_returnSuccess(); } ZL_GraphID ZL_Compressor_registerMergeSortedGraph( @@ -185,8 +202,18 @@ ZL_GraphID ZL_Compressor_registerMergeSortedGraph( cgraph, ZL_NODE_MERGE_SORTED, ZL_GRAPHLIST(bitsetGraph, mergedGraph)); - return ZS2_SelectMergeSorted_declareGraph( - cgraph, - ZS2_SelectMergeSorted_successors_init( - mergeSortedGraph, backupGraph)); + + ZL_GraphID const successors[] = { mergeSortedGraph, backupGraph }; + ZL_GraphParameters const params = { + .customGraphs = successors, + .nbCustomGraphs = 2, + }; + + ZL_RESULT_OF(ZL_GraphID) + const result = ZL_Compressor_parameterizeGraph( + cgraph, ZL_GRAPH_MERGE_SORTED, ¶ms); + if (ZL_RES_isError(result)) { + return ZL_GRAPH_ILLEGAL; + } + return ZL_RES_value(result); } diff --git a/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.h b/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.h index bd3fbff73..1b04788c9 100644 --- a/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.h +++ b/src/openzl/codecs/merge_sorted/encode_merge_sorted_binding.h @@ -12,10 +12,29 @@ ZL_BEGIN_C_DECLS ZL_Report EI_mergeSorted(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_MERGE_SORTED(id) \ - { \ - .gd = MERGE_SORTED_GRAPH(id), .transform_f = EI_mergeSorted, \ - .name = "!zl.merge_sorted" \ +#define EI_MERGE_SORTED(id) \ + { .gd = MERGE_SORTED_GRAPH(id), \ + .transform_f = EI_mergeSorted, \ + .name = "!zl.merge_sorted" } + +/** + * Function graph that selects between the merge sorted graph and backup graph. + * Selects mergeSortedGraph if input has <= 64 sorted runs, otherwise + * backupGraph. + * + * Custom graphs are expected in order: + * [0]: mergeSortedNode graph (single output from ZL_NODE_MERGE_SORTED) + * [1]: backupGraph + */ +ZL_Report +mergeSortedSelectorFnGraph(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges); + +#define MIGRAPH_MERGE_SORTED \ + { \ + .name = "!zl.private.merge_sorted_selector", \ + .graph_f = mergeSortedSelectorFnGraph, \ + .inputTypeMasks = (ZL_Type[]){ ZL_Type_numeric }, \ + .nbInputs = 1, \ } ZL_END_C_DECLS diff --git a/src/openzl/codecs/merge_sorted/encode_merge_sorted_kernel.c b/src/openzl/codecs/merge_sorted/encode_merge_sorted_kernel.c index 90f603db8..72458d853 100644 --- a/src/openzl/codecs/merge_sorted/encode_merge_sorted_kernel.c +++ b/src/openzl/codecs/merge_sorted/encode_merge_sorted_kernel.c @@ -123,9 +123,10 @@ ZL_FORCE_INLINE ZL_Report ZS2_MergeSorted_merge( size_t nbSrcs, size_t kBitsetWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); assert(kBitsetWidth <= 8); assert(nbSrcs <= kBitsetWidth * 8); - ZL_RET_R_IF_NOT(allocation, PQ_init(pq, nbSrcs)); + ZL_ERR_IF_NOT(PQ_init(pq, nbSrcs), allocation); const uint32_t* srcs[64]; memcpy((void*)srcs, (const void*)srcStarts, sizeof(*srcs) * nbSrcs); diff --git a/src/openzl/codecs/merge_sorted/graph_merge_sorted.h b/src/openzl/codecs/merge_sorted/graph_merge_sorted.h index 464ebaa1e..3057ff279 100644 --- a/src/openzl/codecs/merge_sorted/graph_merge_sorted.h +++ b/src/openzl/codecs/merge_sorted/graph_merge_sorted.h @@ -7,10 +7,11 @@ /// Graph definition for the merge sorted transforms /// used by both the encoder and decoder side. -#define MERGE_SORTED_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ +#define MERGE_SORTED_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/mux_lengths/common_mux_lengths_luts.h b/src/openzl/codecs/mux_lengths/common_mux_lengths_luts.h new file mode 100644 index 000000000..bbe733ac8 --- /dev/null +++ b/src/openzl/codecs/mux_lengths/common_mux_lengths_luts.h @@ -0,0 +1,553 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_MUX_LENGTHS_COMMON_MUX_LENGTHS_LUTS_H +#define OPENZL_CODECS_MUX_LENGTHS_COMMON_MUX_LENGTHS_LUTS_H + +/** + * @generated by scripts/gen_mux_lengths_tables.py + * Please don't modify this file directly! + */ + +#include "openzl/shared/portability.h" + +ZL_BEGIN_C_DECLS + +// clang-format off +/** + * Compresses uint16_t values at positions selected by set bits in an 8-bit mask + * and packs them contiguously to the front. Each of the 256 rows is a 16-byte + * PSHUFB control vector. + * + * For output position i in [0, 8]: + * i < popcount(mask) -> select input at the index of the i-th set bit + * i >= popcount(mask) -> zero (0x80) + */ +static const ZL_ALIGNED(16) uint8_t ZL_kCompressU16LUT[256][16] = { + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80 }, + { 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80 }, + { 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80 }, + { 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } +}; + +/** + * Expands contiguously packed uint16_t values into positions selected by an + * 8-bit mask. Each of the 256 rows is a 16-byte PSHUFB control vector. + * + * For output position i in [0, 8]: + * bit i SET -> select the next packed input uint16_t + * bit i CLEAR -> zero (PSHUFB treats index 0x80 as zero) + */ +static const ZL_ALIGNED(16) uint8_t ZL_kExpandU16LUT[256][16] = { + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x80, 0x80 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x80, 0x80, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x80, 0x80, 0x0c, 0x0d }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x80, 0x80, 0x0a, 0x0b, 0x0c, 0x0d }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x80, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x80, 0x80, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }, + { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0x00, 0x01, 0x80, 0x80, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x80, 0x80, 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x00, 0x01, 0x02, 0x03, 0x80, 0x80, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }, + { 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b }, + { 0x00, 0x01, 0x80, 0x80, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }, + { 0x80, 0x80, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } +}; +// clang-format on + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_MUX_LENGTHS_COMMON_MUX_LENGTHS_LUTS_H diff --git a/src/openzl/codecs/mux_lengths/decode_mux_lengths_binding.c b/src/openzl/codecs/mux_lengths/decode_mux_lengths_binding.c new file mode 100644 index 000000000..530b6db74 --- /dev/null +++ b/src/openzl/codecs/mux_lengths/decode_mux_lengths_binding.c @@ -0,0 +1,70 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "decode_mux_lengths_binding.h" + +#include "decode_mux_lengths_kernel.h" +#include "openzl/common/assertion.h" +#include "openzl/zl_dtransform.h" + +ZL_Report DI_mux_lengths(ZL_Decoder* dictx, const ZL_Input* ins[]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + ZL_ASSERT_NN(dictx); + ZL_ASSERT_NN(ins); + + // Decoder inputs are encoder outputs: + // ins[0] = muxed_lengths (serial) + // ins[1] = long_lengths (numeric) + const ZL_Input* muxedIn = ins[0]; + const ZL_Input* longIn = ins[1]; + + ZL_ASSERT_NN(muxedIn); + ZL_ASSERT_NN(longIn); + + size_t const numMuxed = ZL_Input_numElts(muxedIn); + size_t const eltWidth = ZL_Input_eltWidth(longIn); + size_t const numLong = ZL_Input_numElts(longIn); + + // Parse codec header + ZL_RBuffer const header = ZL_Decoder_getCodecHeader(dictx); + ZL_ERR_IF_NE( + header.size, 1, corruption, "mux_lengths header must be 1 byte"); + uint8_t const headerByte = *(const uint8_t*)header.start; + unsigned const splitPoint = headerByte & 0x0F; + unsigned const matchLengthBias = headerByte >> 4; + + ZL_ERR_IF_GT(splitPoint, 8, corruption, "split_point must be in [0, 8]"); + + // Create output streams (decoder outputs are encoder inputs): + // Output 0: literal_lengths (numeric) + // Output 1: match_lengths (numeric) + ZL_Output* const llOut = + ZL_Decoder_createTypedStream(dictx, 0, numMuxed, eltWidth); + ZL_ERR_IF_NULL(llOut, allocation); + + ZL_Output* const mlOut = + ZL_Decoder_createTypedStream(dictx, 1, numMuxed, eltWidth); + ZL_ERR_IF_NULL(mlOut, allocation); + + // Decode + ZL_MuxLengthsError const muxErr = ZL_muxLengthsDecode( + ZL_Output_ptr(llOut), + ZL_Output_ptr(mlOut), + (const uint8_t*)ZL_Input_ptr(muxedIn), + numMuxed, + ZL_Input_ptr(longIn), + numLong, + eltWidth, + splitPoint, + matchLengthBias); + ZL_ERR_IF_NE( + muxErr, + ZL_MuxLengthsError_ok, + corruption, + "mux_lengths decode failed"); + + ZL_ERR_IF_ERR(ZL_Output_commit(llOut, numMuxed)); + ZL_ERR_IF_ERR(ZL_Output_commit(mlOut, numMuxed)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/mux_lengths/decode_mux_lengths_binding.h b/src/openzl/codecs/mux_lengths/decode_mux_lengths_binding.h new file mode 100644 index 000000000..f2a957480 --- /dev/null +++ b/src/openzl/codecs/mux_lengths/decode_mux_lengths_binding.h @@ -0,0 +1,22 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_MUX_LENGTHS_DECODE_MUX_LENGTHS_BINDING_H +#define OPENZL_CODECS_MUX_LENGTHS_DECODE_MUX_LENGTHS_BINDING_H + +#include "openzl/codecs/mux_lengths/graph_mux_lengths.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_dtransform.h" + +ZL_BEGIN_C_DECLS + +/// Decoder binding for the mux_lengths transform. +/// Reads the codec header, then decodes muxed bytes + overflow streams +/// back into literal lengths and match lengths. +ZL_Report DI_mux_lengths(ZL_Decoder* dictx, const ZL_Input* ins[]); + +/// Macro to register the mux_lengths decoder transform. +#define DI_MUX_LENGTHS(id) \ + { .transform_f = DI_mux_lengths, .name = "!zl.mux_lengths" } + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/mux_lengths/decode_mux_lengths_kernel.c b/src/openzl/codecs/mux_lengths/decode_mux_lengths_kernel.c new file mode 100644 index 000000000..7eecec13e --- /dev/null +++ b/src/openzl/codecs/mux_lengths/decode_mux_lengths_kernel.c @@ -0,0 +1,354 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/mux_lengths/decode_mux_lengths_kernel.h" + +#include "openzl/codecs/mux_lengths/common_mux_lengths_luts.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" + +#if ZL_HAS_SSSE3 +# include + +/** + * Optimized decoder for 2-byte lengths that uses SSSE3 to decode 4 muxed + * lengths at a time. + */ +static ZL_MuxLengthsError ZL_muxLengthsDecode_2( + uint16_t* llOut, + uint16_t* mlOut, + const uint8_t* muxedLengths, + size_t numMuxed, + const uint16_t* longLengths, + size_t numLong, + unsigned splitPoint, + unsigned matchLengthBias) +{ + unsigned const llMask = (1u << splitPoint) - 1; + unsigned const mlMask = (1u << (8 - splitPoint)) - 1; + unsigned const mlMax = (unsigned)matchLengthBias + mlMask; + + // Interleave LL and ML bytes from the two 64-bit halves produced by + // _mm_set_epi64x(mux4 >> splitPoint, mux4): + // in: [mux0, mux1, mux2, mux3, 0,0,0,0, shifted0..3, 0,0,0,0] + // out: [LL0, ML0, LL1, ML1, LL2, ML2, LL3, ML3, 0...] + __m128i const kInterleaveShuffle = _mm_setr_epi8( + 0x00, + 0x08, + 0x01, + 0x09, + 0x02, + 0x0A, + 0x03, + 0x0B, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80); + + // Zero-extend interleaved bytes to uint16_t + __m128i const kSpreadShuffle = _mm_setr_epi8( + 0x00, + (char)0x80, + 0x01, + (char)0x80, + 0x02, + (char)0x80, + 0x03, + (char)0x80, + 0x04, + (char)0x80, + 0x05, + (char)0x80, + 0x06, + (char)0x80, + 0x07, + (char)0x80); + + // Per-byte mask: llMask for even bytes (LL), mlMask for odd bytes (ML) + __m128i const kBitMask = + _mm_set1_epi16((short)((uint16_t)llMask | ((uint16_t)mlMask << 8))); + + // Add matchLengthBias to ML (odd) uint16_t positions, 0 to LL (even) + __m128i const kMLBiasOffset = _mm_setr_epi16( + 0, + (short)matchLengthBias, + 0, + (short)matchLengthBias, + 0, + (short)matchLengthBias, + 0, + (short)matchLengthBias); + + // Extract LL values (even uint16_t positions 0,2,4,6) to low 64 bits + __m128i const kExtractLL = _mm_setr_epi8( + 0x00, + 0x01, + 0x04, + 0x05, + 0x08, + 0x09, + 0x0C, + 0x0D, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80); + + // Extract ML values (odd uint16_t positions 1,3,5,7) to low 64 bits + __m128i const kExtractML = _mm_setr_epi8( + 0x02, + 0x03, + 0x06, + 0x07, + 0x0A, + 0x0B, + 0x0E, + 0x0F, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80); + + // Buffer for the tail of longLengths so we can always do a full + // 128-bit load without reading past the allocation. Populated + // once, the first time longPos gets within 8 of the end. + ZL_ALIGNED(16) uint16_t longTail[16] = { 0 }; + const uint16_t* longSrc = longLengths; + + size_t longPos = 0; + size_t i = 0; + + for (; i + 4 <= numMuxed; i += 4) { + uint32_t const mux4 = ZL_read32(muxedLengths + i); + + // Low 64 bits: raw muxed bytes; high 64 bits: shifted by splitPoint + __m128i lengthsV = _mm_set_epi64x( + (long long)(uint64_t)(mux4 >> splitPoint), + (long long)(uint64_t)mux4); + + // Interleave to [LL0, ML0, LL1, ML1, LL2, ML2, LL3, ML3] + lengthsV = _mm_shuffle_epi8(lengthsV, kInterleaveShuffle); + lengthsV = _mm_and_si128(lengthsV, kBitMask); + + // Detect which positions overflow (value == max) + __m128i const needsExtraV = _mm_cmpeq_epi8(lengthsV, kBitMask); + unsigned const needsExtra = + (unsigned)_mm_movemask_epi8(needsExtraV) & 0xFFu; + int const numNeeded = (int)ZL_popcount64((uint64_t)needsExtra); + + if (ZL_UNLIKELY(longPos + (size_t)numNeeded > numLong)) { + return ZL_MuxLengthsError_longLengthsExhausted; + } + + // Zero-extend interleaved bytes to uint16_t + lengthsV = _mm_shuffle_epi8(lengthsV, kSpreadShuffle); + lengthsV = _mm_add_epi16(lengthsV, kMLBiasOffset); + + // Switch to the tail buffer once we can no longer do a full + // 128-bit load from the original array. + if (ZL_UNLIKELY(longPos + 8 > numLong) && longSrc == longLengths) { + size_t const remaining = numLong - longPos; + memcpy(longTail, + longLengths + longPos, + remaining * sizeof(uint16_t)); + longSrc = longTail; + longPos = 0; + numLong = remaining; + } + + // Load long lengths and scatter into overflow positions via LUT. + __m128i extraLengthsV = + _mm_loadu_si128((const __m128i_u*)(longSrc + longPos)); + __m128i const scatterV = + _mm_load_si128((const __m128i*)ZL_kExpandU16LUT[needsExtra]); + extraLengthsV = _mm_shuffle_epi8(extraLengthsV, scatterV); + lengthsV = _mm_add_epi16(lengthsV, extraLengthsV); + + longPos += (size_t)numNeeded; + + // Deinterleave into separate LL and ML streams and store + _mm_storel_epi64( + (__m128i_u*)(llOut + i), + _mm_shuffle_epi8(lengthsV, kExtractLL)); + _mm_storel_epi64( + (__m128i_u*)(mlOut + i), + _mm_shuffle_epi8(lengthsV, kExtractML)); + } + + // Scalar tail + for (; i < numMuxed; ++i) { + uint8_t const mux = muxedLengths[i]; + uint64_t ll = mux & llMask; + uint64_t ml = matchLengthBias + (mux >> splitPoint); + + if (ll == llMask) { + if (longPos >= numLong) { + return ZL_MuxLengthsError_longLengthsExhausted; + } + ll += longSrc[longPos++]; + } + + if (ml == mlMax) { + if (longPos >= numLong) { + return ZL_MuxLengthsError_longLengthsExhausted; + } + ml += longSrc[longPos++]; + } + + llOut[i] = (uint16_t)ll; + mlOut[i] = (uint16_t)ml; + } + + if (longPos != numLong) { + return ZL_MuxLengthsError_longLengthsNotConsumed; + } + + return ZL_MuxLengthsError_ok; +} +#endif /* ZL_HAS_SSSE3 */ + +ZL_FORCE_INLINE ZL_MuxLengthsError ZL_muxLengthsDecode_impl( + uint8_t* llOut, + uint8_t* mlOut, + const uint8_t* muxedLengths, + size_t numMuxed, + const uint8_t* longPtr, + size_t numLong, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias) +{ + unsigned const llMask = (1u << splitPoint) - 1; + unsigned const mlMax = + (unsigned)matchLengthBias + (1u << (8 - splitPoint)) - 1; + + size_t longPos = 0; + + for (size_t i = 0; i < numMuxed; ++i) { + uint8_t const mux = muxedLengths[i]; + uint64_t ll = mux & llMask; + uint64_t ml = matchLengthBias + (mux >> splitPoint); + + // Literal length overflow comes first when both overflow. + if (ll == llMask) { + if (longPos >= numLong) { + return ZL_MuxLengthsError_longLengthsExhausted; + } + ll += ZL_readN(longPtr + longPos * eltWidth, eltWidth); + longPos++; + } + + if (ml == mlMax) { + if (longPos >= numLong) { + return ZL_MuxLengthsError_longLengthsExhausted; + } + ml += ZL_readN(longPtr + longPos * eltWidth, eltWidth); + longPos++; + } + + ZL_writeN(llOut + i * eltWidth, ll, eltWidth); + ZL_writeN(mlOut + i * eltWidth, ml, eltWidth); + } + + if (longPos != numLong) { + return ZL_MuxLengthsError_longLengthsNotConsumed; + } + + return ZL_MuxLengthsError_ok; +} + +ZL_MuxLengthsError ZL_muxLengthsDecode( + void* literalLengthsOut, + void* matchLengthsOut, + const uint8_t* muxedLengths, + size_t numMuxed, + const void* longLengths, + size_t numLong, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias) +{ + ZL_ASSERT_LE(splitPoint, 8); + ZL_ASSERT_LE(matchLengthBias, 15); + +#if ZL_HAS_SSSE3 + if (eltWidth == 2) { + return ZL_muxLengthsDecode_2( + (uint16_t*)literalLengthsOut, + (uint16_t*)matchLengthsOut, + muxedLengths, + numMuxed, + (const uint16_t*)longLengths, + numLong, + splitPoint, + matchLengthBias); + } +#endif + + uint8_t* llOut = (uint8_t*)literalLengthsOut; + uint8_t* mlOut = (uint8_t*)matchLengthsOut; + const uint8_t* longPtr = (const uint8_t*)longLengths; + switch (eltWidth) { + case 1: + return ZL_muxLengthsDecode_impl( + llOut, + mlOut, + muxedLengths, + numMuxed, + longPtr, + numLong, + 1, + splitPoint, + matchLengthBias); + case 2: + return ZL_muxLengthsDecode_impl( + llOut, + mlOut, + muxedLengths, + numMuxed, + longPtr, + numLong, + 2, + splitPoint, + matchLengthBias); + case 4: + return ZL_muxLengthsDecode_impl( + llOut, + mlOut, + muxedLengths, + numMuxed, + longPtr, + numLong, + 4, + splitPoint, + matchLengthBias); + case 8: + return ZL_muxLengthsDecode_impl( + llOut, + mlOut, + muxedLengths, + numMuxed, + longPtr, + numLong, + 8, + splitPoint, + matchLengthBias); + default: + ZL_ASSERT_FAIL("Impossible"); + return ZL_MuxLengthsError_ok; + } +} diff --git a/src/openzl/codecs/mux_lengths/decode_mux_lengths_kernel.h b/src/openzl/codecs/mux_lengths/decode_mux_lengths_kernel.h new file mode 100644 index 000000000..b4ea443a6 --- /dev/null +++ b/src/openzl/codecs/mux_lengths/decode_mux_lengths_kernel.h @@ -0,0 +1,42 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_MUX_LENGTHS_DECODE_MUX_LENGTHS_KERNEL_H +#define OPENZL_CODECS_MUX_LENGTHS_DECODE_MUX_LENGTHS_KERNEL_H + +#include +#include + +/// Detailed error codes for mux lengths decoding. +typedef enum { + ZL_MuxLengthsError_ok = 0, + ZL_MuxLengthsError_longLengthsExhausted, + ZL_MuxLengthsError_longLengthsNotConsumed, +} ZL_MuxLengthsError; + +/// Decode muxed length bytes back into literal lengths and match lengths. +/// +/// @param literalLengthsOut Output buffer for literal lengths +/// (numMuxed * eltWidth capacity). +/// @param matchLengthsOut Output buffer for match lengths +/// (numMuxed * eltWidth capacity). +/// @param muxedLengths Input muxed byte stream. +/// @param numMuxed Number of muxed bytes. +/// @param longLengths Input overflow lengths (interleaved). +/// @param numLong Number of overflow length values. +/// @param eltWidth Element width in bytes (1, 2, 4, or 8). +/// @param splitPoint Number of bits for literal lengths [0-8]. +/// @param matchLengthBias Bias added back to match lengths. +/// +/// @returns ZL_MuxLengthsError_ok on success, or an error code upon +/// corruption. +ZL_MuxLengthsError ZL_muxLengthsDecode( + void* literalLengthsOut, + void* matchLengthsOut, + const uint8_t* muxedLengths, + size_t numMuxed, + const void* longLengths, + size_t numLong, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias); + +#endif diff --git a/src/openzl/codecs/mux_lengths/encode_mux_lengths_binding.c b/src/openzl/codecs/mux_lengths/encode_mux_lengths_binding.c new file mode 100644 index 000000000..267304cea --- /dev/null +++ b/src/openzl/codecs/mux_lengths/encode_mux_lengths_binding.c @@ -0,0 +1,112 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "encode_mux_lengths_binding.h" + +#include "encode_mux_lengths_kernel.h" +#include "openzl/codecs/zl_lz.h" +#include "openzl/codecs/zl_mux_lengths.h" +#include "openzl/common/assertion.h" +#include "openzl/zl_ctransform.h" + +ZL_Report EI_mux_lengths(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_EQ(nbIns, 2); + + const ZL_Input* llIn = ins[0]; + const ZL_Input* mlIn = ins[1]; + + size_t const eltWidth = ZL_Input_eltWidth(llIn); + size_t const numElements = ZL_Input_numElts(llIn); + ZL_ERR_IF_NE( + eltWidth, + ZL_Input_eltWidth(mlIn), + node_invalid_input, + "literal and match lengths must have same element width"); + ZL_ERR_IF_NE( + numElements, + ZL_Input_numElts(mlIn), + node_invalid_input, + "literal and match lengths must have same element count"); + + // Read match_length_bias: from parameter, or from match length metadata, + // or default to 0. + unsigned matchLengthBias; + ZL_IntParam mlbParam = ZL_Encoder_getLocalIntParam( + eictx, ZL_MUX_LENGTHS_MATCH_LENGTH_BIAS_PID); + if (mlbParam.paramId != ZL_LP_INVALID_PARAMID) { + matchLengthBias = (unsigned)mlbParam.paramValue; + } else { + ZL_IntMetadata const meta = ZL_Input_getIntMetadata( + mlIn, ZL_LZ_MIN_MATCH_LENGTH_METADATA_ID); + matchLengthBias = meta.isPresent ? (unsigned)meta.mValue : 0; + } + ZL_ERR_IF_GT( + matchLengthBias, + 15, + nodeParameter_invalid, + "match_length_bias must be in [0, 15]"); + + // Read split_point: from parameter, or auto-compute. + unsigned splitPoint; + size_t numLong; + ZL_IntParam spParam = + ZL_Encoder_getLocalIntParam(eictx, ZL_MUX_LENGTHS_SPLIT_POINT_PID); + if (spParam.paramId != ZL_LP_INVALID_PARAMID) { + splitPoint = (unsigned)spParam.paramValue; + ZL_ERR_IF_GT( + splitPoint, + 8, + nodeParameter_invalid, + "split_point must be in [0, 8]"); + numLong = ZL_muxLengthsCountLong( + ZL_Input_ptr(llIn), + ZL_Input_ptr(mlIn), + numElements, + eltWidth, + splitPoint, + matchLengthBias); + } else { + ZL_MuxLengthsSplitResult const result = ZL_muxLengthsComputeSplitPoint( + ZL_Input_ptr(llIn), + ZL_Input_ptr(mlIn), + numElements, + eltWidth, + matchLengthBias); + splitPoint = (unsigned)result.splitPoint; + numLong = result.numLong; + } + + // Create output streams + // Output 0: muxed bytes (serial, 1 byte per element) + ZL_Output* muxedOut = + ZL_Encoder_createTypedStream(eictx, 0, numElements, 1); + ZL_ERR_IF_NULL(muxedOut, allocation); + + // Output 1: long lengths (numeric, same width as input) + // + padding for SIMD store overshoot in the encode kernel. + ZL_Output* longOut = ZL_Encoder_createTypedStream( + eictx, 1, numLong + ZL_MUX_LONG_SLOP_ELTS, eltWidth); + ZL_ERR_IF_NULL(longOut, allocation); + + // Encode + const size_t longCount = ZL_muxLengthsEncode( + (uint8_t*)ZL_Output_ptr(muxedOut), + ZL_Output_ptr(longOut), + ZL_Input_ptr(llIn), + ZL_Input_ptr(mlIn), + numElements, + eltWidth, + splitPoint, + matchLengthBias); + + // Send codec header: 1 byte + uint8_t header = (uint8_t)(splitPoint | (matchLengthBias << 4)); + ZL_Encoder_sendCodecHeader(eictx, &header, 1); + + // Commit outputs + ZL_ERR_IF_ERR(ZL_Output_commit(muxedOut, numElements)); + ZL_ERR_IF_ERR(ZL_Output_commit(longOut, longCount)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/mux_lengths/encode_mux_lengths_binding.h b/src/openzl/codecs/mux_lengths/encode_mux_lengths_binding.h new file mode 100644 index 000000000..6f1a9ede5 --- /dev/null +++ b/src/openzl/codecs/mux_lengths/encode_mux_lengths_binding.h @@ -0,0 +1,28 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_MUX_LENGTHS_ENCODE_MUX_LENGTHS_BINDING_H +#define OPENZL_CODECS_MUX_LENGTHS_ENCODE_MUX_LENGTHS_BINDING_H + +#include "openzl/codecs/mux_lengths/graph_mux_lengths.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" + +ZL_BEGIN_C_DECLS + +/// Encoder binding for the mux_lengths transform. +/// Reads split_point and match_length_bias from local int params. +/// If split_point is not set, it is auto-computed to minimize overflows. +/// If match_length_bias is not set, it is read from the match length stream's +/// ZL_LZ_MIN_MATCH_LENGTH_METADATA_ID metadata, defaulting to 0. +ZL_Report +EI_mux_lengths(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +/// Macro to register the mux_lengths encoder transform. +#define EI_MUX_LENGTHS(id) \ + { .gd = MUX_LENGTHS_GRAPH(id), \ + .transform_f = EI_mux_lengths, \ + .name = "!zl.mux_lengths" } + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/mux_lengths/encode_mux_lengths_kernel.c b/src/openzl/codecs/mux_lengths/encode_mux_lengths_kernel.c new file mode 100644 index 000000000..c4bccb694 --- /dev/null +++ b/src/openzl/codecs/mux_lengths/encode_mux_lengths_kernel.c @@ -0,0 +1,461 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/mux_lengths/encode_mux_lengths_kernel.h" + +#include "openzl/codecs/mux_lengths/common_mux_lengths_luts.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/mem.h" + +#if ZL_HAS_AVX2 + +static size_t ZL_muxLengthsEncode_2( + uint8_t* muxedOut, + uint16_t* longOut, + const uint16_t* literalLengths, + const uint16_t* matchLengths, + size_t numElements, + unsigned splitPoint, + unsigned matchLengthBias) +{ + unsigned const llMask = (1u << splitPoint) - 1; + unsigned const mlMask = (1u << (8 - splitPoint)) - 1; + + // Interleaved mask: [llMask, mlMask] repeated across 16 uint16_t lanes. + __m256i const maskVec = + _mm256_set1_epi32((int)((uint32_t)llMask | (mlMask << 16))); + // Bias to subtract: [0, matchLengthBias] repeated. + __m256i const biasVec = + _mm256_set1_epi32((int)((uint32_t)matchLengthBias << 16)); + + __m128i const shiftVec = _mm_cvtsi32_si128(16 - (int)splitPoint); + + // PSHUFB to extract token bytes from interleaved 16-bit tokens. + // From [llTok0, mlTok0, llTok1, mlTok1, ...] (each uint16_t), + // pick the low byte of each and pack into 8 consecutive bytes. + // In each 128-bit lane: bytes 0,2,4,6,8,10,12,14 -> positions 0..7. + __m256i const kTokenExtract = _mm256_setr_epi8( + 0, + 2, + 4, + 6, + 8, + 10, + 12, + 14, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + 0, + 2, + 4, + 6, + 8, + 10, + 12, + 14, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80); + + // Extract the low byte of each 32-bit pair (the combined token). + // Use pshufb to gather bytes 0,4,8,12 from each 128-bit lane. + // But we have bytes at positions 0,4,8,12 in each lane. + const __m256i kMuxGather = _mm256_setr_epi8( + 0, + 4, + 8, + 12, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + 0, + 4, + 8, + 12, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80, + (char)0x80); + + size_t count = 0; + size_t i = 0; + + size_t const vecEnd = numElements & ~(size_t)7; + + for (; i < vecEnd; i += 8) { + // Load 8 literal lengths and 8 match lengths as 128-bit vectors. + __m128i llRaw = _mm_loadu_si128((const __m128i_u*)(literalLengths + i)); + __m128i mlRaw = _mm_loadu_si128((const __m128i_u*)(matchLengths + i)); + + // Interleave into one 256-bit vector: + // [ll0,ml0,ll1,ml1,ll2,ml2,ll3,ml3 | ll4,ml4,...,ll7,ml7] + __m256i vals = _mm256_set_m128i( + _mm_unpackhi_epi16(llRaw, mlRaw), + _mm_unpacklo_epi16(llRaw, mlRaw)); + + // Subtract matchLengthBias from ML (odd) positions. + vals = _mm256_sub_epi16(vals, biasVec); + + // Compute token values: min(val, mask) per lane. + // min(x, m) = x - subs(x, m) using saturating subtract. + __m256i tokenVec = + _mm256_sub_epi16(vals, _mm256_subs_epu16(vals, maskVec)); + + { + // Build muxed token bytes: llToken | (mlToken << splitPoint). + // tokenVec has interleaved [llTok, mlTok, ...] as uint16_t. + // In each 32-bit element: bits[15:0] = llTok, bits[31:16] = mlTok. + // Shift RIGHT by (16 - splitPoint) to move mlTok down into + // bits[splitPoint..splitPoint+7], while llTok (< 256 in bits[15:0]) + // vanishes entirely since 16 - splitPoint >= 8. + const __m256i shifted = _mm256_srl_epi32(tokenVec, shiftVec); + __m256i muxed = _mm256_or_si256(tokenVec, shifted); + muxed = _mm256_shuffle_epi8(muxed, kMuxGather); + + // Now lo lane has [tok0..tok3, 0...] and hi lane has [tok4..tok7, + // 0...]. Extract lo 32 bits of each lane and combine. + const uint32_t lo4 = (uint32_t)_mm256_extract_epi32(muxed, 0); + const uint32_t hi4 = (uint32_t)_mm256_extract_epi32(muxed, 4); + ZL_write32(muxedOut + i, lo4); + ZL_write32(muxedOut + i + 4, hi4); + } + + // Overflow values: val - mask (only meaningful where val >= mask). + __m256i extraVec = _mm256_sub_epi16(vals, maskVec); + + // Detect which positions overflow (token == mask). + __m256i eqMask = _mm256_cmpeq_epi16(tokenVec, maskVec); + + // Pack comparison results from 16-bit to 8-bit for movemask. + // Use pshufb to extract one byte per 16-bit lane. + __m256i eqPacked = _mm256_shuffle_epi8(eqMask, kTokenExtract); + + // movemask on the packed bytes: bits 0..7 from lo lane, 16..23 from + // hi lane. + uint32_t combinedMask = (uint32_t)_mm256_movemask_epi8(eqPacked); + uint8_t loMask = (uint8_t)(combinedMask & 0xFF); + uint8_t hiMask = (uint8_t)((combinedMask >> 16) & 0xFF); + + // Use LUT + pshufb to pack valid overflow values to the front. + // Each LUT entry is a 128-bit gather control for one 128-bit lane. + __m128i loShuf = + _mm_load_si128((const __m128i*)ZL_kCompressU16LUT[loMask]); + __m128i hiShuf = + _mm_load_si128((const __m128i*)ZL_kCompressU16LUT[hiMask]); + + __m128i loExtra = _mm256_castsi256_si128(extraVec); + __m128i hiExtra = _mm256_extracti128_si256(extraVec, 1); + + __m128i loPacked = _mm_shuffle_epi8(loExtra, loShuf); + __m128i hiPacked = _mm_shuffle_epi8(hiExtra, hiShuf); + + size_t loCount = (size_t)ZL_popcount64((uint64_t)loMask); + size_t hiCount = (size_t)ZL_popcount64((uint64_t)hiMask); + + _mm_storeu_si128((__m128i_u*)(longOut + count), loPacked); + count += loCount; + _mm_storeu_si128((__m128i_u*)(longOut + count), hiPacked); + count += hiCount; + } + + // Scalar tail + for (; i < numElements; ++i) { + uint16_t const ll = literalLengths[i]; + uint16_t const ml = matchLengths[i] - (uint16_t)matchLengthBias; + + uint8_t mux = 0; + + if (ll >= llMask) { + mux |= (uint8_t)llMask; + longOut[count] = (uint16_t)(ll - llMask); + count++; + } else { + mux |= (uint8_t)ll; + } + + if (ml >= mlMask) { + mux |= (uint8_t)(mlMask << splitPoint); + longOut[count] = (uint16_t)(ml - mlMask); + count++; + } else { + mux |= (uint8_t)(ml << splitPoint); + } + + muxedOut[i] = mux; + } + + return count; +} +#endif /* ZL_HAS_AVX2 */ + +ZL_FORCE_INLINE size_t ZL_muxLengthsEncode_impl( + uint8_t* muxedOut, + uint8_t* longPtr, + const uint8_t* llPtr, + const uint8_t* mlPtr, + size_t numElements, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias) +{ + unsigned const llMask = (1u << splitPoint) - 1; + unsigned const mlMask = (1u << (8 - splitPoint)) - 1; + + size_t count = 0; + + for (size_t i = 0; i < numElements; ++i) { + uint64_t const ll = ZL_readN(llPtr + i * eltWidth, eltWidth); + uint64_t const ml = ZL_readN(mlPtr + i * eltWidth, eltWidth) + - (uint64_t)matchLengthBias; + + uint8_t mux = 0; + + // Literal length overflow goes first when both overflow. + if (ll >= llMask) { + mux |= (uint8_t)llMask; + ZL_writeN(longPtr + count * eltWidth, ll - llMask, eltWidth); + count++; + } else { + mux |= (uint8_t)ll; + } + + if (ml >= mlMask) { + mux |= (uint8_t)(mlMask << splitPoint); + ZL_writeN(longPtr + count * eltWidth, ml - mlMask, eltWidth); + count++; + } else { + mux |= (uint8_t)(ml << splitPoint); + } + + muxedOut[i] = mux; + } + + return count; +} + +size_t ZL_muxLengthsEncode( + uint8_t* muxedOut, + void* longOut, + const void* literalLengths, + const void* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias) +{ + ZL_ASSERT_LE(splitPoint, 8); + ZL_ASSERT_LE(matchLengthBias, 15); + +#if ZL_HAS_AVX2 + if (eltWidth == 2) { + return ZL_muxLengthsEncode_2( + muxedOut, + (uint16_t*)longOut, + (const uint16_t*)literalLengths, + (const uint16_t*)matchLengths, + numElements, + splitPoint, + matchLengthBias); + } +#endif + + const uint8_t* ll = (const uint8_t*)literalLengths; + const uint8_t* ml = (const uint8_t*)matchLengths; + uint8_t* longPtr = (uint8_t*)longOut; + switch (eltWidth) { + case 1: + return ZL_muxLengthsEncode_impl( + muxedOut, + longPtr, + ll, + ml, + numElements, + 1, + splitPoint, + matchLengthBias); + case 2: + return ZL_muxLengthsEncode_impl( + muxedOut, + longPtr, + ll, + ml, + numElements, + 2, + splitPoint, + matchLengthBias); + case 4: + return ZL_muxLengthsEncode_impl( + muxedOut, + longPtr, + ll, + ml, + numElements, + 4, + splitPoint, + matchLengthBias); + case 8: + return ZL_muxLengthsEncode_impl( + muxedOut, + longPtr, + ll, + ml, + numElements, + 8, + splitPoint, + matchLengthBias); + default: + ZL_ASSERT_LE(eltWidth, 8); + return 0; + } +} + +ZL_FORCE_INLINE ZL_MuxLengthsSplitResult ZL_muxLengthsComputeSplitPoint_impl( + const uint8_t* literalLengths, + const uint8_t* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned matchLengthBias) +{ + uint32_t llStats[256] = { 0 }; + uint32_t mlStats[256] = { 0 }; + + for (size_t i = 0; i < numElements; ++i) { + uint64_t const ll = ZL_readN(literalLengths + i * eltWidth, eltWidth); + uint64_t const ml = ZL_readN(matchLengths + i * eltWidth, eltWidth) + - (uint64_t)matchLengthBias; + ++llStats[ll < 256 ? ll : 255]; + ++mlStats[ml < 256 ? ml : 255]; + } + + size_t bestLLBits = 0; + size_t bestExtraLens = 2 * numElements + 1; + for (size_t llBits = 1; llBits < 8; ++llBits) { + size_t const llMask = (1u << llBits) - 1; + size_t const mlMask = (1u << (8 - llBits)) - 1; + + size_t numExtraLL = 0; + for (size_t i = llMask; i < 256; ++i) { + numExtraLL += llStats[i]; + } + size_t numExtraML = 0; + for (size_t i = mlMask; i < 256; ++i) { + numExtraML += mlStats[i]; + } + size_t const numExtraLens = numExtraLL + numExtraML; + + if (numExtraLens < bestExtraLens) { + bestExtraLens = numExtraLens; + bestLLBits = llBits; + } + } + + return (ZL_MuxLengthsSplitResult){ .splitPoint = bestLLBits, + .numLong = bestExtraLens }; +} + +ZL_MuxLengthsSplitResult ZL_muxLengthsComputeSplitPoint( + const void* literalLengths, + const void* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned matchLengthBias) +{ + const uint8_t* ll = (const uint8_t*)literalLengths; + const uint8_t* ml = (const uint8_t*)matchLengths; + switch (eltWidth) { + case 1: + return ZL_muxLengthsComputeSplitPoint_impl( + ll, ml, numElements, 1, matchLengthBias); + case 2: + return ZL_muxLengthsComputeSplitPoint_impl( + ll, ml, numElements, 2, matchLengthBias); + case 4: + return ZL_muxLengthsComputeSplitPoint_impl( + ll, ml, numElements, 4, matchLengthBias); + case 8: + return ZL_muxLengthsComputeSplitPoint_impl( + ll, ml, numElements, 8, matchLengthBias); + default: + ZL_ASSERT_FAIL("Impossible"); + return (ZL_MuxLengthsSplitResult){ 0, 0 }; + } +} + +ZL_FORCE_INLINE size_t ZL_muxLengthsCountLong_impl( + const uint8_t* literalLengths, + const uint8_t* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias) +{ + unsigned const llMask = (1u << splitPoint) - 1; + unsigned const mlMask = (1u << (8 - splitPoint)) - 1; + + size_t count = 0; + for (size_t i = 0; i < numElements; ++i) { + uint64_t const ll = ZL_readN(literalLengths + i * eltWidth, eltWidth); + uint64_t const ml = ZL_readN(matchLengths + i * eltWidth, eltWidth) + - (uint64_t)matchLengthBias; + count += (ll >= llMask); + count += (ml >= mlMask); + } + return count; +} + +size_t ZL_muxLengthsCountLong( + const void* literalLengths, + const void* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias) +{ + const uint8_t* ll = (const uint8_t*)literalLengths; + const uint8_t* ml = (const uint8_t*)matchLengths; + switch (eltWidth) { + case 1: + return ZL_muxLengthsCountLong_impl( + ll, ml, numElements, 1, splitPoint, matchLengthBias); + case 2: + return ZL_muxLengthsCountLong_impl( + ll, ml, numElements, 2, splitPoint, matchLengthBias); + case 4: + return ZL_muxLengthsCountLong_impl( + ll, ml, numElements, 4, splitPoint, matchLengthBias); + case 8: + return ZL_muxLengthsCountLong_impl( + ll, ml, numElements, 8, splitPoint, matchLengthBias); + default: + ZL_ASSERT_LE(eltWidth, 8); + return 0; + } +} diff --git a/src/openzl/codecs/mux_lengths/encode_mux_lengths_kernel.h b/src/openzl/codecs/mux_lengths/encode_mux_lengths_kernel.h new file mode 100644 index 000000000..00d00bbac --- /dev/null +++ b/src/openzl/codecs/mux_lengths/encode_mux_lengths_kernel.h @@ -0,0 +1,76 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_MUX_LENGTHS_ENCODE_MUX_LENGTHS_KERNEL_H +#define OPENZL_CODECS_MUX_LENGTHS_ENCODE_MUX_LENGTHS_KERNEL_H + +#include + +#include "openzl/shared/portability.h" +#include "openzl/zl_errors.h" + +ZL_BEGIN_C_DECLS + +/// Need at least this many elements +#define ZL_MUX_LONG_SLOP_ELTS 16 + +/// Encode literal lengths and match lengths into muxed bytes with overflow. +/// +/// @param muxedOut Output buffer for muxed bytes (numElements capacity). +/// @param longOut Output buffer for overflow lengths, interleaved. +/// MUST be large enough to contain at least +/// `ZL_muxLengthsCountLong() + ZL_MUX_LONG_SLOP_ELTS` +/// elements. +/// @param literalLengths Input literal lengths (numElements elements). +/// @param matchLengths Input match lengths (numElements elements). +/// @param numElements Number of length pairs. +/// @param eltWidth Element width in bytes (1, 2, 4, or 8). +/// @param splitPoint Number of bits for literal lengths in muxed byte +/// [0-8]. +/// @param matchLengthBias Bias subtracted from match lengths before muxing +/// using wrapping unsigned arithmetic [0-15]. +size_t ZL_muxLengthsEncode( + uint8_t* muxedOut, + void* longOut, + const void* literalLengths, + const void* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias); + +/// @returns The number of overflow (long) lengths that will be produced by +/// encoding, which can be used to pre-size the long output buffer before +/// calling ZL_muxLengthsEncode(). +size_t ZL_muxLengthsCountLong( + const void* literalLengths, + const void* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned splitPoint, + unsigned matchLengthBias); + +/// Result of computing the optimal mux_lengths split point. +typedef struct { + size_t splitPoint; ///< Number of bits for literal lengths in each muxed + ///< byte + size_t numLong; ///< Number of overflow (long) lengths +} ZL_MuxLengthsSplitResult; + +/// Compute the optimal split point (number of bits for literal lengths) for +/// mux_lengths by minimizing total overflow count across all possible splits. +/// Also returns the number of overflow (long) elements for the chosen split. +/// +/// @param literalLengths Input literal lengths (numElements elements). +/// @param matchLengths Input match lengths (numElements elements). +/// @param numElements Number of length pairs. +/// @param eltWidth Element width in bytes (1, 2, 4, or 8). +/// @param matchLengthBias Bias subtracted from match lengths [0-15]. +ZL_MuxLengthsSplitResult ZL_muxLengthsComputeSplitPoint( + const void* literalLengths, + const void* matchLengths, + size_t numElements, + size_t eltWidth, + unsigned matchLengthBias); + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/mux_lengths/graph_mux_lengths.h b/src/openzl/codecs/mux_lengths/graph_mux_lengths.h new file mode 100644 index 000000000..664d8be7e --- /dev/null +++ b/src/openzl/codecs/mux_lengths/graph_mux_lengths.h @@ -0,0 +1,20 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_MUX_LENGTHS_GRAPH_MUX_LENGTHS_H +#define OPENZL_CODECS_MUX_LENGTHS_GRAPH_MUX_LENGTHS_H + +/// Graph definition for the mux_lengths transform +/// used by both the encoder and decoder side. +/// +/// Input 0: numeric stream of literal lengths +/// Input 1: numeric stream of match lengths +/// Output 0: serial stream of muxed length bytes +/// Output 1: numeric stream of long lengths (overflow, interleaved) + +#define MUX_LENGTHS_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_numeric), \ + } + +#endif diff --git a/src/openzl/codecs/mux_lengths/spec.md b/src/openzl/codecs/mux_lengths/spec.md new file mode 100644 index 000000000..57b4e557f --- /dev/null +++ b/src/openzl/codecs/mux_lengths/spec.md @@ -0,0 +1,72 @@ +## Mux Lengths Decoder Specification + +### Terminology + +This codec refers to the two regenerated streams as `literal_lengths` and +`match_lengths`, as the intended use case for this codec is to encode the literal +and match lengths produced by LZ compression. This is not the only possible use case, +and it may be used beyond this purpose. However, for clarity and simplicity, this +document will refer to the two streams as literal and match lengths. + +### Inputs + +The decoder for the 'mux_lengths' transform takes two inputs: + +1. `muxed_lengths` — a serial stream of muxed byte values, one per length pair. +2. `long_lengths` — a numeric stream of overflow length values (interleaved + literal and match length overflows). + +### Codec Header + +The codec header is exactly 1 byte with the following layout: + +| Bits | Field | Description | +|-------|--------------------|--------------------------------------------------| +| [0:3] | `split_point` | Number of bits in each muxed byte for the literal length (range 0–8) | +| [4:7] | `match_length_bias` | Bias subtracted (wrapping unsigned) before muxing match lengths (range 0–15) | + +- `split_point = header & 0x0F` +- `match_length_bias = header >> 4` + +Values of `split_point` greater than 8 are invalid and indicate a corrupt frame. + +Note: `split_point` values of `0` and `8` are both valid, and indicate that the literal +lengths or match lengths respectively are always pushed to the `long_lengths` +stream. + +### Decoding Algorithm + +Derived values: +- `ll_mask = (1 << split_point) - 1` +- `ml_max = match_length_bias + (1 << (8 - split_point)) - 1` + +For each byte `mux` in the `muxed_lengths` stream: + +1. Extract inline literal length: `ll = mux & ll_mask` +2. Extract inline match length: `ml = match_length_bias + (mux >> split_point)` +3. If `ll == ll_mask`, read the next value from `long_lengths` and add it to `ll` with wrapping unsigned arithmetic. +4. If `ml == ml_max`, read the next value from `long_lengths` and add it to `ml` with wrapping unsigned arithmetic. +5. Emit `ll` to `literal_lengths` and `ml` to `match_lengths`. + +Note: when both literal and match lengths overflow for the same element, the +literal length overflow is stored first in the `long_lengths` stream. + +Note: `ml` values less than `match_length_bias` are encoded as `ml - match_length_bias` using wrapping +unsigned arithmetic, which maps them to the top `match_length_bias` values of the unsigned range. + +Note: There are multiple ways to encode values `[0, ll_mask)` and `[match_length_bias, ml_max)`. +They could be encoded using only the mux byte, or they could be encoded with wrapping +arithmetic using large values of the long lengths stream. It likely doesn't make sense to choose +the larger encoding, but it is not a problem. + +After processing all muxed bytes, the `long_lengths` stream must be fully +consumed. If it has unconsumed elements, the frame is corrupt. + +### Outputs + +The decoder produces two numeric streams, both with element width `W` (matching +the element width of the `long_lengths` input) and element count equal to the +number of bytes in the `muxed_lengths` stream: + +1. `literal_lengths` — the decoded literal lengths. +2. `match_lengths` — the decoded match lengths. diff --git a/src/openzl/codecs/parse_int/decode_parse_int_binding.c b/src/openzl/codecs/parse_int/decode_parse_int_binding.c index 5ecdb7e51..8630f5301 100644 --- a/src/openzl/codecs/parse_int/decode_parse_int_binding.c +++ b/src/openzl/codecs/parse_int/decode_parse_int_binding.c @@ -11,25 +11,25 @@ ZL_Report DI_parseInt(ZL_Decoder* decoder, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(decoder); ZL_Input const* numbers = ins[0]; const size_t eltWidth = ZL_Input_eltWidth(numbers); - ZL_RET_R_IF(node_invalid_input, eltWidth != 8); + ZL_ERR_IF(eltWidth != 8, node_invalid_input); size_t const nbElts = ZL_Input_numElts(numbers); size_t outBound; - ZL_RET_R_IF( - allocation, - ZL_overflowMulST( - nbElts, ZL_PARSE_INT_MAX_STRING_LENGTH, &outBound)); + ZL_ERR_IF( + ZL_overflowMulST(nbElts, ZL_PARSE_INT_MAX_STRING_LENGTH, &outBound), + allocation); ZL_Output* outStream = ZL_Decoder_create1StringStream(decoder, nbElts, outBound); - ZL_RET_R_IF_NULL(allocation, outStream); + ZL_ERR_IF_NULL(outStream, allocation); uint32_t* fieldSizes = ZL_Output_stringLens(outStream); - ZL_RET_R_IF_NULL(allocation, fieldSizes); + ZL_ERR_IF_NULL(fieldSizes, allocation); int64_t const* nums = ZL_Input_ptr(numbers); size_t outSize = ZL_DecodeParseInt_fillFieldSizes(fieldSizes, nbElts, nums); ZL_ASSERT_LE(outSize, outBound); ZL_DecodeParseInt_fillContent( ZL_Output_ptr(outStream), outSize, nbElts, nums, fieldSizes); - ZL_RET_R_IF_ERR(ZL_Output_commit(outStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(outStream, nbElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/parse_int/decode_parse_int_binding.h b/src/openzl/codecs/parse_int/decode_parse_int_binding.h index 773f3fbbd..212b79355 100644 --- a/src/openzl/codecs/parse_int/decode_parse_int_binding.h +++ b/src/openzl/codecs/parse_int/decode_parse_int_binding.h @@ -11,9 +11,10 @@ ZL_BEGIN_C_DECLS ZL_Report DI_parseInt(ZL_Decoder* decoder, const ZL_Input* ins[]); -#define DI_PARSE_INT(id) \ - { \ - .transform_f = DI_parseInt, .name = "!zl.parse_int", \ +#define DI_PARSE_INT(id) \ + { \ + .transform_f = DI_parseInt, \ + .name = "!zl.parse_int", \ } ZL_END_C_DECLS diff --git a/src/openzl/codecs/parse_int/encode_parse_int_binding.c b/src/openzl/codecs/parse_int/encode_parse_int_binding.c index cb7f16dce..9fd4ed275 100644 --- a/src/openzl/codecs/parse_int/encode_parse_int_binding.c +++ b/src/openzl/codecs/parse_int/encode_parse_int_binding.c @@ -9,6 +9,7 @@ ZL_Report EI_parseInt(ZL_Encoder* encoder, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(encoder); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); char const* data = (char const*)ZL_Input_ptr(ins[0]); @@ -17,19 +18,19 @@ ZL_Report EI_parseInt(ZL_Encoder* encoder, const ZL_Input* ins[], size_t nbIns) size_t const eltWidth = 8; ZL_Output* numbers = ZL_Encoder_createTypedStream(encoder, 0, nbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, numbers); + ZL_ERR_IF_NULL(numbers, allocation); int64_t* const nums = (int64_t*)ZL_Output_ptr(numbers); const ZL_RefParam parsedInts = ZL_Encoder_getLocalParam(encoder, ZL_PARSE_INT_PREPARSED_PARAMS); if (nbElts > 0 && parsedInts.paramRef) { - ZL_RET_R_IF_NE(nodeParameter_invalid, nbElts * 8, parsedInts.paramSize); + ZL_ERR_IF_NE(nbElts * 8, parsedInts.paramSize, nodeParameter_invalid); // Copy the prepared list of ints to the output memcpy(nums, parsedInts.paramRef, parsedInts.paramSize); } else { - ZL_RET_R_IF_NOT( - node_invalid_input, ZL_parseInt(nums, data, sizes, nbElts)); + ZL_ERR_IF_NOT( + ZL_parseInt(nums, data, sizes, nbElts), node_invalid_input); } - ZL_RET_R_IF_ERR(ZL_Output_commit(numbers, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(numbers, nbElts)); return ZL_returnSuccess(); } @@ -82,7 +83,7 @@ ZL_Report parseIntSafeFnGraph(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges) .nbRefParams = 1 } }; if (numParsed == nbElts) { // Run parse int node with localParam of pre-parsed integers - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, so, ZL_Edge_runNode_withParams( @@ -93,7 +94,7 @@ ZL_Report parseIntSafeFnGraph(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges) } else if (numParsed == 0) { ZL_ERR_IF_ERR(ZL_Edge_setDestination(edges[0], succList.graphids[1])); } else { - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, dispatchedEdges, ZL_Edge_runDispatchStringNode(edges[0], 2, indices)); @@ -103,7 +104,7 @@ ZL_Report parseIntSafeFnGraph(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges) ZL_ERR_IF_ERR(ZL_Edge_setDestination( dispatchedEdges.edges[0], succList.graphids[2])); // Run parse int node with localParam of pre-parsed integers - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, so, ZL_Edge_runNode_withParams( diff --git a/src/openzl/codecs/parse_int/encode_parse_int_binding.h b/src/openzl/codecs/parse_int/encode_parse_int_binding.h index ac1f7bdb4..4be8fd42f 100644 --- a/src/openzl/codecs/parse_int/encode_parse_int_binding.h +++ b/src/openzl/codecs/parse_int/encode_parse_int_binding.h @@ -14,19 +14,20 @@ ZL_BEGIN_C_DECLS ZL_Report EI_parseInt(ZL_Encoder* encoder, const ZL_Input* ins[], size_t nbIns); -#define EI_PARSE_INT(id) \ - { \ - .gd = PARSE_INT_GRAPH(id), .transform_f = EI_parseInt, \ - .name = "!zl.parse_int" \ - } +#define EI_PARSE_INT(id) \ + { .gd = PARSE_INT_GRAPH(id), \ + .transform_f = EI_parseInt, \ + .name = "!zl.parse_int" } ZL_Report parseIntSafeFnGraph(ZL_Graph* graph, ZL_Edge* edges[], size_t nbEdges); -#define MIGRAPH_TRY_PARSE_INT \ - { \ - .name = "!zl.try_parse_int", .graph_f = parseIntSafeFnGraph, \ - .inputTypeMasks = (ZL_Type[]){ ZL_Type_string }, .nbInputs = 1, \ +#define MIGRAPH_TRY_PARSE_INT \ + { \ + .name = "!zl.try_parse_int", \ + .graph_f = parseIntSafeFnGraph, \ + .inputTypeMasks = (ZL_Type[]){ ZL_Type_string }, \ + .nbInputs = 1, \ } ZL_END_C_DECLS diff --git a/src/openzl/codecs/parse_int/graph_parse_int.h b/src/openzl/codecs/parse_int/graph_parse_int.h index 030b7c136..4ada79030 100644 --- a/src/openzl/codecs/parse_int/graph_parse_int.h +++ b/src/openzl/codecs/parse_int/graph_parse_int.h @@ -5,10 +5,11 @@ #include "openzl/zl_data.h" // ZS2_Type_* -#define PARSE_INT_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define PARSE_INT_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_string), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/partition/common_partition.c b/src/openzl/codecs/partition/common_partition.c new file mode 100644 index 000000000..1b64f53f5 --- /dev/null +++ b/src/openzl/codecs/partition/common_partition.c @@ -0,0 +1,261 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/partition/common_partition.h" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/codecs/zl_partition.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/overflow.h" +#include "openzl/shared/utils.h" +#include "openzl/shared/varint.h" + +bool ZL_PartitionParams_validate(const ZL_PartitionParams* params) +{ + if (params->numPartitions == 0) { + // Invalid: Can only work on empty data => store + return false; + } + if (params->numPartitions > 256) { + // Invalid: Too many partitions + return false; + } + if (params->numPartitions == 1 && params->startValue == 0) { + // Invalid: No-op + return false; + } + uint64_t sum = params->startValue; + for (size_t i = 0; i < params->numPartitions; ++i) { + if (params->partitionSizes[i] == 0) { + // Invalid: Partitions cannot be empty + return false; + } + if (ZL_overflowAddU64(sum, params->partitionSizes[i], &sum)) { + if (!(i + 1 == params->numPartitions && sum == 0)) { + // Invalid: Either non-final partition overflows, or final + // partition does not exactly sum to 2^64. + return false; + } + } + } + return true; +} + +bool ZL_PartitionParams_areAllSizesPow2(const ZL_PartitionParams* params) +{ + for (size_t i = 0; i < params->numPartitions; ++i) { + if (!ZL_isPow2(params->partitionSizes[i])) { + return false; + } + } + return true; +} + +// --------------------------------------------------------------------------- +// Preset: Quantize Offsets (preset 0) +// Pure power-of-2 scheme: [1, 2), [2, 4), [4, 8), ..., [2^31, 2^32) +// Value 0 cannot be encoded. +// --------------------------------------------------------------------------- +static uint64_t const quantizeOffsetsPartitionSizes[32] = { + 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, + 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, + 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, + 0x40000, 0x80000, 0x100000, 0x200000, 0x400000, 0x800000, + 0x1000000, 0x2000000, 0x4000000, 0x8000000, 0x10000000, 0x20000000, + 0x40000000, 0x80000000, +}; + +static ZL_PartitionParams const quantizeOffsetsParams = { + .startValue = 1, + .numPartitions = 32, + .partitionSizes = quantizeOffsetsPartitionSizes, +}; + +// --------------------------------------------------------------------------- +// Preset: Quantize Lengths (preset 1) +// Values 0-15 each get their own bucket (0 extra bits). +// Then power-of-2 scheme: [16, 32), [32, 64), ..., [2^31, 2^32) +// --------------------------------------------------------------------------- +static uint64_t const quantizeLengthsPartitionSizess[44] = { + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x10, 0x20, + 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, + 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, + 0x40000, 0x80000, 0x100000, 0x200000, 0x400000, 0x800000, + 0x1000000, 0x2000000, 0x4000000, 0x8000000, 0x10000000, 0x20000000, + 0x40000000, 0x80000000, +}; + +static ZL_PartitionParams const quantizeLengthsParams = { + .startValue = 0, + .numPartitions = 44, + .partitionSizes = quantizeLengthsPartitionSizess, +}; + +// --------------------------------------------------------------------------- +// Preset: Varbyte16 (preset 2) +// [0, 2), [2, 4), [4, 8), [8, 16), ..., [0x8000, 0x10000) +// --------------------------------------------------------------------------- +static uint64_t const varbyte16PartitionSizes[16] = { + 0x2, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, + 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, +}; + +static ZL_PartitionParams const varbyte16Params = { + .startValue = 0, + .numPartitions = 16, + .partitionSizes = varbyte16PartitionSizes, +}; + +#if 0 +// --------------------------------------------------------------------------- +// Preset: Varbyte32 (disabled) +// Can only encode values < 0x1558000 +// --------------------------------------------------------------------------- +static uint64_t const varbyte32PartitionSizes[16] = { + 0x20, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, + 0x1000, 0x2000, 0x4000, 0x10000, 0x40000, 0x100000, 0x400000, 0x1000000, +}; + +static ZL_PartitionParams const varbyte32Params = { + .startValue = 0, + .numPartitions = 16, + .partitionSizes = varbyte32PartitionSizes, +}; +#endif + +static ZL_PartitionParams const* const + presetTable[ZL_PartitionParamsPreset_custom] = { + &quantizeOffsetsParams, + &quantizeLengthsParams, + &varbyte16Params, + }; + +const ZL_PartitionParams* ZL_PartitionParams_getPreset( + ZL_PartitionParamsPreset preset) +{ + if ((int)preset < 0 || (int)preset >= ZL_PartitionParamsPreset_custom) { + return NULL; + } + return presetTable[preset]; +} + +void ZL_PartitionParams_computeBits( + const ZL_PartitionParams* params, + uint8_t* bits) +{ + for (size_t i = 0; i < params->numPartitions; ++i) { + bits[i] = (uint8_t)ZL_nextPow2(params->partitionSizes[i]); + } +} + +void ZL_PartitionParams_computeBasesU64( + const ZL_PartitionParams* params, + uint64_t* bases) +{ + bases[0] = params->startValue; + for (size_t i = 1; i < params->numPartitions; ++i) { + bases[i] = bases[i - 1] + params->partitionSizes[i - 1]; + } +} + +uint64_t ZL_PartitionParams_getLargestPartitionSize( + const ZL_PartitionParams* params) +{ + uint64_t max = 0; + for (size_t i = 0; i < params->numPartitions; ++i) { + max = ZL_MAX(max, params->partitionSizes[i]); + } + return max; +} + +size_t ZL_PartitionParams_getNumTrailingZeros(const ZL_PartitionParams* params) +{ + ZL_ASSERT(ZL_PartitionParams_validate(params)); + int numTrailingZeros = + params->startValue == 0 ? 64 : ZL_ctz64(params->startValue); + + for (size_t i = 0; i < params->numPartitions; ++i) { + numTrailingZeros = + ZL_MIN(numTrailingZeros, ZL_ctz64(params->partitionSizes[i])); + } + ZL_ASSERT_LT(numTrailingZeros, 64); + return (size_t)numTrailingZeros; +} + +ZL_Report ZL_PartitionParams_parseHeader( + ZL_PartitionParams* params, + size_t* width, + const uint8_t* header, + size_t headerSize, + uint64_t* partitionSizesBuffer) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZL_ERR_IF_LT(headerSize, 1, corruption, "Empty header"); + const uint8_t* hdr = header; + const uint8_t* const end = hdr + headerSize; + const uint8_t flags = *hdr++; + + *width = 1u << (flags & 0x3); + + if (flags & ZL_PARTITION_HEADER_IS_PRESET_BIT) { + const ZL_PartitionParamsPreset preset = + (ZL_PartitionParamsPreset)(flags >> 3); + ZL_PartitionParams const* const presetParams = + ZL_PartitionParams_getPreset(preset); + ZL_ERR_IF_NULL(presetParams, corruption); + *params = *presetParams; + return ZL_returnSuccess(); + } + + if (flags & ZL_PARTITION_HEADER_IS_FIRST_VALUE_ZERO_BIT) { + params->startValue = 0; + } else { + ZL_TRY_SET(uint64_t, params->startValue, ZL_varintDecode(&hdr, end)); + } + + if (flags & ZL_PARTITION_HEADER_IS_POW2_BIT) { + const size_t numBits = (size_t)(flags >> 6) + 3; + ZL_ERR_IF_EQ(hdr, end, corruption, "Missing partition sizes"); + ZL_ERR_IF_EQ( + end[-1], 0, corruption, "Corrupted partition sizes bitstream"); + const size_t unusedBits = 8 - (size_t)ZL_highbit32(end[-1]); + const size_t totalBits = 8 * (size_t)(end - hdr) - unusedBits; + ZL_ERR_IF_NE( + totalBits % numBits, + 0, + corruption, + "bitstream size not multiple of numBits"); + params->numPartitions = totalBits / numBits; + + ZL_ERR_IF_GT( + params->numPartitions, ZL_PARTITION_MAX_PARTITIONS, corruption); + + ZS_BitDStreamFF bitstream = + ZS_BitDStreamFF_init(hdr, (size_t)(end - hdr)); + for (size_t i = 0; i < params->numPartitions; ++i) { + uint64_t const log2Size = ZS_BitDStreamFF_read(&bitstream, numBits); + partitionSizesBuffer[i] = 1ULL << log2Size; + ZS_BitDStreamFF_reload(&bitstream); + } + + ZL_ERR_IF_ERR(ZS_BitDStreamFF_finish(&bitstream)); + params->partitionSizes = partitionSizesBuffer; + } else { + params->numPartitions = 0; + while (hdr < end) { + ZL_ERR_IF_GE( + params->numPartitions, + ZL_PARTITION_MAX_PARTITIONS, + corruption); + ZL_TRY_SET( + uint64_t, + partitionSizesBuffer[params->numPartitions++], + ZL_varintDecode(&hdr, end)); + } + params->partitionSizes = partitionSizesBuffer; + } + ZL_ERR_IF_NOT(ZL_PartitionParams_validate(params), corruption); + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/partition/common_partition.h b/src/openzl/codecs/partition/common_partition.h new file mode 100644 index 000000000..440842623 --- /dev/null +++ b/src/openzl/codecs/partition/common_partition.h @@ -0,0 +1,98 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_PARTITION_COMMON_PARTITION_H +#define OPENZL_CODECS_PARTITION_COMMON_PARTITION_H + +#include "openzl/codecs/zl_partition.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_localParams.h" + +ZL_BEGIN_C_DECLS + +/** + * Runtime parameters for the partition codec. + * @param startValue The start value for the first partition. + * @param numPartitions The number of partitions. + * @param partitionSizes The size of each partition. + */ +typedef struct { + uint64_t startValue; + size_t numPartitions; + const uint64_t* partitionSizes; +} ZL_PartitionParams; + +bool ZL_PartitionParams_validate(const ZL_PartitionParams* params); + +/// Check if all partition sizes are powers of 2. +bool ZL_PartitionParams_areAllSizesPow2(const ZL_PartitionParams* params); + +/// Get a preset's partition parameters. +/// @returns A pointer to the preset's static params, or NULL if invalid. +const ZL_PartitionParams* ZL_PartitionParams_getPreset( + ZL_PartitionParamsPreset preset); + +/// Compute the number of extra bits needed per partition. +/// bits[i] = ceil(log2(partitionSizes[i])) +void ZL_PartitionParams_computeBits( + const ZL_PartitionParams* params, + uint8_t* bits); + +/// Compute the base value for each partition. +/// bases[i] = startValue + sum(partitionSizes[0..i-1]) +void ZL_PartitionParams_computeBasesU64( + const ZL_PartitionParams* params, + uint64_t* bases); + +/// @returns The largest partition size. +uint64_t ZL_PartitionParams_getLargestPartitionSize( + const ZL_PartitionParams* params); + +/// @returns The number of trailing zeros shared by the start value and all the +/// partition sizes. +/// @note This is useful for encoding to reduce the size of the +/// offset->partition LUT. Offsets can be right shifted by this amount, because +/// partition boundaries can only happen at multiples of 2^NumTrailingZeros. +size_t ZL_PartitionParams_getNumTrailingZeros(const ZL_PartitionParams* params); + +typedef struct { + void* opaque; + void* (*alloc)(void* opaque, size_t size); +} ZL_PartitionScratchAlloc; + +/// The maximum partition size where encode & decode can unroll the loop 4 times +/// when reading and writing the offset bits. +#define ZL_PARTITION_MAX_PARTITION_SIZE_FOR_UNROLL4 (1u << 14) + +/// Header flag bits for the partition codec header byte. +/// Bits [1:0]: log2(element width in bytes). + +/// Bit 2: params are a preset (remaining bits encode preset ID). +#define ZL_PARTITION_HEADER_IS_PRESET_BIT 0x4 +/// Bit 3: startValue is 0 (omitted from header). +#define ZL_PARTITION_HEADER_IS_FIRST_VALUE_ZERO_BIT 0x8 +/// Bit 4: unused. +#define ZL_PARTITION_HEADER_UNUSED_BIT 0x10 +/// Bit 5: all partition sizes are powers of 2. +#define ZL_PARTITION_HEADER_IS_POW2_BIT 0x20 + +/// Parse partition parameters from a codec header buffer. +/// For presets, @p partitionSizesBuffer is unused and params->partitionSizes +/// points to static data. For non-presets, @p partitionSizesBuffer must have +/// at least ZL_PARTITION_MAX_PARTITIONS entries, and params->partitionSizes +/// will point into it. +/// @param[out] params Parsed partition parameters. +/// @param[out] width Output element width in bytes (1, 2, 4, or 8). +/// @param[in] header Pointer to the codec header bytes. +/// @param[in] headerSize Size of the codec header in bytes. +/// @param[out] partitionSizesBuffer Scratch buffer for non-preset partition +/// sizes (at least ZL_PARTITION_MAX_PARTITIONS entries). +ZL_Report ZL_PartitionParams_parseHeader( + ZL_PartitionParams* params, + size_t* width, + const uint8_t* header, + size_t headerSize, + uint64_t* partitionSizesBuffer); + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/partition/decode_partition_binding.c b/src/openzl/codecs/partition/decode_partition_binding.c new file mode 100644 index 000000000..72219ed9e --- /dev/null +++ b/src/openzl/codecs/partition/decode_partition_binding.c @@ -0,0 +1,67 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#include "openzl/codecs/partition/decode_partition_binding.h" + +#include "openzl/codecs/partition/common_partition.h" +#include "openzl/codecs/partition/decode_partition_kernel.h" +#include "openzl/common/assertion.h" +#include "openzl/zl_dtransform.h" + +/// Parse partition parameters from the codec header. +static ZL_Report ZL_PartitionParams_readHeader( + ZL_PartitionParams* params, + size_t* width, + ZL_Decoder* decoder) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(decoder); + + ZL_RBuffer const header = ZL_Decoder_getCodecHeader(decoder); + + uint64_t* partitionSizesBuffer = ZL_Decoder_getScratchSpace( + decoder, sizeof(uint64_t) * ZL_PARTITION_MAX_PARTITIONS); + ZL_ERR_IF_NULL(partitionSizesBuffer, allocation); + + ZL_ERR_IF_ERR(ZL_PartitionParams_parseHeader( + params, + width, + (const uint8_t*)header.start, + header.size, + partitionSizesBuffer)); + + return ZL_returnSuccess(); +} + +ZL_Report DI_partition(ZL_Decoder* dictx, const ZL_Input* ins[]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + ZL_Input const* const bucketsIn = ins[0]; + ZL_Input const* const bitsIn = ins[1]; + + ZL_ERR_IF_NE(ZL_Input_eltWidth(bucketsIn), 1, corruption, "Unsupported"); + ZL_ASSERT_EQ(ZL_Input_type(bitsIn), ZL_Type_serial); + + size_t const numElts = ZL_Input_numElts(bucketsIn); + + ZL_PartitionParams params = { 0 }; + size_t eltWidth = 0; + ZL_ERR_IF_ERR(ZL_PartitionParams_readHeader(¶ms, &eltWidth, dictx)); + + ZL_Output* const out = + ZL_Decoder_create1OutStream(dictx, numElts, eltWidth); + ZL_ERR_IF_NULL(out, allocation); + + ZL_Report const ret = ZL_partitionDecode( + ZL_Output_ptr(out), + eltWidth, + (uint8_t const*)ZL_Input_ptr(bucketsIn), + numElts, + (uint8_t const*)ZL_Input_ptr(bitsIn), + ZL_Input_numElts(bitsIn), + ¶ms); + if (ZL_isError(ret)) { + return ret; + } + + ZL_ERR_IF_ERR(ZL_Output_commit(out, numElts)); + + return ZL_returnValue(1); +} diff --git a/src/openzl/codecs/partition/decode_partition_binding.h b/src/openzl/codecs/partition/decode_partition_binding.h new file mode 100644 index 000000000..9940bb178 --- /dev/null +++ b/src/openzl/codecs/partition/decode_partition_binding.h @@ -0,0 +1,22 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_PARTITION_DECODE_PARTITION_BINDING_H +#define OPENZL_CODECS_PARTITION_DECODE_PARTITION_BINDING_H + +#include "openzl/codecs/partition/graph_partition.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_dtransform.h" + +ZL_BEGIN_C_DECLS + +/// Decoder binding for the partition transform. +/// Reads the codec header, then decodes bucket IDs + extra bits back into +/// the original values. +ZL_Report DI_partition(ZL_Decoder* dictx, const ZL_Input* ins[]); + +/// Macro to register the partition decoder transform. +#define DI_PARTITION(id) \ + { .transform_f = DI_partition, .name = "!zl.partition" } + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/partition/decode_partition_bitpack_fusion.c b/src/openzl/codecs/partition/decode_partition_bitpack_fusion.c new file mode 100644 index 000000000..ebd65ad0b --- /dev/null +++ b/src/openzl/codecs/partition/decode_partition_bitpack_fusion.c @@ -0,0 +1,705 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/partition/decode_partition_bitpack_fusion.h" + +#include "openzl/codecs/bitpack/decode_bitpack_binding.h" +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/codecs/partition/common_partition.h" +#include "openzl/common/wire_format.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/mem.h" +#include "openzl/shared/numeric_operations.h" +#include "openzl/zl_input.h" +#include "openzl/zl_output.h" + +// --------------------------------------------------------------------------- +// LUT builders: expand per-bucket base/mask arrays into packed 2-element LUTs +// --------------------------------------------------------------------------- + +/// Build expanded LUT for nbBits=4: 2^4=16 raw entries -> 2^8=256 expanded. +static void expandLUT4(const uint16_t* LUTx1, uint32_t LUTx2[256]) +{ + for (size_t idx = 0; idx < 256; ++idx) { + const size_t lo = idx & 0xF; + const size_t hi = idx >> 4; + LUTx2[idx] = (uint32_t)LUTx1[lo] | ((uint32_t)LUTx1[hi] << 16); + } +} + +/// Build expanded LUT for nbBits=5: 2^5=32 raw entries -> 2^10=1024 expanded. +static void expandLUT5(const uint16_t* LUTx1, uint32_t LUTx2[1024]) +{ + for (size_t idx = 0; idx < 1024; ++idx) { + const size_t lo = idx & 31; + const size_t hi = idx >> 5; + LUTx2[idx] = (uint32_t)LUTx1[lo] | ((uint32_t)LUTx1[hi] << 16); + } +} + +// --------------------------------------------------------------------------- +// computeLimit: safe iteration bound for fast-path loops +// --------------------------------------------------------------------------- +// +// The fast-path loop processes kEltsPerIter elements per iteration: +// +// for (; i < limit; i += kEltsPerIter) { /* read kEltsPerIter elts */ } +// +// This function computes a safe `limit` such that every iteration reads +// within both the fixed and variable stream buffers. +// +// The variable stream bound is a worst-case estimate (assumes maxVarBits +// bits per element). Actual consumption may be lower, so callers recompute +// after the inner loop to squeeze out additional iterations: +// +// for (;;) { +// limit = computeLimit(...); +// if (i >= limit) break; +// for (; i < limit; i += kEltsPerIter) { ... } +// } +// +static size_t computeLimit( + size_t i, + size_t numElts, + size_t kEltsPerIter, + size_t maxVarBits, + const uint8_t* v, + const uint8_t* vEnd, + const uint8_t* f, + const uint8_t* fEnd, + size_t fixedBytesPerIter) +{ + ZL_ASSERT_LE(i, numElts); + ZL_ASSERT_LE(v, vEnd); + ZL_ASSERT_LE(f, fEnd); + + // Need at least one full iteration's worth of output elements. + if (numElts < kEltsPerIter) { + return i; + } + + // We need to be able to load 8 bytes from the fixed and variable inputs. + if (fEnd - f < 8 || vEnd - v < 8) { + return i; + } + + // Fixed stream: each iteration consumes exactly fixedBytesPerIter bytes, + // but individual reads within the iteration are 8-byte LE loads that may + // read ahead of what is consumed (e.g. decodePartitionBitpack5 reads 8 + // bytes, advances 5). Reserve 7 bytes of margin so every 8-byte load stays + // in bounds. + const size_t fSafeElts = + (((size_t)(fEnd - f) - 7) / fixedBytesPerIter) * kEltsPerIter; + + size_t vSafeElts = numElts; + if (maxVarBits != 0) { + // Total bits in remaining bytes, minus 7 bytes so that every 8-byte + // load stays in bounds, minus up to 7 residual bits from the sub-byte + // bitsConsumed offset carried into this call. + const size_t vSafeBits = (8 * ((size_t)(vEnd - v) - 7) - 7); + vSafeElts = vSafeBits / maxVarBits; + } + + // Take the tighter of the two stream bounds. + const size_t safeElts = ZL_MIN(fSafeElts, vSafeElts); + if (safeElts < kEltsPerIter) { + return i; + } + + // An iteration at index j reads elements j..j+kEltsPerIter-1, so the + // last valid start index is safeElts - kEltsPerIter + 1 from the current i. + // Also cap at numElts - kEltsPerIter + 1 to stay within the output buffer. + const size_t limit = ZL_MIN(numElts, i + safeElts) - kEltsPerIter + 1; + return limit; +} + +// --------------------------------------------------------------------------- +// DecodeTail: Decode the tail of the stream with a scalar safe path. +// --------------------------------------------------------------------------- +static ZL_Report decodeTail( + uint16_t* out, + size_t i, + size_t numElts, + const uint8_t* fixed, + const uint8_t* fixedEnd, + size_t fixedBitsPerElt, + const uint8_t* var, + const uint8_t* varEnd, + size_t varBitsConsumed, + const uint64_t* bases, + const uint8_t* bits, + size_t numPartitions) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZS_BitDStreamFF fixedBits = + ZS_BitDStreamFF_init(fixed, (size_t)(fixedEnd - fixed)); + ZS_BitDStreamFF varBits = ZS_BitDStreamFF_init(var, (size_t)(varEnd - var)); + ZS_BitDStreamFF_skip(&varBits, varBitsConsumed); + for (; i < numElts; ++i) { + size_t bucket = ZS_BitDStreamFF_read(&fixedBits, fixedBitsPerElt); + ZS_BitDStreamFF_reload(&fixedBits); + ZL_ERR_IF_GE(bucket, numPartitions, corruption, "Bucket ID OOB"); + uint64_t offset = ZS_BitDStreamFF_read(&varBits, bits[bucket]); + ZS_BitDStreamFF_reload(&varBits); + out[i] = (uint16_t)(bases[bucket] + offset); + } + ZL_ERR_IF_ERR(ZS_BitDStreamFF_finish(&fixedBits)); + ZL_ERR_IF_ERR(ZS_BitDStreamFF_finish(&varBits)); + return ZL_returnSuccess(); +} + +// --------------------------------------------------------------------------- +// 2 bucket IDs packed per byte (4 bits each), 16 elts per iter +// --------------------------------------------------------------------------- +static ZL_Report decodePartitionBitpack4( + uint16_t* out, + size_t numElts, + const uint8_t* fixed, + size_t fixedSize, + const uint8_t* var, + size_t varSize, + const uint64_t* bases, + const uint8_t* bits, + size_t numPartitions, + size_t maxVarBits, + uint32_t baseLUTx2[256], + uint32_t maskLUTx2[256]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ASSERT_LE(numPartitions, 16); + +#if ZL_HAS_SSSE3 + (void)baseLUTx2; + (void)maskLUTx2; + + // Build byte-split LUTs for vpshufb: split each uint16_t entry into + // lo/hi byte tables. One vpshufb per {base,mask} byte component; + // unpacklo/hi interleave the results back to uint16_t. + // [0] = low byte, [1] = high byte + __m128i baseLUT[2]; + __m128i maskLUT[2]; + { + uint8_t baseLo[16] = { 0 }, baseHi[16] = { 0 }; + uint8_t maskLo[16] = { 0 }, maskHi[16] = { 0 }; + for (size_t p = 0; p < numPartitions; ++p) { + const uint16_t b = (uint16_t)bases[p]; + const uint16_t m = (uint16_t)((1u << bits[p]) - 1); + baseLo[p] = (uint8_t)b; + baseHi[p] = (uint8_t)(b >> 8); + maskLo[p] = (uint8_t)m; + maskHi[p] = (uint8_t)(m >> 8); + } + baseLUT[0] = _mm_loadu_si128((__m128i const*)baseLo); + baseLUT[1] = _mm_loadu_si128((__m128i const*)baseHi); + maskLUT[0] = _mm_loadu_si128((__m128i const*)maskLo); + maskLUT[1] = _mm_loadu_si128((__m128i const*)maskHi); + } + const __m128i nibbleMask = _mm_set1_epi8(0x0F); +#else + { + // Need to copy bases to local storage for when numPartitions < 16. + uint16_t baseLUTx1[16] = { 0 }; + uint16_t maskLUTx1[16] = { 0 }; + for (size_t p = 0; p < numPartitions; ++p) { + baseLUTx1[p] = (uint16_t)bases[p]; + maskLUTx1[p] = (uint16_t)((1u << bits[p]) - 1); + } + expandLUT4(baseLUTx1, baseLUTx2); + expandLUT4(maskLUTx1, maskLUTx2); + } +#endif + + uint16_t* o = out; + const uint8_t* f = fixed; + const uint8_t* const fEnd = fixed + fixedSize; + const uint8_t* v = var; + const uint8_t* const vEnd = var + varSize; + const size_t kEltsPerIter = 16; + const size_t kFixedBytesIter = 8; // 16 elts * 4 bits / 8 = 8 bytes + size_t i = 0; + size_t bitsConsumed = 0; + + for (;;) { + const size_t limit = computeLimit( + i, + numElts, + kEltsPerIter, + maxVarBits, + v, + vEnd, + f, + fEnd, + kFixedBytesIter); + if (i >= limit) { + break; + } + for (; i < limit; i += kEltsPerIter) { +#if ZL_HAS_SSSE3 + // Load 8 bytes containing 16 x 4-bit bucket indices + const __m128i packed = _mm_loadl_epi64((__m128i_u const*)f); + f += 8; + + // Unpack nibbles: split each byte into low and high nibble + const __m128i lo = _mm_and_si128(packed, nibbleMask); + const __m128i hi = + _mm_and_si128(_mm_srli_epi16(packed, 4), nibbleMask); + + // Interleave to element order: {lo[0], hi[0], lo[1], hi[1], ...} + const __m128i nibbles = _mm_unpacklo_epi8(lo, hi); + + // vpshufb looks up lo/hi byte halves of base and mask. + // b[0]/m[0] = lo bytes, b[1]/m[1] = hi bytes. + __m128i b[2], m[2]; + for (size_t h = 0; h < 2; ++h) { + b[h] = _mm_shuffle_epi8(baseLUT[h], nibbles); + m[h] = _mm_shuffle_epi8(maskLUT[h], nibbles); + } + + // Interleave lo/hi bytes to uint16_t. + // baseV[0]/maskV[0] → elements 0..7 + // baseV[1]/maskV[1] → elements 8..15 + __m128i baseV[2], maskV[2]; + baseV[0] = _mm_unpacklo_epi8(b[0], b[1]); + baseV[1] = _mm_unpackhi_epi8(b[0], b[1]); + maskV[0] = _mm_unpacklo_epi8(m[0], m[1]); + maskV[1] = _mm_unpackhi_epi8(m[0], m[1]); + + // Decode 4 groups of 4 elements. + // u/2 selects the __m128i (elements 0..7 or 8..15), + // u%2 selects the 64-bit half within it. + for (size_t u = 0; u < 4; ++u) { + const __m128i b128 = baseV[u / 2]; + const __m128i m128 = maskV[u / 2]; + const uint64_t base = (uint64_t)_mm_cvtsi128_si64( + u % 2 == 0 ? b128 : _mm_srli_si128(b128, 8)); + const uint64_t mask = (uint64_t)_mm_cvtsi128_si64( + u % 2 == 0 ? m128 : _mm_srli_si128(m128, 8)); + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = ZL_bitDeposit64(vData, mask); + ZL_writeLE64(o, base + offset); + o += 4; + bitsConsumed += (size_t)ZL_popcount64(mask); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } +#else + for (size_t u = 0; u < kEltsPerIter; u += 4) { + const uint64_t base = (uint64_t)baseLUTx2[f[0]] + | ((uint64_t)baseLUTx2[f[1]] << 32); + const uint64_t mask = (uint64_t)maskLUTx2[f[0]] + | ((uint64_t)maskLUTx2[f[1]] << 32); + f += 2; + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = ZL_bitDeposit64(vData, mask); + ZL_writeLE64(o, base + offset); + o += 4; + bitsConsumed += (size_t)ZL_popcount64(mask); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } +#endif + } + } + + return decodeTail( + out, + i, + numElts, + f, + fEnd, + 4, + v, + vEnd, + bitsConsumed, + bases, + bits, + numPartitions); +} + +// --------------------------------------------------------------------------- +// 8 bucket IDs packed into 5 bytes (5 bits each), 16 elts per iter +// --------------------------------------------------------------------------- +static ZL_Report decodePartitionBitpack5( + uint16_t* out, + size_t numElts, + const uint8_t* fixed, + size_t fixedSize, + const uint8_t* var, + size_t varSize, + const uint64_t* bases, + const uint8_t* bits, + size_t numPartitions, + size_t maxVarBits, + uint32_t baseLUTx2[1024], + uint32_t maskLUTx2[1024]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ASSERT_LE(numPartitions, 32); + +#if ZL_HAS_SSSE3 + (void)baseLUTx2; + (void)maskLUTx2; + + // Build byte-split LUTs for vpshufb: 32 entries split into two 16-entry + // halves (partitions 0..15 vs 16..31), each uint16_t split into lo/hi + // bytes. pshufb's zero-on-high-bit behaviour lets us blend the two + // partition halves with OR instead of blendv. + // [0][h] = partitions 0..15, [1][h] = partitions 16..31 + // [p][0] = low byte, [p][1] = high byte + __m128i baseLUT[2][2]; + __m128i maskLUT[2][2]; + { + uint8_t baseLo0[16] = { 0 }, baseHi0[16] = { 0 }; + uint8_t maskLo0[16] = { 0 }, maskHi0[16] = { 0 }; + uint8_t baseLo1[16] = { 0 }, baseHi1[16] = { 0 }; + uint8_t maskLo1[16] = { 0 }, maskHi1[16] = { 0 }; + for (size_t p = 0; p < numPartitions; ++p) { + const uint16_t b = (uint16_t)bases[p]; + const uint16_t m = (uint16_t)((1u << bits[p]) - 1); + uint8_t* bLo = (p < 16) ? baseLo0 : baseLo1; + uint8_t* bHi = (p < 16) ? baseHi0 : baseHi1; + uint8_t* mLo = (p < 16) ? maskLo0 : maskLo1; + uint8_t* mHi = (p < 16) ? maskHi0 : maskHi1; + const size_t idx = p & 15; + bLo[idx] = (uint8_t)b; + bHi[idx] = (uint8_t)(b >> 8); + mLo[idx] = (uint8_t)m; + mHi[idx] = (uint8_t)(m >> 8); + } + baseLUT[0][0] = _mm_loadu_si128((__m128i const*)baseLo0); + baseLUT[0][1] = _mm_loadu_si128((__m128i const*)baseHi0); + baseLUT[1][0] = _mm_loadu_si128((__m128i const*)baseLo1); + baseLUT[1][1] = _mm_loadu_si128((__m128i const*)baseHi1); + maskLUT[0][0] = _mm_loadu_si128((__m128i const*)maskLo0); + maskLUT[0][1] = _mm_loadu_si128((__m128i const*)maskHi0); + maskLUT[1][0] = _mm_loadu_si128((__m128i const*)maskLo1); + maskLUT[1][1] = _mm_loadu_si128((__m128i const*)maskHi1); + } + const __m128i nibbleMask = _mm_set1_epi8(0x0F); + // For unpacking 8 x 5-bit fields from 5 bytes: arrange byte pairs into + // 16-bit lanes, then variable-shift via multiply to align each 5-bit + // field to bits [15:11], then uniform right-shift by 11. + const __m128i shufIdx5 = + _mm_setr_epi8(0, 1, 0, 1, 1, 2, 1, 2, 2, 3, 3, 4, 3, 4, 4, 5); + const __m128i multipliers5 = + _mm_setr_epi16(2048, 64, 512, 16, 128, 1024, 32, 256); +#else + { + // Need to copy bases to local storage for when numPartitions < 32. + uint16_t baseLUTx1[32] = { 0 }; + uint16_t maskLUTx1[32] = { 0 }; + for (size_t p = 0; p < numPartitions; ++p) { + baseLUTx1[p] = (uint16_t)bases[p]; + maskLUTx1[p] = (uint16_t)((1u << bits[p]) - 1); + } + expandLUT5(baseLUTx1, baseLUTx2); + expandLUT5(maskLUTx1, maskLUTx2); + } +#endif + + uint16_t* o = out; + const uint8_t* f = fixed; + const uint8_t* const fEnd = fixed + fixedSize; + const uint8_t* v = var; + const uint8_t* const vEnd = var + varSize; + const size_t kEltsPerIter = 16; + const size_t kFixedBytesIter = 10; // 16 elts * 5 bits / 8 = 10 bytes + size_t i = 0; + size_t bitsConsumed = 0; + + for (;;) { + const size_t limit = computeLimit( + i, + numElts, + kEltsPerIter, + maxVarBits, + v, + vEnd, + f, + fEnd, + kFixedBytesIter); + if (i >= limit) { + break; + } + for (; i < limit; i += kEltsPerIter) { +#if ZL_HAS_SSSE3 + // Extract 16 x 5-bit bucket indices from 10 bytes. + // Two groups of 8 (bytes 0-4 and 5-9) each processed with + // one vpshufb + one vpmullw + one vpsrlw. + __m128i idxVec; + { + const __m128i raw = _mm_loadu_si128((__m128i_u const*)f); + f += 10; + const __m128i pairs0 = _mm_shuffle_epi8(raw, shufIdx5); + const __m128i elts0 = _mm_srli_epi16( + _mm_mullo_epi16(pairs0, multipliers5), 11); + const __m128i pairs1 = + _mm_shuffle_epi8(_mm_srli_si128(raw, 5), shufIdx5); + const __m128i elts1 = _mm_srli_epi16( + _mm_mullo_epi16(pairs1, multipliers5), 11); + idxVec = _mm_packus_epi16(elts0, elts1); + } + + // Lower 4 bits for vpshufb index (selects within a 16-entry half). + const __m128i idx_low4 = _mm_and_si128(idxVec, nibbleMask); + // pshufb zeros bytes where the index has bit 7 set. OR the + // ge16/lt16 mask into the index so the wrong partition half + // zeros out, then OR the two halves together. + const __m128i ge16 = _mm_cmpgt_epi8(idxVec, _mm_set1_epi8(15)); + const __m128i lt16 = _mm_cmpgt_epi8(_mm_set1_epi8(16), idxVec); + const __m128i idx_v0 = _mm_or_si128(idx_low4, ge16); + const __m128i idx_v1 = _mm_or_si128(idx_low4, lt16); + + // vpshufb looks up lo/hi byte halves of base and mask. + // pshufb zeros the wrong partition half; OR merges them. + // b[0]/m[0] = lo bytes, b[1]/m[1] = hi bytes. + __m128i b[2], m[2]; + for (size_t h = 0; h < 2; ++h) { + b[h] = _mm_or_si128( + _mm_shuffle_epi8(baseLUT[0][h], idx_v0), + _mm_shuffle_epi8(baseLUT[1][h], idx_v1)); + m[h] = _mm_or_si128( + _mm_shuffle_epi8(maskLUT[0][h], idx_v0), + _mm_shuffle_epi8(maskLUT[1][h], idx_v1)); + } + + // Interleave lo/hi bytes to uint16_t. + // baseV[0]/maskV[0] → elements 0..7 + // baseV[1]/maskV[1] → elements 8..15 + __m128i baseV[2], maskV[2]; + baseV[0] = _mm_unpacklo_epi8(b[0], b[1]); + baseV[1] = _mm_unpackhi_epi8(b[0], b[1]); + maskV[0] = _mm_unpacklo_epi8(m[0], m[1]); + maskV[1] = _mm_unpackhi_epi8(m[0], m[1]); + + // Decode 4 groups of 4 elements. + // u/2 selects the __m128i (elements 0..7 or 8..15), + // u%2 selects the 64-bit half within it. + for (size_t u = 0; u < 4; ++u) { + const __m128i b128 = baseV[u / 2]; + const __m128i m128 = maskV[u / 2]; + const uint64_t base = (uint64_t)_mm_cvtsi128_si64( + u % 2 == 0 ? b128 : _mm_srli_si128(b128, 8)); + const uint64_t mask = (uint64_t)_mm_cvtsi128_si64( + u % 2 == 0 ? m128 : _mm_srli_si128(m128, 8)); + + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = ZL_bitDeposit64(vData, mask); + ZL_writeLE64(o, base + offset); + o += 4; + bitsConsumed += (size_t)ZL_popcount64(mask); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } +#else + for (size_t u = 0; u < kEltsPerIter; u += 8) { + const uint64_t F = ZL_readLE64(f); + const uint64_t fs[4] = { + (F >> 0) & 1023, + (F >> 10) & 1023, + (F >> 20) & 1023, + (F >> 30) & 1023, + }; + f += 5; + for (size_t k = 0; k < 4; k += 2) { + const uint64_t base = (uint64_t)baseLUTx2[fs[k]] + | ((uint64_t)baseLUTx2[fs[k + 1]] << 32); + const uint64_t mask = (uint64_t)maskLUTx2[fs[k]] + | ((uint64_t)maskLUTx2[fs[k + 1]] << 32); + const uint64_t vData = ZL_readLE64(v) >> bitsConsumed; + const uint64_t offset = ZL_bitDeposit64(vData, mask); + ZL_writeLE64(o, base + offset); + o += 4; + bitsConsumed += (size_t)ZL_popcount64(mask); + v += bitsConsumed >> 3; + bitsConsumed &= 7; + } + } +#endif + } + } + + return decodeTail( + out, + i, + numElts, + f, + fEnd, + 5, + v, + vEnd, + bitsConsumed, + bases, + bits, + numPartitions); +} + +static ZL_Report ZL_partitionBitpackFusedDecode_fallback( + ZL_DecoderFusion* state) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(state->dctx); + ZL_ERR_IF_ERR(ZL_DecoderFusion_runCodec(state, 0)); + ZL_ERR_IF_ERR(ZL_DecoderFusion_runCodec(state, 1)); + return ZL_returnSuccess(); +} + +// --------------------------------------------------------------------------- +// Main fusion entry point +// --------------------------------------------------------------------------- +ZL_Report ZL_partitionBitpackFusedDecode(ZL_DecoderFusion* state) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(state->dctx); + + // Codec index 0 = child (bitpack_int), codec index 1 = parent (partition) + const size_t bitpackIdx = 0; + const size_t partitionIdx = 1; + + // --- Get bitpack input (packed serial stream) --- + ZL_TRY_LET( + ZL_CodecInputs, + bpInputs, + ZL_DecoderFusion_getCodecInputs(state, bitpackIdx)); + ZL_ERR_IF_NE(bpInputs.singleton.numInputs, 1, corruption); + const ZL_Input* packedIn = bpInputs.singleton.inputs[0]; + ZL_ERR_IF_NULL(packedIn, corruption); + const uint8_t* packedData = (const uint8_t*)ZL_Input_ptr(packedIn); + const size_t packedSize = ZL_Input_numElts(packedIn); + + // --- Parse bitpack header --- + ZL_TRY_LET( + ZL_RBuffer, + bpHeaderBuf, + ZL_DecoderFusion_getCodecHeader(state, bitpackIdx)); + ZL_BitpackHeader bpHeader; + ZL_ERR_IF_ERR(ZL_BitpackHeader_parse( + &bpHeader, bpHeaderBuf.start, bpHeaderBuf.size, packedSize)); + ZL_ERR_IF_NE( + bpHeader.eltWidth, + 1, + corruption, + "Fused bitpack must produce bytes"); + const size_t nbBits = bpHeader.nbBits; + const size_t numElts = bpHeader.numElts; + + // --- Parse partition header --- + ZL_TRY_LET( + ZL_RBuffer, + partHeader, + ZL_DecoderFusion_getCodecHeader(state, partitionIdx)); + + uint64_t* partitionSizesBuffer = + (uint64_t*)ZL_DecoderFusion_getScratchSpace( + state, sizeof(uint64_t) * ZL_PARTITION_MAX_PARTITIONS); + ZL_ERR_IF_NULL(partitionSizesBuffer, allocation); + ZL_PartitionParams params = { 0 }; + size_t outEltWidth = 0; + ZL_ERR_IF_ERR(ZL_PartitionParams_parseHeader( + ¶ms, + &outEltWidth, + (const uint8_t*)partHeader.start, + partHeader.size, + partitionSizesBuffer)); + + // --- Fallback for non-uint16_t output --- + if (outEltWidth != 2 || nbBits < 4 || nbBits > 5 + || params.numPartitions > (1u << nbBits) + || ZL_PartitionParams_getLargestPartitionSize(¶ms) + > ZL_PARTITION_MAX_PARTITION_SIZE_FOR_UNROLL4) { + return ZL_partitionBitpackFusedDecode_fallback(state); + } + + // --- Get partition offsets input (input 1, not fused) --- + ZL_TRY_LET( + ZL_CodecInputs, + partInputs, + ZL_DecoderFusion_getCodecInputs(state, partitionIdx)); + // Input 0 is fused (NULL), input 1 is the offsets serial stream + ZL_ERR_IF_NE(partInputs.singleton.numInputs, 2, corruption); + ZL_ASSERT_NULL(partInputs.singleton.inputs[0]); // fused + const ZL_Input* offsetsIn = partInputs.singleton.inputs[1]; + ZL_ERR_IF_NULL(offsetsIn, corruption); + const uint8_t* offsetsData = (const uint8_t*)ZL_Input_ptr(offsetsIn); + const size_t offsetsSize = ZL_Input_numElts(offsetsIn); + + // --- Fast path: uint16_t output --- + const size_t numPartitions = params.numPartitions; + + // Compute uint16_t bases and uint8_t bits + uint64_t* basesU64 = (uint64_t*)ZL_DecoderFusion_getScratchSpace( + state, sizeof(uint64_t) * ZL_PARTITION_MAX_PARTITIONS); + ZL_ERR_IF_NULL(basesU64, allocation); + uint8_t* varBits = (uint8_t*)ZL_DecoderFusion_getScratchSpace( + state, sizeof(uint8_t) * ZL_PARTITION_MAX_PARTITIONS); + ZL_ERR_IF_NULL(varBits, allocation); + ZL_PartitionParams_computeBasesU64(¶ms, basesU64); + ZL_PartitionParams_computeBits(¶ms, varBits); + + const size_t maxVarBits = NUMOP_findMaxU8(varBits, numPartitions); + ZL_ASSERT_LE(maxVarBits, 14, "Already validated"); + +#if ZL_HAS_SSSE3 + // SSSE3 variants don't use these LUTs + uint32_t* baseLUTx2 = NULL; + uint32_t* maskLUTx2 = NULL; +#else + // Allocate LUT scratch space (decodePartitionBitpack5 needs 1024 entries, + // decodePartitionBitpack4 needs 256) + const size_t lutSize = (nbBits == 5) ? 1024 : 256; + uint32_t* baseLUTx2 = (uint32_t*)ZL_DecoderFusion_getScratchSpace( + state, sizeof(uint32_t) * lutSize); + ZL_ERR_IF_NULL(baseLUTx2, allocation); + uint32_t* maskLUTx2 = (uint32_t*)ZL_DecoderFusion_getScratchSpace( + state, sizeof(uint32_t) * lutSize); + ZL_ERR_IF_NULL(maskLUTx2, allocation); +#endif + + // Create output stream + ZL_Output* const out = + ZL_DecoderFusion_createTypedStream(state, 0, numElts, outEltWidth); + ZL_ERR_IF_NULL(out, allocation); + uint16_t* outPtr = (uint16_t*)ZL_Output_ptr(out); + + // Dispatch to specialized decoder + ZL_Report ret; + switch (nbBits) { + case 4: + ret = decodePartitionBitpack4( + outPtr, + numElts, + packedData, + packedSize, + offsetsData, + offsetsSize, + basesU64, + varBits, + numPartitions, + maxVarBits, + baseLUTx2, + maskLUTx2); + break; + case 5: + ret = decodePartitionBitpack5( + outPtr, + numElts, + packedData, + packedSize, + offsetsData, + offsetsSize, + basesU64, + varBits, + numPartitions, + maxVarBits, + baseLUTx2, + maskLUTx2); + break; + default: + ZL_ASSERT_FAIL("Unreachable"); + break; + } + ZL_ERR_IF_ERR(ret); + + ZL_ERR_IF_ERR(ZL_Output_commit(out, numElts)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/partition/decode_partition_bitpack_fusion.h b/src/openzl/codecs/partition/decode_partition_bitpack_fusion.h new file mode 100644 index 000000000..c2ebf240f --- /dev/null +++ b/src/openzl/codecs/partition/decode_partition_bitpack_fusion.h @@ -0,0 +1,17 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_PARTITION_DECODE_PARTITION_BITPACK_FUSION_H +#define OPENZL_CODECS_PARTITION_DECODE_PARTITION_BITPACK_FUSION_H + +#include "openzl/decompress/decoder_fusion.h" +#include "openzl/shared/portability.h" + +ZL_BEGIN_C_DECLS + +/// Fused decoder for partition + bitpack_int. +/// The bitpack codec (child) produces the bucket IDs that feed into +/// partition input 0. Partition input 1 (offsets) is not fused. +ZL_Report ZL_partitionBitpackFusedDecode(ZL_DecoderFusion* state); + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/partition/decode_partition_kernel.c b/src/openzl/codecs/partition/decode_partition_kernel.c new file mode 100644 index 000000000..5eb4644eb --- /dev/null +++ b/src/openzl/codecs/partition/decode_partition_kernel.c @@ -0,0 +1,88 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/partition/decode_partition_kernel.h" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/zl_errors.h" + +/// The bitstream accumulator holds 63 bits, and after a reload up to 7 bits +/// may be consumed. A single read must satisfy: residual + nbBits <= 64, so the +/// maximum safe read after reload is 57 bits. Use 56 to match the encoder. +#define ZL_PARTITION_BITS_SPLIT 56 + +/// Read an offset value from the bitstream, splitting into two reads if the +/// number of bits exceeds ZL_PARTITION_BITS_SPLIT. +static uint64_t ZL_partitionReadBits(ZS_BitDStreamFF* bitstream, size_t nbBits) +{ + if (nbBits <= ZL_PARTITION_BITS_SPLIT) { + return (uint64_t)ZS_BitDStreamFF_read(bitstream, nbBits); + } else { + uint64_t const lo = (uint64_t)ZS_BitDStreamFF_read(bitstream, 32); + ZS_BitDStreamFF_reload(bitstream); + uint64_t const hi = + (uint64_t)ZS_BitDStreamFF_read(bitstream, nbBits - 32); + return lo | (hi << 32); + } +} + +static uint64_t ZL_partitionDecode1( + uint8_t bucket, + ZS_BitDStreamFF* bitstream, + uint64_t const* partitions, + uint8_t const* bits) +{ + uint64_t const offset = ZL_partitionReadBits(bitstream, bits[bucket]); + return partitions[bucket] + offset; +} + +/// Write a decoded value to the output buffer at the given index. +static void +ZL_writeValue(void* dst, size_t index, uint64_t value, size_t eltWidth) +{ + switch (eltWidth) { + case 1: + ((uint8_t*)dst)[index] = (uint8_t)value; + break; + case 2: + ((uint16_t*)dst)[index] = (uint16_t)value; + break; + case 4: + ((uint32_t*)dst)[index] = (uint32_t)value; + break; + case 8: + ((uint64_t*)dst)[index] = value; + break; + } +} + +ZL_Report ZL_partitionDecode( + void* dst, + size_t eltWidth, + uint8_t const* buckets, + size_t nbValues, + uint8_t const* offsets, + size_t offsetsSize, + ZL_PartitionParams const* params) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ASSERT(ZL_PartitionParams_validate(params)); + + uint64_t bases[ZL_PARTITION_MAX_PARTITIONS]; + uint8_t bits[ZL_PARTITION_MAX_PARTITIONS]; + ZL_PartitionParams_computeBasesU64(params, bases); + ZL_PartitionParams_computeBits(params, bits); + + ZS_BitDStreamFF bitstream = ZS_BitDStreamFF_init(offsets, offsetsSize); + + for (size_t i = 0; i < nbValues; ++i) { + uint64_t const val = + ZL_partitionDecode1(buckets[i], &bitstream, bases, bits); + ZL_writeValue(dst, i, val, eltWidth); + ZS_BitDStreamFF_reload(&bitstream); + } + + ZL_Report const ret = ZS_BitDStreamFF_finish(&bitstream); + ZL_ERR_IF(ZL_isError(ret), srcSize_tooSmall); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/partition/decode_partition_kernel.h b/src/openzl/codecs/partition/decode_partition_kernel.h new file mode 100644 index 000000000..7734b7d99 --- /dev/null +++ b/src/openzl/codecs/partition/decode_partition_kernel.h @@ -0,0 +1,38 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_PARTITION_DECODE_PARTITION_KERNEL_H +#define OPENZL_CODECS_PARTITION_DECODE_PARTITION_KERNEL_H + +#include "openzl/codecs/partition/common_partition.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_errors.h" + +ZL_BEGIN_C_DECLS + +/** + * Decodes partition-encoded data. + * + * For each bucket ID, reads the corresponding number of extra bits from + * the bitstream and reconstructs the original value as: + * value = partitions[bucket_id] + offset + * + * @param dst Output buffer for decoded values. + * @param eltWidth Element width in bytes (1, 2, 4, or 8). + * @param buckets Input bucket IDs (one per value). + * @param nbValues Number of values to decode. + * @param bits Input bitstream containing the extra bits. + * @param bitsSize Size of the bitstream in bytes. + * @param params Partition parameters. + * @returns Success or an error code. + */ +ZL_Report ZL_partitionDecode( + void* dst, + size_t eltWidth, + uint8_t const* buckets, + size_t nbValues, + uint8_t const* bits, + size_t bitsSize, + ZL_PartitionParams const* params); + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/partition/encode_partition_binding.c b/src/openzl/codecs/partition/encode_partition_binding.c new file mode 100644 index 000000000..978f38317 --- /dev/null +++ b/src/openzl/codecs/partition/encode_partition_binding.c @@ -0,0 +1,246 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#include "openzl/codecs/partition/encode_partition_binding.h" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/codecs/partition/common_partition.h" +#include "openzl/codecs/partition/encode_partition_kernel.h" +#include "openzl/codecs/zl_partition.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/numeric_operations.h" +#include "openzl/shared/varint.h" +#include "openzl/zl_ctransform.h" + +ZL_Report ZL_PartitionParams_fromLocalParams( + ZL_PartitionParams* params, + const ZL_LocalParams* localParams) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + for (size_t i = 0; i < localParams->intParams.nbIntParams; ++i) { + if (localParams->intParams.intParams[i].paramId + == ZL_PARTITION_PRESET_PID) { + const ZL_PartitionParamsPreset preset = + (ZL_PartitionParamsPreset)localParams->intParams + .intParams[i] + .paramValue; + const ZL_PartitionParams* presetParams = + ZL_PartitionParams_getPreset(preset); + if (presetParams != NULL) { + *params = *presetParams; + ZL_ASSERT(ZL_PartitionParams_validate(params)); + return ZL_returnValue(preset); + } + break; + } + } + + for (size_t i = 0; i < localParams->copyParams.nbCopyParams; ++i) { + if (localParams->copyParams.copyParams[i].paramId + == ZL_PARTITION_CUSTOM_PID) { + const ZL_CopyParam param = localParams->copyParams.copyParams[i]; + ZL_ERR_IF_NE( + param.paramSize % sizeof(uint64_t), + 0, + nodeParameter_invalid); + ZL_ERR_IF_LT( + param.paramSize, + 2 * sizeof(uint64_t), + nodeParameter_invalid); + const uint64_t* partitionsPtr = (const uint64_t*)param.paramPtr; + params->startValue = *partitionsPtr; + params->partitionSizes = partitionsPtr + 1; + params->numPartitions = param.paramSize / sizeof(uint64_t) - 1; + ZL_ERR_IF_NOT( + ZL_PartitionParams_validate(params), nodeParameter_invalid); + return ZL_returnValue(ZL_PartitionParamsPreset_custom); + } + } + ZL_ERR(nodeParameter_invalid, "Neither preset nor custom partition found"); +} + +/// Write partition parameters into the codec header. +static ZL_Report ZL_PartitionParams_sendHeader( + const ZL_PartitionParams* params, + const uint8_t* bits, + ZL_PartitionParamsPreset preset, + size_t eltWidth, + ZL_Encoder* encoder) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(encoder); + uint8_t flags = (uint8_t)ZL_nextPow2(eltWidth); + if (preset != ZL_PartitionParamsPreset_custom) { + ZL_STATIC_ASSERT( + ZL_PartitionParamsPreset_custom <= 32, "must fit in 5 bits"); + flags |= ZL_PARTITION_HEADER_IS_PRESET_BIT; + flags |= (uint8_t)(preset << 3); + ZL_Encoder_sendCodecHeader(encoder, &flags, 1); + return ZL_returnSuccess(); + } + + if (params->startValue == 0) { + flags |= ZL_PARTITION_HEADER_IS_FIRST_VALUE_ZERO_BIT; + } + + // TODO: Consider a RLE-like scheme. E.g. if the value shows up twice in a + // row, the next value is a repeat count rather than a new value. + if (ZL_PartitionParams_areAllSizesPow2(params)) { + flags |= ZL_PARTITION_HEADER_IS_POW2_BIT; + + size_t numBits = (size_t)ZL_nextPow2( + NUMOP_findMaxU8(bits, params->numPartitions) + 1); + numBits = ZL_MAX(numBits, 3); + ZL_ASSERT_LE(numBits, 6, "Impossible for valid params"); + + flags |= (uint8_t)((numBits - 3) << 6); + + const size_t headerSizeBound = 1 + ZL_VARINT_LENGTH_64 + + (numBits * params->numPartitions + 1 + 7) / 8; + uint8_t* header = ZL_Encoder_getScratchSpace(encoder, headerSizeBound); + ZL_ERR_IF_NULL(header, allocation); + size_t size = 0; + header[size++] = flags; + if (params->startValue != 0) { + size += ZL_varintEncode(params->startValue, header + size); + } + ZS_BitCStreamFF bitstream = + ZS_BitCStreamFF_init(header + size, headerSizeBound - size); + + for (size_t i = 0; i < params->numPartitions; ++i) { + ZS_BitCStreamFF_write(&bitstream, bits[i], numBits); + ZS_BitCStreamFF_flush(&bitstream); + } + ZS_BitCStreamFF_write(&bitstream, 1, 1); + ZL_TRY_LET(size_t, bitSize, ZS_BitCStreamFF_finish(&bitstream)); + size += bitSize; + + ZL_Encoder_sendCodecHeader(encoder, header, size); + return ZL_returnSuccess(); + } else { + const size_t headerSizeBound = + 1 + ZL_VARINT_LENGTH_64 * (params->numPartitions + 1); + uint8_t* header = ZL_Encoder_getScratchSpace(encoder, headerSizeBound); + ZL_ERR_IF_NULL(header, allocation); + size_t size = 0; + header[size++] = flags; + if (params->startValue != 0) { + size += ZL_varintEncode(params->startValue, header + size); + } + for (size_t i = 0; i < params->numPartitions; ++i) { + size += ZL_varintEncode(params->partitionSizes[i], header + size); + } + ZL_Encoder_sendCodecHeader(encoder, header, size); + return ZL_returnSuccess(); + } +} + +static void* scratchAlloc(void* opaque, size_t size) +{ + return ZL_Encoder_getScratchSpace((ZL_Encoder*)opaque, size); +} + +static ZL_PartitionScratchAlloc makeScratchAlloc(ZL_Encoder* eictx) +{ + return (ZL_PartitionScratchAlloc){ .opaque = eictx, .alloc = scratchAlloc }; +} + +ZL_Report EI_partitionWithParams( + ZL_Encoder* eictx, + const ZL_Input* ins[], + size_t nbIns, + const ZL_PartitionParams* params, + ZL_PartitionParamsPreset preset) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + size_t const eltWidth = ZL_Input_eltWidth(in); + size_t const numElts = ZL_Input_numElts(in); + + uint8_t* bits = ZL_Encoder_getScratchSpace(eictx, params->numPartitions); + ZL_ERR_IF_NULL(bits, allocation); + ZL_PartitionParams_computeBits(params, bits); + const size_t maxNumBits = NUMOP_findMaxU8(bits, params->numPartitions); + + ZL_Output* bucketOut = ZL_Encoder_createTypedStream(eictx, 0, numElts, 1); + ZL_ERR_IF_NULL(bucketOut, allocation); + + size_t const bitsCapacity = (maxNumBits * numElts + 7) / 8; + ZL_Output* bitsOut = + ZL_Encoder_createTypedStream(eictx, 1, bitsCapacity, 1); + ZL_ERR_IF_NULL(bitsOut, allocation); + + ZL_TRY_LET( + size_t, + bitsSize, + ZL_partitionEncode( + (uint8_t*)ZL_Output_ptr(bitsOut), + bitsCapacity, + (uint8_t*)ZL_Output_ptr(bucketOut), + ZL_Input_ptr(in), + numElts, + eltWidth, + params, + makeScratchAlloc(eictx))); + ZL_ASSERT_LE(bitsSize, bitsCapacity); + + ZL_ERR_IF_ERR(ZL_PartitionParams_sendHeader( + params, bits, preset, eltWidth, eictx)); + ZL_ERR_IF_ERR(ZL_Output_commit(bucketOut, numElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(bitsOut, bitsSize)); + + return ZL_returnSuccess(); +} + +ZL_Report EI_partition(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_PartitionParams params; + ZL_TRY_LET( + size_t, + preset, + ZL_PartitionParams_fromLocalParams( + ¶ms, ZL_Encoder_getLocalParams(eictx))); + return EI_partitionWithParams( + eictx, ins, nbIns, ¶ms, (ZL_PartitionParamsPreset)preset); +} + +ZL_RESULT_OF(ZL_NodeID) +ZL_Compressor_buildPartitionNodeFromPreset( + ZL_Compressor* compressor, + ZL_PartitionParamsPreset preset) +{ + ZL_IntParam param = { ZL_PARTITION_PRESET_PID, (int)preset }; + ZL_LocalParams lp = { .intParams = { ¶m, 1 } }; + ZL_NodeParameters params = { .localParams = &lp }; + return ZL_Compressor_parameterizeNode( + compressor, ZL_NODE_PARTITION, ¶ms); +} + +ZL_RESULT_OF(ZL_NodeID) +ZL_Compressor_buildPartitionNode( + ZL_Compressor* compressor, + uint64_t startValue, + const uint64_t* partitionSizes, + size_t numPartitions) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_NodeID, compressor); + + ZL_ERR_IF_GT( + numPartitions, + ZL_PARTITION_MAX_PARTITIONS, + nodeParameter_invalid, + "Partition codec only supports up to 256 partitions"); + + uint64_t array[ZL_PARTITION_MAX_PARTITIONS + 1]; + array[0] = startValue; + memcpy(&array[1], partitionSizes, sizeof(uint64_t) * numPartitions); + ZL_CopyParam param = { ZL_PARTITION_CUSTOM_PID, + array, + sizeof(uint64_t) * (numPartitions + 1) }; + ZL_LocalParams lp = { .copyParams = { ¶m, 1 } }; + ZL_NodeParameters params = { .localParams = &lp }; + return ZL_Compressor_parameterizeNode( + compressor, ZL_NODE_PARTITION, ¶ms); +} diff --git a/src/openzl/codecs/partition/encode_partition_binding.h b/src/openzl/codecs/partition/encode_partition_binding.h new file mode 100644 index 000000000..96751e057 --- /dev/null +++ b/src/openzl/codecs/partition/encode_partition_binding.h @@ -0,0 +1,40 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_PARTITION_ENCODE_PARTITION_BINDING_H +#define OPENZL_CODECS_PARTITION_ENCODE_PARTITION_BINDING_H + +#include "openzl/codecs/partition/common_partition.h" +#include "openzl/codecs/partition/graph_partition.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" + +ZL_BEGIN_C_DECLS + +/// Encoder binding for the partition transform. +/// Reads partition parameters from local params, then encodes. +ZL_Report EI_partition(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +/// Encoder binding with explicit partition parameters and preset ID. +ZL_Report EI_partitionWithParams( + ZL_Encoder* eictx, + const ZL_Input* ins[], + size_t nbIns, + const ZL_PartitionParams* params, + ZL_PartitionParamsPreset preset); + +/// Parse partition parameters from a node's local params. +/// @returns The preset ID, or ZL_PartitionParamsPreset_custom for custom +/// params. +ZL_Report ZL_PartitionParams_fromLocalParams( + ZL_PartitionParams* params, + const ZL_LocalParams* localParams); + +/// Macro to register the partition encoder transform. +#define EI_PARTITION(id) \ + { .gd = PARTITION_GRAPH(id), \ + .transform_f = EI_partition, \ + .name = "!zl.partition" } + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/partition/encode_partition_bitpack.c b/src/openzl/codecs/partition/encode_partition_bitpack.c new file mode 100644 index 000000000..f590bed4d --- /dev/null +++ b/src/openzl/codecs/partition/encode_partition_bitpack.c @@ -0,0 +1,860 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/partition/encode_partition_bitpack.h" + +#include + +#include "openzl/zl_graph_api.h" + +#include "openzl/codecs/zl_bitpack.h" +#include "openzl/codecs/zl_partition.h" +#include "openzl/codecs/zl_store.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/bits.h" +#include "openzl/shared/utils.h" +#include "openzl/zl_localParams.h" + +// --------------------------------------------------------------------------- +// Constants +// --------------------------------------------------------------------------- + +/// Instead of operating in a 64K histogram, operate on a 64K >> +/// PB_PRECISION_LOSS histogram. This is imporant for two reasons: +/// 1. It significantly speeds up the optimization algorithms. +/// 2. The partition encoding kernel's LUT size reduces by this factor. +#define PB_PRECISION_LOSS 4 +/// Limiting the maximum partition size speeds up encoding & decoding +/// significantly because they can guarantee that they can decode 4 values when +/// reading 64-bits from the bitstream (accounting for the up to 7 bits that +/// have already been consumed from the previous iteration): 14 * 4 + 7 = 63. +#define PB_MAX_BUCKET_SIZE (1u << 14) +/// Add a small fixed cost per partition +#define PB_OVERHEAD_BITS 24 +/// The maximum possible number of partitions +#define PB_MAX_PARTITIONS 256 +/// Don't partition if the gain is less than this and just fallback to store +#define PB_MIN_GAIN_PCT 1 + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +static uint32_t PB_idx2bucket(uint32_t idx) +{ + return idx >> PB_PRECISION_LOSS; +} + +static uint32_t PB_bucket2idx(uint32_t bucket) +{ + return bucket << PB_PRECISION_LOSS; +} + +static size_t PB_bucketSize(uint32_t b, uint32_t e) +{ + return (e - b) << PB_PRECISION_LOSS; +} + +typedef struct { + /// Size: histSize + 1 + /// Last value is the total count from [0, histSize) + const uint32_t* cumHist; + uint32_t histSize; +} PB_CumHist; + +// --------------------------------------------------------------------------- +// Cost function +// --------------------------------------------------------------------------- + +/// Compute total bit cost for a set of partitions over a cumulative histogram. +/// It consists of the cost of the fixed bitpacked partition IDs, which take +/// ceil(log2(numPartitions)), plus the cost of the variable partition offsets, +/// each of which takes ceil(log2(partitionSizes[i])) for a value that falls +/// into partition i. +/// +/// @param cumHist Cumulative histogram, size = histSize + 1 +/// @param histSize Number of entries in cumHist - 1 +/// @param partitions Array of partition start indices +/// @param numPartitions Number of partitions +/// @param totalPartitions Total partition count for bucket bits calculation +static uint32_t PB_fixedBucketCost( + const uint32_t* cumHist, + uint32_t histSize, + const uint32_t* partitions, + size_t numPartitions, + size_t totalPartitions) +{ + const uint32_t totalCount = cumHist[histSize]; + const uint32_t bucketBits = (uint32_t)ZL_nextPow2(totalPartitions); + uint32_t cost = totalCount * bucketBits; + for (size_t i = 0; i < numPartitions; ++i) { + const uint32_t b = partitions[i]; + const uint32_t e = + (i + 1 == numPartitions) ? histSize : partitions[i + 1]; + ZL_ASSERT_LT(b, e); + ZL_ASSERT_LE(e - b, PB_idx2bucket(PB_MAX_BUCKET_SIZE)); + const uint32_t count = cumHist[e] - cumHist[b]; + const uint32_t offBits = (uint32_t)ZL_nextPow2(PB_bucketSize(b, e)); + cost += PB_OVERHEAD_BITS + count * offBits; + } + return cost; +} + +// --------------------------------------------------------------------------- +// DP Partition (ported from utils/Partition.hpp 3rd overload) +// --------------------------------------------------------------------------- + +/// Cost function context for the DP partition algorithm. +typedef struct { + const uint32_t* cumHist; + uint32_t histSize; + size_t numPartitions; // total target partitions, for bucketBits calc + uint32_t fixedCost; // fixed cost for bucket bits +} PB_DPCostCtx; + +/// Cost of a single bucket spanning [b, e) in the cumulative histogram. +static uint32_t PB_dpBucketCost(const PB_DPCostCtx* ctx, uint32_t b, uint32_t e) +{ + ZL_ASSERT_LT(b, e); + ZL_ASSERT_LE(e, ctx->histSize); + ZL_ASSERT_LE(e - b, PB_idx2bucket(PB_MAX_BUCKET_SIZE)); + const uint32_t count = ctx->cumHist[e] - ctx->cumHist[b]; + const size_t bucketSize = PB_bucketSize(b, e); + return count * (ctx->fixedCost + (unsigned)ZL_nextPow2(bucketSize)); +} + +/// Compute the optimal partitions using dyanmic programming. Limits all but the +/// last partition sizes to be powers of two to reduce the runtime from N^2 * B +/// to N*log2(N) * B. This approximation has very little impact on the +/// optimallity, because optimal partitions on "well structured" inputs where +/// P[i+1] >= P[i] respect this condition. +/// +/// @param numBuckets Maximum number of buckets +/// @param ctx Cost function context +/// @param outPartitions Output array (must hold numBuckets entries) +/// @param graph Graph context for scratch space allocation +/// @returns Actual number of partitions found +static size_t PB_dpPartition( + size_t numBuckets, + const PB_DPCostCtx* ctx, + uint32_t* outPartitions, + ZL_Graph* graph) +{ + const uint32_t N = ctx->histSize; + const uint32_t B = ZL_MIN((uint32_t)numBuckets, N); + const uint32_t B1 = B + 1; + const uint32_t N1 = N + 1; + + const uint32_t maxBucketSize = PB_idx2bucket(PB_MAX_BUCKET_SIZE); + + // Allocate DP tables from graph scratch space (arena, no free needed) + const size_t tableBytes = (size_t)N1 * B1 * sizeof(uint32_t); + uint32_t* opt = (uint32_t*)ZL_Graph_getScratchSpace(graph, tableBytes); + uint32_t* begin = (uint32_t*)ZL_Graph_getScratchSpace(graph, tableBytes); + if (!opt || !begin) { + return 0; + } + + // Initialize + memset(opt, -1, tableBytes); + memset(begin, -1, tableBytes); + + opt[N1 * 0 + 0] = 0; + begin[N1 * 0 + 0] = 0; + + for (uint32_t e = 1; e < N1; ++e) { + const size_t maxPossibleBuckets = ZL_MIN(e, B); + for (uint32_t k = 1; k <= maxPossibleBuckets; ++k) { + const uint32_t maxSz = ZL_MIN(maxBucketSize, e - (k - 1)); + for (uint32_t size = 1; size <= maxSz; + size = (e == N) ? size + 1 : size * 2) { + const uint32_t b = e - size; + const uint32_t prevCost = opt[N1 * (k - 1) + b]; + if (prevCost == UINT32_MAX) { + continue; + } + const uint32_t oldCost = opt[N1 * k + e]; + const uint32_t endCost = PB_dpBucketCost(ctx, b, e); + const uint32_t newCost = prevCost + endCost; + if (newCost < oldCost) { + opt[N1 * k + e] = newCost; + begin[N1 * k + e] = b; + } + } + } + } + + // Backtrack + for (size_t e = N, pos = B; e > 0;) { + uint32_t b = begin[N1 * pos-- + e]; + if (b == UINT32_MAX) { + return 0; + } + outPartitions[pos] = b; + e = b; + } + + return B; +} + +// --------------------------------------------------------------------------- +// Greedy Optimizer +// --------------------------------------------------------------------------- + +typedef struct { + const uint32_t* cumHist; + uint32_t histSize; + /// number of prefix partitions + size_t prefixSize; + uint32_t* partitions; // working array + size_t numPartitions; + size_t targetPartitions; + // Scratch buffer for grow/shrink + uint32_t* scratch; +} PB_GreedyOpt; + +/// @returns The cost of a single partition [b, e) excluding the global +/// bucketBits term (which is independent of the partition sizes). +static uint32_t +PB_singlePartitionCost(const uint32_t* cumHist, uint32_t b, uint32_t e) +{ + const uint32_t count = cumHist[e] - cumHist[b]; + const uint32_t offBits = (uint32_t)ZL_nextPow2(PB_bucketSize(b, e)); + return PB_OVERHEAD_BITS + count * offBits; +} + +/// @returns the end of partition @p i. +static uint32_t PB_partitionEnd( + const uint32_t* partitions, + size_t numPartitions, + uint32_t histSize, + size_t i) +{ + return (i + 1 == numPartitions) ? histSize : partitions[i + 1]; +} + +/// @returns true iff the partition from [begin, end) is legal +static bool PB_isLegalPartition(uint32_t begin, uint32_t end) +{ + return begin < end && (end - begin) <= PB_idx2bucket(PB_MAX_BUCKET_SIZE); +} + +/// Grows partition @p idx by doubling its size, and rounding all following +/// partition sizes up to powers of two in @p out until a partition size is +/// unchanged. +/// @returns cascadeEnd: the first index NOT modified. +static size_t PB_growPartitions( + const uint32_t* partitions, + size_t idx, + uint32_t* out, + size_t n) +{ + if (idx + 1 == n) { + return idx; + } + uint32_t begin = partitions[idx]; + uint32_t end = partitions[idx + 1]; + uint32_t sz = end - begin; + uint32_t newSize = 1u << ((unsigned)ZL_nextPow2(sz) + 1); + out[idx + 1] = begin + newSize; + + for (size_t j = idx + 1; j + 1 < n; ++j) { + begin = out[j]; + end = partitions[j + 1]; + sz = end > begin ? end - begin : 1; + uint32_t alt = 1u << (unsigned)ZL_nextPow2(sz); + uint32_t newEnd = begin + ZL_MAX(newSize, alt); + if (newEnd == end) { + return j + 1; + } + out[j + 1] = newEnd; + } + return n; +} + +/// Shrinks partition @p idx by halving its size, and rounding all following +/// partition sizes up to powers of two in @p out until a partition size is +/// unchanged. +/// @returns cascadeEnd: the first index NOT modified. +static size_t PB_shrinkPartitions( + const uint32_t* partitions, + size_t idx, + uint32_t* out, + size_t n) +{ + if (idx + 1 == n) { + return idx; + } + uint32_t begin = partitions[idx]; + uint32_t end = partitions[idx + 1]; + uint32_t sz = end - begin; + if (sz <= 1) { + return idx; + } + uint32_t newSize = 1u << ((unsigned)ZL_nextPow2(sz) - 1); + out[idx + 1] = begin + newSize; + + for (size_t j = idx + 1; j + 1 < n; ++j) { + begin = out[j]; + end = partitions[j + 1]; + sz = end - begin; + if (!ZL_isPow2(sz)) { + uint32_t newEnd = begin + (1u << ((unsigned)ZL_nextPow2(sz) - 1)); + if (newEnd == end) { + return j + 1; + } + out[j + 1] = newEnd; + } else { + return j + 1; + } + } + return n; +} + +/// Compute cost of modified partitions [from, to), where out contains the +/// modified boundaries and partitions has the original values (used for the +/// end of partition to-1 if to < n, and partition from's begin is unchanged). +static uint32_t PB_modifiedRangeCost( + const uint32_t* cumHist, + const uint32_t* partitions, + const uint32_t* out, + size_t n, + uint32_t histSize, + size_t from, + size_t to) +{ + uint32_t cost = 0; + for (size_t i = from; i < to; ++i) { + const uint32_t b = (i == from) ? partitions[i] : out[i]; + uint32_t e; + if (i + 1 == n) { + e = histSize; + } else if (i + 1 < to) { + e = out[i + 1]; + } else { + e = partitions[i + 1]; + } + if (e > histSize || !PB_isLegalPartition(b, e)) { + return UINT32_MAX; + } + cost += PB_singlePartitionCost(cumHist, b, e); + } + return cost; +} + +/// Try applying a cascaded mutation from scratch and accept if it reduces cost. +/// Returns true if the mutation was accepted. +static bool PB_tryMutation( + PB_GreedyOpt* opt, + uint32_t* partCost, + uint32_t* currentCost, + size_t n, + size_t idx, + size_t cascadeEnd) +{ + uint32_t newRangeCost = PB_modifiedRangeCost( + opt->cumHist, + opt->partitions, + opt->scratch, + n, + opt->histSize, + idx, + cascadeEnd); + if (newRangeCost == UINT32_MAX) { + return false; + } + uint32_t oldRangeCost = 0; + for (size_t j = idx; j < cascadeEnd; ++j) { + oldRangeCost += partCost[j]; + } + if (newRangeCost >= oldRangeCost) { + return false; + } + for (size_t j = idx + 1; j < cascadeEnd && j < n; ++j) { + opt->partitions[j] = opt->scratch[j]; + } + *currentCost = *currentCost - oldRangeCost + newRangeCost; + for (size_t j = idx; j < cascadeEnd; ++j) { + const uint32_t b = opt->partitions[j]; + const uint32_t e = + PB_partitionEnd(opt->partitions, n, opt->histSize, j); + partCost[j] = PB_singlePartitionCost(opt->cumHist, b, e); + } + return true; +} + +/** + * Try to improve each partition boundry by either growing each partition to the + * next power of two, or shrinking to the previous power of two. Repeat until a + * local-minima is reached. + * + * See the "Iterative Improvement" section of + * https://en.wikipedia.org/wiki/V-optimal_histograms + */ +static void PB_iterativeImprovement(PB_GreedyOpt* opt) +{ + const size_t n = opt->numPartitions; + if (n < 2) { + return; + } + + uint32_t partCost[PB_MAX_PARTITIONS]; + uint32_t sumCost = 0; + for (size_t i = 0; i < n; ++i) { + const uint32_t b = opt->partitions[i]; + const uint32_t e = + PB_partitionEnd(opt->partitions, n, opt->histSize, i); + partCost[i] = PB_singlePartitionCost(opt->cumHist, b, e); + sumCost += partCost[i]; + } + + const uint32_t totalCount = opt->cumHist[opt->histSize]; + const uint32_t bucketBits = (uint32_t)ZL_nextPow2(opt->targetPartitions); + const uint32_t baseCost = totalCount * bucketBits; + uint32_t currentCost = baseCost + sumCost; + + for (;;) { + const uint32_t startCost = currentCost; + for (size_t idx = 0; idx + 1 < n; ++idx) { + size_t cascadeEnd = + PB_growPartitions(opt->partitions, idx, opt->scratch, n); + if (PB_tryMutation( + opt, partCost, ¤tCost, n, idx, cascadeEnd)) { + continue; + } + cascadeEnd = + PB_shrinkPartitions(opt->partitions, idx, opt->scratch, n); + PB_tryMutation(opt, partCost, ¤tCost, n, idx, cascadeEnd); + } + if (currentCost == startCost) { + break; + } + } +} + +/** + * Divides the @p i'th partition in two. The first sub-partition is the largest + * power of two less than the current size, and the second is the remainder. + */ +static void +PB_dividePartitionAt(const PB_GreedyOpt* opt, uint32_t* out, size_t i) +{ + const uint32_t begin = opt->partitions[i]; + const uint32_t end = PB_partitionEnd( + opt->partitions, opt->numPartitions, opt->histSize, i); + const uint32_t sz = end - begin; + const uint32_t newSize = 1u << ((unsigned)ZL_nextPow2(sz) - 1); + + // Insert new partition at i+1 + if (out != opt->partitions) { + memcpy(out, opt->partitions, opt->numPartitions * sizeof(uint32_t)); + } + for (size_t j = opt->numPartitions; j > i + 1; --j) { + out[j] = out[j - 1]; + } + out[i + 1] = begin + newSize; +} + +/// @returns the gain from splitting partition [begin, end) into two where the +/// first partition is the largest power of two smaller than the current size. +static int32_t +PB_splitGain(const uint32_t* cumHist, uint32_t begin, uint32_t end) +{ + assert(end - begin > 1); + assert(PB_isLegalPartition(begin, end)); + const uint32_t oldCost = PB_singlePartitionCost(cumHist, begin, end); + const uint32_t sz = end - begin; + const uint32_t newSize = 1u << ((unsigned)ZL_nextPow2(sz) - 1); + const uint32_t mid = begin + newSize; + const uint32_t leftCost = PB_singlePartitionCost(cumHist, begin, mid); + const uint32_t rightCost = PB_singlePartitionCost(cumHist, mid, end); + return (int32_t)oldCost - (int32_t)(leftCost + rightCost); +} + +/** + * Greedily divide the partition that is either illegal or provides the biggest + * gain from division until we hit @p targetPartitions. + * Run in O(targetPartitions^2) time. + */ +static void PB_dividePartitions(PB_GreedyOpt* opt, size_t targetPartitions) +{ + // Cache split gains to avoid O(N^2) rescanning. + // gains[i] = gain from splitting partition i; INT32_MIN = unsplittable. + int32_t gains[PB_MAX_PARTITIONS]; + { + const size_t n = opt->numPartitions; + const size_t start = opt->prefixSize > 0 ? opt->prefixSize - 1 : 0; + for (size_t i = 0; i < start; ++i) { + gains[i] = INT32_MIN; + } + for (size_t i = start; i < n; ++i) { + const uint32_t b = opt->partitions[i]; + const uint32_t e = + PB_partitionEnd(opt->partitions, n, opt->histSize, i); + gains[i] = (e - b <= 1) ? INT32_MIN + : !PB_isLegalPartition(b, e) + ? INT32_MAX + : PB_splitGain(opt->cumHist, b, e); + } + } + + while (opt->numPartitions < targetPartitions) { + const size_t n = opt->numPartitions; + int32_t bestGain = INT32_MIN; + size_t bestIdx = (size_t)-1; + for (size_t i = 0; i < n; ++i) { + if (gains[i] == INT32_MAX) { + // Illegal partition - must split immediately + bestIdx = i; + break; + } + if (gains[i] > bestGain) { + bestGain = gains[i]; + bestIdx = i; + } + } + if (bestIdx == (size_t)-1) { + break; + } + + PB_dividePartitionAt(opt, opt->partitions, bestIdx); + ++opt->numPartitions; + + // Shift gains right for indices after bestIdx + for (size_t j = opt->numPartitions - 1; j > bestIdx + 1; --j) { + gains[j] = gains[j - 1]; + } + + // Recompute gains for the two new partitions at bestIdx and bestIdx+1 + for (size_t j = bestIdx; j <= bestIdx + 1 && j < opt->numPartitions; + ++j) { + const uint32_t b = opt->partitions[j]; + const uint32_t e = PB_partitionEnd( + opt->partitions, opt->numPartitions, opt->histSize, j); + gains[j] = (e - b <= 1) ? INT32_MIN + : !PB_isLegalPartition(b, e) + ? INT32_MAX + : PB_splitGain(opt->cumHist, b, e); + } + } +} + +/// Run the greedy optimizer. +/// @param cumHist Cumulative histogram +/// @param cumHistSize Size of cumHist +/// @param prefixPartitions Prefix partitions from DP (may be empty) +/// @param prefixSize Number of prefix partitions +/// @param targetPartitions Target number of partitions +/// @param outPartitions Output array (must hold targetPartitions entries) +/// @returns Actual number of partitions +static size_t PB_greedyOptimize( + PB_CumHist cumHist, + const uint32_t* prefixPartitions, + size_t prefixSize, + size_t targetPartitions, + uint32_t* outPartitions) +{ + // Stack-allocated scratch (targetPartitions <= PB_MAX_PARTITIONS = 256) + uint32_t scratch[PB_MAX_PARTITIONS + 1]; + + PB_GreedyOpt opt; + opt.cumHist = cumHist.cumHist; + opt.histSize = cumHist.histSize; + opt.targetPartitions = targetPartitions; + opt.partitions = outPartitions; + opt.scratch = scratch; + + // Initialize from prefix + if (prefixSize == 0) { + outPartitions[0] = 0; + opt.numPartitions = 1; + opt.prefixSize = 1; + } else { + memcpy(outPartitions, prefixPartitions, prefixSize * sizeof(uint32_t)); + opt.numPartitions = prefixSize; + opt.prefixSize = prefixSize; + } + + // Greedily divide the current partitions until we have targetPartitions or + // can't divide further. + PB_dividePartitions(&opt, targetPartitions); + + // If there are at least 10K elements in the histogram, run the iterative + // improvement pass. Otherwise, it is too expensive. + if (cumHist.cumHist[cumHist.histSize] >= 10000) { + // Iteratively improve the partition boundries one at a time until we + // reach a local minima. + PB_iterativeImprovement(&opt); + } + + return opt.numPartitions; +} + +// --------------------------------------------------------------------------- +// fixedPartitionFast (inner, over cumulative histogram) +// --------------------------------------------------------------------------- + +/// Compute good partitions for a cumulative histogram, attempting to minimize +/// the encoded size of the partition+bitpack graph. +/// +/// @param cumHist Cumulative histogram, cumHistSize entries +/// @param cumHistSize Number of entries in cumHist +/// @param numPartitions Target number of partitions +/// @param outPartitions Output array (must hold numPartitions entries) +/// @param graph Graph context for scratch space allocation +/// @returns Actual number of partitions +static size_t PB_fixedPartitionFastInner( + PB_CumHist cumHist, + size_t numPartitions, + uint32_t* outPartitions, + bool optimal, + ZL_Graph* graph) +{ + if (!optimal) { + return PB_greedyOptimize( + cumHist, NULL, 0, numPartitions, outPartitions); + } + + PB_DPCostCtx ctx; + ctx.cumHist = cumHist.cumHist; + ctx.histSize = cumHist.histSize; + ctx.numPartitions = numPartitions; + ctx.fixedCost = (unsigned)ZL_nextPow2(numPartitions); + return PB_dpPartition(numPartitions, &ctx, outPartitions, graph); +} + +// --------------------------------------------------------------------------- +// fixedPartitionFast (outer, over raw uint16_t data) +// --------------------------------------------------------------------------- + +typedef struct { + uint32_t* partitions; + size_t numPartitions; + size_t bitCost; + uint32_t maxSymbolValue; +} PB_PartitionResult; + +static bool PB_buildCumHist( + PB_CumHist* out, + const uint16_t* data, + size_t numElts, + bool optimal, + ZL_Graph* graph) +{ + uint32_t histSize = 1u << (16 - PB_PRECISION_LOSS); + uint32_t* const hist = (uint32_t*)ZL_Graph_getScratchSpace( + graph, (histSize + 1) * sizeof(uint32_t)); + if (hist == NULL) { + return false; + } + + const uint32_t skip = optimal ? 1 : 3; + + memset(hist, 0, histSize * sizeof(uint32_t)); + for (size_t i = 0; i < numElts; i += skip) { + ++hist[PB_idx2bucket(data[i])]; + } + + if (skip > 1) { + // Since we are skipping data, we don't know the min/max value + // So we need to add dummy entries at the beginning and end + hist[0] += (hist[0] == 0); + hist[histSize - 1] += (hist[histSize - 1] == 0); + } + + while (histSize > 0 && hist[histSize - 1] == 0) { + --histSize; + } + + // Build cumulative histogram + uint32_t sum = 0; + for (size_t i = 0; i < histSize; ++i) { + // Need to multiply by skip so that our estimated cost at the end is + // accurate. + const uint32_t count = hist[i] * skip; + hist[i] = sum; + sum += count; + } + hist[histSize] = sum; + + out->cumHist = hist; + out->histSize = histSize; + + return true; +} + +/// Compute optimal partition boundaries for 16-bit data. +/// All allocations use stack or graph scratch space (no malloc/free). +static PB_PartitionResult PB_fixedPartition( + const uint16_t* data, + size_t numElts, + bool optimal, + ZL_Graph* graph) +{ + PB_PartitionResult result = { NULL, 0, 0, 0 }; + + PB_CumHist cumHist; + if (!PB_buildCumHist(&cumHist, data, numElts, optimal, graph)) { + return result; + } + + // Try 16 and 32 partitions, keep best + uint32_t bestBuf[PB_MAX_PARTITIONS]; + size_t bestSize = 0; + uint32_t bestCost = UINT32_MAX; + + uint32_t trialBuf[PB_MAX_PARTITIONS]; + const size_t trialCounts[] = { 16, 32 }; + for (size_t t = 0; t < 2; ++t) { + size_t numP = trialCounts[t]; + size_t actual = PB_fixedPartitionFastInner( + cumHist, numP, trialBuf, optimal, graph); + if (actual == 0) { + continue; + } + uint32_t cost = PB_fixedBucketCost( + cumHist.cumHist, cumHist.histSize, trialBuf, actual, actual); + // Give a small bias towards fewer partitions because it is faster to + // decode with 16 partitions than 32 partitions. + if (cost + (cost / 64) < bestCost) { + bestCost = cost; + bestSize = actual; + memcpy(bestBuf, trialBuf, actual * sizeof(uint32_t)); + } else { + break; + } + } + + if (bestSize == 0) { + return result; + } + + // Store partition boundaries in scratch space + result.partitions = (uint32_t*)ZL_Graph_getScratchSpace( + graph, bestSize * sizeof(uint32_t)); + if (!result.partitions) { + return result; + } + for (size_t i = 0; i < bestSize; ++i) { + result.partitions[i] = PB_bucket2idx(bestBuf[i]); + } + result.numPartitions = bestSize; + result.bitCost = bestCost; + result.maxSymbolValue = PB_bucket2idx(cumHist.histSize) - 1; + + return result; +} + +// --------------------------------------------------------------------------- +// Dynamic graph function +// --------------------------------------------------------------------------- + +ZL_Report +EI_partitionBitpackDynGraph(ZL_Graph* graph, ZL_Edge** inputs, size_t numInputs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + ZL_ASSERT_EQ(numInputs, 1); + ZL_ASSERT_NN(inputs); + ZL_ASSERT_NN(graph); + + ZL_Edge* inputEdge = inputs[0]; + const ZL_Input* input = ZL_Edge_getData(inputEdge); + const size_t numElts = ZL_Input_numElts(input); + + ZL_ERR_IF_NE( + ZL_Input_eltWidth(input), + 2, + node_invalid_input, + "Currently only 2-byte numeric values are accepted"); + + const ZL_IntParam optimalParam = ZL_Graph_getLocalIntParam( + graph, ZL_GRAPH_PARTITION_BITPACK_OPTIMAL_PID); + const bool optimal = + (optimalParam.paramId == ZL_GRAPH_PARTITION_BITPACK_OPTIMAL_PID + && optimalParam.paramValue == ZL_TernaryParam_enable); + + // Fallback to store for small inputs + if (numElts < 10) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputEdge, ZL_GRAPH_STORE)); + return ZL_returnSuccess(); + } + + // Compute the partitioning that attempts to minimize the size of the + // bitpacked partition indices + the offsets into the partitions. + PB_PartitionResult pr = PB_fixedPartition( + (const uint16_t*)ZL_Input_ptr(input), numElts, optimal, graph); + if (pr.partitions == NULL) { + // Allocation failure — fall back to store + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputEdge, ZL_GRAPH_STORE)); + return ZL_returnSuccess(); + } + + // Fallback to bitpack for single partition + if (pr.numPartitions == 1) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputEdge, ZL_GRAPH_BITPACK)); + return ZL_returnSuccess(); + } + + // Fallback to bitpack for all-size-1 partitions + { + bool allOne = true; + for (size_t i = 0; i < pr.numPartitions; ++i) { + const uint32_t begin = pr.partitions[i]; + const uint32_t end = (i + 1 == pr.numPartitions) + ? (pr.maxSymbolValue + 1) + : pr.partitions[i + 1]; + if (begin + 1 != end) { + allOne = false; + break; + } + } + if (allOne) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputEdge, ZL_GRAPH_BITPACK)); + return ZL_returnSuccess(); + } + } + + // Fallback to store if not enough gain + const size_t maxByteCost = + (sizeof(uint16_t) * (100 - PB_MIN_GAIN_PCT) * numElts) / 100; + if (pr.bitCost / 8 >= maxByteCost) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputEdge, ZL_GRAPH_STORE)); + return ZL_returnSuccess(); + } + + // Convert partition boundaries to ZL_PartitionParams format: + // startValue = partitions[0] + // sizes[i] = partitions[i+1] - partitions[i] + // sizes[last] = maxSymbolValue + 1 - partitions[last] + uint64_t partitionParams[PB_MAX_PARTITIONS + 1]; + partitionParams[0] = pr.partitions[0]; + for (size_t i = 0; i < pr.numPartitions; ++i) { + const uint64_t begin = pr.partitions[i]; + const uint64_t end = (i + 1 == pr.numPartitions) + ? (pr.maxSymbolValue + 1) + : pr.partitions[i + 1]; + partitionParams[i + 1] = end - begin; + } + const size_t numParts = pr.numPartitions; + + const ZL_CopyParam copyParam = { + ZL_PARTITION_CUSTOM_PID, + partitionParams, + sizeof(uint64_t) * (numParts + 1), + }; + const ZL_LocalParams lp = { .copyParams = { ©Param, 1 } }; + + // Run partition node with params + ZL_TRY_LET( + ZL_EdgeList, + outEdges, + ZL_Edge_runNode_withParams(inputEdge, ZL_NODE_PARTITION, &lp)); + ZL_ASSERT_EQ(outEdges.nbEdges, 2); + + // Output 0 (bucket IDs) -> Bitpack + ZL_ERR_IF_ERR(ZL_Edge_setDestination(outEdges.edges[0], ZL_GRAPH_BITPACK)); + // Output 1 (offsets) -> Store + ZL_ERR_IF_ERR(ZL_Edge_setDestination(outEdges.edges[1], ZL_GRAPH_STORE)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/partition/encode_partition_bitpack.h b/src/openzl/codecs/partition/encode_partition_bitpack.h new file mode 100644 index 000000000..2eae26126 --- /dev/null +++ b/src/openzl/codecs/partition/encode_partition_bitpack.h @@ -0,0 +1,30 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_PARTITION_ENCODE_PARTITION_BITPACK_H +#define OPENZL_CODECS_PARTITION_ENCODE_PARTITION_BITPACK_H + +#include "openzl/zl_graph_api.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/// Dynamic graph function for partition-bitpack. +/// +/// Computes optimal partition boundaries for 16-bit numeric data, +/// then routes bucket IDs to ZL_GRAPH_BITPACK and offsets to ZL_GRAPH_STORE +/// using the standard ZL_NODE_PARTITION. +/// +/// Input: 1 numeric stream of 16-bit unsigned integers +/// Falls back to Store for small inputs or insufficient compression gain. +/// Falls back to Bitpack for trivial partitions. +ZL_Report EI_partitionBitpackDynGraph( + ZL_Graph* graph, + ZL_Edge* inputs[], + size_t numInputs); + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/src/openzl/codecs/partition/encode_partition_kernel.c b/src/openzl/codecs/partition/encode_partition_kernel.c new file mode 100644 index 000000000..a69605ca0 --- /dev/null +++ b/src/openzl/codecs/partition/encode_partition_kernel.c @@ -0,0 +1,342 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/partition/encode_partition_kernel.h" + +#include "openzl/codecs/common/bitstream/ff_bitstream.h" +#include "openzl/shared/numeric_operations.h" +#include "openzl/shared/utils.h" +#include "openzl/zl_errors.h" + +/// Find the bucket for @p value using binary search. +/// Returns the index i such that partitions[i] <= value, and either +/// i+1 == numBuckets or value < partitions[i+1]. +/// Returns numBuckets if the value is out of range. +static size_t ZL_findBucket( + uint64_t value, + uint64_t const* partitions, + size_t numBuckets, + uint64_t maxValue) +{ + // Check that the value is within the partition range + if (value < partitions[0] || value > maxValue) { + return numBuckets; // out of range + } + size_t lo = 0; + size_t hi = numBuckets; + while (lo < hi) { + size_t const mid = lo + (hi - lo) / 2; + if (mid + 1 < numBuckets && partitions[mid + 1] <= value) { + lo = mid + 1; + } else { + hi = mid; + } + } + return lo; +} + +/// Read a value from a buffer at the given index with the given element width. +static uint64_t ZL_readValue(void const* src, size_t index, size_t eltWidth) +{ + switch (eltWidth) { + case 1: + return ((uint8_t const*)src)[index]; + case 2: + return ((uint16_t const*)src)[index]; + case 4: + return ((uint32_t const*)src)[index]; + case 8: + return ((uint64_t const*)src)[index]; + default: + return 0; + } +} + +/// The bitstream accumulator holds 63 bits, and after a flush up to 7 bits +/// may remain. A single write must satisfy: residual + nbBits <= 63, so the +/// maximum safe write after flush is 56 bits. +#define ZL_PARTITION_BITS_SPLIT 56 + +/// Write an offset value into the bitstream, splitting into two writes if the +/// number of bits exceeds ZL_PARTITION_BITS_SPLIT. +static void ZL_partitionWriteBits( + ZS_BitCStreamFF* bitstream, + uint64_t offset, + size_t nbBits) +{ + if (nbBits <= ZL_PARTITION_BITS_SPLIT) { + ZS_BitCStreamFF_write(bitstream, (size_t)offset, nbBits); + } else { + ZS_BitCStreamFF_write(bitstream, (size_t)offset, 32); + ZS_BitCStreamFF_flush(bitstream); + ZS_BitCStreamFF_write(bitstream, (size_t)(offset >> 32), nbBits - 32); + } +} + +/// Generic partition encoding using binary search per element. +static ZL_Report ZL_partitionEncode_generic( + uint8_t* bitsDst, + size_t bitsCapacity, + uint8_t* buckets, + void const* src, + size_t srcSize, + size_t eltWidth, + ZL_PartitionParams const* params) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + uint64_t bases[ZL_PARTITION_MAX_PARTITIONS]; + uint8_t bits[ZL_PARTITION_MAX_PARTITIONS]; + ZL_PartitionParams_computeBasesU64(params, bases); + ZL_PartitionParams_computeBits(params, bits); + + size_t const numPartitions = params->numPartitions; + const uint64_t maxValue = bases[numPartitions - 1] + + (params->partitionSizes[numPartitions - 1] - 1); + + ZS_BitCStreamFF bitstream = ZS_BitCStreamFF_init(bitsDst, bitsCapacity); + for (size_t i = 0; i < srcSize; ++i) { + uint64_t const value = ZL_readValue(src, i, eltWidth); + size_t const partition = + ZL_findBucket(value, bases, numPartitions, maxValue); + + ZL_ERR_IF_GE(partition, numPartitions, GENERIC); + + ZL_ASSERT_GE(value, bases[partition]); + ZL_ASSERT_LE(value, maxValue); + + buckets[i] = (uint8_t)partition; + + uint64_t const offset = value - bases[partition]; + ZL_partitionWriteBits(&bitstream, offset, bits[partition]); + ZS_BitCStreamFF_flush(&bitstream); + } + ZL_Report const ret = ZS_BitCStreamFF_finish(&bitstream); + ZL_ERR_IF(ZL_isError(ret), internalBuffer_tooSmall); + return ret; +} + +static const uint8_t* ZL_PartitionEncodeU16_buildPartitionLUT( + ZL_PartitionParams const* params, + ZL_PartitionScratchAlloc scratch, + size_t lutShift, + size_t lutSize) +{ + uint8_t* partitionLUT = scratch.alloc(scratch.opaque, lutSize); + if (partitionLUT == NULL) { + return NULL; + } + + { + size_t start = + ZL_MIN(lutSize, (size_t)(params->startValue >> lutShift)); + memset(partitionLUT, 0, start); + for (size_t i = 0; i < params->numPartitions; ++i) { + if (start >= lutSize) { + break; + } + const size_t end = ZL_MIN( + lutSize, + start + (size_t)(params->partitionSizes[i] >> lutShift)); + memset(partitionLUT + start, (int)i, end - start); + start = end; + } + if (start < lutSize) { + memset(partitionLUT + start, 0, lutSize - start); + } + } + return partitionLUT; +} + +/// Expanded LUT for batched encoding: precompute base and mask for each +/// pair of bucket IDs. This allows processing 4 elements (64 bits) at once. +typedef struct { + const uint32_t* base; + const uint32_t* mask; + const uint8_t* bits; +} ZL_PartitionLUTx2; + +/// Build expanded LUT indexed by pairs of bucket IDs. +/// For a pair (lo, hi) at index (lo | hi << partitionBits): +/// base[idx] = baseLUT[lo] | (baseLUT[hi] << 16) +/// mask[idx] = ((1 << bitsLUT[lo]) - 1) | (((1 << bitsLUT[hi]) - 1) << 16) +/// bits[idx] = bitsLUT[lo] + bitsLUT[hi] +static bool ZL_PartitionLUTx2_build( + ZL_PartitionLUTx2* LUTx2, + const uint64_t* baseLUT, + const uint8_t* bitsLUT, + size_t partitionBits, + ZL_PartitionScratchAlloc scratch) +{ + ZL_ASSERT_LE(partitionBits, 8); + size_t const sizeX1 = (size_t)1 << partitionBits; + size_t const sizeX2 = (size_t)1 << (2 * partitionBits); + size_t const partitionMask = sizeX1 - 1; + + uint32_t* base = + scratch.alloc(scratch.opaque, sizeX2 * sizeof(*LUTx2->base)); + uint32_t* mask = + scratch.alloc(scratch.opaque, sizeX2 * sizeof(*LUTx2->mask)); + uint8_t* bits = + scratch.alloc(scratch.opaque, sizeX2 * sizeof(*LUTx2->bits)); + + if (!base || !mask || !bits) { + return false; + } + + for (size_t idx = 0; idx < sizeX2; ++idx) { + const size_t lo = idx & partitionMask; + const size_t hi = idx >> partitionBits; + + base[idx] = (uint32_t)baseLUT[lo] | ((uint32_t)baseLUT[hi] << 16); + mask[idx] = + ((1u << bitsLUT[lo]) - 1) | (((1u << bitsLUT[hi]) - 1) << 16); + bits[idx] = bitsLUT[lo] + bitsLUT[hi]; + } + + LUTx2->base = base; + LUTx2->mask = mask; + LUTx2->bits = bits; + + return true; +} + +/// Fast path for 2-byte elements with batched encoding. +/// Uses expanded LUTs and ZL_bitExtract64 for efficient bit packing, +/// processing 4 elements at a time. +static ZL_Report ZL_partitionEncodeU16( + uint8_t* offPtr, + size_t offCapacity, + uint8_t* partitions, + uint16_t const* src, + size_t srcSize, + ZL_PartitionParams const* params, + ZL_PartitionScratchAlloc scratch) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + uint64_t baseLUTx1[ZL_PARTITION_MAX_PARTITIONS] = { 0 }; + uint8_t bitsLUTx1[ZL_PARTITION_MAX_PARTITIONS] = { 0 }; + ZL_PartitionParams_computeBasesU64(params, baseLUTx1); + ZL_PartitionParams_computeBits(params, bitsLUTx1); + + // Build per-value LUTs for the partition + const size_t lutShift = ZL_PartitionParams_getNumTrailingZeros(params); + const size_t lutSize = 65536 >> lutShift; + const uint8_t* const partitionLUT = ZL_PartitionEncodeU16_buildPartitionLUT( + params, scratch, lutShift, lutSize); + ZL_ERR_IF_NULL(partitionLUT, allocation); + + // If the partition doesn't cover the entire U16 range, validate that every + // input is covered by the partitions. + const uint64_t minValue = params->startValue; + const uint64_t maxValue = baseLUTx1[params->numPartitions - 1] + + (params->partitionSizes[params->numPartitions - 1] - 1); + if (minValue > 0 || maxValue < UINT16_MAX) { + bool isValid = true; + for (size_t i = 0; i < srcSize; ++i) { + if (src[i] < minValue || src[i] > maxValue) { + isValid = false; + } + } + ZL_ERR_IF_NOT( + isValid, + node_invalid_input, + "Value out of range of partitions"); + } + + // Determine bucket bit width (ceil(log2(numPartitions))) + const size_t bucketBits = (size_t)ZL_nextPow2(params->numPartitions); + + // Build expanded LUT for batched 4-element processing + ZL_PartitionLUTx2 LUTx2; + ZL_ERR_IF_NOT( + ZL_PartitionLUTx2_build( + &LUTx2, baseLUTx1, bitsLUTx1, bucketBits, scratch), + allocation); + + // Main encoding loop: process 4 elements at a time + ZS_BitCStreamFF off = ZS_BitCStreamFF_init(offPtr, offCapacity); + size_t i = 0; + + const size_t limit = srcSize < 4 ? 0 : srcSize - 3; + for (; i < limit; i += 4) { + ZL_ASSERT_LE(i + 4, srcSize); + const uint16_t* const ip = src + i; + + // Lookup bucket IDs + const size_t p0 = partitionLUT[ip[0] >> lutShift]; + const size_t p1 = partitionLUT[ip[1] >> lutShift]; + const size_t p2 = partitionLUT[ip[2] >> lutShift]; + const size_t p3 = partitionLUT[ip[3] >> lutShift]; + + partitions[i + 0] = (uint8_t)p0; + partitions[i + 1] = (uint8_t)p1; + partitions[i + 2] = (uint8_t)p2; + partitions[i + 3] = (uint8_t)p3; + + // Pack bucket pairs for expanded LUT lookup + const size_t p01 = p0 | (p1 << bucketBits); + const size_t p23 = p2 | (p3 << bucketBits); + + // Compute bases and masks for all 4 elements via expanded LUT + const uint64_t base = + LUTx2.base[p01] | ((uint64_t)LUTx2.base[p23] << 32); + const uint64_t mask = + LUTx2.mask[p01] | ((uint64_t)LUTx2.mask[p23] << 32); + const size_t bits = LUTx2.bits[p01] + LUTx2.bits[p23]; + + // Read 4 uint16_t values as one uint64_t + const uint64_t data = ZL_readLE64(ip); + + // Extract offset bits using PEXT + uint64_t const packedOffsetBits = ZL_bitExtract64(data - base, mask); + + // Accumulate and flush + ZS_BitCStreamFF_write(&off, packedOffsetBits, bits); + ZS_BitCStreamFF_flush(&off); + } + + // Process remaining elements one at a time + for (; i < srcSize; ++i) { + uint16_t const value = src[i]; + const size_t p = partitionLUT[value >> lutShift]; + partitions[i] = (uint8_t)p; + uint64_t const offset = value - baseLUTx1[p]; + size_t const nbits = bitsLUTx1[p]; + ZS_BitCStreamFF_write(&off, offset, nbits); + ZS_BitCStreamFF_flush(&off); + } + ZL_TRY_LET(size_t, offSize, ZS_BitCStreamFF_finish(&off)); + return ZL_returnValue(offSize); +} + +ZL_Report ZL_partitionEncode( + uint8_t* bitsDst, + size_t bitsCapacity, + uint8_t* buckets, + void const* src, + size_t srcSize, + size_t eltWidth, + ZL_PartitionParams const* params, + ZL_PartitionScratchAlloc scratch) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ASSERT(ZL_PartitionParams_validate(params)); + + // Fast path for 16-bit elements with partition sizes <= 2^14. + if (eltWidth == 2 + && ZL_PartitionParams_getLargestPartitionSize(params) + <= ZL_PARTITION_MAX_PARTITION_SIZE_FOR_UNROLL4) { + return ZL_partitionEncodeU16( + bitsDst, + bitsCapacity, + buckets, + (uint16_t const*)src, + srcSize, + params, + scratch); + } + + return ZL_partitionEncode_generic( + bitsDst, bitsCapacity, buckets, src, srcSize, eltWidth, params); +} diff --git a/src/openzl/codecs/partition/encode_partition_kernel.h b/src/openzl/codecs/partition/encode_partition_kernel.h new file mode 100644 index 000000000..76698232b --- /dev/null +++ b/src/openzl/codecs/partition/encode_partition_kernel.h @@ -0,0 +1,39 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_PARTITION_ENCODE_PARTITION_KERNEL_H +#define OPENZL_CODECS_PARTITION_ENCODE_PARTITION_KERNEL_H + +#include "openzl/codecs/partition/common_partition.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_errors.h" + +ZL_BEGIN_C_DECLS + +/** + * Encodes values using the partition scheme. + * + * Each value is split into a bucket ID (written to @p buckets) and an offset + * within the bucket (written to the bitstream at @p bitsDst). The number of + * bits per offset is determined by the bucket size (params->bits[bucket]). + * + * @param bitsDst Output buffer for the extra-bits bitstream. + * @param bitsCapacity Capacity of the bits buffer in bytes. + * @param buckets Output buffer for bucket IDs, must hold @p srcSize bytes. + * @param src Input values to encode. + * @param srcSize Number of input values. + * @param eltWidth Element width in bytes (1, 2, 4, or 8). + * @param params Partition parameters (start value and partition sizes). + * @returns The size of the bits stream in bytes, or an error. + */ +ZL_Report ZL_partitionEncode( + uint8_t* bitsDst, + size_t bitsCapacity, + uint8_t* buckets, + void const* src, + size_t srcSize, + size_t eltWidth, + ZL_PartitionParams const* params, + ZL_PartitionScratchAlloc scratch); + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/partition/graph_partition.h b/src/openzl/codecs/partition/graph_partition.h new file mode 100644 index 000000000..521540f81 --- /dev/null +++ b/src/openzl/codecs/partition/graph_partition.h @@ -0,0 +1,19 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_PARTITION_GRAPH_PARTITION_H +#define OPENZL_CODECS_PARTITION_GRAPH_PARTITION_H + +/// Graph definition for the partition transform +/// used by both the encoder and decoder side. +/// +/// Input: 1 numeric stream of unsigned integers (1, 2, 4, or 8 bytes) +/// Output 0: numeric stream of 8-bit bucket IDs +/// Output 1: serial stream of extra bits (bitstream) + +#define PARTITION_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_serial), \ + } + +#endif diff --git a/src/openzl/codecs/partition/spec.md b/src/openzl/codecs/partition/spec.md new file mode 100644 index 000000000..a1f9a6c50 --- /dev/null +++ b/src/openzl/codecs/partition/spec.md @@ -0,0 +1,68 @@ +## Partition Decoder Specification +### Inputs +The decoder for the 'partition' transform takes two streams as input: +- a numeric stream of 8-bit unsigned bucket IDs (one per element). +- a serial stream containing a packed bitstream of intra-bucket offsets. + +### Codec Header +The 'partition' codec header encodes the partition parameters: the element width of the decoded stream, a start value, and the size of each partition. The partitions define contiguous, non-overlapping ranges of unsigned integers. The maximum number of partitions is 256. + +#### Flags Byte +The first byte of the header is always present and encodes flags that determine the header format. + +| Bits | Meaning | +|------|---------| +| `[1:0]` | `log2(elementWidth)`: 0 = 1 byte, 1 = 2 bytes, 2 = 4 bytes, 3 = 8 bytes | +| `[2]` | IS_PRESET: parameters are a built-in preset; remaining bits encode the preset ID | +| `[3]` | IS_FIRST_VALUE_ZERO: `startValue` is 0 and omitted from the header | +| `[4]` | Unused | +| `[5]` | IS_POW2: all partition sizes are powers of 2 (compact encoding) | +| `[7:6]` | When IS_POW2 is set: `numBits - 3`, where `numBits` is the bit-width used to encode each log2(partitionSize) value | + +#### Preset Mode (bit 2 set) +When the IS_PRESET bit is set, the header is exactly 1 byte. The preset ID is `flags >> 3`. The following presets are defined: + +| Preset ID | Name | Partitions | Start Value | Description | +|-----------|------|------------|-------------|-------------| +| 0 | Quantize Offsets | 32 | 1 | Power-of-2 sizes: 1, 2, 4, ..., 2^31. Covers [1, 2^32). | +| 1 | Quantize Lengths | 44 | 0 | First 16 partitions each have size 1 (values 0-15). Then power-of-2 sizes: 16, 32, ..., 2^31. Covers [0, 2^32). | +| 2 | Varbyte16 | 16 | 0 | Sizes: 2, 2, 4, 8, 16, ..., 2^15. Covers [0, 2^16). | + +#### Power-of-2 Mode (bit 5 set, bit 2 clear) +When IS_POW2 is set but IS_PRESET is not, the partition sizes are all powers of 2 and are encoded compactly as their log2 values in a bitstream. + +The header layout is: `[flags] [varint startValue?] [bitstream of log2(sizes)]`. + +The `startValue` is present as a varint unless IS_FIRST_VALUE_ZERO is set. The varint format is described here: https://protobuf.dev/programming-guides/encoding/#varints. + +The bitstream encodes each `log2(partitionSize)` value using `numBits` bits, where `numBits = ((flags >> 6) & 3) + 3`. A sentinel `1` bit follows the last value. The number of partitions is determined by dividing the total number of payload bits (excluding the sentinel) by `numBits`. + +#### General Mode (bits 2 and 5 clear) +When neither IS_PRESET nor IS_POW2 is set, partition sizes are stored as consecutive varints. + +The header layout is: `[flags] [varint startValue?] [varint size_0] [varint size_1] ... [varint size_{N-1}]`. + +The `startValue` is present as a varint unless IS_FIRST_VALUE_ZERO is set. The number of partitions is determined by the number of varints that fit in the remaining header bytes. + +### Decoding +The partition parameters define `N` contiguous ranges of unsigned integers. The base value for each partition is computed as: +- `bases[0] = startValue` +- `bases[i] = bases[i-1] + partitionSizes[i-1]` + +The number of extra bits for each partition is computed as: +- `bits[i] = ceil(log2(partitionSizes[i]))` + +For each element, the decoder reads the bucket ID from the first input stream and `bits[bucket]` bits from the second input stream (the offset bitstream). The decoded value is `bases[bucket] + offset`. + +Consider the partition parameters `startValue = 10`, `partitionSizes = {4, 8, 4}`. This defines three partitions covering [10, 14), [14, 22), and [22, 26). The computed base values are `{10, 14, 22}` and the extra bits per partition are `{2, 3, 2}`. + +Given the bucket stream {0, 1, 2, 1} and extra bits bitstream containing the offsets {2, 3, 1, 0} encoded using {2, 3, 2, 3} bits respectively, the decoder produces: +- Element 0: `bases[0] + 2 = 10 + 2 = 12` +- Element 1: `bases[1] + 3 = 14 + 3 = 17` +- Element 2: `bases[2] + 1 = 22 + 1 = 23` +- Element 3: `bases[1] + 0 = 14 + 0 = 14` + +The decoded stream is {12, 17, 23, 14}. + +### Outputs +The output of the decoder is a single numeric stream. The element width is encoded in the codec header flags byte and must be 1, 2, 4, or 8 bytes. The number of elements is equal to the number of elements in the bucket ID input stream. diff --git a/src/openzl/codecs/prefix/decode_prefix_binding.c b/src/openzl/codecs/prefix/decode_prefix_binding.c index 749d8f523..f67caa69b 100644 --- a/src/openzl/codecs/prefix/decode_prefix_binding.c +++ b/src/openzl/codecs/prefix/decode_prefix_binding.c @@ -6,6 +6,7 @@ ZL_Report DI_prefix(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -14,9 +15,9 @@ ZL_Report DI_prefix(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_Input_type(in) == ZL_Type_string && ZL_Input_type(matchSizes) == ZL_Type_numeric); - ZL_RET_R_IF_NE( - corruption, ZL_Input_numElts(matchSizes), ZL_Input_numElts(in)); - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(matchSizes), sizeof(uint32_t)); + ZL_ERR_IF_NE( + ZL_Input_numElts(matchSizes), ZL_Input_numElts(in), corruption); + ZL_ERR_IF_NE(ZL_Input_eltWidth(matchSizes), sizeof(uint32_t), corruption); const uint8_t* const src = ZL_Input_ptr(in); const uint32_t* const matchSizesSrc = ZL_Input_ptr(matchSizes); @@ -29,25 +30,25 @@ ZL_Report DI_prefix(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t const dstSize = ZS_calcOriginalPrefixSize(matchSizesSrc, eltWidthsSum, nbElts); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstSize, 1); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( out, + allocation, "allocation error in prefix (DI) while trying to create an output stream of size %zu", dstSize); uint32_t* const dstFieldSizes = ZL_Output_reserveStringLens(out, nbElts); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( dstFieldSizes, + allocation, "allocation error in prefix DI while trying to create an array of size %zu", nbElts); - ZL_RET_R_IF_ERR(ZS_decodePrefix( + ZL_ERR_IF_ERR(ZS_decodePrefix( (uint8_t* const)ZL_Output_ptr(out), dstFieldSizes, src, nbElts, eltWidths, matchSizesSrc)); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/prefix/decode_prefix_binding.h b/src/openzl/codecs/prefix/decode_prefix_binding.h index f355ba8e0..490ece6dd 100644 --- a/src/openzl/codecs/prefix/decode_prefix_binding.h +++ b/src/openzl/codecs/prefix/decode_prefix_binding.h @@ -11,10 +11,7 @@ ZL_BEGIN_C_DECLS ZL_Report DI_prefix(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_PREFIX(id) \ - { \ - .transform_f = DI_prefix, .name = "prefix" \ - } +#define DI_PREFIX(id) { .transform_f = DI_prefix, .name = "prefix" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/prefix/decode_prefix_kernel.c b/src/openzl/codecs/prefix/decode_prefix_kernel.c index 672bab7c7..861956a49 100644 --- a/src/openzl/codecs/prefix/decode_prefix_kernel.c +++ b/src/openzl/codecs/prefix/decode_prefix_kernel.c @@ -5,17 +5,9 @@ #include "openzl/codecs/common/copy.h" #include "openzl/common/assertion.h" -#include "openzl/shared/numeric_operations.h" #include "openzl/shared/overflow.h" #include "openzl/zl_errors.h" -// Local macro for alignment attributes - specific to this kernel file -#ifdef _MSC_VER -# define ZL_PREFIX_ALIGNED(n) __declspec(align(n)) -#else -# define ZL_PREFIX_ALIGNED(n) __attribute__((aligned(n))) -#endif - size_t ZS_calcOriginalPrefixSize( const uint32_t* const matchSizes, size_t const eltWidthsSum, @@ -39,11 +31,12 @@ ZL_FORCE_NOINLINE ZL_Report ZS_decodePrefix_fallback( const uint32_t* const matchSizes, size_t prevFieldSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const uint8_t* currSuffixPtr = suffixes; for (size_t i = 0; i < nbElts; ++i) { uint32_t const currEltWidth = eltWidths[i]; uint32_t const currMatchSize = matchSizes[i]; - ZL_RET_R_IF_GT(corruption, currMatchSize, prevFieldSize); + ZL_ERR_IF_GT(currMatchSize, prevFieldSize, corruption); // Write the shared prefix memcpy(currOutPtr, prevOutPtr, currMatchSize); @@ -55,9 +48,9 @@ ZL_FORCE_NOINLINE ZL_Report ZS_decodePrefix_fallback( prevOutPtr = currOutPtr; currOutPtr += prevFieldSize; currSuffixPtr += currEltWidth; - ZL_RET_R_IF( - corruption, - ZL_overflowAddU32(currMatchSize, currEltWidth, &fieldSizes[i])); + ZL_ERR_IF( + ZL_overflowAddU32(currMatchSize, currEltWidth, &fieldSizes[i]), + corruption); } return ZL_returnSuccess(); @@ -67,8 +60,8 @@ ZL_FORCE_NOINLINE ZL_Report ZS_decodePrefix_fallback( # include // clang-format off -static const uint8_t blendMasks[][sizeof(__m256i)] - ZL_PREFIX_ALIGNED(32) = { +ZL_ALIGNED(32) +static const uint8_t blendMasks[][sizeof(__m256i)] = { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, { 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, @@ -115,6 +108,7 @@ ZL_Report ZS_decodePrefix( const uint32_t* const eltWidths, const uint32_t* const matchSizes) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Calculate the number of safe wildcopies size_t nbWildcopies = nbElts; @@ -139,7 +133,7 @@ ZL_Report ZS_decodePrefix( for (size_t i = 0; i < nbWildcopies; ++i) { uint32_t const currEltWidth = eltWidths[i]; uint32_t const currMatchSize = matchSizes[i]; - ZL_RET_R_IF_GT(corruption, currMatchSize, prevFieldSize); + ZL_ERR_IF_GT(currMatchSize, prevFieldSize, corruption); // Write the shared prefix and the suffix // We branch between two implementations, where one is an optimized version that @@ -189,9 +183,9 @@ ZL_Report ZS_decodePrefix( prevOutPtr = currOutPtr; currOutPtr += prevFieldSize; currSuffixPtr += currEltWidth; - ZL_RET_R_IF( - corruption, - ZL_overflowAddU32(currMatchSize, currEltWidth, &fieldSizes[i])); + ZL_ERR_IF( + ZL_overflowAddU32(currMatchSize, currEltWidth, &fieldSizes[i]), + corruption); } // Fallback to copy rest of elements diff --git a/src/openzl/codecs/prefix/encode_prefix_binding.c b/src/openzl/codecs/prefix/encode_prefix_binding.c index ce9e3178f..814064463 100644 --- a/src/openzl/codecs/prefix/encode_prefix_binding.c +++ b/src/openzl/codecs/prefix/encode_prefix_binding.c @@ -10,6 +10,7 @@ ZL_Report EI_prefix(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -25,22 +26,22 @@ ZL_Report EI_prefix(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, fieldSizesSum, 1); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( out, + allocation, "allocation error in prefix while trying to create an output stream of size %zu", fieldSizesSum); uint32_t* const fieldSizes = ZL_Output_reserveStringLens(out, nbElts); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( fieldSizes, + allocation, "allocation error in prefix while trying to create a field size array of size %zu", nbElts); ZL_Output* const matchSizes = ZL_Encoder_createTypedStream(eictx, 1, nbElts, sizeof(uint32_t)); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( matchSizes, + allocation, "allocation error in prefix while trying to create an output stream of size %zu", nbElts); @@ -52,7 +53,7 @@ ZL_Report EI_prefix(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) nbElts, eltWidths, fieldSizesSum); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); - ZL_RET_R_IF_ERR(ZL_Output_commit(matchSizes, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(matchSizes, nbElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/prefix/encode_prefix_binding.h b/src/openzl/codecs/prefix/encode_prefix_binding.h index c00b1092d..b37188d6a 100644 --- a/src/openzl/codecs/prefix/encode_prefix_binding.h +++ b/src/openzl/codecs/prefix/encode_prefix_binding.h @@ -11,10 +11,8 @@ ZL_BEGIN_C_DECLS ZL_Report EI_prefix(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_PREFIX(id) \ - { \ - .gd = PREFIX_GRAPH(id), .transform_f = EI_prefix, .name = "!zl.prefix" \ - } +#define EI_PREFIX(id) \ + { .gd = PREFIX_GRAPH(id), .transform_f = EI_prefix, .name = "!zl.prefix" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/quantize/decode_quantize_binding.c b/src/openzl/codecs/quantize/decode_quantize_binding.c index c25581817..77f5a49bb 100644 --- a/src/openzl/codecs/quantize/decode_quantize_binding.c +++ b/src/openzl/codecs/quantize/decode_quantize_binding.c @@ -24,17 +24,18 @@ static ZL_Report DI_quantize( const ZL_Input* ins[], ZL_Quantize32Params const* params) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const codes = ins[0]; ZL_Input const* const bits = ins[1]; - ZL_RET_R_IF_NE(corruption, ZL_Input_eltWidth(codes), 1, "Unsupported"); + ZL_ERR_IF_NE(ZL_Input_eltWidth(codes), 1, corruption, "Unsupported"); ZL_ASSERT_EQ(ZL_Input_type(bits), ZL_Type_serial); ZL_ASSERT_EQ(ZL_Input_eltWidth(codes), 1); size_t const nbCodes = ZL_Input_numElts(codes); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbCodes, 4); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // TODO(terrelln): Get this information from the stream metadata // if it is available. @@ -52,7 +53,7 @@ static ZL_Report DI_quantize( return ret; } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbCodes)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbCodes)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/quantize/decode_quantize_binding.h b/src/openzl/codecs/quantize/decode_quantize_binding.h index f3d49a384..ed34d54b6 100644 --- a/src/openzl/codecs/quantize/decode_quantize_binding.h +++ b/src/openzl/codecs/quantize/decode_quantize_binding.h @@ -9,14 +9,10 @@ ZL_Report DI_quantizeOffsets(ZL_Decoder* dictx, const ZL_Input* ins[]); ZL_Report DI_quantizeLengths(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_QUANTIZE_OFFSETS(id) \ - { \ - .transform_f = DI_quantizeOffsets, .name = "quantize offsets" \ - } +#define DI_QUANTIZE_OFFSETS(id) \ + { .transform_f = DI_quantizeOffsets, .name = "quantize offsets" } -#define DI_QUANTIZE_LENGTHS(id) \ - { \ - .transform_f = DI_quantizeLengths, .name = "quantize lengths" \ - } +#define DI_QUANTIZE_LENGTHS(id) \ + { .transform_f = DI_quantizeLengths, .name = "quantize lengths" } #endif // ZSTRONG_TRANSFORMS_QUANTIZE_DECODE_QUANTIZE_BINDING_H diff --git a/src/openzl/codecs/quantize/decode_quantize_kernel.c b/src/openzl/codecs/quantize/decode_quantize_kernel.c index fd3045b5c..a73720354 100644 --- a/src/openzl/codecs/quantize/decode_quantize_kernel.c +++ b/src/openzl/codecs/quantize/decode_quantize_kernel.c @@ -36,6 +36,7 @@ ZL_FORCE_INLINE ZL_Report ZL_quantize32Decode_impl( ZL_Quantize32Params const* params, size_t const kUnroll) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_BitDStreamFF bitstream = ZS_BitDStreamFF_init(extraBits, extraBitsSize); uint32_t const* const base = params->base; uint8_t const* const bits = params->bits; @@ -60,7 +61,7 @@ ZL_FORCE_INLINE ZL_Report ZL_quantize32Decode_impl( } ZL_Report const ret = ZS_BitDStreamFF_finish(&bitstream); - ZL_RET_R_IF(srcSize_tooSmall, ZL_isError(ret)); + ZL_ERR_IF(ZL_isError(ret), srcSize_tooSmall); return ZL_returnSuccess(); } @@ -80,6 +81,7 @@ ZL_FORCE_INLINE ZL_Report ZL_quantize32DecodePow2_impl( size_t extraBitsSize, size_t const kUnroll) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_BitDStreamFF bitstream = ZS_BitDStreamFF_init(extraBits, extraBitsSize); size_t const preamble = nbCodes % kUnroll; @@ -102,7 +104,7 @@ ZL_FORCE_INLINE ZL_Report ZL_quantize32DecodePow2_impl( } ZL_Report const ret = ZS_BitDStreamFF_finish(&bitstream); - ZL_RET_R_IF(srcSize_tooSmall, ZL_isError(ret)); + ZL_ERR_IF(ZL_isError(ret), srcSize_tooSmall); return ZL_returnSuccess(); } @@ -168,7 +170,8 @@ ZL_Report ZS2_quantize32Decode( size_t bitsSize, ZL_Quantize32Params const* params) { - ZL_RET_R_IF_GE(corruption, maxCode, params->nbCodes); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GE(maxCode, params->nbCodes, corruption); size_t const maxNbBits = params->bits[maxCode]; diff --git a/src/openzl/codecs/quantize/encode_quantize_binding.c b/src/openzl/codecs/quantize/encode_quantize_binding.c index 6982c8066..83fa752c8 100644 --- a/src/openzl/codecs/quantize/encode_quantize_binding.c +++ b/src/openzl/codecs/quantize/encode_quantize_binding.c @@ -12,8 +12,9 @@ static ZL_Report EI_quantize( const ZL_Input* in, ZL_Quantize32Params const* params) { - ZL_RET_R_IF_NE(GENERIC, ZL_Input_type(in), ZL_Type_numeric); - ZL_RET_R_IF_NE(GENERIC, ZL_Input_eltWidth(in), 4); + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ERR_IF_NE(ZL_Input_type(in), ZL_Type_numeric, GENERIC); + ZL_ERR_IF_NE(ZL_Input_eltWidth(in), 4, GENERIC); size_t const nbElts = ZL_Input_numElts(in); @@ -22,8 +23,8 @@ static ZL_Report EI_quantize( size_t const bitsCapacity = 4 * nbElts + 9; ZL_Output* bits = ZL_Encoder_createTypedStream(eictx, 1, bitsCapacity, 1); - ZL_RET_R_IF_NULL(allocation, codes); - ZL_RET_R_IF_NULL(allocation, bits); + ZL_ERR_IF_NULL(codes, allocation); + ZL_ERR_IF_NULL(bits, allocation); ZL_Report const bitsSize = ZS2_quantize32Encode( (uint8_t*)ZL_Output_ptr(bits), @@ -32,10 +33,10 @@ static ZL_Report EI_quantize( (uint32_t const*)ZL_Input_ptr(in), nbElts, params); - ZL_RET_R_IF_ERR(bitsSize); + ZL_ERR_IF_ERR(bitsSize); - ZL_RET_R_IF_ERR(ZL_Output_commit(codes, nbElts)); - ZL_RET_R_IF_ERR(ZL_Output_commit(bits, ZL_validResult(bitsSize))); + ZL_ERR_IF_ERR(ZL_Output_commit(codes, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(bits, ZL_validResult(bitsSize))); return ZL_returnValue(2); } diff --git a/src/openzl/codecs/quantize/encode_quantize_binding.h b/src/openzl/codecs/quantize/encode_quantize_binding.h index bc950b02f..7783dfd74 100644 --- a/src/openzl/codecs/quantize/encode_quantize_binding.h +++ b/src/openzl/codecs/quantize/encode_quantize_binding.h @@ -14,17 +14,15 @@ EI_quantizeOffsets(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); ZL_Report EI_quantizeLengths(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_QUANTIZE_OFFSETS(id) \ - { \ - .gd = QUANTIZE_GRAPH(id), .transform_f = EI_quantizeOffsets, \ - .name = "!zl.quantize_offsets" \ - } - -#define EI_QUANTIZE_LENGTHS(id) \ - { \ - .gd = QUANTIZE_GRAPH(id), .transform_f = EI_quantizeLengths, \ - .name = "!zl.quantize_lengths" \ - } +#define EI_QUANTIZE_OFFSETS(id) \ + { .gd = QUANTIZE_GRAPH(id), \ + .transform_f = EI_quantizeOffsets, \ + .name = "!zl.quantize_offsets" } + +#define EI_QUANTIZE_LENGTHS(id) \ + { .gd = QUANTIZE_GRAPH(id), \ + .transform_f = EI_quantizeLengths, \ + .name = "!zl.quantize_lengths" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/quantize/encode_quantize_kernel.c b/src/openzl/codecs/quantize/encode_quantize_kernel.c index b3283f551..8fcbe46f2 100644 --- a/src/openzl/codecs/quantize/encode_quantize_kernel.c +++ b/src/openzl/codecs/quantize/encode_quantize_kernel.c @@ -26,12 +26,13 @@ ZL_Report ZS2_quantize32Encode( ZL_Quantize32Params const* params) { ZL_ASSERT(ZL_isPow2(params->maxPow2)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_BitCStreamFF bitstream = ZS_BitCStreamFF_init(bits, bitsCapacity); for (size_t i = 0; i < srcSize; ++i) { uint32_t const value = src[i]; if (params->maxPow2 == 0 && value == 0) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint8_t const code = ZL_code32(value, params); codes[i] = code; @@ -39,6 +40,6 @@ ZL_Report ZS2_quantize32Encode( ZS_BitCStreamFF_flush(&bitstream); } ZL_Report const ret = ZS_BitCStreamFF_finish(&bitstream); - ZL_RET_R_IF(internalBuffer_tooSmall, ZL_isError(ret)); + ZL_ERR_IF(ZL_isError(ret), internalBuffer_tooSmall); return ret; } diff --git a/src/openzl/codecs/quantize/graph_quantize.h b/src/openzl/codecs/quantize/graph_quantize.h index c0beb7d4e..a511ff87e 100644 --- a/src/openzl/codecs/quantize/graph_quantize.h +++ b/src/openzl/codecs/quantize/graph_quantize.h @@ -7,10 +7,11 @@ /// Graph definition for the quantize transforms /// used by both the encoder and decoder side. -#define QUANTIZE_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_serial), \ +#define QUANTIZE_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_serial), \ } #endif diff --git a/src/openzl/codecs/range_pack/decode_range_pack_binding.c b/src/openzl/codecs/range_pack/decode_range_pack_binding.c index 957ace2d0..9579954ef 100644 --- a/src/openzl/codecs/range_pack/decode_range_pack_binding.c +++ b/src/openzl/codecs/range_pack/decode_range_pack_binding.c @@ -12,6 +12,7 @@ ZL_Report DI_rangePack(ZL_Decoder* dictx, const ZL_Input* streams[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(streams); const ZL_Input* in = streams[0]; ZL_ASSERT(ZL_Input_type(in) == ZL_Type_numeric); @@ -20,33 +21,31 @@ ZL_Report DI_rangePack(ZL_Decoder* dictx, const ZL_Input* streams[]) const size_t nbElts = ZL_Input_numElts(in); const ZL_RBuffer header = ZL_Decoder_getCodecHeader(dictx); - ZL_RET_R_IF_LT( - corruption, header.size, 1, "Range decoder expects a header"); + ZL_ERR_IF_LT(header.size, 1, corruption, "Range decoder expects a header"); uint8_t dstWidth = *(const uint8_t*)header.start; - ZL_RET_R_IF_LT( - corruption, + ZL_ERR_IF_LT( dstWidth, srcWidth, - "Range pack decoder expects dst to contain src"); - ZL_RET_R_IF( corruption, + "Range pack decoder expects dst to contain src"); + ZL_ERR_IF( !ZL_isLegalIntegerWidth(dstWidth), + corruption, "Range pack decoder got an illegal dstWidth (%zu)", dstWidth); uint64_t minValue = 0; if (header.size > 1) { if (header.size != (size_t)(dstWidth + 1)) { - ZL_RET_R_ERR( - corruption, - "Range pack decoder header should be either 1 or 1+dstWidth bytes"); + ZL_ERR(corruption, + "Range pack decoder header should be either 1 or 1+dstWidth bytes"); } minValue = ZL_readLE64_N((const uint8_t*)header.start + 1, dstWidth); } ZL_Output* dstStream = ZL_Decoder_create1OutStream(dictx, nbElts, dstWidth); - ZL_RET_R_IF(allocation, !dstStream); + ZL_ERR_IF(!dstStream, allocation); void* dst = ZL_Output_ptr(dstStream); rangePackDecode(dst, dstWidth, src, srcWidth, nbElts, minValue); - ZL_RET_R_IF_ERR(ZL_Output_commit(dstStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(dstStream, nbElts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/range_pack/decode_range_pack_binding.h b/src/openzl/codecs/range_pack/decode_range_pack_binding.h index 6c8f1bb6a..750f39fbf 100644 --- a/src/openzl/codecs/range_pack/decode_range_pack_binding.h +++ b/src/openzl/codecs/range_pack/decode_range_pack_binding.h @@ -11,10 +11,7 @@ ZL_BEGIN_C_DECLS ZL_Report DI_rangePack(ZL_Decoder* dictx, const ZL_Input* ins[]); -#define DI_RANGE_PACK(id) \ - { \ - .transform_f = DI_rangePack, .name = "range pack" \ - } +#define DI_RANGE_PACK(id) { .transform_f = DI_rangePack, .name = "range pack" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/range_pack/encode_range_pack_binding.c b/src/openzl/codecs/range_pack/encode_range_pack_binding.c index b8599fc9e..3f28a40c5 100644 --- a/src/openzl/codecs/range_pack/encode_range_pack_binding.c +++ b/src/openzl/codecs/range_pack/encode_range_pack_binding.c @@ -13,6 +13,7 @@ ZL_Report EI_rangePack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -25,10 +26,10 @@ ZL_Report EI_rangePack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Output* const dstStream = ZL_Encoder_createTypedStream(eictx, 0, nbElts, dstWidth); - ZL_RET_R_IF(allocation, !dstStream); + ZL_ERR_IF(!dstStream, allocation); void* dst = ZL_Output_ptr(dstStream); rangePackEncode(dst, dstWidth, src, srcWidth, nbElts, range.min); - ZL_RET_R_IF_ERR(ZL_Output_commit(dstStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(dstStream, nbElts)); /* Header has the source size and the min value if needed */ uint8_t header[9]; diff --git a/src/openzl/codecs/range_pack/encode_range_pack_binding.h b/src/openzl/codecs/range_pack/encode_range_pack_binding.h index 2dd54a50e..4e84b602c 100644 --- a/src/openzl/codecs/range_pack/encode_range_pack_binding.h +++ b/src/openzl/codecs/range_pack/encode_range_pack_binding.h @@ -11,11 +11,10 @@ ZL_BEGIN_C_DECLS ZL_Report EI_rangePack(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_RANGE_PACK(id) \ - { \ - .gd = RANGE_PACK_GRAPH(id), .transform_f = EI_rangePack, \ - .name = "!zl.range_pack" \ - } +#define EI_RANGE_PACK(id) \ + { .gd = RANGE_PACK_GRAPH(id), \ + .transform_f = EI_rangePack, \ + .name = "!zl.range_pack" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/range_pack/graph_range_pack.h b/src/openzl/codecs/range_pack/graph_range_pack.h index 0bf7f2e6c..04cdcd610 100644 --- a/src/openzl/codecs/range_pack/graph_range_pack.h +++ b/src/openzl/codecs/range_pack/graph_range_pack.h @@ -10,10 +10,11 @@ #include "openzl/zl_data.h" // st_* -#define RANGE_PACK_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ +#define RANGE_PACK_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ } #endif diff --git a/src/openzl/codecs/rolz/common_rolz.h b/src/openzl/codecs/rolz/common_rolz.h index ab71d54e2..5a842b37f 100644 --- a/src/openzl/codecs/rolz/common_rolz.h +++ b/src/openzl/codecs/rolz/common_rolz.h @@ -199,6 +199,7 @@ ZL_INLINE void ZS_RolzTable_destroy(ZS_RolzTable* table) ZL_INLINE ZL_Report ZS_RolzTable_init(ZS_RolzTable* table, size_t contextLog, size_t chunkLog) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); uint32_t const nbBuckets = 1u << contextLog; uint32_t const nbChunks = 1u << chunkLog; ZL_REQUIRE_UINT_FITS(nbBuckets - 1, uint16_t); @@ -212,7 +213,7 @@ ZS_RolzTable_init(ZS_RolzTable* table, size_t contextLog, size_t chunkLog) (ZS_RolzTable_Chunk*)calloc(nbChunks, sizeof(ZS_RolzTable_Chunk)); if (table->buckets == NULL || table->chunks == NULL) { ZS_RolzTable_destroy(table); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_REQUIRE_EQ((uintptr_t)table->buckets & 64, 0); ZL_REQUIRE_EQ((uintptr_t)table->chunks & 64, 0); diff --git a/src/openzl/codecs/rolz/decode_experimental_dec.c b/src/openzl/codecs/rolz/decode_experimental_dec.c index e791eb8d1..1b7426c78 100644 --- a/src/openzl/codecs/rolz/decode_experimental_dec.c +++ b/src/openzl/codecs/rolz/decode_experimental_dec.c @@ -49,11 +49,12 @@ static ZL_Report decodeCodes(uint8_t* codes, size_t numSequences, ZL_RC* src); static ZL_Report decodeLiterals(ZS_Lits* lits, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (lits->numLits == 0) { lits->o1 = false; return ZL_returnSuccess(); } - ZL_RET_R_IF_LT(srcSize_tooSmall, ZL_RC_avail(src), 1); + ZL_ERR_IF_LT(ZL_RC_avail(src), 1, srcSize_tooSmall); lits->o1 = ZL_RC_pop(src); // ZL_WC out = ZL_WC_wrap(lits->lits, lits->numLits); if (!lits->o1) { @@ -62,19 +63,19 @@ static ZL_Report decodeLiterals(ZS_Lits* lits, ZL_RC* src) ZL_ContextClustering clustering; - ZL_RET_R_IF_ERR(ZL_ContextClustering_decode(&clustering, src)); + ZL_ERR_IF_ERR(ZL_ContextClustering_decode(&clustering, src)); ZL_ASSERT_LE(clustering.numClusters, kMaxNumClusters); lits->numClusters = clustering.numClusters; uint8_t* litPtr = lits->lits; uint8_t* const litEnd = litPtr + lits->numLits; for (size_t c = 0; c < clustering.numClusters; ++c) { - ZL_RET_R_IF_LT(srcSize_tooSmall, ZL_RC_avail(src), 4); + ZL_ERR_IF_LT(ZL_RC_avail(src), 4, srcSize_tooSmall); uint32_t const numLits = ZL_RC_popLE32(src); - ZL_RET_R_IF_GT(corruption, numLits, (size_t)(litEnd - litPtr)); + ZL_ERR_IF_GT(numLits, (size_t)(litEnd - litPtr), corruption); lits->o1LitsByCluster[c] = litPtr; lits->o1LitsEndByCluster[c] = litPtr + numLits; - ZL_RET_R_IF_ERR(decodeCodes(litPtr, numLits, src)); + ZL_ERR_IF_ERR(decodeCodes(litPtr, numLits, src)); litPtr += numLits; // lits->o1LitsByCluster[c] = ZL_WC_ptr(&out); // ZL_TRY_LET_CONST_T(uint64_t, numSplits, ZL_RC_popVarint(src)); @@ -88,7 +89,7 @@ static ZL_Report decodeLiterals(ZS_Lits* lits, ZL_RC* src) // } } // ZL_REQUIRE_EQ(ZL_WC_avail(&out), 0); - ZL_RET_R_IF_NE(corruption, (uint32_t)(litPtr - lits->lits), lits->numLits); + ZL_ERR_IF_NE((uint32_t)(litPtr - lits->lits), lits->numLits, corruption); for (uint32_t ctx = 0; ctx < 256; ++ctx) { if (ctx > clustering.maxSymbol) lits->o1LitsByContext[ctx] = NULL; @@ -106,20 +107,22 @@ typedef enum { static ZL_Report decodeCodes(uint8_t* codes, size_t numSequences, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_Entropy_DecodeParameters params = { .allowedTypes = ZS_Entropy_TypeMask_all, .tableManager = NULL, }; - ZL_RET_R_IF_ERR(ZS_Entropy_decode(codes, numSequences, src, 1, ¶ms)); + ZL_ERR_IF_ERR(ZS_Entropy_decode(codes, numSequences, src, 1, ¶ms)); return ZL_returnSuccess(); } static ZL_Report decodeMatchTypes(uint8_t* codes, size_t numSequences, ZL_RC* src) { - ZL_RET_R_IF_ERR(decodeCodes(codes, numSequences, src)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR(decodeCodes(codes, numSequences, src)); for (size_t c = 0; c < numSequences; ++c) { - ZL_RET_R_IF_GE(corruption, codes[c], 4, "Invalid match type!"); + ZL_ERR_IF_GE(codes[c], 4, corruption, "Invalid match type!"); } return ZL_returnSuccess(); } @@ -149,30 +152,31 @@ static ZL_Report decodeSeq( uint8_t const* types, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (numSequences == 0) return ZL_returnSuccess(); - ZL_RET_R_IF_LT( - srcSize_tooSmall, ZL_RC_avail(src), 4 + 4 * ZS_MARKOV_NUM_STATES); + ZL_ERR_IF_LT( + ZL_RC_avail(src), 4 + 4 * ZS_MARKOV_NUM_STATES, srcSize_tooSmall); uint32_t const bitSize = ZL_RC_popLE32(src); uint32_t totals[ZS_MARKOV_NUM_STATES]; for (size_t m = 0; m < ZS_MARKOV_NUM_STATES; ++m) { totals[m] = ZL_RC_popLE32(src); if (m != 0) - ZL_RET_R_IF_GT(corruption, totals[m - 1], totals[m]); + ZL_ERR_IF_GT(totals[m - 1], totals[m], corruption); } - ZL_RET_R_IF_NE(GENERIC, totals[ZS_MARKOV_NUM_STATES - 1], numSequences); + ZL_ERR_IF_NE(totals[ZS_MARKOV_NUM_STATES - 1], numSequences, GENERIC); // uint32_t const fseSize = ZL_RC_popLE32(src); - ZL_RET_R_IF_LT(srcSize_tooSmall, ZL_RC_avail(src), bitSize); + ZL_ERR_IF_LT(ZL_RC_avail(src), bitSize, srcSize_tooSmall); BIT_DStream_t dstream; - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( ERR_isError(BIT_initDStream(&dstream, ZL_RC_ptr(src), bitSize)), + corruption, "bitstream is corrupt"); ZL_RC_advance(src, bitSize); uint8_t* const codes = ZL_malloc(numSequences); - ZL_RET_R_IF_NULL(allocation, codes); + ZL_ERR_IF_NULL(codes, allocation); for (size_t m = 0; m < ZS_MARKOV_NUM_STATES; ++m) { uint32_t offset = m == 0 ? 0 : totals[m - 1]; ZL_ASSERT_LE(offset, numSequences); @@ -181,7 +185,7 @@ static ZL_Report decodeSeq( ZL_Report report = decodeCodes(codes + offset, totals[m] - offset, src); if (ZL_isError(report)) { ZL_free(codes); - ZL_RET_R_IF_ERR(report); + return report; } } for (size_t m = ZS_MARKOV_NUM_STATES - 1; m-- > 0;) { @@ -195,18 +199,18 @@ static ZL_Report decodeSeq( size_t const idx = totals[state]++; if (idx >= numSequences) { ZL_free(codes); - ZL_RET_R_ERR(corruption, "Invalid state!"); + ZL_ERR(corruption, "Invalid state!"); } uint8_t const code = codes[idx]; if (code >= ZL_ARRAY_SIZE(base)) { ZL_free(codes); - ZL_RET_R_ERR(corruption, "Invalid code!"); + ZL_ERR(corruption, "Invalid code!"); } values[s] = base[code] + (uint32_t)BIT_readBits(&dstream, bits[code]); BIT_reloadDStream(&dstream); } ZL_free(codes); - ZL_RET_R_IF_NE(GENERIC, totals[ZS_MARKOV_NUM_STATES - 1], numSequences); + ZL_ERR_IF_NE(totals[ZS_MARKOV_NUM_STATES - 1], numSequences, GENERIC); return ZL_returnSuccess(); } @@ -539,6 +543,9 @@ ZL_FORCE_INLINE size_t ZS_execExperimentalSequence( ZL_ASSERT_GE(match, ostart); ZL_ASSERT_LT(match, op); + if (op + matchLength > oend) { + return 0; + } for (size_t i = 0; i < matchLength; ++i) { op[i] = match[i]; } @@ -569,6 +576,7 @@ static ZL_Report ZS_experimentalDecoder_decompress( uint8_t const* const src, size_t size) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); (void)ctx; uint8_t* const ostart = dst; uint8_t* op = ostart; @@ -577,7 +585,7 @@ static ZL_Report ZS_experimentalDecoder_decompress( ZL_RC in = ZL_RC_wrap(src, size); // Bounds checks - ZL_RET_R_IF_LT(corruption, ZL_RC_avail(&in), 15); + ZL_ERR_IF_LT(ZL_RC_avail(&in), 15, corruption); uint32_t const rolzContextDepth = ZL_RC_pop(&in); uint32_t const rolzContextLog = ZL_RC_pop(&in); uint32_t const rolzRowLog = ZL_RC_pop(&in); @@ -588,22 +596,50 @@ static ZL_Report ZS_experimentalDecoder_decompress( uint32_t const numLiterals = ZL_RC_popLE32(&in); uint32_t const numSequences = ZL_RC_popLE32(&in); - ZL_RET_R_IF_GE(GENERIC, numSequences, (1 << 30), "too many sequences"); - ZL_RET_R_IF_GE(GENERIC, numLiterals, (1 << 30), "too many literals"); + switch (rolzContextDepth) { + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 12: + case 16: + break; + default: + ZL_ERR(node_invalid_input, + "Invalid contextDepth %u", + rolzContextDepth); + } + ZL_ERR_IF_EQ( + rolzContextLog, + 0, + node_invalid_input, + "contextLog must be greater than 0"); + ZL_ERR_IF_EQ( + rolzRowLog, 0, node_invalid_input, "rowLog must be greater than 0"); + ZL_ERR_IF_GT( + rolzContextLog + rolzRowLog, + 27, + node_invalid_input, + "contextLog + rowLog exceeds maximum"); + ZL_ERR_IF_GE(numSequences, (1 << 30), GENERIC, "too many sequences"); + ZL_ERR_IF_GE(numLiterals, (1 << 30), GENERIC, "too many literals"); ZS_window window; ZS_RolzDTable2 rolz; ZS_rep reps = ZS_initialReps; - ZL_RET_R_IF(GENERIC, ZS_window_init(&window, (uint32_t)(oend - ostart), 8)); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF(ZS_window_init(&window, (uint32_t)(oend - ostart), 8), GENERIC); + ZL_ERR_IF( ZL_isError(ZS_RolzDTable2_init( &rolz, rolzContextDepth, rolzContextLog, rolzRowLog, rolzMinLength, - rolzPredictMatchLength))); + rolzPredictMatchLength)), + GENERIC); ZS_Lits lits; uint8_t* litsBuffer = ZL_malloc(numLiterals + ZS_WILDCOPY_OVERLENGTH); @@ -751,7 +787,7 @@ static ZL_Report ZS_experimentalDecoder_decompress( ZL_free(litsBuffer); ZS_RolzDTable2_destroy(&rolz); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } const ZS_decoder ZS_experimentalDecoder = { diff --git a/src/openzl/codecs/rolz/decode_fast_dec.c b/src/openzl/codecs/rolz/decode_fast_dec.c index 7ce9a7a55..72ae50374 100644 --- a/src/openzl/codecs/rolz/decode_fast_dec.c +++ b/src/openzl/codecs/rolz/decode_fast_dec.c @@ -51,9 +51,10 @@ static ZL_Report decodeLiterals(uint8_t* lits, size_t litCapacity, ZL_RC* src) static ZL_Report isRaw(ZL_RC src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report type = ZS_Entropy_getType(ZL_RC_ptr(&src), ZL_RC_avail(&src)); - ZL_RET_R_IF_ERR(type); - return ZL_returnValue(ZL_RES_value(type) == ZS_Entropy_Type_raw); + ZL_ERR_IF_ERR(type); + return ZL_WRAP_VALUE(ZL_RES_value(type) == ZS_Entropy_Type_raw); } static ZL_Report getDecodedSize(ZL_RC src, size_t elementSize) @@ -101,7 +102,7 @@ static ZL_Report decodeCodes16(uint16_t* codes, size_t numSequences, ZL_RC* src) #if ZL_HAS_AVX2 -static void dpr(char const* name, __m128i const vec32) +static ZL_MAYBE_UNUSED_FUNCTION void dpr(char const* name, __m128i const vec32) { size_t n = 4; uint32_t data[4]; @@ -115,7 +116,9 @@ static void dpr(char const* name, __m128i const vec32) fprintf(stderr, "]\n"); } -static void dpr16(char const* name, __m128i const vec32) +static ZL_MAYBE_UNUSED_FUNCTION void dpr16( + char const* name, + __m128i const vec32) { size_t n = 8; uint16_t data[8]; @@ -144,7 +147,7 @@ static uint8_t const ZL_ALIGNED(16) ZL_UNUSED shuffle[8][16] = { #undef _ #define _ 9 -static int32_t const shuffle7[128][8] __attribute((aligned(32),unused)) = { +static ZL_ALIGNED(32) int32_t const shuffle7[128][8] ZL_UNUSED = { { 0, 0, 0, 0, 0, 0, 0, _ }, // 0000000 { 1, 1, 1, 1, 1, 1, 1, _ }, // 1000000 { 0, 1, 1, 1, 1, 1, 1, _ }, // 0100000 @@ -1049,9 +1052,10 @@ ZL_FORCE_INLINE bool isFast(uint16_t const* tokens) static ZL_Report getBitstream(ZS_BitDStreamFF* bitstream, ZL_RC* in) { - ZL_TRY_LET_CONST_T(uint64_t, offbitsSize, ZL_RC_popVarint(in)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET_CONST(uint64_t, offbitsSize, ZL_RC_popVarint(in)); uint8_t const* const offbitsBuffer = ZL_RC_ptr(in); - ZL_RET_R_IF_GT(srcSize_tooSmall, offbitsSize, ZL_RC_avail(in)); + ZL_ERR_IF_GT(offbitsSize, ZL_RC_avail(in), srcSize_tooSmall); ZL_RC_advance(in, offbitsSize); ZS_BitDStreamFF offbits = ZS_BitDStreamFF_init(offbitsBuffer, offbitsSize); ZL_DLOG(V9, "OBITS stream size = %u", (unsigned)offbitsSize); @@ -1066,9 +1070,10 @@ static ZL_UNUSED_ATTR ZL_Report decodeOffbits( size_t numOffsets, ZL_RC* in) { - if (0) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + if ((0)) { ZS_BitDStreamFF offbits; - ZL_RET_R_IF_ERR(getBitstream(&offbits, in)); + ZL_ERR_IF_ERR(getBitstream(&offbits, in)); uint32_t* const offsets1 = offsets; for (size_t o = 0; o < numOffsets; o += 3) { for (size_t u = 0; u < 3; ++u) { @@ -1085,8 +1090,8 @@ static ZL_UNUSED_ATTR ZL_Report decodeOffbits( } else { ZS_BitDStreamFF offbits0; ZS_BitDStreamFF offbits1; - ZL_RET_R_IF_ERR(getBitstream(&offbits0, in)); - ZL_RET_R_IF_ERR(getBitstream(&offbits1, in)); + ZL_ERR_IF_ERR(getBitstream(&offbits0, in)); + ZL_ERR_IF_ERR(getBitstream(&offbits1, in)); // ZS_BitDStreamFF offbits2 = getBitstream(in); // ZS_BitDStreamFF offbits3 = getBitstream(in); for (size_t o = 0; o < numOffsets; o += 4) { @@ -1255,6 +1260,7 @@ static ZL_Report ZS_fastDecoder_decompress( uint8_t const* const src, size_t size) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); (void)ctx; uint8_t* const ostart = dst; uint8_t* op = ostart; @@ -1270,19 +1276,19 @@ static ZL_Report ZS_fastDecoder_decompress( // Bounds checks ZS_window window; uint32_t rep = kMinOffset; - ZL_RET_R_IF(GENERIC, ZS_window_init(&window, (uint32_t)(oend - ostart), 8)); + ZL_ERR_IF(ZS_window_init(&window, (uint32_t)(oend - ostart), 8), GENERIC); - ZL_TRY_LET_R(numLiterals, getDecodedSize(in, 1)); - ZL_RET_R_IF_GE(GENERIC, numLiterals, (1 << 30), "too many literals"); + ZL_TRY_LET(size_t, numLiterals, getDecodedSize(in, 1)); + ZL_ERR_IF_GE(numLiterals, (1 << 30), GENERIC, "too many literals"); uint8_t const* litsBuffer; - ZL_TRY_LET_R(rawLits, isRaw(in)); + ZL_TRY_LET(size_t, rawLits, isRaw(in)); if (rawLits) { litsBuffer = getRawBuffer(&in, 1); - ZL_RET_R_IF_NULL(GENERIC, litsBuffer); + ZL_ERR_IF_NULL(litsBuffer, GENERIC); } else { litsBufferMalloc = (uint8_t*)ZL_malloc(numLiterals + ZS_WILDCOPY_OVERLENGTH); - ZL_RET_R_IF_NULL(allocation, litsBufferMalloc); + ZL_ERR_IF_NULL(litsBufferMalloc, allocation); ZL_GOTO_IF_ERR( _error, decodeLiterals( @@ -1394,7 +1400,7 @@ static ZL_Report ZS_fastDecoder_decompress( do { \ uint32_t off = ofs[k & 3]; \ len_t const tok = ZL_read16(&tks[k]); \ - ZL_ASSERT_NE(tok&(size_t)~3, 0); \ + ZL_ASSERT_NE(tok & (size_t)~3, 0); \ len_t const llen = (tok >> kTokenOFBits) & kTokenLLMask; \ len_t const mlen = \ (tok >> (kTokenOFBits + kTokenLLBits)) & kTokenMLMask; \ @@ -1743,12 +1749,12 @@ static ZL_Report ZS_fastDecoder_decompress( ZL_free(tokensBufferMalloc); ZL_free(litsBufferMalloc); - return ZL_returnValue((size_t)(op - ostart)); + return ZL_WRAP_VALUE((size_t)(op - ostart)); _error: ZL_free(tokensBufferMalloc); ZL_free(litsBufferMalloc); - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } const ZS_decoder ZS_fastDecoder = { diff --git a/src/openzl/codecs/rolz/decode_rolz_binding.c b/src/openzl/codecs/rolz/decode_rolz_binding.c index 98778e39c..9cfbe5d30 100644 --- a/src/openzl/codecs/rolz/decode_rolz_binding.c +++ b/src/openzl/codecs/rolz/decode_rolz_binding.c @@ -8,6 +8,7 @@ // ZL_TypedEncoderFn ZL_Report DI_rolz_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -16,28 +17,29 @@ ZL_Report DI_rolz_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_ASSERT_EQ(ZL_Input_eltWidth(in), 1); const void* const src = ZL_Input_ptr(in); size_t const srcSize = ZL_Input_numElts(in); - ZL_RET_R_IF_LT(srcSize_tooSmall, srcSize, 4); + ZL_ERR_IF_LT(srcSize, 4, srcSize_tooSmall); size_t const dstCapacity = ZL_readLE32(src); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); void* const dst = ZL_Output_ptr(out); // TODO(@Cyan): it seems rolz transform still uses the older (deprecated & // incompatible) ZL_Report interface. To be updated ZL_Report const r = ZL_rolzDecompress( dst, dstCapacity, (const char*)src + 4, srcSize - 4); - ZL_RET_R_IF(transform_executionFailure, ZL_isError(r)); - ZL_RET_R_IF_NE( - GENERIC, + ZL_ERR_IF(ZL_isError(r), transform_executionFailure); + ZL_ERR_IF_NE( ZL_validResult(r), dstCapacity, + GENERIC, "corruption: wrong output size"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstCapacity)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstCapacity)); return ZL_returnValue(1); } // ZL_TypedEncoderFn ZL_Report DI_fastlz_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -46,22 +48,21 @@ ZL_Report DI_fastlz_typed(ZL_Decoder* dictx, const ZL_Input* ins[]) ZL_ASSERT_EQ(ZL_Input_eltWidth(in), 1); const void* const src = ZL_Input_ptr(in); size_t const srcSize = ZL_Input_numElts(in); - ZL_RET_R_IF_LT(srcSize_tooSmall, srcSize, 4); + ZL_ERR_IF_LT(srcSize, 4, srcSize_tooSmall); size_t const dstCapacity = ZL_readLE32(src); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); void* const dst = ZL_Output_ptr(out); // TODO(@Cyan): it seems fastlz transform still uses the older (deprecated & // incompatible) ZL_Report interface. To be updated ZL_Report const r = ZS_fastLzDecompress( dst, dstCapacity, (const char*)src + 4, srcSize - 4); - ZL_RET_R_IF( - GENERIC, ZL_isError(r), "corruption: ZS_fastLzDecompress failed"); - ZL_RET_R_IF_NE( - GENERIC, + ZL_ERR_IF(ZL_isError(r), GENERIC, "corruption: ZS_fastLzDecompress failed"); + ZL_ERR_IF_NE( ZL_validResult(r), dstCapacity, + GENERIC, "corruption: wrong output size"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstCapacity)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstCapacity)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/rolz/decode_rolz_binding.h b/src/openzl/codecs/rolz/decode_rolz_binding.h index 0be3f40c1..7bc853b1c 100644 --- a/src/openzl/codecs/rolz/decode_rolz_binding.h +++ b/src/openzl/codecs/rolz/decode_rolz_binding.h @@ -15,15 +15,9 @@ ZL_Report DI_fastlz_typed(ZL_Decoder* dictx, const ZL_Input* in[]); // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define DI_ROLZ(id) \ - { \ - .transform_f = DI_rolz_typed, .name = "rolz" \ - } - -#define DI_FASTLZ(id) \ - { \ - .transform_f = DI_fastlz_typed, .name = "fast lz" \ - } +#define DI_ROLZ(id) { .transform_f = DI_rolz_typed, .name = "rolz" } + +#define DI_FASTLZ(id) { .transform_f = DI_fastlz_typed, .name = "fast lz" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/rolz/decode_rolz_kernel.c b/src/openzl/codecs/rolz/decode_rolz_kernel.c index f20ebf5d6..9c1ba9f10 100644 --- a/src/openzl/codecs/rolz/decode_rolz_kernel.c +++ b/src/openzl/codecs/rolz/decode_rolz_kernel.c @@ -12,15 +12,16 @@ ZL_Report ZL_rolzDecompress( void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_decoderCtx* const ctx = ZS_rolzDecoder->ctx_create(); if (ctx == NULL) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_Report const dstSize = ZS_rolzDecoder->decompress( ctx, (uint8_t*)dst, dstCapacity, (uint8_t const*)src, srcSize); ZS_rolzDecoder->ctx_release(ctx); if (ZL_isError(dstSize)) - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); return dstSize; } @@ -30,15 +31,16 @@ ZL_Report ZS_fastLzDecompress( void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZS_decoderCtx* const ctx = ZS_fastLzDecoder->ctx_create(); if (ctx == NULL) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } ZL_Report const dstSize = ZS_fastLzDecoder->decompress( ctx, (uint8_t*)dst, dstCapacity, (uint8_t const*)src, srcSize); ZS_fastLzDecoder->ctx_release(ctx); if (ZL_isError(dstSize)) - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); return dstSize; } @@ -154,6 +156,7 @@ ZL_Report ZS_RolzDTable2_init( uint32_t minLength, bool predictMatchLength) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); table->contextDepth = contextDepth; table->contextLog = contextLog; table->rowLog = rowLog; @@ -163,7 +166,7 @@ ZL_Report ZS_RolzDTable2_init( size_t const tableSize = sizeof(*table->table) << (contextLog + rowLog); table->table = (ZS_RolzDEntry2*)ZL_calloc(tableSize); if (table->table == NULL) - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/rolz/encode_experimental_enc.c b/src/openzl/codecs/rolz/encode_experimental_enc.c index 31c9d01d3..af6ea1875 100644 --- a/src/openzl/codecs/rolz/encode_experimental_enc.c +++ b/src/openzl/codecs/rolz/encode_experimental_enc.c @@ -9,7 +9,6 @@ #include "openzl/codecs/entropy/deprecated/common_entropy.h" #include "openzl/codecs/entropy/deprecated/encode_fse_kernel.h" -#include "openzl/codecs/entropy/encode_huffman_kernel.h" #include "openzl/codecs/rolz/common_markov.h" #include "openzl/codecs/rolz/encode_encoder.h" #include "openzl/common/cursor.h" diff --git a/src/openzl/codecs/rolz/encode_fast_enc.c b/src/openzl/codecs/rolz/encode_fast_enc.c index 843559551..f65327ab1 100644 --- a/src/openzl/codecs/rolz/encode_fast_enc.c +++ b/src/openzl/codecs/rolz/encode_fast_enc.c @@ -9,13 +9,10 @@ #define FSE_STATIC_LINKING_ONLY #include "openzl/codecs/entropy/deprecated/common_entropy.h" -#include "openzl/codecs/entropy/deprecated/encode_fse_kernel.h" -#include "openzl/codecs/entropy/encode_huffman_kernel.h" #include "openzl/codecs/rolz/encode_encoder.h" #include "openzl/common/cursor.h" #include "openzl/common/limits.h" #include "openzl/common/vector.h" -#include "openzl/fse/fse.h" #include "openzl/shared/mem.h" #define kTokenOFBits 2 diff --git a/src/openzl/codecs/rolz/encode_match_finder_lazy.c b/src/openzl/codecs/rolz/encode_match_finder_lazy.c index ac141d20c..644134849 100644 --- a/src/openzl/codecs/rolz/encode_match_finder_lazy.c +++ b/src/openzl/codecs/rolz/encode_match_finder_lazy.c @@ -181,7 +181,7 @@ ZL_FORCE_INLINE ZS_RolzMatch ZS_rolz_findBestMatch2( size_t nbSearches = rolz->nbSearches; { ZL_VecMask matches; - if (1) { + if ((1)) { if (rolz->rowLog <= 4) { ZL_Vec128 const hashes = ZL_Vec128_read(rowStart + kRolzHashOffset); @@ -1605,7 +1605,7 @@ ZL_FORCE_INLINE bool search( } //> Rolz match - if (rolzEnabled && (1 || ip - anchor < contextDepth)) { + if (rolzEnabled && ((1) || ip - anchor < contextDepth)) { ZS_RolzMatch const m = ZS_rolz_findBestMatch2( rolz, window, diff --git a/src/openzl/codecs/rolz/encode_rolz_binding.c b/src/openzl/codecs/rolz/encode_rolz_binding.c index 66ea3d34f..4a3288536 100644 --- a/src/openzl/codecs/rolz/encode_rolz_binding.c +++ b/src/openzl/codecs/rolz/encode_rolz_binding.c @@ -10,6 +10,7 @@ // ZL_TypedEncoderFn ZL_Report EI_rolz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -23,7 +24,7 @@ ZL_Report EI_rolz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_GE(dstCapacity, 4); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); void* const dst = ZL_Output_ptr(out); ZL_ASSERT_LT(srcSize, INT_MAX); ZL_writeLE32(dst, (uint32_t)srcSize); @@ -32,9 +33,9 @@ ZL_Report EI_rolz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // deprecated) ZL_Report API To be updated ZL_Report const r = ZS_rolzCompress((char*)dst + 4, dstCapacity - 4, src, srcSize); - ZL_RET_R_IF(transform_executionFailure, ZL_isError(r)); + ZL_ERR_IF(ZL_isError(r), transform_executionFailure); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, ZL_validResult(r) + 4)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, ZL_validResult(r) + 4)); return ZL_returnValue(1); } @@ -42,6 +43,7 @@ ZL_Report EI_rolz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_Report EI_fastlz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -55,7 +57,7 @@ EI_fastlz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) ZL_ASSERT_GE(dstCapacity, 4); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); void* const dst = ZL_Output_ptr(out); ZL_ASSERT_LT(srcSize, INT_MAX); ZL_writeLE32(dst, (uint32_t)srcSize); @@ -64,9 +66,9 @@ EI_fastlz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // deprecated) ZL_Report API To be updated ZL_Report const r = ZS_fastLzCompress((char*)dst + 4, dstCapacity - 4, src, srcSize); - ZL_RET_R_IF(transform_executionFailure, ZL_isError(r)); + ZL_ERR_IF(ZL_isError(r), transform_executionFailure); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, ZL_validResult(r) + 4)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, ZL_validResult(r) + 4)); return ZL_returnValue(1); } @@ -77,7 +79,7 @@ EI_fastlz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) * =============================================== */ -// ZL_PipeDstCapacityFn +// ZL_CPipeDstCapacityFn size_t EI_rolz_dstBound(const void* src, size_t srcSize) { (void)src; @@ -106,7 +108,7 @@ size_t EI_rolz(void* dst, size_t dstCapacity, const void* src, size_t srcSize) return ZL_validResult(r) + 4; } -// ZL_PipeDstCapacityFn +// ZL_CPipeDstCapacityFn size_t EI_fastlz_dstBound(const void* src, size_t srcSize) { (void)src; diff --git a/src/openzl/codecs/rolz/encode_rolz_binding.h b/src/openzl/codecs/rolz/encode_rolz_binding.h index a8e71abbd..df23f3441 100644 --- a/src/openzl/codecs/rolz/encode_rolz_binding.h +++ b/src/openzl/codecs/rolz/encode_rolz_binding.h @@ -16,17 +16,15 @@ EI_fastlz_typed(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define EI_ROLZ(id) \ - { \ - .gd = PIPE_GRAPH(id), .transform_f = EI_rolz_typed, \ - .name = "!zl.private.rolz_deprecated" \ - } - -#define EI_FASTLZ(id) \ - { \ - .gd = PIPE_GRAPH(id), .transform_f = EI_fastlz_typed, \ - .name = "!zl.private.fast_lz_deprecated" \ - } +#define EI_ROLZ(id) \ + { .gd = PIPE_GRAPH(id), \ + .transform_f = EI_rolz_typed, \ + .name = "!zl.private.rolz_deprecated" } + +#define EI_FASTLZ(id) \ + { .gd = PIPE_GRAPH(id), \ + .transform_f = EI_fastlz_typed, \ + .name = "!zl.private.fast_lz_deprecated" } /* ============================================= * LEGACY transforms diff --git a/src/openzl/codecs/rolz/encode_rolz_kernel.c b/src/openzl/codecs/rolz/encode_rolz_kernel.c index cd4ea767d..7cd4b422d 100644 --- a/src/openzl/codecs/rolz/encode_rolz_kernel.c +++ b/src/openzl/codecs/rolz/encode_rolz_kernel.c @@ -96,6 +96,7 @@ static ZS_EncoderParameters ZS_encoderParams( ZL_Report ZS_rolzCompress(void* dst, size_t dstCapacity, void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report ret; // Initialization int error = 0; @@ -136,6 +137,7 @@ ZL_Report ZS_fastLzCompress( void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report ret; // Initialization int error = 0; diff --git a/src/openzl/codecs/sentinel/decode_sentinel_binding.c b/src/openzl/codecs/sentinel/decode_sentinel_binding.c new file mode 100644 index 000000000..590272565 --- /dev/null +++ b/src/openzl/codecs/sentinel/decode_sentinel_binding.c @@ -0,0 +1,62 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#include "openzl/codecs/sentinel/decode_sentinel_binding.h" + +#include "openzl/codecs/sentinel/decode_sentinel_kernel.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/utils.h" +#include "openzl/shared/varint.h" +#include "openzl/zl_dtransform.h" + +ZL_Report DI_sentinel(ZL_Decoder* dictx, const ZL_Input* ins[]) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); + ZL_ASSERT_NN(dictx); + ZL_ASSERT_NN(ins); + + const ZL_Input* const valuesIn = ins[0]; + const ZL_Input* const exceptionsIn = ins[1]; + + ZL_ASSERT_EQ(ZL_Input_type(valuesIn), ZL_Type_numeric); + ZL_ASSERT_EQ(ZL_Input_type(exceptionsIn), ZL_Type_numeric); + + const size_t valWidth = ZL_Input_eltWidth(valuesIn); + const size_t outWidth = ZL_Input_eltWidth(exceptionsIn); + const size_t numElts = ZL_Input_numElts(valuesIn); + const size_t numExceptions = ZL_Input_numElts(exceptionsIn); + + ZL_ERR_IF_GT(valWidth, outWidth, corruption, "values width > output width"); + + /* Read codec header to determine sentinel */ + const ZL_RBuffer header = ZL_Decoder_getCodecHeader(dictx); + + const uint64_t maxVal = ZL_maxValueForWidth(valWidth); + uint64_t sentinel = maxVal; + + if (header.size > 0) { + const uint8_t* hdr = (const uint8_t*)header.start; + ZL_TRY_LET(uint64_t, decoded, ZL_varintDecode(&hdr, hdr + header.size)); + sentinel = decoded; + ZL_ERR_IF_GT( + sentinel, maxVal, corruption, "sentinel exceeds values width"); + } + + /* Create output stream at outWidth */ + ZL_Output* const out = + ZL_Decoder_create1OutStream(dictx, numElts, outWidth); + ZL_ERR_IF_NULL(out, allocation); + + const int rc = ZL_sentinelDecode( + ZL_Output_ptr(out), + ZL_Input_ptr(valuesIn), + ZL_Input_ptr(exceptionsIn), + numElts, + numExceptions, + valWidth, + outWidth, + sentinel); + ZL_ERR_IF_NE(rc, 0, corruption, "sentinel decode failed"); + + ZL_ERR_IF_ERR(ZL_Output_commit(out, numElts)); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/sentinel/decode_sentinel_binding.h b/src/openzl/codecs/sentinel/decode_sentinel_binding.h new file mode 100644 index 000000000..3842cb249 --- /dev/null +++ b/src/openzl/codecs/sentinel/decode_sentinel_binding.h @@ -0,0 +1,22 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_SENTINEL_DECODE_SENTINEL_BINDING_H +#define OPENZL_CODECS_SENTINEL_DECODE_SENTINEL_BINDING_H + +#include "openzl/codecs/sentinel/graph_sentinel.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_dtransform.h" + +ZL_BEGIN_C_DECLS + +/// Decoder binding for the sentinel transform. +/// Reads the codec header to determine the sentinel value, then decodes +/// values + exceptions back into the original input. +ZL_Report DI_sentinel(ZL_Decoder* dictx, const ZL_Input* ins[]); + +/// Macro to register the sentinel decoder transform. +#define DI_SENTINEL(id) \ + { .transform_f = DI_sentinel, .name = "!zl.sentinel_num" } + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/sentinel/decode_sentinel_kernel.c b/src/openzl/codecs/sentinel/decode_sentinel_kernel.c new file mode 100644 index 000000000..9ec181dd3 --- /dev/null +++ b/src/openzl/codecs/sentinel/decode_sentinel_kernel.c @@ -0,0 +1,148 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#include "openzl/codecs/sentinel/decode_sentinel_kernel.h" + +#include + +#include "openzl/shared/mem.h" + +ZL_FORCE_INLINE int ZL_sentinelDecode_impl( + void* output, + const void* values, + const void* exceptions, + size_t numElts, + size_t numExceptions, + size_t kValWidth, + size_t kOutWidth, + uint64_t sentinel) +{ + const uint8_t* const valPtr = (const uint8_t*)values; + const uint8_t* const excPtr = (const uint8_t*)exceptions; + uint8_t* const outPtr = (uint8_t*)output; + + size_t excIdx = 0; + for (size_t i = 0; i < numElts; ++i) { + const uint64_t v = ZL_readN(valPtr + i * kValWidth, kValWidth); + if (ZL_LIKELY(v != sentinel)) { + /* zero-extend from valWidth to outWidth */ + ZL_writeN(outPtr + i * kOutWidth, v, kOutWidth); + } else { + if (excIdx >= numExceptions) { + return 1; /* corruption: not enough exceptions */ + } + const uint64_t exc = + ZL_readN(excPtr + excIdx * kOutWidth, kOutWidth); + ZL_writeN(outPtr + i * kOutWidth, exc, kOutWidth); + ++excIdx; + } + } + + if (excIdx != numExceptions) { + return 2; /* corruption: unconsumed exceptions */ + } + + return 0; +} + +static int ZL_sentinelDecode_generic( + void* output, + const void* values, + const void* exceptions, + size_t numElts, + size_t numExceptions, + size_t valWidth, + size_t outWidth, + uint64_t sentinel) +{ + return ZL_sentinelDecode_impl( + output, + values, + exceptions, + numElts, + numExceptions, + valWidth, + outWidth, + sentinel); +} + +#define ZL_GEN_SENTINEL_DECODE_IMPL(v, o) \ + static int ZL_sentinelDecode_##v##_##o( \ + void* output, \ + const void* values, \ + const void* exceptions, \ + size_t numElts, \ + size_t numExceptions, \ + uint64_t sentinel) \ + { \ + return ZL_sentinelDecode_impl( \ + output, \ + values, \ + exceptions, \ + numElts, \ + numExceptions, \ + v, \ + o, \ + sentinel); \ + } + +ZL_GEN_SENTINEL_DECODE_IMPL(1, 2) +ZL_GEN_SENTINEL_DECODE_IMPL(1, 4) +ZL_GEN_SENTINEL_DECODE_IMPL(1, 8) + +ZL_GEN_SENTINEL_DECODE_IMPL(1, 1) +ZL_GEN_SENTINEL_DECODE_IMPL(2, 2) +ZL_GEN_SENTINEL_DECODE_IMPL(4, 4) +ZL_GEN_SENTINEL_DECODE_IMPL(8, 8) + +int ZL_sentinelDecode( + void* output, + const void* values, + const void* exceptions, + size_t numElts, + size_t numExceptions, + size_t valWidth, + size_t outWidth, + uint64_t sentinel) +{ + assert(valWidth == 1 || valWidth == 2 || valWidth == 4 || valWidth == 8); + assert(outWidth == 1 || outWidth == 2 || outWidth == 4 || outWidth == 8); + assert(valWidth <= outWidth); + +#define ZL_SENTINEL_DECODE_IMPL(v, o) \ + ZL_sentinelDecode_##v##_##o( \ + output, values, exceptions, numElts, numExceptions, sentinel) + + if (valWidth == 1 && outWidth > 1) { + switch (outWidth) { + case 2: + return ZL_SENTINEL_DECODE_IMPL(1, 2); + case 4: + return ZL_SENTINEL_DECODE_IMPL(1, 4); + case 8: + return ZL_SENTINEL_DECODE_IMPL(1, 8); + } + assert(false); + } else if (valWidth == outWidth) { + switch (valWidth) { + case 1: + return ZL_SENTINEL_DECODE_IMPL(1, 1); + case 2: + return ZL_SENTINEL_DECODE_IMPL(2, 2); + case 4: + return ZL_SENTINEL_DECODE_IMPL(4, 4); + case 8: + return ZL_SENTINEL_DECODE_IMPL(8, 8); + } + assert(false); + } + return ZL_sentinelDecode_generic( + output, + values, + exceptions, + numElts, + numExceptions, + valWidth, + outWidth, + sentinel); + +#undef ZL_SENTINEL_DECODE_IMPL +} diff --git a/src/openzl/codecs/sentinel/decode_sentinel_kernel.h b/src/openzl/codecs/sentinel/decode_sentinel_kernel.h new file mode 100644 index 000000000..d9d96893d --- /dev/null +++ b/src/openzl/codecs/sentinel/decode_sentinel_kernel.h @@ -0,0 +1,42 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_SENTINEL_DECODE_SENTINEL_KERNEL_H +#define OPENZL_CODECS_SENTINEL_DECODE_SENTINEL_KERNEL_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Decode sentinel-encoded data. + * + * Values equal to @p sentinel are replaced by the next exception. + * Non-sentinel values are zero-extended from @p valWidth to @p outWidth. + * + * @param output Output buffer (outWidth * numElts bytes) + * @param values Values stream (valWidth bytes per element) + * @param exceptions Exceptions stream (outWidth bytes per element) + * @param numElts Number of elements in the values stream + * @param numExceptions Number of elements in the exceptions stream + * @param valWidth Element width of the values stream (bytes) + * @param outWidth Element width of the output/exceptions stream (bytes) + * @param sentinel The sentinel value (compared at valWidth) + * @returns 0 on success, non-zero on error + */ +int ZL_sentinelDecode( + void* output, + const void* values, + const void* exceptions, + size_t numElts, + size_t numExceptions, + size_t valWidth, + size_t outWidth, + uint64_t sentinel); + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/src/openzl/codecs/sentinel/encode_sentinel_binding.c b/src/openzl/codecs/sentinel/encode_sentinel_binding.c new file mode 100644 index 000000000..fe9eda641 --- /dev/null +++ b/src/openzl/codecs/sentinel/encode_sentinel_binding.c @@ -0,0 +1,151 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#include "openzl/codecs/sentinel/encode_sentinel_binding.h" + +#include "openzl/codecs/sentinel/encode_sentinel_kernel.h" +#include "openzl/codecs/zl_sentinel.h" +#include "openzl/common/assertion.h" +#include "openzl/shared/utils.h" +#include "openzl/shared/varint.h" +#include "openzl/zl_ctransform.h" + +/// Send the codec header. Empty if sentinel == max value for valWidth, +/// otherwise varint-encoded sentinel. +static void +sendSentinelHeader(ZL_Encoder* eictx, uint64_t sentinel, size_t valWidth) +{ + if (sentinel == ZL_maxValueForWidth(valWidth)) { + // Default sentinel: empty header + return; + } + uint8_t buf[ZL_VARINT_LENGTH_64]; + const size_t size = ZL_varintEncode(sentinel, buf); + ZL_Encoder_sendCodecHeader(eictx, buf, size); +} + +ZL_Report +EI_sentinel_byte(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* const in = ins[0]; + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + + const size_t eltWidth = ZL_Input_eltWidth(in); + const size_t numElts = ZL_Input_numElts(in); + + ZL_ERR_IF_EQ( + eltWidth, + 1, + node_invalid_input, + "sentinel_byte does not accept 1-byte inputs"); + + /* Output 0: values at 1 byte per element */ + ZL_Output* const valuesOut = + ZL_Encoder_createTypedStream(eictx, 0, numElts, 1); + ZL_ERR_IF_NULL(valuesOut, allocation); + + /* Output 1: exceptions at original width (worst case: all elements) */ + ZL_Output* const exceptionsOut = + ZL_Encoder_createTypedStream(eictx, 1, numElts, eltWidth); + ZL_ERR_IF_NULL(exceptionsOut, allocation); + + const size_t numExceptions = ZL_sentinelByteEncode( + (uint8_t*)ZL_Output_ptr(valuesOut), + ZL_Output_ptr(exceptionsOut), + ZL_Input_ptr(in), + numElts, + eltWidth); + + ZL_ERR_IF_ERR(ZL_Output_commit(valuesOut, numElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(exceptionsOut, numExceptions)); + + return ZL_returnSuccess(); +} + +ZL_Report EI_sentinel(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* const in = ins[0]; + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + + const size_t eltWidth = ZL_Input_eltWidth(in); + const size_t numElts = ZL_Input_numElts(in); + + /* Read exception indices from ref param */ + const ZL_RefParam indicesParam = + ZL_Encoder_getLocalParam(eictx, ZL_SENTINEL_INDICES_PID); + ZL_ERR_IF_NE( + indicesParam.paramId, + ZL_SENTINEL_INDICES_PID, + nodeParameter_invalid, + "Missing indices"); + const size_t* const exceptionIndices = (const size_t*)indicesParam.paramRef; + const size_t numExceptions = indicesParam.paramSize / sizeof(size_t); + + /* Read sentinel from ref param (optional, defaults to max for width) */ + const uint64_t maxVal = ZL_maxValueForWidth(eltWidth); + uint64_t sentinel = maxVal; + const ZL_RefParam sentinelParam = + ZL_Encoder_getLocalParam(eictx, ZL_SENTINEL_VALUE_PID); + if (sentinelParam.paramRef != NULL) { + ZL_ERR_IF_NE( + sentinelParam.paramSize, + sizeof(uint64_t), + nodeParameter_invalid, + "Sentinel value must be 64 bits"); + memcpy(&sentinel, sentinelParam.paramRef, sizeof(uint64_t)); + } + // Mask the sentinel to the width of the input to allow for signed types + // passed as uint64_t. + sentinel &= maxVal; + + /* Output 0: values at same width */ + ZL_Output* const valuesOut = + ZL_Encoder_createTypedStream(eictx, 0, numElts, eltWidth); + ZL_ERR_IF_NULL(valuesOut, allocation); + + /* Output 1: exceptions at same width */ + ZL_Output* const exceptionsOut = + ZL_Encoder_createTypedStream(eictx, 1, numExceptions, eltWidth); + ZL_ERR_IF_NULL(exceptionsOut, allocation); + + const int rc = ZL_sentinelEncode( + ZL_Output_ptr(valuesOut), + ZL_Output_ptr(exceptionsOut), + ZL_Input_ptr(in), + numElts, + eltWidth, + exceptionIndices, + numExceptions, + sentinel); + ZL_ERR_IF_NE(rc, 0, GENERIC, "Sentinel encode validation failed"); + + sendSentinelHeader(eictx, sentinel, eltWidth); + + ZL_ERR_IF_ERR(ZL_Output_commit(valuesOut, numElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(exceptionsOut, numExceptions)); + + return ZL_returnSuccess(); +} + +ZL_RESULT_OF(ZL_EdgeList) +ZL_Edge_runSentinelNode( + ZL_Edge* input, + const size_t* exceptionIndices, + size_t numExceptions, + uint64_t sentinel) +{ + const ZL_RefParam refParams[2] = { + { ZL_SENTINEL_INDICES_PID, + exceptionIndices, + numExceptions * sizeof(size_t) }, + { ZL_SENTINEL_VALUE_PID, &sentinel, sizeof(uint64_t) }, + }; + const ZL_LocalParams lp = { + .refParams = { refParams, 2 }, + }; + return ZL_Edge_runNode_withParams(input, ZL_NODE_SENTINEL_NUM, &lp); +} diff --git a/src/openzl/codecs/sentinel/encode_sentinel_binding.h b/src/openzl/codecs/sentinel/encode_sentinel_binding.h new file mode 100644 index 000000000..a8f94230d --- /dev/null +++ b/src/openzl/codecs/sentinel/encode_sentinel_binding.h @@ -0,0 +1,34 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_SENTINEL_ENCODE_SENTINEL_BINDING_H +#define OPENZL_CODECS_SENTINEL_ENCODE_SENTINEL_BINDING_H + +#include "openzl/codecs/sentinel/graph_sentinel.h" +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" + +ZL_BEGIN_C_DECLS + +/// Encoder binding for sentinel_byte: narrows values < 255 to 1 byte, +/// exceptions (>= 255) stored at original width. Sentinel = 255. +ZL_Report +EI_sentinel_byte(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +/// Encoder binding for general sentinel: exception indices and sentinel value +/// are read from local params. +ZL_Report EI_sentinel(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +/// Macro to register the sentinel_byte encoder transform. +#define EI_SENTINEL_BYTE(id) \ + { .gd = SENTINEL_GRAPH(id), \ + .transform_f = EI_sentinel_byte, \ + .name = "!zl.sentinel_byte" } + +/// Macro to register the general sentinel encoder transform. +#define EI_SENTINEL(id) \ + { .gd = SENTINEL_GRAPH(id), \ + .transform_f = EI_sentinel, \ + .name = "!zl.sentinel_num" } + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/codecs/sentinel/encode_sentinel_kernel.c b/src/openzl/codecs/sentinel/encode_sentinel_kernel.c new file mode 100644 index 000000000..b87395d8f --- /dev/null +++ b/src/openzl/codecs/sentinel/encode_sentinel_kernel.c @@ -0,0 +1,96 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#include "openzl/codecs/sentinel/encode_sentinel_kernel.h" + +#include + +#include "openzl/shared/mem.h" +#include "openzl/shared/portability.h" +#include "openzl/shared/utils.h" + +ZL_FORCE_INLINE size_t ZL_sentinelByteEncode_impl( + uint8_t* values, + void* exceptions, + const void* input, + size_t numElts, + size_t kEltWidth) +{ + const uint8_t* const inPtr = (const uint8_t*)input; + uint8_t* const excPtr = (uint8_t*)exceptions; + + size_t numExceptions = 0; + for (size_t i = 0; i < numElts; ++i) { + const uint64_t v = ZL_readN(inPtr + i * kEltWidth, kEltWidth); + if (ZL_LIKELY(v < 255)) { + values[i] = (uint8_t)v; + } else { + values[i] = 255; + ZL_writeN(excPtr + numExceptions * kEltWidth, v, kEltWidth); + ++numExceptions; + } + } + return numExceptions; +} + +size_t ZL_sentinelByteEncode( + uint8_t* values, + void* exceptions, + const void* input, + size_t numElts, + size_t eltWidth) +{ + assert(eltWidth == 2 || eltWidth == 4 || eltWidth == 8); + switch (eltWidth) { + case 2: + return ZL_sentinelByteEncode_impl( + values, exceptions, input, numElts, 2); + case 4: + return ZL_sentinelByteEncode_impl( + values, exceptions, input, numElts, 4); + case 8: + return ZL_sentinelByteEncode_impl( + values, exceptions, input, numElts, 8); + } + assert(false); + return 0; +} + +int ZL_sentinelEncode( + void* values, + void* exceptions, + const void* input, + size_t numElts, + size_t eltWidth, + const size_t* exceptionIndices, + size_t numExceptions, + uint64_t sentinel) +{ + assert(eltWidth == 1 || eltWidth == 2 || eltWidth == 4 || eltWidth == 8); + assert((sentinel & ZL_maxValueForWidth(eltWidth)) == sentinel); + + const uint8_t* const inPtr = (const uint8_t*)input; + uint8_t* const valPtr = (uint8_t*)values; + uint8_t* const excPtr = (uint8_t*)exceptions; + + size_t excIdx = 0; + for (size_t i = 0; i < numElts; ++i) { + const uint64_t v = ZL_readN(inPtr + i * eltWidth, eltWidth); + if (excIdx < numExceptions && exceptionIndices[excIdx] == i) { + ZL_writeN(valPtr + i * eltWidth, sentinel, eltWidth); + ZL_writeN(excPtr + excIdx * eltWidth, v, eltWidth); + ++excIdx; + } else { + if (v == sentinel) { + return 1; /* validation failure: sentinel in non-exception + position */ + } + ZL_writeN(valPtr + i * eltWidth, v, eltWidth); + } + } + + /* All exception indices must have been consumed */ + if (excIdx != numExceptions) { + return 2; /* validation failure: out-of-range indices */ + } + + return 0; +} diff --git a/src/openzl/codecs/sentinel/encode_sentinel_kernel.h b/src/openzl/codecs/sentinel/encode_sentinel_kernel.h new file mode 100644 index 000000000..563929de5 --- /dev/null +++ b/src/openzl/codecs/sentinel/encode_sentinel_kernel.h @@ -0,0 +1,63 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_SENTINEL_ENCODE_SENTINEL_KERNEL_H +#define OPENZL_CODECS_SENTINEL_ENCODE_SENTINEL_KERNEL_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Sentinel-byte encode: values < 255 are stored as 1 byte in @p values, + * values >= 255 are stored at full width in @p exceptions with sentinel 255 + * placed into @p values. + * + * @param values Output: 1 byte per element (sentinel or narrowed + * value) + * @param exceptions Output: full-width exceptions (eltWidth bytes each) + * @param input Input elements (eltWidth bytes each) + * @param numElts Number of input elements + * @param eltWidth Width of each input element in bytes (2, 4, or 8). + * Must be > 1 (1-byte inputs make no sense for + * byte-narrowing). + * @returns Number of exceptions written + */ +size_t ZL_sentinelByteEncode( + uint8_t* values, + void* exceptions, + const void* input, + size_t numElts, + size_t eltWidth); + +/** + * General sentinel encode: places sentinel at exception positions and copies + * non-exception values to the values stream at the same width. Exception + * values are copied to the exceptions stream. + * + * @param values Output values (eltWidth bytes per element, numElts) + * @param exceptions Output exceptions (eltWidth bytes per element) + * @param input Input elements (eltWidth bytes per element) + * @param numElts Number of input elements + * @param eltWidth Width of each element in bytes (1, 2, 4, or 8) + * @param exceptionIndices Sorted array of exception indices + * @param numExceptions Number of exception indices + * @param sentinel The sentinel value (must fit in eltWidth) + * @returns 0 on success, non-zero on validation failure + */ +int ZL_sentinelEncode( + void* values, + void* exceptions, + const void* input, + size_t numElts, + size_t eltWidth, + const size_t* exceptionIndices, + size_t numExceptions, + uint64_t sentinel); + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/src/openzl/codecs/sentinel/graph_sentinel.h b/src/openzl/codecs/sentinel/graph_sentinel.h new file mode 100644 index 000000000..dde521405 --- /dev/null +++ b/src/openzl/codecs/sentinel/graph_sentinel.h @@ -0,0 +1,19 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +#ifndef OPENZL_CODECS_SENTINEL_GRAPH_SENTINEL_H +#define OPENZL_CODECS_SENTINEL_GRAPH_SENTINEL_H + +/// Graph definition for the sentinel transform +/// used by both the encoder and decoder side. +/// +/// Input: 1 numeric stream (any width) +/// Output 0: numeric stream of values (possibly narrower width) +/// Output 1: numeric stream of exceptions (same width as input) + +#define SENTINEL_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_numeric), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_numeric, ZL_Type_numeric), \ + } + +#endif diff --git a/src/openzl/codecs/sentinel/spec.md b/src/openzl/codecs/sentinel/spec.md new file mode 100644 index 000000000..409762d50 --- /dev/null +++ b/src/openzl/codecs/sentinel/spec.md @@ -0,0 +1,86 @@ +# Sentinel Codec — Decoder Wire Format Specification + +## Overview + +The sentinel codec replaces values at designated positions with a sentinel +marker and moves the original values to a separate exceptions stream. On the +decoder side the sentinel marker signals that the next value should be read +from the exceptions stream instead of being taken from the values stream. + +Multiple encoders share this single decoder. + +## Inputs + +| Index | Name | Type | Description | +|-------|------------|---------|-------------| +| 0 | values | Numeric | One element per original input element. Elements at exception positions contain the sentinel value; all other elements are the original values (potentially narrowed to a smaller width). Width W_v. | +| 1 | exceptions | Numeric | The original values for positions that were replaced by the sentinel. Width W_e, where W_e equals the width of the original unencoded input. | + +### Constraints + +* W_v <= W_e (the values stream may be narrower than the exceptions stream, + but not wider). +* Each element in the values stream is interpreted as an unsigned integer of + width W_v. +* Each element in the exceptions stream is interpreted as an unsigned integer + of width W_e. + +## Output + +| Name | Type | Description | +|--------|---------|-------------| +| output | Numeric | The reconstructed original input. Width W_e, element count equals the element count of the values stream. | + +## Codec Header + +| Condition | Header contents | +|----------------------------------|------------------| +| sentinel == 2^(8 * W_v) - 1 | Empty (0 bytes) | +| sentinel != 2^(8 * W_v) - 1 | varint(sentinel) | + +When the sentinel value is `2^(8 * W_v) - 1` (i.e. all bits set), no header bytes +are needed because this is the default. Otherwise the sentinel value is +encoded as a single varint. + +## Decoding Algorithm + +``` + +W_v = element_width(values) +W_e = element_width(exceptions) +N = element_count(values) +M = element_count(exceptions) + +sentinel_v = 2^(8 * W_v) - 1 # default +if codec_header is not empty: + sentinel_v = varint_decode(codec_header) + VALIDATE sentinel_v < 2^(8 * W_v) + +VALIDATE W_v <= W_e + +allocate output[N] at width W_e + +exception_index = 0 +for i in 0 .. N-1: + v = read_element(values, i, W_v) # unsigned, W_v bytes + if v == sentinel_v: + VALIDATE exception_index < M + output[i] = read_element(exceptions, exception_index, W_e) + exception_index += 1 + else: + output[i] = zero_extend(v, W_v, W_e) + +VALIDATE exception_index == M # all exceptions consumed + +return output +``` + +### Security Notes (malicious input handling) + +* If `W_v > W_e`, return a corruption error. +* If a sentinel match is encountered but `exception_index >= M`, return a + corruption error (not enough exceptions). +* If `exception_index != M` after processing all values, return a corruption + error (unconsumed exceptions). +* If the codec header is non-empty but fails varint decoding, return a + corruption error. diff --git a/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.c b/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.c index 3340605d7..8282ed8d7 100644 --- a/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.c +++ b/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.c @@ -7,10 +7,6 @@ #include "openzl/decompress/dictx.h" // ZL_Decoder_getScratchSpace #include "openzl/zl_errors.h" -// DI_splitByStruct design notes: -// - Currently limited to structures of max SPLITBYSTRUCT_NB_FIELDS_MAX fields. -// A more dynamic allocation would be required to remove this limit. -// To be updated when workspace allocation is available for ZL_Decoder. ZL_Report DI_splitByStruct( ZL_Decoder* dictx, const ZL_Input* inFixed[], @@ -18,14 +14,15 @@ ZL_Report DI_splitByStruct( const ZL_Input* inFields[], size_t nbInFields) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_DLOG(BLOCK, "DI_splitByStruct: combine %zu fs-fields", nbInFields); ZL_ASSERT_NN(dictx); ZL_ASSERT_EQ(nbInFixed, 0); (void)inFixed; - ZL_RET_R_IF_EQ( - corruption, + ZL_ERR_IF_EQ( nbInFields, 0, + corruption, "Split by struct must have at least one field"); ZL_ASSERT_NN(inFields); ZL_ASSERT_GT(nbInFields, 0); @@ -34,21 +31,21 @@ ZL_Report DI_splitByStruct( size_t const nbElts = ZL_Input_numElts(inFields[0]); for (size_t n = 0; n < nbInFields; n++) { ZL_ASSERT_NN(inFields[n]); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( ZL_Input_type(inFields[n]), ZL_Type_struct, - "DI_splitByStruct decoder transform can only ingest ZL_Type_struct streams"); - ZL_RET_R_IF_NE( corruption, + "DI_splitByStruct decoder transform can only ingest ZL_Type_struct streams"); + ZL_ERR_IF_NE( ZL_Input_numElts(inFields[n]), nbElts, + corruption, "DI_splitByStruct decoder can only work if all input streams have same nb of elts"); structSize += ZL_Input_eltWidth(inFields[n]); } size_t const dstSize = nbElts * structSize; ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstSize, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Note : could employ a workspace instead, when available size_t* const fieldSizes = @@ -56,9 +53,8 @@ ZL_Report DI_splitByStruct( const void** const fieldIns = ZL_Decoder_getScratchSpace(dictx, nbInFields * sizeof(*fieldIns)); if (fieldSizes == NULL || fieldIns == NULL) { - ZL_RET_R_ERR( - allocation, - "DI_splitByStruct: unable to allocate for structure definitions"); + ZL_ERR(allocation, + "DI_splitByStruct: unable to allocate for structure definitions"); } for (size_t n = 0; n < nbInFields; n++) { fieldSizes[n] = ZL_Input_eltWidth(inFields[n]); @@ -73,7 +69,7 @@ ZL_Report DI_splitByStruct( nbInFields, nbElts); ZL_ASSERT_EQ(r, dstSize); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstSize)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.h b/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.h index bd7b9bffe..8eb90ea6d 100644 --- a/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.h +++ b/src/openzl/codecs/splitByStruct/decode_splitByStruct_binding.h @@ -9,8 +9,6 @@ ZL_BEGIN_C_DECLS -#define SPLITBYSTRUCT_NB_FIELDS_MAX 16 - /* DI_splitByStruct(): * Reverses EI_splitByStruct operation: * join fields from multiple input streams of type ZL_Type_struct @@ -30,10 +28,8 @@ ZL_Report DI_splitByStruct( const ZL_Input* inVariable[], size_t nbInVariable); -#define DI_SPLITBYSTRUCT(id) \ - { \ - .transform_f = DI_splitByStruct, .name = "structure transposition" \ - } +#define DI_SPLITBYSTRUCT(id) \ + { .transform_f = DI_splitByStruct, .name = "structure transposition" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.c b/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.c index a60653616..5952f0227 100644 --- a/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.c +++ b/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.c @@ -26,6 +26,7 @@ static size_t sum(const size_t array_st[], size_t arr_size) ZL_Report EI_splitByStruct(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -42,10 +43,10 @@ EI_splitByStruct(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) // which ensures the presence of wanted parameter. // However, our test fuzzer framework seems to be setup differently, // and is nonetheless invoking this node directly, without parameter. - ZL_RET_R_IF_EQ( - nodeParameter_invalid, + ZL_ERR_IF_EQ( structure.paramId, ZL_LP_INVALID_PARAMID, + nodeParameter_invalid, "splitByStruct requires structure description (parameter ZL_SPLITBYSTRUCT_FIELDSIZES_PID)"); const size_t* fieldSizes = structure.paramPtr; ZL_ASSERT_NN(fieldSizes); @@ -60,43 +61,43 @@ EI_splitByStruct(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) * at graph construction time, * so that there is no need to check it at run time. * This would require a proper way to invalidate a graph (NaG) */ - ZL_RET_R_IF_EQ( - nodeParameter_invalidValue, + ZL_ERR_IF_EQ( structSize, 0, + nodeParameter_invalidValue, "structure must have a size > 0"); - ZL_RET_R_IF_NE( - node_invalid_input, + ZL_ERR_IF_NE( inSize % structSize, 0, + node_invalid_input, "splitByStruct transform requires an input size which is a strict multiple of structure size"); ZL_ASSERT_NE(nbFields, 0); // Guaranteed by structSize > 0 size_t const nbStructs = inSize / structSize; void** const outArr = ZL_Encoder_getScratchSpace(eictx, nbFields * sizeof(size_t)); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( outArr, + allocation, "allocation error in splitByStruct while trying to create array of %zu output pointers", nbFields); for (size_t n = 0; n < nbFields; n++) { - ZL_RET_R_IF_EQ( - nodeParameter_invalidValue, + ZL_ERR_IF_EQ( fieldSizes[n], 0, + nodeParameter_invalidValue, "Must not have a field size of zero!"); ZL_Output* const out = ZL_Encoder_createTypedStream( eictx, 0, nbStructs, fieldSizes[n]); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( out, + allocation, "allocation error in splitByStruct while trying to create output stream %zu of size %zu", n, nbStructs * fieldSizes[n]); outArr[n] = ZL_Output_ptr(out); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbStructs)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbStructs)); } ZS_dispatchArrayFixedSizeStruct( diff --git a/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.h b/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.h index 6c658cc63..dd743f898 100644 --- a/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.h +++ b/src/openzl/codecs/splitByStruct/encode_splitByStruct_binding.h @@ -44,11 +44,10 @@ EI_splitByStruct(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); #define ZL_SPLITBYSTRUCT_FIELDSIZES_PID 387 -#define EI_SPLITBYSTRUCT(id) \ - { \ - .gd = GRAPH_SPLITBYSTRUCT_VO(id), .transform_f = EI_splitByStruct, \ - .name = "!zl.private.split_by_struct" \ - } +#define EI_SPLITBYSTRUCT(id) \ + { .gd = GRAPH_SPLITBYSTRUCT_VO(id), \ + .transform_f = EI_splitByStruct, \ + .name = "!zl.private.split_by_struct" } /* Exposed for tests */ ZL_NodeID ZL_createNode_splitByStruct( diff --git a/src/openzl/codecs/splitByStruct/graph_splitByStruct.h b/src/openzl/codecs/splitByStruct/graph_splitByStruct.h index 68722950b..e36eeaf48 100644 --- a/src/openzl/codecs/splitByStruct/graph_splitByStruct.h +++ b/src/openzl/codecs/splitByStruct/graph_splitByStruct.h @@ -5,10 +5,13 @@ /// Graph definition for the splitByStruct transform /// used by both the encoder and decoder sides. -#define GRAPH_SPLITBYSTRUCT_VO(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ - .soTypes = NULL, 0, ZL_STREAMTYPELIST(ZL_Type_struct), \ +#define GRAPH_SPLITBYSTRUCT_VO(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ + .soTypes = NULL, \ + 0, \ + ZL_STREAMTYPELIST(ZL_Type_struct), \ } #endif // ZSTRONG_TRANSFORMS_SPLITBYSTRUCT_GRAPH_SPLITBYSTRUCT_H diff --git a/src/openzl/codecs/splitN/decode_splitN_binding.c b/src/openzl/codecs/splitN/decode_splitN_binding.c index 682f8a82c..477650905 100644 --- a/src/openzl/codecs/splitN/decode_splitN_binding.c +++ b/src/openzl/codecs/splitN/decode_splitN_binding.c @@ -20,6 +20,7 @@ ZL_Report DI_splitN( const ZL_Input* ins[], size_t nbInVariable) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_DLOG(BLOCK, "DI_splitN (%zu inputs to join)", nbInVariable); ZL_ASSERT_NN(dictx); ZL_ASSERT_EQ(nbInFixed, 0); @@ -33,7 +34,7 @@ ZL_Report DI_splitN( ZL_RBuffer header = ZL_Decoder_getCodecHeader(dictx); if (header.size != 0) { uint8_t const* ptr = (uint8_t const*)header.start; - ZL_TRY_LET_T( + ZL_TRY_LET( uint64_t, eltWidth64, ZL_varintDecode(&ptr, ptr + header.size)); @@ -50,21 +51,21 @@ ZL_Report DI_splitN( size_t totalElts = 0; for (size_t n = 0; n < nbInVariable; n++) { ZL_ASSERT_NN(ins[n]); - ZL_RET_R_IF_NE( - node_unexpected_input_type, + ZL_ERR_IF_NE( ZL_Input_type(ins[n]), type, - "SplitN types must be homogenous"); - ZL_RET_R_IF_NE( node_unexpected_input_type, + "SplitN types must be homogenous"); + ZL_ERR_IF_NE( ZL_Input_eltWidth(ins[n]), eltWidth, + node_unexpected_input_type, "SplitN widths must be homogenous"); totalElts += ZL_Input_numElts(ins[n]); } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, totalElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); size_t pos = 0; char* const wptr = ZL_Output_ptr(out); @@ -76,7 +77,7 @@ ZL_Report DI_splitN( } ZL_ASSERT_EQ(pos, totalElts * eltWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, totalElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, totalElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/splitN/decode_splitN_binding.h b/src/openzl/codecs/splitN/decode_splitN_binding.h index 8e5cf94cf..57a6e522d 100644 --- a/src/openzl/codecs/splitN/decode_splitN_binding.h +++ b/src/openzl/codecs/splitN/decode_splitN_binding.h @@ -24,20 +24,12 @@ ZL_Report DI_splitN( const ZL_Input* inVariable[], size_t nbInVariable); -#define DI_SPLITN(id) \ - { \ - .transform_f = DI_splitN, .name = "splitN" \ - } - -#define DI_SPLITN_STRUCT(id) \ - { \ - .transform_f = DI_splitN, .name = "splitN struct" \ - } - -#define DI_SPLITN_NUM(id) \ - { \ - .transform_f = DI_splitN, .name = "splitN num" \ - } +#define DI_SPLITN(id) { .transform_f = DI_splitN, .name = "splitN" } + +#define DI_SPLITN_STRUCT(id) \ + { .transform_f = DI_splitN, .name = "splitN struct" } + +#define DI_SPLITN_NUM(id) { .transform_f = DI_splitN, .name = "splitN num" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/splitN/encode_splitN_binding.c b/src/openzl/codecs/splitN/encode_splitN_binding.c index 338a34176..0a597539c 100644 --- a/src/openzl/codecs/splitN/encode_splitN_binding.c +++ b/src/openzl/codecs/splitN/encode_splitN_binding.c @@ -15,8 +15,8 @@ // could be any (non trivial) arbitrary value #define ZL_SPLITN_SEGMENTSIZES_PID 323 -#define ZL_SPLITN_NBSEGMENTS_PID 324 #define ZL_SPLITN_PARSINGF_PID 436 +#define ZL_SPLITN_PARSING_OPAQUE_PTR_PID 437 struct ZL_SplitState_s { ZL_Encoder* eictx; @@ -29,37 +29,49 @@ typedef struct { ZL_RESULT_DECLARE_TYPE(ZL_SplitInstructions); -static SplitN_ExtParser_s const* getExtParser(ZL_Encoder const* eictx) +/** + * Gets the external parser by checking through the local parameters for a + * matching refParam. The reason why we cannot directly use + * ZL_Encoder_getLocalCopyParam is function pointers are not serializable, + * therefore we only check for refParams to ensure a deserialized compressor + * cannot contain this parameter. + */ +static SplitN_ExtParser_s getExtParser(ZL_Encoder const* eictx) { - ZL_CopyParam const gpParsef = - ZL_Encoder_getLocalCopyParam(eictx, ZL_SPLITN_PARSINGF_PID); - if (gpParsef.paramId != ZL_SPLITN_PARSINGF_PID) { - return NULL; + SplitN_ExtParser_s extParser = { NULL, NULL }; + const ZL_LocalParams* lp = ZL_Encoder_getLocalParams(eictx); + for (size_t n = 0; n < lp->refParams.nbRefParams; n++) { + if (lp->refParams.refParams[n].paramId == ZL_SPLITN_PARSINGF_PID) { + // We use memcpy here to avoid compiler warnings about casting a + // const pointer to a function pointer. + memcpy(&extParser.f, + &lp->refParams.refParams[n].paramRef, + sizeof(extParser.f)); + } + if (lp->refParams.refParams[n].paramId + == ZL_SPLITN_PARSING_OPAQUE_PTR_PID) { + extParser.opaque = lp->refParams.refParams[n].paramRef; + } } - return (const SplitN_ExtParser_s*)gpParsef.paramPtr; + return extParser; } static ZL_RESULT_OF(ZL_SplitInstructions) getSplitInstructions(ZL_Encoder* eictx, const ZL_Input* in) { + ZL_RESULT_DECLARE_SCOPE(ZL_SplitInstructions, eictx); ZL_DLOG(SEQ, "getSplitInstructions()"); - if (ZL_Input_numElts(in) == 0) { - // Special case: Empty input means no segments - ZL_SplitInstructions si = { NULL, 0 }; - return ZL_RESULT_WRAP_VALUE(ZL_SplitInstructions, si); - } ZL_SplitState allocState = { eictx }; // Priority 1 : check for external parsing function - SplitN_ExtParser_s const* extParser = getExtParser(eictx); - if (extParser != NULL) { - ZL_SplitParserFn f = extParser->f; + SplitN_ExtParser_s extParser = getExtParser(eictx); + if (extParser.f != NULL) { + ZL_SplitParserFn f = extParser.f; ZL_SplitInstructions si = f(&allocState, in); - ZL_RET_T_IF_NULL( - ZL_SplitInstructions, - nodeParameter_invalid, + ZL_ERR_IF_NULL( si.segmentSizes, + nodeParameter_invalid, "external parser failed to provide split instructions"); return ZL_RESULT_WRAP_VALUE(ZL_SplitInstructions, si); } @@ -67,34 +79,23 @@ static ZL_RESULT_OF(ZL_SplitInstructions) // Priority 2 : check for fixed-size parameters ZL_RefParam const segmentSizes = ZL_Encoder_getLocalParam(eictx, ZL_SPLITN_SEGMENTSIZES_PID); - ZL_IntParam const nbSegments = - ZL_Encoder_getLocalIntParam(eictx, ZL_SPLITN_NBSEGMENTS_PID); - ZL_RET_T_IF_EQ( - ZL_SplitInstructions, - nodeParameter_invalid, + ZL_ERR_IF_EQ( segmentSizes.paramId, ZL_LP_INVALID_PARAMID, - "can't find any instruction to split"); - ZL_RET_T_IF_EQ( - ZL_SplitInstructions, nodeParameter_invalid, - nbSegments.paramId, - ZL_LP_INVALID_PARAMID, "can't find any instruction to split"); - ZL_RET_T_IF_NULL( - ZL_SplitInstructions, - nodeParameter_invalid, + ZL_ERR_IF_NULL( segmentSizes.paramRef, + nodeParameter_invalid, "instructions to split are NULL"); - ZL_RET_T_IF_EQ( - ZL_SplitInstructions, - nodeParameter_invalidValue, - nbSegments.paramValue, - 0, - "instructions to split are empty"); + // Handle the case of 0 segments (empty split) + if (segmentSizes.paramSize == 0) { + ZL_SplitInstructions r = { NULL, 0 }; + return ZL_RESULT_WRAP_VALUE(ZL_SplitInstructions, r); + } ZL_SplitInstructions r; r.segmentSizes = segmentSizes.paramRef; - r.nbSegments = (size_t)nbSegments.paramValue; + r.nbSegments = segmentSizes.paramSize / sizeof(size_t); return ZL_RESULT_WRAP_VALUE(ZL_SplitInstructions, r); } @@ -104,6 +105,7 @@ static ZL_RESULT_OF(ZL_SplitInstructions) // into output streams, as described in ZL_SPLITN_SEGMENTSIZES_PID parameter. ZL_Report EI_splitN(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -115,7 +117,7 @@ ZL_Report EI_splitN(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) & ~(ZL_Type_serial | ZL_Type_struct | ZL_Type_numeric), 0); - ZL_TRY_LET_T(ZL_SplitInstructions, si, getSplitInstructions(eictx, in)); + ZL_TRY_LET(ZL_SplitInstructions, si, getSplitInstructions(eictx, in)); size_t const inSize = ZL_Input_numElts(in); size_t const eltWidth = ZL_Input_eltWidth(in); @@ -139,22 +141,21 @@ ZL_Report EI_splitN(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) segSize = inSize - pos; } ZL_DLOG(SEQ, "EI_splitN: segment %zu of size %zu", n, segSize); - ZL_RET_R_IF_GT( - nodeParameter_invalidValue, + ZL_ERR_IF_GT( pos + segSize, inSize, + nodeParameter_invalidValue, "split instructions require more length than input"); ZL_Output* const s = ENC_refTypedStream( eictx, 0, eltWidth, segSize, in, pos * eltWidth); - ZL_RET_R_IF_NULL(allocation, s); - ZL_RET_R_IF_ERR( - ZL_Output_setIntMetadata(s, ZL_SPLIT_CHANNEL_ID, (int)n)); + ZL_ERR_IF_NULL(s, allocation); + ZL_ERR_IF_ERR(ZL_Output_setIntMetadata(s, ZL_SPLIT_CHANNEL_ID, (int)n)); pos += segSize; } - ZL_RET_R_IF_NE( - nodeParameter_invalidValue, + ZL_ERR_IF_NE( pos, inSize, + nodeParameter_invalidValue, "split instructions do not map exactly the entire input"); return ZL_returnSuccess(); @@ -193,14 +194,13 @@ ZL_NodeID ZL_Compressor_registerSplitNode_withParams( }; ZL_LocalCopyParams const lgp = { &segmentSizesParam, 1 }; - ZL_IntParam const nbSegmentsParam = { - .paramId = ZL_SPLITN_NBSEGMENTS_PID, - .paramValue = (int)nbSegments, - }; - ZL_LocalIntParams lip = { &nbSegmentsParam, 1 }; - - ZL_LocalParams const lParams = { .copyParams = lgp, .intParams = lip }; - return ZL_Compressor_cloneNode(cgraph, getSplitNNodeID(type), &lParams); + ZL_LocalParams const lParams = { .copyParams = lgp }; + return ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = getSplitNNodeID(type), + .localParams = &lParams, + }); } ZL_NodeID ZL_Compressor_registerSplitNode_withParser( @@ -210,14 +210,19 @@ ZL_NodeID ZL_Compressor_registerSplitNode_withParser( void const* opaque) { ZL_DLOG(SEQ, "ZL_Compressor_registerSplitNode_withParser"); - SplitN_ExtParser_s const s = { f, opaque }; - ZL_CopyParam const ssp = { .paramId = ZL_SPLITN_PARSINGF_PID, - .paramPtr = &s, - .paramSize = sizeof(s) }; + ZL_RefParam const refParams[2] = { + { .paramId = ZL_SPLITN_PARSINGF_PID, .paramRef = (void const*)f }, + { .paramId = ZL_SPLITN_PARSING_OPAQUE_PTR_PID, .paramRef = opaque } + }; - ZL_LocalCopyParams const lgp = { &ssp, 1 }; - ZL_LocalParams const lParams = { .copyParams = lgp }; - return ZL_Compressor_cloneNode(cgraph, getSplitNNodeID(type), &lParams); + ZL_LocalRefParams const lgp = { refParams, 2 }; + ZL_LocalParams const lParams = { .refParams = lgp }; + return ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = getSplitNNodeID(type), + .localParams = &lParams, + }); } void* ZL_SplitState_malloc(ZL_SplitState* state, size_t size) @@ -227,11 +232,11 @@ void* ZL_SplitState_malloc(ZL_SplitState* state, size_t size) void const* ZL_SplitState_getOpaquePtr(ZL_SplitState* state) { - SplitN_ExtParser_s const* extParser = getExtParser(state->eictx); - if (extParser == NULL) { + SplitN_ExtParser_s extParser = getExtParser(state->eictx); + if (extParser.f == NULL) { return NULL; } - return extParser->opaque; + return extParser.opaque; } static ZL_GraphID splitBackendGraph(ZL_Type type) @@ -278,27 +283,22 @@ ZL_Edge_runSplitNode( const size_t* segmentSizes, size_t nbSegments) { + ZL_RESULT_DECLARE_SCOPE(ZL_EdgeList, input); ZL_DLOG(SEQ, "ZL_Edge_runSplitNode"); - ZL_RET_T_IF_GT( - ZL_EdgeList, - nodeParameter_invalid, + ZL_ERR_IF_GT( nbSegments, (size_t)INT_MAX, + nodeParameter_invalid, "nbSegments is too large (temporary limitation)"); ZL_RefParam const segmentSizesParam = { - .paramId = ZL_SPLITN_SEGMENTSIZES_PID, - .paramRef = segmentSizes, + .paramId = ZL_SPLITN_SEGMENTSIZES_PID, + .paramRef = segmentSizes, + .paramSize = nbSegments * sizeof(size_t) }; ZL_LocalRefParams const lrp = { &segmentSizesParam, 1 }; - ZL_IntParam const nbSegmentsParam = { - .paramId = ZL_SPLITN_NBSEGMENTS_PID, - .paramValue = (int)nbSegments, - }; - ZL_LocalIntParams lip = { &nbSegmentsParam, 1 }; - - ZL_LocalParams const lParams = { .refParams = lrp, .intParams = lip }; + ZL_LocalParams const lParams = { .refParams = lrp }; ZL_Type type = ZL_Input_type(ZL_Edge_getData(input)); return ZL_Edge_runNode_withParams(input, getSplitNNodeID(type), &lParams); } diff --git a/src/openzl/codecs/splitN/encode_splitN_binding.h b/src/openzl/codecs/splitN/encode_splitN_binding.h index b6e3a7d27..a70166a82 100644 --- a/src/openzl/codecs/splitN/encode_splitN_binding.h +++ b/src/openzl/codecs/splitN/encode_splitN_binding.h @@ -45,23 +45,20 @@ ZL_GraphID ZL_Compressor_registerSplitGraph( */ ZL_Report EI_splitN(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_SPLITN(id) \ - { \ - .gd = GRAPH_VO_SERIAL(id), .transform_f = EI_splitN, \ - .name = "!zl.private.splitN" \ - } +#define EI_SPLITN(id) \ + { .gd = GRAPH_VO_SERIAL(id), \ + .transform_f = EI_splitN, \ + .name = "!zl.private.splitN" } -#define EI_SPLITN_STRUCT(id) \ - { \ - .gd = GRAPH_VO_STRUCT(id), .transform_f = EI_splitN, \ - .name = "!zl.private.splitN_struct" \ - } +#define EI_SPLITN_STRUCT(id) \ + { .gd = GRAPH_VO_STRUCT(id), \ + .transform_f = EI_splitN, \ + .name = "!zl.private.splitN_struct" } -#define EI_SPLITN_NUM(id) \ - { \ - .gd = GRAPH_VO_NUM(id), .transform_f = EI_splitN, \ - .name = "!zl.private.splitN_num" \ - } +#define EI_SPLITN_NUM(id) \ + { .gd = GRAPH_VO_NUM(id), \ + .transform_f = EI_splitN, \ + .name = "!zl.private.splitN_num" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/splitN/encode_split_byrange_binding.c b/src/openzl/codecs/splitN/encode_split_byrange_binding.c new file mode 100644 index 000000000..2508a22da --- /dev/null +++ b/src/openzl/codecs/splitN/encode_split_byrange_binding.c @@ -0,0 +1,714 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/codecs/splitN/encode_split_byrange_binding.h" + +#include +#include + +#include "openzl/codecs/zl_split.h" /* ZL_SPLIT_CHANNEL_ID */ +#include "openzl/common/assertion.h" /* ZL_ASSERT */ +#include "openzl/common/logging.h" /* ZL_DLOG */ +#include "openzl/compress/enc_interface.h" /* ENC_refTypedStream, ZL_Encoder_getScratchSpace */ +#include "openzl/shared/portability.h" /* ZL_FORCE_INLINE */ +#include "openzl/shared/varint.h" /* ZL_varintEncode */ +#include "openzl/zl_data.h" /* ZL_Input_type */ +#include "openzl/zl_input.h" /* ZL_Input_ptr, ZL_Input_eltWidth */ + +/* Default minimum number of elements per segment. + * A split is rejected if either side would have fewer elements. + * This prevents false positives from noise within a single range + * (e.g. a single extreme value at the start of a segment). + * Can be overridden via ZL_SPLIT_BYRANGE_MIN_SEGMENT_SIZE_PID parameter. + * Narrow types (u8) use a larger default for robust min/max statistics. */ +#define DEFAULT_MIN_SEGMENT_SIZE 32 + +static inline size_t defaultMinSegSizeForWidth(size_t eltWidth) +{ + if (eltWidth <= 1) + return 4 * DEFAULT_MIN_SEGMENT_SIZE; /* u8: 128 */ + if (eltWidth <= 2) + return 2 * DEFAULT_MIN_SEGMENT_SIZE; /* u16: 64 */ + return DEFAULT_MIN_SEGMENT_SIZE; /* u32/u64: 32 */ +} + +/* Number of blocks on each side of a candidate split that must show + * non-overlapping, stable ranges. */ +#define CONFIRMATION_WINDOW 7 + +/* Gap significance factor: after confirming non-overlap between left and right + * windows, the split is accepted only if the gap (or transition block + * amplitude) exceeds GAP_FACTOR × the typical block amplitude. This rejects + * splits within monotonic ramps (where gap ≈ blockRange) while accepting + * true range boundaries (where gap >> blockRange). */ +#define GAP_FACTOR 2 + +/* Stationarity factor: a window of M blocks is "stationary" (all blocks from + * the same range) if windowRange <= STATIONARITY_MARGIN * maxBlockRange. + * + * For n uniform samples from [0, R], expected block range = R*(n-1)/(n+1). + * So the theoretical ratio windowRange/maxBlockRange → (n+1)/(n-1) ≈ 1.13 + * for n=16. In practice the ratio is even closer to 1.0 (max of M blocks + * pushes maxBlockRange toward R). A linear ramp gives ratio ≈ M (=7). + * + * 1.3 provides margin above the theoretical 1.13 for noisy stationary data + * while staying well below M. A noisy ramp needs noise > 19× the per-block + * trend to fool this check — at that point the trend is negligible. */ +#define STATIONARITY_NUM 13 /* windowRange * 10 <= maxBlockRange * 13 */ +#define STATIONARITY_DEN 10 /* i.e. windowRange / maxBlockRange <= 1.3 */ + +/* Each minimum-sized segment spans BLOCK_DIVISOR blocks, giving + * sub-segment resolution while keeping the block count low. + * blockSize = minSegSize / BLOCK_DIVISOR. */ +#define BLOCK_DIVISOR 2 + +/* Expose min block size so tests can adapt segment sizes. */ +size_t ZL_splitByRange_minBlockSize(size_t eltWidth) +{ + return defaultMinSegSizeForWidth(eltWidth) / BLOCK_DIVISOR; +} + +/* Read element at index as uint64_t regardless of element width. + * When called with a compile-time constant eltWidth (via force-inlined + * callers below), the compiler eliminates the switch entirely. */ +ZL_FORCE_INLINE uint64_t readElt(const void* src, size_t eltWidth, size_t idx) +{ + switch (eltWidth) { + case 1: + return ((const uint8_t*)src)[idx]; + case 2: + return ((const uint16_t*)src)[idx]; + case 4: + return ((const uint32_t*)src)[idx]; + case 8: + return ((const uint64_t*)src)[idx]; + default: + ZL_ASSERT(0); + return 0; + } +} + +/* ===================================================================== + * Phase 1: Compute per-block min/max in a single O(N) pass. + * ===================================================================== */ + +ZL_FORCE_INLINE void computeBlockStats( + const void* src, + size_t eltWidth, + size_t nbElts, + size_t blockSize, + uint64_t* blockMin, + uint64_t* blockMax, + size_t nbBlocks) +{ + for (size_t b = 0; b < nbBlocks; b++) { + size_t const start = b * blockSize; + size_t end = start + blockSize; + if (end > nbElts) + end = nbElts; + uint64_t bmin = readElt(src, eltWidth, start); + uint64_t bmax = bmin; + for (size_t i = start + 1; i < end; i++) { + uint64_t v = readElt(src, eltWidth, i); + if (v < bmin) + bmin = v; + if (v > bmax) + bmax = v; + } + blockMin[b] = bmin; + blockMax[b] = bmax; + } +} + +/* ===================================================================== + * Phase 2: Find confirmed split points at block granularity. + * + * A candidate split between blocks b and b+1 is confirmed when: + * - Left window [b-M+1 .. b] and right window [b+2 .. b+M+1] + * (skipping transition block b+1) have non-overlapping ranges. + * - The separation is significant (any of three signals): + * 1. Gap: gap > GAP_FACTOR × typAmp (large discrete jump). + * 2. TransAmp: transition block amplitude > GAP_FACTOR × typAmp + * (boundary falls mid-block, spanning both ranges). + * 3. Stationarity: both windows have windowRange / maxBlockRange + * <= 1.3 (neither side is trending → non-overlap is a real + * range boundary, not a ramp artifact). + * + * After confirming a split at block b, set leftBound=b+2 and advance + * b by 2 to skip the transition block. The leftBound prevents the + * next candidate's left window from including blocks from the + * previous segment. + * Returns the number of confirmed splits. + * ===================================================================== */ + +static size_t findConfirmedSplitBlocks( + const uint64_t* blockMin, + const uint64_t* blockMax, + size_t nbBlocks, + size_t M, + size_t* splitBlocks, + size_t maxSplits) +{ + size_t nbSplits = 0; + if (M < 1 || nbBlocks < 2 * M + 1) + return 0; + + /* Minimum left window size: M>=2 requires 2 blocks for stability + * check (needs block pairs). M==1 works with a single block. */ + size_t const minLSize = (M >= 2) ? 2 : 1; + + /* leftBound: the earliest block that belongs to the current segment. + * After confirming a split at block b, the next segment starts at + * b+2 (skipping transition block b+1). This prevents the left window + * from including blocks belonging to a previous segment, which would + * contaminate the stability check. */ + size_t leftBound = 0; + size_t b = M - 1; + while (b + M + 1 < nbBlocks && nbSplits < maxSplits) { + /* Left window: [max(b-M+1, leftBound) .. b] */ + size_t const lStart = + (b >= M - 1 && b - M + 1 >= leftBound) ? b - M + 1 : leftBound; + size_t const lSize = b - lStart + 1; + if (lSize < minLSize) { + b++; + continue; + } + + uint64_t leftMin = blockMin[lStart]; + uint64_t leftMax = blockMax[lStart]; + uint64_t leftMaxBR = blockMax[lStart] - blockMin[lStart]; + for (size_t i = lStart + 1; i <= b; i++) { + if (blockMin[i] < leftMin) + leftMin = blockMin[i]; + if (blockMax[i] > leftMax) + leftMax = blockMax[i]; + uint64_t br = blockMax[i] - blockMin[i]; + if (br > leftMaxBR) + leftMaxBR = br; + } + + /* Right window [b+2 .. b+M+1] (skip transition block b+1) */ + size_t const rStart = b + 2; + size_t const rEnd = b + M + 1; + uint64_t rightMin = blockMin[rStart]; + uint64_t rightMax = blockMax[rStart]; + uint64_t rightMaxBR = blockMax[rStart] - blockMin[rStart]; + for (size_t i = rStart + 1; i <= rEnd; i++) { + if (blockMin[i] < rightMin) + rightMin = blockMin[i]; + if (blockMax[i] > rightMax) + rightMax = blockMax[i]; + uint64_t br = blockMax[i] - blockMin[i]; + if (br > rightMaxBR) + rightMaxBR = br; + } + + /* Non-overlap check */ + int nonOverlap = (leftMax < rightMin) || (rightMax < leftMin); + + if (nonOverlap) { + /* Significance check: accept only if the separation is + * meaningful, using three independent signals. + * + * Signal 1 (gap): gap between ranges > GAP_FACTOR × typAmp. + * Catches boundaries aligned with block edges. + * Signal 2 (transAmp): transition block amplitude > GAP_FACTOR × + * typAmp. Catches boundaries that fall mid-block. Signal 3 + * (stationarity): both windows are stationary (windowRange ≈ + * blockRange, not trending). If neither side is a ramp, non-overlap + * proves a real range boundary. */ + uint64_t typAmp = (leftMaxBR > rightMaxBR) ? leftMaxBR : rightMaxBR; + uint64_t gap = (leftMax < rightMin) ? rightMin - leftMax + : leftMin - rightMax; + uint64_t transAmp = blockMax[b + 1] - blockMin[b + 1]; + + int significant = (typAmp == 0) || (gap > GAP_FACTOR * typAmp) + || (transAmp > GAP_FACTOR * typAmp); + + if (!significant) { + /* Stationarity: windowRange * DEN <= maxBlockRange * NUM + * i.e. windowRange / maxBlockRange <= 1.3. + * Guard: windowRange <= UINT64_MAX / DEN avoids overflow + * on both sides (maxBlockRange <= windowRange always). */ + uint64_t leftRange = leftMax - leftMin; + uint64_t rightRange = rightMax - rightMin; + int leftStationary = (leftMaxBR == 0) + || (leftRange <= UINT64_MAX / STATIONARITY_DEN + && leftRange * STATIONARITY_DEN + <= STATIONARITY_NUM * leftMaxBR); + int rightStationary = (rightMaxBR == 0) + || (rightRange <= UINT64_MAX / STATIONARITY_DEN + && rightRange * STATIONARITY_DEN + <= STATIONARITY_NUM * rightMaxBR); + if (leftStationary && rightStationary) + significant = 1; + } + + if (significant) { + splitBlocks[nbSplits++] = b; + leftBound = b + 2; /* next segment starts after transition */ + b += 2; + continue; + } + } + + b++; + } + + return nbSplits; +} + +/* ===================================================================== + * Phase 3: Refine a block-level split to an exact element boundary. + * + * Scans the transition zone (blocks b and b+1) with a prefix/suffix + * min-max pass, seeded with context from surrounding blocks. + * Returns the absolute element index of the refined split point. + * ===================================================================== */ + +ZL_FORCE_INLINE size_t refineSplitBoundary( + const void* src, + size_t eltWidth, + size_t nbElts, + size_t blockSize, + size_t splitBlock, + size_t segStartElt, + size_t segEndBlk, + const uint64_t* blockMin, + const uint64_t* blockMax, + uint64_t* suffBuf, + uint64_t* suffBufMax) +{ + /* The transition zone is blocks [splitBlock, splitBlock+1]. + * We scan from segStartElt to transition zone end to give the + * forward prefix full left-side statistics. Only check for gaps + * within the transition zone (±1 block). */ + size_t transStart = (splitBlock > 0) ? (splitBlock - 1) * blockSize : 0; + if (transStart < segStartElt) + transStart = segStartElt; + size_t const transEnd = (splitBlock + 3) * blockSize; + size_t const scanEnd = (transEnd < nbElts) ? transEnd : nbElts; + size_t const scanStart = + (segStartElt < transStart) ? segStartElt : transStart; + + if (scanEnd <= scanStart + 1) + return (splitBlock + 1) * blockSize; + + /* Suffix array: only needed for the transition zone [transStart..scanEnd). + * Elements before transStart are prefix-only (scanned but not checked). */ + size_t const transLen = scanEnd - transStart; + + /* Backward pass: suffix min/max within the transition zone */ + suffBuf[transLen - 1] = readElt(src, eltWidth, transStart + transLen - 1); + suffBufMax[transLen - 1] = suffBuf[transLen - 1]; + for (size_t i = transLen - 1; i > 0; i--) { + uint64_t v = readElt(src, eltWidth, transStart + i - 1); + suffBuf[i - 1] = (v < suffBuf[i]) ? v : suffBuf[i]; + suffBufMax[i - 1] = (v > suffBufMax[i]) ? v : suffBufMax[i]; + } + + /* Merge suffix with right context (blocks fully after the zone) */ + size_t transEndBlk = (scanEnd + blockSize - 1) / blockSize; + if (transEndBlk < segEndBlk) { + uint64_t suffCtxMin = blockMin[transEndBlk]; + uint64_t suffCtxMax = blockMax[transEndBlk]; + for (size_t i = transEndBlk + 1; i < segEndBlk; i++) { + if (blockMin[i] < suffCtxMin) + suffCtxMin = blockMin[i]; + if (blockMax[i] > suffCtxMax) + suffCtxMax = blockMax[i]; + } + for (size_t i = 0; i < transLen; i++) { + if (suffCtxMin < suffBuf[i]) + suffBuf[i] = suffCtxMin; + if (suffCtxMax > suffBufMax[i]) + suffBufMax[i] = suffCtxMax; + } + } + + /* Forward pass: scan from segStartElt, but only check gaps within the + * transition zone. The prefix accumulates ALL left-side elements. */ + uint64_t prefMin = readElt(src, eltWidth, scanStart); + uint64_t prefMax = prefMin; + size_t bestPos = (splitBlock + 1) * blockSize; /* default */ + uint64_t bestGap = 0; + + for (size_t pos = scanStart + 1; pos < scanEnd; pos++) { + /* Check for gap only within the transition zone */ + if (pos >= transStart) { + size_t ti = pos - transStart; /* index into suffix arrays */ + uint64_t gap = 0; + if (prefMax < suffBuf[ti]) { + gap = suffBuf[ti] - prefMax; + } else if (suffBufMax[ti] < prefMin) { + gap = prefMin - suffBufMax[ti]; + } + if (gap > bestGap) { + bestGap = gap; + bestPos = pos; + } + } + uint64_t v = readElt(src, eltWidth, pos); + if (v < prefMin) + prefMin = v; + if (v > prefMax) + prefMax = v; + } + + return bestPos; +} + +/* ===================================================================== + * Main boundary detection: block-based algorithm with fallback. + * + * FORCE_INLINE with eltWidth as parameter: when called from the thin + * per-width shells below, the compiler constant-propagates eltWidth + * into computeBlockStats and refineSplitBoundary (both FORCE_INLINE), + * specializing readElt at compile time on the hot path. + * ===================================================================== */ + +ZL_FORCE_INLINE void detectBoundaries_internal( + const void* src, + size_t eltWidth, + size_t nbElts, + size_t minSegSize, + void* scratch, + size_t* segmentSizes, + size_t* nbSegments, + size_t maxSegments) +{ + size_t const blockSize = + (minSegSize / BLOCK_DIVISOR > 0) ? minSegSize / BLOCK_DIVISOR : 1; + size_t const nbBlocks = (nbElts + blockSize - 1) / blockSize; + size_t const M_raw = (nbBlocks >= 3) ? (nbBlocks - 1) / 2 : 0; + size_t const M = + (M_raw < CONFIRMATION_WINDOW) ? M_raw : CONFIRMATION_WINDOW; + + /* Too few blocks for confirmation windows → use M=1 (no stability + * check, just non-overlap). This is safe for small inputs where + * there's little room for false positives. + * With default parameters, this branch is unreachable since the + * caller already handles nbElts < 2*minSegSize as a single segment. + * It fires only with custom small minSegmentSize values. */ + size_t const Meff = (M >= 2 && nbBlocks >= 2 * M + 1) ? M : 1; + if (nbBlocks < 3) { + segmentSizes[0] = nbElts; + *nbSegments = 1; + return; + } + + /* Layout: [blockMin|blockMax|suffBuf|suffBufMax][splitBlocks] */ + size_t const maxZone = 4 * blockSize + 1; + uint64_t* blockMin = (uint64_t*)scratch; + uint64_t* blockMax = blockMin + nbBlocks; + uint64_t* suffBuf = blockMax + nbBlocks; + uint64_t* suffBufMax = suffBuf + maxZone; + size_t* splitBlocks = (size_t*)(suffBufMax + maxZone); + + /* Phase 1 */ + computeBlockStats( + src, eltWidth, nbElts, blockSize, blockMin, blockMax, nbBlocks); + + /* Phase 2 */ + size_t nbSplits = findConfirmedSplitBlocks( + blockMin, blockMax, nbBlocks, Meff, splitBlocks, maxSegments - 1); + + if (nbSplits == 0) { + segmentSizes[0] = nbElts; + *nbSegments = 1; + return; + } + + /* Phase 3: refine each split to exact element boundary */ + size_t pos = 0; + *nbSegments = 0; + for (size_t s = 0; s < nbSplits; s++) { + size_t sb = splitBlocks[s]; + + /* Limit suffix context to blocks within the current segment. */ + /* The next split at block b' has transition at b'+1. */ + /* Include blocks up to b' (same range as current segment). */ + size_t segEndBlk = + (s + 1 < nbSplits) ? splitBlocks[s + 1] + 1 : nbBlocks; + if (segEndBlk > nbBlocks) + segEndBlk = nbBlocks; + + size_t splitPos = refineSplitBoundary( + src, + eltWidth, + nbElts, + blockSize, + sb, + pos, + segEndBlk, + blockMin, + blockMax, + suffBuf, + suffBufMax); + /* Clamp to ensure minimum segment size */ + if (splitPos < pos + minSegSize) + splitPos = pos + minSegSize; + if (splitPos > nbElts - minSegSize) { + continue; /* skip: remaining too small */ + } + if (splitPos <= pos) { + continue; /* skip: no progress */ + } + + if (*nbSegments < maxSegments) { + segmentSizes[*nbSegments] = splitPos - pos; + } + (*nbSegments)++; + pos = splitPos; + } + + /* Final segment */ + if (*nbSegments < maxSegments) { + segmentSizes[*nbSegments] = nbElts - pos; + } + (*nbSegments)++; +} + +/* Thin per-width shells: call detectBoundaries_internal with a + * compile-time constant eltWidth for full specialization. */ +static void detectBoundaries_u8( + const void* src, + size_t nbElts, + size_t minSegSize, + void* scratch, + size_t* segmentSizes, + size_t* nbSegments, + size_t maxSegments) +{ + detectBoundaries_internal( + src, + 1, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); +} +static void detectBoundaries_u16( + const void* src, + size_t nbElts, + size_t minSegSize, + void* scratch, + size_t* segmentSizes, + size_t* nbSegments, + size_t maxSegments) +{ + detectBoundaries_internal( + src, + 2, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); +} +static void detectBoundaries_u32( + const void* src, + size_t nbElts, + size_t minSegSize, + void* scratch, + size_t* segmentSizes, + size_t* nbSegments, + size_t maxSegments) +{ + detectBoundaries_internal( + src, + 4, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); +} +static void detectBoundaries_u64( + const void* src, + size_t nbElts, + size_t minSegSize, + void* scratch, + size_t* segmentSizes, + size_t* nbSegments, + size_t maxSegments) +{ + detectBoundaries_internal( + src, + 8, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); +} + +/* Dispatch to width-specialized variant */ +static void detectBoundaries( + const void* src, + size_t eltWidth, + size_t nbElts, + size_t minSegSize, + void* scratch, + size_t scratchSize, + size_t* segmentSizes, + size_t* nbSegments, + size_t maxSegments) +{ + (void)scratchSize; + switch (eltWidth) { + case 1: + detectBoundaries_u8( + src, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); + return; + case 2: + detectBoundaries_u16( + src, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); + return; + case 4: + detectBoundaries_u32( + src, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); + return; + case 8: + detectBoundaries_u64( + src, + nbElts, + minSegSize, + scratch, + segmentSizes, + nbSegments, + maxSegments); + return; + default: + ZL_ASSERT(0); + } +} + +ZL_Report +EI_split_byrange(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); + ZL_ASSERT_NN(eictx); + ZL_ASSERT_EQ(nbIns, 1); + ZL_ASSERT_NN(ins); + const ZL_Input* in = ins[0]; + ZL_ASSERT_NN(in); + ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_numeric); + + size_t const nbElts = ZL_Input_numElts(in); + size_t const eltWidth = ZL_Input_eltWidth(in); + ZL_ASSERT(eltWidth == 1 || eltWidth == 2 || eltWidth == 4 || eltWidth == 8); + + /* Read optional min segment size parameter, default is width-dependent */ + size_t minSegSize = defaultMinSegSizeForWidth(eltWidth); + { + ZL_IntParam const mss = ZL_Encoder_getLocalIntParam( + eictx, ZL_SPLIT_BYRANGE_MIN_SEGMENT_SIZE_PID); + if (mss.paramId == ZL_SPLIT_BYRANGE_MIN_SEGMENT_SIZE_PID) { + ZL_ASSERT(mss.paramValue > 0); + minSegSize = (size_t)mss.paramValue; + } + } + + ZL_DLOG(BLOCK, + "EI_split_byrange (input:%zu elts, width:%zu, minSegSize:%zu)", + nbElts, + eltWidth, + minSegSize); + + /* Handle empty input: same as splitN empty case */ + if (nbElts == 0) { + if (eltWidth != 1) { + uint8_t header[ZL_VARINT_LENGTH_64]; + size_t const headerSize = ZL_varintEncode(eltWidth, header); + ZL_Encoder_sendCodecHeader(eictx, header, headerSize); + } + return ZL_returnSuccess(); + } + + /* If too few elements for any split, output as a single segment */ + if (nbElts < 2 * minSegSize) { + ZL_Output* const s = + ENC_refTypedStream(eictx, 0, eltWidth, nbElts, in, 0); + ZL_ERR_IF_NULL(s, allocation); + ZL_ERR_IF_ERR(ZL_Output_setIntMetadata(s, ZL_SPLIT_CHANNEL_ID, 0)); + return ZL_returnSuccess(); + } + + /* Compute block parameters */ + size_t const blockSize = + (minSegSize / BLOCK_DIVISOR > 0) ? minSegSize / BLOCK_DIVISOR : 1; + size_t const nbBlocks = (nbElts + blockSize - 1) / blockSize; + size_t const maxZone = 4 * blockSize + 1; + + /* Allocate scratch for block algorithm: + * blockMin[nb] + blockMax[nb] + suffBuf[maxZone] + suffBufMax[maxZone] + * + splitBlocks[nb] + segmentSizes[nb+1] + * uint64_t arrays first, then size_t arrays, to keep alignment. */ + size_t const nU64 = + nbBlocks * 2 + maxZone * 2; /* blockMin/Max + suffBuf/Max */ + /* size_t region */ + size_t const nSizeT = nbBlocks /* splitBlocks */ + + (nbBlocks + 1); /* segmentSizes */ + size_t const totalScratch = + nU64 * sizeof(uint64_t) + nSizeT * sizeof(size_t); + + void* scratch = ZL_Encoder_getScratchSpace(eictx, totalScratch); + ZL_ERR_IF_NULL(scratch, allocation); + + size_t* segmentSizes = (size_t*)((uint64_t*)scratch + nU64) + + nbBlocks; /* after splitBlocks */ + + /* Detect range boundaries */ + size_t nbSegments = 0; + detectBoundaries( + ZL_Input_ptr(in), + eltWidth, + nbElts, + minSegSize, + scratch, + totalScratch, + segmentSizes, + &nbSegments, + nbBlocks + 1); + + ZL_DLOG(BLOCK, "EI_split_byrange: detected %zu segments", nbSegments); + + /* Emit segments (same mechanism as EI_splitN) */ + size_t pos = 0; + ZL_ASSERT_LT(nbSegments, INT_MAX); + for (size_t n = 0; n < nbSegments; n++) { + size_t segSize = segmentSizes[n]; + ZL_DLOG(SEQ, "EI_split_byrange: segment %zu of size %zu", n, segSize); + ZL_Output* const s = ENC_refTypedStream( + eictx, 0, eltWidth, segSize, in, pos * eltWidth); + ZL_ERR_IF_NULL(s, allocation); + ZL_ERR_IF_ERR(ZL_Output_setIntMetadata(s, ZL_SPLIT_CHANNEL_ID, (int)n)); + pos += segSize; + } + ZL_ASSERT_EQ(pos, nbElts); + + return ZL_returnSuccess(); +} diff --git a/src/openzl/codecs/splitN/encode_split_byrange_binding.h b/src/openzl/codecs/splitN/encode_split_byrange_binding.h new file mode 100644 index 000000000..9d4e06358 --- /dev/null +++ b/src/openzl/codecs/splitN/encode_split_byrange_binding.h @@ -0,0 +1,44 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_CODECS_SPLITN_ENCODE_SPLIT_BYRANGE_BINDING_H +#define OPENZL_CODECS_SPLITN_ENCODE_SPLIT_BYRANGE_BINDING_H + +#include "openzl/codecs/common/graph_vo.h" /* GRAPH_VO_NUM */ +#include "openzl/shared/portability.h" +#include "openzl/zl_ctransform.h" /* ZL_Encoder */ +#include "openzl/zl_errors.h" /* ZL_Report */ +#include "openzl/zl_opaque_types.h" + +ZL_BEGIN_C_DECLS + +/** + * split_byrange encoder + * + * Automatically detects range boundaries in a numeric input stream + * and splits it into contiguous segments where values belong to + * non-overlapping ranges. + * + * Input: 1 numeric stream (all widths supported: 1, 2, 4, 8 bytes) + * Output: 1 or more numeric streams (one per detected range segment) + * + * Parameters: none (parameter-free node) + * + * Wire format: reuses splitN_num transform ID and codec header. + */ +ZL_Report +EI_split_byrange(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); + +#define EI_SPLIT_BYRANGE(id) \ + { .gd = GRAPH_VO_NUM(id), \ + .transform_f = EI_split_byrange, \ + .name = "!zl.split_byrange" } + +/// Returns the minimum block size used by split_byrange for a given element +/// width (in bytes: 1, 2, 4, or 8). Block size is the granularity at which +/// min/max statistics are computed. Tests can use this to size segments +/// appropriately. +size_t ZL_splitByRange_minBlockSize(size_t eltWidth); + +ZL_END_C_DECLS + +#endif // OPENZL_CODECS_SPLITN_ENCODE_SPLIT_BYRANGE_BINDING_H diff --git a/src/openzl/codecs/tokenize/decode_tokenize_binding.c b/src/openzl/codecs/tokenize/decode_tokenize_binding.c index a178506bb..ee79a2f7c 100644 --- a/src/openzl/codecs/tokenize/decode_tokenize_binding.c +++ b/src/openzl/codecs/tokenize/decode_tokenize_binding.c @@ -11,6 +11,7 @@ ZL_Report DI_tokenize(ZL_Decoder* dictx, const ZL_Input* in[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_Input const* const alphabet = in[0]; ZL_Input const* const indices = in[1]; @@ -21,7 +22,7 @@ ZL_Report DI_tokenize(ZL_Decoder* dictx, const ZL_Input* in[]) size_t const idxWidth = ZL_Input_eltWidth(indices); ZL_Output* out = ZL_Decoder_create1OutStream(dictx, nbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); bool const success = ZS_tokenizeDecode( ZL_Output_ptr(out), @@ -31,15 +32,16 @@ ZL_Report DI_tokenize(ZL_Decoder* dictx, const ZL_Input* in[]) nbElts, eltWidth, idxWidth); - ZL_RET_R_IF_NOT(corruption, success, "Tokenize detected corrupted input!"); + ZL_ERR_IF_NOT(success, corruption, "Tokenize detected corrupted input!"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnValue(1); } ZL_Report DI_tokenizeVSF(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); @@ -59,25 +61,25 @@ ZL_Report DI_tokenizeVSF(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t const dstNbElts = ZL_Input_numElts(indices); size_t const idxWidth = ZL_Input_eltWidth(indices); - ZL_RET_R_IF_NOT( - corruption, + ZL_ERR_IF_NOT( ZS_tokenizeValidateIndices( - alphabetSize, indicesSrc, dstNbElts, idxWidth)); + alphabetSize, indicesSrc, dstNbElts, idxWidth), + corruption); size_t const dstNbBytes = ZS_tokenizeComputeVSFContentSize( indicesSrc, idxWidth, dstNbElts, alphabetFieldSizes, alphabetSize); - ZL_RET_R_IF_LT(corruption, dstNbElts, alphabetSize); + ZL_ERR_IF_LT(dstNbElts, alphabetSize, corruption); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstNbBytes, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint32_t* const dstFieldSizes = ZL_Output_reserveStringLens(out, dstNbElts); - ZL_RET_R_IF_NULL(allocation, dstFieldSizes); + ZL_ERR_IF_NULL(dstFieldSizes, allocation); void* workspace = ZL_Decoder_getScratchSpace( dictx, ZS_tokenizeVSFDecodeWorkspaceSize( alphabetSize, alphabetFieldSizesSum)); - ZL_RET_R_IF_NULL(allocation, workspace); + ZL_ERR_IF_NULL(workspace, allocation); ZS_tokenizeVSFDecode( ZL_Input_ptr(alphabet), @@ -92,6 +94,6 @@ ZL_Report DI_tokenizeVSF(ZL_Decoder* dictx, const ZL_Input* ins[]) idxWidth, workspace); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstNbElts)); return ZL_returnSuccess(); } diff --git a/src/openzl/codecs/tokenize/decode_tokenize_binding.h b/src/openzl/codecs/tokenize/decode_tokenize_binding.h index 76b664692..6d54e1d1c 100644 --- a/src/openzl/codecs/tokenize/decode_tokenize_binding.h +++ b/src/openzl/codecs/tokenize/decode_tokenize_binding.h @@ -14,24 +14,17 @@ ZL_Report DI_tokenizeVSF(ZL_Decoder* dictx, const ZL_Input* ins[]); #define TOKENIZE_FIXED_GRAPH(id) TOKENIZE_GRAPH(id, ZL_Type_struct) -#define DI_TOKENIZE_FIXED(id) \ - { \ - .transform_f = DI_tokenize, .name = "tokenize" \ - } +#define DI_TOKENIZE_FIXED(id) { .transform_f = DI_tokenize, .name = "tokenize" } #define TOKENIZE_NUMERIC_GRAPH(id) TOKENIZE_GRAPH(id, ZL_Type_numeric) -#define DI_TOKENIZE_NUMERIC(id) \ - { \ - .transform_f = DI_tokenize, .name = "tokenize_numeric" \ - } +#define DI_TOKENIZE_NUMERIC(id) \ + { .transform_f = DI_tokenize, .name = "tokenize_numeric" } #define TOKENIZE_VSF_GRAPH(id) TOKENIZE_GRAPH(id, ZL_Type_string) -#define DI_TOKENIZE_VSF(id) \ - { \ - .transform_f = DI_tokenizeVSF, .name = "tokenize vsf" \ - } +#define DI_TOKENIZE_VSF(id) \ + { .transform_f = DI_tokenizeVSF, .name = "tokenize vsf" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/tokenize/encode_tokenize_binding.c b/src/openzl/codecs/tokenize/encode_tokenize_binding.c index 0fd398ed4..8bbae7a8d 100644 --- a/src/openzl/codecs/tokenize/encode_tokenize_binding.c +++ b/src/openzl/codecs/tokenize/encode_tokenize_binding.c @@ -1,7 +1,6 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. #include "openzl/common/errors_internal.h" -#include "openzl/common/scope_context.h" #include "openzl/zl_compressor.h" #include "openzl/zl_opaque_types.h" @@ -107,11 +106,12 @@ ZL_FORCE_INLINE ZL_Report writeIndicesImpl( size_t eltWidth, size_t idxWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); void const* const input = ZL_Input_ptr(in); size_t const nbElts = ZL_Input_numElts(in); ZL_Output* out = ZL_Encoder_createTypedStream(eictx, 1, nbElts, idxWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); void* const indices = ZL_Output_ptr(out); for (size_t i = 0; i < nbElts; ++i) { @@ -119,7 +119,7 @@ ZL_FORCE_INLINE ZL_Report writeIndicesImpl( size_t const index = Map8_findVal(alphabet, token)->val; writeIndexAt(index, indices, i, idxWidth); } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnSuccess(); } @@ -131,6 +131,7 @@ ZL_FORCE_INLINE ZL_Report tokenizeImpl( bool sort, size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(eltWidth, ZL_Input_eltWidth(in)); void const* const input = ZL_Input_ptr(in); @@ -138,7 +139,7 @@ ZL_FORCE_INLINE ZL_Report tokenizeImpl( // Reserve up to 256 entries to skip past the small growth stage. if (!Map8_reserve(tokToIdx, ZL_MIN(256, (uint32_t)nbElts), false)) { - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } // Build the alphabet map. @@ -162,13 +163,13 @@ ZL_FORCE_INLINE ZL_Report tokenizeImpl( } } - ZL_RET_R_IF(allocation, badAlloc); + ZL_ERR_IF(badAlloc, allocation); size_t const alphabetSize = Map8_size(tokToIdx); ZL_Output* out = ZL_Encoder_createTypedStream(eictx, 0, alphabetSize, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Write the alphabet // TODO(terrelln): Right now we have to write the alphabet out after the @@ -193,12 +194,12 @@ ZL_FORCE_INLINE ZL_Report tokenizeImpl( } } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, alphabetSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, alphabetSize)); - ZL_RET_R_IF_GT( - temporaryLibraryLimitation, + ZL_ERR_IF_GT( alphabetSize, UINT32_MAX, + temporaryLibraryLimitation, "Only 4 byte indices supported... But why do you want this?"); // Write the indices in the smallest output possible @@ -212,7 +213,7 @@ ZL_FORCE_INLINE ZL_Report tokenizeImpl( return writeIndicesImpl(eictx, in, tokToIdx, eltWidth, 4); } - ZL_RET_R_ERR(logicError, "Impossible"); + ZL_ERR(logicError, "Impossible"); } #define GEN_TOKENIZE(eltWidth) \ @@ -239,6 +240,7 @@ static ZL_Report tokenize2_shell( Map8* alphabet, bool sort) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(in); ZL_ASSERT_EQ(ZL_Input_eltWidth(in), 2); @@ -278,7 +280,7 @@ static ZL_Report tokenize2_shell( void* const workspace = ZL_Encoder_getScratchSpace(eictx, TOK2_CARDINALITY_MAX); - ZL_RET_R_IF_NULL(allocation, workspace); + ZL_ERR_IF_NULL(workspace, allocation); size_t const alphabetSize = TOK2_numSort_cardinality(workspace, srcPtr, nbSymbols); @@ -292,11 +294,11 @@ static ZL_Report tokenize2_shell( ZL_DLOG(SEQ, "tokenize2_shell: alphabetSize: %zu", alphabetSize); ZL_Output* const alphabetStream = ZL_Encoder_createTypedStream(eictx, 0, alphabetSize, 2); - ZL_RET_R_IF_NULL(allocation, alphabetStream); + ZL_ERR_IF_NULL(alphabetStream, allocation); ZL_Output* const indexStream = ZL_Encoder_createTypedStream(eictx, 1, nbSymbols, 1); - ZL_RET_R_IF_NULL(allocation, indexStream); + ZL_ERR_IF_NULL(indexStream, allocation); TOK2_numSort_encode_into1( ZL_Output_ptr(indexStream), @@ -307,8 +309,8 @@ static ZL_Report tokenize2_shell( nbSymbols, workspace); - ZL_RET_R_IF_ERR(ZL_Output_commit(alphabetStream, alphabetSize)); - ZL_RET_R_IF_ERR(ZL_Output_commit(indexStream, nbSymbols)); + ZL_ERR_IF_ERR(ZL_Output_commit(alphabetStream, alphabetSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(indexStream, nbSymbols)); return ZL_returnSuccess(); } @@ -316,18 +318,19 @@ static ZL_Report tokenize2_shell( ZL_FORCE_INLINE ZL_Report tokenize1(ZL_Encoder* eictx, ZL_Input const* in, bool sort) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(1, ZL_Input_eltWidth(in)); const uint8_t* input = (const uint8_t*)ZL_Input_ptr(in); const size_t nbElts = ZL_Input_numElts(in); size_t alphabetSize; ZL_Output* alphabetStream = ZL_Encoder_createTypedStream(eictx, 0, 256, 1); - ZL_RET_R_IF_NULL(allocation, alphabetStream); + ZL_ERR_IF_NULL(alphabetStream, allocation); uint8_t* alphabet = (uint8_t*)ZL_Output_ptr(alphabetStream); ZL_Output* indicesStream = ZL_Encoder_createTypedStream(eictx, 1, nbElts, 1); - ZL_RET_R_IF_NULL(allocation, indicesStream); + ZL_ERR_IF_NULL(indicesStream, allocation); uint8_t* indices = (uint8_t*)ZL_Output_ptr(indicesStream); if (sort) { @@ -363,14 +366,15 @@ tokenize1(ZL_Encoder* eictx, ZL_Input const* in, bool sort) } } - ZL_RET_R_IF_ERR(ZL_Output_commit(alphabetStream, alphabetSize)); - ZL_RET_R_IF_ERR(ZL_Output_commit(indicesStream, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(alphabetStream, alphabetSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(indicesStream, nbElts)); return ZL_returnSuccess(); } static ZL_Report tokenize(ZL_Encoder* eictx, Map8* alphabet, const ZL_Input* in, bool sort) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(in); switch (ZL_Input_eltWidth(in)) { case 1: @@ -382,11 +386,10 @@ tokenize(ZL_Encoder* eictx, Map8* alphabet, const ZL_Input* in, bool sort) case 8: return tokenize8(eictx, in, alphabet, sort); default: - ZL_RET_R_ERR( - temporaryLibraryLimitation, - "Elt width %u not supported yet! But decoder the decoder " - "supports all width, so you only need to extend the encoder", - (unsigned)ZL_Input_eltWidth(in)); + ZL_ERR(temporaryLibraryLimitation, + "Elt width %u not supported yet! But decoder the decoder " + "supports all width, so you only need to extend the encoder", + (unsigned)ZL_Input_eltWidth(in)); } } @@ -422,6 +425,7 @@ static bool EI_tokenizeShouldSort(const ZL_Encoder* encoder) ZL_Report EI_tokenize(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; @@ -435,8 +439,8 @@ ZL_Report EI_tokenize(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) .opaque = param.opaque, .input = in, }; - ZL_Report const report = (param.customTokenizeFn)(&ctx, in); - ZL_RET_R(report); + ZL_ERR_IF_ERR((param.customTokenizeFn)(&ctx, in)); + return ZL_returnSuccess(); } return EI_tokenizeImpl(eictx, in, EI_tokenizeShouldSort(eictx)); } @@ -458,6 +462,7 @@ static ZL_Report EI_tokenizeVSFImpl( const ZL_Input* in, bool sort) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_NN(in); ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_string); @@ -468,31 +473,31 @@ static ZL_Report EI_tokenizeVSFImpl( // Build alphabet of input stream size_t alphabetFieldSizesSum; - ZL_RET_R_IF_ERR(ZS_buildTokenizeVsfAlphabet( + ZL_ERR_IF_ERR(ZS_buildTokenizeVsfAlphabet( tokToIdx, &alphabetFieldSizesSum, src, fieldSizes, nbElts)); size_t const alphabetSize = MapVSF_size(tokToIdx); // Create alphabet stream ZL_Output* const alphabet = ZL_Encoder_createTypedStream(eictx, 0, alphabetFieldSizesSum, 1); - ZL_RET_R_IF_NULL(allocation, alphabet); + ZL_ERR_IF_NULL(alphabet, allocation); uint32_t* const alphabetFieldSizes = ZL_Output_reserveStringLens(alphabet, alphabetSize); - ZL_RET_R_IF_NULL(allocation, alphabetFieldSizes); + ZL_ERR_IF_NULL(alphabetFieldSizes, allocation); // Create indices stream size_t const idxWidth = getMinIdxSpace(alphabetSize); ZL_Output* const indices = ZL_Encoder_createTypedStream(eictx, 1, nbElts, idxWidth); - ZL_RET_R_IF_NULL(allocation, indices); + ZL_ERR_IF_NULL(indices, allocation); // Allocate buffer for key manipulation VSFKey* const keysBuffer = ZL_Encoder_getScratchSpace(eictx, alphabetSize * sizeof(VSFKey)); - ZL_RET_R_IF_NULL(allocation, keysBuffer); + ZL_ERR_IF_NULL(keysBuffer, allocation); - ZL_RET_R_IF_ERR(ZS_tokenizeVSFEncode( + ZL_ERR_IF_ERR(ZS_tokenizeVSFEncode( ZL_Output_ptr(alphabet), alphabetFieldSizes, alphabetSize, @@ -505,8 +510,8 @@ static ZL_Report EI_tokenizeVSFImpl( idxWidth, sort)); - ZL_RET_R_IF_ERR(ZL_Output_commit(alphabet, alphabetSize)); - ZL_RET_R_IF_ERR(ZL_Output_commit(indices, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(alphabet, alphabetSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(indices, nbElts)); return ZL_returnSuccess(); } @@ -616,7 +621,12 @@ ZL_NodeID ZS2_createNode_customTokenize( .paramId = ZL_TOKENIZE_TOKENIZER_PID, .paramPtr = ¶m, .paramSize = sizeof(param)); - return ZL_Compressor_cloneNode(cgraph, ZL_NODE_TOKENIZE, &lParams); + return ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = ZL_NODE_TOKENIZE, + .localParams = &lParams, + }); } ZL_GraphID ZL_Compressor_registerCustomTokenizeGraph( diff --git a/src/openzl/codecs/tokenize/encode_tokenize_binding.h b/src/openzl/codecs/tokenize/encode_tokenize_binding.h index 4fd75394c..ae86eb066 100644 --- a/src/openzl/codecs/tokenize/encode_tokenize_binding.h +++ b/src/openzl/codecs/tokenize/encode_tokenize_binding.h @@ -19,38 +19,32 @@ ZL_NodeID ZS2_createNode_customTokenize( ZL_CustomTokenizeFn customTokenizeFn, void const* opaque); -#define EI_TOKENIZE_STRUCT(id) \ - { \ - .gd = TOKENIZE_GRAPH(id, ZL_Type_struct), .transform_f = EI_tokenize, \ - .name = "!zl.tokenize_struct" \ - } - -#define EI_TOKENIZE_NUMERIC(id) \ - { \ - .gd = TOKENIZE_GRAPH(id, ZL_Type_numeric), .transform_f = EI_tokenize, \ - .name = "!zl.tokenize_numeric" \ - } - -#define EI_TOKENIZE_STRING(id) \ - { \ - .gd = TOKENIZE_GRAPH(id, ZL_Type_string), \ - .transform_f = EI_tokenizeVSF, .name = "!zl.tokenize_string" \ - } - -#define EI_TOKENIZE_SORTED(id) \ - { \ - .gd = TOKENIZE_GRAPH(id, ZL_Type_numeric), .transform_f = EI_tokenize, \ - .localParams = ZL_LP_1INTPARAM(ZL_TOKENIZE_SORT_PID, 1), \ - .name = "!zl.private.tokenize_sorted" \ - } - -#define EI_TOKENIZE_VSF_SORTED(id) \ - { \ - .gd = TOKENIZE_GRAPH(id, ZL_Type_string), \ - .transform_f = EI_tokenizeVSF, \ - .localParams = ZL_LP_1INTPARAM(ZL_TOKENIZE_SORT_PID, 1), \ - .name = "!zl.private.tokenize_string_sorted" \ - } +#define EI_TOKENIZE_STRUCT(id) \ + { .gd = TOKENIZE_GRAPH(id, ZL_Type_struct), \ + .transform_f = EI_tokenize, \ + .name = "!zl.tokenize_struct" } + +#define EI_TOKENIZE_NUMERIC(id) \ + { .gd = TOKENIZE_GRAPH(id, ZL_Type_numeric), \ + .transform_f = EI_tokenize, \ + .name = "!zl.tokenize_numeric" } + +#define EI_TOKENIZE_STRING(id) \ + { .gd = TOKENIZE_GRAPH(id, ZL_Type_string), \ + .transform_f = EI_tokenizeVSF, \ + .name = "!zl.tokenize_string" } + +#define EI_TOKENIZE_SORTED(id) \ + { .gd = TOKENIZE_GRAPH(id, ZL_Type_numeric), \ + .transform_f = EI_tokenize, \ + .localParams = ZL_LP_1INTPARAM(ZL_TOKENIZE_SORT_PID, 1), \ + .name = "!zl.private.tokenize_sorted" } + +#define EI_TOKENIZE_VSF_SORTED(id) \ + { .gd = TOKENIZE_GRAPH(id, ZL_Type_string), \ + .transform_f = EI_tokenizeVSF, \ + .localParams = ZL_LP_1INTPARAM(ZL_TOKENIZE_SORT_PID, 1), \ + .name = "!zl.private.tokenize_string_sorted" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/tokenize/encode_tokenize_kernel.c b/src/openzl/codecs/tokenize/encode_tokenize_kernel.c index 73d5659dd..5f7fe7eff 100644 --- a/src/openzl/codecs/tokenize/encode_tokenize_kernel.c +++ b/src/openzl/codecs/tokenize/encode_tokenize_kernel.c @@ -13,10 +13,11 @@ ZL_Report ZS_buildTokenizeVsfAlphabet( const uint32_t* fieldSizes, size_t nbElts) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Reserve map space - ZL_RET_R_IF_NOT( - allocation, - MapVSF_reserve(tokToIdx, (uint32_t)ZL_MIN(256, nbElts), false)); + ZL_ERR_IF_NOT( + MapVSF_reserve(tokToIdx, (uint32_t)ZL_MIN(256, nbElts), false), + allocation); // Build alphabet map *alphabetFieldSizesSum = 0; @@ -33,7 +34,7 @@ ZL_Report ZS_buildTokenizeVsfAlphabet( } currElt += fieldSizes[i]; } - ZL_RET_R_IF(allocation, badAlloc); + ZL_ERR_IF(badAlloc, allocation); return ZL_returnSuccess(); } @@ -98,12 +99,13 @@ ZL_Report ZS_tokenizeVSFEncode( size_t const idxWidth, bool sort) { - ZL_RET_R_IF_GT( - temporaryLibraryLimitation, + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GT( alphabetSize, UINT32_MAX, + temporaryLibraryLimitation, "Only 4 byte indices supported... But why do you want this?"); - ZL_RET_R_IF_EQ(logicError, idxWidth, 0); + ZL_ERR_IF_EQ(idxWidth, 0, logicError); // Build buffer to get insertion order of map entries MapVSF_Iter iter = MapVSF_iter(tokToIdx); diff --git a/src/openzl/codecs/transpose/decode_transpose_binding.c b/src/openzl/codecs/transpose/decode_transpose_binding.c index ec8b46e0f..57b3d37b5 100644 --- a/src/openzl/codecs/transpose/decode_transpose_binding.c +++ b/src/openzl/codecs/transpose/decode_transpose_binding.c @@ -13,6 +13,7 @@ // ZL_Report DI_transpose(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -25,12 +26,12 @@ ZL_Report DI_transpose(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t const newFieldWidth = nbFields ? nbFields : fieldWidth; ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, newNbFields, newFieldWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // TODO(@Cyan) : optimize with a reference when newFieldWidth==1, or // nbFields<=1 ZS_transposeDecode( ZL_Output_ptr(out), ZL_Input_ptr(in), newNbFields, newFieldWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, newNbFields)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, newNbFields)); return ZL_returnValue(1); } @@ -41,10 +42,11 @@ ZL_Report DI_transpose_split( const ZL_Input* inVOs[], size_t nbInVOs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); (void)inFixed; ZL_ASSERT_NN(dictx); ZL_ASSERT_EQ(nbInFixed, 0); - ZL_RET_R_IF_EQ(corruption, nbInVOs, 0); + ZL_ERR_IF_EQ(nbInVOs, 0, corruption); ZL_ASSERT_NN(inVOs); size_t const nbElts = ZL_Input_numElts(inVOs[0]); @@ -52,24 +54,24 @@ ZL_Report DI_transpose_split( size_t const dstEltWidth = nbInVOs; for (size_t i = 0; i < nbInVOs; ++i) { - ZL_RET_R_IF_NE(corruption, ZL_Type_serial, ZL_Input_type(inVOs[i])); - ZL_RET_R_IF_NE(corruption, nbElts, ZL_Input_numElts(inVOs[i])); + ZL_ERR_IF_NE(ZL_Type_serial, ZL_Input_type(inVOs[i]), corruption); + ZL_ERR_IF_NE(nbElts, ZL_Input_numElts(inVOs[i]), corruption); } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstNbElts, dstEltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); const uint8_t** const inPtrs = ZL_Decoder_getScratchSpace(dictx, nbInVOs * sizeof(uint8_t*)); - ZL_RET_R_IF_NULL(allocation, inPtrs); + ZL_ERR_IF_NULL(inPtrs, allocation); for (size_t i = 0; i < nbInVOs; i++) { inPtrs[i] = (const uint8_t*)ZL_Input_ptr(inVOs[i]); } ZS_splitTransposeDecode(ZL_Output_ptr(out), inPtrs, dstNbElts, dstEltWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstNbElts)); return ZL_returnSuccess(); } @@ -82,6 +84,7 @@ ZL_Report DI_transpose_split( static ZL_Report DI_transposeN_typed(ZL_Decoder* dictx, const ZL_Input* ins[], size_t fieldSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -89,16 +92,16 @@ DI_transposeN_typed(ZL_Decoder* dictx, const ZL_Input* ins[], size_t fieldSize) ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_serial); ZL_ASSERT_EQ(ZL_Input_eltWidth(in), 1); size_t const srcSize = ZL_Input_numElts(in); - ZL_RET_R_IF_NE(GENERIC, srcSize % fieldSize, 0); + ZL_ERR_IF_NE(srcSize % fieldSize, 0, GENERIC); size_t const dstCapacity = srcSize; ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZS_transposeDecode( ZL_Output_ptr(out), ZL_Input_ptr(in), srcSize / fieldSize, fieldSize); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, srcSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, srcSize)); return ZL_returnValue(1); } @@ -125,6 +128,7 @@ static ZL_Report DI_transpose_split_bytes( const ZL_Input* ins[], size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); ZL_ASSERT_NN(ins[0]); @@ -134,19 +138,19 @@ static ZL_Report DI_transpose_split_bytes( uint8_t const* src[8]; for (size_t i = 0; i < eltWidth; ++i) { ZL_ASSERT_NN(ins[i]); - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( nbElts, ZL_Input_numElts(ins[i]), + corruption, "Not all streams the same size"); src[i] = ZL_Input_ptr(ins[i]); } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbElts, eltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); uint8_t* dst = (uint8_t*)ZL_Output_ptr(out); ZS_splitTransposeDecode(dst, src, nbElts, eltWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbElts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/transpose/decode_transpose_binding.h b/src/openzl/codecs/transpose/decode_transpose_binding.h index 90e1bb195..649e3df83 100644 --- a/src/openzl/codecs/transpose/decode_transpose_binding.h +++ b/src/openzl/codecs/transpose/decode_transpose_binding.h @@ -19,15 +19,10 @@ ZL_Report DI_transpose_split( const ZL_Input* inVOs[], size_t nbInVOs); -#define DI_TRANSPOSE(id) \ - { \ - .transform_f = DI_transpose, .name = "transpose" \ - } +#define DI_TRANSPOSE(id) { .transform_f = DI_transpose, .name = "transpose" } -#define DI_TRANSPOSE_SPLIT(id) \ - { \ - .transform_f = DI_transpose_split, .name = "transpose split" \ - } +#define DI_TRANSPOSE_SPLIT(id) \ + { .transform_f = DI_transpose_split, .name = "transpose split" } /* ============================================= * LEGACY transforms @@ -66,35 +61,17 @@ ZL_Report DI_transposesplit8_bytes(ZL_Decoder* dictx, const ZL_Input* in[]); // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define DI_TRANSPOSE_2(id) \ - { \ - .transform_f = DI_transpose2_typed \ - } - -#define DI_TRANSPOSE_4(id) \ - { \ - .transform_f = DI_transpose4_typed \ - } - -#define DI_TRANSPOSE_8(id) \ - { \ - .transform_f = DI_transpose8_typed \ - } - -#define DI_TRANSPOSE_SPLIT2(id) \ - { \ - .transform_f = DI_transposesplit2_bytes \ - } - -#define DI_TRANSPOSE_SPLIT4(id) \ - { \ - .transform_f = DI_transposesplit4_bytes \ - } - -#define DI_TRANSPOSE_SPLIT8(id) \ - { \ - .transform_f = DI_transposesplit8_bytes \ - } +#define DI_TRANSPOSE_2(id) { .transform_f = DI_transpose2_typed } + +#define DI_TRANSPOSE_4(id) { .transform_f = DI_transpose4_typed } + +#define DI_TRANSPOSE_8(id) { .transform_f = DI_transpose8_typed } + +#define DI_TRANSPOSE_SPLIT2(id) { .transform_f = DI_transposesplit2_bytes } + +#define DI_TRANSPOSE_SPLIT4(id) { .transform_f = DI_transposesplit4_bytes } + +#define DI_TRANSPOSE_SPLIT8(id) { .transform_f = DI_transposesplit8_bytes } ZL_END_C_DECLS diff --git a/src/openzl/codecs/transpose/decode_transpose_kernel.c b/src/openzl/codecs/transpose/decode_transpose_kernel.c index 651ba857d..3ae2b1ba4 100644 --- a/src/openzl/codecs/transpose/decode_transpose_kernel.c +++ b/src/openzl/codecs/transpose/decode_transpose_kernel.c @@ -70,11 +70,12 @@ ZL_FORCE_INLINE void ZS_splitTransposeDecode_impl( } } -#define ZS_GEN_SPLIT_TRANSPOSE_DECODE(kEltWidth) \ - static ZL_TRANSPOSE_DEC_NOINLINE void ZS_splitTransposeDecode_##kEltWidth( \ - uint8_t* dst, uint8_t const* restrict* src, size_t nbElts) \ - { \ - ZS_splitTransposeDecode_impl(dst, src, nbElts, kEltWidth); \ +#define ZS_GEN_SPLIT_TRANSPOSE_DECODE(kEltWidth) \ + static ZL_MAYBE_UNUSED_FUNCTION ZL_TRANSPOSE_DEC_NOINLINE void \ + ZS_splitTransposeDecode_##kEltWidth( \ + uint8_t* dst, uint8_t const* restrict* src, size_t nbElts) \ + { \ + ZS_splitTransposeDecode_impl(dst, src, nbElts, kEltWidth); \ } ZS_GEN_SPLIT_TRANSPOSE_DECODE(2) diff --git a/src/openzl/codecs/transpose/encode_transpose_binding.c b/src/openzl/codecs/transpose/encode_transpose_binding.c index ccc046cfe..83375b5dc 100644 --- a/src/openzl/codecs/transpose/encode_transpose_binding.c +++ b/src/openzl/codecs/transpose/encode_transpose_binding.c @@ -2,12 +2,12 @@ #include "openzl/codecs/transpose/encode_transpose_binding.h" #include "openzl/codecs/transpose/encode_transpose_kernel.h" // ZS_transposeEncode +#include "openzl/codecs/zl_transpose.h" // ZL_GRAPH_TRANSPOSE_SPLIT #include "openzl/common/assertion.h" #include "openzl/common/errors_internal.h" #include "openzl/compress/private_nodes.h" #include "openzl/zl_data.h" #include "openzl/zl_graph_api.h" -#include "openzl/zl_selector_declare_helper.h" // EI_transpose design notes: // - Accepts a single stream of type ZL_Type_struct @@ -15,6 +15,7 @@ // - An N x W input stream becomes a W x N output stream ZL_Report EI_transpose(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); @@ -29,19 +30,20 @@ ZL_Report EI_transpose(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const newNbFields = nbFields ? fieldWidth : 0; ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, newNbFields, newFieldWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); const void* const src = ZL_Input_ptr(in); void* const dst = ZL_Output_ptr(out); // TODO(@Cyan) : optimize with a reference when newFieldWidth==1, or // nbFields<=1 ZS_transposeEncode(dst, src, nbFields, fieldWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, newNbFields)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, newNbFields)); return ZL_returnValue(1); } ZL_Report EI_transpose_split(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); @@ -59,19 +61,19 @@ EI_transpose_split(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) uint8_t** const outPtrs = ZL_Encoder_getScratchSpace(eictx, nbOutStreams * sizeof(uint8_t*)); - ZL_RET_R_IF_NULL(allocation, outPtrs); + ZL_ERR_IF_NULL(outPtrs, allocation); for (size_t i = 0; i < nbOutStreams; i++) { ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, dstNbElts, 1); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( out, + allocation, "allocation error in transposeVO while trying to create output stream %zu of size %zu", i, dstNbElts); outPtrs[i] = (uint8_t*)ZL_Output_ptr(out); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstNbElts)); } ZS_splitTransposeEncode(outPtrs, src, nbElts, eltWidth); @@ -90,26 +92,27 @@ static ZL_Report EI_transpose_serial_typed( const ZL_Input* in, size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_NN(in); ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_serial); ZL_ASSERT_EQ(ZL_Input_eltWidth(in), 1); size_t const srcSize = ZL_Input_numElts(in); - ZL_RET_R_IF_NE( - GENERIC, + ZL_ERR_IF_NE( srcSize % eltWidth, 0, + GENERIC, "source size is not a multiple of transpose width"); size_t const dstCapacity = srcSize; ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); // Note : we should also check alignment here, // but since this interface will disappear in the near future, // this is a disappearing concern too ZS_transposeEncode( ZL_Output_ptr(out), ZL_Input_ptr(in), srcSize / eltWidth, eltWidth); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, srcSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, srcSize)); return ZL_returnValue(1); } @@ -204,10 +207,11 @@ size_t EI_transpose_8bytes( static ZL_Report EI_transpose_split_bytes(ZL_Encoder* eictx, const ZL_Input* in, size_t eltWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_NN(in); ZL_ASSERT_EQ(ZL_Input_type(in), ZL_Type_struct); - ZL_RET_R_IF_NE(GENERIC, ZL_Input_eltWidth(in), eltWidth); + ZL_ERR_IF_NE(ZL_Input_eltWidth(in), eltWidth, GENERIC); // Create one output buffer per elt byte size_t const nbElts = ZL_Input_numElts(in); @@ -215,7 +219,7 @@ EI_transpose_split_bytes(ZL_Encoder* eictx, const ZL_Input* in, size_t eltWidth) uint8_t* dst[8]; for (size_t i = 0; i < eltWidth; ++i) { out[i] = ZL_Encoder_createTypedStream(eictx, (int)i, nbElts, 1); - ZL_RET_R_IF_NULL(allocation, out[i]); + ZL_ERR_IF_NULL(out[i], allocation); dst[i] = (uint8_t*)ZL_Output_ptr(out[i]); } @@ -224,7 +228,7 @@ EI_transpose_split_bytes(ZL_Encoder* eictx, const ZL_Input* in, size_t eltWidth) ZS_splitTransposeEncode(dst, src, nbElts, eltWidth); for (size_t i = 0; i < eltWidth; ++i) { - ZL_RET_R_IF_ERR(ZL_Output_commit(out[i], nbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out[i], nbElts)); } return ZL_returnValue(eltWidth); } @@ -256,36 +260,51 @@ EI_transpose_split8bytes(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) return EI_transpose_split_bytes(eictx, in, 8); } -ZL_DECLARE_SELECTOR( - ZL_splitTransposeSelector, - ZL_Type_struct, - SUCCESSOR(transposeSplit1), - SUCCESSOR(transposeSplit2), - SUCCESSOR(transposeSplit4), - SUCCESSOR(transposeSplit8), - SUCCESSOR(transposeSplit)) - -ZL_GraphID ZL_splitTransposeSelector_impl( - const ZL_Selector* selCtx, - ZL_Input const* input, - ZL_splitTransposeSelector_Successors const* successors) +ZL_Report transposeSplitSelectorFnGraph( + ZL_Graph* graph, + ZL_Edge* inputs[], + size_t nbInputs) { - if (ZL_Selector_isTransposeSplitSupported(selCtx)) { - return successors->transposeSplit; + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + ZL_ASSERT_EQ(nbInputs, 1); + ZL_Edge* input = inputs[0]; + + ZL_GraphIDList const customGraphs = ZL_Graph_getCustomGraphs(graph); + ZL_ERR_IF_NE(customGraphs.nbGraphIDs, 5, graphParameter_invalid); + ZL_GraphID const transposeSplit1 = customGraphs.graphids[0]; + ZL_GraphID const transposeSplit2 = customGraphs.graphids[1]; + ZL_GraphID const transposeSplit4 = customGraphs.graphids[2]; + ZL_GraphID const transposeSplit8 = customGraphs.graphids[3]; + ZL_GraphID const transposeSplit = customGraphs.graphids[4]; + + const ZL_Input* in = ZL_Edge_getData(input); + ZL_ASSERT_NN(in); + + if (ZL_Graph_isTransposeSplitSupported(graph)) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, transposeSplit)); + return ZL_returnSuccess(); } - switch (ZL_Input_eltWidth(input)) { + switch (ZL_Input_eltWidth(in)) { case 1: - return successors->transposeSplit1; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, transposeSplit1)); + break; case 2: - return successors->transposeSplit2; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, transposeSplit2)); + break; case 4: - return successors->transposeSplit4; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, transposeSplit4)); + break; case 8: - return successors->transposeSplit8; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, transposeSplit8)); + break; default: - return ZL_GRAPH_ILLEGAL; + ZL_ERR(GENERIC, + "Invalid input element width: %zu", + ZL_Input_eltWidth(in)); } + + return ZL_returnSuccess(); } ZL_NodeID ZL_Graph_getTransposeSplitNode(const ZL_Graph* gctx, size_t eltWidth) @@ -337,14 +356,21 @@ ZL_GraphID ZL_Compressor_registerTransposeSplitGraph( ZL_Compressor_registerStaticGraph_fromNode( cgraph, ZL_NODE_TRANSPOSE_SPLIT, ZL_GRAPHLIST(successor)); - return ZL_splitTransposeSelector_declareGraph( - cgraph, - ZL_splitTransposeSelector_successors_init( - transpose1, - transpose2, - transpose4, - transpose8, - transposeSplit)); + ZL_GraphID const successors[] = { + transpose1, transpose2, transpose4, transpose8, transposeSplit + }; + ZL_GraphParameters const params = { + .customGraphs = successors, + .nbCustomGraphs = 5, + }; + + ZL_RESULT_OF(ZL_GraphID) + const result = ZL_Compressor_parameterizeGraph( + cgraph, ZL_GRAPH_TRANSPOSE_SPLIT, ¶ms); + if (ZL_RES_isError(result)) { + return ZL_GRAPH_ILLEGAL; + } + return ZL_RES_value(result); } ZL_RESULT_OF(ZL_EdgeList) diff --git a/src/openzl/codecs/transpose/encode_transpose_binding.h b/src/openzl/codecs/transpose/encode_transpose_binding.h index 157863cfb..494f87ddc 100644 --- a/src/openzl/codecs/transpose/encode_transpose_binding.h +++ b/src/openzl/codecs/transpose/encode_transpose_binding.h @@ -12,6 +12,19 @@ ZL_BEGIN_C_DECLS +ZL_Report transposeSplitSelectorFnGraph( + ZL_Graph* graph, + ZL_Edge* edges[], + size_t nbEdges); + +#define MIGRAPH_TRANSPOSE_SPLIT \ + { \ + .name = "!zl.private.transpose_split_selector", \ + .graph_f = transposeSplitSelectorFnGraph, \ + .inputTypeMasks = (ZL_Type[]){ ZL_Type_struct }, \ + .nbInputs = 1, \ + } + // New Transpose operation, // which automatically adjusts to token's size. // Accepts and generates `ZL_Type_struct` stream type. @@ -19,17 +32,15 @@ ZL_Report EI_transpose(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); ZL_Report EI_transpose_split(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); -#define EI_TRANSPOSE(id) \ - { \ - .gd = TRANSPOSE_GRAPH(id), .transform_f = EI_transpose, \ - .name = "!zl.private.transpose_deprecated" \ - } +#define EI_TRANSPOSE(id) \ + { .gd = TRANSPOSE_GRAPH(id), \ + .transform_f = EI_transpose, \ + .name = "!zl.private.transpose_deprecated" } -#define EI_TRANSPOSE_SPLIT(id) \ - { \ - .gd = TRANSPOSE_GRAPH_SPLIT(id), .transform_f = EI_transpose_split, \ - .name = "!zl.transpose_split" \ - } +#define EI_TRANSPOSE_SPLIT(id) \ + { .gd = TRANSPOSE_GRAPH_SPLIT(id), \ + .transform_f = EI_transpose_split, \ + .name = "!zl.transpose_split" } ZL_INLINE bool ZL_Selector_isTransposeSplitSupported( const ZL_Selector* selector) @@ -85,44 +96,35 @@ ZL_Report EI_transpose_split8bytes( const ZL_Input* ins[], size_t nbIns); -#define EI_TRANSPOSE_2(id) \ - { \ - .gd = PIPE_GRAPH(id), .transform_f = EI_transpose_2bytes_typed, \ - .name = "!zl.private.transpose2_deprecated" \ - } - -#define EI_TRANSPOSE_4(id) \ - { \ - .gd = PIPE_GRAPH(id), .transform_f = EI_transpose_4bytes_typed, \ - .name = "!zl.private.transpose4_deprecated" \ - } - -#define EI_TRANSPOSE_8(id) \ - { \ - .gd = PIPE_GRAPH(id), .transform_f = EI_transpose_8bytes_typed, \ - .name = "!zl.private.transpose8_deprecated" \ - } - -#define EI_TRANSPOSE_SPLIT2(id) \ - { \ - .gd = TRANSPOSE_GRAPH_SPLIT2(id), \ - .transform_f = EI_transpose_split2bytes, \ - .name = "!zl.private.transpose_split2_deprecated" \ - } - -#define EI_TRANSPOSE_SPLIT4(id) \ - { \ - .gd = TRANSPOSE_GRAPH_SPLIT4(id), \ - .transform_f = EI_transpose_split4bytes, \ - .name = "!zl.private.transpose_split4_deprecated" \ - } - -#define EI_TRANSPOSE_SPLIT8(id) \ - { \ - .gd = TRANSPOSE_GRAPH_SPLIT8(id), \ - .transform_f = EI_transpose_split8bytes, \ - .name = "!zl.private.transpose_split8_deprecated" \ - } +#define EI_TRANSPOSE_2(id) \ + { .gd = PIPE_GRAPH(id), \ + .transform_f = EI_transpose_2bytes_typed, \ + .name = "!zl.private.transpose2_deprecated" } + +#define EI_TRANSPOSE_4(id) \ + { .gd = PIPE_GRAPH(id), \ + .transform_f = EI_transpose_4bytes_typed, \ + .name = "!zl.private.transpose4_deprecated" } + +#define EI_TRANSPOSE_8(id) \ + { .gd = PIPE_GRAPH(id), \ + .transform_f = EI_transpose_8bytes_typed, \ + .name = "!zl.private.transpose8_deprecated" } + +#define EI_TRANSPOSE_SPLIT2(id) \ + { .gd = TRANSPOSE_GRAPH_SPLIT2(id), \ + .transform_f = EI_transpose_split2bytes, \ + .name = "!zl.private.transpose_split2_deprecated" } + +#define EI_TRANSPOSE_SPLIT4(id) \ + { .gd = TRANSPOSE_GRAPH_SPLIT4(id), \ + .transform_f = EI_transpose_split4bytes, \ + .name = "!zl.private.transpose_split4_deprecated" } + +#define EI_TRANSPOSE_SPLIT8(id) \ + { .gd = TRANSPOSE_GRAPH_SPLIT8(id), \ + .transform_f = EI_transpose_split8bytes, \ + .name = "!zl.private.transpose_split8_deprecated" } /* old methods, suitable for PipeTransform, * no longer used, just for reference */ diff --git a/src/openzl/codecs/transpose/encode_transpose_kernel.c b/src/openzl/codecs/transpose/encode_transpose_kernel.c index 4e52de8a7..0377d5510 100644 --- a/src/openzl/codecs/transpose/encode_transpose_kernel.c +++ b/src/openzl/codecs/transpose/encode_transpose_kernel.c @@ -152,9 +152,9 @@ ZL_FORCE_NOINLINE void ZS_splitTransposeEncode_2_avx2( __m256i ymm0[2]; __m256i ymm1[2]; - __m256i const oddEvenShuffleMask = _mm256_broadcastsi128_si256( + __m256i oddEvenShuffleMask = _mm256_broadcastsi128_si256( _mm_set_epi8(15, 13, 11, 9, 14, 12, 10, 8, 7, 5, 3, 1, 6, 4, 2, 0)); - __m256i const evenOddShuffleMask = _mm256_broadcastsi128_si256( + __m256i evenOddShuffleMask = _mm256_broadcastsi128_si256( _mm_set_epi8(14, 12, 10, 8, 15, 13, 11, 9, 6, 4, 2, 0, 7, 5, 3, 1)); uint8_t const* nextSrc = src + prefix * kBytesPerElt; uint8_t const* const lastSrc = src + nbElts * kBytesPerElt; @@ -305,7 +305,7 @@ static ZL_TRANSPOSE_ENC_NOINLINE void ZS_splitTransposeEncode_4_avx2( ZL_FORCE_NOINLINE __m256i getTSplit8Group4Mask(void) { - return _mm_broadcastsi128_si256(_mm_set_epi8( + return _mm256_broadcastsi128_si256(_mm_set_epi8( -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0)); } @@ -329,35 +329,35 @@ ZL_FORCE_NOINLINE void ZS_splitTransposeEncode_8_avx2( __m256i ymm0[8]; __m256i ymm1[8]; - __m256i const group2Masks[8] = { - _mm_broadcastsi128_si256(_mm_set_epi8( + __m256i group2Masks[8] = { + _mm256_broadcastsi128_si256(_mm_set_epi8( 15, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 0)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 0, 15, 7)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 0, 15, 7, 14, 6)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 12, 4, 11, 3, 10, 2, 9, 1, 8, 0, 15, 7, 14, 6, 13, 5)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 11, 3, 10, 2, 9, 1, 8, 0, 15, 7, 14, 6, 13, 5, 12, 4)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 10, 2, 9, 1, 8, 0, 15, 7, 14, 6, 13, 5, 12, 4, 11, 3)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 9, 1, 8, 0, 15, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 8, 0, 15, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1)), }; - __m256i const evenShuffleMasks[4] = { - _mm_broadcastsi128_si256(_mm_set_epi8( + __m256i evenShuffleMasks[4] = { + _mm256_broadcastsi128_si256(_mm_set_epi8( 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6)), - _mm_broadcastsi128_si256(_mm_set_epi8( + _mm256_broadcastsi128_si256(_mm_set_epi8( 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14)), }; - __m256i const group32Mask = _mm_broadcastsi128_si256( + __m256i group32Mask = _mm256_broadcastsi128_si256( _mm_set_epi8(15, 14, 11, 10, 13, 12, 9, 8, 7, 6, 3, 2, 5, 4, 1, 0)); __m256i const permute32Masks[4] = { _mm256_set_epi32(7, 3, 6, 2, 5, 1, 4, 0), diff --git a/src/openzl/codecs/transpose/graph_transpose.h b/src/openzl/codecs/transpose/graph_transpose.h index 09eaa24d3..0f5624a96 100644 --- a/src/openzl/codecs/transpose/graph_transpose.h +++ b/src/openzl/codecs/transpose/graph_transpose.h @@ -8,46 +8,51 @@ /* contains graph definition for transpose transform, * used by both encode and decoder sides */ -#define TRANSPOSE_GRAPH(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ +#define TRANSPOSE_GRAPH(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ } -#define TRANSPOSE_GRAPH_SPLIT(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .voTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ +#define TRANSPOSE_GRAPH_SPLIT(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .voTypes = ZL_STREAMTYPELIST(ZL_Type_serial), \ } -#define TRANSPOSE_GRAPH_SPLIT2(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_serial), \ +#define TRANSPOSE_GRAPH_SPLIT2(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST(ZL_Type_serial, ZL_Type_serial), \ } -#define TRANSPOSE_GRAPH_SPLIT4(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST( \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial), \ +#define TRANSPOSE_GRAPH_SPLIT4(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST( \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial), \ } -#define TRANSPOSE_GRAPH_SPLIT8(id) \ - { \ - .CTid = id, .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ - .soTypes = ZL_STREAMTYPELIST( \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial, \ - ZL_Type_serial), \ +#define TRANSPOSE_GRAPH_SPLIT8(id) \ + { \ + .CTid = id, \ + .inputTypes = ZL_STREAMTYPELIST(ZL_Type_struct), \ + .soTypes = ZL_STREAMTYPELIST( \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial, \ + ZL_Type_serial), \ } #endif diff --git a/src/openzl/codecs/zigzag/decode_zigzag_binding.c b/src/openzl/codecs/zigzag/decode_zigzag_binding.c index 580ed4f93..d9f431156 100644 --- a/src/openzl/codecs/zigzag/decode_zigzag_binding.c +++ b/src/openzl/codecs/zigzag/decode_zigzag_binding.c @@ -7,6 +7,7 @@ // ZL_TypedEncoderFn, NUMPIPE ZL_Report DI_zigzag_num(ZL_Decoder* dictx, const ZL_Input* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); const ZL_Input* const in = ins[0]; @@ -15,7 +16,7 @@ ZL_Report DI_zigzag_num(ZL_Decoder* dictx, const ZL_Input* ins[]) size_t const numWidth = ZL_Input_eltWidth(in); size_t const nbInts = ZL_Input_numElts(in); ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, nbInts, numWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZL_ASSERT(numWidth == 1 || numWidth == 2 || numWidth == 4 || numWidth == 8); switch (numWidth) { case 1: @@ -33,6 +34,6 @@ ZL_Report DI_zigzag_num(ZL_Decoder* dictx, const ZL_Input* ins[]) default: ZL_ASSERT_FAIL("Unreachable"); } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbInts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbInts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/zigzag/decode_zigzag_binding.h b/src/openzl/codecs/zigzag/decode_zigzag_binding.h index 0b8d03884..169201646 100644 --- a/src/openzl/codecs/zigzag/decode_zigzag_binding.h +++ b/src/openzl/codecs/zigzag/decode_zigzag_binding.h @@ -24,10 +24,7 @@ ZL_Report DI_zigzag_num(ZL_Decoder* dictx, const ZL_Input* in[]); // Following ZL_TypedEncoderDesc declaration, // presumed to be used as initializer only -#define DI_ZIGZAG_NUM(id) \ - { \ - .transform_f = DI_zigzag_num, .name = "zigzag" \ - } +#define DI_ZIGZAG_NUM(id) { .transform_f = DI_zigzag_num, .name = "zigzag" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/zigzag/encode_zigzag_binding.c b/src/openzl/codecs/zigzag/encode_zigzag_binding.c index ada04c246..8a3121821 100644 --- a/src/openzl/codecs/zigzag/encode_zigzag_binding.c +++ b/src/openzl/codecs/zigzag/encode_zigzag_binding.c @@ -7,6 +7,7 @@ // ZL_TypedEncoderFn ZL_Report EI_zigzag_num(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); @@ -17,7 +18,7 @@ ZL_Report EI_zigzag_num(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) size_t const nbInts = ZL_Input_numElts(in); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, nbInts, numWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZL_ASSERT(numWidth == 1 || numWidth == 2 || numWidth == 4 || numWidth == 8); switch (numWidth) { case 1: @@ -35,6 +36,6 @@ ZL_Report EI_zigzag_num(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) default: ZL_ASSERT_FAIL("Unreachable"); } - ZL_RET_R_IF_ERR(ZL_Output_commit(out, nbInts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, nbInts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/zigzag/encode_zigzag_binding.h b/src/openzl/codecs/zigzag/encode_zigzag_binding.h index a6267aba4..6f5cbf70d 100644 --- a/src/openzl/codecs/zigzag/encode_zigzag_binding.h +++ b/src/openzl/codecs/zigzag/encode_zigzag_binding.h @@ -18,11 +18,10 @@ ZL_Report EI_zigzag_num(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); * to be used as initializer only. */ -#define EI_ZIGZAG_NUM(id) \ - { \ - .gd = NUMPIPE_GRAPH(id), .transform_f = EI_zigzag_num, \ - .name = "!zl.zigzag" \ - } +#define EI_ZIGZAG_NUM(id) \ + { .gd = NUMPIPE_GRAPH(id), \ + .transform_f = EI_zigzag_num, \ + .name = "!zl.zigzag" } ZL_END_C_DECLS diff --git a/src/openzl/codecs/zstd/decode_zstd_binding.c b/src/openzl/codecs/zstd/decode_zstd_binding.c index d5f21048d..e8eb3e309 100644 --- a/src/openzl/codecs/zstd/decode_zstd_binding.c +++ b/src/openzl/codecs/zstd/decode_zstd_binding.c @@ -24,41 +24,37 @@ static bool useMagicless(ZL_Decoder const* dictx) return DI_getFrameFormatVersion(dictx) >= 9; } -static ZL_RESULT_OF(uint64_t) getFrameContentSize( - ZL_Decoder const* dictx, - void const* src, - size_t srcSize) +static ZL_RESULT_OF(uint64_t) + getFrameContentSize(ZL_Decoder* dictx, void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE(uint64_t, dictx); ZSTD_format_e const format = useMagicless(dictx) ? ZSTD_f_zstd1_magicless : ZSTD_f_zstd1; ZSTD_frameHeader frameHeader; size_t const ret = ZSTD_getFrameHeader_advanced(&frameHeader, src, srcSize, format); - ZL_RET_T_IF( - uint64_t, - corruption, + ZL_ERR_IF( ZSTD_isError(ret), + corruption, "Unable to read zstd frame header: %s", ZSTD_getErrorName(ret)); - ZL_RET_T_IF_NE( - uint64_t, srcSize_tooSmall, ret, 0, "Incomplete frame header"); - ZL_RET_T_IF_EQ( - uint64_t, - corruption, + ZL_ERR_IF_NE(ret, 0, srcSize_tooSmall, "Incomplete frame header"); + ZL_ERR_IF_EQ( frameHeader.frameContentSize, ZSTD_CONTENTSIZE_ERROR, - "content size is error (reject to be safe)"); - ZL_RET_T_IF_EQ( - uint64_t, corruption, + "content size is error (reject to be safe)"); + ZL_ERR_IF_EQ( frameHeader.frameContentSize, ZSTD_CONTENTSIZE_UNKNOWN, + corruption, "content size not present"); return ZL_RESULT_WRAP_VALUE(uint64_t, frameHeader.frameContentSize); } ZL_Report DI_zstd(ZL_Decoder* dictx, ZL_Input const* ins[]) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(dictx); ZL_ASSERT_NN(ins); ZL_Input const* const in = ins[0]; @@ -69,48 +65,48 @@ ZL_Report DI_zstd(ZL_Decoder* dictx, ZL_Input const* ins[]) uint8_t const* src = (uint8_t const*)ZL_Input_ptr(in); uint8_t const* const srcEnd = src + ZL_Input_numElts(in); - ZL_TRY_LET_T(uint64_t, dstEltWidth, ZL_varintDecode(&src, srcEnd)); - ZL_RET_R_IF_EQ(corruption, dstEltWidth, 0); + ZL_TRY_LET(uint64_t, dstEltWidth, ZL_varintDecode(&src, srcEnd)); + ZL_ERR_IF_EQ(dstEltWidth, 0, corruption); size_t const srcSize = (size_t)(srcEnd - src); - ZL_TRY_LET_T(uint64_t, dstSize, getFrameContentSize(dictx, src, srcSize)); - ZL_RET_R_IF_NE( - corruption, + ZL_TRY_LET(uint64_t, dstSize, getFrameContentSize(dictx, src, srcSize)); + ZL_ERR_IF_NE( dstSize % dstEltWidth, 0, + corruption, "content size not multiple of element width"); size_t const dstNbElts = dstSize / dstEltWidth; ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstNbElts, dstEltWidth); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); ZSTD_DCtx* const dctx = ZL_Decoder_getState(dictx); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( dctx, + allocation, "Zstandard decompression state allocation failed"); - ZL_RET_R_IF( - logicError, + ZL_ERR_IF( ZSTD_isError( - ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters))); + ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters)), + logicError); if (DI_getFrameFormatVersion(dictx) >= 9) { // See encoder_zstd.c for details if (ZSTD_isError(ZSTD_DCtx_setParameter( dctx, ZSTD_d_format, ZSTD_f_zstd1_magicless))) { - ZL_RET_R_ERR(logicError, "Zstd unable to set parameter!"); + ZL_ERR(logicError, "Zstd unable to set parameter!"); } } size_t const dSize = ZSTD_decompressDCtx( dctx, ZL_Output_ptr(out), dstSize, src, srcSize); - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( ZSTD_isError(dSize), + corruption, "Zstd decompression failed: %s", ZSTD_getErrorName(dSize)); - ZL_RET_R_IF_NE(corruption, dSize, dstSize, "bad destination size"); + ZL_ERR_IF_NE(dSize, dstSize, corruption, "bad destination size"); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstNbElts)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstNbElts)); return ZL_returnValue(1); } diff --git a/src/openzl/codecs/zstd/decode_zstd_binding.h b/src/openzl/codecs/zstd/decode_zstd_binding.h index 2705f84f9..dbc16c417 100644 --- a/src/openzl/codecs/zstd/decode_zstd_binding.h +++ b/src/openzl/codecs/zstd/decode_zstd_binding.h @@ -15,16 +15,18 @@ void DIZSTD_freeDCtx(void* state); #define DI_ZSTD(id) \ { \ - .transform_f = DI_zstd, .name = "zstd", \ + .transform_f = DI_zstd, \ + .name = "zstd", \ .trStateMgr.stateAlloc = DIZSTD_createDCtx, \ .trStateMgr.stateFree = DIZSTD_freeDCtx, \ } -#define DI_ZSTD_FIXED(id) \ - { \ - .transform_f = DI_zstd, .name = "zstd_for_fixedSizeFields", \ - .trStateMgr.stateAlloc = DIZSTD_createDCtx, \ - .trStateMgr.stateFree = DIZSTD_freeDCtx, \ +#define DI_ZSTD_FIXED(id) \ + { \ + .transform_f = DI_zstd, \ + .name = "zstd_for_fixedSizeFields", \ + .trStateMgr.stateAlloc = DIZSTD_createDCtx, \ + .trStateMgr.stateFree = DIZSTD_freeDCtx, \ } #endif // ZSTRONG_TRANSFORMS_ZSTD_DECODE_ZSTD_BINDING_H diff --git a/src/openzl/codecs/zstd/encode_zstd_binding.c b/src/openzl/codecs/zstd/encode_zstd_binding.c index 4f5cf270d..147af0fb7 100644 --- a/src/openzl/codecs/zstd/encode_zstd_binding.c +++ b/src/openzl/codecs/zstd/encode_zstd_binding.c @@ -12,6 +12,10 @@ #endif #include +// Approximately log2 of the factor for the allowed memory usage for the most +// expensive zstd parameter configuration +#define ZSTD_MEMORY_USAGE_CAP_LOG_FACTOR 3 + /// Determines if we should cut blocks for each element. /// E.g. if the input is transposed. static bool EI_zstd_shouldCutBlocks(ZL_Input const* in) @@ -23,21 +27,40 @@ static bool EI_zstd_shouldCutBlocks(ZL_Input const* in) return nbElts > 0 && eltWidth >= kMinBlockSize && nbElts <= kMaxNbElts; } -static bool EI_zstd_parameter_valid(ZSTD_cParameter param) +// A more restrictive bounds check on parameters for running zstd that affect +// how much memory is used, and preventing certain parameters from being +// overriden. + +static bool EI_zstd_parameter_valid(ZSTD_cParameter param, int paramValue) { - if (param == ZSTD_c_format) - return false; - if (param == ZSTD_c_contentSizeFlag) + if (param == ZSTD_c_format || param == ZSTD_c_contentSizeFlag) { return false; + } + if (param == ZSTD_c_windowLog) { + return paramValue + <= ZSTD_WINDOWLOG_MAX - ZSTD_MEMORY_USAGE_CAP_LOG_FACTOR; + } + if (param == ZSTD_c_hashLog) { + return paramValue + <= ZSTD_HASHLOG_MAX - ZSTD_MEMORY_USAGE_CAP_LOG_FACTOR; + } + if (param == ZSTD_c_chainLog) { + return paramValue + <= ZSTD_CHAINLOG_MAX - ZSTD_MEMORY_USAGE_CAP_LOG_FACTOR; + } + if (param == ZSTD_c_ldmHashLog) { + return paramValue + <= ZSTD_LDM_HASHLOG_MAX - ZSTD_MEMORY_USAGE_CAP_LOG_FACTOR; + } return true; } -#define ZL_RET_R_IF_ZSTD_ERR(zstdResult) \ +#define ZL_ERR_IF_ZSTD_ERR(zstdResult) \ do { \ size_t const _zstdResult = (zstdResult); \ - ZL_RET_R_IF( \ - GENERIC, \ + ZL_ERR_IF( \ ZSTD_isError(_zstdResult), \ + GENERIC, \ "Zstd Error: %s", \ ZSTD_getErrorName(_zstdResult)); \ } while (0) @@ -45,6 +68,7 @@ static bool EI_zstd_parameter_valid(ZSTD_cParameter param) static ZL_Report EI_zstdWithCCtx(ZL_Encoder* eictx, ZSTD_CCtx* cctx, const ZL_Input* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_NN(eictx); ZL_ASSERT_NN(src); ZL_ASSERT( @@ -65,24 +89,24 @@ EI_zstdWithCCtx(ZL_Encoder* eictx, ZSTD_CCtx* cctx, const ZL_Input* src) + (blockSplit ? nbElts * 3 : 0) + ZL_varintSize((uint64_t)eltWidth); ZL_Output* const dst = ZL_Encoder_createTypedStream(eictx, 0, outCapacity, 1); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); uint8_t* const ostart = (uint8_t*)ZL_Output_ptr(dst); size_t const headerSize = ZL_varintEncode((uint64_t)eltWidth, ostart); /* Global parameters influence compression parameters */ - ZL_RET_R_IF_ZSTD_ERR( + ZL_ERR_IF_ZSTD_ERR( ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters)); if (ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion) >= 9) { // Skip the zstd magic number for two reasons: // 1. We don't need it, Zstrong tells us we are decompressing zstd. // 2. It makes fuzzing harder, because the fuzzer can't find the magic. - ZL_RET_R_IF_ZSTD_ERR(ZSTD_CCtx_setParameter( + ZL_ERR_IF_ZSTD_ERR(ZSTD_CCtx_setParameter( cctx, ZSTD_c_format, ZSTD_f_zstd1_magicless)); } - ZL_RET_R_IF_ZSTD_ERR(ZSTD_CCtx_setParameter( + ZL_ERR_IF_ZSTD_ERR(ZSTD_CCtx_setParameter( cctx, ZSTD_c_compressionLevel, ZL_Encoder_getCParam(eictx, ZL_CParam_compressionLevel))); @@ -90,7 +114,7 @@ EI_zstdWithCCtx(ZL_Encoder* eictx, ZSTD_CCtx* cctx, const ZL_Input* src) int const decompressionLevel = ZL_Encoder_getCParam(eictx, ZL_CParam_decompressionLevel); if (decompressionLevel == 1) { - ZL_RET_R_IF_ZSTD_ERR(ZSTD_CCtx_setParameter( + ZL_ERR_IF_ZSTD_ERR(ZSTD_CCtx_setParameter( cctx, ZSTD_c_literalCompressionMode, ZSTD_lcm_uncompressed)); } @@ -105,14 +129,12 @@ EI_zstdWithCCtx(ZL_Encoder* eictx, ZSTD_CCtx* cctx, const ZL_Input* src) for (size_t n = 0; n < lips.nbIntParams; n++) { ZL_IntParam const ip = lips.intParams[n]; ZSTD_cParameter const param = (ZSTD_cParameter)ip.paramId; - ZL_RET_R_IF_NOT( + ZL_ERR_IF_NOT( + EI_zstd_parameter_valid(param, ip.paramValue), nodeParameter_invalid, - EI_zstd_parameter_valid(param), "zstd parameter %i cannot be modified"); - ZL_RET_R_IF_ZSTD_ERR( - ZSTD_CCtx_setParameter(cctx, param, ip.paramValue)); + ZL_ERR_IF_ZSTD_ERR(ZSTD_CCtx_setParameter(cctx, param, ip.paramValue)); } - if (blockSize == srcSize) { size_t const cSize = ZSTD_compress2( cctx, @@ -120,8 +142,8 @@ EI_zstdWithCCtx(ZL_Encoder* eictx, ZSTD_CCtx* cctx, const ZL_Input* src) outCapacity - headerSize, ZL_Input_ptr(src), srcSize); - ZL_RET_R_IF_ZSTD_ERR(cSize); - ZL_RET_R_IF_ERR(ZL_Output_commit(dst, headerSize + cSize)); + ZL_ERR_IF_ZSTD_ERR(cSize); + ZL_ERR_IF_ERR(ZL_Output_commit(dst, headerSize + cSize)); } else { ZSTD_CCtx_setPledgedSrcSize(cctx, srcSize); @@ -134,11 +156,11 @@ EI_zstdWithCCtx(ZL_Encoder* eictx, ZSTD_CCtx* cctx, const ZL_Input* src) ZSTD_EndDirective const flush = in.size == srcSize ? ZSTD_e_end : ZSTD_e_flush; size_t const ret = ZSTD_compressStream2(cctx, &out, &in, flush); - ZL_RET_R_IF_ZSTD_ERR(ret); + ZL_ERR_IF_ZSTD_ERR(ret); } } ZL_ASSERT_EQ(in.pos, srcSize); - ZL_RET_R_IF_ERR(ZL_Output_commit(dst, out.pos)); + ZL_ERR_IF_ERR(ZL_Output_commit(dst, out.pos)); } return ZL_returnValue(1); @@ -155,11 +177,12 @@ void EIZSTD_freeCCtx(void* state) ZL_Report EI_zstd(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_ASSERT_EQ(nbIns, 1); ZL_ASSERT_NN(ins); const ZL_Input* in = ins[0]; ZSTD_CCtx* const cctx = ZL_Encoder_getState(eictx); - ZL_RET_R_IF_NULL(allocation, cctx); + ZL_ERR_IF_NULL(cctx, allocation); return EI_zstdWithCCtx(eictx, cctx, in); } @@ -167,12 +190,17 @@ ZL_GraphID ZL_Compressor_registerZstdGraph_withLevel( ZL_Compressor* cgraph, int compressionLevel) { - ZL_LocalParams localParams = { .intParams = ZL_INTPARAMS({ - ZSTD_c_compressionLevel, - compressionLevel, - }) }; - ZL_NodeID node_zstd = ZL_Compressor_cloneNode( - cgraph, (ZL_NodeID){ ZL_PrivateStandardNodeID_zstd }, &localParams); + ZL_LocalParams localParams = { .intParams = ZL_INTPARAMS( + { + ZSTD_c_compressionLevel, + compressionLevel, + }) }; + ZL_NodeID node_zstd = ZL_Compressor_registerParameterizedNode( + cgraph, + &(const ZL_ParameterizedNodeDesc){ + .node = (ZL_NodeID){ ZL_PrivateStandardNodeID_zstd }, + .localParams = &localParams, + }); return ZL_Compressor_registerStaticGraph_fromNode1o( cgraph, node_zstd, ZL_GRAPH_STORE); } diff --git a/src/openzl/codecs/zstd/encode_zstd_binding.h b/src/openzl/codecs/zstd/encode_zstd_binding.h index 3ac868ed8..4aca39901 100644 --- a/src/openzl/codecs/zstd/encode_zstd_binding.h +++ b/src/openzl/codecs/zstd/encode_zstd_binding.h @@ -21,17 +21,19 @@ ZL_Report EI_zstd(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbIns); void* EIZSTD_createCCtx(void); void EIZSTD_freeCCtx(void* state); -#define EI_ZSTD(id) \ - { \ - .gd = PIPE_GRAPH(id), .transform_f = EI_zstd, \ - .name = "!zl.private.zstd", \ - .trStateMgr.stateAlloc = EIZSTD_createCCtx, \ - .trStateMgr.stateFree = EIZSTD_freeCCtx, \ +#define EI_ZSTD(id) \ + { \ + .gd = PIPE_GRAPH(id), \ + .transform_f = EI_zstd, \ + .name = "!zl.private.zstd", \ + .trStateMgr.stateAlloc = EIZSTD_createCCtx, \ + .trStateMgr.stateFree = EIZSTD_freeCCtx, \ } #define EI_ZSTD_FIXED(id) \ { \ - .gd = FIXED_ENTROPY_GRAPH(id), .transform_f = EI_zstd, \ + .gd = FIXED_ENTROPY_GRAPH(id), \ + .transform_f = EI_zstd, \ .name = "!zl.private.zstd_fixed_deprecated", \ .trStateMgr.stateAlloc = EIZSTD_createCCtx, \ .trStateMgr.stateFree = EIZSTD_freeCCtx, \ diff --git a/src/openzl/common/a1cbor_helpers.c b/src/openzl/common/a1cbor_helpers.c index 3683f342a..f4ffab3f6 100644 --- a/src/openzl/common/a1cbor_helpers.c +++ b/src/openzl/common/a1cbor_helpers.c @@ -92,6 +92,7 @@ ZL_Error A1C_Error_convert( const ZL_ErrorContext* const error_context, A1C_Error a1c_err) { + ZL_RESULT_DECLARE_SCOPE_REPORT(error_context->opCtx); if (a1c_err.type == A1C_ErrorType_ok) { return ZL_E_EMPTY; } @@ -104,7 +105,7 @@ ZL_Error A1C_Error_convert( A1C_Error_convertCode(a1c_err.type), "Encountered error in A1CBOR library with code \"%s\".", A1C_ErrorType_getString(a1c_err.type)); - ZL_E_ADDFRAME(&zs_err, ZL_EE_EMPTY, ""); + zs_err = ZL_E_ADDFRAME(zs_err, ZL_EE_EMPTY, ""); return zs_err; } diff --git a/src/openzl/common/a1cbor_helpers.h b/src/openzl/common/a1cbor_helpers.h index 38eed611e..0972f5cae 100644 --- a/src/openzl/common/a1cbor_helpers.h +++ b/src/openzl/common/a1cbor_helpers.h @@ -86,21 +86,22 @@ ZL_RESULT_DECLARE_TYPE(A1C_PairPtr); /** * Helper function to try adding an item using a map builder. Converts the * failure paths to Zstrong errors. Mostly intended to be an implementation - * detail of @ref A1C_MAP_TRY_ADD_R(), which is the easy way to consume the + * detail of @ref A1C_MAP_TRY_ADD(), which is the easy way to consume the * returned result. */ ZL_INLINE ZL_RESULT_OF(A1C_PairPtr) A1C_MapBuilder_tryAdd(const A1C_MapBuilder builder) { + ZL_RESULT_DECLARE_SCOPE(A1C_PairPtr, (ZL_OperationContext*)NULL); A1C_Pair* const pair = A1C_MapBuilder_add(builder); if (pair == NULL) { if (builder.map == NULL) { - ZL_RET_T_IF_NULL(A1C_PairPtr, allocation, pair); + ZL_ERR_IF_NULL(pair, allocation); } else { - ZL_RET_T_IF_NULL(A1C_PairPtr, GENERIC, pair); + ZL_ERR_IF_NULL(pair, GENERIC); } } - return ZL_RESULT_WRAP_VALUE(A1C_PairPtr, pair); + return ZL_WRAP_VALUE(pair); } typedef A1C_Item* A1C_ItemPtr; @@ -109,21 +110,22 @@ ZL_RESULT_DECLARE_TYPE(A1C_ItemPtr); /** * Helper function to try adding an item using an array builder. Converts the * failure paths to Zstrong errors. Mostly intended to be an implementation - * detail of @ref A1C_ARRAY_TRY_ADD_R(), which is the easy way to consume the + * detail of @ref A1C_ARRAY_TRY_ADD(), which is the easy way to consume the * returned result. */ ZL_INLINE ZL_RESULT_OF(A1C_ItemPtr) A1C_ArrayBuilder_tryAdd(const A1C_ArrayBuilder builder) { + ZL_RESULT_DECLARE_SCOPE(A1C_ItemPtr, (ZL_OperationContext*)NULL); A1C_Item* const item = A1C_ArrayBuilder_add(builder); if (item == NULL) { if (builder.array == NULL) { - ZL_RET_T_IF_NULL(A1C_ItemPtr, allocation, item); + ZL_ERR_IF_NULL(item, allocation); } else { - ZL_RET_T_IF_NULL(A1C_ItemPtr, GENERIC, item); + ZL_ERR_IF_NULL(item, GENERIC); } } - return ZL_RESULT_WRAP_VALUE(A1C_ItemPtr, item); + return ZL_WRAP_VALUE(item); } /** @@ -155,25 +157,6 @@ ZL_INLINE ZL_RESULT_OF(A1C_ItemPtr) #define A1C_ARRAY_TRY_ADD(_var, _builder) \ ZL_TRY_LET_CONST(A1C_ItemPtr, _var, A1C_ArrayBuilder_tryAdd(_builder)); -/** - * Deprecated versions using the old error type-passing pattern. - */ - -#define A1C_MAP_TRY_ADD_R(_var, _builder) \ - A1C_MAP_TRY_ADD_T(size_t, _var, _builder) -#define A1C_ARRAY_TRY_ADD_R(_var, _builder) \ - A1C_ARRAY_TRY_ADD_T(size_t, _var, _builder) - -#define A1C_MAP_TRY_ADD_T(_return_type, _var, _builder) \ - ZL_TRY_LET_CONST_TT( \ - _return_type, A1C_PairPtr, _var, A1C_MapBuilder_tryAdd(_builder)); -#define A1C_ARRAY_TRY_ADD_T(_return_type, _var, _builder) \ - ZL_TRY_LET_CONST_TT( \ - _return_type, \ - A1C_ItemPtr, \ - _var, \ - A1C_ArrayBuilder_tryAdd(_builder)); - /** * Helper macros to instantiate a new (const) variable with the contents of an * A1C item, assuming that it is of the specified type. Otherwise, returns an @@ -208,57 +191,6 @@ ZL_INLINE ZL_RESULT_OF(A1C_ItemPtr) #define A1C_TRY_EXTRACT_SIMPLE(_var, _expr) A1C_TRY_EXTRACT(Simple, _var, _expr) #define A1C_TRY_EXTRACT_TAG(_var, _expr) A1C_TRY_EXTRACT(Tag, _var, _expr) -#define A1C_TRY_EXTRACT_T_BOOL(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Bool, _var, _expr) -#define A1C_TRY_EXTRACT_T_INT64(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Int64, _var, _expr) -#define A1C_TRY_EXTRACT_T_FLOAT16(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Float16, _var, _expr) -#define A1C_TRY_EXTRACT_T_FLOAT32(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Float32, _var, _expr) -#define A1C_TRY_EXTRACT_T_FLOAT64(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Float64, _var, _expr) -#define A1C_TRY_EXTRACT_T_BYTES(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Bytes, _var, _expr) -#define A1C_TRY_EXTRACT_T_STRING(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, String, _var, _expr) -#define A1C_TRY_EXTRACT_T_MAP(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Map, _var, _expr) -#define A1C_TRY_EXTRACT_T_ARRAY(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Array, _var, _expr) -#define A1C_TRY_EXTRACT_T_SIMPLE(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Simple, _var, _expr) -#define A1C_TRY_EXTRACT_T_TAG(_return_type, _var, _expr) \ - A1C_TRY_EXTRACT_TT(_return_type, Tag, _var, _expr) - -/** - * Specializations of the above for when the enclosing scope has a return type - * of `ZL_Report`. - */ - -#define A1C_TRY_EXTRACT_R_BOOL(_var, _expr) \ - A1C_TRY_EXTRACT_T_BOOL(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_INT64(_var, _expr) \ - A1C_TRY_EXTRACT_T_INT64(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_FLOAT16(_var, _expr) \ - A1C_TRY_EXTRACT_T_FLOAT16(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_FLOAT32(_var, _expr) \ - A1C_TRY_EXTRACT_T_FLOAT32(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_FLOAT64(_var, _expr) \ - A1C_TRY_EXTRACT_T_FLOAT64(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_BYTES(_var, _expr) \ - A1C_TRY_EXTRACT_T_BYTES(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_STRING(_var, _expr) \ - A1C_TRY_EXTRACT_T_STRING(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_MAP(_var, _expr) \ - A1C_TRY_EXTRACT_T_MAP(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_ARRAY(_var, _expr) \ - A1C_TRY_EXTRACT_T_ARRAY(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_SIMPLE(_var, _expr) \ - A1C_TRY_EXTRACT_T_SIMPLE(size_t, _var, _expr) -#define A1C_TRY_EXTRACT_R_TAG(_var, _expr) \ - A1C_TRY_EXTRACT_T_TAG(size_t, _var, _expr) - #define A1C_DECLARE_TRY_GET_T(_type, _member) \ A1C_DECLARE_TRY_GET_T_INNER( \ ZS_MACRO_CONCAT(A1C_Item_tryGet, _type), \ @@ -270,9 +202,10 @@ ZL_INLINE ZL_RESULT_OF(A1C_ItemPtr) ZL_RESULT_DECLARE_TYPE(_item_type); \ ZL_INLINE ZL_RESULT_OF(_item_type) _name(const A1C_Item* const item) \ { \ - ZL_RET_T_IF_NULL(_item_type, corruption, item); \ - ZL_RET_T_IF_NE(_item_type, corruption, item->type, _enum_type); \ - return ZL_RESULT_WRAP_VALUE(_item_type, item->_union_member); \ + ZL_RESULT_DECLARE_SCOPE(_item_type, (ZL_OperationContext*)NULL); \ + ZL_ERR_IF_NULL(item, corruption); \ + ZL_ERR_IF_NE(item->type, _enum_type, corruption); \ + return ZL_WRAP_VALUE(item->_union_member); \ } /** @@ -313,16 +246,6 @@ A1C_DECLARE_TRY_GET_T(Tag, tag) _var, \ ZS_MACRO_CONCAT(A1C_Item_tryGet, _a1c_type_suffix)((_expr))) -#define A1C_TRY_EXTRACT_T(_a1c_type_suffix, _var, _expr) \ - A1C_TRY_EXTRACT_TT(size_t, _a1c_type_suffix, _var, _expr) - -#define A1C_TRY_EXTRACT_TT(_return_type, _a1c_type_suffix, _var, _expr) \ - ZL_TRY_LET_CONST_TT( \ - _return_type, \ - ZS_MACRO_CONCAT(A1C_, _a1c_type_suffix), \ - _var, \ - ZS_MACRO_CONCAT(A1C_Item_tryGet, _a1c_type_suffix)((_expr))) - ZL_END_C_DECLS #endif // ZSTRONG_A1CBOR_HELPERS_H diff --git a/src/openzl/common/allocation.c b/src/openzl/common/allocation.c index 7eacbe4c8..7b854e66b 100644 --- a/src/openzl/common/allocation.c +++ b/src/openzl/common/allocation.c @@ -3,13 +3,21 @@ #include "openzl/common/allocation.h" #include "openzl/common/assertion.h" #include "openzl/common/limits.h" +#include "openzl/common/map.h" #include "openzl/shared/overflow.h" #include "openzl/shared/utils.h" #include +#include #include // malloc, free #include // memset +#if ZL_POISON_SUPPORTED +# define ZL_REDZONE_SIZE 128 +#else +# define ZL_REDZONE_SIZE 0 +#endif + #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION __attribute__((weak)) bool ZS2_malloc_should_fail(size_t size); @@ -125,6 +133,38 @@ size_t ALLOC_Arena_memUsed(const Arena* arena) return arena->memUsed(arena); } +/*============================================================================ + * RawAllocator: For internal allocator use for allocs that MUST NOT be part + * of the allocation failure injection mechanism. + *===========================================================================*/ + +static void* raw_malloc(Arena* arena, size_t size) +{ + (void)arena; + return malloc(size); +} +static void* raw_calloc(Arena* arena, size_t size) +{ + (void)arena; + return calloc(1, size); +} +static void* raw_realloc(Arena* arena, void* ptr, size_t size) +{ + (void)arena; + return realloc(ptr, size); +} +static void raw_free(Arena* arena, void* ptr) +{ + (void)arena; + free(ptr); +} +static Arena kRawAllocator = { + .malloc = raw_malloc, + .calloc = raw_calloc, + .realloc = raw_realloc, + .free = raw_free, +}; + /* * ============================================================== * HeapArena: @@ -134,6 +174,9 @@ size_t ALLOC_Arena_memUsed(const Arena* arena) typedef struct { size_t index; size_t size; +#if ZL_POISON_SUPPORTED + uint8_t redzone[ZL_REDZONE_SIZE]; +#endif } HeapMeta; DECLARE_VECTOR_POINTERS_TYPE(HeapMeta) @@ -153,12 +196,17 @@ typedef struct { static void* ALLOC_HeapArena_allocImpl(HeapArena* arena, HeapMeta* meta, size_t size) { + ZL_STATIC_ASSERT( + sizeof(size_t) == 8, + "OpenZL currently only supports 64-bit platforms"); + if (meta == NULL) { return NULL; } ZL_ASSERT_EQ((uintptr_t)meta % alignof(HeapMeta), 0); meta->index = VECTOR_SIZE(arena->ptrs); meta->size = size; + ZL_POISON_MEMORY(meta->redzone, sizeof(meta->redzone)); if (!VECTOR_PUSHBACK(arena->ptrs, meta)) { ZL_LOG(ERROR, "Failed to push ptr into HeapArena"); @@ -166,8 +214,8 @@ ALLOC_HeapArena_allocImpl(HeapArena* arena, HeapMeta* meta, size_t size) return NULL; } ZL_STATIC_ASSERT( - sizeof(HeapMeta) == 16, - "sizeof(HeapMeta) must be 16 to guarantee alignment"); + sizeof(HeapMeta) % 16 == 0, + "sizeof(HeapMeta) must be a multiple of 16 to guarantee alignment"); return (void*)(meta + 1); } @@ -203,11 +251,16 @@ static void* ALLOC_HeapArena_realloc(Arena* arena, void* ptr, size_t newSize) } HeapArena* heapArena = ZL_CONTAINER_OF(arena, HeapArena, base); HeapMeta* const oldMeta = (HeapMeta*)ptr - 1; - HeapMeta* const newMeta = ZL_realloc(oldMeta, sizeof(HeapMeta) + newSize); + size_t allocSize; + if (ZL_overflowAddST(newSize, sizeof(HeapMeta), &allocSize)) { + return NULL; + } + HeapMeta* const newMeta = ZL_realloc(oldMeta, allocSize); if (newMeta == NULL) { return NULL; } - newMeta->size = newSize; + newMeta->size = newSize; + ZL_POISON_MEMORY(newMeta->redzone, sizeof(newMeta->redzone)); VECTOR_AT(heapArena->ptrs, newMeta->index) = newMeta; return (void*)(newMeta + 1); } @@ -338,6 +391,95 @@ Arena* ALLOC_HeapArena_create(void) typedef struct StackArena_s StackArena; +#if ZL_POISON_SUPPORTED + +ZL_DECLARE_MAP_TYPE(AsanOnlySizeMap, uintptr_t, size_t); + +static void +AsanOnlySizeMap_setPtrSize(AsanOnlySizeMap* map, void* ptr, size_t size) +{ + ZL_REQUIRE_NN(map); + ZL_REQUIRE_NN(ptr); + const AsanOnlySizeMap_Insert insert = AsanOnlySizeMap_insertVal( + map, (AsanOnlySizeMap_Entry){ (uintptr_t)ptr, size }); + ZL_REQUIRE(insert.inserted, "ptr already exists in map"); + ZL_REQUIRE(!insert.badAlloc); +} + +static void AsanOnlySizeMap_erasePtrSize(AsanOnlySizeMap* map, void* ptr) +{ + ZL_REQUIRE_NN(map); + ZL_REQUIRE_NN(ptr); + const bool erased = AsanOnlySizeMap_eraseVal(map, (uintptr_t)ptr); + ZL_REQUIRE(erased, "ptr not found in map"); +} + +static size_t AsanOnlySizeMap_getPtrSize(AsanOnlySizeMap* map, void* ptr) +{ + ZL_REQUIRE_NN(map); + ZL_REQUIRE_NN(ptr); + const AsanOnlySizeMap_Entry* const entry = + AsanOnlySizeMap_findVal(map, (uintptr_t)ptr); + ZL_REQUIRE_NN(entry, "ptr not found in map"); + return entry->val; +} + +static void AsanOnlySizeMap_unpoisonAllPtrs(AsanOnlySizeMap* map) +{ + AsanOnlySizeMap_Iter iter = AsanOnlySizeMap_iter(map); + for (const AsanOnlySizeMap_Entry* entry; + (entry = AsanOnlySizeMap_Iter_next(&iter));) { + ZL_unpoisonMemory((const void*)entry->key, entry->val); + } +} + +#else + +typedef int AsanOnlySizeMap; + +static void +AsanOnlySizeMap_setPtrSize(AsanOnlySizeMap* map, void* ptr, size_t size) +{ + (void)map; + (void)ptr; + (void)size; +} + +static void AsanOnlySizeMap_erasePtrSize(AsanOnlySizeMap* map, void* ptr) +{ + (void)map; + (void)ptr; +} + +static void AsanOnlySizeMap_clear(AsanOnlySizeMap* map) +{ + (void)map; +} + +static void AsanOnlySizeMap_destroy(AsanOnlySizeMap* map) +{ + (void)map; +} + +static AsanOnlySizeMap AsanOnlySizeMap_createInArena( + Arena* arena, + uint32_t limit) +{ + (void)arena; + (void)limit; + return 0; +} + +static void AsanOnlySizeMap_unpoisonAllPtrs(AsanOnlySizeMap* map) +{ + (void)map; +} + +// Not defined if ASAN is not supported +// static size_t AsanOnlySizeMap_getPtrSize(AsanOnlySizeMap* map, void* ptr); + +#endif + struct StackArena_s { Arena base; // must be first member void* primaryBuffer; @@ -350,15 +492,33 @@ struct StackArena_s { size_t wasted; // pBuffCapacity * nbTimesUsedWastefully, // to trigger a size-down event HeapArena heapBackup; + AsanOnlySizeMap asanOnlySizeMap; }; -static void* ALLOC_StackArena_malloc(Arena* arena, size_t size) +// Track allocations in the primary buffer to poison memory +static void +ALLOC_StackArena_trackMalloc(StackArena* pba, void* ptr, size_t requestSize) +{ + AsanOnlySizeMap_setPtrSize(&pba->asanOnlySizeMap, ptr, requestSize); + ZL_unpoisonMemory(ptr, requestSize); +} + +// Track frees in the primary buffer to poison memory +static void ALLOC_StackArena_trackFree(StackArena* pba, void* ptr) +{ + ZL_POISON_MEMORY( + ptr, AsanOnlySizeMap_getPtrSize(&pba->asanOnlySizeMap, ptr)); + AsanOnlySizeMap_erasePtrSize(&pba->asanOnlySizeMap, ptr); +} + +static void* ALLOC_StackArena_malloc(Arena* arena, size_t requestSize) { ZL_ASSERT_NN(arena); StackArena* const pba = ZL_CONTAINER_OF(arena, StackArena, base); ZL_ASSERT_GE(pba->pBuffCapacity, pba->pBuffUsed); size_t pBuffAvailable = pba->pBuffCapacity - pba->pBuffUsed; static const size_t alignment = 16; // could become a variable in the future + const size_t size = requestSize + ZL_REDZONE_SIZE; size_t const neededSize = size + (alignment - 1); pba->sessionUsage += neededSize; @@ -385,6 +545,7 @@ static void* ALLOC_StackArena_malloc(Arena* arena, size_t size) pba->wouldHaveNeeded = ZL_MIN(pba->wouldHaveNeeded, pBuffSizeMax); } if (pba->primaryBuffer) { + ZL_poisonMemory(pba->primaryBuffer, toAllocate); pba->pBuffCapacity = toAllocate; pba->pBuffUsed = neededSize; pba->wouldHaveNeeded = toAllocate; @@ -393,6 +554,7 @@ static void* ALLOC_StackArena_malloc(Arena* arena, size_t size) 0); /* note : this alignment method will have to change if requested alignment is larger than base allocation of primaryBuffer */ + ALLOC_StackArena_trackMalloc(pba, pba->primaryBuffer, requestSize); return pba->primaryBuffer; } /* allocation failed */ @@ -417,6 +579,7 @@ static void* ALLOC_StackArena_malloc(Arena* arena, size_t size) primaryBuffer */ void* const r = (char*)pba->primaryBuffer + start; pba->pBuffUsed = start + size; + ALLOC_StackArena_trackMalloc(pba, r, requestSize); return r; } @@ -425,7 +588,7 @@ static void* ALLOC_StackArena_malloc(Arena* arena, size_t size) * and track necessary space, for next session */ ZL_ASSERT_GE(pba->wouldHaveNeeded, pba->pBuffCapacity); pba->wouldHaveNeeded += neededSize; - return ALLOC_Arena_malloc(&pba->heapBackup.base, size); + return ALLOC_Arena_malloc(&pba->heapBackup.base, requestSize); } static void* ALLOC_StackArena_calloc(Arena* arena, size_t size) @@ -469,7 +632,14 @@ static void* ALLOC_StackArena_realloc(Arena* arena, void* ptr, size_t newSize) ZL_ASSERT_NN(ptr); char* const pBuffEnd = (char*)pba->primaryBuffer + pba->pBuffCapacity; const size_t toCopy = ZL_MIN((size_t)(pBuffEnd - (char*)ptr), newSize); + + ZL_UNPOISON_MEMORY(pba->primaryBuffer, pba->pBuffCapacity); memcpy(newPtr, ptr, toCopy); + ZL_POISON_MEMORY(pba->primaryBuffer, pba->pBuffCapacity); + AsanOnlySizeMap_unpoisonAllPtrs(&pba->asanOnlySizeMap); + + // Mark the old pointer as freed. + ALLOC_StackArena_trackFree(pba, ptr); return newPtr; } else { return ALLOC_HeapArena_realloc(&pba->heapBackup.base, ptr, newSize); @@ -483,8 +653,9 @@ static void ALLOC_StackArena_freeSegment(Arena* arena, void* ptr) ZL_ASSERT_NN(arena); StackArena* const pba = ZL_CONTAINER_OF(arena, StackArena, base); if (ALLOC_StackArena_inPrimaryBuffer(pba, ptr)) { - /* this ptr owns a slice within primaryBuffer -> don't free anything - */ + // This ptr owns a slice within primaryBuffer -> don't free anything + // Just mark it as freed in ASAN mode + ALLOC_StackArena_trackFree(pba, ptr); return; } /* this ptr is presumed tracked by heapBackup */ @@ -507,6 +678,13 @@ static void ALLOC_StackArena_freeAllSegments(Arena* arena) StackArena* const pba = ZL_CONTAINER_OF(arena, StackArena, base); pba->pBuffUsed = 0; ALLOC_HeapArena_freeAllSegments(&pba->heapBackup.base); + + // Reset ASAN size map & poison the primary buffer + AsanOnlySizeMap_clear(&pba->asanOnlySizeMap); + if (pba->primaryBuffer) { + ZL_poisonMemory(pba->primaryBuffer, pba->pBuffCapacity); + } + if (pba->sessionUsage < PBUFF_USAGE_MIN(pba->pBuffCapacity)) { pba->wasted += pba->pBuffCapacity; } else { @@ -520,6 +698,8 @@ static void ALLOC_StackArena_freeAllSegments(Arena* arena) ZL_realloc(pba->primaryBuffer, pba->pBuffCapacity); if (newPBuffer != NULL) { pba->primaryBuffer = newPBuffer; + // Poison the new buffer + ZL_poisonMemory(pba->primaryBuffer, pba->pBuffCapacity); } else { // Failed realloc: Just give up the primary buffer ZL_free(pba->primaryBuffer); @@ -540,6 +720,7 @@ static void ALLOC_StackArena_freeArena(Arena* arena) arena->freeAll(arena); /* note: freeAll doesn't free the primaryBuffer */ StackArena* const pba = ZL_CONTAINER_OF(arena, StackArena, base); ALLOC_HeapArena_destroy(&pba->heapBackup); + AsanOnlySizeMap_destroy(&pba->asanOnlySizeMap); ZL_free(pba->primaryBuffer); ZL_free(pba); } @@ -581,5 +762,7 @@ Arena* ALLOC_StackArena_create(void) return NULL; arena->base = kStackArena; ALLOC_HeapArena_init(&arena->heapBackup); + arena->asanOnlySizeMap = AsanOnlySizeMap_createInArena( + &kRawAllocator, ZL_CONTAINER_SIZE_LIMIT); return &arena->base; } diff --git a/src/openzl/common/allocation.h b/src/openzl/common/allocation.h index 77e997f1a..a4f4a275e 100644 --- a/src/openzl/common/allocation.h +++ b/src/openzl/common/allocation.h @@ -46,7 +46,8 @@ struct Arena_s { // Allocate a memory object initialized to zeroes associated to the arena void* (*calloc)(Arena* arena, size_t size)ZL_NOEXCEPT_FUNC_PTR; // Realloc - void* (*realloc)(Arena* arena, void* ptr, size_t newSize); + void* (*realloc)(Arena* arena, void* ptr, size_t newSize) + ZL_NOEXCEPT_FUNC_PTR; // Frees the memory object associated to the arena // Note: trying to free a memory object *not* associated to the arena is UB void (*free)(Arena* arena, void* ptr) ZL_NOEXCEPT_FUNC_PTR; @@ -106,7 +107,7 @@ Arena* ALLOC_HeapArena_create(void); * When there is not enough room in the Primary Buffer, * StackArena employs a HeapArena as backup, * and since it's not possible to safely increase Primary Buffer's size without - * modifying pointer adresses. + * modifying pointer addresses. * Then, at next session (a session ends with an invocation to * ALLOC_Arena_freeAll()), the Primary Buffer is speculatively resized based on * previous session's needs. @@ -143,40 +144,40 @@ size_t ALLOC_Arena_memUsed(const Arena* arena); /* =============================== */ // Note: these macros require including the error header. -// They only work if the host function returns a ZL_Report. -#define ALLOC_CHECKED(_type, _var, _mallocf, _count) \ - _type* _var; \ - { \ - size_t _allocSize; \ - ZL_RET_R_IF( \ - allocation, \ - ZL_overflowMulST(sizeof(_type), (_count), &_allocSize)); \ - _var = (_mallocf)(_allocSize); \ - } \ - ZL_RET_R_IF_NULL( \ - allocation, \ - _var, \ - "cannot allocate buffer of %zu bytes using %s", \ - (_count) * sizeof(_type), \ +// They only work if the host function has declared ZL_RESULT_DECLARE_SCOPE. +#define ALLOC_CHECKED(_type, _var, _mallocf, _count) \ + _type* _var; \ + { \ + size_t _allocSize; \ + ZL_ERR_IF( \ + ZL_overflowMulST(sizeof(_type), (_count), &_allocSize), \ + allocation); \ + _var = (_mallocf)(_allocSize); \ + } \ + ZL_ERR_IF_NULL( \ + _var, \ + allocation, \ + "cannot allocate buffer of %zu bytes using %s", \ + (_count) * sizeof(_type), \ #_mallocf) #define ALLOC_MALLOC_CHECKED(_type, _var, _count) \ ALLOC_CHECKED(_type, _var, ZL_malloc, _count) -#define ALLOC_ARENA_CHECKED(_type, _var, _mallocf, _count, _arena) \ - _type* _var; \ - { \ - size_t _allocSize; \ - ZL_RET_R_IF( \ - allocation, \ - ZL_overflowMulST(sizeof(_type), (_count), &_allocSize)); \ - _var = (_mallocf)(_arena, _allocSize); \ - } \ - ZL_RET_R_IF_NULL( \ - allocation, \ - _var, \ - "cannot allocate buffer of %zu bytes using %s", \ - (_count) * sizeof(_type), \ +#define ALLOC_ARENA_CHECKED(_type, _var, _mallocf, _count, _arena) \ + _type* _var; \ + { \ + size_t _allocSize; \ + ZL_ERR_IF( \ + ZL_overflowMulST(sizeof(_type), (_count), &_allocSize), \ + allocation); \ + _var = (_mallocf)(_arena, _allocSize); \ + } \ + ZL_ERR_IF_NULL( \ + _var, \ + allocation, \ + "cannot allocate buffer of %zu bytes using %s", \ + (_count) * sizeof(_type), \ #_arena) #define ALLOC_ARENA_MALLOC_CHECKED(_type, _var, _count, _arena) \ @@ -185,29 +186,6 @@ size_t ALLOC_Arena_memUsed(const Arena* arena); #define ALLOC_ARENA_CALLOC_CHECKED(_type, _var, _count, _arena) \ ALLOC_ARENA_CHECKED(_type, _var, ALLOC_Arena_calloc, _count, _arena) -#define ALLOC_ARENA_CHECKED_T( \ - _type, _var, _mallocf, _count, _arena, _errorType) \ - _type* _var; \ - { \ - size_t _allocSize; \ - ZL_RET_T_IF( \ - _errorType, \ - allocation, \ - ZL_overflowMulST(sizeof(_type), (_count), &_allocSize)); \ - _var = (_mallocf)(_arena, _allocSize); \ - } \ - ZL_RET_T_IF_NULL( \ - _errorType, \ - allocation, \ - _var, \ - "cannot allocate buffer of %zu bytes using %s", \ - (_count) * sizeof(_type), \ - #_arena) - -#define ALLOC_ARENA_MALLOC_CHECKED_T(_type, _var, _count, _arena, _errorType) \ - ALLOC_ARENA_CHECKED_T( \ - _type, _var, ALLOC_Arena_malloc, _count, _arena, _errorType) - ZL_END_C_DECLS #endif // ZSTRONG_COMMON_ALLOCATION_H diff --git a/src/openzl/common/assertion.h b/src/openzl/common/assertion.h index c00f22d8c..77fe8722b 100644 --- a/src/openzl/common/assertion.h +++ b/src/openzl/common/assertion.h @@ -333,8 +333,10 @@ #if ZL_ENABLE_STATIC_ASSERT # if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -# include -# define ZL_STATIC_ASSERT_IMPL(expr, msg) static_assert(expr, msg) +/* Use the C11 _Static_assert keyword directly rather than the static_assert + * macro from , which is optional and missing on some platforms. + */ +# define ZL_STATIC_ASSERT_IMPL(expr, msg) _Static_assert(expr, msg) # else /* This fallback static assert idiom was copied from the following URL, where diff --git a/src/openzl/common/buffer_internal.h b/src/openzl/common/buffer_internal.h index 5bdd41f1e..ebc5ef033 100644 --- a/src/openzl/common/buffer_internal.h +++ b/src/openzl/common/buffer_internal.h @@ -59,11 +59,12 @@ ZL_INLINE ZL_RBuffer ZL_RBuffer_fromVector(VECTOR(uint8_t) const* vec) */ ZL_INLINE ZL_Report ZL_WCursor_write(ZL_WCursor* wcp, ZL_RBuffer src) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); ZL_ASSERT_NN(wcp); if (src.size) ZL_ASSERT_NN(src.start); if (wcp->pos + src.size > wcp->wb.capacity) { - ZL_RET_R_ERR(internalBuffer_tooSmall); + ZL_ERR(internalBuffer_tooSmall); } if (src.size) { ZL_memcpy((char*)wcp->wb.start + wcp->pos, src.start, src.size); @@ -88,18 +89,16 @@ ZL_INLINE const void* ZL_RCursor_RPtr(ZL_RCursor rc) ZL_INLINE ZL_RESULT_OF(ZL_RBuffer) ZL_RBuffer_slice(ZL_RBuffer rb, size_t startPos, size_t length) { - ZL_RET_T_IF_LT( - ZL_RBuffer, - corruption, - startPos + length, - startPos); // ensure no overflow - ZL_RET_T_IF_GT(ZL_RBuffer, corruption, startPos + length, rb.size); + ZL_RESULT_DECLARE_SCOPE(ZL_RBuffer, (ZL_OperationContext*)NULL); + ZL_ERR_IF_LT(startPos + length, startPos, + corruption); // ensure no overflow + ZL_ERR_IF_GT(startPos + length, rb.size, corruption); if (rb.start == NULL) ZL_ASSERT_EQ(startPos, 0); const void* const newStart = startPos ? (const char*)rb.start + startPos : rb.start; ZL_RBuffer ret = (ZL_RBuffer){ newStart, length }; - return ZL_RESULT_WRAP_VALUE(ZL_RBuffer, ret); + return ZL_WRAP_VALUE(ret); } ZL_END_C_DECLS diff --git a/src/openzl/common/cursor.h b/src/openzl/common/cursor.h index 0886fcf91..980c2e55a 100644 --- a/src/openzl/common/cursor.h +++ b/src/openzl/common/cursor.h @@ -359,13 +359,14 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_RC_popVarint(ZL_RC* rc) ZL_INLINE ZL_Report ZL_RC_popVarint32(ZL_RC* rc, uint32_t* valPtr) { + ZL_RESULT_DECLARE_SCOPE_REPORT((ZL_OperationContext*)NULL); ZL_RESULT_OF(uint64_t) res = ZL_varintDecode(&rc->_cur, rc->_end); if (ZL_RES_isError(res)) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } uint64_t tmp = ZL_RES_value(res); if (tmp > UINT32_MAX) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } *valPtr = (uint32_t)tmp; return ZL_returnSuccess(); diff --git a/src/openzl/common/detail/table.h b/src/openzl/common/detail/table.h index 0569bfe57..9f62be667 100644 --- a/src/openzl/common/detail/table.h +++ b/src/openzl/common/detail/table.h @@ -336,8 +336,8 @@ typedef struct { typedef bool (*GenericTable_OutlinedReserve)(GenericTable*, uint32_t); -#define ZL_TABLE_NEXT_BUCKET_EMPTY ((uint32_t) - 1) -#define ZL_TABLE_NEXT_CHAIN_EMPTY ((uint32_t) - 2) +#define ZL_TABLE_NEXT_BUCKET_EMPTY ((uint32_t)-1) +#define ZL_TABLE_NEXT_CHAIN_EMPTY ((uint32_t)-2) ZL_TABLE_INLINE uint8_t* GenericTable_reallocMem(GenericTable* table, uint8_t* ptr, size_t newSize) diff --git a/src/openzl/common/errors.c b/src/openzl/common/errors.c index 2086ec1b9..a4de3a1a8 100644 --- a/src/openzl/common/errors.c +++ b/src/openzl/common/errors.c @@ -48,12 +48,18 @@ const char* ZL_ErrorCode_toString(ZL_ErrorCode code) return ZL_ErrorCode_compressionParameter_invalid__desc_str; case ZL_ErrorCode_segmenter_inputNotConsumed: return ZL_ErrorCode_segmenter_inputNotConsumed__desc_str; + case ZL_ErrorCode_segmenter_noSegments: + return ZL_ErrorCode_segmenter_noSegments__desc_str; case ZL_ErrorCode_graph_invalid: return ZL_ErrorCode_graph_invalid__desc_str; case ZL_ErrorCode_graph_nonserializable: return ZL_ErrorCode_graph_nonserializable__desc_str; case ZL_ErrorCode_graph_invalidNumInputs: return ZL_ErrorCode_graph_invalidNumInputs__desc_str; + case ZL_ErrorCode_graph_parser_malformedInput: + return ZL_ErrorCode_graph_parser_malformedInput__desc_str; + case ZL_ErrorCode_graph_parser_unhandledInput: + return ZL_ErrorCode_graph_parser_unhandledInput__desc_str; case ZL_ErrorCode_successor_invalid: return ZL_ErrorCode_successor_invalid__desc_str; case ZL_ErrorCode_successor_alreadySet: @@ -118,6 +124,14 @@ const char* ZL_ErrorCode_toString(ZL_ErrorCode code) return ZL_ErrorCode_srcSize_tooLarge__desc_str; case ZL_ErrorCode_integerOverflow: return ZL_ErrorCode_integerOverflow__desc_str; + case ZL_ErrorCode_dict_corruption: + return ZL_ErrorCode_dict_corruption__desc_str; + case ZL_ErrorCode_dict_materialization: + return ZL_ErrorCode_dict_materialization__desc_str; + case ZL_ErrorCode_noValidMaterialization: + return ZL_ErrorCode_noValidMaterialization__desc_str; + case ZL_ErrorCode_dictNoRecord: + return ZL_ErrorCode_dictNoRecord__desc_str; case ZL_ErrorCode_maxCode: default: ZL_ASSERT_FAIL("Invalid error code!: %d", (int)code); @@ -499,7 +513,7 @@ ZL_ErrorFrame ZL_EE_stackFrame(ZL_ErrorInfo ei, size_t idx) if (dy != NULL) { return ZL_DEE_stackFrame(dy, idx); } - return (ZL_ErrorFrame){}; + return (ZL_ErrorFrame){ 0 }; } static ZL_GraphContext ZL_DEE_graphContext(ZL_DynamicErrorInfo const* info) @@ -853,9 +867,10 @@ static ZL_Error ZL_E_addFrame_va( const ZL_ErrorCode code = e._code; const ZL_StaticErrorInfo* st = ZL_E_st(e); ZL_DynamicErrorInfo* dy = ZL_E_dy(e); - if (dy == NULL && scopeCtx != NULL) { + if (dy == NULL && scopeCtx != NULL && scopeCtx->opCtx != NULL) { // Existing error is missing context, add it. - dy = ZL_OC_setError(scopeCtx->opCtx); + dy = ZL_OC_setError(scopeCtx->opCtx); + // NOTE: dy may still be NULL e._info = ZL_EI_fromDy(dy); if (st == NULL) { ZL_DEE_fill( @@ -891,7 +906,7 @@ static ZL_Error ZL_E_addFrame_va( ZL_DEE_internPrintf(dy, "Forwarding error: "); ZL_DEE_appendToMessage_va(dy, fmt, args); ZL_DEE_addFrame(dy, scopeCtx, file, func, line, messageOffset); - } else if (dy == NULL && st == NULL && scopeCtx == NULL) { + } else if (dy == NULL && st == NULL) { const ZL_ErrorCode backupCode = ZL_EE_code(backup); if (backupCode != ZL_ErrorCode_no_error && backupCode != ZL_ErrorCode_GENERIC) { @@ -928,9 +943,9 @@ static ZL_Error ZL_E_addFrame_va( return e; } -void ZL_E_addFrame( +ZL_Error ZL_E_addFrame( ZL_ErrorContext const* scopeCtx, - ZL_Error* e, + ZL_Error e, const ZL_ErrorInfo backup, const char* file, const char* func, @@ -938,44 +953,32 @@ void ZL_E_addFrame( const char* fmt, ...) { - if (e == NULL) { - return; + if (!ZL_E_isError(e)) { + return e; } va_list args; va_start(args, fmt); - *e = ZL_E_addFrame_va(scopeCtx, *e, backup, file, func, line, fmt, args); + e = ZL_E_addFrame_va(scopeCtx, e, backup, file, func, line, fmt, args); va_end(args); + return e; } - -ZL_Error ZL_E_addFrame_public( +#else // !ZL_ERROR_ENABLE_STACKS +ZL_Error ZL_E_addFrame( ZL_ErrorContext const* scopeCtx, ZL_Error e, + const ZL_ErrorInfo backup, const char* file, const char* func, int line, const char* fmt, ...) { - if (!ZL_E_isError(e)) { - return e; - } - va_list args; - va_start(args, fmt); - e = ZL_E_addFrame_va(scopeCtx, e, ZL_EE_EMPTY, file, func, line, fmt, args); - va_end(args); - return e; -} -#else // !ZL_ERROR_ENABLE_STACKS -ZL_Error ZL_E_addFrame_public( - ZL_ErrorContext const*, - ZL_Error e, - const ZL_ErrorInfo, - const char*, - const char*, - int, - const char*, - ...) -{ + (void)scopeCtx; + (void)backup; + (void)file; + (void)func; + (void)line; + (void)fmt; return e; } #endif // ZL_ERROR_ENABLE_STACKS @@ -1000,24 +1003,9 @@ void ZL_E_appendToMessage(ZL_Error err, const char* fmt, ...) va_end(args); } -ZL_Report ZL_reportError( - const char* file, - const char* func, - const int line, - const ZL_ErrorCode err, - const char* fmt, - ...) -{ - va_list args; - va_start(args, fmt); - ZL_Error error = - ZL_E_create_va(NULL, NULL, file, func, line, err, fmt, args); - va_end(args); - return ZL_RESULT_WRAP_ERROR(size_t, error); -} - ZL_Report ZL_returnError(ZL_ErrorCode err) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // TODO : should control that err is within bounds return ZL_REPORT_ERROR_CODE(err); } diff --git a/src/openzl/common/errors_internal.h b/src/openzl/common/errors_internal.h index 04e4f2600..bade23bbf 100644 --- a/src/openzl/common/errors_internal.h +++ b/src/openzl/common/errors_internal.h @@ -17,7 +17,6 @@ #include "openzl/common/assertion.h" #include "openzl/common/logging.h" #include "openzl/common/operation_context.h" -#include "openzl/common/scope_context.h" #include "openzl/shared/portability.h" // ZL_BEGIN_C_DECLS, ZL_END_C_DECLS #include "openzl/zl_errors.h" // ZL_Report @@ -78,10 +77,16 @@ ZL_BEGIN_C_DECLS "Compression parameter invalid" #define ZL_ErrorCode_segmenter_inputNotConsumed__desc_str \ "Segmenter did not consume entirely all inputs" +#define ZL_ErrorCode_segmenter_noSegments__desc_str \ + "Segmenter did not produce any segments" #define ZL_ErrorCode_graph_invalid__desc_str "Graph invalid" #define ZL_ErrorCode_graph_nonserializable__desc_str \ "Graph incompatible with serialization" #define ZL_ErrorCode_graph_invalidNumInputs__desc_str "Graph invalid nb inputs" +#define ZL_ErrorCode_graph_parser_malformedInput__desc_str \ + "Parser encountered malformed input" +#define ZL_ErrorCode_graph_parser_unhandledInput__desc_str \ + "Parser encountered unhandled input" #define ZL_ErrorCode_successor_invalid__desc_str \ "Selected an invalid Successor Graph" #define ZL_ErrorCode_successor_alreadySet__desc_str \ @@ -139,6 +144,13 @@ ZL_BEGIN_C_DECLS #define ZL_ErrorCode_srcSize_tooLarge__desc_str "Source size too large" #define ZL_ErrorCode_integerOverflow__desc_str "Integer overflow" #define ZL_ErrorCode_invalidName__desc_str "Invalid name of graph component" +#define ZL_ErrorCode_dict_corruption__desc_str "Dictionary corruption detected" +#define ZL_ErrorCode_dict_materialization__desc_str \ + "Dictionary materialization failure" +#define ZL_ErrorCode_noValidMaterialization__desc_str \ + "No valid materializer registered for this dictionary" +#define ZL_ErrorCode_dictNoRecord__desc_str \ + "No node or graph in the compressor is associated with this dictionary" /*********************** * ZL_EI: ZL_ErrorInfo * @@ -167,69 +179,6 @@ ZL_INLINE ZL_ErrorInfo ZL_EI_fromSt(const ZL_StaticErrorInfo* const st) * ZL_E: ZL_Error * ******************/ -////////////////// -// Construction // -////////////////// - -/** - * Using this macro API allows users to specify a formatted message when they - * create and return an error. Currently this message is discarded. But! We - * expect to soon have the capability to capture this message information into - * the error object, so this lets us start including that information that will - * later be useful now as we migrate things to returning errors rather than - * ASSERT-ing or REQUIRE-ing. - * - * ZL_E() takes an error code suffix, e.g., `allocation`, while ZL_E_CODE() - * takes the full name (or a variable or something!). - */ -#define ZL_E(...) ZS_MACRO_PAD1(ZL_E_INNER, __VA_ARGS__) -#define ZL_E_CODE(...) ZS_MACRO_PAD1(ZL_E_CODE_INNER, __VA_ARGS__) - -#define ZL_E_INNER(err, ...) \ - ZL_E_CODE_INNER(ZL_EXPAND_ERRCODE(err), __VA_ARGS__) -#define ZL_E_CODE_INNER(code, ...) \ - ZL_E_create( \ - NULL, \ - ZL_GET_SCOPE_CONTEXT(), \ - __FILE__, \ - __func__, \ - __LINE__, \ - code, \ - __VA_ARGS__) - -#if ZL_ERROR_ENABLE_STATIC_ERROR_INFO -# define ZL_EE_FROM_STATIC(name) \ - ZL_EI_fromSt(ZL_E_POINTER_TO_STATIC_ERROR_INFO(name)) -#else -# define ZL_EE_FROM_STATIC(name) ZL_EE_EMPTY -#endif - -///////////////// -// Destruction // -///////////////// - -// There is no destructor for ZS2_Errors! The memory is managed elsewhere and -// therefore there's nothing to do to destroy an error. - -/////////////// -// Accessors // -/////////////// - -ZL_INLINE int ZL_E_isError(ZL_Error err) -{ - return err._code != ZL_ErrorCode_no_error; -} - -ZL_INLINE ZL_ErrorCode ZL_E_code(ZL_Error err) -{ - return err._code; -} - -ZL_INLINE const char* ZL_E_codeStr(ZL_Error err) -{ - return ZL_ErrorCode_toString(err._code); -} - /// Logs ZL_E_str(err._info) if level <= ZL_g_logLevel. void ZL_E_log(ZL_Error err, int level); @@ -286,7 +235,6 @@ char const* ZL_E_str(ZL_Error err); #expr, \ req_str); \ ZL_LOG_IFNONEMPTY(ALWAYS, "Context: ", __VA_ARGS__); \ - ZL_E_ADDFRAME(&_error, ZL_EE_EMPTY, ""); \ ZL_E_log(_error, ZL_LOG_LVL_ALWAYS); \ ZL_ABORT(); \ } \ @@ -307,47 +255,6 @@ ZL_DynamicErrorInfo* ZL_E_dy(ZL_Error err); // contain an error or doesn't point at a static error. const ZL_StaticErrorInfo* ZL_E_st(ZL_Error err); -// Append the current frame to the stack in the rich error. -#define ZL_E_ADDFRAME(e, backup, ...) \ - ZL_E_addFrame( \ - ZL_GET_SCOPE_CONTEXT(), \ - e, \ - backup, \ - __FILE__, \ - __func__, \ - __LINE__, \ - __VA_ARGS__) - -#if ZL_ERROR_ENABLE_STACKS -void ZL_E_addFrame( - ZL_ErrorContext const* scopeCtx, - ZL_Error* e, - ZL_ErrorInfo backup, - const char* file, - const char* func, - int line, - char const* fmt, - ...); -#else -ZL_INLINE void ZL_E_addFrame( - ZL_ErrorContext const* scopeCtx, - ZL_Error* e, - ZL_ErrorInfo backup, - const char* file, - const char* func, - int line, - char const* fmt, - ...) -{ - (void)scopeCtx; - (void)file; - (void)func; - (void)line; - (void)fmt; - return e; -} -#endif // ZS_ENABLE_ERROR_STACKS - void ZL_E_changeErrorCode(ZL_Error* err, ZL_ErrorCode code); /** @@ -374,9 +281,9 @@ void ZL_E_changeErrorCode(ZL_Error* err, ZL_ErrorCode code); ZL_ErrorContext _scope_ctx = { .opCtx = _op_ctx }; \ /* adding a frame will also trigger static -> dynamic error info \ * conversion */ \ - ZL_E_addFrame( \ + _error = ZL_E_addFrame( \ &_scope_ctx, \ - &_error, \ + _error, \ ZL_EE_EMPTY, \ __FILE__, \ __func__, \ @@ -458,18 +365,6 @@ void ZL_EE_log(ZL_ErrorInfo ei, int level); * ZL_Result * *************/ -////////////////// -// Construction // -////////////////// - -#undef ZL_RESULT_MAKE_ERROR -#define ZL_RESULT_MAKE_ERROR(type, ...) \ - ZL_RESULT_WRAP_ERROR(type, ZL_E(__VA_ARGS__)) - -#undef ZL_RESULT_MAKE_ERROR_CODE -#define ZL_RESULT_MAKE_ERROR_CODE(type, ...) \ - ZL_RESULT_WRAP_ERROR(type, ZL_E_CODE(__VA_ARGS__)) - /////////////// // Modifiers // /////////////// @@ -487,128 +382,67 @@ void ZL_EE_log(ZL_ErrorInfo ei, int level); ///////////////////// /** - * Like ZL_RET_T_IF_ERR(), but checks that the error is one that is allowed - * to be generated by the zstrong internals, and coerces it to a logicError if - * not. See ZL_RET_IF_ERR_COERCE_IMPL() for details/motivation. - */ -#define ZL_RET_T_IF_ERR_COERCE(type, ...) \ - ZS_MACRO_PAD2(ZL_RET_IF_ERR_COERCE_IMPL, type, __VA_ARGS__) - -/** - * Like ZL_RET_R_IF_ERR(), but checks that the error is one that is allowed + * Like ZL_ERR_IF_ERR(), but checks that the error is one that is allowed * to be generated by the zstrong internals, and coerces it to a logicError if - * not. See ZL_RET_IF_ERR_COERCE_IMPL() for details/motivation. + * not. See ZL_ERR_IF_ERR_COERCE_IMPL() for details/motivation. */ -#define ZL_RET_R_IF_ERR_COERCE(...) ZL_RET_T_IF_ERR_COERCE(size_t, __VA_ARGS__) +#define ZL_ERR_IF_ERR_COERCE(...) \ + ZS_MACRO_PAD1(ZL_ERR_IF_ERR_COERCE_IMPL, __VA_ARGS__) //////////////////////////// // Implementation Details // //////////////////////////// -#undef ZL_RET_IMPL -#define ZL_RET_IMPL(type, res) \ - do { \ - ZL_RESULT_OF(type) __tmp_res = (res); \ - if (ZL_RES_isError(__tmp_res)) { \ - ZL_E_ADDFRAME(&ZL_RES_error(__tmp_res), ZL_EE_EMPTY, ""); \ - } \ - return __tmp_res; \ - } while (0) - -// TODO: only difference with public API here is now that these find the scope -// ctx -#undef ZL_RET_ERR_IMPL -#define ZL_RET_ERR_IMPL(type, errcode, ...) \ - do { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_EXPAND_ERRCODE(errcode), \ - "Unconditional failure: " ZL_EXPAND_ERRCODE_DESC_STR( \ - errcode) ": " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_RET_ERR_WITH_STATIC_AND_CONTEXT( \ - type, \ - ZL_E_POINTER_TO_STATIC_ERROR_INFO(__zl_static_error_info), \ - ZL_GET_SCOPE_CONTEXT(), \ - errcode, \ - __VA_ARGS__); \ - } while (0) - -#undef ZL_RET_IF_UNARY_IMPL -#define ZL_RET_IF_UNARY_IMPL(type, errcode, expr, ...) \ - do { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_EXPAND_ERRCODE(errcode), \ - "Check `" #expr "' failed: " ZL_EXPAND_ERRCODE_DESC_STR( \ - errcode) ": " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_RET_IF_UNARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, \ - ZL_E_POINTER_TO_STATIC_ERROR_INFO(__zl_static_error_info), \ - ZL_GET_SCOPE_CONTEXT(), \ - errcode, \ - expr, \ - __VA_ARGS__); \ - } while (0) - -#undef ZL_RET_IF_BINARY_IMPL -#define ZL_RET_IF_BINARY_IMPL(type, errcode, op, lhs, rhs, ...) \ +/** + * Like ZL_ERR_IF_ERR_IMPL(), but checks that the error is one that is allowed + * to be generated by the zstrong internals, and coerces it to a logicError if + * not. + * + * dstCapacity_tooSmall should only be produced at the boundary with the + * user-provided output buffer. If an internal call produces it, that's a logic + * error, so we coerce it. + */ +#define ZL_ERR_IF_ERR_COERCE_IMPL(expr, ...) \ do { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_EXPAND_ERRCODE(errcode), \ - "Check `" #lhs " " #op " " #rhs \ - "' failed: " ZL_EXPAND_ERRCODE_DESC_STR( \ - errcode) ": " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_RET_IF_BINARY_IMPL_WITH_STATIC_AND_CONTEXT( \ - type, \ - ZL_E_POINTER_TO_STATIC_ERROR_INFO(__zl_static_error_info), \ - ZL_GET_SCOPE_CONTEXT(), \ - errcode, \ - op, \ - lhs, \ - rhs, \ - __VA_ARGS__); \ - } while (0) - -#undef ZL_RET_IF_ERR_IMPL -#define ZL_RET_IF_ERR_IMPL(type, expr, ...) \ - do { \ - ZL_RESULT_OF(type) \ - _result = ZL_RESULT_WRAP_ERROR(type, ZL_RES_error(expr)); \ - if (ZL_UNLIKELY(ZL_RES_isError(_result))) { \ - ZL_E_DECLARE_STATIC_ERROR_INFO( \ - __zl_static_error_info, \ - ZL_ErrorCode_GENERIC, \ - "Forwarding error: " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ - ZL_E_ADDFRAME( \ - &ZL_RES_error(_result), \ - ZL_EE_FROM_STATIC(__zl_static_error_info), \ - __VA_ARGS__); \ - return _result; \ - } \ + ZL__RetType _result = ZL_WRAP_ERROR_NO_FRAME(ZL_RES_error(expr)); \ + if (ZL_UNLIKELY(ZL_RES_isError(_result))) { \ + ZL_ASSERT_NE( \ + (int)ZL_E_code(ZL_RES_error(_result)), \ + (int)ZL_ErrorCode_dstCapacity_tooSmall, \ + "A call inside the zstrong internals produced " \ + "dstCapacity_tooSmall, which should only be used at " \ + "the end when interacting with the user-provided " \ + "output buffer."); \ + if (ZL_E_code(ZL_RES_error(_result)) \ + == ZL_ErrorCode_dstCapacity_tooSmall) { \ + ZL_E_changeErrorCode( \ + &ZL_RES_error(_result), ZL_ErrorCode_logicError); \ + ZL_E_appendToMessage( \ + ZL_RES_error(_result), \ + "A call inside the zstrong internals produced " \ + "dstCapacity_tooSmall, which should only be used " \ + "at the end when interacting with the " \ + "user-provided output buffer. " \ + "Coerced to logicError.\n\t"); \ + } \ + ZL_E_DECLARE_STATIC_ERROR_INFO( \ + __zl_static_error_info, \ + ZL_ErrorCode_GENERIC, \ + "Forwarding error: " ZS_MACRO_1ST_ARG(__VA_ARGS__)); \ + ZL_RES_error(_result) = ZL_E_ADDFRAME( \ + ZL_RES_error(_result), \ + ZL_EE_FROM_STATIC(__zl_static_error_info), \ + __VA_ARGS__); \ + return _result; \ + } \ } while (0) /** - * Some errors have special meaning, and + * Adds a ZL_GraphContext to the error scope */ -#define ZL_RET_IF_ERR_COERCE_IMPL(type, res, ...) \ - do { \ - ZL_RESULT_OF(type) _res = (res); \ - if (ZL_RES_isError(_res)) { \ - ZL_ASSERT_NE( \ - (int)ZL_E_code(ZL_RES_error(_res)), \ - (int)ZL_ErrorCode_dstCapacity_tooSmall, \ - "A call inside the zstrong internals produced dstCapacity_tooSmall, which should only be used at the end when interacting with the user-provided output buffer."); \ - if (ZL_E_code(ZL_RES_error(_res)) \ - == ZL_ErrorCode_dstCapacity_tooSmall) { \ - ZL_E_changeErrorCode( \ - &ZL_RES_error(_res), ZL_ErrorCode_logicError); \ - ZL_E_appendToMessage( \ - ZL_RES_error(_res), \ - "A call inside the zstrong internals produced dstCapacity_tooSmall, which should only be used at the end when interacting with the user-provided output buffer. Coerced to logicError.\n\t"); \ - } \ - } \ - ZL_RET_IF_ERR_IMPL(type, _res, __VA_ARGS__); \ +#define ZL_RESULT_SCOPE_ADD_GRAPH_CONTEXT(...) \ + do { \ + ZL__errorContext.graphCtx = __VA_ARGS__; \ } while (0) ZL_END_C_DECLS diff --git a/src/openzl/common/introspection.h b/src/openzl/common/introspection.h index dfd500c34..5160fbee3 100644 --- a/src/openzl/common/introspection.h +++ b/src/openzl/common/introspection.h @@ -13,42 +13,84 @@ extern "C" { #if ZL_ALLOW_INTROSPECTION /** - * Define an execution waypoint for introspection. When inserted into an - * existing code block, this macro will grab the relevant OperationContext from - * the @p ctx object and call the corresponding @p hook function at the point of - * insertion. + * Define an execution waypoint for compression introspection. When inserted + * into an existing code block, this macro will grab the relevant + * OperationContext from the @p ctx object and call the corresponding @p hook + * function at the point of insertion. * * If @p hook is not provided (function pointer points to NULL), the operation * is aborted. This is to save on the expensive computation to fill __VA_ARGS__. - * If introspection is disabled, the whole WAYPOINT macro is no-oped. + * If introspection is disabled, the whole CWAYPOINT macro is no-oped. * * @note @p ctx must be a valid context object from which the OperationContext * can be extracted. */ -# define WAYPOINT(hook, ctx, ...) \ - do { \ - ZL_OperationContext* _oc = ZL_GET_OPERATION_CONTEXT(ctx); \ - ZL_ASSERT_NN(_oc); \ - if (!_oc->hasIntrospectionHooks) { \ - break; \ - } \ - if (_oc->introspectionHooks.hook != NULL) { \ - /* allow passing a C++ class */ \ - _oc->introspectionHooks.hook( \ - _oc->introspectionHooks.opaque, ctx, __VA_ARGS__); \ - } \ +# define CWAYPOINT(hook, ctx, ...) \ + do { \ + ZL_OperationContext* _oc = ZL_GET_OPERATION_CONTEXT(ctx); \ + ZL_ASSERT_NN(_oc); \ + if (!_oc->hasCompressionHooks) { \ + break; \ + } \ + if (_oc->compressIntrospectionHooks.hook != NULL) { \ + /* allow passing a C++ class */ \ + _oc->compressIntrospectionHooks.hook( \ + _oc->compressIntrospectionHooks.opaque, \ + ctx, \ + __VA_ARGS__); \ + } \ } while (0) -# define IF_WAYPOINT_ENABLED(hook, ctx) \ +# define IF_CWAYPOINT_ENABLED(hook, ctx) \ ZL_OperationContext* _wpe_oc##hook = ZL_GET_OPERATION_CONTEXT(ctx); \ ZL_ASSERT_NN(_wpe_oc##hook); \ - if (_wpe_oc##hook->hasIntrospectionHooks \ - && _wpe_oc##hook->introspectionHooks.hook != NULL) + if (_wpe_oc##hook->hasCompressionHooks \ + && _wpe_oc##hook->compressIntrospectionHooks.hook != NULL) + +/** + * Define an execution waypoint for decompression introspection. Same pattern + * as CWAYPOINT but accesses the decompressIntrospectionHooks. + * + * Prefer using DWAYPOINT() when @p ctx supports ZL_GET_OPERATION_CONTEXT + * directly. Use DWAYPOINT_WITH_OC() only when the operation context must be + * resolved from a different object than the one passed to the hook callback + * (e.g., when @p hook_ctx is const and ZL_GET_OPERATION_CONTEXT doesn't + * accept it). + * + * @p oc_src is used to resolve the OperationContext (via + * ZL_GET_OPERATION_CONTEXT), while @p hook_ctx is passed to the hook callback. + */ +# define DWAYPOINT_WITH_OC(hook, oc_src, hook_ctx, ...) \ + do { \ + ZL_OperationContext* _oc = ZL_GET_OPERATION_CONTEXT(oc_src); \ + ZL_ASSERT_NN(_oc); \ + if (!_oc->hasDecompressionHooks) { \ + break; \ + } \ + if (_oc->decompressIntrospectionHooks.hook != NULL) { \ + _oc->decompressIntrospectionHooks.hook( \ + _oc->decompressIntrospectionHooks.opaque, \ + hook_ctx, \ + __VA_ARGS__); \ + } \ + } while (0) + +# define DWAYPOINT(hook, ctx, ...) \ + DWAYPOINT_WITH_OC(hook, ctx, ctx, __VA_ARGS__) + +# define IF_DWAYPOINT_ENABLED(hook, ctx) \ + ZL_OperationContext* _wpe_oc##hook = ZL_GET_OPERATION_CONTEXT(ctx); \ + ZL_ASSERT_NN(_wpe_oc##hook); \ + if (_wpe_oc##hook->hasDecompressionHooks \ + && _wpe_oc##hook->decompressIntrospectionHooks.hook != NULL) #else -# define WAYPOINT(hook, ctx, ...) -# define IF_WAYPOINT_ENABLED(hook, ctx) if (false) +# define CWAYPOINT(hook, ctx, ...) +# define IF_CWAYPOINT_ENABLED(hook, ctx) if (false) +# define DWAYPOINT_WITH_OC(hook, oc_src, hook_ctx, ...) +# define DWAYPOINT(hook, ctx, ...) +# define IF_DWAYPOINT_ENABLED(hook, ctx) if (false) #endif diff --git a/src/openzl/common/limits.h b/src/openzl/common/limits.h index 647425f76..934d721f2 100644 --- a/src/openzl/common/limits.h +++ b/src/openzl/common/limits.h @@ -29,6 +29,12 @@ size_t ZL_runtimeNodeInputLimit(unsigned formatVersion); /// impacting the format version. #define ZL_ENCODER_GRAPH_LIMIT 131072 +/// Maximum depth of a compression graph. Graphs deeper than this are +/// rejected, as excessive depth typically indicates an infinite loop. +/// NOTE: This limit is encoder only, so it can be increased any time without +/// impacting the format version. +#define ZL_MAX_GRAPH_DEPTH 1024 + /// ZStrong will refuse to encode/decode graphs that contain more transforms /// than this. size_t ZL_runtimeNodeLimit(unsigned formatVersion); @@ -63,6 +69,9 @@ size_t ZL_transformOutStreamsLimit(unsigned formatVersion); /// there's any risk. #define ZL_CONTAINER_SIZE_LIMIT (1024 * 1024) +/// Size limit for the variable sized comment field +#define ZL_MAX_HEADER_COMMENT_SIZE_LIMIT 10000 + //////////////////////////////////////// // Compressor Serialization Limits //////////////////////////////////////// diff --git a/src/openzl/common/opaque.c b/src/openzl/common/opaque.c index 034621793..94e18e4da 100644 --- a/src/openzl/common/opaque.c +++ b/src/openzl/common/opaque.c @@ -35,6 +35,7 @@ ZL_Report ZL_OpaquePtrRegistry_register( ZL_OpaquePtrRegistry* registry, ZL_OpaquePtr opaque) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (opaque.freeFn == NULL) { // Free is no-op => do not track return ZL_returnSuccess(); @@ -42,7 +43,7 @@ ZL_Report ZL_OpaquePtrRegistry_register( const bool success = VECTOR_PUSHBACK(registry->ptrs, opaque); if (!success) { ZL_OpaquePtr_free(opaque); - ZL_RET_R_ERR(allocation, "Failed to pushback to opaque vector"); + ZL_ERR(allocation, "Failed to pushback to opaque vector"); } return ZL_returnSuccess(); } diff --git a/src/openzl/common/operation_context.c b/src/openzl/common/operation_context.c index 5c9154fd3..8f0f35393 100644 --- a/src/openzl/common/operation_context.c +++ b/src/openzl/common/operation_context.c @@ -15,7 +15,8 @@ void ZL_OC_init(ZL_OperationContext* opCtx) memset(opCtx, 0, sizeof(*opCtx)); VECTOR_INIT(opCtx->errorInfos, 1024); VECTOR_INIT(opCtx->warnings, 1024); - opCtx->hasIntrospectionHooks = false; + opCtx->hasCompressionHooks = false; + opCtx->hasDecompressionHooks = false; } void ZL_OC_destroy(ZL_OperationContext* opCtx) diff --git a/src/openzl/common/operation_context.h b/src/openzl/common/operation_context.h index 9a21fbd21..2bccd90ef 100644 --- a/src/openzl/common/operation_context.h +++ b/src/openzl/common/operation_context.h @@ -52,10 +52,12 @@ struct ZL_OperationContext_s { // Introspection hooks for the current operation. Realistically only // relevant for CCtx and DCtx. These allow the user to execute custom code - // snippets at specified WAYPOINT()s within the operation. See - // common/introspection.h for more details. - ZL_CompressIntrospectionHooks introspectionHooks; - bool hasIntrospectionHooks; + // snippets at specified CWAYPOINT()s / DWAYPOINT()s within the operation. + // See common/introspection.h for more details. + ZL_CompressIntrospectionHooks compressIntrospectionHooks; + ZL_DecompressIntrospectionHooks decompressIntrospectionHooks; + bool hasCompressionHooks; + bool hasDecompressionHooks; }; void ZL_OC_init(ZL_OperationContext* opCtx); diff --git a/src/openzl/common/refcount.c b/src/openzl/common/refcount.c index e463b0794..b742c4f26 100644 --- a/src/openzl/common/refcount.c +++ b/src/openzl/common/refcount.c @@ -6,7 +6,7 @@ #include "openzl/common/allocation.h" #include "openzl/zl_errors.h" -struct ZS2_Refcount_Control { +struct ZL_Refcount_Control { void* ptr; ZL_Refcount_FreeFn freeFn; void* freeState; @@ -22,6 +22,7 @@ ZL_Report ZL_Refcount_init( ZL_Refcount_FreeFn freeFn, void* opaque) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ctrlAlloc == NULL) { // just a reference, no ownership rc->_ref = NULL; @@ -29,9 +30,9 @@ ZL_Report ZL_Refcount_init( // managed reference => free MUST be defined ZL_ASSERT_NN(freeFn); ZL_ASSERT_NN(ctrlAlloc->sfree); - struct ZS2_Refcount_Control* const ctrl = + struct ZL_Refcount_Control* const ctrl = ctrlAlloc->malloc(ctrlAlloc->opaque, sizeof(*ctrl)); - ZL_RET_R_IF_NULL(allocation, ctrl); + ZL_ERR_IF_NULL(ctrl, allocation); ctrl->ptr = ptr; ctrl->count = 1; @@ -60,7 +61,7 @@ static void* mallocFn(void* opaque, size_t s) return ZL_malloc(s); } -static const ALLOC_CustomAllocation ZS2_Refcount_defaultAllocation = { +static const ALLOC_CustomAllocation ZL_Refcount_defaultAllocation = { .malloc = mallocFn, .sfree = freeFn, .opaque = NULL @@ -69,14 +70,15 @@ static const ALLOC_CustomAllocation ZS2_Refcount_defaultAllocation = { ZL_Report ZL_Refcount_initMalloc(ZL_Refcount* rc, void* ptr) { return ZL_Refcount_init( - rc, ptr, &ZS2_Refcount_defaultAllocation, freeFn, NULL); + rc, ptr, &ZL_Refcount_defaultAllocation, freeFn, NULL); } ZL_Report ZL_Refcount_initConstRef(ZL_Refcount* rc, const void* ptr) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); void* ptrMut; memcpy(&ptrMut, &ptr, sizeof(ptr)); - ZL_RET_R_IF_ERR(ZL_Refcount_init(rc, ptrMut, NULL, NULL, NULL)); + ZL_ERR_IF_ERR(ZL_Refcount_init(rc, ptrMut, NULL, NULL, NULL)); rc->_mutable = false; ZL_ASSERT(!ZL_Refcount_mutable(rc)); return ZL_returnSuccess(); @@ -84,18 +86,19 @@ ZL_Report ZL_Refcount_initConstRef(ZL_Refcount* rc, const void* ptr) ZL_Report ZL_Refcount_initMutRef(ZL_Refcount* rc, void* ptr) { - ZL_RET_R_IF_ERR(ZL_Refcount_init(rc, ptr, NULL, NULL, NULL)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR(ZL_Refcount_init(rc, ptr, NULL, NULL, NULL)); rc->_mutable = true; ZL_ASSERT(ZL_Refcount_mutable(rc)); return ZL_returnSuccess(); } // simple redirectors, just for type matching -static void* ZS2_Refcount_arenaMalloc(void* arena, size_t s) +static void* ZL_Refcount_arenaMalloc(void* arena, size_t s) { return ALLOC_Arena_malloc(arena, s); } -static void ZS2_Refcount_arenaFree(void* arena, void* p) +static void ZL_Refcount_arenaFree(void* arena, void* p) { ALLOC_Arena_free(arena, p); } @@ -110,11 +113,11 @@ void* ZL_Refcount_inArena(ZL_Refcount* rc, Arena* arena, size_t s) s); return NULL; } - const ALLOC_CustomAllocation ca = { ZS2_Refcount_arenaMalloc, - ZS2_Refcount_arenaFree, + const ALLOC_CustomAllocation ca = { ZL_Refcount_arenaMalloc, + ZL_Refcount_arenaFree, arena }; ZL_Report const rcir = - ZL_Refcount_init(rc, buffer, &ca, ZS2_Refcount_arenaFree, arena); + ZL_Refcount_init(rc, buffer, &ca, ZL_Refcount_arenaFree, arena); if (ZL_isError(rcir)) { // Note(@Cyan): could be worth passing to some error context ZL_DLOG(ERROR, diff --git a/src/openzl/common/refcount.h b/src/openzl/common/refcount.h index 219fbb509..b567e15b7 100644 --- a/src/openzl/common/refcount.h +++ b/src/openzl/common/refcount.h @@ -23,7 +23,7 @@ typedef void (*ZL_Refcount_FreeFn)(void* opaque, void* ptr) */ typedef struct { void* _ptr; - struct ZS2_Refcount_Control* _ref; + struct ZL_Refcount_Control* _ref; bool _mutable; } ZL_Refcount; @@ -31,7 +31,7 @@ typedef struct { * Takes ownership of @p ptr and frees it with `(*freeFn)(opaque, ptr)`. * * @p ptr The pointer to reference count. - * @p ctrlAlloc Used to manage ZS2_Refcount_Control* lifetime. + * @p ctrlAlloc Used to manage ZL_Refcount_Control* lifetime. * If == NULL, @p ptr is considered an externally managed memory, * and just referenced (no Free operation will be triggered). * @p freeBufferFn The function used to free the pointer on reaching 0. @@ -47,7 +47,7 @@ ZL_Report ZL_Refcount_init( void* opaque); /// Initializes the reference with a pointer that has been created with -/// malloc(). ZS2_Refcount_Control* will be allocated with malloc() too. +/// malloc(). ZL_Refcount_Control* will be allocated with malloc() too. ZL_Report ZL_Refcount_initMalloc(ZL_Refcount* rc, void* ptr); /// Initializes the reference with a constant reference that will not be freed. @@ -60,7 +60,7 @@ ZL_Report ZL_Refcount_initConstRef(ZL_Refcount* rc, void const* ptr); ZL_Report ZL_Refcount_initMutRef(ZL_Refcount* rc, void* ptr); /// Helper function, which **allocates** a buffer of size @s within provided -/// @arena, and also allocated the control structure ZS2_Refcount_Control* in +/// @arena, and also allocated the control structure ZL_Refcount_Control* in /// the same Arena, for compatibility with Arena's freeAll(). /// @return NULL on error. void* ZL_Refcount_inArena(ZL_Refcount* rc, Arena* arena, size_t s); diff --git a/src/openzl/common/scope_context.h b/src/openzl/common/scope_context.h deleted file mode 100644 index 0990effef..000000000 --- a/src/openzl/common/scope_context.h +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. -#ifndef ZSTRONG_COMMON_SCOPE_CONTEXT_H -#define ZSTRONG_COMMON_SCOPE_CONTEXT_H - -#include - -#include "openzl/common/operation_context.h" -#include "openzl/detail/zl_error_context.h" -#include "openzl/shared/portability.h" -#include "openzl/zl_compress.h" -#include "openzl/zl_compressor.h" -#include "openzl/zl_ctransform.h" -#include "openzl/zl_decompress.h" -#include "openzl/zl_dtransform.h" - -/** - * @file This method of getting an ErrorContext is deprecated in favor of - * openzl/detail/zl_error_context.h - */ - -ZL_BEGIN_C_DECLS - -/// @returns a pointer to the current scope context, or NULL if no scope context -/// is available. -/// -/// A scope context is available if: -/// - A ZL_SCOPE_CONTEXT() was called in this scope giving an explicit context. -/// - A `ZL_CCtx* cctx` variable exists in the scope. -/// - A `ZL_DCtx* dctx` variable exists in the scope. -/// - A `ZL_Encoder* eictx` variable exists in the scope. -/// - A `ZL_Decoder* dictx` variable exists in the scope. -/// - A `ZL_Compressor* cgraph` variable exists in the scope. -/// -/// If multiple scope contexts are available, then the first in the list is -/// used. -/// -/// NOTE: Including this header makes it illegal to create a variable named -/// `cctx`, `dctx`, `eictx`, `dictx`, or `cgraph` that is not a pointer. -#define ZL_GET_SCOPE_CONTEXT() ZL_GET_SCOPE_CONTEXT_IMPL() - -/// Sets the current scope scope context. -/// @param ctx must be the current context object, which is one of: -/// - ZL_CCtx -/// - ZL_Compressor -/// - ZL_Encoder -/// - ZL_DCtx -/// - ZL_Decoder -#define ZL_SCOPE_CONTEXT(ctx) \ - ZL_ScopeContext ZL__scopeContext = { ZL_GET_OPERATION_CONTEXT(ctx) }; \ - (void)ZL__scopeContext - -/// Sets the current scope context, and also set the graph context. -/// @param ctx @see ZL_SCOPE_CONTEXT. -/// @param ... An initializer for the ZL_GraphContext. -#define ZL_SCOPE_GRAPH_CONTEXT(ctx, ...) \ - ZL_ScopeContext ZL__scopeContext = { ZL_GET_OPERATION_CONTEXT(ctx), \ - __VA_ARGS__ }; \ - (void)ZL__scopeContext - -typedef ZL_ErrorContext ZL_ScopeContext; - -// Implementation details - -static inline void ZL__scopeContext(void) {} -static inline void cctx(void) {} -static inline void dctx(void) {} -static inline void cgraph(void) {} -static inline void eictx(void) {} -static inline void dictx(void) {} -static inline void gctx(void) {} -static inline void sctx(void) {} - -static inline ZL_ScopeContext const* ZL_scopeContextFirstNotNull( - ZL_ScopeContext const* ctx0, - ZL_ScopeContext const* ctx1, - ZL_ScopeContext const* ctx2, - ZL_ScopeContext const* ctx3, - ZL_ScopeContext const* ctx4, - ZL_ScopeContext const* ctx5, - ZL_ScopeContext const* ctx6, - ZL_ScopeContext const* ctx7) -{ - if (ctx0 != NULL) - return ctx0; - if (ctx1 != NULL) - return ctx1; - if (ctx2 != NULL) - return ctx2; - if (ctx3 != NULL) - return ctx3; - if (ctx4 != NULL) - return ctx4; - if (ctx5 != NULL) - return ctx5; - if (ctx6 != NULL) - return ctx6; - if (ctx7 != NULL) - return ctx7; - return NULL; -} - -#ifdef __cplusplus - -ZL_END_C_DECLS - -template -ZL_ScopeContext const* ZL_getScopeContext(T ctx) -{ - (void)ctx; - return NULL; -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_ScopeContext* ctx) -{ - return ctx; -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_CCtx* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_CCtx_getOperationContext(ctx)); -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_DCtx* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_DCtx_getOperationContext(ctx)); -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_Compressor* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_Compressor_getOperationContext(ctx)); -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_Encoder* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_Encoder_getOperationContext(ctx)); -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_Decoder* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_Decoder_getOperationContext(ctx)); -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_Graph* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_Graph_getOperationContext(ctx)); -} -template <> -inline ZL_ScopeContext const* ZL_getScopeContext(ZL_Edge* ctx) -{ - return ZL_OC_defaultScopeContext(ZL_Edge_getOperationContext(ctx)); -} - -ZL_BEGIN_C_DECLS - -# define ZL_GET_SCOPE_CONTEXT_IMPL() \ - ZL_scopeContextFirstNotNull( \ - ZL_getScopeContext(&ZL__scopeContext), \ - ZL_getScopeContext(cctx), \ - ZL_getScopeContext(dctx), \ - ZL_getScopeContext(eictx), \ - ZL_getScopeContext(dictx), \ - ZL_getScopeContext(cgraph), \ - ZL_getScopeContext(gctx), \ - ZL_getScopeContext(sctx)) - -#else - -ZL_INLINE ZL_ScopeContext const* ZL_launderScopeContext(void const* ctx) -{ - return (ZL_ScopeContext const*)ctx; -} - -ZL_INLINE void* ZL_unconstify(void const* ptr) -{ - void* mut; - memcpy(&mut, &ptr, sizeof(ptr)); - return mut; -} - -# define ZL_GET_SCOPE_CONTEXT_IMPL_SCOPE_CONTEXT() \ - (ZL_launderScopeContext(_Generic( \ - ZL__scopeContext, \ - default: NULL, \ - ZL_ScopeContext: &ZL__scopeContext))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_CCTX() \ - (ZL_launderScopeContext(_Generic( \ - cctx, \ - default: NULL, \ - ZL_CCtx \ - *: ZL_OC_defaultScopeContext( \ - ZL_CCtx_getOperationContext( \ - ZL_unconstify((void const*)cctx)))))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_DCTX() \ - (ZL_launderScopeContext(_Generic( \ - dctx, \ - default: NULL, \ - ZL_DCtx \ - *: ZL_OC_defaultScopeContext( \ - ZL_DCtx_getOperationContext( \ - ZL_unconstify((void const*)dctx)))))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_EICTX() \ - (ZL_launderScopeContext(_Generic( \ - eictx, \ - default: NULL, \ - ZL_Encoder \ - *: ZL_OC_defaultScopeContext( \ - ZL_Encoder_getOperationContext( \ - ZL_unconstify((void const*)eictx)))))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_DICTX() \ - (ZL_launderScopeContext(_Generic( \ - dictx, \ - default: NULL, \ - ZL_Decoder \ - *: ZL_OC_defaultScopeContext( \ - ZL_Decoder_getOperationContext( \ - ZL_unconstify((void const*)dictx)))))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_CGRAPH() \ - (ZL_launderScopeContext(_Generic( \ - cgraph, \ - default: NULL, \ - ZL_Compressor \ - *: ZL_OC_defaultScopeContext( \ - ZL_Compressor_getOperationContext( \ - ZL_unconstify( \ - (void const*)cgraph)))))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_GCTX() \ - (ZL_launderScopeContext(_Generic( \ - gctx, \ - default: NULL, \ - ZL_Graph \ - *: ZL_OC_defaultScopeContext( \ - ZL_Graph_getOperationContext( \ - ZL_unconstify((void const*)gctx)))))) -# define ZL_GET_SCOPE_CONTEXT_IMPL_SCTX() \ - (ZL_launderScopeContext(_Generic( \ - sctx, \ - default: NULL, \ - ZL_Edge \ - *: ZL_OC_defaultScopeContext( \ - ZL_Edge_getOperationContext( \ - ZL_unconstify((void const*)sctx)))))) - -# define ZL_GET_SCOPE_CONTEXT_IMPL() \ - ZL_scopeContextFirstNotNull( \ - ZL_GET_SCOPE_CONTEXT_IMPL_SCOPE_CONTEXT(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_CCTX(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_DCTX(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_EICTX(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_DICTX(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_CGRAPH(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_GCTX(), \ - ZL_GET_SCOPE_CONTEXT_IMPL_SCTX()) - -#endif - -ZL_END_C_DECLS - -#endif diff --git a/src/openzl/common/sha256.c b/src/openzl/common/sha256.c new file mode 100644 index 000000000..b600191b9 --- /dev/null +++ b/src/openzl/common/sha256.c @@ -0,0 +1,118 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/common/sha256.h" + +#include +#include + +// ============================================================================ +// SHA256 Implementation +// ============================================================================ +// TODO(csv): fast sha256 implementation + +// macros +#define S(x, n) \ + (((((uint32_t)(x) & 0xFFFFFFFFU) >> (uint32_t)((n) & 31)) \ + | ((uint32_t)(x) << (uint32_t)((32 - ((n) & 31)) & 31))) \ + & 0xFFFFFFFFU) +#define R(x, n) (((x) & 0xFFFFFFFFU) >> (n)) +#define Gamma0(x) (S(x, 7) ^ S(x, 18) ^ R(x, 3)) +#define Gamma1(x) (S(x, 17) ^ S(x, 19) ^ R(x, 10)) +#define RND(a, b, c, d, e, f, g, h, i) \ + t0 = h + (S(e, 6) ^ S(e, 11) ^ S(e, 25)) + (g ^ (e & (f ^ g))) + K[i] \ + + W[i]; \ + t1 = (S(a, 2) ^ S(a, 13) ^ S(a, 22)) + (((a | b) & c) | (a & b)); \ + d += t0; \ + h = t0 + t1; +#define STORE32H(x, y) \ + (y)[0] = (unsigned char)(((x) >> 24) & 255); \ + (y)[1] = (unsigned char)(((x) >> 16) & 255); \ + (y)[2] = (unsigned char)(((x) >> 8) & 255); \ + (y)[3] = (unsigned char)((x) & 255); +#define LOAD32H(x, y) \ + x = ((uint32_t)((y)[0] & 255) << 24) | ((uint32_t)((y)[1] & 255) << 16) \ + | ((uint32_t)((y)[2] & 255) << 8) | ((uint32_t)((y)[3] & 255)); +#define STORE64H(x, y) \ + (y)[0] = (unsigned char)(((x) >> 56) & 255); \ + (y)[1] = (unsigned char)(((x) >> 48) & 255); \ + (y)[2] = (unsigned char)(((x) >> 40) & 255); \ + (y)[3] = (unsigned char)(((x) >> 32) & 255); \ + (y)[4] = (unsigned char)(((x) >> 24) & 255); \ + (y)[5] = (unsigned char)(((x) >> 16) & 255); \ + (y)[6] = (unsigned char)(((x) >> 8) & 255); \ + (y)[7] = (unsigned char)((x) & 255); +#define SHA256_COMPRESS(buff) \ + for (int i = 0; i < 8; i++) \ + S[i] = sha256_state[i]; \ + for (int i = 0; i < 16; i++) \ + LOAD32H(W[i], buff + (4 * i)); \ + for (int i = 16; i < 64; i++) \ + W[i] = Gamma1(W[i - 2]) + W[i - 7] + Gamma0(W[i - 15]) + W[i - 16]; \ + for (int i = 0; i < 64; i++) { \ + RND(S[0], S[1], S[2], S[3], S[4], S[5], S[6], S[7], i); \ + t = S[7]; \ + S[7] = S[6]; \ + S[6] = S[5]; \ + S[5] = S[4]; \ + S[4] = S[3]; \ + S[3] = S[2]; \ + S[2] = S[1]; \ + S[1] = S[0]; \ + S[0] = t; \ + } \ + for (int i = 0; i < 8; i++) \ + sha256_state[i] = sha256_state[i] + S[i]; + +void ZL_sha256(const unsigned char* in, size_t len, unsigned char* out) +{ + const uint32_t K[64] = { + 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, 0x3956c25bUL, + 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, 0xd807aa98UL, 0x12835b01UL, + 0x243185beUL, 0x550c7dc3UL, 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, + 0xc19bf174UL, 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, + 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, 0x983e5152UL, + 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, 0xc6e00bf3UL, 0xd5a79147UL, + 0x06ca6351UL, 0x14292967UL, 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, + 0x53380d13UL, 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, + 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, 0xd192e819UL, + 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, 0x19a4c116UL, 0x1e376c08UL, + 0x2748774cUL, 0x34b0bcb5UL, 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, + 0x682e6ff3UL, 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, + 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL + }; + uint64_t sha256_length = 0; + uint32_t sha256_state[8] = { 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, + 0xA54FF53AUL, 0x510E527FUL, 0x9B05688CUL, + 0x1F83D9ABUL, 0x5BE0CD19UL }, + S[8], W[64], t0, t1, t; + unsigned char sha256_buf[64]; + // process input in 64 byte chunks + while (len >= 64) { + SHA256_COMPRESS(in); + sha256_length += 64 * 8; + in += 64; + len -= 64; + } + // copy remaining bytes into sha256_buf + memcpy(sha256_buf, in, len); + // finish up (len now number of bytes in sha256_buf) + sha256_length += len * 8; + sha256_buf[len++] = 0x80; + // pad then compress if length is above 56 bytes + if (len > 56) { + while (len < 64) + sha256_buf[len++] = 0; + SHA256_COMPRESS(sha256_buf); + len = 0; + } + // pad up to 56 bytes + while (len < 56) + sha256_buf[len++] = 0; + // store length and compress + STORE64H(sha256_length, sha256_buf + 56); + SHA256_COMPRESS(sha256_buf); + // copy output + for (int i = 0; i < 8; i++) { + STORE32H(sha256_state[i], out + 4 * i); + } +} diff --git a/src/openzl/common/sha256.h b/src/openzl/common/sha256.h new file mode 100644 index 000000000..5b5b96dbf --- /dev/null +++ b/src/openzl/common/sha256.h @@ -0,0 +1,22 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_COMMON_SHA256_H +#define OPENZL_COMMON_SHA256_H + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Compute the SHA-256 digest of @p data (of length @p len) and write the + * 32-byte result into @p digest. + */ +void ZL_sha256(const unsigned char* data, size_t len, unsigned char* digest); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_COMMON_SHA256_H diff --git a/src/openzl/common/stream.c b/src/openzl/common/stream.c index 57bd2b5cf..455f75bf2 100644 --- a/src/openzl/common/stream.c +++ b/src/openzl/common/stream.c @@ -1,19 +1,19 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -#include +#include // uint32_t -#include "openzl/common/allocation.h" -#include "openzl/common/assertion.h" -#include "openzl/common/limits.h" -#include "openzl/common/refcount.h" // ZS2_RefCount_* -#include "openzl/common/stream.h" +#include "openzl/common/allocation.h" // ALLOC_Arena_calloc +#include "openzl/common/assertion.h" // ZL_ASSERT_NN +#include "openzl/common/limits.h" // ZL_CONTAINER_SIZE_LIMIT +#include "openzl/common/refcount.h" // ZL_Refcount_initMutRef +#include "openzl/common/stream.h" // Stream #include "openzl/shared/mem.h" // ZL_memcpy -#include "openzl/shared/numeric_operations.h" // NUMOP_* -#include "openzl/shared/overflow.h" -#include "openzl/shared/xxhash.h" -#include "openzl/zl_buffer.h" -#include "openzl/zl_data.h" -#include "openzl/zl_errors.h" +#include "openzl/shared/numeric_operations.h" // NUMOP_sumArray32 +#include "openzl/shared/overflow.h" // ZL_overflowMulST +#include "openzl/shared/xxhash.h" // XXH3_state_t +#include "openzl/zl_buffer.h" // ZL_RBuffer +#include "openzl/zl_data.h" // ZL_DataID +#include "openzl/zl_errors.h" // ZL_Report typedef struct { int mId; @@ -22,38 +22,38 @@ typedef struct { DECLARE_VECTOR_TYPE(IntMeta) -struct ZL_Data_s { // typedef'd to ZL_Data in zs2_data.h +struct Stream_s { // exposed publicly as ZL_Data ZL_Refcount buffer; ZL_DataID id; // unique ID used to identify this Data object ZL_Type type; - size_t eltWidth; // in nb of bytes + size_t eltWidth; // in bytes size_t eltsCapacity; - size_t numElts; - size_t bufferCapacity; // required by ZL_Type_string - size_t bufferUsed; // @note (@cyan) should it be used *only* for `string` ? + size_t eltCount; + size_t bufferCapacity; // in bytes + size_t bufferUsed; // in bytes ZL_Refcount stringLens; // ZL_Type_string only. int writeCommitted; - size_t lastCommmited; + size_t lastCommmited; // tracks the eltCount of most recent commit VECTOR(IntMeta) intMetas; // Metadata (arbitrary ID+Ints) Arena* alloc; }; struct ZL_Input_s { - ZL_Data data; + Stream data; }; struct ZL_Output_s { - ZL_Data data; + Stream data; }; // ================================ // Allocation & lifetime management // ================================ -ZL_Data* STREAM_createInArena(Arena* a, ZL_DataID id) +Stream* STREAM_createInArena(Arena* a, ZL_DataID id) { ZL_ASSERT_NN(a); - ZL_Data* const s = ALLOC_Arena_calloc(a, sizeof(*s)); + Stream* const s = ALLOC_Arena_calloc(a, sizeof(*s)); if (!s) return NULL; s->id = id; @@ -83,12 +83,12 @@ static Arena kIsolatedStreamAllocator = { .free = isolatedStream_free, }; -ZL_Data* STREAM_create(ZL_DataID id) +Stream* STREAM_create(ZL_DataID id) { return STREAM_createInArena(&kIsolatedStreamAllocator, id); } -void STREAM_free(ZL_Data* s) +void STREAM_free(Stream* s) { if (s == NULL) return; @@ -103,67 +103,90 @@ void STREAM_free(ZL_Data* s) // Initialization // ================================ -/* this is probably a bad name - * the main idea is to add Type and other metadata - * to an existing Stream with a main buffer already allocated */ -ZL_Report STREAM_initWritableStream( - ZL_Data* s, +static ZL_Report STREAM_validateTypeWidth(ZL_Type type, size_t eltWidth) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + switch (type) { + case ZL_Type_serial: + ZL_ERR_IF_NE( + eltWidth, + 1, + streamParameter_invalid, + "Serialized must set width == 1"); + break; + case ZL_Type_string: + ZL_ERR_IF_NE( + eltWidth, + 1, + streamParameter_invalid, + "String must set width == 1"); + break; + case ZL_Type_struct: + ZL_ERR_IF_EQ( + eltWidth, + 0, + streamParameter_invalid, + "Struct size must be > 0"); + break; + case ZL_Type_numeric: + ZL_ERR_IF_NOT( + eltWidth == 1 || eltWidth == 2 || eltWidth == 4 + || eltWidth == 8, + streamParameter_invalid, + "Numeric must be width 1, 2, 4, or 8"); + break; + default: + ZL_ERR(streamParameter_invalid, "Unknown type"); + } + ZL_ASSERT_NE(eltWidth, 0); + return ZL_returnSuccess(); +} + +/* finalize metadata for a stream that already references a buffer by setting + * its type, element width, and capacity, after validating the parameters */ +ZL_Report STREAM_typeAttachedBuffer( + Stream* s, ZL_Type type, size_t eltWidth, size_t eltCapacity) { - ZL_DLOG(SEQ, "STREAM_initWritableStream (type:%u)", type); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_DLOG(SEQ, "STREAM_typeAttachedBuffer (type:%u)", type); ZL_ASSERT_NN(s); if (s->type != 0) { ZL_DLOG(SEQ, "already initialized"); - ZL_RET_R_IF_NE(corruption, s->type, type); - ZL_RET_R_IF_NE(corruption, s->eltWidth, eltWidth); - ZL_RET_R_IF_LT(corruption, s->bufferCapacity, eltCapacity * eltWidth); + ZL_ERR_IF_NE(s->type, type, corruption); + ZL_ERR_IF_NE(s->eltWidth, eltWidth, corruption); + ZL_ERR_IF_LT(s->bufferCapacity, eltCapacity * eltWidth, corruption); return ZL_returnSuccess(); } /* Here, buffer exists, but nothing else is initialized */ + ZL_ERR_IF_ERR(STREAM_validateTypeWidth(type, eltWidth)); s->type = type; // control eltWidth validity - if (type == ZL_Type_serial) - ZL_RET_R_IF_NE( - streamParameter_invalid, - eltWidth, - 1, - "Serialized must set width == 1"); - if (type == ZL_Type_struct) - ZL_RET_R_IF_EQ( - streamParameter_invalid, - eltWidth, - 0, - "Struct size must be > 0"); - if (type == ZL_Type_numeric) - ZL_RET_R_IF_NOT( - streamParameter_invalid, - eltWidth == 1 || eltWidth == 2 || eltWidth == 4 - || eltWidth == 8, - "Numeric must be width 1, 2, 4, or 8"); ZL_ASSERT_NN(eltWidth); - ZL_RET_R_IF_LT( - streamCapacity_tooSmall, s->bufferCapacity / eltWidth, eltCapacity); + ZL_ERR_IF_LT( + s->bufferCapacity / eltWidth, eltCapacity, streamCapacity_tooSmall); s->eltWidth = eltWidth; s->eltsCapacity = s->bufferCapacity / eltWidth; return ZL_returnSuccess(); } -ZL_Report STREAM_reserveRawBuffer(ZL_Data* s, size_t byteCapacity) +ZL_Report STREAM_reserveRawBuffer(Stream* s, size_t byteCapacity) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(s); // For the time being, only one allocation is allowed. No resizing. ZL_ASSERT(ZL_Refcount_null(&s->buffer)); - ZL_ASSERT_EQ(s->numElts, 0); + ZL_ASSERT_EQ(s->eltCount, 0); ZL_ASSERT_EQ(s->bufferUsed, 0); void* const buffer = ZL_Refcount_inArena(&s->buffer, s->alloc, byteCapacity); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( buffer, + allocation, "STREAM_reserveRawBuffer: Failed allocating stream's buffer"); ZL_DLOG(SEQ, @@ -174,16 +197,17 @@ ZL_Report STREAM_reserveRawBuffer(ZL_Data* s, size_t byteCapacity) } ZL_Report -STREAM_reserve(ZL_Data* s, ZL_Type type, size_t eltWidth, size_t eltsCapacity) +STREAM_reserve(Stream* s, ZL_Type type, size_t eltWidth, size_t eltsCapacity) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t byteCapacity; - ZL_RET_R_IF( - allocation, + ZL_ERR_IF( ZL_overflowMulST(eltsCapacity, eltWidth, &byteCapacity), + allocation, "Allocation overflows size_t"); - ZL_RET_R_IF_ERR(STREAM_reserveRawBuffer(s, byteCapacity)); + ZL_ERR_IF_ERR(STREAM_reserveRawBuffer(s, byteCapacity)); ZL_Report const r = - STREAM_initWritableStream(s, type, eltWidth, eltsCapacity); + STREAM_typeAttachedBuffer(s, type, eltWidth, eltsCapacity); if (ZL_isError(r)) { ZL_Refcount_destroy(&s->buffer); s->bufferCapacity = 0; @@ -191,21 +215,30 @@ STREAM_reserve(ZL_Data* s, ZL_Type type, size_t eltWidth, size_t eltsCapacity) return r; } -uint32_t* ZL_Data_reserveStringLens(ZL_Data* stream, size_t nbStrings) +uint32_t* STREAM_reserveStringLens(Stream* stream, size_t nbStrings) { - ZL_DLOG(SEQ, "ZL_Data_reserveStringLens (nbStrings=%zu)", nbStrings); - if (ZL_Data_type(stream) != ZL_Type_string) + ZL_DLOG(SEQ, "STREAM_reserveStringLens (nbStrings=%zu)", nbStrings); + if (STREAM_type(stream) != ZL_Type_string) return NULL; if (!ZL_Refcount_null(&stream->stringLens)) return NULL; // must be unused if (stream->writeCommitted) return NULL; // not committed yet ZL_ASSERT_NN(stream->alloc); - uint32_t* const stringLens = ZL_Refcount_inArena( - &stream->stringLens, stream->alloc, nbStrings * sizeof(uint32_t)); + + size_t byteCount; + if (ZL_overflowMulST(nbStrings, sizeof(uint32_t), &byteCount)) { + ZL_DLOG(ERROR, + "STREAM_reserveStringLens: Integer overflow (nbStrings=%zu)", + nbStrings); + return NULL; + } + + uint32_t* const stringLens = + ZL_Refcount_inArena(&stream->stringLens, stream->alloc, byteCount); if (stringLens == NULL) { ZL_DLOG(ERROR, - "ZL_Data_reserveStringLens: Failed allocation of array of lengths (for %zu Strings)", + "STREAM_reserveStringLens: Failed allocation of array of lengths (for %zu Strings)", nbStrings); return NULL; } @@ -214,49 +247,48 @@ uint32_t* ZL_Data_reserveStringLens(ZL_Data* stream, size_t nbStrings) } ZL_Report -STREAM_reserveStrings(ZL_Data* s, size_t numStrings, size_t bufferCapacity) +STREAM_reserveStrings(Stream* s, size_t numStrings, size_t bufferCapacity) { - ZL_RET_R_IF_ERR(STREAM_reserveRawBuffer(s, bufferCapacity)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR(STREAM_reserveRawBuffer(s, bufferCapacity)); ZL_ASSERT_EQ(s->type, 0); s->type = ZL_Type_string; - void* const ptr = ZL_Data_reserveStringLens(s, numStrings); + void* const ptr = STREAM_reserveStringLens(s, numStrings); if (ptr == NULL) { + s->eltsCapacity = 0; + if (numStrings == 0) + return ZL_returnSuccess(); // no strings, no string lengths + ZL_Refcount_destroy(&s->buffer); s->bufferCapacity = 0; + return ZL_REPORT_ERROR( + allocation, + "STREAM_reserveStrings: failed to allocate string length array"); } return ZL_returnSuccess(); } static ZL_Report STREAM_referenceInternal( - ZL_Data* s, + Stream* s, ZL_Type type, size_t eltWidth, size_t eltCount, const void* ref) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "STREAM_referenceInternal (%zu elts of width %zu)", eltCount, eltWidth); - ZL_RET_R_IF( - stream_wrongInit, s->writeCommitted, "Stream already committed"); + ZL_ERR_IF(s->writeCommitted, stream_wrongInit, "Stream already committed"); // ZL_ASSERT(!ZL_Refcount_null(&s->buffer)); + ZL_ERR_IF_ERR(STREAM_validateTypeWidth(type, eltWidth)); s->type = type; - if (type == ZL_Type_serial) - ZL_ASSERT_EQ(eltWidth, 1); - if (type == ZL_Type_string) - ZL_ASSERT_EQ(eltWidth, 1); - if (type == ZL_Type_struct) - ZL_ASSERT_GE(eltWidth, 1); - if (type == ZL_Type_numeric) - ZL_ASSERT( - eltWidth == 1 || eltWidth == 2 || eltWidth == 4 - || eltWidth == 8); if (type == ZL_Type_numeric) { - ZL_RET_R_IF_NOT( - userBuffer_alignmentIncorrect, + ZL_ERR_IF_NOT( MEM_IS_ALIGNED_N(ref, MEM_alignmentForNumericWidth(eltWidth)), + userBuffer_alignmentIncorrect, "provided src buffer is incorrectly aligned for numerics of width %zu bytes", eltWidth); } @@ -267,7 +299,7 @@ static ZL_Report STREAM_referenceInternal( // do not commit yet : requires adding array of field sizes return ZL_returnSuccess(); } - s->numElts = eltCount; + s->eltCount = eltCount; s->bufferUsed = s->bufferCapacity; s->lastCommmited = eltCount; s->writeCommitted = 1; /* no longer possible to write into this stream, @@ -277,101 +309,105 @@ static ZL_Report STREAM_referenceInternal( } ZL_Report STREAM_refConstBuffer( - ZL_Data* s, + Stream* s, const void* ref, ZL_Type type, size_t eltWidth, size_t eltCount) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(s); ZL_ASSERT(ZL_Refcount_null(&s->buffer)); ZL_ASSERT_NE(type, ZL_Type_string); if (eltCount > 0) ZL_ASSERT_NN(ref); - ZL_RET_R_IF_ERR(ZL_Refcount_initConstRef(&s->buffer, ref)); + ZL_ERR_IF_ERR(ZL_Refcount_initConstRef(&s->buffer, ref)); return STREAM_referenceInternal(s, type, eltWidth, eltCount, ref); } ZL_Report STREAM_refConstExtString( - ZL_Data* s, + Stream* s, const void* strBuffer, size_t bufferSize, const uint32_t* strLengths, size_t nbStrings) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(s); ZL_ASSERT(ZL_Refcount_null(&s->buffer)); ZL_ASSERT(ZL_Refcount_null(&s->stringLens)); - ZL_RET_R_IF( - stream_wrongInit, s->writeCommitted, "Stream already committed"); + ZL_ERR_IF(s->writeCommitted, stream_wrongInit, "Stream already committed"); if (nbStrings) ZL_ASSERT_NN(strLengths); - ZL_RET_R_IF_ERR(ZL_Refcount_initConstRef(&s->buffer, strBuffer)); - ZL_RET_R_IF_ERR(STREAM_referenceInternal( + ZL_ERR_IF_ERR(ZL_Refcount_initConstRef(&s->buffer, strBuffer)); + ZL_ERR_IF_ERR(STREAM_referenceInternal( s, ZL_Type_string, 1, bufferSize, strBuffer)); - ZL_RET_R_IF_ERR(ZL_Refcount_initConstRef(&s->stringLens, strLengths)); + ZL_ERR_IF_ERR(ZL_Refcount_initConstRef(&s->stringLens, strLengths)); s->eltsCapacity = nbStrings; - ZL_RET_R_IF_ERR(ZL_Data_commit(s, nbStrings)); + ZL_ERR_IF_ERR(STREAM_commit(s, nbStrings)); return ZL_returnSuccess(); } -ZL_Report STREAM_refMutBuffer( - ZL_Data* s, +ZL_Report STREAM_attachWritableBuffer( + Stream* s, void* ref, ZL_Type type, size_t eltWidth, size_t eltCount) { - ZL_DLOG(SEQ, "STREAM_refMutBuffer (eltCount=%zu)", eltCount); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_DLOG(SEQ, "STREAM_attachWritableBuffer (eltCount=%zu)", eltCount); ZL_ASSERT_NN(s); ZL_ASSERT(ZL_Refcount_null(&s->buffer)); ZL_ASSERT_NE(type, ZL_Type_string); // not supported ZL_ASSERT_GT(eltWidth, 0); if (eltCount > 0) ZL_ASSERT_NN(ref); - ZL_RET_R_IF_ERR(ZL_Refcount_initMutRef(&s->buffer, ref)); + ZL_ERR_IF_ERR(ZL_Refcount_initMutRef(&s->buffer, ref)); s->bufferCapacity = eltCount * eltWidth; - return STREAM_initWritableStream(s, type, eltWidth, eltCount); + return STREAM_typeAttachedBuffer(s, type, eltWidth, eltCount); } ZL_Report -STREAM_refMutStringLens(ZL_Data* s, uint32_t* stringLens, size_t eltsCapacity) +STREAM_refMutStringLens(Stream* s, uint32_t* stringLens, size_t eltsCapacity) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(s); - ZL_RET_R_IF_NE(streamType_incorrect, s->type, ZL_Type_string); - ZL_RET_R_IF_NOT(stream_wrongInit, ZL_Refcount_null(&s->stringLens)); + ZL_ERR_IF_NE(s->type, ZL_Type_string, streamType_incorrect); + ZL_ERR_IF_NOT(ZL_Refcount_null(&s->stringLens), stream_wrongInit); if (eltsCapacity > 0) ZL_ASSERT_NN(stringLens); - ZL_RET_R_IF_ERR(ZL_Refcount_initMutRef(&s->stringLens, stringLens)); + ZL_ERR_IF_ERR(ZL_Refcount_initMutRef(&s->stringLens, stringLens)); s->eltsCapacity = eltsCapacity; return ZL_returnSuccess(); } -ZL_Report STREAM_refMutRawBuffer(ZL_Data* s, void* rawBuf, size_t bufByteSize) +ZL_Report STREAM_attachRawBuffer(Stream* s, void* rawBuf, size_t bufByteSize) { - ZL_DLOG(SEQ, "STREAM_refMutRawBuffer (bufByteSize=%zu)", bufByteSize); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_DLOG(SEQ, "STREAM_attachRawBuffer (bufByteSize=%zu)", bufByteSize); ZL_ASSERT_NN(s); ZL_ASSERT(ZL_Refcount_null(&s->buffer)); if (bufByteSize > 0) ZL_ASSERT_NN(rawBuf); - ZL_RET_R_IF_ERR(ZL_Refcount_initMutRef(&s->buffer, rawBuf)); + ZL_ERR_IF_ERR(ZL_Refcount_initMutRef(&s->buffer, rawBuf)); s->bufferCapacity = bufByteSize; return ZL_returnSuccess(); } -ZL_Report STREAM_refStreamWithoutRefcount(ZL_Data* s, const ZL_Data* ref) +ZL_Report STREAM_refStreamWithoutRefCount(Stream* s, const Stream* ref) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(s); ZL_ASSERT_NN(ref); ZL_ASSERT(ref->writeCommitted); - ZL_RET_R_IF( - stream_wrongInit, s->writeCommitted, "Stream already committed"); + ZL_ERR_IF(s->writeCommitted, stream_wrongInit, "Stream already committed"); s->type = ref->type; - s->numElts = ref->numElts; + s->eltCount = ref->eltCount; s->eltWidth = ref->eltWidth; s->bufferCapacity = ref->bufferCapacity; s->bufferUsed = ref->bufferUsed; - s->lastCommmited = ref->numElts; + s->lastCommmited = ref->eltCount; s->writeCommitted = 1; // Copy the stream metadata @@ -387,9 +423,9 @@ ZL_Report STREAM_refStreamWithoutRefcount(ZL_Data* s, const ZL_Data* ref) } } - ZL_RET_R_IF_ERR(ZL_Refcount_initConstRef( + ZL_ERR_IF_ERR(ZL_Refcount_initConstRef( &s->buffer, ZL_Refcount_get(&ref->buffer))); - ZL_RET_R_IF_ERR(ZL_Refcount_initConstRef( + ZL_ERR_IF_ERR(ZL_Refcount_initConstRef( &s->stringLens, ZL_Refcount_get(&ref->stringLens))); // Turn our buffers into immutable references @@ -400,24 +436,25 @@ ZL_Report STREAM_refStreamWithoutRefcount(ZL_Data* s, const ZL_Data* ref) } ZL_Report STREAM_refStreamByteSlice( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, ZL_Type type, size_t offsetBytes, size_t eltWidth, size_t eltCount) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const streamBytes = STREAM_byteSize(src); size_t neededBytes; - ZL_RET_R_IF( - allocation, + ZL_ERR_IF( ZL_overflowMulST(eltCount, eltWidth, &neededBytes), - "Size overflows size_t"); - ZL_RET_R_IF( allocation, + "Size overflows size_t"); + ZL_ERR_IF( ZL_overflowAddST(offsetBytes, neededBytes, &neededBytes), + allocation, "Size overflows size_t"); - ZL_RET_R_IF_GT(allocation, neededBytes, streamBytes); + ZL_ERR_IF_GT(neededBytes, streamBytes, allocation); dst->buffer = ZL_Refcount_aliasOffset(&src->buffer, offsetBytes); // Turn our buffer into an immutable reference ZL_Refcount_constify(&dst->buffer); @@ -426,31 +463,32 @@ ZL_Report STREAM_refStreamByteSlice( } /** At this point, @p dst is expected to have been initialized with - * STREAM_refStreamWithoutRefcount(), which means it is by now a reference to + * STREAM_refStreamWithoutRefCount(), which means it is by now a reference to * the entire @p src. The work is to reduce the range to just the wanted slice. */ static ZL_Report STREAM_refStreamStringSlice( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, size_t startingEltNum, - size_t numElts) + size_t eltCount) { ZL_ASSERT_NN(src); - ZL_ASSERT_EQ(ZL_Data_type(src), ZL_Type_string); - ZL_ASSERT_GE(ZL_Data_numElts(src), startingEltNum + numElts); + ZL_ASSERT_EQ(STREAM_type(src), ZL_Type_string); + ZL_ASSERT_GE(STREAM_eltCount(src), startingEltNum + eltCount); uint64_t const skipped = NUMOP_sumArray32(ZL_Refcount_get(&src->stringLens), startingEltNum); uint64_t const totalStringSizes = NUMOP_sumArray32( (const uint32_t*)ZL_Refcount_get(&src->stringLens) + startingEltNum, - numElts); + eltCount); ZL_ASSERT_NN(dst); - ZL_ASSERT_EQ(ZL_Data_type(dst), ZL_Type_string); + ZL_ASSERT_EQ(STREAM_type(dst), ZL_Type_string); ZL_ASSERT(dst->buffer._ptr == src->buffer._ptr); - dst->buffer._ptr = (char*)dst->buffer._ptr + skipped; - ZL_ASSERT_GE(dst->numElts, numElts); - dst->numElts = numElts; - dst->lastCommmited = numElts; + dst->buffer._ptr = (char*)dst->buffer._ptr + skipped; + dst->stringLens._ptr = (uint32_t*)dst->stringLens._ptr + startingEltNum; + ZL_ASSERT_GE(dst->eltCount, eltCount); + dst->eltCount = eltCount; + dst->lastCommmited = eltCount; ZL_ASSERT_GE(dst->bufferCapacity, totalStringSizes); dst->bufferCapacity = totalStringSizes; dst->bufferUsed = totalStringSizes; @@ -461,67 +499,68 @@ static ZL_Report STREAM_refStreamStringSlice( /* Conditions: * All parameters are valid, notably: * - dst and src are != NULL - * - startingEltNum + numElts <= src.numElts + * - startingEltNum + eltCount <= src.eltCount */ ZL_Report STREAM_refStreamSliceWithoutRefCount( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, size_t startingEltNum, - size_t numElts) + size_t eltCount) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, - "STREAM_refStreamSliceWithoutRefCount (start:%zu, numElts=%zu)", + "STREAM_refStreamSliceWithoutRefCount (start:%zu, eltCount=%zu)", startingEltNum, - numElts); + eltCount); ZL_ASSERT_NN(src); - ZL_ASSERT_LE(startingEltNum + numElts, ZL_Data_numElts(src)); + ZL_ASSERT_LE(startingEltNum + eltCount, STREAM_eltCount(src)); ZL_ASSERT_NN(dst); - ZL_RET_R_IF_ERR(STREAM_refStreamWithoutRefcount(dst, src)); - if (numElts == ZL_Data_numElts(src)) + ZL_ERR_IF_ERR(STREAM_refStreamWithoutRefCount(dst, src)); + if (eltCount == STREAM_eltCount(src)) return ZL_returnSuccess(); - if (ZL_Data_type(src) == ZL_Type_string) { - return STREAM_refStreamStringSlice(dst, src, startingEltNum, numElts); + if (STREAM_type(src) == ZL_Type_string) { + return STREAM_refStreamStringSlice(dst, src, startingEltNum, eltCount); } - size_t const eltWidth = ZL_Data_eltWidth(dst); + size_t const eltWidth = STREAM_eltWidth(dst); ZL_ASSERT_NN(eltWidth); dst->buffer._ptr = (char*)dst->buffer._ptr + startingEltNum * eltWidth; - dst->numElts = numElts; - dst->lastCommmited = numElts; - dst->bufferCapacity = numElts * eltWidth; - dst->bufferUsed = numElts * eltWidth; + dst->eltCount = eltCount; + dst->lastCommmited = eltCount; + dst->bufferCapacity = eltCount * eltWidth; + dst->bufferUsed = eltCount * eltWidth; return ZL_returnSuccess(); } /* Conditions: * All parameters are valid, notably: * - dst and src are != NULL - * - startingEltNum <= src.numElts + * - startingEltNum <= src.eltCount */ ZL_Report STREAM_refEndStreamWithoutRefCount( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, size_t startingEltNum) { ZL_DLOG(SEQ, "STREAM_refStreamFrom (start:%zu)", startingEltNum); ZL_ASSERT_NN(src); - ZL_ASSERT_LE(startingEltNum, ZL_Data_numElts(src)); - size_t numElts = ZL_Data_numElts(src) - startingEltNum; + ZL_ASSERT_LE(startingEltNum, STREAM_eltCount(src)); + size_t eltCount = STREAM_eltCount(src) - startingEltNum; return STREAM_refStreamSliceWithoutRefCount( - dst, src, startingEltNum, numElts); + dst, src, startingEltNum, eltCount); } // ================================ // Accessors // ================================ -ZL_DataID ZL_Data_id(const ZL_Data* in) +ZL_DataID STREAM_id(const Stream* in) { return in->id; } -ZL_Type ZL_Data_type(const ZL_Data* in) +ZL_Type STREAM_type(const Stream* in) { ZL_ASSERT_NN(in); ZL_ASSERT( @@ -531,7 +570,7 @@ ZL_Type ZL_Data_type(const ZL_Data* in) return in->type; } -size_t ZL_Data_eltWidth(const ZL_Data* in) +size_t STREAM_eltWidth(const Stream* in) { ZL_ASSERT_NN(in); if (in->type == ZL_Type_string) @@ -539,25 +578,26 @@ size_t ZL_Data_eltWidth(const ZL_Data* in) return in->eltWidth; } -size_t STREAM_eltCapacity(const ZL_Data* in) +size_t STREAM_eltCapacity(const Stream* in) { ZL_ASSERT_NN(in); - return in->eltsCapacity - in->numElts; // remaining capacity + return in->eltsCapacity - in->eltCount; // remaining capacity } -size_t STREAM_byteCapacity(const ZL_Data* in) +size_t STREAM_byteCapacity(const Stream* in) { ZL_ASSERT_NN(in); + ZL_ASSERT_LE(in->bufferUsed, in->bufferCapacity); return in->bufferCapacity - in->bufferUsed; } -static ZL_RBuffer STREAM_lastCommittedStringLens(const ZL_Data* in) +static ZL_RBuffer STREAM_lastCommittedStringLens(const Stream* in) { ZL_ASSERT_NN(in); ZL_ASSERT(in->writeCommitted); size_t const numStrings = in->lastCommmited; - ZL_ASSERT_LE(numStrings, in->numElts); - size_t startElt = in->numElts - numStrings; + ZL_ASSERT_LE(numStrings, in->eltCount); + size_t startElt = in->eltCount - numStrings; if (in->stringLens._ptr == NULL) { ZL_ASSERT_EQ(startElt, 0); ZL_ASSERT_EQ(numStrings, 0); @@ -569,13 +609,13 @@ static ZL_RBuffer STREAM_lastCommittedStringLens(const ZL_Data* in) }; } -static ZL_RBuffer STREAM_lastCommittedStringContent(const ZL_Data* in) +static ZL_RBuffer STREAM_lastCommittedStringContent(const Stream* in) { ZL_ASSERT_NN(in); ZL_ASSERT(in->writeCommitted); size_t const numStrings = in->lastCommmited; - ZL_ASSERT_LE(numStrings, in->numElts); - size_t startElt = in->numElts - numStrings; + ZL_ASSERT_LE(numStrings, in->eltCount); + size_t startElt = in->eltCount - numStrings; uint64_t const totalStringsSize = NUMOP_sumArray32( (const uint32_t*)ZL_Refcount_get(&in->stringLens) + startElt, numStrings); @@ -586,40 +626,40 @@ static ZL_RBuffer STREAM_lastCommittedStringContent(const ZL_Data* in) }; } -static ZL_RBuffer STREAM_lastCommittedBufferContent(const ZL_Data* in) +static ZL_RBuffer STREAM_lastCommittedBufferContent(const Stream* in) { ZL_DLOG(SEQ, "STREAM_lastCommittedBufferContent"); ZL_ASSERT_NN(in); if (in->writeCommitted == 0) { - ZL_ASSERT_EQ(in->numElts, 0); + ZL_ASSERT_EQ(in->eltCount, 0); ZL_ASSERT_EQ(in->lastCommmited, 0); } - size_t const numElts = in->lastCommmited; - ZL_ASSERT_LE(numElts, in->numElts); - if (numElts == in->numElts) { + size_t const eltCount = in->lastCommmited; + ZL_ASSERT_LE(eltCount, in->eltCount); + if (eltCount == in->eltCount) { // easy solution: whole buffer return (ZL_RBuffer){ .start = in->buffer._ptr, .size = in->bufferUsed }; } /// return the last portion of @p in - if (ZL_Data_type(in) == ZL_Type_string) { + if (STREAM_type(in) == ZL_Type_string) { return STREAM_lastCommittedStringContent(in); } - size_t startElt = in->numElts - numElts; + size_t startElt = in->eltCount - eltCount; return (ZL_RBuffer){ .start = (char*)in->buffer._ptr + startElt * in->eltWidth, - .size = numElts * in->eltWidth, + .size = eltCount * in->eltWidth, }; } -size_t ZL_Data_numElts(const ZL_Data* in) +size_t STREAM_eltCount(const Stream* in) { ZL_ASSERT_NN(in); if (ZL_Refcount_mutable(&in->buffer)) - ZL_ASSERT_LE(in->numElts, in->eltsCapacity); - return in->numElts; + ZL_ASSERT_LE(in->eltCount, in->eltsCapacity); + return in->eltCount; } -size_t STREAM_byteSize(const ZL_Data* s) +size_t STREAM_byteSize(const Stream* s) { ZL_ASSERT_NN(s); if (!s->writeCommitted) { @@ -628,39 +668,34 @@ size_t STREAM_byteSize(const ZL_Data* s) * stream is not committed yet. It's still an open question how we would * like to advise users against this pattern. * For the time being, just answer 0. */ - ZL_ASSERT_EQ(s->numElts, 0); + ZL_ASSERT_EQ(s->eltCount, 0); ZL_ASSERT_EQ(s->bufferUsed, 0); ZL_ASSERT_EQ(s->lastCommmited, 0); return 0; } ZL_DLOG(SEQ, "STREAM_byteSize (bufferUsed=%zu)", s->bufferUsed); if (s->type != ZL_Type_string) { - ZL_ASSERT_EQ(s->bufferUsed, s->eltWidth * s->numElts); + ZL_ASSERT_EQ(s->bufferUsed, s->eltWidth * s->eltCount); } ZL_ASSERT_GE(s->bufferCapacity, s->bufferUsed); return s->bufferUsed; } -size_t ZL_Data_contentSize(const ZL_Data* s) -{ - return STREAM_byteSize(s); -} - -int STREAM_isCommitted(const ZL_Data* s) +int STREAM_isCommitted(const Stream* s) { ZL_ASSERT_NN(s); ZL_ASSERT(s->writeCommitted == 0 || s->writeCommitted == 1); return s->writeCommitted; } -const void* ZL_Data_rPtr(const ZL_Data* in) +const void* STREAM_rPtr(const Stream* in) { if (in == NULL || ZL_Refcount_null(&in->buffer)) return NULL; return ZL_Refcount_get(&in->buffer); } -void* ZL_Data_wPtr(ZL_Data* s) +void* STREAM_wPtr(Stream* s) { if (s == NULL || ZL_Refcount_null(&s->buffer)) return NULL; @@ -669,43 +704,44 @@ void* ZL_Data_wPtr(ZL_Data* s) return (char*)basePtr + s->bufferUsed; } -ZL_RBuffer STREAM_getRBuffer(const ZL_Data* s) +ZL_RBuffer STREAM_getRBuffer(const Stream* s) { ZL_ASSERT_NN(s); size_t const sizeInBytes = STREAM_byteSize(s); ZL_DLOG(SEQ, "STREAM_getRBuffer (size=%zu)", sizeInBytes); return (ZL_RBuffer){ - .start = ZL_Data_rPtr(s), + .start = STREAM_rPtr(s), .size = sizeInBytes, }; } -static size_t STREAM_getBufferCapacity(const ZL_Data* s) +static size_t STREAM_getBufferCapacity(const Stream* s) { ZL_ASSERT_NN(s); if (STREAM_byteCapacity(s)) { ZL_ASSERT_NULL(s->bufferUsed); - ZL_ASSERT_NULL(ZL_Data_numElts(s)); + ZL_ASSERT_NULL(STREAM_eltCount(s)); } ZL_ASSERT_LE(s->bufferUsed, s->bufferCapacity); return s->bufferCapacity - s->bufferUsed; } -ZL_WBuffer STREAM_getWBuffer(ZL_Data* s) +ZL_WBuffer STREAM_getWBuffer(Stream* s) { ZL_ASSERT_NN(s); - ZL_ASSERT_NN(ZL_Data_wPtr(s)); + ZL_ASSERT_NN(STREAM_wPtr(s)); return (ZL_WBuffer){ - .start = ZL_Data_wPtr(s), + .start = STREAM_wPtr(s), .capacity = STREAM_getBufferCapacity(s), }; } ZL_Report STREAM_hashLastCommit_xxh3low32( - const ZL_Data* streams[], + const Stream* streams[], size_t nbStreams, unsigned formatVersion) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "STREAM_hashLastCommit_xxh3low32 (nbStreams=%zu, formatVersion=%u)", nbStreams, @@ -713,10 +749,10 @@ ZL_Report STREAM_hashLastCommit_xxh3low32( ZL_ASSERT_GT(nbStreams, 0); ZL_ASSERT_NN(streams); XXH3_state_t xxh3; - ZL_RET_R_IF_NE(GENERIC, XXH3_64bits_reset(&xxh3), XXH_OK); + ZL_ERR_IF_NE(XXH3_64bits_reset(&xxh3), XXH_OK, GENERIC); for (size_t n = 0; n < nbStreams; n++) { // Hashing content only makes sense if content has been committed - ZL_RET_R_IF_NOT(GENERIC, STREAM_isCommitted(streams[n])); + ZL_ERR_IF_NOT(STREAM_isCommitted(streams[n]), GENERIC); // Numeric data might have a different endianness depending on the // platform which might lead to checksum errors. // For that reason, one convention must be selected, so that @@ -724,24 +760,24 @@ ZL_Report STREAM_hashLastCommit_xxh3low32( // The convention is Little-Endian. // For now, the library is not able calculate checksum on Numeric // input on non-little-endian platforms - if (ZL_Data_type(streams[n]) == ZL_Type_numeric) { - ZL_RET_R_IF_NOT( - temporaryLibraryLimitation, + if (STREAM_type(streams[n]) == ZL_Type_numeric) { + ZL_ERR_IF_NOT( ZL_isLittleEndian(), + temporaryLibraryLimitation, "Cannot calculate hash of numeric input on non little-endian platforms"); } ZL_RBuffer const rb = STREAM_lastCommittedBufferContent(streams[n]); - ZL_RET_R_IF_NE( - GENERIC, XXH3_64bits_update(&xxh3, rb.start, rb.size), XXH_OK); - if ((ZL_Data_type(streams[n]) == ZL_Type_string) + ZL_ERR_IF_NE( + XXH3_64bits_update(&xxh3, rb.start, rb.size), XXH_OK, GENERIC); + if ((STREAM_type(streams[n]) == ZL_Type_string) && (formatVersion >= 15)) { /** @note format v14 supports Type String, but did not checksum the * array of lengths (just skipping it) */ ZL_RBuffer const lcslb = STREAM_lastCommittedStringLens(streams[n]); - ZL_RET_R_IF_NE( - GENERIC, + ZL_ERR_IF_NE( XXH3_64bits_update(&xxh3, lcslb.start, lcslb.size), - XXH_OK); + XXH_OK, + GENERIC); } } uint32_t const hash = (uint32_t)XXH3_64bits_digest(&xxh3); @@ -752,71 +788,76 @@ ZL_Report STREAM_hashLastCommit_xxh3low32( // Actions // ********************************** -static ZL_Report STREAM_commitStrings(ZL_Data* s, size_t numStrings) +static ZL_Report STREAM_commitStrings(Stream* s, size_t numStrings) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "STREAM_commitStrings (numStrings=%zu)", numStrings); ZL_ASSERT_NN(s); ZL_ASSERT_EQ(s->type, ZL_Type_string); + const uint32_t* const stringLens = ZL_Refcount_get(&s->stringLens); - ZL_RET_R_IF_GT( - streamCapacity_tooSmall, + ZL_ERR_IF_GT( numStrings, s->eltsCapacity, - "Number of strings committed is greater than capacity"); - uint64_t const totalStringsSize = - NUMOP_sumArray32(ZL_Refcount_get(&s->stringLens), numStrings); - ZL_RET_R_IF_GT( streamCapacity_tooSmall, + "Number of strings committed is greater than capacity"); + uint64_t const totalStringsSize = NUMOP_sumArray32( + s->eltCount ? stringLens + s->eltCount : stringLens, numStrings); + ZL_ERR_IF_GT( totalStringsSize, (uint64_t)s->bufferCapacity, + streamCapacity_tooSmall, "Total string content size is greater than capacity"); // All conditions fulfilled : now set - s->numElts += numStrings; + s->eltCount += numStrings; s->lastCommmited = numStrings; s->bufferUsed += totalStringsSize; + ZL_ASSERT_LE(s->bufferUsed, s->bufferCapacity); s->writeCommitted = 1; return ZL_returnSuccess(); } -ZL_Report ZL_Data_commit(ZL_Data* s, size_t numElts) +ZL_Report STREAM_commit(Stream* s, size_t eltCount) { - ZL_DLOG(SEQ, "ZL_Data_commit (numElts=%zu)", numElts); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_DLOG(SEQ, "STREAM_commit (eltCount=%zu)", eltCount); ZL_ASSERT_NN(s); if (s->writeCommitted == 0) { - ZL_ASSERT_EQ(s->numElts, 0); + ZL_ASSERT_EQ(s->eltCount, 0); ZL_ASSERT_EQ(s->bufferUsed, 0); } - ZL_RET_R_IF_GT( - stream_wrongInit, - s->numElts + numElts, + ZL_ERR_IF_GT( + s->eltCount + eltCount, s->eltsCapacity, + stream_wrongInit, "Stream capacity too small"); if (s->type == ZL_Type_string) { - return STREAM_commitStrings(s, numElts); + return STREAM_commitStrings(s, eltCount); } // Not String type - s->numElts += numElts; - s->lastCommmited = numElts; - s->bufferUsed += numElts * s->eltWidth; + s->eltCount += eltCount; + s->lastCommmited = eltCount; + s->bufferUsed += eltCount * s->eltWidth; + ZL_ASSERT_LE(s->bufferUsed, s->bufferCapacity); s->writeCommitted = 1; - ZL_DLOG(SEQ, "ZL_Data_commit: new total numElts=%zu", s->numElts); + ZL_DLOG(SEQ, "STREAM_commit: new total eltCount=%zu", s->eltCount); return ZL_returnSuccess(); } -const uint32_t* ZL_Data_rStringLens(const ZL_Data* stream) +const uint32_t* STREAM_rStringLens(const Stream* stream) { ZL_ASSERT_NN(stream); - if (stream->type != ZL_Type_string) { + if (STREAM_type(stream) != ZL_Type_string) { return NULL; } return ZL_Refcount_get(&stream->stringLens); } -uint32_t* ZL_Data_wStringLens(ZL_Data* stream) +uint32_t* STREAM_wStringLens(Stream* stream) { ZL_ASSERT_NN(stream); - if (stream->type != ZL_Type_string) { + if (STREAM_type(stream) != ZL_Type_string) { // Note(@Cyan): in some future, we might be able to attach the error log // to the @p stream object, for later retrieval ZL_DLOG(ERROR, @@ -827,99 +868,97 @@ uint32_t* ZL_Data_wStringLens(ZL_Data* stream) return NULL; } if (stream->writeCommitted == 0) { - ZL_ASSERT(stream->numElts == 0); + ZL_ASSERT(stream->eltCount == 0); } - return (uint32_t*)ZL_Refcount_getMut(&stream->stringLens) + stream->numElts; + return (uint32_t*)ZL_Refcount_getMut(&stream->stringLens) + + stream->eltCount; } -void STREAM_clear(ZL_Data* s) +void STREAM_clear(Stream* s) { ZL_ASSERT_NN(s); s->writeCommitted = 0; - s->numElts = 0; + s->eltCount = 0; s->lastCommmited = 0; s->bufferUsed = 0; } /* Only works for elts of fixed width */ static ZL_Report STREAM_addElts( - ZL_Data* dst, + Stream* dst, const void* eltBuffer, - size_t numElts, + size_t eltCount, size_t eltWidth) { - ZL_DLOG(SEQ, "STREAM_addElts (numElts=%zu)", numElts); + ZL_DLOG(SEQ, "STREAM_addElts (eltCount=%zu)", eltCount); ZL_ASSERT_NN(dst); - ZL_ASSERT_NE(ZL_Data_type(dst), ZL_Type_string); + ZL_ASSERT_NE(STREAM_type(dst), ZL_Type_string); ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ERR_IF_NE( dst->eltWidth, eltWidth, parameter_invalid, "invalid width: must be identical to target stream"); - ZL_ERR_IF_GT(numElts, STREAM_eltCapacity(dst), dstCapacity_tooSmall); - size_t addedSize = numElts * eltWidth; + ZL_ERR_IF_GT(eltCount, STREAM_eltCapacity(dst), dstCapacity_tooSmall); + size_t addedSize = eltCount * eltWidth; if (dst->writeCommitted == 0) { ZL_ASSERT_EQ(dst->bufferUsed, 0); - ZL_ASSERT_EQ(dst->numElts, 0); + ZL_ASSERT_EQ(dst->eltCount, 0); } if (addedSize > 0) { ZL_ASSERT_LE(dst->bufferUsed, dst->bufferCapacity); - ZL_memcpy(ZL_Data_wPtr(dst), eltBuffer, addedSize); + ZL_memcpy(STREAM_wPtr(dst), eltBuffer, addedSize); } - return ZL_Data_commit(dst, numElts); + return STREAM_commit(dst, eltCount); } /* append variant dedicated to String Type */ -static ZL_Report STREAM_appendStrings(ZL_Data* dst, const ZL_Data* src) +static ZL_Report STREAM_appendStrings(Stream* dst, const Stream* src) { ZL_ASSERT_NN(dst); ZL_ASSERT_NN(src); - ZL_ASSERT_EQ(ZL_Data_type(dst), ZL_Type_string); - ZL_ASSERT_EQ(ZL_Data_type(src), ZL_Type_string); + ZL_ASSERT_EQ(STREAM_type(dst), ZL_Type_string); + ZL_ASSERT_EQ(STREAM_type(src), ZL_Type_string); ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); - size_t const numStrings = ZL_Data_numElts(src); + size_t const numStrings = STREAM_eltCount(src); ZL_ERR_IF_GT(numStrings, STREAM_eltCapacity(dst), dstCapacity_tooSmall); size_t const toCopy = STREAM_byteSize(src); ZL_ERR_IF_GT(toCopy, STREAM_byteCapacity(dst), dstCapacity_tooSmall); if (numStrings > 0) { - ZL_memcpy(ZL_Data_wPtr(dst), ZL_Data_rPtr(src), toCopy); + ZL_memcpy(STREAM_wPtr(dst), STREAM_rPtr(src), toCopy); ZL_memcpy( - ZL_Data_wStringLens(dst), - ZL_Data_rStringLens(src), + STREAM_wStringLens(dst), + STREAM_rStringLens(src), numStrings * sizeof(uint32_t)); } - return ZL_Data_commit(dst, numStrings); + return STREAM_commit(dst, numStrings); } -ZL_Report STREAM_append(ZL_Data* dst, const ZL_Data* src) +ZL_Report STREAM_append(Stream* dst, const Stream* src) { ZL_ASSERT_NN(src); - ZL_DLOG(SEQ, "STREAM_append (numElts=%zu)", ZL_Data_numElts(src)); + ZL_DLOG(SEQ, "STREAM_append (eltCount=%zu)", STREAM_eltCount(src)); ZL_ASSERT_NN(dst); ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ERR_IF_NE( - ZL_Data_type(dst), - ZL_Data_type(src), + STREAM_type(dst), + STREAM_type(src), parameter_invalid, "invalid type: must be identical to target stream"); - if (ZL_Data_type(dst) == ZL_Type_string) { + if (STREAM_type(dst) == ZL_Type_string) { return STREAM_appendStrings(dst, src); } /* serial, struct and numeric */ return STREAM_addElts( - dst, - ZL_Data_rPtr(src), - ZL_Data_numElts(src), - ZL_Data_eltWidth(src)); + dst, STREAM_rPtr(src), STREAM_eltCount(src), STREAM_eltWidth(src)); } -ZL_Report STREAM_copyBytes(ZL_Data* dst, const ZL_Data* src, size_t size) +ZL_Report STREAM_copyBytes(Stream* dst, const Stream* src, size_t size) { ZL_DLOG(BLOCK, "STREAM_copyBytes (%zu bytes)", size); ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(dst); - size_t const eltWidth = ZL_Data_eltWidth(dst); + size_t const eltWidth = STREAM_eltWidth(dst); size_t const dstCapacity = STREAM_byteCapacity(dst); ZL_ASSERT_NN(src); size_t const srcSizeMax = STREAM_byteSize(src); @@ -928,90 +967,101 @@ ZL_Report STREAM_copyBytes(ZL_Data* dst, const ZL_Data* src, size_t size) // size must be a strict multiple of eltWidth ZL_ASSERT(eltWidth != 0); ZL_ERR_IF_NE(size % eltWidth, 0, parameter_invalid); - size_t const numElts = size / eltWidth; - return STREAM_addElts(dst, ZL_Data_rPtr(src), numElts, eltWidth); + size_t const eltCount = size / eltWidth; + return STREAM_addElts(dst, STREAM_rPtr(src), eltCount, eltWidth); } -ZL_Report STREAM_copyStringStream(ZL_Data* dst, const ZL_Data* src) +ZL_Report STREAM_copyStringStream(Stream* dst, const Stream* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(dst); ZL_ASSERT_NN(src); ZL_ASSERT(!STREAM_hasBuffer(dst)); - ZL_ASSERT_EQ(ZL_Data_type(src), ZL_Type_string); - size_t const nbStrings = ZL_Data_numElts(src); - size_t const stringsTotalSize = ZL_Data_contentSize(src); + ZL_ASSERT_EQ(STREAM_type(src), ZL_Type_string); + size_t const nbStrings = STREAM_eltCount(src); + size_t const stringsTotalSize = STREAM_byteSize(src); - ZL_RET_R_IF_ERR(STREAM_reserve(dst, ZL_Type_string, 1, stringsTotalSize)); + ZL_ERR_IF_ERR(STREAM_reserve(dst, ZL_Type_string, 1, stringsTotalSize)); - uint32_t* const lens = ZL_Data_reserveStringLens(dst, nbStrings); - ZL_RET_R_IF_NULL(allocation, lens); + uint32_t* const lens = STREAM_reserveStringLens(dst, nbStrings); + ZL_ERR_IF_NULL(lens, allocation); - ZL_memcpy(ZL_Data_wPtr(dst), ZL_Data_rPtr(src), stringsTotalSize); - ZL_memcpy(lens, ZL_Data_rStringLens(src), nbStrings * sizeof(uint32_t)); + size_t lensSize; + ZL_ERR_IF( + ZL_overflowMulST(nbStrings, sizeof(uint32_t), &lensSize), + allocation, + "String lengths size overflows size_t"); + + ZL_memcpy(STREAM_wPtr(dst), STREAM_rPtr(src), stringsTotalSize); + ZL_memcpy(lens, STREAM_rStringLens(src), lensSize); - ZL_RET_R_IF_ERR(ZL_Data_commit(dst, nbStrings)); + ZL_ERR_IF_ERR(STREAM_commit(dst, nbStrings)); return ZL_returnValue(stringsTotalSize); } -static ZL_Report STREAM_copyIntMetas(ZL_Data* dst, const ZL_Data* src) +static ZL_Report STREAM_copyIntMetas(Stream* dst, const Stream* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(dst); ZL_ASSERT_NN(src); size_t const meta_size = VECTOR_SIZE(src->intMetas); VECTOR_CLEAR(dst->intMetas); - ZL_RET_R_IF_LT( - allocation, VECTOR_RESERVE(dst->intMetas, meta_size), meta_size); + ZL_ERR_IF_LT( + VECTOR_RESERVE(dst->intMetas, meta_size), meta_size, allocation); for (size_t pos = 0; pos < meta_size; pos++) { IntMeta e = VECTOR_AT(src->intMetas, pos); - ZL_RET_R_IF_NOT(allocation, VECTOR_PUSHBACK(dst->intMetas, e)); + ZL_ERR_IF_NOT(VECTOR_PUSHBACK(dst->intMetas, e), allocation); } return ZL_returnSuccess(); } -ZL_Report STREAM_copy(ZL_Data* dst, const ZL_Data* src) +ZL_Report STREAM_copy(Stream* dst, const Stream* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT(!STREAM_hasBuffer(dst)); ZL_ASSERT(src->writeCommitted); - const ZL_Type type = ZL_Data_type(src); + const ZL_Type type = STREAM_type(src); - ZL_RET_R_IF_ERR(STREAM_copyIntMetas(dst, src)); + ZL_ERR_IF_ERR(STREAM_copyIntMetas(dst, src)); if (type == ZL_Type_string) { return STREAM_copyStringStream(dst, src); } - ZL_RET_R_IF_ERR(STREAM_reserve( - dst, type, ZL_Data_eltWidth(src), ZL_Data_numElts(src))); - ZL_RET_R_IF_ERR(STREAM_copyBytes(dst, src, ZL_Data_contentSize(src))); + ZL_ERR_IF_ERR(STREAM_reserve( + dst, type, STREAM_eltWidth(src), STREAM_eltCount(src))); + ZL_ERR_IF_ERR(STREAM_copyBytes(dst, src, STREAM_byteSize(src))); return ZL_returnSuccess(); } // data must be valid -// numElts must be <= numElts(data) -static ZL_Report STREAM_consumeStrings(ZL_Data* data, size_t numElts) +// eltCount must be <= eltCount(data) +static ZL_Report STREAM_consumeStrings(Stream* data, size_t eltCount) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(data); - ZL_ASSERT_LE(numElts, ZL_Data_numElts(data)); + ZL_ASSERT_LE(eltCount, STREAM_eltCount(data)); // unfinished - ZL_RET_R_IF(GENERIC, 1); + ZL_ERR_IF(1, GENERIC); } // data must be valid -// numElts must be <= numElts(data) -ZL_Report STREAM_consume(ZL_Data* data, size_t numElts) +// eltCount must be <= eltCount(data) +ZL_Report STREAM_consume(Stream* data, size_t eltCount) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(data); ZL_ASSERT_EQ(data->writeCommitted, 1); - ZL_RET_R_IF_GT(parameter_invalid, numElts, ZL_Data_numElts(data)); - if (ZL_Data_type(data) == ZL_Type_string) - return STREAM_consumeStrings(data, numElts); - size_t eltSize = ZL_Data_eltWidth(data); - data->buffer._ptr = (char*)data->buffer._ptr + (numElts * eltSize); - data->numElts -= numElts; - data->bufferCapacity = data->numElts * eltSize; + ZL_ERR_IF_GT(eltCount, STREAM_eltCount(data), parameter_invalid); + if (STREAM_type(data) == ZL_Type_string) + return STREAM_consumeStrings(data, eltCount); + size_t eltSize = STREAM_eltWidth(data); + data->buffer._ptr = (char*)data->buffer._ptr + (eltCount * eltSize); + data->eltCount -= eltCount; + data->bufferCapacity = data->eltCount * eltSize; return ZL_returnSuccess(); } @@ -1032,30 +1082,31 @@ static int findIntMeta(VECTOR(IntMeta) m, int id) return -1; } -ZL_Report ZL_Data_setIntMetadata(ZL_Data* s, int mId, int mValue) +ZL_Report STREAM_setIntMetadata(Stream* s, int mId, int mValue) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(s); // Currently forbids setting same metadata ID multiple times - ZL_RET_R_IF_NE( - streamParameter_invalid, + ZL_ERR_IF_NE( findIntMeta(s->intMetas, mId), -1, + streamParameter_invalid, "Int Metadata ID already present"); - ZL_RET_R_IF_NOT( - allocation, - VECTOR_PUSHBACK(s->intMetas, ((IntMeta){ mId, mValue }))); + ZL_ERR_IF_NOT( + VECTOR_PUSHBACK(s->intMetas, ((IntMeta){ mId, mValue })), + allocation); return ZL_returnSuccess(); } -#define ZS2_INTMETADATA_NOT_PRESENT (-1) -ZL_IntMetadata ZL_Data_getIntMetadata(const ZL_Data* s, int mId) +#define ZL_INTMETADATA_NOT_PRESENT (-1) +ZL_IntMetadata STREAM_getIntMetadata(const Stream* s, int mId) { ZL_ASSERT_NN(s); int const idx = findIntMeta(s->intMetas, mId); if (idx < 0) return (ZL_IntMetadata){ .isPresent = 0, - .mValue = ZS2_INTMETADATA_NOT_PRESENT, + .mValue = ZL_INTMETADATA_NOT_PRESENT, }; return (ZL_IntMetadata){ .isPresent = 1, @@ -1063,11 +1114,80 @@ ZL_IntMetadata ZL_Data_getIntMetadata(const ZL_Data* s, int mId) }; } -int STREAM_hasBuffer(const ZL_Data* s) +int STREAM_hasBuffer(const Stream* s) { return !ZL_Refcount_null(&s->buffer); } +// -------------------------------- +// ZL_Data compatibility wrappers +// -------------------------------- + +uint32_t* ZL_Data_reserveStringLens(ZL_Data* stream, size_t nbStrings) +{ + return STREAM_reserveStringLens(stream, nbStrings); +} + +ZL_DataID ZL_Data_id(const ZL_Data* data) +{ + return STREAM_id(data); +} + +ZL_Type ZL_Data_type(const ZL_Data* data) +{ + return STREAM_type(data); +} + +size_t ZL_Data_eltWidth(const ZL_Data* data) +{ + return STREAM_eltWidth(data); +} + +size_t ZL_Data_numElts(const ZL_Data* data) +{ + return STREAM_eltCount(data); +} + +size_t ZL_Data_contentSize(const ZL_Data* data) +{ + return STREAM_byteSize(data); +} + +const void* ZL_Data_rPtr(const ZL_Data* data) +{ + return STREAM_rPtr(data); +} + +void* ZL_Data_wPtr(ZL_Data* data) +{ + return STREAM_wPtr(data); +} + +ZL_Report ZL_Data_commit(ZL_Data* data, size_t eltCount) +{ + return STREAM_commit(data, eltCount); +} + +const uint32_t* ZL_Data_rStringLens(const ZL_Data* stream) +{ + return STREAM_rStringLens(stream); +} + +uint32_t* ZL_Data_wStringLens(ZL_Data* stream) +{ + return STREAM_wStringLens(stream); +} + +ZL_Report ZL_Data_setIntMetadata(ZL_Data* stream, int mId, int mValue) +{ + return STREAM_setIntMetadata(stream, mId, mValue); +} + +ZL_IntMetadata ZL_Data_getIntMetadata(const ZL_Data* stream, int mId) +{ + return STREAM_getIntMetadata(stream, mId); +} + /* ====== TypedBuffer interface ====== */ /* Note: for the time being, TypedBuffer is the same as Stream. @@ -1088,7 +1208,7 @@ ZL_TypedBuffer* ZL_TypedBuffer_createWrapString( uint32_t* lenBuffer, size_t maxNumStrings) { - ZL_Data* const stream = STREAM_create(ZL_DATA_ID_INPUTSTREAM); + Stream* const stream = STREAM_create(ZL_DATA_ID_INPUTSTREAM); if (stream == NULL) return NULL; ZL_ASSERT(ZL_Refcount_null(&stream->buffer)); @@ -1110,12 +1230,13 @@ ZL_TypedBuffer* ZL_TypedBuffer_createWrapString( } static ZL_TypedBuffer* -ZL_wrapGeneric(ZL_Type type, size_t eltWidth, size_t numElts, void* src) +ZL_wrapGeneric(ZL_Type type, size_t eltWidth, size_t eltCapacity, void* buffer) { - ZL_Data* const stream = STREAM_create(ZL_DATA_ID_INPUTSTREAM); + Stream* const stream = STREAM_create(ZL_DATA_ID_INPUTSTREAM); if (stream == NULL) return NULL; - ZL_Report ret = STREAM_refMutBuffer(stream, src, type, eltWidth, numElts); + ZL_Report const ret = STREAM_attachWritableBuffer( + stream, buffer, type, eltWidth, eltCapacity); if (ZL_isError(ret)) { STREAM_free(stream); return NULL; @@ -1126,33 +1247,38 @@ ZL_wrapGeneric(ZL_Type type, size_t eltWidth, size_t numElts, void* src) ZL_Report ZL_Output_eltWidth(const ZL_Output* output) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (ZL_Output_type(output) != ZL_Type_string) { - ZL_RET_R_IF_EQ(outputNotReserved, output->data.eltWidth, 0); + ZL_ERR_IF_EQ(output->data.eltWidth, 0, outputNotReserved); } return ZL_returnValue(output->data.eltWidth); } ZL_Report ZL_Output_numElts(const ZL_Output* output) { - ZL_RET_R_IF_EQ(outputNotCommitted, output->data.writeCommitted, 0); - return ZL_returnValue(output->data.numElts); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_EQ(output->data.writeCommitted, 0, outputNotCommitted); + return ZL_returnValue(output->data.eltCount); } ZL_Report ZL_Output_contentSize(const ZL_Output* output) { - ZL_RET_R_IF_NOT(outputNotCommitted, STREAM_isCommitted(&output->data)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_NOT(STREAM_isCommitted(&output->data), outputNotCommitted); return ZL_returnValue(STREAM_byteSize(&output->data)); } ZL_Report ZL_Output_eltsCapacity(const ZL_Output* output) { - ZL_RET_R_IF(outputNotReserved, !STREAM_hasBuffer(&output->data)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF(!STREAM_hasBuffer(&output->data), outputNotReserved); return ZL_returnValue(output->data.eltsCapacity); } ZL_Report ZL_Output_contentCapacity(const ZL_Output* output) { - ZL_RET_R_IF(outputNotReserved, !STREAM_hasBuffer(&output->data)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF(!STREAM_hasBuffer(&output->data), outputNotReserved); return ZL_returnValue(output->data.bufferCapacity); } @@ -1162,15 +1288,15 @@ ZL_TypedBuffer* ZL_TypedBuffer_createWrapSerial(void* src, size_t srcSize) } ZL_TypedBuffer* -ZL_TypedBuffer_createWrapStruct(void* src, size_t eltWidth, size_t numElts) +ZL_TypedBuffer_createWrapStruct(void* src, size_t eltWidth, size_t eltCount) { - return ZL_wrapGeneric(ZL_Type_struct, eltWidth, numElts, src); + return ZL_wrapGeneric(ZL_Type_struct, eltWidth, eltCount, src); } ZL_TypedBuffer* -ZL_TypedBuffer_createWrapNumeric(void* src, size_t eltWidth, size_t numElts) +ZL_TypedBuffer_createWrapNumeric(void* src, size_t eltWidth, size_t eltCount) { - return ZL_wrapGeneric(ZL_Type_numeric, eltWidth, numElts, src); + return ZL_wrapGeneric(ZL_Type_numeric, eltWidth, eltCount, src); } void ZL_TypedBuffer_free(ZL_TypedBuffer* tbuffer) @@ -1180,17 +1306,17 @@ void ZL_TypedBuffer_free(ZL_TypedBuffer* tbuffer) ZL_Type ZL_TypedBuffer_type(const ZL_TypedBuffer* tbuffer) { - return ZL_Data_type(ZL_codemodConstOutputAsData(tbuffer)); + return STREAM_type(ZL_codemodConstOutputAsData(tbuffer)); } const void* ZL_TypedBuffer_rPtr(const ZL_TypedBuffer* tbuffer) { - return ZL_Data_rPtr(ZL_codemodConstOutputAsData(tbuffer)); + return STREAM_rPtr(ZL_codemodConstOutputAsData(tbuffer)); } size_t ZL_TypedBuffer_numElts(const ZL_TypedBuffer* tbuffer) { - return ZL_Data_numElts(ZL_codemodConstOutputAsData(tbuffer)); + return STREAM_eltCount(ZL_codemodConstOutputAsData(tbuffer)); } size_t ZL_TypedBuffer_byteSize(const ZL_TypedBuffer* tbuffer) @@ -1200,10 +1326,10 @@ size_t ZL_TypedBuffer_byteSize(const ZL_TypedBuffer* tbuffer) size_t ZL_TypedBuffer_eltWidth(const ZL_TypedBuffer* tbuffer) { - return ZL_Data_eltWidth(ZL_codemodConstOutputAsData(tbuffer)); + return STREAM_eltWidth(ZL_codemodConstOutputAsData(tbuffer)); } const uint32_t* ZL_TypedBuffer_rStringLens(const ZL_TypedBuffer* tbuffer) { - return ZL_Data_rStringLens(ZL_codemodConstOutputAsData(tbuffer)); + return STREAM_rStringLens(ZL_codemodConstOutputAsData(tbuffer)); } diff --git a/src/openzl/common/stream.h b/src/openzl/common/stream.h index 174cb7f74..d0caa2051 100644 --- a/src/openzl/common/stream.h +++ b/src/openzl/common/stream.h @@ -2,198 +2,283 @@ #ifndef ZSTRONG_COMMON_STREAM_H #define ZSTRONG_COMMON_STREAM_H +/** Implements methods associated with ZL_Data. */ -// Implement methods associated with ZL_Data - -#include "openzl/common/allocation.h" // Allocator* -#include "openzl/common/vector.h" -#include "openzl/shared/portability.h" -#include "openzl/zl_buffer.h" // ZL_RBuffer -#include "openzl/zl_data.h" // ZL_Data, ZL_Type -#include "openzl/zl_errors.h" -#include "openzl/zl_opaque_types.h" +#include "openzl/common/allocation.h" // Allocator* +#include "openzl/common/vector.h" // DECLARE_VECTOR_POINTERS_TYPE +#include "openzl/shared/portability.h" // ZL_BEGIN_C_DECLS +#include "openzl/zl_buffer.h" // ZL_RBuffer/ZL_WBuffer +#include "openzl/zl_data.h" // ZL_Data, ZL_Type +#include "openzl/zl_errors.h" // ZL_Report codes +#include "openzl/zl_opaque_types.h" // Stream forward decls ZL_BEGIN_C_DECLS -// ------------------------------------------------------- -// Public symbols: declared in zs2_data.h -// ------------------------------------------------------- - -// --------------------------------------------------- -// Private (internal) symbols for ZL_Data objects -// --------------------------------------------------- - +/** + * Convenience typedefs so downstream units can use VECTOR_POINTERS(ZL_Data) or + * VECTOR_CONST_POINTERS(ZL_Data) without redeclaring them. These do not expose + * additional Stream functionality. + */ DECLARE_VECTOR_POINTERS_TYPE(ZL_Data) DECLARE_VECTOR_CONST_POINTERS_TYPE(ZL_Data) -ZL_Data* STREAM_create(ZL_DataID id); -ZL_Data* STREAM_createInArena(Arena* a, ZL_DataID id); -void STREAM_free(ZL_Data* s); +/** + * Internal Stream interface. + * + * Public callers should continue to rely on the ZL_Data_* façade declared in + * include/openzl/zl_data.h. Those entry points forward to the STREAM_* symbols + * below. New internal code should prefer STREAM_* so that future refactors only + * have to update a single namespace. + */ -// Allocate a typed buffer -ZL_Report -STREAM_reserve(ZL_Data* s, ZL_Type type, size_t eltWidth, size_t eltCount); +/** + * Stream lifecycle helpers (typical usage): + * + * Producer: + * 1. STREAM_create()/STREAM_createInArena() + * 2. STREAM_reserve()/STREAM_attach*() to obtain a writable buffer + * 3. Populate the buffer via STREAM_wPtr()/STREAM_wStringLens() + * 4. STREAM_commit() to publish `numElts`, STREAM_clear() to reuse + * + * Consumer: + * 1. STREAM_create()/STREAM_ref*() to attach to a committed source + * 2. Inspect metadata (STREAM_type(), STREAM_eltCount(), etc.) + * 3. Read through STREAM_rPtr()/STREAM_rStringLens() + * + * Strings: + * - Reserve lengths with STREAM_reserveStrings()/STREAM_reserveStringLens() + * - Attach external length arrays via STREAM_refMutStringLens() + */ -// Allocate a raw buffer, to be typed later -ZL_Report STREAM_reserveRawBuffer(ZL_Data* s, size_t byteCapacity); +/** + * Allocate or destroy stream handles. + * STREAM_create() uses an internal heap-backed arena and returns an + * initialized stream tagged with @p id (NULL on failure). + * STREAM_createInArena() binds the stream to caller-managed @p a, which must + * outlive the stream. + * STREAM_free() releases buffers and returns arena memory; safe on NULL. + */ +Stream* STREAM_create(ZL_DataID id); +Stream* STREAM_createInArena(Arena* a, ZL_DataID id); +void STREAM_free(Stream* s); -// Allocate internal buffers, only for String type +/** Allocate a typed buffer. */ ZL_Report -STREAM_reserveStrings(ZL_Data* s, size_t numStrings, size_t bufferCapacity); +STREAM_reserve(Stream* s, ZL_Type type, size_t eltWidth, size_t eltCount); + +/** Allocate a raw buffer to be typed later. */ +ZL_Report STREAM_reserveRawBuffer(Stream* s, size_t byteCapacity); + +/* ====================================================================== */ +/* Writable references: attach to external buffers or type owned storage. */ + +/** + * Initialize a new stream as a writable reference into an externally owned + * buffer and set its type. + * Typically used for the last decompression stream (write output). + */ +ZL_Report STREAM_attachWritableBuffer( + Stream* s, + void* buffer, + ZL_Type type, + size_t eltWidth, + size_t eltCapacity); + +/** + * Initialize a new stream as a writable reference into an externally owned + * buffer without yet setting its type. + * The buffer will be typed later, once the output type is known, using + * STREAM_typeAttachedBuffer(). + * Typically used for the last decompression stream (write output). + */ +ZL_Report STREAM_attachRawBuffer(Stream* s, void* rawBuf, size_t bufByteSize); + +/** + * Type a stream that already owns or references a buffer + * but has not yet been typed. + * @pre @p s references a writable buffer sized at least + * @p eltWidth * @p eltCapacity bytes. + */ +ZL_Report STREAM_typeAttachedBuffer( + Stream* s, + ZL_Type type, + size_t eltWidth, + size_t eltCapacity); + +/* ========================================================= */ +/* Read-only references and type tagging to external buffers */ /** * References the contents of @p src into @p dst as a read-only reference. * All original properties (type, size, metadata) are referenced. */ -ZL_Report STREAM_refStreamWithoutRefcount(ZL_Data* dst, const ZL_Data* src); +ZL_Report STREAM_refStreamWithoutRefCount(Stream* dst, const Stream* src); -// Init new stream, as read-only reference of a slice into an existing stream. -// The type of the reference can be different from the source. -// The slice is provided using byte length. -// It only takes care of the buffer portion of the Stream. -// String type must still take care of the array of Lenghts. +/** + * Initialize @p dst as a read-only slice of @p src using byte offsets. + * The reference may reinterpret the element type. + * Only the primary buffer is referenced; string streams must manage length data + * separately. + */ ZL_Report STREAM_refStreamByteSlice( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, ZL_Type type, size_t offsetBytes, size_t eltWidth, size_t eltCount); /** - * @p dst references a slice of @p src - * of size @p numElts, - * starting from element @p startingEltNum. - * The type remains the same. - * Only suitable to read into stable @p src, like user Input. - * All parameters must be valid, - * in particular, startingEltNum + numElts <= src.numElts + * @p dst references a slice of @p src spanning @p numElts elements starting at + * @p startingEltNum. The type remains unchanged. + * Only safe when @p src stays stable (e.g. input buffers). + * Callers must ensure startingEltNum + numElts <= src.numElts. */ ZL_Report STREAM_refStreamSliceWithoutRefCount( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, size_t startingEltNum, size_t numElts); /** - * @p dst references the latter part of @p src - * starting from element @p startingEltNum. - * Only suitable to read into stable @p src, like user Input. - * All parameters must be valid, - * in particular, startingEltNum <= src.numElts + * @p dst references the tail of @p src starting at element @p startingEltNum. + * Only safe when @p src remains stable (e.g. input buffers). + * Callers must ensure startingEltNum <= src.numElts. */ ZL_Report STREAM_refEndStreamWithoutRefCount( - ZL_Data* dst, - const ZL_Data* src, + Stream* dst, + const Stream* src, size_t startingEltNum); -// Init a new stream, as a read-only reference into an externally owned buffer -// and Type it. -// Typically used for the first compression stream (read input) +/** + * Initialize a new stream as a read-only reference into an externally owned + * buffer and set its type. + * Typically used for the first compression stream (read input). + */ ZL_Report STREAM_refConstBuffer( - ZL_Data* s, + Stream* s, const void* ref, ZL_Type type, size_t eltWidth, size_t eltCount); -// Init a new stream, as a writable reference into an externally owned buffer -// and Type it. -// Typically used for the last decompression stream (write output) -ZL_Report STREAM_refMutBuffer( - ZL_Data* s, - void* buffer, - ZL_Type type, - size_t eltWidth, - size_t eltCapacity); +/* =================================================================== */ +/* String type helpers: utilities dedicated to ZL_Type_string streams. */ -// Complete an existing stream of type String -// and provide a buffer for the array of String Lengths. -// The Stream must be already initialized and typed, -// but not have received or allocated a buffer for String Lengths. -// Typically used for the last decompression stream (write output) +/** Allocate internal buffers specifically for string streams. */ ZL_Report -STREAM_refMutStringLens(ZL_Data* s, uint32_t* stringLens, size_t eltsCapacity); - -// Init a new stream, as a writable reference into an externally owned buffer, -// but do not initialize its type yet. -// The buffer will be typed later, on discovering the output type, -// using STREAM_initWritableStream(). -// Typically used for the last decompression stream (write output) -ZL_Report STREAM_refMutRawBuffer(ZL_Data* s, void* rawBuf, size_t bufByteSize); - -// Type a Stream which already owns or references a buffer. -// Typically used for the last stream (write output) -ZL_Report STREAM_initWritableStream( - ZL_Data* s, - ZL_Type type, - size_t eltWidth, - size_t eltCapacity); +STREAM_reserveStrings(Stream* s, size_t numStrings, size_t bufferCapacity); -// Init a new stream, as a read-only reference into externally owned buffers -// representing Strings in flat format. Typically used for the first stream -// (read input) +/** + * Initialize a new stream as a read-only reference into externally owned + * buffers representing strings in flat format. + * Typically used for the first stream (read input). + */ ZL_Report STREAM_refConstExtString( - ZL_Data* s, + Stream* s, const void* strBuffer, size_t bufferSize, const uint32_t* strLengths, size_t nbStrings); -// Accessors -int STREAM_hasBuffer(const ZL_Data* s); -size_t STREAM_byteSize(const ZL_Data* s); -ZL_RBuffer STREAM_getRBuffer(const ZL_Data* s); -ZL_WBuffer STREAM_getWBuffer(ZL_Data* s); -int STREAM_isCommitted(const ZL_Data* s); +/** + * Complete an existing string stream by attaching a buffer that stores string + * lengths. + * The stream must already be initialized and typed, but must not yet have a + * lengths buffer. + * Typically used for the last decompression stream (write output). + */ +ZL_Report +STREAM_refMutStringLens(Stream* s, uint32_t* stringLens, size_t eltsCapacity); + +/** Read-only access to the string length array. */ +const uint32_t* STREAM_rStringLens(const Stream* s); + +/** Mutable access to the string length array. */ +uint32_t* STREAM_wStringLens(Stream* s); + +/** Reserve space for @p nbStrings string length entries. */ +uint32_t* STREAM_reserveStringLens(Stream* s, size_t nbStrings); + +/* Accessors (expect a fully initialized stream unless noted). Writable + * accessors like STREAM_wPtr require a mutable buffer on an uncommitted + * stream. */ +ZL_DataID STREAM_id(const Stream* s); +ZL_Type STREAM_type(const Stream* s); +size_t STREAM_eltCount(const Stream* s); +size_t STREAM_eltWidth(const Stream* s); +int STREAM_hasBuffer(const Stream* s); +size_t STREAM_byteSize(const Stream* s); +const void* STREAM_rPtr(const Stream* s); +void* STREAM_wPtr(Stream* s); +ZL_RBuffer STREAM_getRBuffer(const Stream* s); +ZL_WBuffer STREAM_getWBuffer(Stream* s); +int STREAM_isCommitted(const Stream* s); -// Request capacity in nb of elts -// Note: String type can't get capacity of its primary buffer size this way -size_t STREAM_eltCapacity(const ZL_Data* s); +/** + * Finalize the stream after writing @p numElts elements (or strings). + * Writers must invoke this exactly once; readers expect committed streams. + */ +ZL_Report STREAM_commit(Stream* s, size_t numElts); + +/** + * Request capacity in number of elements. + * Note: string streams cannot derive their primary buffer capacity through this + * helper. + */ +size_t STREAM_eltCapacity(const Stream* s); + +/** Request capacity of the primary buffer in bytes. */ +size_t STREAM_byteCapacity(const Stream* s); -// Request capacity of primary buffer in bytes -size_t STREAM_byteCapacity(const ZL_Data* s); +/** + * Lightweight metadata channel used by co-operating nodes to exchange small + * integer hints alongside the stream payload. + */ +ZL_Report STREAM_setIntMetadata(Stream* s, int mId, int mValue); +ZL_IntMetadata STREAM_getIntMetadata(const Stream* s, int mId); -// Hash the content of all streams provided in @streams. -// Only makes sense if all streams have already been committed. -// Return the low 32-bit of XXH3_64bits. +/** + * Hash the content of all streams provided in @p streams. + * Only meaningful when all streams have been committed. + * Returns the low 32-bit of XXH3_64bits. + */ ZL_Report STREAM_hashLastCommit_xxh3low32( - const ZL_Data* streams[], + const Stream* streams[], size_t nbStreams, unsigned formatVersion); -// ************************************* -// Actions -// ************************************* +/* Bulk operations and stream actions. */ -// STREAM_copyBytes -// Bundle memcpy operation, boundary checks, eltWidth multiples, and commit. -// @dst and @src must be large enough for the operation to succeed. -// Designed primarily for conversion operations -ZL_Report -STREAM_copyBytes(ZL_Data* dst, const ZL_Data* src, size_t sizeInBytes); +/** + * Copy @p sizeInBytes bytes from @p src into @p dst, performing boundary + * checks, element-width validation, and commit bookkeeping. + * Both streams must provide sufficient capacity for the operation. + * Intended primarily for conversion operations. + */ +ZL_Report STREAM_copyBytes(Stream* dst, const Stream* src, size_t sizeInBytes); /** - * Append content of @param src into @param dst. - * @param src must have same type and width and @param dst. - * @param dst must be already allocated, and be large enough to host the entire - * @param src content. - * @return numElts added, or an error + * Append the contents of @p src into @p dst. + * @p src must have the same type and element width as @p dst. + * @p dst must already own enough capacity to hold the additional elements. + * @return Number of elements appended, or an error. */ -ZL_Report STREAM_append(ZL_Data* dst, const ZL_Data* src); +ZL_Report STREAM_append(Stream* dst, const Stream* src); -// STREAM_copyStringStream -// Duplicate a Stream, of type String (only!) -// onto an empty destination Stream (no buffer allocated nor referenced) +/** + * Duplicate a string stream into an empty destination stream (no buffer + * allocated nor referenced). + */ ZL_Report STREAM_copyStringStream( - ZL_Data* emptyStreamDst, - const ZL_Data* stringStreamSrc); + Stream* emptyStreamDst, + const Stream* stringStreamSrc); /** - * Copy a stream from @p src to @p dst - * @pre @p dst must be empty and @p src must be committed + * Copy a stream from @p src to @p dst. + * @pre @p dst must be empty and @p src must be committed. */ -ZL_Report STREAM_copy(ZL_Data* dst, const ZL_Data* src); +ZL_Report STREAM_copy(Stream* dst, const Stream* src); /** * Consider the first @p numElts as "consumed", @@ -201,11 +286,12 @@ ZL_Report STREAM_copy(ZL_Data* dst, const ZL_Data* src); * of the original @p data. Only works on already committed @p data. Primarily * used by Segmenters. */ -ZL_Report STREAM_consume(ZL_Data* data, size_t numElts); +ZL_Report STREAM_consume(Stream* data, size_t numElts); -// Clear a stream for reuse with the same type/eltWidth/eltCount -void STREAM_clear(ZL_Data* s); +/** Clear a stream for reuse with the same type, element width, and element + * count. */ +void STREAM_clear(Stream* s); ZL_END_C_DECLS -#endif // ZSTRONG_COMMON_STREAM_H +#endif /* ZSTRONG_COMMON_STREAM_H */ diff --git a/src/openzl/common/unique_id.c b/src/openzl/common/unique_id.c new file mode 100644 index 000000000..bfc1b80e4 --- /dev/null +++ b/src/openzl/common/unique_id.c @@ -0,0 +1,62 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/zl_unique_id.h" + +#include + +#include "openzl/common/sha256.h" +#include "openzl/shared/xxhash.h" + +void ZL_UniqueID_write(void* dst, const ZL_UniqueID* id) +{ + memcpy(dst, id->bytes, sizeof(id->bytes)); +} + +void ZL_UniqueID_read(ZL_UniqueID* dst, const void* src) +{ + memcpy(dst->bytes, src, sizeof(dst->bytes)); +} + +ZL_UniqueID ZL_UniqueID_zero(void) +{ + ZL_UniqueID result; + memset(result.bytes, 0, sizeof(result.bytes)); + return result; +} + +bool ZL_UniqueID_isValid(const ZL_UniqueID* id) +{ + if (id == NULL) { + return false; + } + for (size_t i = 0; i < sizeof(id->bytes); i++) { + if (id->bytes[i] != 0) { + return true; + } + } + return false; +} + +size_t ZL_UniqueID_hash(const ZL_UniqueID* key) +{ + if (key == NULL) { + return 0; + } + return XXH3_64bits( + key->bytes, sizeof(key->bytes)); // no support for 32-bit archs +} + +bool ZL_UniqueID_eq(const ZL_UniqueID* lhs, const ZL_UniqueID* rhs) +{ + if (lhs == NULL || rhs == NULL) { + return false; + } + return memcmp(lhs->bytes, rhs->bytes, sizeof(lhs->bytes)) == 0; +} + +ZL_UniqueID ZL_UniqueID_computeSHA256(const void* data, size_t size) +{ + ZL_UniqueID result; + ZL_sha256(data, size, result.bytes); + return result; +} diff --git a/src/openzl/common/vector.h b/src/openzl/common/vector.h index b08285575..544f5509c 100644 --- a/src/openzl/common/vector.h +++ b/src/openzl/common/vector.h @@ -161,10 +161,8 @@ ZL_BEGIN_C_DECLS * VECTOR_EMPTY: * Initializes an empty vector as an expression. */ -#define VECTOR_EMPTY(max_capacity) \ - { \ - ._generic = GenericVector_empty(max_capacity) \ - } +#define VECTOR_EMPTY(max_capacity) \ + { ._generic = GenericVector_empty(max_capacity) } /* * VECTOR_RESET: diff --git a/src/openzl/common/wire_format.c b/src/openzl/common/wire_format.c index b3688523d..02499c622 100644 --- a/src/openzl/common/wire_format.c +++ b/src/openzl/common/wire_format.c @@ -4,12 +4,13 @@ #include "openzl/shared/mem.h" -#define ZS2_MIN_MAGIC (ZSTRONG_MAGIC_NUMBER_BASE + ZL_MIN_FORMAT_VERSION) -#define ZS2_MAX_MAGIC (ZSTRONG_MAGIC_NUMBER_BASE + ZL_MAX_FORMAT_VERSION) +#define ZL_MIN_MAGIC (ZSTRONG_MAGIC_NUMBER_BASE + ZL_MIN_FORMAT_VERSION) +#define ZL_MAX_MAGIC (ZSTRONG_MAGIC_NUMBER_BASE + ZL_MAX_FORMAT_VERSION) ZL_Report ZL_getFormatVersionFromFrame(void const* src, size_t srcSize) { - ZL_RET_R_IF_LT(srcSize_tooSmall, srcSize, 4); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_LT(srcSize, 4, srcSize_tooSmall); uint32_t const magic = ZL_readCE32(src); return ZL_getFormatVersionFromMagic(magic); } @@ -23,16 +24,17 @@ void ZL_writeMagicNumber(void* dst, size_t dstCapacity, uint32_t version) ZL_Report ZL_getFormatVersionFromMagic(uint32_t magic) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Detect invalid magic numbers - outside of the range of versions // we know about. Pad the top end of the range to handle versions added // after this library was shipped. - if (magic < ZSTRONG_MAGIC_NUMBER_BASE || magic > ZS2_MAX_MAGIC + 16) - ZL_RET_R_ERR(header_unknown); + if (magic < ZSTRONG_MAGIC_NUMBER_BASE || magic > ZL_MAX_MAGIC + 16) + ZL_ERR(header_unknown); // Detect magic numbers we used for older versions that we no longer // support or newer versions we don't yet support. - ZL_RET_R_IF_LT(formatVersion_unsupported, magic, ZS2_MIN_MAGIC); - ZL_RET_R_IF_GT(formatVersion_unsupported, magic, ZS2_MAX_MAGIC); + ZL_ERR_IF_LT(magic, ZL_MIN_MAGIC, formatVersion_unsupported); + ZL_ERR_IF_GT(magic, ZL_MAX_MAGIC, formatVersion_unsupported); // Extract the supported version number. uint32_t const version = magic - ZSTRONG_MAGIC_NUMBER_BASE; @@ -56,3 +58,13 @@ unsigned ZL_getDefaultEncodingVersion(void) { return ZL_MAX_FORMAT_VERSION; } + +int ZL_StandardTransformID_numBits(unsigned formatVersion) +{ + if (formatVersion < 24) { + return ZL_nextPow2(64); + } else { + ZL_ASSERT_EQ(ZL_StandardTransformID_end, 128); + return ZL_nextPow2(ZL_StandardTransformID_end); + } +} diff --git a/src/openzl/common/wire_format.h b/src/openzl/common/wire_format.h index 62f29695d..518332af3 100644 --- a/src/openzl/common/wire_format.h +++ b/src/openzl/common/wire_format.h @@ -20,6 +20,7 @@ * - v21+: Frame property flags: 1 byte * + bit0: checksum of decoded data * + bit1: checksum of encoded data (also control frame header checksum) + * + bit2: presence of a comment field * - Input Type : * + v13-: 0-byte , 1 Input assumed to be Serial * + v14 : 1-byte, single Input, selectable type @@ -41,6 +42,9 @@ * Organized as a single large BM-bytes Little Endian number * scanned from its lowest bits (shift >> 2 for each Input). * Note: Format 1 stores the first 2 types in 1st byte. + * + v22+: VarInt format: Number of bytes of comment field + * Length x 1-byte: Arbitrary buffer of up to 10000 bytes (defined in + * limits.h) containing a comment. * * Size of Inputs * v20-: NbInputs x LE_U32: decompressed size of each input, in bytes @@ -183,9 +187,13 @@ uint32_t ZL_getMagicNumber(uint32_t version); #define FRAME_HEADER_SIZE_MIN \ (4 /*magic*/ + 4 /*dec.Size*/ + 1 /*eof marker*/) // Just core elts +/// Minimum wire format version required to support extra comment field +#define ZL_COMMENT_VERSION_MIN (22) + typedef struct { bool hasContentChecksum; bool hasCompressedChecksum; + bool hasComment; } ZL_FrameProperties; typedef enum { trt_standard, trt_custom } TransformType_e; @@ -225,12 +233,13 @@ typedef enum { ZL_StandardTransformID_fse_deprecated = 15, ZL_StandardTransformID_huffman_deprecated = 16, ZL_StandardTransformID_huffman_fixed_deprecated = 17, - // 18-19 : available - ZL_StandardTransformID_rolz = 20, - ZL_StandardTransformID_fastlz = 21, - ZL_StandardTransformID_zstd = 22, - ZL_StandardTransformID_zstd_fixed = 23, - ZL_StandardTransformID_field_lz = 24, + ZL_StandardTransformID_sentinel = 18, + ZL_StandardTransformID_lz = 19, + ZL_StandardTransformID_rolz = 20, + ZL_StandardTransformID_fastlz = 21, + ZL_StandardTransformID_zstd = 22, + ZL_StandardTransformID_zstd_fixed = 23, + ZL_StandardTransformID_field_lz = 24, // TODO: Use local parameters to select quantization mode dynamically // instead of specialization for offsets / lengths. @@ -290,12 +299,26 @@ typedef enum { ZL_StandardTransformID_interleave_string = 61, + ZL_StandardTransformID_lz4 = 62, + + ZL_StandardTransformID_bitSplit = 63, + + ZL_StandardTransformID_partition = 64, + + ZL_StandardTransformID_mux_lengths = 65, + ZL_StandardTransformID_end = - 63 // last id, used to detect end of ID range (impacts - // header encoding) give some room to be able to add new - // transforms without breaking encoder / decoder + 128 // last id, used to detect end of ID range (impacts + // header encoding) give some room to be able to add new + // transforms without breaking encoder / decoder } ZL_StandardTransformID; +/** + * @returns The number of bits required to encode standard transform IDs + * in the given format version. + */ +int ZL_StandardTransformID_numBits(unsigned formatVersion); + // Min version of standard transforms is published // for standard transforms which can be dynamically defined at runtime. typedef enum { diff --git a/src/openzl/compress/cctx.c b/src/openzl/compress/cctx.c index b2e4746da..c1f864932 100644 --- a/src/openzl/compress/cctx.c +++ b/src/openzl/compress/cctx.c @@ -20,6 +20,8 @@ #include "openzl/compress/enc_interface.h" // ENC_* #include "openzl/compress/gcparams.h" // GCParams #include "openzl/compress/implicit_conversion.h" // ICONV_implicitConversionNodeID +#include "openzl/compress/localparams.h" // LP_getLocalRefParam +#include "openzl/compress/materializer.h" // OnTheFlyMaterialization #include "openzl/compress/private_nodes.h" // ZL_GRAPH_SERIAL_STORE #include "openzl/compress/rtgraphs.h" // RTGraph, RTStreamID #include "openzl/compress/segmenter.h" // SEGM_* @@ -36,8 +38,6 @@ #include "openzl/zl_opaque_types.h" #include "openzl/zl_reflection.h" -#include "openzl/common/logging.h" // ZL_LOG - // -------------------------- // Transform's private header // -------------------------- @@ -49,17 +49,18 @@ typedef struct { static ZL_Report appendToVector(VECTOR(uint8_t) * vector, ZL_RBuffer buffer) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const originalSize = VECTOR_SIZE(*vector); size_t const neededCapacity = originalSize + buffer.size; - ZL_RET_R_IF_GT( - allocation, + ZL_ERR_IF_GT( neededCapacity, ZL_ENCODER_TRANSFORM_HEADER_SIZE_LIMIT, - "Refusing to allocate more header space"); - ZL_RET_R_IF_LT( allocation, + "Refusing to allocate more header space"); + ZL_ERR_IF_LT( VECTOR_RESIZE_UNINITIALIZED(*vector, neededCapacity), - neededCapacity); + neededCapacity, + allocation); if (buffer.size > 0) { memcpy(VECTOR_DATA(*vector) + originalSize, buffer.start, buffer.size); } @@ -133,16 +134,19 @@ struct ZL_CCtx_s { GCParams requestedGCParams; // User selection, at CCtx level GCParams appliedGCParams; // Employed at compression time; // CCtx > Compressor > default + /// Comment to be added to the header. Is not added when size is 0. + ZL_Comment comment; CCTX_TransformHeaders trHeaders; /* These Arenas presume single-thread execution. * For parallel execution, it will have to be replaced by Arena Pools */ - Arena* codecArena; // Codec lifetime - Arena* graphArena; // Graph Lifetime - Arena* chunkArena; // Chunk Lifetime - Arena* sessionArena; // Entire compression lifetime + Arena* codecArena; // Codec lifetime + Arena* graphArena; // Graph Lifetime + Arena* chunkArena; // Chunk Lifetime + Arena* sessionArena; // Entire compression lifetime + Arena* matScratchArena; // Scratch space for materializers const ZL_TypedRef** inputs; unsigned nbInputs; - int segmenterStarted; + int numSegments; // number of segments in the current frame void* dstBuffer; // where to write chunks size_t dstCapacity; // capacity of dstBuffer size_t currentFrameSize; // already written into dstBuffer @@ -152,22 +156,25 @@ struct ZL_CCtx_s { static ZL_Report CCTX_init(ZL_CCtx* cctx) { - ZL_ASSERT_NN(cctx); ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_ASSERT_NN(cctx); + + ZL_OC_init(&cctx->opCtx); - cctx->codecArena = ALLOC_StackArena_create(); - cctx->graphArena = ALLOC_StackArena_create(); - cctx->chunkArena = ALLOC_StackArena_create(); - cctx->sessionArena = ALLOC_StackArena_create(); + cctx->codecArena = ALLOC_StackArena_create(); + cctx->graphArena = ALLOC_StackArena_create(); + cctx->chunkArena = ALLOC_StackArena_create(); + cctx->sessionArena = ALLOC_StackArena_create(); + cctx->matScratchArena = ALLOC_StackArena_create(); ZL_ERR_IF( cctx->graphArena == NULL || cctx->codecArena == NULL - || cctx->chunkArena == NULL || cctx->sessionArena == NULL, + || cctx->chunkArena == NULL || cctx->sessionArena == NULL + || cctx->matScratchArena == NULL, allocation); ZL_ERR_IF_ERR(RTGM_init(&cctx->rtgraph)); TRS_init(&cctx->cachedCodecStates); CCTX_TransformHeaders_init(&cctx->trHeaders); - ZL_OC_init(&cctx->opCtx); return ZL_returnSuccess(); } @@ -197,6 +204,8 @@ void CCTX_clean(ZL_CCtx* cctx) { CCTX_cleanChunk(cctx); ALLOC_Arena_freeAll(cctx->sessionArena); + cctx->comment.size = 0; + cctx->comment.data = NULL; ZL_ASSERT_EQ(ALLOC_Arena_memUsed(cctx->codecArena), 0); ZL_ASSERT_EQ(ALLOC_Arena_memUsed(cctx->graphArena), 0); ZL_ASSERT_EQ(ALLOC_Arena_memUsed(cctx->chunkArena), 0); @@ -213,6 +222,7 @@ void CCTX_free(ZL_CCtx* cctx) ALLOC_Arena_freeArena(cctx->codecArena); ALLOC_Arena_freeArena(cctx->graphArena); ALLOC_Arena_freeArena(cctx->chunkArena); + ALLOC_Arena_freeArena(cctx->matScratchArena); ALLOC_Arena_freeArena(cctx->sessionArena); ZL_OC_destroy(&cctx->opCtx); ZL_free(cctx); @@ -232,12 +242,13 @@ ZL_Report ZL_CCtx_attachIntrospectionHooks( ZL_CCtx* cctx, const ZL_CompressIntrospectionHooks* hooks) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_ASSERT_NN(cctx); - ZL_RET_R_IF_NULL(allocation, hooks); + ZL_ERR_IF_NULL(hooks, allocation); ZL_OperationContext* oc = ZL_CCtx_getOperationContext(cctx); ZL_ASSERT_NN(oc); - oc->introspectionHooks = *hooks; - oc->hasIntrospectionHooks = true; + oc->compressIntrospectionHooks = *hooks; + oc->hasCompressionHooks = true; return ZL_returnSuccess(); } @@ -246,8 +257,10 @@ ZL_Report ZL_CCtx_detachAllIntrospectionHooks(ZL_CCtx* cctx) ZL_ASSERT_NN(cctx); ZL_OperationContext* oc = ZL_CCtx_getOperationContext(cctx); ZL_ASSERT_NN(oc); - ZL_zeroes(&oc->introspectionHooks, sizeof(oc->introspectionHooks)); - oc->hasIntrospectionHooks = false; + ZL_zeroes( + &oc->compressIntrospectionHooks, + sizeof(oc->compressIntrospectionHooks)); + oc->hasCompressionHooks = false; return ZL_returnSuccess(); } @@ -269,9 +282,10 @@ ZL_Report ZL_CCtx_selectStartingGraphID( ZL_GraphID graphID, const ZL_RuntimeGraphParameters* rgp) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_ASSERT_NN(cctx); if (compressor) - ZL_RET_R_IF_ERR(ZL_CCtx_refCompressor(cctx, compressor)); + ZL_ERR_IF_ERR(ZL_CCtx_refCompressor(cctx, compressor)); return GCParams_setStartingGraphID( &cctx->requestedGCParams, graphID, rgp, cctx->sessionArena); } @@ -301,7 +315,9 @@ ZL_Report ZL_CCtx_resetParameters(ZL_CCtx* cctx) // something else. In `zstd`, there are different levels of reset // (parameters, session, or both). Maybe the same would be needed here ? ZL_zeroes(&cctx->requestedGCParams, sizeof(cctx->requestedGCParams)); - cctx->cgraph = NULL; + cctx->cgraph = NULL; + cctx->comment.size = 0; + cctx->comment.data = NULL; ZL_Compressor_free(cctx->internal_cgraph); cctx->internal_cgraph = NULL; return ZL_returnSuccess(); @@ -311,11 +327,12 @@ ZL_Report ZL_CCtx_resetParameters(ZL_CCtx* cctx) // when using only standard Graphs. ZL_Report ZL_CCtx_refCompressor(ZL_CCtx* cctx, const ZL_Compressor* compressor) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_ASSERT_NN(cctx); - ZL_RET_R_IF_EQ( - graph_invalid, + ZL_ERR_IF_EQ( CGRAPH_getStartingGraphID(compressor).gid, 0, + graph_invalid, "The cgraph's starting graph ID is not set, it must be set via " "ZL_Compressor_selectStartingGraphID() before it can be used."); cctx->cgraph = compressor; @@ -327,14 +344,15 @@ ZL_Report CCTX_setLocalCGraph_usingGraph2Desc( ZL_CCtx* cctx, ZL_Graph2Desc graphDesc) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_LOG(FRAME, "CCTX_setLocalCGraph_usingGraph2Desc"); ZL_ASSERT_NN(cctx); ZL_Compressor_free(cctx->internal_cgraph); // compatible with NULL cctx->internal_cgraph = ZL_Compressor_create(); - ZL_RET_R_IF_NULL(allocation, cctx->internal_cgraph); + ZL_ERR_IF_NULL(cctx->internal_cgraph, allocation); ZL_GraphID const startingNode = graphDesc.f(cctx->internal_cgraph, graphDesc.customParams); - ZL_RET_R_IF_ERR(ZL_Compressor_selectStartingGraphID( + ZL_ERR_IF_ERR(ZL_Compressor_selectStartingGraphID( cctx->internal_cgraph, startingNode)); // Creation is all fine, let's finalize the reference return ZL_CCtx_refCompressor(cctx, cctx->internal_cgraph); @@ -385,8 +403,12 @@ static const ZL_Data* CCTX_getRStream(const ZL_CCtx* cctx, RTStreamID rtsid) ZL_Report CCTX_sendTrHeader(ZL_CCtx* cctx, RTNodeID rtnodeid, ZL_RBuffer trh) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(cctx); - ZL_TRY_LET_R(headerPos, CCTX_TransformHeaders_stage(&cctx->trHeaders, trh)); + ZL_TRY_LET( + size_t, + headerPos, + CCTX_TransformHeaders_stage(&cctx->trHeaders, trh)); RTGM_setNodeHeaderSegment( &cctx->rtgraph, rtnodeid, @@ -410,6 +432,8 @@ static ZL_Report CCTX_runCNode_wParams( const CNode* cnode, const ZL_LocalParams* lparams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_DLOG(TRANSFORM, "CCTX_runCNode_wParams (nbInputs=%u, lparams=%p)", nbInputs, @@ -419,31 +443,31 @@ static ZL_Report CCTX_runCNode_wParams( ZL_ASSERT_EQ(cnode->nodetype, node_internalTransform); // Check inputs - ZL_RET_R_IF_NOT( - node_invalid_input, CNODE_isNbInputsCompatible(cnode, nbInputs)); + ZL_ERR_IF_NOT( + CNODE_isNbInputsCompatible(cnode, nbInputs), node_invalid_input); // This check also takes care of versions<=15, which only support 1 input. - ZL_RET_R_IF_GT( - node_versionMismatch, + ZL_ERR_IF_GT( nbInputs, ZL_runtimeNodeInputLimit(cctx->appliedGCParams.formatVersion), + node_versionMismatch, "Too many inputs (%u) for format version %u (max=%u)", nbInputs, cctx->appliedGCParams.formatVersion, ZL_runtimeNodeInputLimit(cctx->appliedGCParams.formatVersion)); ZL_ASSERT_NN(inputs); for (ZL_IDType n = 0; n < nbInputs; n++) { - ZL_RET_R_IF_NE( - node_unexpected_input_type, + ZL_ERR_IF_NE( ZL_Data_type(inputs[n]), - CNODE_getInputType(cnode, n)); + CNODE_getInputType(cnode, n), + node_unexpected_input_type); } CNODE_FormatInfo const cnfi = CNODE_getFormatInfo(cnode); int const reqFormat = CCTX_getAppliedGParam(cctx, ZL_CParam_formatVersion); - ZL_RET_R_IF( - node_versionMismatch, + ZL_ERR_IF( reqFormat < (int)cnfi.minFormatVersion || (int)cnfi.maxFormatVersion < reqFormat, + node_versionMismatch, "Node %s (versions[%u-%u]) is incompatible with requested format version (%i)", CNODE_getName(cnode), cnfi.minFormatVersion, @@ -453,32 +477,71 @@ static ZL_Report CCTX_runCNode_wParams( // Note: this action registers @cnode without its (optional) new @lparams, // but it's fine, since local parameters won't be requested again from there { - ZL_TRY_LET_T( + ZL_TRY_LET( RTNodeID, tmp, RTGM_createNode(&cctx->rtgraph, cnode, irtsids, nbInputs)); *rtnid = tmp; } - ZL_Report const nbOuts = ENC_runTransform( + // Perform on-the-fly materialization if needed + // Skip if params already contain the materialized param (already + // materialized at registration time) + OneshotMaterializationResult matRes = { + .materializedObj = NULL, + }; + if (lparams != NULL) { + matRes.modifiedParams = *lparams; + if (cnode->transformDesc.publicDesc.materializer.materializeFn + != NULL) { + // Check if the materialized param already exists + ZL_RefParam existingParam = LP_getLocalRefParam( + lparams, + cnode->transformDesc.publicDesc.materializer.paramId); + ZL_ERR_IF_NE( + existingParam.paramId, + ZL_LP_INVALID_PARAMID, + node_invalid_input, + "Node runtime params cannot use the materialized param ID"); + + // Param doesn't exist, perform on-the-fly materialization + ZL_RESULT_OF(OneshotMaterializationResult) + res = MPM_materializeOneshot( + cctx->sessionArena, + cctx->matScratchArena, + ZL_CCtx_getOperationContext(cctx), + lparams, + &cnode->transformDesc.publicDesc.materializer); + ZL_ERR_IF_ERR(res); + matRes = ZL_RES_value(res); + lparams = &matRes.modifiedParams; + } + } + + ZL_Report nbOuts; + nbOuts = ENC_runTransform( &cnode->transformDesc, inputs, nbInputs, nodeid, *rtnid, cnode, - lparams, + lparams, // potentially modified by materialization cctx, cctx->codecArena, &cctx->cachedCodecStates); - ZL_RET_R_IF_ERR( + // Clean up on-the-fly materialized params (must happen before error + // check) + MPM_dematerializeOneshot(cctx->sessionArena, &matRes); + + ZL_ERR_IF_ERR( nbOuts, "Node '%s' failed: %s(%u)", CNODE_getName(cnode), ZL_ErrorCode_toString(ZL_errorCode(nbOuts)), ZL_errorCode(nbOuts)); - ZL_RET_R_IF_ERR(CCTX_checkOutputCommitted(cctx, *rtnid)); + ZL_ERR_IF_ERR(CCTX_checkOutputCommitted(cctx, *rtnid)); // Free input streams _if allowed_, since they have been processed. // This is typically possible for internal outputs of internal Transforms @@ -505,13 +568,14 @@ ZL_Report CCTX_runNodeID_wParams( ZL_NodeID nodeid, const ZL_LocalParams* lparams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_DLOG(BLOCK, "CCTX_runNodeID_wParams (nbInputs=%u)", nbInputs); - ZL_RET_R_IF_EQ( - node_invalid, ZL_NODE_ILLEGAL.nid, nodeid.nid, "Node is illegal"); + ZL_ERR_IF_EQ( + ZL_NODE_ILLEGAL.nid, nodeid.nid, node_invalid, "Node is illegal"); ZL_ASSERT_NN(cctx); const CNode* const cnode = CGRAPH_getCNode(cctx->cgraph, nodeid); - ZL_RET_R_IF_NULL( - node_invalid, cnode, "NodeID %u does not exist", nodeid.nid); + ZL_ERR_IF_NULL(cnode, node_invalid, "NodeID %u does not exist", nodeid.nid); ZL_ASSERT_EQ(cnode->nodetype, node_internalTransform); return CCTX_runCNode_wParams( cctx, nodeid, rtnid, inputs, irtsids, nbInputs, cnode, lparams); @@ -534,16 +598,17 @@ static ZL_Report CCTX_convertInputs_internal( ZL_Type const inType, ZL_Type const portTypeMask) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_NodeID conversion = ICONV_implicitConversionNodeID(inType, portTypeMask); - ZL_RET_R_IF_NOT( - inputType_unsupported, + ZL_ERR_IF_NOT( ZL_NodeID_isValid(conversion), + inputType_unsupported, "cannot find an implicit conversion (%x => %x)", inType, portTypeMask); RTNodeID rtnodeid; - ZL_RET_R_IF_ERR(CCTX_runNodeID_wParams( + ZL_ERR_IF_ERR(CCTX_runNodeID_wParams( cctx, &rtnodeid, &input, rtsid, 1, conversion, NULL)); // Implicit conversions are currently single-output only ZL_ASSERT_EQ(RTGM_getNbOutStreams(&cctx->rtgraph, rtnodeid), 1); @@ -563,6 +628,7 @@ static ZL_Report CCTX_convertInputs( const ZL_Type* dstPortMasks, size_t nbPorts) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_ASSERT_GE(nbInputs, 1); for (size_t n = 0; n < nbInputs; n++) { const ZL_Data* input = CCTX_getRStream(cctx, orig_rtsids[n]); @@ -586,14 +652,14 @@ static ZL_Report CCTX_convertInputs( input, inType, portTypeMask); - WAYPOINT( + CWAYPOINT( on_cctx_convertOneInput, cctx, input, inType, portTypeMask, res); - ZL_RET_R_IF_ERR(res); + ZL_ERR_IF_ERR(res); } return ZL_returnSuccess(); } @@ -609,7 +675,7 @@ static ZL_Report GCTX_checkSuccessors(ZL_Graph* gctx) (ZL_TernaryParam)CCTX_getAppliedGParam( gctx->cctx, ZL_CParam_permissiveCompression); if (backupMode != ZL_TernaryParam_enable) { - ZL_RET_R_ERR(successor_invalid); + ZL_ERR(successor_invalid); } } } @@ -701,10 +767,11 @@ static ZL_Report CCTX_runSuccessors( size_t nbSuccessors, unsigned depth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_DLOG(SEQ, "CCTX_runSuccessors on %zu successors", nbSuccessors); for (size_t n = 0; n < nbSuccessors; n++) { const SuccessorInfo* const si = successorArray + n; - ZL_RET_R_IF_ERR(CCTX_runSuccessor( + ZL_ERR_IF_ERR(CCTX_runSuccessor( cctx, si->graphID, si->rgp, @@ -728,10 +795,12 @@ static ZL_Report CCTX_runGraph_internal( size_t nbInputs, unsigned depth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + (void)graphid; // required only for waypoints // All streams created after this index will be created by the dynamic // graph - WAYPOINT( + CWAYPOINT( on_migraphEncode_start, gctx, CCTX_getCGraph(cctx), @@ -740,24 +809,25 @@ static ZL_Report CCTX_runGraph_internal( nbInputs); ZL_Report const graphExecutionReport = GCTX_runMultiInputGraph(gctx, inputs, nbInputs); - IF_WAYPOINT_ENABLED(on_migraphEncode_end, gctx) + IF_CWAYPOINT_ENABLED(on_migraphEncode_end, gctx) { if (ZL_isError(graphExecutionReport)) { - WAYPOINT(on_migraphEncode_end, gctx, NULL, 0, graphExecutionReport); + CWAYPOINT( + on_migraphEncode_end, gctx, NULL, 0, graphExecutionReport); } else { size_t nbSuccs = VECTOR_SIZE(gctx->dstGraphDescs); DECLARE_VECTOR_TYPE(ZL_GraphID); - VECTOR(ZL_GraphID) succGids; + VECTOR(ZL_GraphID) succGids = { 0 }; VECTOR_INIT(succGids, nbSuccs); for (size_t i = 0; i < nbSuccs; i++) { bool pushbackSuccess = VECTOR_PUSHBACK( succGids, VECTOR_AT(gctx->dstGraphDescs, i).destGid); - ZL_RET_R_IF_NOT( - allocation, + ZL_ERR_IF_NOT( pushbackSuccess, + allocation, "Unable to append to the waypoint succGids vector"); } - WAYPOINT( + CWAYPOINT( on_migraphEncode_end, gctx, VECTOR_DATA(succGids), @@ -767,16 +837,16 @@ static ZL_Report CCTX_runGraph_internal( } } ALLOC_Arena_freeAll(cctx->graphArena); - ZL_RET_R_IF_ERR(graphExecutionReport); + ZL_ERR_IF_ERR(graphExecutionReport); // If an error happened during Dynamic Graph, but was not checked and // then not reported by the Dynamic Graph function, it's caught here. ZL_ASSERT_NN(gctx); - ZL_RET_R_IF_ERR(gctx->status); + ZL_ERR_IF_ERR(gctx->status); // Check if some streams have no Successors // Error out, or set them to default backup if permissive mode - ZL_RET_R_IF_ERR(GCTX_checkSuccessors(gctx)); + ZL_ERR_IF_ERR(GCTX_checkSuccessors(gctx)); // After that point, if there are unassigned Streams but the check was // successful, it means that permissive mode is enabled. Consequently, // permissive mode is considered active for the rest of the function. @@ -791,7 +861,7 @@ static ZL_Report CCTX_runGraph_internal( // used is low. SuccessorInfo* const successors = ZL_malloc(nbSuccessors * sizeof(successors[0])); - ZL_RET_R_IF_NULL(allocation, successors); + ZL_ERR_IF_NULL(successors, allocation); GCTX_getSuccessors(gctx, successors, nbSuccessors); // Run successors @@ -842,6 +912,8 @@ static ZL_Report CCTX_runSegmenter( const RTStreamID* rtsids, size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_ASSERT_NN(cctx); ZL_ASSERT_NN(cctx->cgraph); ZL_ASSERT_EQ(CGRAPH_graphType(cctx->cgraph, graphid), gt_segmenter); @@ -854,18 +926,9 @@ static ZL_Report CCTX_runSegmenter( ZL_DLOG(SEQ, "RTStreamID: %u", rtsids[n].rtsid); } - // Check version - ZL_RET_R_IF_LT( - formatVersion_unsupported, - cctx->appliedGCParams.formatVersion, - ZL_CHUNK_VERSION_MIN, - "Segmenter is supported starting wire format version %u > %u (requested)", - ZL_CHUNK_VERSION_MIN, - cctx->appliedGCParams.formatVersion); - // Check Input Types ALLOC_ARENA_MALLOC_CHECKED(ZL_Type, inTypes, nbInputs, cctx->sessionArena); - ZL_RET_R_IF_NULL(allocation, inTypes); + ZL_ERR_IF_NULL(inTypes, allocation); const ZL_SegmenterDesc* segDesc = CGRAPH_getSegmenterDesc(cctx->cgraph, graphid); size_t const nbPorts = segDesc->numInputs; @@ -878,20 +941,48 @@ static ZL_Report CCTX_runSegmenter( needConversion |= !(inTypes[n] & outTypeMask); } - ZL_RET_R_IF( - temporaryLibraryLimitation, + ZL_ERR_IF( needConversion, + temporaryLibraryLimitation, "Conversion of Input types not supported by Segmenters"); // @note not strictly impossible, but requires some attention: // we don't want to create Nodes in front of the Segmenter. // Insert runtime parameters if needed + OneshotMaterializationResult segMatRes = { + .materializedObj = NULL, + }; if (rgp) { ALLOC_ARENA_MALLOC_CHECKED( ZL_SegmenterDesc, migd, 1, cctx->sessionArena); *migd = *segDesc; - if (rgp->localParams) - migd->localParams = *rgp->localParams; + if (rgp->localParams) { + // Perform on-the-fly materialization if needed + if (segDesc->materializer.materializeFn != NULL) { + // Check if the materialized param already exists + ZL_RefParam existingParam = LP_getLocalRefParam( + rgp->localParams, segDesc->materializer.paramId); + ZL_ERR_IF_NE( + existingParam.paramId, + ZL_LP_INVALID_PARAMID, + node_invalid_input, + "Segmenter runtime params cannot use the materialized param ID"); + + // Param doesn't exist, perform on-the-fly materialization + ZL_RESULT_OF(OneshotMaterializationResult) + res = MPM_materializeOneshot( + cctx->sessionArena, + cctx->matScratchArena, + ZL_CCtx_getOperationContext(cctx), + rgp->localParams, + &segDesc->materializer); + ZL_ERR_IF_ERR(res); + segMatRes = ZL_RES_value(res); + migd->localParams = segMatRes.modifiedParams; + } else { + migd->localParams = *rgp->localParams; + } + } if (rgp->customGraphs) { migd->customGraphs = rgp->customGraphs; migd->numCustomGraphs = rgp->nbCustomGraphs; @@ -899,7 +990,6 @@ static ZL_Report CCTX_runSegmenter( segDesc = migd; } - cctx->segmenterStarted = 1; ZL_Segmenter* const segmenterCtx = SEGM_init( segDesc, nbInputs, @@ -907,7 +997,15 @@ static ZL_Report CCTX_runSegmenter( &cctx->rtgraph, cctx->sessionArena, cctx->chunkArena); - return SEGM_runSegmenter(segmenterCtx); + CWAYPOINT(on_segmenterEncode_start, segmenterCtx, /* placeholder */ NULL); + ZL_Report const r = SEGM_runSegmenter(segmenterCtx); + + CWAYPOINT(on_segmenterEncode_end, segmenterCtx, r); + + // Maybe clean up on-the-fly materialized params + MPM_dematerializeOneshot(cctx->sessionArena, &segMatRes); + + return r; } /* Invoked from: CCTX_runSupervisedGraph, CCTX_implicitConvert @@ -922,6 +1020,7 @@ static ZL_Report CCTX_runGraphDesc( size_t nbInputs, unsigned depth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_ASSERT_NN(cctx); ZL_DLOG(BLOCK, "CCTX_runGraphDesc on graph '%s(%zu)' with %zu inputs", @@ -939,6 +1038,7 @@ static ZL_Report CCTX_runGraphDesc( ZL_Graph graphCtx = GCTX_init(cctx, migd); graphCtx.privateParam = privateParam; + graphCtx.depth = depth; for (unsigned n = 0; n < nbInputs; n++) { const ZL_Report ret = @@ -946,7 +1046,7 @@ static ZL_Report CCTX_runGraphDesc( if (ZL_isError(ret)) { ZL_free(inputsArray); GCTX_destroy(&graphCtx); - ZL_RET_R(ret); + return ret; } inputsPtrs[n] = inputsArray + n; } @@ -978,11 +1078,13 @@ static ZL_Report CCTX_runSupervisedGraphID_internal( size_t nbInputs, unsigned depth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + // Ensure the graph exists ZL_ASSERT_NN(cctx); - ZL_RET_R_IF_NOT( - graph_invalid, + ZL_ERR_IF_NOT( CGRAPH_checkGraphIDExists(cctx->cgraph, graphid), + graph_invalid, "GraphID %u doesn't exist", graphid.gid); ZL_DLOG(BLOCK, @@ -996,7 +1098,7 @@ static ZL_Report CCTX_runSupervisedGraphID_internal( // Check Input Types ALLOC_ARENA_MALLOC_CHECKED(ZL_Type, inTypes, nbInputs, cctx->graphArena); - ZL_RET_R_IF_NULL(allocation, inTypes); + ZL_ERR_IF_NULL(inTypes, allocation); const ZL_FunctionGraphDesc* dstGd = CGRAPH_getMultiInputGraphDesc(cctx->cgraph, graphid); size_t const nbPorts = dstGd->nbInputs; @@ -1015,7 +1117,7 @@ static ZL_Report CCTX_runSupervisedGraphID_internal( ZL_Compressor_Graph_getName(cctx->cgraph, graphid))); ALLOC_ARENA_MALLOC_CHECKED( RTStreamID, newrtsids, nbInputs, cctx->graphArena); - ZL_RET_R_IF_ERR(CCTX_convertInputs( + ZL_ERR_IF_ERR(CCTX_convertInputs( cctx, newrtsids, rtsids, @@ -1032,12 +1134,40 @@ static ZL_Report CCTX_runSupervisedGraphID_internal( // Now run the selected Graph, inserting runtime parameters if needed ZL_ASSERT_EQ(CGRAPH_graphType(cctx->cgraph, graphid), gt_miGraph); + OneshotMaterializationResult graphMatRes = { + .materializedObj = NULL, + }; if (rgp) { ALLOC_ARENA_MALLOC_CHECKED( ZL_FunctionGraphDesc, migd, 1, cctx->graphArena); *migd = *dstGd; - if (rgp->localParams) - migd->localParams = *rgp->localParams; + if (rgp->localParams) { + // Perform on-the-fly materialization if needed + if (dstGd->materializer.materializeFn != NULL) { + // Check if the materialized param already exists + ZL_RefParam existingParam = LP_getLocalRefParam( + rgp->localParams, dstGd->materializer.paramId); + ZL_ERR_IF_NE( + existingParam.paramId, + ZL_LP_INVALID_PARAMID, + node_invalid_input, + "Graph runtime params cannot use the materialized param ID"); + + // Param doesn't exist, perform on-the-fly materialization + ZL_RESULT_OF(OneshotMaterializationResult) + res = MPM_materializeOneshot( + cctx->sessionArena, + cctx->matScratchArena, + ZL_CCtx_getOperationContext(cctx), + rgp->localParams, + &dstGd->materializer); + ZL_ERR_IF_ERR(res); + graphMatRes = ZL_RES_value(res); + migd->localParams = graphMatRes.modifiedParams; + } else { + migd->localParams = *rgp->localParams; + } + } if (rgp->customGraphs) { migd->customGraphs = rgp->customGraphs; migd->nbCustomGraphs = rgp->nbCustomGraphs; @@ -1048,7 +1178,7 @@ static ZL_Report CCTX_runSupervisedGraphID_internal( } dstGd = migd; } - return CCTX_runGraphDesc( + ZL_Report const graphResult = CCTX_runGraphDesc( cctx, dstGd, graphid, @@ -1056,6 +1186,11 @@ static ZL_Report CCTX_runSupervisedGraphID_internal( rtsids, nbInputs, depth); + + // Maybe clean up on-the-fly materialized params + MPM_dematerializeOneshot(cctx->sessionArena, &graphMatRes); + + return graphResult; } /* Invoked from: CCTX_runSuccessor(), CCTX_triggerBackupMode() @@ -1083,12 +1218,14 @@ static ZL_Report CCTX_triggerBackupMode( size_t nbInputs, unsigned depth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_DLOG(BLOCK, "CCTX_triggerBackupMode (nbInputs==%u)", nbInputs); ZL_ASSERT_EQ(cctx->inBackupMode, 0, "Recursive backup shouldn't happen"); - ZL_RET_R_IF_NE( - logicError, + ZL_ERR_IF_NE( cctx->inBackupMode, 0, + logicError, "Recursive backup shouldn't happen"); cctx->inBackupMode = 1; ZL_Report outcome = CCTX_runSupervisedGraphID( @@ -1100,9 +1237,10 @@ static ZL_Report CCTX_triggerBackupMode( } /* Implementation note: - * CCTX_runSuccessor_internal(), invoked by CCTX_runSuccessor(), features - * multiple exit points. This 2-stages design ensures that Stream cleaning - * cannot be skipped. + * CCTX_runSuccessor_internal(), invoked by CCTX_runSuccessor(). + * This 2-stages design ensures that Stream cleaning cannot be skipped despite + * multiple exit points. Will invoke CCTX_runSupervisedGraph(). Is also in + * charge of Permissive (backup) mode. */ static ZL_Report CCTX_runSuccessor_internal( ZL_CCtx* cctx, @@ -1112,8 +1250,10 @@ static ZL_Report CCTX_runSuccessor_internal( size_t nbInputs, unsigned depth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_RESULT_SCOPE_ADD_GRAPH_CONTEXT((ZL_GraphContext){ .graphID = graphid }); + ZL_ASSERT_NN(cctx); - ZL_SCOPE_GRAPH_CONTEXT(cctx, { .graphID = graphid }); // Special: Single small Input get STORED immediately ZL_ASSERT_GT(nbInputs, 0); @@ -1145,7 +1285,7 @@ static ZL_Report CCTX_runSuccessor_internal( cctx, ZL_CParam_permissiveCompression); ZL_DLOG(BLOCK, "node just failed : permissiveMode = %u", backupMode); if (backupMode != ZL_TernaryParam_enable || cctx->inBackupMode) { - ZL_RET_R(outcome); + return outcome; } ZL_E_log(ZL_RES_error(outcome), ZL_LOG_LVL_V); @@ -1172,8 +1312,9 @@ static ZL_Report CCTX_runSuccessor_internal( } /* Invoked from: CCTX_startGraph(), CCTX_runSuccessors() - * Upper echelon, will invoke CCTX_runSupervisedGraph(), - * is also in charge of Permissive (backup) mode */ + * Upper echelon, acts as a graph type dispatcher, + * routing between segmenter and normal graphs. + * Is also in charge of Stream cleaning */ ZL_Report CCTX_runSuccessor( ZL_CCtx* cctx, ZL_GraphID graphid, @@ -1183,29 +1324,41 @@ ZL_Report CCTX_runSuccessor( unsigned depth) { ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + /* Depth limit: catch runaway recursion in user-defined graphs. + * Skipped in backup mode, where the library runs its own fallback graph + * (currently ZL_GRAPH_COMPRESS_GENERIC). This is safe as long as the + * backup graph has deterministic bounded depth (no dynamic decisions + * that could loop). If the backup graph ever gains dynamic routing, + * this assumption must be revisited — e.g. by introducing a dedicated + * ZL_GRAPH_COMPRESS_BACKUP with static-only decisions. */ + if (depth >= ZL_MAX_GRAPH_DEPTH && !cctx->inBackupMode) { + ZL_ERR(temporaryLibraryLimitation, + "Graph depth limit exceeded (depth=%u)", + depth); + } ZL_DLOG(BLOCK, "CCTX_runSuccessor (graphid=%u)", graphid.gid); - if (rtInputs[0].rtsid == 0 && nbInputs == cctx->nbInputs - && !cctx->segmenterStarted) { - // Original input - if (CGRAPH_graphType(cctx->cgraph, graphid) == gt_segmenter) { + int const isSegmentable = + (rtInputs[0].rtsid == 0 && nbInputs == cctx->nbInputs + && cctx->numSegments == 0); + + // Segmenter + if (CGRAPH_graphType(cctx->cgraph, graphid) == gt_segmenter) { + if (isSegmentable) { return CCTX_runSegmenter(cctx, graphid, rgp, rtInputs, nbInputs); } + ZL_ERR(graph_invalid, "Segmenter can only be used on full input"); } - ZL_ERR_IF_EQ( - CGRAPH_graphType(cctx->cgraph, graphid), - gt_segmenter, - GENERIC, - "Invalid usage of Segmenter: can only be employed on full input"); - // Normal Graph for (size_t n = 0; n < nbInputs; n++) { RTGM_guardRTStream(&cctx->rtgraph, rtInputs[n], depth); } ZL_Report const r = CCTX_runSuccessor_internal( cctx, graphid, rgp, rtInputs, nbInputs, depth); - for (size_t n = 0; n < nbInputs; n++) { - RTGM_clearRTStream(&cctx->rtgraph, rtInputs[n], depth); + if (!isSegmentable) { + for (size_t n = 0; n < nbInputs; n++) { + RTGM_clearRTStream(&cctx->rtgraph, rtInputs[n], depth); + } } return r; } @@ -1218,13 +1371,13 @@ ZL_Report CCTX_runSuccessor( ZL_Report CCTX_startCompression(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_DLOG(FRAME, "CCTX_startCompression (%zu inputs; input[0].size = %zu)", nbInputs, ZL_Data_contentSize(inputs[0])); ZL_ASSERT_NN(cctx); ZL_ASSERT_NN(inputs); - ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); /* Current library limitation : * Compression requires attaching a Compressor. @@ -1250,8 +1403,8 @@ CCTX_startCompression(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) cctx->inputs = ZL_codemodDatasAsInputs(inputs); ZL_ERR_IF_LT(nbInputs, 1, successor_invalidNumInputs); ZL_ASSERT_LT(nbInputs, INT_MAX); - cctx->nbInputs = (unsigned)nbInputs; - cctx->segmenterStarted = 0; + cctx->nbInputs = (unsigned)nbInputs; + cctx->numSegments = 0; ALLOC_ARENA_MALLOC_CHECKED( RTStreamID, rtsids, nbInputs, cctx->sessionArena); for (size_t n = 0; n < nbInputs; n++) { @@ -1279,7 +1432,7 @@ CCTX_startCompression(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) nbInputs, /* depth */ 1)); - if (cctx->segmenterStarted == 0) { + if (cctx->numSegments == 0) { /* no segmenter -> only one chunk */ ZL_ERR_IF_ERR(CCTX_flushChunk(cctx, inputs, nbInputs)); } @@ -1391,6 +1544,7 @@ ZL_Report CCTX_setOutBufferSizes( const size_t writtenSizes[], size_t nbOutStreams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_DLOG(BLOCK, "CCTX_setOutBufferSizes (node id %u => %zu buffs)", rtnodeid.rtnid, @@ -1401,7 +1555,7 @@ ZL_Report CCTX_setOutBufferSizes( for (int n = 0; n < (int)nbOutStreams; n++) { RTStreamID const rtstreamid = RTGM_getOutStreamID(&cctx->rtgraph, rtnodeid, n); - ZL_RET_R_IF_ERR(ZL_Data_commit( + ZL_ERR_IF_ERR(ZL_Data_commit( RTGM_getWStream(&cctx->rtgraph, rtstreamid), writtenSizes[n])); } return ZL_returnSuccess(); @@ -1409,6 +1563,7 @@ ZL_Report CCTX_setOutBufferSizes( ZL_Report CCTX_checkOutputCommitted(const ZL_CCtx* cctx, RTNodeID rtnodeid) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(cctx); size_t const nbOutStreams = RTGM_getNbOutStreams(&cctx->rtgraph, rtnodeid); ZL_DLOG(BLOCK, @@ -1420,15 +1575,13 @@ ZL_Report CCTX_checkOutputCommitted(const ZL_CCtx* cctx, RTNodeID rtnodeid) RTStreamID const rtstreamid = RTGM_getOutStreamID(&cctx->rtgraph, rtnodeid, n); if (!STREAM_isCommitted(CCTX_getRStream(cctx, rtstreamid))) { - ZL_RET_R_ERR( - transform_executionFailure, - "Error from Transform '%s'(%u): output stream %i/%zu was not committed", - CNODE_getName(RTGM_getCNode(&cctx->rtgraph, rtnodeid)), - CNODE_getTransformID( - RTGM_getCNode(&cctx->rtgraph, rtnodeid)) - .trid, - n, - nbOutStreams); + ZL_ERR(transform_executionFailure, + "Error from Transform '%s'(%u): output stream %i/%zu was not committed", + CNODE_getName(RTGM_getCNode(&cctx->rtgraph, rtnodeid)), + CNODE_getTransformID(RTGM_getCNode(&cctx->rtgraph, rtnodeid)) + .trid, + n, + nbOutStreams); }; } return ZL_returnSuccess(); @@ -1439,13 +1592,15 @@ ZL_Report CCTX_listBuffersToStore( ZL_RBuffer* rba, size_t rbaCapacity) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(cctx); ZL_ASSERT_NN(rba); // start by Transforms' header stream ZL_ASSERT_GT(rbaCapacity, 1); rba[0] = ZL_RBuffer_fromVector(&cctx->trHeaders.sentHeaderStream); rbaCapacity--; - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, nbStreams, RTGM_listBuffersToStore(&cctx->rtgraph, rba + 1, rbaCapacity)); ZL_ASSERT_LE(nbStreams, rbaCapacity); @@ -1478,16 +1633,60 @@ static ZL_Report CCTX_writeChunkHeader( return EFH_writeChunkHeader(dst, dstCapacity, &info, gi, formatVersion); } +static ZL_Report CCTX_replaceChunkWithStore( + ZL_CCtx* cctx, + const ZL_Data* inputs[], + size_t nbInputs) +{ + ZL_DLOG(BLOCK, "CCTX_replaceChunkWithStore (%zu inputs)", nbInputs); + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + + // Verify we're in a valid state + ZL_ASSERT_NN(cctx); + ZL_ASSERT_NN(inputs); + ZL_ASSERT_GT(nbInputs, 0); + + // clearing + RTGM_clearNodesFrom(&cctx->rtgraph, 0); + RTGM_clearRTStreamsFrom(&cctx->rtgraph, 0); + CCTX_TransformHeaders_reset(&cctx->trHeaders); + + // Always recreate input streams + for (size_t n = 0; n < nbInputs; n++) { + ZL_TRY_LET(RTStreamID, rtsid, RTGM_refInput(&cctx->rtgraph, inputs[n])); + ZL_ERR_IF_NE( + rtsid.rtsid, + n, + corruption, + "Expected stream at index %zu, got %u", + n, + rtsid.rtsid); + } + + // After clearing, run STORE graph + ALLOC_ARENA_MALLOC_CHECKED( + RTStreamID, inputRtsids, nbInputs, cctx->chunkArena); + for (size_t n = 0; n < nbInputs; n++) { + inputRtsids[n] = (RTStreamID){ (ZL_IDType)n }; + } + + ZL_DLOG(SEQ, "Running STORE graph on %zu inputs", nbInputs); + ZL_ERR_IF_ERR(CCTX_runSupervisedGraphID( + cctx, ZL_GRAPH_STORE, NULL, inputRtsids, nbInputs, 1)); + + return ZL_returnSuccess(); +} + /** * @return amount of data written into dst, or an error */ ZL_Report CCTX_flushChunk(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) { - ZL_DLOG(BLOCK, "CCTX_flushChunk (%zu inputs)", nbInputs); ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_DLOG(BLOCK, "CCTX_flushChunk (%zu inputs)", nbInputs); - GraphInfo gi; + GraphInfo gi = { 0 }; ZL_ERR_IF_ERR(CCTX_getFinalGraph(cctx, &gi)); // Write chunk header @@ -1497,24 +1696,102 @@ CCTX_flushChunk(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) size_t frameSize = startFrameSize; ZL_ASSERT_LE(frameSize, capacity); + ZL_TernaryParam const storeOnExpansion = + (ZL_TernaryParam)CCTX_getAppliedGParam( + cctx, ZL_CParam_storeOnExpansion); + + size_t chunkHeaderSize = 0; + int useStore = 0; // set to 1 when STORE fallback is needed + { + ZL_Report const headerReport = CCTX_writeChunkHeader( + cctx, + (char*)dst + startFrameSize, + capacity - startFrameSize, + &gi); + + if (ZL_isError(headerReport)) { + // Compressed chunk header doesn't fit in dst. + // If storeOnExpansion is enabled and there are transforms, + // STORE may produce a smaller header — try it before giving up. + if (gi.nbTransforms > 0 + && storeOnExpansion != ZL_TernaryParam_disable) { + ZL_DLOG(BLOCK, + "Compressed chunk header too large for dst " + "(capacity=%zu), trying STORE fallback", + capacity - startFrameSize); + useStore = 1; + } else { + return headerReport; // genuine error + } + } else { + chunkHeaderSize = ZL_validResult(headerReport); + ZL_LOG(SEQ, + "wrote %zu chunk header bytes into buffer of capacity %zu", + chunkHeaderSize, + capacity - startFrameSize); + ZL_ASSERT_LE(chunkHeaderSize, capacity - startFrameSize); + } + } + + if (gi.nbTransforms > 0 && !useStore) { + // Check if data has expanded, use STORE in that case + if (storeOnExpansion != ZL_TernaryParam_disable) { + // Calculate total compressed size (data buffers) + size_t totalCompressedSize = chunkHeaderSize; // Start with header + for (size_t n = 0; n < gi.nbStoredBuffs; n++) { + totalCompressedSize += gi.storedBuffs[n].size; + } + + // Calculate total input size + size_t totalInputSize = 0; + for (size_t n = 0; n < nbInputs; n++) { + totalInputSize += ZL_Data_contentSize(inputs[n]); + if (ZL_Data_type(inputs[n]) == ZL_Type_string) { + totalInputSize += + ZL_Data_numElts(inputs[n]) * sizeof(uint32_t); + } + } + + if (totalCompressedSize >= totalInputSize) { + ZL_DLOG(BLOCK, + "Inflation detected: input=%zu <= compressed=%zu " + "(header=%zu, data=%zu)", + totalInputSize, + totalCompressedSize, + chunkHeaderSize, + totalCompressedSize - chunkHeaderSize); + useStore = 1; + } + } // storeOnExpansion enabled + } + + if (useStore) { + // Replace with STORE + ZL_ERR_IF_ERR(CCTX_replaceChunkWithStore(cctx, inputs, nbInputs)); + + // Re-get graph info + ZL_ERR_IF_ERR(CCTX_getFinalGraph(cctx, &gi)); + + // Write STORE chunk header (if this also fails, genuine error) ZL_TRY_LET( size_t, - chhSize, + storeHeaderSize, CCTX_writeChunkHeader( cctx, (char*)dst + startFrameSize, capacity - startFrameSize, &gi)); - ZL_LOG(SEQ, - "wrote %zu chunk header bytes into buffer of capacity %zu", - chhSize, - capacity - startFrameSize); - ZL_ASSERT_LE(chhSize, capacity - startFrameSize); - frameSize += chhSize; + + ZL_DLOG(SEQ, + "After STORE: header=%zu (was %zu)", + storeHeaderSize, + chunkHeaderSize); + chunkHeaderSize = storeHeaderSize; } // Copy final buffers(s) + frameSize += chunkHeaderSize; size_t const nbStoredBuffs = gi.nbStoredBuffs; for (size_t n = 0; n < nbStoredBuffs; n++) { size_t const lbsize = gi.storedBuffs[n].size; @@ -1535,7 +1812,7 @@ CCTX_flushChunk(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) ZL_ASSERT_EQ( CCTX_getAppliedGParam(cctx, ZL_CParam_contentChecksum), ZL_TernaryParam_enable); - ZL_RET_R_IF_LT(dstCapacity_tooSmall, capacity - frameSize, 4); + ZL_ERR_IF_LT(capacity - frameSize, 4, dstCapacity_tooSmall); uint32_t const formatVersion = (uint32_t)CCTX_getAppliedGParam(cctx, ZL_CParam_formatVersion); ZL_TRY_LET( @@ -1554,7 +1831,7 @@ CCTX_flushChunk(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) ZL_ASSERT_EQ( CCTX_getAppliedGParam(cctx, ZL_CParam_compressedChecksum), ZL_TernaryParam_enable); - ZL_RET_R_IF_LT(dstCapacity_tooSmall, capacity - frameSize, 4); + ZL_ERR_IF_LT(capacity - frameSize, 4, dstCapacity_tooSmall); size_t startHashPosition = startFrameSize; if (CCTX_getAppliedGParam(cctx, ZL_CParam_formatVersion) < ZL_CHUNK_VERSION_MIN) { @@ -1576,12 +1853,15 @@ CCTX_flushChunk(ZL_CCtx* cctx, const ZL_Data* inputs[], size_t nbInputs) // Update dest buffer info cctx->currentFrameSize = frameSize; + ++cctx->numSegments; return ZL_returnValue(frameSize - startFrameSize); } ZL_Report CCTX_getFinalGraph(ZL_CCtx* cctx, GraphInfo* gip) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_ASSERT_NN(cctx); unsigned const formatVersion = (unsigned)CCTX_getAppliedGParam(cctx, ZL_CParam_formatVersion); @@ -1596,18 +1876,18 @@ ZL_Report CCTX_getFinalGraph(ZL_CCtx* cctx, GraphInfo* gip) ZL_ASSERT_NN(gip); // Check format limitations - ZL_RET_R_IF_GE( - formatVersion_unsupported, + ZL_ERR_IF_GE( nbTransforms, - ZL_runtimeNodeLimit(formatVersion)); - ZL_RET_R_IF_GE( - formatVersion_unsupported, + ZL_runtimeNodeLimit(formatVersion), + formatVersion_unsupported); + ZL_ERR_IF_GE( nbStreamsMax, - ZL_runtimeStreamLimit(formatVersion)); - ZL_RET_R_IF_GT( - formatVersion_unsupported, + ZL_runtimeStreamLimit(formatVersion), + formatVersion_unsupported); + ZL_ERR_IF_GT( nbInputs, - ZL_runtimeInputLimit(formatVersion)); + ZL_runtimeInputLimit(formatVersion), + formatVersion_unsupported); // Allocation ALLOC_ARENA_MALLOC_CHECKED( @@ -1648,10 +1928,10 @@ ZL_Report CCTX_getFinalGraph(ZL_CCtx* cctx, GraphInfo* gip) const NodeHeaderSegment nhs = RTGM_nodeHeaderSegment(&cctx->rtgraph, rtnid); trHSizes[n] = nhs.len; - ZL_RET_R_IF_LT( - corruption, + ZL_ERR_IF_LT( RTGM_getNbOutStreams(&cctx->rtgraph, rtnid), - CNODE_getNbOut1s(cnode)); + CNODE_getNbOut1s(cnode), + corruption); nbVOs[n] = RTGM_getNbOutStreams(&cctx->rtgraph, rtnid) - CNODE_getNbOut1s(cnode); nbTrInputs[n] = RTGM_getNbInStreams(&cctx->rtgraph, rtnid); @@ -1662,7 +1942,7 @@ ZL_Report CCTX_getFinalGraph(ZL_CCtx* cctx, GraphInfo* gip) gip->trInfo[n].trid); // Copy header into final Transform's Header stream // in the order they will be consumed by the decoder. - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_RBuffer, buffer_slice, ZL_RBuffer_slice( @@ -1670,7 +1950,7 @@ ZL_Report CCTX_getFinalGraph(ZL_CCtx* cctx, GraphInfo* gip) &cctx->trHeaders.stagingHeaderStream), nhs.startPos, nhs.len)); - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( CCTX_TransformHeaders_send(&cctx->trHeaders, buffer_slice)); } ZL_ASSERT_GE(nbDistances, nbTransforms); @@ -1699,7 +1979,8 @@ ZL_Report CCTX_getFinalGraph(ZL_CCtx* cctx, GraphInfo* gip) // List Stored buffers size_t const nbBuffsMax = nbStreamsMax; - ZL_TRY_LET_R(nbBuffs, CCTX_listBuffersToStore(cctx, buffs, nbBuffsMax)); + ZL_TRY_LET( + size_t, nbBuffs, CCTX_listBuffersToStore(cctx, buffs, nbBuffsMax)); ZL_ASSERT_LE(nbBuffs, nbBuffsMax); gip->nbStoredBuffs = nbBuffs; @@ -1851,3 +2132,25 @@ CCTX_tryGraph( return result; } + +ZL_Report +CCTX_setHeaderComment(ZL_CCtx* cctx, const void* comment, size_t commentSize) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_ASSERT_NN(cctx); + if (commentSize == 0) { + cctx->comment.size = 0; + return ZL_returnSuccess(); + } + void* buff = ALLOC_Arena_malloc(cctx->sessionArena, commentSize); + ZL_ERR_IF_NULL(buff, allocation); + cctx->comment.size = commentSize; + memcpy(buff, comment, commentSize); + cctx->comment.data = buff; + return ZL_returnSuccess(); +} + +ZL_Comment CCTX_getHeaderComment(const ZL_CCtx* cctx) +{ + return cctx->comment; +} diff --git a/src/openzl/compress/cctx.h b/src/openzl/compress/cctx.h index 051486bcf..43c4154ac 100644 --- a/src/openzl/compress/cctx.h +++ b/src/openzl/compress/cctx.h @@ -786,6 +786,17 @@ CCTX_tryGraph( ZL_GraphID graph, const ZL_RuntimeGraphParameters* params); +/** + * @return The comment stored in the cctx. + */ +ZL_Comment CCTX_getHeaderComment(const ZL_CCtx* cctx); + +/** + * Writes @p comment into a field of the cctx. + */ +ZL_Report +CCTX_setHeaderComment(ZL_CCtx* cctx, const void* comment, size_t commentSize); + ZL_END_C_DECLS #endif // ZSTRONG_COMPRESS_CCTX_H diff --git a/src/openzl/compress/cdictmgr.c b/src/openzl/compress/cdictmgr.c new file mode 100644 index 000000000..c36efdd2a --- /dev/null +++ b/src/openzl/compress/cdictmgr.c @@ -0,0 +1,481 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/compress/cdictmgr.h" + +#include + +#include "openzl/common/allocation.h" +#include "openzl/dict/bundle.h" +#include "openzl/dict/dict.h" +#include "openzl/dict/dict_constants.h" +#include "openzl/shared/xxhash.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_opaque_types.h" +#include "openzl/zl_unique_id.h" + +/* ================================================================ + * Composite key hash and equality + * ================================================================ */ + +static ZL_MaterializerDesc2 CDictMgr_zeroMatDesc(void) +{ + ZL_MaterializerDesc2 desc; + memset(&desc, 0, sizeof(desc)); + return desc; +} + +size_t CDictMgr_DictMap_hash(const CDictMgr_DictKey* key) +{ + XXH3_state_t hs; + XXH3_INITSTATE(&hs); + XXH3_64bits_reset(&hs); + + size_t idHash = ZL_UniqueID_hash(&key->id); + XXH3_64bits_update(&hs, &idHash, sizeof(idHash)); + + XXH3_64bits_update( + &hs, + &key->matDesc.materializeFn, + sizeof(key->matDesc.materializeFn)); + XXH3_64bits_update( + &hs, + &key->matDesc.dematerializeFn, + sizeof(key->matDesc.dematerializeFn)); + XXH3_64bits_update( + &hs, &key->matDesc.opaque.ptr, sizeof(key->matDesc.opaque.ptr)); + + return XXH3_64bits_digest(&hs); +} + +bool CDictMgr_DictMap_eq( + const CDictMgr_DictKey* lhs, + const CDictMgr_DictKey* rhs) +{ + if (!ZL_UniqueID_eq(&lhs->id, &rhs->id)) { + return false; + } + + if (lhs->matDesc.materializeFn != rhs->matDesc.materializeFn + || lhs->matDesc.dematerializeFn != rhs->matDesc.dematerializeFn + || lhs->matDesc.opaque.ptr != rhs->matDesc.opaque.ptr) { + return false; + } + + return true; +} + +/* ================================================================ + * MParam map hash and equality + * ================================================================ */ + +size_t CDictMgr_MParamMap_hash(const ZL_MParamID* key) +{ + return ZL_UniqueID_hash(&key->id); +} + +bool CDictMgr_MParamMap_eq(const ZL_MParamID* lhs, const ZL_MParamID* rhs) +{ + return ZL_UniqueID_eq(&lhs->id, &rhs->id); +} + +/* ================================================================ + * Lifecycle + * ================================================================ */ + +ZL_Report CDictMgr_init( + CDictMgr* mgr, + const Nodes_manager* nmgr, + const GraphsMgr* gm, + ZL_OperationContext* opCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + memset(mgr, 0, sizeof(*mgr)); + mgr->nmgr = nmgr; + mgr->gm = gm; + mgr->opCtx = opCtx; + mgr->arena = ALLOC_HeapArena_create(); + ZL_ERR_IF_NULL(mgr->arena, allocation); + mgr->scratchArena = ALLOC_HeapArena_create(); + if (mgr->scratchArena == NULL) { + ALLOC_Arena_freeArena(mgr->arena); + mgr->arena = NULL; + ZL_ERR(allocation); + } + mgr->dictsByID = + CDictMgr_DictMap_createInArena(mgr->arena, ZL_MAX_DICTS_PER_BUNDLE); + mgr->mparamBlobs = CDictMgr_MParamMap_createInArena( + mgr->arena, ZL_MAX_DICTS_PER_BUNDLE); + return ZL_returnSuccess(); +} + +void CDictMgr_destroy(CDictMgr* mgr) +{ + if (mgr == NULL) + return; + CDictMgr_DictMap_destroy(&mgr->dictsByID); + CDictMgr_MParamMap_destroy(&mgr->mparamBlobs); + if (mgr->scratchArena != NULL) { + ALLOC_Arena_freeArena(mgr->scratchArena); + } + if (mgr->arena != NULL) { + ALLOC_Arena_freeArena(mgr->arena); + } + memset(mgr, 0, sizeof(*mgr)); +} + +/* ================================================================ + * Internal: cache a parsed dict (or return the existing cached copy) + * ================================================================ */ + +// returns NULL if no dict/materializer match is found +// Note: This performs a linear scan over all CNodes O(numCNodes) on every call, +// making fat-bundle loading O(numDicts × numCNodes). If this becomes a problem, +// consider a more clever solution. +static const ZL_MaterializerDesc2* CDictMgr_findMaterializer( + const CDictMgr* mgr, + ZL_DictID dictID, + bool isCustomCodec) +{ + ZL_ASSERT_NN(mgr); + const CNodes_manager* ctm = &mgr->nmgr->ctm; + const ZL_IDType nbCNodes = CTM_nbCNodes(ctm); + for (ZL_IDType id = 0; id < nbCNodes; ++id) { + CNodeID cnodeID = { id }; + const CNode* cnode = CTM_getCNode(ctm, cnodeID); + if (cnode == NULL) + continue; + if (cnode->nodetype != node_internalTransform) + continue; + if ((cnode->publicIDtype == trt_custom) != isCustomCodec) + continue; + if (ZL_UniqueID_eq( + &cnode->transformDesc.publicDesc.dictID.id, &dictID.id) + && cnode->transformDesc.publicDesc.dictMat.materializeFn != NULL) { + return &cnode->transformDesc.publicDesc.dictMat; + } + } + return NULL; +} + +static ZL_RESULT_OF(ZL_DictConstPtr) CDictMgr_cacheInternal( + CDictMgr* mgr, + const ZL_ParsedDict* parsed, + const ZL_MaterializerDesc2* matDesc) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_DictConstPtr, mgr->opCtx); + ZL_ASSERT_NN(matDesc); + ZL_ASSERT_NN(matDesc->materializeFn); + + // try to search in the cache for existing entries + CDictMgr_DictKey lookupKey = { + .id = parsed->dictID.id, + .matDesc = *matDesc, + }; + + const CDictMgr_DictMap_Entry* existing = + CDictMgr_DictMap_find(&mgr->dictsByID, &lookupKey); + if (existing != NULL) { + // Verify we aren't trying to materialize a different buffer with the + // same ID + ZL_ERR_IF_NOT( + ZL_UniqueID_eq( + &existing->val->contentHash, &parsed->contentHash), + nodeParameter_invalid, + "Two different materialized objects cannot have the same ID. IDs must be unique!"); + return ZL_WRAP_VALUE(existing->val); + } + + // We free all memory in the scratch allocator, so don't + // pass an arena that's not cleared. + ZL_ASSERT_EQ(ALLOC_Arena_memUsed(mgr->scratchArena), 0); + ZL_Materializer matCtx = { + .persistentArena = mgr->arena, + .scratchArena = mgr->scratchArena, + .opaquePtr = matDesc->opaque.ptr, + .opCtx = mgr->opCtx, + }; + + ZL_RESULT_OF(ZL_VoidPtr) + obj = matDesc->materializeFn( + &matCtx, parsed->dictContent, parsed->contentSize); + + ALLOC_Arena_freeAll(mgr->scratchArena); + ZL_ERR_IF_ERR(obj); + + // cache + ZL_Dict* dict = (ZL_Dict*)ALLOC_Arena_calloc(mgr->arena, sizeof(ZL_Dict)); + if (dict == NULL) { + ZL_Materializer dematCtx = { + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = matDesc->opaque.ptr, + .opCtx = mgr->opCtx, + }; + matDesc->dematerializeFn(&dematCtx, ZL_RES_value(obj)); + ZL_ERR(allocation); + } + dict->dictID = parsed->dictID; + dict->contentHash = parsed->contentHash; + dict->materializingCodec = parsed->materializingCodec; + dict->isCustomCodec = parsed->isCustomCodec; + dict->packedSize = parsed->packedSize; + dict->dictObj = ZL_RES_value(obj); + + CDictMgr_DictMap_Entry entry = { .key = lookupKey, .val = dict }; + CDictMgr_DictMap_Insert ins = + CDictMgr_DictMap_insert(&mgr->dictsByID, &entry); + if (ins.badAlloc) { + ZL_Materializer dematCtx = { + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = matDesc->opaque.ptr, + .opCtx = mgr->opCtx, + }; + matDesc->dematerializeFn(&dematCtx, ZL_RES_value(obj)); + ZL_ERR(allocation); + } + return ZL_WRAP_VALUE(dict); +} + +/* ================================================================ + * CDictMgr_loadFatBundle + * ================================================================ */ + +ZL_RESULT_OF(ZL_DictBundleConstPtr) +CDictMgr_loadFatBundle( + CDictMgr* mgr, + const void* serializedFatBundle, + size_t serializedFatBundleSize) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_DictBundleConstPtr, mgr->opCtx); + if (mgr->bundle != NULL) { + ZL_ERR(GENERIC, "CDictMgr already has a fat bundle loaded"); + } + + ZL_DictBundle* bundle = (ZL_DictBundle*)ALLOC_Arena_malloc( + mgr->arena, sizeof(ZL_DictBundle)); + ZL_ERR_IF_NULL(bundle, allocation); + + ZL_RESULT_OF(ZL_BundleInfo) + infoResult = + ZL_BundleInfo_parse(serializedFatBundle, serializedFatBundleSize); + ZL_ERR_IF_ERR(infoResult); + ZL_BundleInfo info = ZL_RES_value(infoResult); + + // Copy dictIDs into mgr->arena since the parsed view points into the + // (potentially temporary) serializedFatBundle input buffer. + if (info.numDicts > 0) { + ZL_DictID* arenaDictIDs = (ZL_DictID*)ALLOC_Arena_malloc( + mgr->arena, info.numDicts * sizeof(ZL_DictID)); + ZL_ERR_IF_NULL(arenaDictIDs, allocation); + memcpy(arenaDictIDs, info.dictIDs, info.numDicts * sizeof(ZL_DictID)); + info.dictIDs = arenaDictIDs; + } + bundle->info = info; + + // If we have pre-declared a bundle ID, it must match + if (ZL_UniqueID_isValid(&mgr->bundleID.id)) { + ZL_ERR_IF_NOT( + ZL_UniqueID_eq(&mgr->bundleID.id, &bundle->info.bundleID.id), + dictNoRecord, + "bundle ID mismatch"); + } else { + ZL_ERR_IF_ERR(CDictMgr_setBundleID(mgr, &bundle->info.bundleID)); + } + + ZL_ERR_IF_NE( + (int)bundle->info.isFatBundle, + 1, + dict_corruption, + "expected isFatBundle=1 for fat bundle"); + + if (bundle->info.numDicts > 0) { + bundle->dicts = (const ZL_Dict**)ALLOC_Arena_malloc( + mgr->arena, bundle->info.numDicts * sizeof(const ZL_Dict*)); + ZL_ERR_IF_NULL( + bundle->dicts, + allocation, + "failed to allocate dicts array for %zu dicts", + bundle->info.numDicts); + } else { + bundle->dicts = NULL; + } + + size_t totalConsumed = bundle->info.packedSize; + size_t remaining = serializedFatBundleSize - totalConsumed; + const unsigned char* p = + (const unsigned char*)serializedFatBundle + totalConsumed; + + for (size_t i = 0; i < bundle->info.numDicts; i++) { + ZL_RESULT_OF(ZL_DictConstPtr) + dictRes = CDictMgr_loadDict(mgr, p, remaining); + ZL_ERR_IF_ERR(dictRes); + bundle->dicts[i] = ZL_RES_value(dictRes); + ZL_ERR_IF_NOT( + ZL_UniqueID_eq( + &bundle->dicts[i]->dictID.id, + &bundle->info.dictIDs[i].id), + dict_corruption, + "dict ID mismatch"); + + size_t const dictWireSize = bundle->dicts[i]->packedSize; + p += dictWireSize; + remaining -= dictWireSize; + totalConsumed += dictWireSize; + } + bundle->packedSize = totalConsumed; + + mgr->bundle = bundle; + + return ZL_RESULT_WRAP_VALUE(ZL_DictBundleConstPtr, mgr->bundle); +} + +/* ================================================================ + * CDictMgr_loadDict + * ================================================================ */ + +ZL_RESULT_OF(ZL_DictConstPtr) +CDictMgr_loadDict(CDictMgr* mgr, const void* serialBuffer, size_t bufferMaxSize) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_DictConstPtr, mgr->opCtx); + ZL_RESULT_OF(ZL_ParsedDict) + dictResult = ZL_Dict_parse(serialBuffer, bufferMaxSize); + ZL_ERR_IF_ERR(dictResult); + + ZL_ParsedDict const parsed = ZL_RES_value(dictResult); + ZL_ERR_IF_GT( + parsed.packedSize, + bufferMaxSize, + dict_corruption, + "dict packedSize exceeds remaining buffer"); + const ZL_MaterializerDesc2* matDesc = + CDictMgr_findMaterializer(mgr, parsed.dictID, parsed.isCustomCodec); + ZL_ERR_IF_NULL( + matDesc, noValidMaterialization, "no materializer found for dict"); + + ZL_RESULT_OF(ZL_DictConstPtr) + dictRes = CDictMgr_cacheInternal(mgr, &parsed, matDesc); + ZL_ERR_IF_ERR(dictRes); + + const ZL_Dict* dict = ZL_RES_value(dictRes); + + return ZL_WRAP_VALUE(dict); +} + +/* ================================================================ + * Accessors + * ================================================================ */ + +const ZL_Dict* CDictMgr_findDict( + const CDictMgr* mgr, + const ZL_DictID* id, + const ZL_MaterializerDesc2* matDesc) +{ + CDictMgr_DictKey lookupKey = { + .id = id->id, + .matDesc = (matDesc != NULL) ? *matDesc : CDictMgr_zeroMatDesc(), + }; + const CDictMgr_DictMap_Entry* entry = + CDictMgr_DictMap_find(&mgr->dictsByID, &lookupKey); + return (entry != NULL) ? entry->val : NULL; +} + +ZL_Report CDictMgr_setBundleID(CDictMgr* mgr, const ZL_BundleID* id) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(mgr->opCtx); + ZL_ERR_IF( + ZL_UniqueID_isValid(&mgr->bundleID.id), + dict_materialization, + "Bundle ID already set"); + ZL_ERR_IF_NOT( + ZL_UniqueID_isValid(&id->id), dictNoRecord, "Invalid bundle ID"); + mgr->bundleID = *id; + return ZL_returnSuccess(); +} + +const ZL_BundleID* CDictMgr_getBundleID(const CDictMgr* mgr) +{ + return ZL_UniqueID_isValid(&mgr->bundleID.id) ? &mgr->bundleID : NULL; +} + +/** + * Store a raw MParam blob for later CBOR serialization. The blob data is + * copied into the CDictMgr's arena. Duplicate blobs are de-duped. + * + * @param id The MParam ID to associate with this blob. + * @param data Raw serialized MParam blob (dict wire format). + * @param size Size of the blob in bytes. + */ +static ZL_Report CDictMgr_storeMParamBlob( + CDictMgr* mgr, + ZL_MParamID id, + const void* data, + size_t size) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(mgr->opCtx); + ZL_ERR_IF_NULL(data, GENERIC, "MParam blob data must not be null"); + ZL_ERR_IF_EQ(size, 0, GENERIC, "MParam blob size must be > 0"); + + if (CDictMgr_MParamMap_find(&mgr->mparamBlobs, &id) != NULL) { + return ZL_returnSuccess(); + } + + void* copy = ALLOC_Arena_malloc(mgr->arena, size); + ZL_ERR_IF_NULL(copy, allocation); + memcpy(copy, data, size); + + ZL_MParam val = { + .mparamID = id, + .content = copy, + .size = size, + }; + CDictMgr_MParamMap_Entry mapEntry = { .key = id, .val = val }; + CDictMgr_MParamMap_Insert ins = + CDictMgr_MParamMap_insert(&mgr->mparamBlobs, &mapEntry); + ZL_ERR_IF(ins.badAlloc, allocation, "Failed to insert MParam blob"); + + return ZL_returnSuccess(); +} + +const ZL_MParam* CDictMgr_getMParam(const CDictMgr* mgr, ZL_MParamID id) +{ + const CDictMgr_MParamMap_Entry* entry = + CDictMgr_MParamMap_find(&mgr->mparamBlobs, &id); + return (entry != NULL) ? &entry->val : NULL; +} + +/* ================================================================ + * CDictMgr_materializeMParam + * ================================================================ */ + +ZL_RESULT_OF(ZL_ConstVoidPtr) +CDictMgr_materializeMParam( + CDictMgr* mgr, + ZL_MParam mparam, + const ZL_MaterializerDesc2* matDesc) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_ConstVoidPtr, mgr->opCtx); + ZL_ASSERT_NN(matDesc); + ZL_ASSERT_NN(matDesc->materializeFn); + ZL_ASSERT_NN(mparam.content); + + ZL_ParsedDict toCache = { + .dictID = (ZL_DictID){ mparam.mparamID.id }, + .contentHash = ZL_UniqueID_computeSHA256(mparam.content, mparam.size), + .materializingCodec = 0, // not used by mparams + .isCustomCodec = false, // not used by mparams + .dictContent = mparam.content, + .contentSize = mparam.size, + .packedSize = mparam.size, + }; + + ZL_RESULT_OF(ZL_DictConstPtr) + dictRes = CDictMgr_cacheInternal(mgr, &toCache, matDesc); + ZL_ERR_IF_ERR(dictRes); + + // Store raw blob for CBOR serialization + ZL_ERR_IF_ERR(CDictMgr_storeMParamBlob( + mgr, mparam.mparamID, mparam.content, mparam.size)); + + return ZL_WRAP_VALUE(ZL_RES_value(dictRes)->dictObj); +} diff --git a/src/openzl/compress/cdictmgr.h b/src/openzl/compress/cdictmgr.h new file mode 100644 index 000000000..8cf805d30 --- /dev/null +++ b/src/openzl/compress/cdictmgr.h @@ -0,0 +1,167 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_COMPRESS_CDICTMGR_H +#define OPENZL_COMPRESS_CDICTMGR_H + +#include "openzl/common/allocation.h" // Arena +#include "openzl/common/map.h" // ZL_DECLARE_CUSTOM_MAP_TYPE +#include "openzl/compress/nodemgr.h" // Nodes_manager +#include "openzl/dict/bundle.h" // ZL_DictBundleConstPtr, ZL_Dict, ZL_UniqueID +#include "openzl/dict/dict.h" // ZL_Dict +#include "openzl/shared/portability.h" // ZL_BEGIN_C_DECLS +#include "openzl/zl_errors.h" // ZL_Report +#include "openzl/zl_materializer.h" // ZL_MaterializerDesc +#include "openzl/zl_opaque_types.h" // ZL_DictID, ZL_BundleID + +ZL_BEGIN_C_DECLS + +typedef struct GraphsMgr_s GraphsMgr; // forward declaration + +/* ========================================================================= + * CDictMgr — Compressor-internal dictionary manager + * ========================================================================= + * + * Stores materialized dicts, provides O(1) lookup by ZL_DictID, and owns the + * compressor's bundleID. + * + * Dict caching: dicts are keyed by (ZL_DictID, ZL_MaterializerDesc). The + * composite key ensures that the same raw dict loaded with different + * materializers produces distinct cache entries. All memory is arena-backed + * and freed in one shot on destroy. + */ + +typedef const ZL_Dict* CDictMgr_DictPtr; + +typedef struct { + ZL_UniqueID id; + ZL_MaterializerDesc2 matDesc; +} CDictMgr_DictKey; + +size_t CDictMgr_DictMap_hash(const CDictMgr_DictKey* key); +bool CDictMgr_DictMap_eq( + const CDictMgr_DictKey* lhs, + const CDictMgr_DictKey* rhs); + +ZL_DECLARE_CUSTOM_MAP_TYPE( + CDictMgr_DictMap, + CDictMgr_DictKey, + CDictMgr_DictPtr); + +size_t CDictMgr_MParamMap_hash(const ZL_MParamID* key); +bool CDictMgr_MParamMap_eq(const ZL_MParamID* lhs, const ZL_MParamID* rhs); + +ZL_DECLARE_CUSTOM_MAP_TYPE(CDictMgr_MParamMap, ZL_MParamID, ZL_MParam); + +typedef struct CDictMgr_s { + ZL_BundleID bundleID; + CDictMgr_DictMap dictsByID; + ZL_DictBundle* bundle; + + // MParam raw blob storage (for CBOR serialization) + CDictMgr_MParamMap mparamBlobs; + + // internal state + Arena* arena; + Arena* scratchArena; // scratch arena for materializations + const Nodes_manager* nmgr; + const GraphsMgr* gm; + ZL_OperationContext* opCtx; +} CDictMgr; + +/** + * Initialize the CDictMgr. Creates a backing heap arena and an empty dict map. + * Must be paired with CDictMgr_destroy(). + * @returns an error if the arena allocation fails. + */ +ZL_Report CDictMgr_init( + CDictMgr* mgr, + const Nodes_manager* nmgr, + const GraphsMgr* gm, + ZL_OperationContext* opCtx); + +/** + * Destroy the CDictMgr, freeing the dict map and all arena-backed memory. + * Safe to call on a zero-initialized CDictMgr (no-op). + */ +void CDictMgr_destroy(CDictMgr* mgr); + +/** + * Parse a serialized fat bundle, cache each constituent dict, and set the + * bundleID. This should be called *once* per CDictMgr, since the compressor can + * only use one bundle at a time. + * + * TESTING ONLY -- If a dict with the same (ZL_DictID, materializer) was already + * loaded (from a prior call to loadDict), the cached dict is reused. + * + * @returns the parsed ZL_DictBundle on success, or an error. + */ +ZL_RESULT_OF(ZL_DictBundleConstPtr) +CDictMgr_loadFatBundle( + CDictMgr* mgr, + const void* serializedFatBundle, + size_t serializedFatBundleSize); + +/** + * Parse and cache a single serialized dict. If a dict with the same + * (ZL_DictID, materializer) was already loaded, this is a no-op. + * + * @returns success, or an error if the blob is malformed or allocation fails. + */ +ZL_RESULT_OF(ZL_DictConstPtr) +CDictMgr_loadDict( + CDictMgr* mgr, + const void* serialBuffer, + size_t bufferMaxSize); + +/** + * O(1) lookup of a previously loaded dict by its (ZL_DictID, materializer) + * pair. + * @param matDesc must match the materializer used when the dict was loaded. + * Pass NULL if the dict was loaded without a materializer. + * @returns the dict, or NULL if no matching entry has been loaded. + */ +const ZL_Dict* CDictMgr_findDict( + const CDictMgr* mgr, + const ZL_DictID* id, + const ZL_MaterializerDesc2* matDesc); + +/** + * Should be called before CDictMgr_loadFatBundle() if the loaded bundle's ID is + * expected to be validated against it. + */ +ZL_Report CDictMgr_setBundleID(CDictMgr* mgr, const ZL_BundleID* id); + +/** + * @returns the bundleID of the loaded fat bundle, or NULL if + * no fat bundle has been loaded. + */ +const ZL_BundleID* CDictMgr_getBundleID(const CDictMgr* mgr); + +/* ================================================================ + * MParam raw blob storage + * ================================================================ */ + +/** + * Returns an *unstable* pointer to the stored MParam, or NULL if no MParam with + * the given ID has been stored. + */ +const ZL_MParam* CDictMgr_getMParam(const CDictMgr* mgr, ZL_MParamID id); + +/** + * Materialize a raw MParam content buffer. The raw content is passed directly + * to the materializer (no Dict_parse). The result is cached by + * (mparamID, matDesc) for dedup, and the raw blob is stored for CBOR + * serialization. + * + * @returns The materialized object pointer on success, or an error if + * materialization fails for any reason. + */ +ZL_RESULT_OF(ZL_ConstVoidPtr) +CDictMgr_materializeMParam( + CDictMgr* mgr, + ZL_MParam mparam, + const ZL_MaterializerDesc2* matDesc); + +ZL_END_C_DECLS + +#endif // OPENZL_COMPRESS_CDICTMGR_H diff --git a/src/openzl/compress/cgraph.c b/src/openzl/compress/cgraph.c index 00295d949..cb4172d61 100644 --- a/src/openzl/compress/cgraph.c +++ b/src/openzl/compress/cgraph.c @@ -6,13 +6,16 @@ #include "openzl/common/errors_internal.h" // ZS2_RET_IF_ERR #include "openzl/common/opaque.h" #include "openzl/common/operation_context.h" -#include "openzl/compress/cctx.h" // CCTX_setOutBufferSizes +#include "openzl/compress/cctx.h" // CCTX_setOutBufferSizes +#include "openzl/compress/cdictmgr.h" // CDictMgr #include "openzl/compress/cnode.h" +#include "openzl/compress/cnodes.h" // CTM_setDictIndex #include "openzl/compress/enc_interface.h" // ZL_Encoder definition #include "openzl/compress/gcparams.h" // GCParams #include "openzl/compress/graph_registry.h" // GR_staticGraphWrapper #include "openzl/compress/graphmgr.h" // Graphs_manager #include "openzl/compress/nodemgr.h" // Nodes_manager +#include "openzl/dict/dict_constants.h" // ZL_DICT_INDEX_NONE #include "openzl/zl_compress.h" // ZL_Compressor* #include "openzl/zl_compressor.h" // ZS2_declare*_* #include "openzl/zl_ctransform.h" @@ -23,6 +26,7 @@ #include "openzl/zl_reflection.h" #include "openzl/zl_segmenter.h" #include "openzl/zl_selector.h" +#include "openzl/zl_unique_id.h" // ****************************************************************** // CGraph @@ -34,13 +38,16 @@ struct ZL_Compressor_s { ZL_GraphID starting_graph; GCParams gcparams; ZL_OperationContext opCtx; // for error logging -}; /* note typedef'd to ZL_Compressor in zs2_compress.h */ + CDictMgr cdictMgr; +}; /* note typedef'd to ZL_Compressor in zl_compress.h */ ZL_Compressor* ZL_Compressor_create(void) { ZL_Compressor* const cgraph = ZL_calloc(sizeof(ZL_Compressor)); - if (cgraph == NULL) + if (cgraph == NULL) { return NULL; + } + ZL_OC_init(&cgraph->opCtx); if (ZL_isError(NM_init(&cgraph->nmgr, &cgraph->opCtx))) { ZL_Compressor_free(cgraph); return NULL; @@ -51,13 +58,21 @@ ZL_Compressor* ZL_Compressor_create(void) return NULL; } cgraph->starting_graph = (ZL_GraphID){ .gid = 0 }; // default + if (ZL_isError(CDictMgr_init( + &cgraph->cdictMgr, + &cgraph->nmgr, + cgraph->gm, + &cgraph->opCtx))) { + ZL_Compressor_free(cgraph); + return NULL; + } + // Back-populate CDictMgr pointers + cgraph->nmgr.ctm.cdictMgr = &cgraph->cdictMgr; #if ZL_ENABLE_ASSERT // In debug mode, runtime check on the configuration of the Standard Graphs GR_validate(); #endif - - ZL_OC_init(&cgraph->opCtx); ZL_OC_startOperation(&cgraph->opCtx, ZL_Operation_createCGraph); return cgraph; } @@ -66,6 +81,7 @@ void ZL_Compressor_free(ZL_Compressor* cgraph) { if (!cgraph) return; + CDictMgr_destroy(&cgraph->cdictMgr); ZL_OC_destroy(&cgraph->opCtx); GM_free(cgraph->gm); NM_destroy(&cgraph->nmgr); @@ -91,6 +107,32 @@ const GCParams* CGRAPH_getGCParams(const ZL_Compressor* cgraph) return &cgraph->gcparams; } +static ZL_Report CGraph_validateGraphAtGid( + ZL_Compressor* cgraph, + ZL_GraphID gid) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(cgraph); + ZL_DLOG(BLOCK, "CGraph_validateGraphAtGid (%u)", gid.gid); + + ZL_ERR_IF_NOT(ZL_GraphID_isValid(gid), graph_invalid); + + return ZL_returnSuccess(); +} + +ZL_Report ZL_Compressor_validate( + ZL_Compressor* cgraph, + const ZL_GraphID starting_graph) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(cgraph); + ZL_DLOG(BLOCK, "ZL_Compressor_validate"); + // Check that we start with a valid gid + ZL_ERR_IF_ERR(CGraph_validateGraphAtGid(cgraph, starting_graph)); + // Note (@Cyan): since zstrong supports Typed Inputs, there is no longer a + // requirement for Starting Graph to support Serial Input. + ZL_ERR_IF_ERR(CGraph_resolveDictIndices(cgraph)); + return ZL_returnSuccess(); +} + // ****************************************************************** // CGraph creation // ****************************************************************** @@ -105,6 +147,7 @@ ZL_Report ZL_Compressor_selectStartingGraphID( ZL_Compressor* cgraph, ZL_GraphID gid) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cgraph); ZL_ASSERT_NN(cgraph); if (CGRAPH_checkGraphIDExists(cgraph, gid)) { ZL_DLOG(FRAME, @@ -112,7 +155,7 @@ ZL_Report ZL_Compressor_selectStartingGraphID( ZL_Compressor_Graph_getName(cgraph, gid), gid.gid); } - ZL_RET_R_IF_ERR(ZL_Compressor_validate(cgraph, gid)); + ZL_ERR_IF_ERR(ZL_Compressor_validate(cgraph, gid)); cgraph->starting_graph = gid; return ZL_returnSuccess(); } @@ -129,6 +172,7 @@ int ZL_NodeID_isValid(ZL_NodeID nodeid) static ZL_Report CGraph_pipeAdaptor(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_DLOG(BLOCK, "CGraph_pipeAdaptor"); ZL_ASSERT_NN(ins); ZL_ASSERT_EQ(nbInputs, 1); @@ -147,14 +191,14 @@ CGraph_pipeAdaptor(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbInputs) ZL_ASSERT_NN(eictx); ZL_Output* const out = ZL_Encoder_createTypedStream(eictx, 0, outCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); - ZL_RET_R_IF_NULL(customNode_definitionInvalid, pipeDesc->transform_f); + ZL_ERR_IF_NULL(pipeDesc->transform_f, customNode_definitionInvalid); size_t const dstSize = pipeDesc->transform_f( ZL_Output_ptr(out), outCapacity, src, srcSize); - ZL_RET_R_IF_GT(transform_executionFailure, dstSize, outCapacity); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstSize)); + ZL_ERR_IF_GT(dstSize, outCapacity, transform_executionFailure); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstSize)); return ZL_returnValue(1); } @@ -199,6 +243,7 @@ typedef struct { static ZL_Report CGraph_splitAdaptor(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_DLOG(BLOCK, "CGraph_splitAdaptor"); ZL_ASSERT_NN(ins); ZL_ASSERT_EQ(nbInputs, 1); @@ -214,14 +259,14 @@ CGraph_splitAdaptor(ZL_Encoder* eictx, const ZL_Input* ins[], size_t nbInputs) size_t const nbDsts = splitDesc->nbOuts; size_t* const dstSizes = ZL_Encoder_getScratchSpace(eictx, nbDsts * sizeof(*dstSizes)); - ZL_RET_R_IF_NULL(allocation, dstSizes); + ZL_ERR_IF_NULL(dstSizes, allocation); ZL_Report const r = splitDesc->transform_f(eictx, dstSizes, src, srcSize); - ZL_RET_R_IF_ERR(r); + ZL_ERR_IF_ERR(r); ZL_ASSERT_EQ( nbDsts, ZL_validResult(r)); // create as many outputs as pledged ZL_ASSERT_NN(eictx); - ZL_RET_R_IF_ERR(CCTX_setOutBufferSizes( + ZL_ERR_IF_ERR(CCTX_setOutBufferSizes( eictx->cctx, eictx->rtnodeid, dstSizes, nbDsts)); return r; @@ -411,6 +456,8 @@ ZL_Compressor_parameterizeNode( .name = params->name, .node = node, .localParams = params->localParams, + .dictID = params->dictID, + .mparam = params->mparam, }; return NM_parameterizeNode(&compressor->nmgr, &desc); @@ -424,6 +471,8 @@ ZL_NodeID ZL_Compressor_registerParameterizedNode( ZL_NodeParameters params = { .name = desc->name, .localParams = desc->localParams, + .dictID = desc->dictID, + .mparam = desc->mparam, }; ZL_RESULT_OF(ZL_NodeID) nodeidResult = @@ -434,19 +483,6 @@ ZL_NodeID ZL_Compressor_registerParameterizedNode( return ZL_RES_value(nodeidResult); } -ZL_NodeID ZL_Compressor_cloneNode( - ZL_Compressor* cgraph, - ZL_NodeID nodeid, - const ZL_LocalParams* localParams) -{ - ZL_ParameterizedNodeDesc desc = { - .name = NULL, - .node = nodeid, - .localParams = localParams, - }; - return ZL_Compressor_registerParameterizedNode(cgraph, &desc); -} - ZL_NodeID CGraph_registerStandardVOTransform( ZL_Compressor* cgraph, const ZL_VOEncoderDesc* votd, @@ -766,7 +802,7 @@ ZL_Compressor_registerFunctionGraph2( ZL_DLOG(BLOCK, "ZL_Compressor_registerFunctionGraph '%s'", STR_REPLACE_NULL(desc->name)); - ZL_ASSERT_NN(cgraph); + ZL_ASSERT_NN(compressor); if (desc->validate_f && !desc->validate_f(compressor, desc)) { ZL_OpaquePtr_free(desc->opaque); ZL_ERR(graph_invalid, "Validation failed"); @@ -807,6 +843,31 @@ ZL_Compressor_parameterizeGraph( return GM_registerParameterizedGraph(compressor->gm, &desc); } +ZL_Report ZL_Compressor_overrideGraphParams( + ZL_Compressor* compressor, + ZL_GraphID graph, + const ZL_GraphParameters* gp) +{ + ZL_RESULT_DECLARE_SCOPE(size_t, compressor); + ZL_ERR_IF_NOT( + CGRAPH_checkGraphIDExists(compressor, graph), + graph_invalid, + "Graph must be registered in compressor"); + + ZL_ERR_IF_ERR(GM_overrideGraphParams(compressor->gm, graph, gp)); + return ZL_returnSuccess(); +} + +ZL_Report ZL_Compressor_overrideBaseGraph( + ZL_Compressor* compressor, + ZL_GraphID graph, + ZL_GraphID newBaseGraph) +{ + ZL_RESULT_DECLARE_SCOPE(size_t, compressor); + ZL_ERR_IF_ERR(GM_overrideBaseGraph(compressor->gm, graph, newBaseGraph)); + return ZL_returnSuccess(); +} + ZL_GraphID ZL_Compressor_registerParameterizedGraph( ZL_Compressor* compressor, const ZL_ParameterizedGraphDesc* desc) @@ -924,6 +985,7 @@ const ZL_FunctionGraphDesc* CGRAPH_getMultiInputGraphDesc( const ZL_Compressor* compressor, ZL_GraphID graphid) { + ZL_DLOG(SEQ, "CGRAPH_getMultiInputGraphDesc (gid=%u)", graphid.gid); ZL_ASSERT_NN(compressor); return GM_getMultiInputGraphDesc(compressor->gm, graphid); } @@ -1195,6 +1257,144 @@ bool ZL_Compressor_Node_isStandard(ZL_Compressor const* cgraph, ZL_NodeID node) return CNODE_isTransformStandard(CGRAPH_getCNode(cgraph, node)); } +ZL_DictID ZL_Compressor_Node_getDictID( + ZL_Compressor const* cgraph, + ZL_NodeID node) +{ + return CNODE_getDictID(CGRAPH_getCNode(cgraph, node)); +} + +ZL_MParamID ZL_Compressor_Node_getMParamID( + ZL_Compressor const* cgraph, + ZL_NodeID node) +{ + const ZL_MParamID* id = CNODE_getMParamID(CGRAPH_getCNode(cgraph, node)); + return *id; +} + +const ZL_MParam* ZL_Compressor_Node_getMParam( + ZL_Compressor const* cgraph, + ZL_NodeID node) +{ + const CNode* cnode = CGRAPH_getCNode(cgraph, node); + if (cnode == NULL) + return NULL; + const ZL_MParam* mp = &cnode->transformDesc.publicDesc.mparam; + if (!ZL_UniqueID_isValid(&mp->mparamID.id)) + return NULL; + return mp; +} + +const void* ZL_Compressor_Node_getMParamObj( + ZL_Compressor const* cgraph, + ZL_NodeID node) +{ + return CNODE_getMParamObj(CGRAPH_getCNode(cgraph, node)); +} + +size_t ZL_Compressor_numMParams(const ZL_Compressor* compressor) +{ + return CDictMgr_MParamMap_size(&compressor->cdictMgr.mparamBlobs); +} + +ZL_Report ZL_Compressor_forEachMParam( + const ZL_Compressor* compressor, + ZL_Compressor_ForEachMParamCallback callback, + void* opaque) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + CDictMgr_MParamMap_Iter it = + CDictMgr_MParamMap_iter(&compressor->cdictMgr.mparamBlobs); + const CDictMgr_MParamMap_Entry* entry; + while ((entry = CDictMgr_MParamMap_Iter_next(&it)) != NULL) { + ZL_ERR_IF_ERR(callback(opaque, &entry->val)); + } + return ZL_returnSuccess(); +} + +ZL_Report CGraph_resolveDictIndices(ZL_Compressor* cgraph) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(cgraph); + const ZL_DictBundle* bundle = cgraph->cdictMgr.bundle; + CNodes_manager* ctm = &cgraph->nmgr.ctm; + const ZL_IDType nbCNodes = CTM_nbCNodes(ctm); + + for (ZL_IDType i = 0; i < nbCNodes; ++i) { + CNodeID cnodeID = { i }; + const CNode* cnode = CTM_getCNode(ctm, cnodeID); + if (cnode == NULL) + continue; + if (cnode->nodetype != node_internalTransform) + continue; + + const ZL_UniqueID* dictUID = &cnode->transformDesc.publicDesc.dictID.id; + if (!ZL_UniqueID_isValid(dictUID)) + continue; + + // This CNode requires a dictionary — resolve its bundle index + ZL_ERR_IF_NULL( + bundle, + dictNoRecord, + "Node '%s' requires a dictionary but no bundle is loaded", + CNODE_getName(cnode)); + + bool found = false; + for (size_t j = 0; j < bundle->info.numDicts; ++j) { + if (ZL_UniqueID_eq(dictUID, &bundle->info.dictIDs[j].id)) { + CTM_setDictIndex(ctm, cnodeID, j); + found = true; + break; + } + } + ZL_ERR_IF_NOT( + found, + dictNoRecord, + "Dictionary for node '%s' not found in bundle", + CNODE_getName(cnode)); + } + return ZL_returnSuccess(); +} + +ZL_Report ZL_Compressor_Node_getDictIndex( + ZL_Compressor const* cgraph, + ZL_NodeID node) +{ + size_t index = CNODE_getDictIndex(CGRAPH_getCNode(cgraph, node)); + if (index == ZL_DICT_INDEX_NONE) { + return ZL_returnError(ZL_ErrorCode_dictNoRecord); + } + return ZL_returnValue(index); +} + +const void* CGRAPH_getDictObj(const ZL_Compressor* cgraph, size_t dictOffset) +{ + ZL_ASSERT_NN(cgraph); + const ZL_DictBundle* bundle = cgraph->cdictMgr.bundle; + if (bundle == NULL) + return NULL; + ZL_ASSERT_LT(dictOffset, bundle->info.numDicts); + return bundle->dicts[dictOffset]->dictObj; +} + +const ZL_BundleID* ZL_Compressor_getDictBundleID( + const ZL_Compressor* compressor) +{ + return CDictMgr_getBundleID(&compressor->cdictMgr); +} + +ZL_Report ZL_Compressor_loadDictBundle( + ZL_Compressor* compressor, + const void* serializedDictBundle, + size_t serializedDictBundleSize) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(compressor); + ZL_ERR_IF_ERR(CDictMgr_loadFatBundle( + &compressor->cdictMgr, + serializedDictBundle, + serializedDictBundleSize)); + return ZL_returnSuccess(); +} + // ****************************************************************** // Errors & warnings // ****************************************************************** diff --git a/src/openzl/compress/cgraph.h b/src/openzl/compress/cgraph.h index 82e86796f..278a4c6e2 100644 --- a/src/openzl/compress/cgraph.h +++ b/src/openzl/compress/cgraph.h @@ -11,6 +11,7 @@ #include "openzl/compress/gcparams.h" // GCParams #include "openzl/shared/portability.h" #include "openzl/zl_compressor.h" // ZL_Compressor +#include "openzl/zl_dict.h" // ZL_Dict #include "openzl/zl_graph_api.h" // ZL_FunctionGraphDesc #include "openzl/zl_opaque_types.h" #include "openzl/zl_segmenter.h" @@ -74,6 +75,73 @@ ZL_NodeID CGraph_registerStandardMITransform( unsigned minFormatVersion, unsigned maxFormatVersion); +/* ===== Dict accessors ===== */ + +/** + * @returns the materialized dictionary object at position @p dictOffset + * within the compressor's loaded bundle, or NULL if no bundle is loaded. + * @pre dictOffset < bundle->numDicts + */ +const void* CGRAPH_getDictObj(const ZL_Compressor* cgraph, size_t dictOffset); + +/* ===== Dict index resolution ===== */ + +/** + * For each CNode that declares a dictID, resolve its positional index within + * the compressor's loaded bundle and write it into CNode.maybeDictIndex. + * CNodes without a dictID keep maybeDictIndex == ZL_DICT_INDEX_NONE. + * @returns success, or an error if a required dict is missing from the bundle. + */ +ZL_Report CGraph_resolveDictIndices(ZL_Compressor* cgraph); + +/* ===== Private actions on Compressor ===== */ + +/** + * Warning: This is part of experimental API for compressor mutation. + * + * Requires that: + * @p graph is a parameterized graph registered in @p compressor + * + * Replaces the parameters of @p graph with @p gp. + * @note: This function does not validate there are no dependency cycles within + * the compressor. + */ +ZL_Report ZL_Compressor_overrideGraphParams( + ZL_Compressor* compressor, + ZL_GraphID graph, + const ZL_GraphParameters* gp); + +/** + * Warning: This is part of experimental API for compressor mutation. + * + * Requires that: + * @p graph is a parameterized graph registered in @p compressor + * @p newBaseGraph is a static graph registered in @p compressor + * @p newBaseGraph is not a parameterization of @p graph + * + * Replaces the base graph of the parameterized graph @p graph with @p + * newBaseGraph and clears the custom nodes, custom graphs, and local params. + * + * @warning All parameterizations are cleared because they applied to the old + * base graph and do not apply to @p newBaseGraph. + * + * @returns success, or an error if the requirements are not met. + */ +ZL_Report ZL_Compressor_overrideBaseGraph( + ZL_Compressor* compressor, + ZL_GraphID graph, + ZL_GraphID newBaseGraph); + +/** + * Look up a previously loaded dict by its ZL_DictID. + * @param matDesc must match the materializer used when the dict was loaded. + * @returns the dict, or NULL if no dict with this ID has been loaded. + */ +const ZL_Dict* CGRAPH_findDict( + const ZL_Compressor* cgraph, + const ZL_DictID* id, + const ZL_MaterializerDesc2* matDesc); + ZL_END_C_DECLS #endif // ZSTRONG_COMPRESS_CGRAPH_H diff --git a/src/openzl/compress/cgraph_validation.c b/src/openzl/compress/cgraph_validation.c deleted file mode 100644 index a492f03c6..000000000 --- a/src/openzl/compress/cgraph_validation.c +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. - -#include "graphmgr.h" -#include "openzl/common/assertion.h" -#include "openzl/common/errors_internal.h" -#include "openzl/compress/cgraph.h" -#include "openzl/zl_errors.h" -#include "openzl/zl_graph_api.h" - -static ZL_Report CGraph_validateGraphAtGid( - ZL_Compressor* cgraph, - ZL_GraphID gid) -{ - ZL_DLOG(BLOCK, "CGraph_validateGraphAtGid (%u)", gid.gid); - - ZL_RET_R_IF_NOT(graph_invalid, ZL_GraphID_isValid(gid)); - - return ZL_returnSuccess(); -} - -ZL_Report ZL_Compressor_validate( - ZL_Compressor* cgraph, - const ZL_GraphID starting_graph) -{ - ZL_DLOG(BLOCK, "ZL_Compressor_validate"); - // Check that we start with a valid gid - ZL_RET_R_IF_ERR(CGraph_validateGraphAtGid(cgraph, starting_graph)); - // Note (@Cyan): since zstrong supports Typed Inputs, there is no longer a - // requirement for Starting Graph to support Serial Input. - return ZL_returnSuccess(); -} diff --git a/src/openzl/compress/cnode.c b/src/openzl/compress/cnode.c index 1c86e23cb..65c34673c 100644 --- a/src/openzl/compress/cnode.c +++ b/src/openzl/compress/cnode.c @@ -200,3 +200,31 @@ bool CNODE_isTransformStandard(CNode const* cnode) { return cnode->publicIDtype == trt_standard; } + +ZL_DictID CNODE_getDictID(CNode const* cnode) +{ + ZL_ASSERT_NN(cnode); + ZL_ASSERT_EQ(cnode->nodetype, node_internalTransform); + return cnode->transformDesc.publicDesc.dictID; +} + +size_t CNODE_getDictIndex(CNode const* cnode) +{ + ZL_ASSERT_NN(cnode); + ZL_ASSERT_EQ(cnode->nodetype, node_internalTransform); + return cnode->maybeDictIndex; +} + +const void* CNODE_getMParamObj(CNode const* cnode) +{ + ZL_ASSERT_NN(cnode); + ZL_ASSERT_EQ(cnode->nodetype, node_internalTransform); + return cnode->mparamObj; +} + +const ZL_MParamID* CNODE_getMParamID(CNode const* cnode) +{ + ZL_ASSERT_NN(cnode); + ZL_ASSERT_EQ(cnode->nodetype, node_internalTransform); + return &cnode->transformDesc.publicDesc.mparam.mparamID; +} diff --git a/src/openzl/compress/cnode.h b/src/openzl/compress/cnode.h index 6235547a0..e606ef242 100644 --- a/src/openzl/compress/cnode.h +++ b/src/openzl/compress/cnode.h @@ -18,6 +18,16 @@ typedef struct { // Set to ZL_MAX_FORMAT_VERSION unless the node is deprecated. unsigned maxFormatVersion; InternalTransform_Desc transformDesc; + /// If a dictionary is specified in the transformDesc, this field is + /// populated with the index of that dict within the compressor's bundle. + /// The "default" value is updated when ZL_Compressor_validate() is called, + /// before compression starts. + size_t maybeDictIndex /* defaults to ZL_DICT_INDEX_NONE */; + /// If an MParam is specified in the transformDesc, this field is populated + /// upon registration time with a pointer to the materialized object. The + /// CNode does not own the object, the ZL_Compressor owns it via the + /// CDictMgr. + const void* mparamObj; /// Standard nodes leave this empty, all other nodes set this. /// When set ZL_Name_unique(&maybeName) == transformDesc.publicDesc.name. ZL_Name maybeName; @@ -129,4 +139,16 @@ CNODE_FormatInfo CNODE_getFormatInfo(CNode const* cnode); // @returns the transformation type of the cnode bool CNODE_isTransformStandard(CNode const* cnode); +/// @returns the dict ID associated with the @p cnode +/// @pre cnode->nodetype == node_internalTransform +ZL_DictID CNODE_getDictID(CNode const* cnode); + +/// @returns the dict index within the compressor's bundle for the @p cnode, +/// or ZL_DICT_INDEX_NONE if no dictionary is associated. +/// @pre cnode->nodetype == node_internalTransform +size_t CNODE_getDictIndex(CNode const* cnode); + +const void* CNODE_getMParamObj(CNode const* cnode); +const ZL_MParamID* CNODE_getMParamID(CNode const* cnode); + #endif // OPENZL_COMPRESS_CNODE_H diff --git a/src/openzl/compress/cnodes.c b/src/openzl/compress/cnodes.c index 9dbea87a0..af1335ee7 100644 --- a/src/openzl/compress/cnodes.c +++ b/src/openzl/compress/cnodes.c @@ -6,21 +6,82 @@ #include "openzl/common/limits.h" // ZL_ENCODER_CUSTOM_NODE_LIMIT #include "openzl/common/vector.h" #include "openzl/common/wire_format.h" // trt_standard +#include "openzl/compress/cdictmgr.h" #include "openzl/compress/cnode.h" #include "openzl/compress/localparams.h" -#include "openzl/shared/mem.h" // ZL_memcpy +#include "openzl/compress/materializer.h" // ZL_Materializer functions +#include "openzl/dict/dict_constants.h" // ZL_DICT_INDEX_NONE +#include "openzl/shared/mem.h" // ZL_memcpy #include "openzl/shared/xxhash.h" #include "openzl/zl_errors.h" +#include "openzl/zl_unique_id.h" // ZL_UniqueID_isValid -ZL_Report CTM_init(CNodes_manager* ctm) +// ****************************************************************** +// CTM (CNodes manager) +// ****************************************************************** + +size_t MaterializedParamMap_hash(const MaterializedParamKey* key) +{ + XXH3_state_t hs; + XXH3_INITSTATE(&hs); + XXH3_64bits_reset(&hs); + + size_t lpHash = ZL_LocalParams_hash(&key->localParams); + XXH3_64bits_update(&hs, &lpHash, sizeof(lpHash)); + + XXH3_64bits_update( + &hs, + &key->matDesc.materializeFn, + sizeof(key->matDesc.materializeFn)); + XXH3_64bits_update( + &hs, + &key->matDesc.dematerializeFn, + sizeof(key->matDesc.dematerializeFn)); + + XXH3_64bits_update(&hs, &key->matDesc.opaque, sizeof(key->matDesc.opaque)); + + // Note: don't hash the matDesc param ID + + return XXH3_64bits_digest(&hs); +} + +bool MaterializedParamMap_eq( + const MaterializedParamKey* lhs, + const MaterializedParamKey* rhs) { + if (!ZL_LocalParams_eq(&lhs->localParams, &rhs->localParams)) { + return false; + } + + if (lhs->matDesc.materializeFn != rhs->matDesc.materializeFn + || lhs->matDesc.dematerializeFn != rhs->matDesc.dematerializeFn) { + return false; + } + + // Note: don't compare the matDesc param ID + + return true; +} + +ZL_Report CTM_init(CNodes_manager* ctm, ZL_OperationContext* opCtx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); VECTOR_INIT(ctm->cnodes, ZL_ENCODER_CUSTOM_NODE_LIMIT); + ctm->materializedParams = + MaterializedParamMap_create(ZL_ENCODER_CUSTOM_NODE_LIMIT); ZL_OpaquePtrRegistry_init(&ctm->opaquePtrs); + ctm->opCtx = opCtx; // Note: this Arena could also be borrowed from the cgraph, // but it doesn't have one (yet). // Note 2: this is why this init function can fail ctm->allocator = ALLOC_HeapArena_create(); - ZL_RET_R_IF_NULL(allocation, ctm->allocator); + ZL_ERR_IF_NULL(ctm->allocator, allocation); + ctm->scratchAllocator = ALLOC_StackArena_create(); + if (ctm->scratchAllocator == NULL) { + ALLOC_Arena_freeArena(ctm->allocator); + ctm->allocator = NULL; + ZL_ERR(allocation); + } return ZL_returnSuccess(); } @@ -28,8 +89,13 @@ void CTM_destroy(CNodes_manager* ctm) { ZL_DLOG(OBJ, "CTM_destroy"); ZL_ASSERT_NN(ctm); + // Dematerialize all materialized params before freeing any corresponding + // CNodes + MPM_dematerializeAllParams(&ctm->materializedParams); + MaterializedParamMap_destroy(&ctm->materializedParams); ZL_OpaquePtrRegistry_destroy(&ctm->opaquePtrs); VECTOR_DESTROY(ctm->cnodes); + ALLOC_Arena_freeArena(ctm->scratchAllocator); ALLOC_Arena_freeArena(ctm->allocator); ZL_zeroes(ctm, sizeof(*ctm)); } @@ -38,6 +104,25 @@ void CTM_reset(CNodes_manager* ctm) { ZL_DLOG(FRAME, "CTM_reset"); ZL_ASSERT_NN(ctm); + // Dematerialize all materialized params before freeing any corresponding + // CNodes + MaterializedParamMap_Iter iter = + MaterializedParamMap_iter(&ctm->materializedParams); + MaterializedParamMap_Entry const* entry; + while ((entry = MaterializedParamMap_Iter_next(&iter)) != NULL) { + if (entry->val.materializedParam != NULL + && entry->key.matDesc.dematerializeFn != NULL) { + ZL_Materializer mat = { + // dematerializers aren't allowed to allocate + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = entry->key.matDesc.opaque, + }; + entry->key.matDesc.dematerializeFn( + &mat, entry->val.materializedParam); + } + } + MaterializedParamMap_clear(&ctm->materializedParams); ZL_OpaquePtrRegistry_reset(&ctm->opaquePtrs); VECTOR_RESET(ctm->cnodes); ALLOC_Arena_freeAll(ctm->allocator); @@ -48,11 +133,12 @@ void CTM_reset(CNodes_manager* ctm) static ZL_Report CTM_transferBuffer(CNodes_manager* ctm, const void** bufferPtr, size_t nbytes) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (nbytes == 0) { *bufferPtr = NULL; } else { void* const dst = ALLOC_Arena_malloc(ctm->allocator, nbytes); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); ZL_memcpy(dst, *bufferPtr, nbytes); *bufferPtr = dst; } @@ -76,9 +162,10 @@ static ZL_Report CTM_transferLocalParams( static ZL_Report CTM_transferStreamTypes(CNodes_manager* cnm, const ZL_Type** outST, size_t nbST) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(BLOCK, "CTM_transferStreamTypes : nbST=%zu", nbST); void const* buffer = *outST; - ZL_RET_R_IF_ERR(CTM_transferBuffer(cnm, &buffer, nbST * sizeof(**outST))); + ZL_ERR_IF_ERR(CTM_transferBuffer(cnm, &buffer, nbST * sizeof(**outST))); *outST = buffer; return ZL_returnSuccess(); } @@ -110,6 +197,7 @@ static ZL_RESULT_OF(CNodeID) CTM_registerCNode( const CNode* srcCNode, const char* prefix) { + ZL_RESULT_DECLARE_SCOPE(CNodeID, NULL); ZL_ASSERT_NN(ctm); ZL_ASSERT_NN(srcCNode); ZL_DLOG(BLOCK, @@ -124,12 +212,11 @@ static ZL_RESULT_OF(CNodeID) CTM_registerCNode( // Need to check the name before pushing into the vector ZL_Name name; - ZL_RET_T_IF_ERR(CNodeID, ZL_Name_init(&name, ctm->allocator, prefix, lnid)); + ZL_ERR_IF_ERR(ZL_Name_init(&name, ctm->allocator, prefix, lnid)); - ZL_RET_T_IF_NOT( - CNodeID, - temporaryLibraryLimitation, - VECTOR_PUSHBACK(ctm->cnodes, *srcCNode)); + ZL_ERR_IF_NOT( + VECTOR_PUSHBACK(ctm->cnodes, *srcCNode), + temporaryLibraryLimitation); CNode* const cnode = &VECTOR_AT(ctm->cnodes, lnid); ZL_DLOG(SEQ, "cnode address = %p", cnode); @@ -141,45 +228,90 @@ static ZL_RESULT_OF(CNodeID) CTM_registerCNode( switch (cnode->nodetype) { /* only localParams */ case node_internalTransform: - ZL_RET_T_IF_ERR( - CNodeID, - CTM_transferPrivateParam(ctm, &cnode->transformDesc)); + ZL_ERR_IF_ERR(CTM_transferPrivateParam(ctm, &cnode->transformDesc)); ZL_MIEncoderDesc* const trDesc = &cnode->transformDesc.publicDesc; - ZL_RET_T_IF_ERR( - CNodeID, - CTM_transferLocalParams(ctm, &trDesc->localParams)); + ZL_ERR_IF_ERR(CTM_transferLocalParams(ctm, &trDesc->localParams)); + // Materialize params if materializer is provided (with + // deduplication) + if (trDesc->materializer.materializeFn != NULL) { + // Validate provided params don't contain the paramId reserved + // for the materializer + ZL_ERR_IF_ERR(MPM_validateMaterializedParamId( + &trDesc->localParams, trDesc->materializer.paramId)); + // Add the materialized object to refParams + ZL_ERR_IF_ERR(MPM_addOrReuseMaterializedParam( + ctm->allocator, + ctm->scratchAllocator, + &ctm->materializedParams, + ctm->opCtx, + &trDesc->localParams, + &trDesc->materializer)); + } + // Materialize MParam if content and materializer are provided + if (trDesc->mparam.content != NULL || trDesc->mparam.size != 0) { + ZL_MParam mparam = trDesc->mparam; + // Ensure MParam is properly formed + ZL_ERR_IF_NULL( + mparam.content, + nodeParameter_invalid, + "Passed MParam must have non-null content"); + ZL_ERR_IF_EQ( + mparam.size, + 0, + nodeParameter_invalid, + "Passed MParam must have non-zero size"); + + // Ensure there's a proper materializer + ZL_ERR_IF( + trDesc->mparamMat.materializeFn == NULL + && trDesc->mparamMat.dematerializeFn == NULL, + nodeParameter_invalid, + "MParam requested on a node without a materializer"); + ZL_ERR_IF( + trDesc->mparamMat.materializeFn == NULL + || trDesc->mparamMat.dematerializeFn == NULL, + nodeParameter_invalid, + "MParam materializer must declare both a materialize and dematerialize function"); + + // If there's no ID, generate one + if (!ZL_UniqueID_isValid(&mparam.mparamID.id)) { + mparam.mparamID.id = ZL_UniqueID_computeSHA256( + mparam.content, mparam.size); + } + + ZL_ASSERT_NN(ctm->cdictMgr); + ZL_RESULT_OF(ZL_ConstVoidPtr) + matRes = CDictMgr_materializeMParam( + ctm->cdictMgr, mparam, &trDesc->mparamMat); + ZL_ERR_IF_ERR(matRes); + cnode->mparamObj = ZL_RES_value(matRes); + // Replace the CNode MParam with the cached version with + // guaranteed lifetime + trDesc->mparam = + *CDictMgr_getMParam(ctm->cdictMgr, mparam.mparamID); + } // A valid transform must have at least one input - ZL_RET_T_IF_LT( - CNodeID, - node_invalid_input, + ZL_ERR_IF_LT( CNODE_getNbInputPorts(cnode), 1, + node_invalid_input, "Transform '%s' must declare at least 1 Input Port!", CNODE_getName(cnode)); // and at most ZL_runtimeNodeInputLimit() inputs - ZL_RET_T_IF_GT( - CNodeID, - node_invalid_input, + ZL_ERR_IF_GT( CNODE_getNbInputPorts(cnode), ZL_runtimeNodeInputLimit(ZL_MAX_FORMAT_VERSION), + node_invalid_input, "Too many inputs (%u) defined for transform '%s' (max=%u)", CNODE_getNbInputPorts(cnode), CNODE_getName(cnode), ZL_runtimeNodeInputLimit(ZL_MAX_FORMAT_VERSION)); - ZL_RET_T_IF_ERR( - CNodeID, - CTM_transferStreamTypes( - ctm, &trDesc->gd.inputTypes, trDesc->gd.nbInputs)); - // A valid transform must have at least one output or outcome - ZL_ASSERT_GT(CNODE_getNbOutcomes(cnode), 0); - ZL_RET_T_IF_ERR( - CNodeID, - CTM_transferStreamTypes( - ctm, &trDesc->gd.soTypes, trDesc->gd.nbSOs)); - ZL_RET_T_IF_ERR( - CNodeID, - CTM_transferStreamTypes( - ctm, &trDesc->gd.voTypes, trDesc->gd.nbVOs)); + ZL_ERR_IF_ERR(CTM_transferStreamTypes( + ctm, &trDesc->gd.inputTypes, trDesc->gd.nbInputs)); + ZL_ERR_IF_ERR(CTM_transferStreamTypes( + ctm, &trDesc->gd.soTypes, trDesc->gd.nbSOs)); + ZL_ERR_IF_ERR(CTM_transferStreamTypes( + ctm, &trDesc->gd.voTypes, trDesc->gd.nbVOs)); // Add automatic state ID when none provided if (trDesc->trStateMgr.optionalStateID == 0) { // Note: currently, void* opaque pointers are not exposed. @@ -191,8 +323,7 @@ static ZL_RESULT_OF(CNodeID) CTM_registerCNode( case node_illegal: // We should never reach here with an illegal node ZL_ASSERT_FAIL("Impossible, illegal node type"); - ZL_RET_T_ERR( - CNodeID, GENERIC, "Trying to register an illegal node"); + ZL_ERR(GENERIC, "Trying to register an illegal node"); default: ZL_ASSERT_FAIL( "node type (%u) not possible at this stage", @@ -206,15 +337,16 @@ CTM_registerCustomTransform( CNodes_manager* ctm, const InternalTransform_Desc* ctd) { + ZL_RESULT_DECLARE_SCOPE(CNodeID, NULL); ZL_DLOG(BLOCK, "CTM_registerCustomTransform"); - ZL_RET_T_IF_ERR( - CNodeID, - ZL_OpaquePtrRegistry_register( - &ctm->opaquePtrs, ctd->publicDesc.opaque)); - CNode cnode = { .nodetype = node_internalTransform, - .publicIDtype = trt_custom, - .transformDesc = *ctd, - .baseNodeID = ZL_NODE_ILLEGAL }; + ZL_ERR_IF_ERR(ZL_OpaquePtrRegistry_register( + &ctm->opaquePtrs, ctd->publicDesc.opaque)); + CNode cnode = { .nodetype = node_internalTransform, + .publicIDtype = trt_custom, + .transformDesc = *ctd, + .maybeDictIndex = ZL_DICT_INDEX_NONE, + .mparamObj = NULL, + .baseNodeID = ZL_NODE_ILLEGAL }; const char* name = ctd->publicDesc.name; // Registered => No need to free cnode.transformDesc.publicDesc.opaque.freeFn = NULL; @@ -228,16 +360,16 @@ CTM_registerStandardTransform( unsigned minFormatVersion, unsigned maxFormatVersion) { + ZL_RESULT_DECLARE_SCOPE(CNodeID, NULL); ZL_DLOG(BLOCK, "CTM_registerStandardTransform"); - ZL_RET_T_IF_ERR( - CNodeID, - ZL_OpaquePtrRegistry_register( - &ctm->opaquePtrs, ctd->publicDesc.opaque)); + ZL_ERR_IF_ERR(ZL_OpaquePtrRegistry_register( + &ctm->opaquePtrs, ctd->publicDesc.opaque)); CNode cnode = { .nodetype = node_internalTransform, .publicIDtype = trt_standard, .minFormatVersion = minFormatVersion, .maxFormatVersion = maxFormatVersion, .transformDesc = *ctd, + .maybeDictIndex = ZL_DICT_INDEX_NONE, .baseNodeID = ZL_NODE_ILLEGAL }; const char* name = ctd->publicDesc.name; // Registered => No need to free @@ -251,17 +383,23 @@ CTM_parameterizeNode( const CNode* srcCNode, const ZL_ParameterizedNodeDesc* desc) { - ZL_RET_T_IF_NE( - CNodeID, - node_invalid, + ZL_RESULT_DECLARE_SCOPE(CNodeID, NULL); + ZL_ERR_IF_NE( srcCNode->nodetype, node_internalTransform, + node_invalid, "Invalid CNode"); CNode clonedCNode = *srcCNode; clonedCNode.baseNodeID = desc->node; if (desc->localParams) { clonedCNode.transformDesc.publicDesc.localParams = *desc->localParams; } + if (ZL_UniqueID_isValid(&desc->dictID.id)) { + clonedCNode.transformDesc.publicDesc.dictID = desc->dictID; + } + if (ZL_UniqueID_isValid(&desc->mparam.mparamID.id)) { + clonedCNode.transformDesc.publicDesc.mparam = desc->mparam; + } if (desc->name == NULL) { const ZL_Name name = CNODE_getNameObj(srcCNode); // Use the name prefix rather than the unique name, because this node @@ -275,6 +413,9 @@ CTM_parameterizeNode( void CTM_rollback(CNodes_manager* ctm, CNodeID id) { + // Note that local params and materialized params are not rolled back. Local + // params will stay allocated in the arena and materialized params will stay + // allocated in the vector. ZL_ASSERT_EQ(id.cnid + 1, VECTOR_SIZE(ctm->cnodes)); VECTOR_POPBACK(ctm->cnodes); } @@ -291,3 +432,10 @@ ZL_IDType CTM_nbCNodes(const CNodes_manager* ctm) { return (ZL_IDType)VECTOR_SIZE(ctm->cnodes); } + +void CTM_setDictIndex(CNodes_manager* ctm, CNodeID id, size_t index) +{ + ZL_ASSERT_NN(ctm); + ZL_ASSERT_LT(id.cnid, VECTOR_SIZE(ctm->cnodes)); + VECTOR_AT(ctm->cnodes, id.cnid).maybeDictIndex = index; +} diff --git a/src/openzl/compress/cnodes.h b/src/openzl/compress/cnodes.h index 30e89984d..2eb00f397 100644 --- a/src/openzl/compress/cnodes.h +++ b/src/openzl/compress/cnodes.h @@ -8,8 +8,8 @@ #include "openzl/common/vector.h" #include "openzl/compress/cnode.h" // CNode #include "openzl/compress/compress_types.h" // InternalTransform_Desc +#include "openzl/compress/materializer.h" // MaterializedParamMap #include "openzl/shared/portability.h" -#include "openzl/zl_errors.h" // ZL_RESULT_DECLARE_TYPE_IMPL, ZL_RESULT_OF ZL_BEGIN_C_DECLS @@ -20,15 +20,20 @@ ZL_RESULT_DECLARE_TYPE(CNodeID); DECLARE_VECTOR_TYPE(CNode) -typedef struct { +struct CDictMgr_s; // forward declaration +typedef struct CNodes_manager_s { VECTOR(CNode) cnodes; ZL_OpaquePtrRegistry opaquePtrs; Arena* allocator; + Arena* scratchAllocator; + struct CDictMgr_s* cdictMgr; + MaterializedParamMap materializedParams; + ZL_OperationContext* opCtx; // Non-owning pointer to error context } CNodes_manager; // Lifetime Management -ZL_Report CTM_init(CNodes_manager* ctm); +ZL_Report CTM_init(CNodes_manager* ctm, ZL_OperationContext* opCtx); void CTM_destroy(CNodes_manager* ctm); @@ -72,8 +77,15 @@ CTM_registerStandardTransform( unsigned minFormatVersion, unsigned maxFormatVersion); -/// Rolls back the registration of @p id -/// @warning This only works when @p id was the last node registered +/// Sets the dict index for a CNode. Used during validation to resolve +/// the dict's position within the compressor's bundle. +void CTM_setDictIndex(CNodes_manager* ctm, CNodeID id, size_t index); + +/** + * Rolls back the registration of @p id + * @warning This only works when @p id was the last node registered. If local + * params are transferred or a materialized param created, it will not be freed. + */ void CTM_rollback(CNodes_manager* ctm, CNodeID id); ZL_END_C_DECLS diff --git a/src/openzl/compress/compress2.c b/src/openzl/compress/compress2.c index faaef1b12..4a9d1acce 100644 --- a/src/openzl/compress/compress2.c +++ b/src/openzl/compress/compress2.c @@ -38,6 +38,7 @@ static ZL_Report writeFrameHeader( const ZL_Data* inputs[], size_t numInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_DLOG(BLOCK, "writeFrameHeader"); // Check format limitations @@ -47,10 +48,10 @@ static ZL_Report writeFrameHeader( ZL_ASSERT( ZL_isFormatVersionSupported(formatVersion), "Format should already have been validated."); - ZL_RET_R_IF_GT( - formatVersion_unsupported, + ZL_ERR_IF_GT( numInputs, - ZL_runtimeInputLimit(formatVersion)); + ZL_runtimeInputLimit(formatVersion), + formatVersion_unsupported); // Allocate array for description of inputs ALLOC_MALLOC_CHECKED(InputDesc, inputDescs, numInputs); @@ -60,6 +61,7 @@ static ZL_Report writeFrameHeader( inputDescs[n].numElts = ZL_Data_numElts(inputs[n]); } + ZL_Comment comment = CCTX_getHeaderComment(cctx); // Requested frame properties (checksum) ZL_FrameProperties const fprop = { .hasContentChecksum = @@ -68,18 +70,20 @@ static ZL_Report writeFrameHeader( .hasCompressedChecksum = CCTX_getAppliedGParam(cctx, ZL_CParam_compressedChecksum) != ZL_TernaryParam_disable, + .hasComment = (comment.size != 0), }; EFH_FrameInfo const fi = { .inputDescs = inputDescs, .numInputs = numInputs, .fprop = &fprop, + .comment = comment, }; ZL_Report const r = EFH_writeFrameHeader(dst, dstCapacity, &fi, formatVersion); - free(inputDescs); + ZL_free(inputDescs); return r; } @@ -128,6 +132,7 @@ ZL_Report CCTX_compressInputs_withGraphSet( size_t nbInputs) { // @note all compression entry points converge here. + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_DLOG(FRAME, "CCTX_compressInputs_withGraphSet"); ZL_Report const r = CCTX_compressInputs_withGraphSet_stage2( @@ -138,7 +143,7 @@ ZL_Report CCTX_compressInputs_withGraphSet( CCTX_clean(cctx); if (!CCTX_getAppliedGParam(cctx, ZL_CParam_stickyParameters)) { // If cctx parameters are not explicitly sticky, reset them - ZL_RET_R_IF_ERR(ZL_CCtx_resetParameters(cctx)); + ZL_ERR_IF_ERR(ZL_CCtx_resetParameters(cctx)); } return r; @@ -151,8 +156,9 @@ static ZL_Report CCTX_compressSerial_withGraphSet( const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_Data* stream = STREAM_create(ZL_DATA_ID_INPUTSTREAM); - ZL_RET_R_IF_NULL(allocation, stream); + ZL_ERR_IF_NULL(stream, allocation); ZL_Report ret = STREAM_refConstBuffer(stream, src, ZL_Type_serial, 1, srcSize); if (!ZL_isError(ret)) { @@ -172,7 +178,8 @@ static ZL_Report ZL_CCtx_compress_usingCGraph( size_t srcSize, const ZL_Compressor* cgraph) { - ZL_RET_R_IF_ERR(ZL_CCtx_refCompressor(cctx, cgraph)); + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_ERR_IF_ERR(ZL_CCtx_refCompressor(cctx, cgraph)); return CCTX_compressSerial_withGraphSet( cctx, dst, dstCapacity, src, srcSize); } @@ -185,9 +192,10 @@ static ZL_Report ZL_CCtx_compress_usingGraph2Desc( size_t srcSize, ZL_Graph2Desc gfDesc) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_LOG(FRAME, "ZL_CCtx_compress_usingGraph2Desc (srcSize=%zu)", srcSize); ZL_ASSERT_NN(cctx); - ZL_RET_R_IF_ERR(CCTX_setLocalCGraph_usingGraph2Desc(cctx, gfDesc)); + ZL_ERR_IF_ERR(CCTX_setLocalCGraph_usingGraph2Desc(cctx, gfDesc)); return CCTX_compressSerial_withGraphSet( cctx, dst, dstCapacity, src, srcSize); } @@ -209,9 +217,10 @@ ZL_Report ZL_compress_usingGraphFn( size_t srcSize, ZL_GraphFn graphFunction) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_LOG(FRAME, "ZL_compress_usingGraphFn"); ZL_CCtx* const cctx = ZL_CCtx_create(); - ZL_RET_R_IF_NULL(allocation, cctx); + ZL_ERR_IF_NULL(cctx, allocation); ZL_Graph2Desc const g2d = { useGraphF, &(ZL_Graph_s){ graphFunction } }; ZL_Report r = ZL_CCtx_compress_usingGraph2Desc( @@ -230,8 +239,9 @@ ZL_Report ZL_compress_usingCompressor( size_t srcSize, const ZL_Compressor* compressor) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_CCtx* const cctx = CCTX_create(); - ZL_RET_R_IF_NULL(allocation, cctx); + ZL_ERR_IF_NULL(cctx, allocation); ZL_Report r = ZL_CCtx_compress_usingCGraph( cctx, dst, dstCapacity, src, srcSize, compressor); @@ -332,21 +342,22 @@ ZL_Report ZL_CCtx_compressMultiTypedRef( const ZL_TypedRef* inputs[], size_t nbInputs) { - WAYPOINT( + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + CWAYPOINT( on_ZL_CCtx_compressMultiTypedRef_start, cctx, dst, dstCapacity, inputs, nbInputs); - ZL_RET_R_IF_NULL(compressionParameter_invalid, inputs); + ZL_ERR_IF_NULL(inputs, compressionParameter_invalid); // this works directly because ZL_TypedRef == ZL_Data // In the future, if these types diverge, a conversion operation will be // required - ZL_RET_R_IF_NOT(compressionParameter_invalid, CCTX_isGraphSet(cctx)); + ZL_ERR_IF_NOT(CCTX_isGraphSet(cctx), compressionParameter_invalid); const ZL_Report rep = CCTX_compressInputs_withGraphSet( cctx, dst, dstCapacity, ZL_codemodInputsAsDatas(inputs), nbInputs); - WAYPOINT(on_ZL_CCtx_compressMultiTypedRef_end, cctx, rep); + CWAYPOINT(on_ZL_CCtx_compressMultiTypedRef_end, cctx, rep); return rep; } @@ -375,3 +386,15 @@ ZL_Report ZL_CCtx_compress( return ZL_CCtx_compress_usingGraphID( cctx, dst, dstCapacity, src, srcSize, ZL_GRAPH_SERIAL_COMPRESS); } + +ZL_Report +ZL_CCtx_addHeaderComment(ZL_CCtx* cctx, const void* comment, size_t commentSize) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); + ZL_ERR_IF_GT( + commentSize, + ZL_MAX_HEADER_COMMENT_SIZE_LIMIT, + parameter_invalid, + "Max header comment size limit exceeded"); + return CCTX_setHeaderComment(cctx, comment, commentSize); +} diff --git a/src/openzl/compress/compressor_serialization.c b/src/openzl/compress/compressor_serialization.c index 1828d00c7..aab71a4ce 100644 --- a/src/openzl/compress/compressor_serialization.c +++ b/src/openzl/compress/compressor_serialization.c @@ -17,6 +17,64 @@ #include "openzl/common/vector.h" #include "openzl/compress/localparams.h" +#include "openzl/compress/private_nodes.h" + +#include "openzl/zl_materializer.h" + +static ZL_RESULT_OF(StringView) + cs_hexEncodeMParamID(Arena* const arena, const ZL_MParamID* id) +{ + ZL_RESULT_DECLARE_SCOPE(StringView, NULL); + const size_t encSize = sizeof(id->id.bytes) * 2; + char* buf = ALLOC_Arena_malloc(arena, encSize + 1); + ZL_ERR_IF_NULL(buf, allocation); + for (size_t i = 0; i < sizeof(id->id.bytes); i++) { + const uint8_t byte = id->id.bytes[i]; + buf[i * 2] = "0123456789abcdef"[byte >> 4]; + buf[i * 2 + 1] = "0123456789abcdef"[byte & 0x0f]; + } + buf[encSize] = '\0'; + return ZL_WRAP_VALUE(StringView_init(buf, encSize)); +} + +ZL_RESULT_DECLARE_TYPE(ZL_MParamID); + +static ZL_RESULT_OF(ZL_MParamID) cs_hexDecodeMParamID(const StringView sv) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_MParamID, NULL); + ZL_MParamID decoded; + memset(&decoded, 0, sizeof(decoded)); + ZL_ERR_IF_NE( + sv.size, + sizeof(decoded.id.bytes) * 2, + corruption, + "Failed to hex-decode mparam ID: wrong length"); + for (size_t i = 0; i < sizeof(decoded.id.bytes); i++) { + const char hi = sv.data[i * 2]; + const char lo = sv.data[i * 2 + 1]; + uint8_t nib_hi, nib_lo; + if (hi >= '0' && hi <= '9') { + nib_hi = (uint8_t)(hi - '0'); + } else if (hi >= 'a' && hi <= 'f') { + nib_hi = (uint8_t)(hi - 'a' + 10); + } else if (hi >= 'A' && hi <= 'F') { + nib_hi = (uint8_t)(hi - 'A' + 10); + } else { + ZL_ERR(corruption, "Invalid hex char in mparam ID"); + } + if (lo >= '0' && lo <= '9') { + nib_lo = (uint8_t)(lo - '0'); + } else if (lo >= 'a' && lo <= 'f') { + nib_lo = (uint8_t)(lo - 'a' + 10); + } else if (lo >= 'A' && lo <= 'F') { + nib_lo = (uint8_t)(lo - 'A' + 10); + } else { + ZL_ERR(corruption, "Invalid hex char in mparam ID"); + } + decoded.id.bytes[i] = (uint8_t)((nib_hi << 4) | nib_lo); + } + return ZL_WRAP_VALUE(decoded); +} //////////////////////////////////////// // Misc Utilities @@ -278,6 +336,11 @@ ZL_DECLARE_PREDEF_MAP_TYPE( ZL_LocalParams, StringView); +ZL_DECLARE_PREDEF_MAP_TYPE( + CompressorSerializer_MParamMap, + StringView, + ZL_MParam); + //////////////////////////////////////// // Intermediate Node Representation //////////////////////////////////////// @@ -286,6 +349,7 @@ typedef struct { StringView node_name; StringView base_node_name; StringView param_set_name; + StringView mparam_id; } CompressorSerializer_Node; //////////////////////////////////////// @@ -355,6 +419,7 @@ struct ZL_CompressorSerializer_s { // finally the serialized CBOR. CompressorSerializer_ParamSetCanonicalizationMap param_names; CompressorSerializer_ParamSetMap params; + CompressorSerializer_MParamMap mparams; CompressorSerializer_NodeMap nodes; CompressorSerializer_GraphMap graphs; @@ -366,6 +431,7 @@ struct ZL_CompressorSerializer_s { // First-level nodes in the serialized tree. A1C_Item* params_root; + A1C_Item* mparams_root; A1C_Item* nodes_root; A1C_Item* graphs_root; }; @@ -395,6 +461,7 @@ static void ZL_CompressorSerializer_destroy( CompressorSerializer_ParamSet_destroy(¶m_set_entry->val); } CompressorSerializer_ParamSetMap_destroy(&state->params); + CompressorSerializer_MParamMap_destroy(&state->mparams); CompressorSerializer_ParamSetCanonicalizationMap_destroy( &state->param_names); ZL_OC_destroy(&state->opCtx); @@ -424,6 +491,8 @@ static ZL_Report ZL_CompressorSerializer_init( ZL_COMPRESSOR_SERIALIZATION_PARAM_SET_LIMIT); state->nodes = CompressorSerializer_NodeMap_create( ZL_COMPRESSOR_SERIALIZATION_NODE_COUNT_LIMIT); + state->mparams = CompressorSerializer_MParamMap_create( + ZL_COMPRESSOR_SERIALIZATION_NODE_COUNT_LIMIT); state->graphs = CompressorSerializer_GraphMap_create(ZL_ENCODER_GRAPH_LIMIT); @@ -587,7 +656,15 @@ static ZL_Report CompressorSerializer_serializeGraph_cb( ZL_CompressorSerializer* const state = (ZL_CompressorSerializer*)opaque; ZL_RESULT_DECLARE_SCOPE_REPORT(state); - const ZL_GraphType graph_type = ZL_Compressor_getGraphType(c, gid); + ZL_GraphType graph_type = ZL_Compressor_getGraphType(c, gid); + if (graph_type == ZL_GraphType_segmenter) { + // Check the base graph Id's graph type + const ZL_GraphID base_gid = ZL_Compressor_Graph_getBaseGraphID(c, gid); + if (base_gid.gid != ZL_GRAPH_ILLEGAL.gid) { + // This is actually a parameterized graph, not a segmenter. + graph_type = ZL_GraphType_parameterized; + } + } switch (graph_type) { case ZL_GraphType_standard: case ZL_GraphType_selector: @@ -785,7 +862,7 @@ static ZL_Report CompressorSerializer_serializeNode_cb( ZL_CompressorSerializer* const state = (ZL_CompressorSerializer*)opaque; ZL_RESULT_DECLARE_SCOPE_REPORT(state); - CompressorSerializer_Node info = {}; + CompressorSerializer_Node info = { 0 }; const ZL_NodeID base_nid = ZL_Compressor_Node_getBaseNodeID(c, nid); { @@ -846,6 +923,27 @@ static ZL_Report CompressorSerializer_serializeNode_cb( ZL_CompressorSerializer_recordParamSet(state, &lp)); info.param_set_name = param_set_name; + { + ZL_MParamID mid = ZL_Compressor_Node_getMParamID(c, nid); + if (ZL_MParamID_hasValue(&mid)) { + ZL_TRY_LET_CONST( + StringView, + mparam_id_sv, + cs_hexEncodeMParamID(state->arena, &mid)); + ZL_ERR_IF_NULL( + CompressorSerializer_MParamMap_find( + &state->mparams, &mparam_id_sv), + logicError, + "Node '%.*s' references mparam ID '%.*s' which was not " + "recorded in the mparams map", + (int)info.node_name.size, + info.node_name.data, + (int)mparam_id_sv.size, + mparam_id_sv.data); + info.mparam_id = mparam_id_sv; + } + } + { const CompressorSerializer_NodeMap_Entry entry = (CompressorSerializer_NodeMap_Entry){ @@ -1014,7 +1112,7 @@ static ZL_Report ZL_CompressorSerializer_encodeNode( A1C_Item_string_refStringView(node_key_item, entry->key); const A1C_MapBuilder node_builder = - A1C_Item_map_builder(node_val_item, 2, &state->a1c_arena); + A1C_Item_map_builder(node_val_item, 3, &state->a1c_arena); { A1C_MAP_TRY_ADD(pair, node_builder); @@ -1028,6 +1126,12 @@ static ZL_Report ZL_CompressorSerializer_encodeNode( A1C_Item_string_refStringView(&pair->val, info->param_set_name); } + if (info->mparam_id.size > 0) { + A1C_MAP_TRY_ADD(pair, node_builder); + A1C_Item_string_refCStr(&pair->key, "mparam"); + A1C_Item_string_refStringView(&pair->val, info->mparam_id); + } + return ZL_returnSuccess(); } @@ -1201,6 +1305,61 @@ static ZL_Report ZL_CompressorSerializer_encodeGraphs( return ZL_returnSuccess(); } +static ZL_Report recordMParam_cb(void* opaque, const ZL_MParam* mparam) +{ + ZL_CompressorSerializer* const state = (ZL_CompressorSerializer*)opaque; + ZL_RESULT_DECLARE_SCOPE_REPORT(state); + + ZL_TRY_LET_CONST( + StringView, + key, + cs_hexEncodeMParamID(state->arena, &mparam->mparamID)); + + const CompressorSerializer_MParamMap_Entry entry = + (CompressorSerializer_MParamMap_Entry){ + .key = key, + .val = *mparam, + }; + const CompressorSerializer_MParamMap_Insert insert = + CompressorSerializer_MParamMap_insert(&state->mparams, &entry); + ZL_ERR_IF(insert.badAlloc, allocation); + return ZL_returnSuccess(); +} + +static ZL_Report ZL_CompressorSerializer_recordMParams( + ZL_CompressorSerializer* const state, + const ZL_Compressor* const compressor) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(state); + ZL_ERR_IF_ERR( + ZL_Compressor_forEachMParam(compressor, recordMParam_cb, state)); + return ZL_returnSuccess(); +} + +static ZL_Report ZL_CompressorSerializer_encodeMParams( + ZL_CompressorSerializer* const state) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(state); + const size_t numBlobs = + CompressorSerializer_MParamMap_size(&state->mparams); + A1C_MapBuilder builder = A1C_Item_map_builder( + state->mparams_root, numBlobs, &state->a1c_arena); + + CompressorSerializer_MParamMap_Iter it = + CompressorSerializer_MParamMap_iter(&state->mparams); + const CompressorSerializer_MParamMap_Entry* entry; + while ((entry = CompressorSerializer_MParamMap_Iter_next(&it)) != NULL) { + A1C_MAP_TRY_ADD(pair, builder); + ZL_ERR_IF_NULL(pair, allocation); + A1C_Item_string_refStringView(&pair->key, entry->key); + A1C_Item_bytes_ref( + &pair->val, + (const uint8_t*)entry->val.content, + entry->val.size); + } + return ZL_returnSuccess(); +} + static ZL_Report ZL_CompressorSerializer_setStartingGraph( ZL_CompressorSerializer* const state, const ZL_Compressor* const compressor, @@ -1368,6 +1527,9 @@ static ZL_Report ZL_CompressorSerializer_serializeInner( // Extract info about components from compressor + // MParams + ZL_ERR_IF_ERR(ZL_CompressorSerializer_recordMParams(state, c)); + // Nodes ZL_ERR_IF_ERR(ZL_Compressor_forEachNode( c, CompressorSerializer_serializeNode_cb, state)); @@ -1388,7 +1550,7 @@ static ZL_Report ZL_CompressorSerializer_serializeInner( A1C_Item* global_params; { const A1C_MapBuilder root_map_builder = - A1C_Item_map_builder(state->root, 6, &state->a1c_arena); + A1C_Item_map_builder(state->root, 7, &state->a1c_arena); { A1C_MAP_TRY_ADD(pair, root_map_builder); A1C_Item_string_refCStr(&pair->key, "version"); @@ -1399,6 +1561,11 @@ static ZL_Report ZL_CompressorSerializer_serializeInner( A1C_Item_string_refCStr(&pair->key, "params"); state->params_root = &pair->val; } + { + A1C_MAP_TRY_ADD(pair, root_map_builder); + A1C_Item_string_refCStr(&pair->key, "mparams"); + state->mparams_root = &pair->val; + } { A1C_MAP_TRY_ADD(pair, root_map_builder); A1C_Item_string_refCStr(&pair->key, "nodes"); @@ -1431,6 +1598,9 @@ static ZL_Report ZL_CompressorSerializer_serializeInner( // Write Params ZL_ERR_IF_ERR(ZL_CompressorSerializer_encodeParams(state)); + // Write MParams + ZL_ERR_IF_ERR(ZL_CompressorSerializer_encodeMParams(state)); + // Write Nodes ZL_ERR_IF_ERR(ZL_CompressorSerializer_encodeNodes(state)); @@ -1523,6 +1693,11 @@ ZL_DECLARE_PREDEF_MAP_TYPE( StringView, ZL_LocalParams); +ZL_DECLARE_PREDEF_MAP_TYPE( + CompressorDeserializer_MParamMap, + StringView, + ZL_MParam); + // typedef'ed in the header struct ZL_CompressorDeserializer_s { // May be NULL! @@ -1553,6 +1728,7 @@ struct ZL_CompressorDeserializer_s { CompressorDeserializer_NameMap graph_names; CompressorDeserializer_ParamMap cached_params; + CompressorDeserializer_MParamMap mparams_map; }; static void ZL_CompressorDeserializer_destroy( @@ -1563,6 +1739,7 @@ static void ZL_CompressorDeserializer_destroy( } CompressorDeserializer_ParamMap_destroy(&state->cached_params); + CompressorDeserializer_MParamMap_destroy(&state->mparams_map); CompressorDeserializer_NameMap_destroy(&state->graph_names); CompressorDeserializer_NameMap_destroy(&state->node_names); @@ -1599,6 +1776,9 @@ static ZL_Report ZL_CompressorDeserializer_init( state->cached_params = CompressorDeserializer_ParamMap_create(ZL_ENCODER_GRAPH_LIMIT); + state->mparams_map = CompressorDeserializer_MParamMap_create( + ZL_COMPRESSOR_SERIALIZATION_NODE_COUNT_LIMIT); + return ZL_returnSuccess(); } @@ -1799,7 +1979,7 @@ static ZL_RESULT_OF(ZL_LocalParams) resolution = &_dummy; } - ZL_LocalParams result = (ZL_LocalParams){}; + ZL_LocalParams result = (ZL_LocalParams){ 0 }; if (base != NULL) { result = *base; } @@ -2185,8 +2365,31 @@ static ZL_Report ZL_CompressorDeserializer_tryBuildNode( &base_local_params, NULL)); - const ZL_NodeID node_id = - ZL_Compressor_cloneNode(compressor, base_nid, &local_params); + // Read optional "mparam" field (hex string key) and look up the + // corresponding entry from the pre-parsed mparams map. + ZL_MParam mparam = { .mparamID = ZL_MPARAM_ID_NULL }; + const A1C_Item* mparam_item = A1C_Map_get_cstr(&val_map, "mparam"); + if (mparam_item != NULL) { + A1C_TRY_EXTRACT_STRING(mparam_key_str, mparam_item); + const StringView mparam_key_sv = StringView_initFromA1C(mparam_key_str); + + const CompressorDeserializer_MParamMap_Entry* const mp_entry = + CompressorDeserializer_MParamMap_find( + &state->mparams_map, &mparam_key_sv); + ZL_ERR_IF_NULL( + mp_entry, + corruption, + "Node references mparam ID not found in mparams section"); + mparam = mp_entry->val; + } + + const ZL_NodeID node_id = ZL_Compressor_registerParameterizedNode( + compressor, + &(const ZL_ParameterizedNodeDesc){ + .node = base_nid, + .localParams = &local_params, + .mparam = mparam, + }); ZL_ERR_IF_EQ(node_id.nid, ZL_NODE_ILLEGAL.nid, corruption); const char* new_name = ZL_Compressor_Node_getName(compressor, node_id); @@ -2410,6 +2613,12 @@ static ZL_Report ZL_CompressorDeserializer_tryBuildGraph( ZL_ASSERT_NE(base_gid.gid, ZL_GRAPH_ILLEGAL.gid); } + ZL_ERR_IF_EQ( + base_gid.gid, + ZL_PrivateStandardGraphID_serial_store, + corruption, + "The private store graph cannot be used as a base graph and parameterized"); + const ZL_LocalParams base_graph_local_params = ZL_Compressor_Graph_getLocalParams(compressor, base_gid); ZL_TRY_LET_CONST( @@ -2966,6 +3175,7 @@ static ZL_Report ZL_CompressorDeserializer_checkVersion( ZL_CompressorDeserializer* const state) { ZL_RESULT_DECLARE_SCOPE_REPORT(state); + /* A1C_TRY_EXTRACT_MAP(root_map, state->root); A1C_TRY_EXTRACT_INT64(version, A1C_Map_get_cstr(&root_map, "version")); ZL_ERR_IF_NE( @@ -2975,14 +3185,14 @@ static ZL_Report ZL_CompressorDeserializer_checkVersion( "The compressor serialization format is unstable: compressor " "deserialization currently only works with serialized compressors " "generated by the same library version. This serialized compressor " - "was generated by library version v%u.%u.%u, but you're attempting to " - "deserialize it with library version v%u.%u.%u.", - version / 10000, + "was generated by library version v%u.%u.%u, but you're attempting + to " "deserialize it with library version v%u.%u.%u.", version / 10000, (version / 100) % 100, version % 100, ZL_LIBRARY_VERSION_MAJOR, ZL_LIBRARY_VERSION_MINOR, ZL_LIBRARY_VERSION_PATCH); + */ return ZL_returnSuccess(); } @@ -3028,6 +3238,50 @@ static ZL_Report ZL_CompressorDeserializer_setupGraphs( return ZL_returnSuccess(); } +static ZL_Report ZL_CompressorDeserializer_setupMParams( + ZL_CompressorDeserializer* const state) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(state); + A1C_TRY_EXTRACT_MAP(root_map, state->root); + const A1C_Item* const mparams = A1C_Map_get_cstr(&root_map, "mparams"); + if (mparams == NULL) { + return ZL_returnSuccess(); + } + ZL_ERR_IF_NE( + mparams->type, + A1C_ItemType_map, + corruption, + "'mparams' field must be a map"); + const A1C_Map* const mparams_map = &mparams->map; + + for (size_t i = 0; i < mparams_map->size; i++) { + const A1C_Pair* const pair = &mparams_map->items[i]; + A1C_TRY_EXTRACT_STRING(key_str, &pair->key); + const StringView key_sv = StringView_initFromA1C(key_str); + + ZL_TRY_LET_CONST(ZL_MParamID, decoded_id, cs_hexDecodeMParamID(key_sv)); + + A1C_TRY_EXTRACT_BYTES(blob, &pair->val); + + const ZL_MParam mp = { + .mparamID = decoded_id, + .content = blob.data, + .size = blob.size, + }; + + const CompressorDeserializer_MParamMap_Entry mp_entry = + (CompressorDeserializer_MParamMap_Entry){ + .key = key_sv, + .val = mp, + }; + const CompressorDeserializer_MParamMap_Insert mp_insert = + CompressorDeserializer_MParamMap_insert( + &state->mparams_map, &mp_entry); + ZL_ERR_IF(mp_insert.badAlloc, allocation); + } + return ZL_returnSuccess(); +} + static ZL_Report ZL_CompressorDeserializer_setStartingGraph( ZL_CompressorDeserializer* const state, ZL_Compressor* const compressor) @@ -3127,6 +3381,8 @@ ZL_Report ZL_CompressorDeserializer_deserialize( ZL_ERR_IF_ERR(ZL_CompressorDeserializer_setupParams(state)); + ZL_ERR_IF_ERR(ZL_CompressorDeserializer_setupMParams(state)); + ZL_ERR_IF_ERR(ZL_CompressorDeserializer_setupNodes( state, ZL_CompressorDeserializer_tryBuildNode)); diff --git a/src/openzl/compress/dyngraph_interface.c b/src/openzl/compress/dyngraph_interface.c index f5546aa4c..dff128776 100644 --- a/src/openzl/compress/dyngraph_interface.c +++ b/src/openzl/compress/dyngraph_interface.c @@ -39,7 +39,7 @@ ZL_Report SCTX_initInput(ZL_Edge* outEdge, ZL_Graph* gctx, RTStreamID irtsid) allocation); ZL_ASSERT_GE(VECTOR_SIZE(gctx->streamCtxs), 1); ZL_IDType n = (ZL_IDType)VECTOR_SIZE(gctx->streamCtxs) - 1; - ZL_ASSERT_NN(sctx); + ZL_ASSERT_NN(outEdge); outEdge[0] = (ZL_Edge){ .gctx = gctx, .scHandle = n, @@ -126,7 +126,7 @@ bool ZL_Graph_isNodeSupported(const ZL_Graph* gctx, ZL_NodeID nodeid) void* ZL_Graph_getScratchSpace(ZL_Graph* gctx, size_t size) { - WAYPOINT(on_ZL_Graph_getScratchSpace, gctx, size); + CWAYPOINT(on_ZL_Graph_getScratchSpace, gctx, size); return ALLOC_Arena_malloc(gctx->graphArena, size); } @@ -155,13 +155,14 @@ ZL_Edge_runMultiInputNode_withParams( ZL_ASSERT_GE(nbInputs, 1); ZL_ASSERT_NN(inputCtxs); ZL_ASSERT_NN(inputCtxs[0]); + ZL_RESULT_DECLARE_SCOPE(ZL_EdgeList, inputCtxs[0]); ZL_Graph* const gctx = inputCtxs[0]->gctx; ZL_ASSERT_NN(gctx); Arena* const allocator = gctx->graphArena; ZL_ASSERT_NN(allocator); #define ALLOC_ARRAY(type, name, nb) \ - ALLOC_ARENA_MALLOC_CHECKED_T(type, name, nb, allocator, ZL_EdgeList) + ALLOC_ARENA_MALLOC_CHECKED(type, name, nb, allocator) // Check input doesn't already have a set successor ALLOC_ARRAY(DG_StreamCtx*, inDGSCtxs, nbInputs); @@ -171,11 +172,8 @@ ZL_Edge_runMultiInputNode_withParams( for (size_t n = 0; n < nbInputs; n++) { ZL_ASSERT_NN(inputCtxs[n]); inDGSCtxs[n] = &VECTOR_AT(gctx->streamCtxs, inputCtxs[n]->scHandle); - ZL_RET_T_IF_NE( - ZL_EdgeList, - successor_alreadySet, - inDGSCtxs[n]->dest_set, - sds_unassigned); + ZL_ERR_IF_NE( + inDGSCtxs[n]->dest_set, sds_unassigned, successor_alreadySet); inStreams[n] = ZL_codemodInputAsData(ZL_Edge_getData(inputCtxs[n])); rtsids[n] = inDGSCtxs[n]->rtsid; } @@ -187,7 +185,7 @@ ZL_Edge_runMultiInputNode_withParams( cctx, &rtnid, inStreams, rtsids, nbInputs, nodeid, localParams); // check node execution status - ZL_RET_T_IF_ERR(ZL_EdgeList, trStatus); + ZL_ERR_IF_ERR(trStatus); size_t const nbOuts = ZL_validResult(trStatus); // Set Input Streams as processed @@ -202,7 +200,7 @@ ZL_Edge_runMultiInputNode_withParams( size_t const newNbStreams = oldNbStreams + nbOuts; size_t const reservedSize = VECTOR_RESIZE_UNINITIALIZED(gctx->streamCtxs, newNbStreams); - ZL_RET_T_IF_GT(ZL_EdgeList, allocation, newNbStreams, reservedSize); + ZL_ERR_IF_GT(newNbStreams, reservedSize, allocation); ZL_DLOG(SEQ, "node %u created %zu outputs", nodeid.nid, nbOuts); for (size_t n = 0; n < nbOuts; n++) { @@ -274,12 +272,13 @@ static ZL_Report ZL_transferRuntimeGraphParams_stage2( Arena* arena, ZL_RuntimeGraphParameters* rgp) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // T258630070 ZL_ASSERT_NN(arena); ZL_ASSERT_NN(rgp); if (rgp->localParams) { ALLOC_ARENA_MALLOC_CHECKED(ZL_LocalParams, lparamsCopy, 1, arena); *lparamsCopy = *rgp->localParams; - ZL_RET_R_IF_ERR(LP_transferLocalParams(arena, lparamsCopy)); + ZL_ERR_IF_ERR(LP_transferLocalParams(arena, lparamsCopy)); rgp->localParams = lparamsCopy; } if (rgp->nbCustomGraphs > 0) { @@ -341,31 +340,66 @@ ZL_Report ZL_Edge_setParameterizedDestination( ZL_Graph* const gctx = inputs[0]->gctx; ZL_ASSERT_NN(gctx); ZL_RESULT_DECLARE_SCOPE_REPORT(gctx->cctx); + ZL_DLOG(SEQ, "ZL_Edge_setDestination(%zu inputs => gid=%u)", nbInputs, gid); + // === Phase 1: Basic Input Sanitization === ZL_ERR_IF_NULL( nbInputs, successor_invalidNumInputs, "A Graph Successor must have at least 1 Input."); + // === Phase 2: Input Descriptor Lookup === + typedef struct { + const char* name; + size_t numInputs; + bool lastInputIsVariable; + } InputGraphDesc; + const ZL_Compressor* const compressor = CCTX_getCGraph(gctx->cctx); - const ZL_FunctionGraphDesc* const migd = - CGRAPH_getMultiInputGraphDesc(compressor, gid); - ZL_ERR_IF_NULL(migd, graph_invalid); - if (migd->lastInputIsVariable) { + ZL_DLOG(SEQ, + "CGRAPH_graphType(compressor, gid) = %i", + CGRAPH_graphType(compressor, gid)); + InputGraphDesc inputGD; + if (CGRAPH_graphType(compressor, gid) == gt_segmenter) { + const ZL_SegmenterDesc* const segd = + CGRAPH_getSegmenterDesc(compressor, gid); + ZL_ASSERT_NN(segd); + inputGD = (InputGraphDesc){ + .name = segd->name, + .numInputs = segd->numInputs, + .lastInputIsVariable = segd->lastInputIsVariable, + }; + } else { + const ZL_FunctionGraphDesc* const fgd = + CGRAPH_getMultiInputGraphDesc(compressor, gid); + ZL_ERR_IF_NULL(fgd, graph_invalid); + inputGD = (InputGraphDesc){ + .name = fgd->name, + .numInputs = fgd->nbInputs, + .lastInputIsVariable = fgd->lastInputIsVariable, + }; + }; + + // === Phase 3: Validate number of inputs === + if (inputGD.lastInputIsVariable) { // Variable Input: last Input can be present [0-N] times - ZL_ASSERT_GE(migd->nbInputs, 1); - ZL_ERR_IF_LT(nbInputs, migd->nbInputs - 1, successor_invalidNumInputs); + // Must provide at least (required_inputs - 1) since last is optional + ZL_ASSERT_GE(inputGD.numInputs, 1); + ZL_ERR_IF_LT( + nbInputs, inputGD.numInputs - 1, successor_invalidNumInputs); } else { // Only Singular Inputs: count must be exact ZL_ERR_IF_NE( nbInputs, - migd->nbInputs, + inputGD.numInputs, successor_invalidNumInputs, "Graph '%s' should have received %zu Inputs (!= %zu)", - STR_REPLACE_NULL(migd->name), - migd->nbInputs, + STR_REPLACE_NULL(inputGD.name), + inputGD.numInputs, nbInputs); } + + // === Phase 4: Process Each Input Edge === for (size_t n = 0; n < nbInputs; n++) { ZL_ASSERT_NN(inputs[n]); DG_StreamCtx* const sctx = @@ -384,15 +418,22 @@ ZL_Report ZL_Edge_setParameterizedDestination( } ZL_ASSERT_GE(VECTOR_SIZE(gctx->rtsids), nbInputs); - // Transfer optional Graph parameters in Session memory + // === Phase 5: Transfer Runtime Parameters to Session Memory === rGraphParams = ZL_transferRuntimeGraphParams(gctx->chunkArena, rGraphParams); + + // === Phase 6: Create and Store Destination Graph Descriptor === + // This descriptor is stored for deferred execution - not used immediately + // 1. When the current graph completes execution (in CCTX_runGraph_internal) + // 2. GCTX_getSuccessors() will iterate through stored descriptors + // 3. For each "trigger" stream, it extracts the stored descriptor + // 4. The SuccessorInfo array is passed to CCTX_runSuccessors() DestGraphDesc const sd = { gid, rGraphParams, nbInputs, VECTOR_SIZE(gctx->rtsids) - nbInputs }; ZL_ERR_IF_NOT(VECTOR_PUSHBACK(gctx->dstGraphDescs, sd), allocation); - // note : Input Type compatibility is checked when starting Successor Graph + // note: Input Type compatibility is checked on starting the Successor Graph return ZL_returnSuccess(); } @@ -409,6 +450,13 @@ const void* ZL_Graph_getOpaquePtr(const ZL_Graph* gctx) return gctx->dgd->opaque.ptr; } +unsigned ZL_Graph_getDepth(const ZL_Graph* gctx) +{ + ZL_ASSERT_NN(gctx); + ZL_ASSERT_GE(gctx->depth, 1); + return gctx->depth; +} + ZL_RESULT_OF(ZL_GraphPerformance) ZL_Graph_tryMultiInputGraph( const ZL_Graph* gctx, @@ -433,3 +481,17 @@ ZL_Graph_tryGraph( { return ZL_Graph_tryMultiInputGraph(gctx, &input, 1, graphID, params); } + +const char* ZL_Graph_getErrorContextString( + const ZL_Graph* graph, + ZL_Report report) +{ + return ZL_CCtx_getErrorContextString(graph->cctx, report); +} + +const char* ZL_Graph_getErrorContextString_fromError( + const ZL_Graph* graph, + ZL_Error error) +{ + return ZL_CCtx_getErrorContextString_fromError(graph->cctx, error); +} diff --git a/src/openzl/compress/dyngraph_interface.h b/src/openzl/compress/dyngraph_interface.h index 4b392e15a..6ee314f92 100644 --- a/src/openzl/compress/dyngraph_interface.h +++ b/src/openzl/compress/dyngraph_interface.h @@ -94,6 +94,7 @@ struct ZL_Graph_s { VECTOR(RTStreamID) rtsids; /**< Runtime stream IDs for destination routing */ ZL_Report status; /**< Error status during graph execution */ + unsigned depth; /**< Current graph execution depth */ /** @name Memory Allocators * Allocators with specified lifetime durations diff --git a/src/openzl/compress/enc_interface.c b/src/openzl/compress/enc_interface.c index b6c9fd198..ab765131e 100644 --- a/src/openzl/compress/enc_interface.c +++ b/src/openzl/compress/enc_interface.c @@ -7,12 +7,13 @@ #include "openzl/common/introspection.h" // WAYPOINT, ZL_CompressIntrospectionHooks #include "openzl/common/limits.h" #include "openzl/common/operation_context.h" -#include "openzl/common/scope_context.h" -#include "openzl/compress/cctx.h" // CCTX_* +#include "openzl/compress/cctx.h" // CCTX_* +#include "openzl/compress/cgraph.h" // CGRAPH_getDictObj #include "openzl/compress/cnode.h" #include "openzl/compress/localparams.h" -#include "openzl/compress/trStates.h" // TRS_getState -#include "openzl/zl_common_types.h" // ZL_TernaryParam_disable +#include "openzl/compress/trStates.h" // TRS_getState +#include "openzl/dict/dict_constants.h" // ZL_DICT_INDEX_NONE +#include "openzl/zl_common_types.h" // ZL_TernaryParam_disable #include "openzl/zl_compressor.h" #include "openzl/zl_data.h" @@ -89,6 +90,25 @@ const ZL_LocalParams* ZL_Encoder_getLocalParams(const ZL_Encoder* eic) return eic->lparams; } +const void* ZL_Encoder_getMaterializedDict(const ZL_Encoder* eictx) +{ + ZL_ASSERT_NN(eictx); + if (eictx->cnode == NULL) + return NULL; + size_t offset = CNODE_getDictIndex(eictx->cnode); + if (offset == ZL_DICT_INDEX_NONE) + return NULL; + return CGRAPH_getDictObj(CCTX_getCGraph(eictx->cctx), offset); +} + +const void* ZL_Encoder_getMParam(const ZL_Encoder* eictx) +{ + ZL_ASSERT_NN(eictx); + if (eictx->cnode == NULL) + return NULL; + return CNODE_getMParamObj(eictx->cnode); +} + const void* ENC_getPrivateParam(const ZL_Encoder* eictx) { return eictx->privateParam; @@ -103,8 +123,9 @@ void ZL_Encoder_sendCodecHeader( const void* trh, size_t trhSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_DLOG(SEQ, "ZL_Encoder_sendCodecHeader (%zu bytes)", trhSize); - WAYPOINT(on_ZL_Encoder_sendCodecHeader, eictx, trh, trhSize); + CWAYPOINT(on_ZL_Encoder_sendCodecHeader, eictx, trh, trhSize); ZL_ASSERT_NN(eictx); if (trhSize) ZL_ASSERT_NN(trh); @@ -126,6 +147,8 @@ ZL_Report ZL_Encoder_createAllOutBuffers( const size_t buffSizes[], size_t nbBuffs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eic); + /* General idea : * * 1) Access the definition of the node in the immutable cgraph, @@ -164,10 +187,10 @@ ZL_Report ZL_Encoder_createAllOutBuffers( for (int n = 0; n < (int)nbBuffs; n++) { ZL_Output* const data = ZL_Encoder_createTypedStream(eic, n, buffSizes[n], 1); - ZL_RET_R_IF_NULL(allocation, data); + ZL_ERR_IF_NULL(data, allocation); buffStarts[n] = ZL_Output_ptr(data); if (buffSizes[n] > 0 && buffStarts[n] == NULL) - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } return ZL_returnSuccess(); } @@ -181,7 +204,7 @@ ZL_Output* ZL_Encoder_createTypedStream( ZL_ASSERT_NN(eic); ZL_Data* ret = CCTX_getNewStream( eic->cctx, eic->rtnodeid, outStreamIndex, eltWidth, eltsCapacity); - WAYPOINT( + CWAYPOINT( on_ZL_Encoder_createTypedStream, eic, outStreamIndex, @@ -240,15 +263,15 @@ static ZL_Report ENC_runTransform_internal( const ZL_Data* inStreams[], size_t nbInStreams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(eictx); ZL_DLOG(BLOCK, "ENC_runTransform_internal (%s, nodeid=%zu, nbInputs=%zu)", CT_getTrName(trDesc), nodeid.nid, nbInStreams); - ZL_SCOPE_GRAPH_CONTEXT( - eictx, - { .transformID = trDesc->publicDesc.gd.CTid, - .name = trDesc->publicDesc.name }); + ZL_RESULT_SCOPE_ADD_GRAPH_CONTEXT( + (ZL_GraphContext){ .transformID = trDesc->publicDesc.gd.CTid, + .name = trDesc->publicDesc.name }); eictx->privateParam = trDesc->privateParam; eictx->opaquePtr = trDesc->publicDesc.opaque.ptr; @@ -256,9 +279,9 @@ static ZL_Report ENC_runTransform_internal( // Run transform ZL_ASSERT_NN(trDesc->publicDesc.transform_f); - IF_WAYPOINT_ENABLED(on_codecEncode_start, eictx) + IF_CWAYPOINT_ENABLED(on_codecEncode_start, eictx) { - WAYPOINT( + CWAYPOINT( on_codecEncode_start, eictx, CCTX_getCGraph(eictx->cctx), @@ -269,13 +292,13 @@ static ZL_Report ENC_runTransform_internal( ZL_Report codecExecResult = (trDesc->publicDesc.transform_f( eictx, ZL_codemodDatasAsInputs(inStreams), nbInStreams)); if (ZL_isError(codecExecResult)) { - WAYPOINT(on_codecEncode_end, eictx, NULL, 0, codecExecResult); - ZL_RET_R_IF_ERR_COERCE( + CWAYPOINT(on_codecEncode_end, eictx, NULL, 0, codecExecResult); + ZL_ERR_IF_ERR_COERCE( codecExecResult, "transform %s failed", CT_getTrName(trDesc)); } const RTGraph* rtgm = CCTX_getRTGraph(eictx->cctx); const size_t nbOutStreams = RTGM_getNbOutStreams(rtgm, eictx->rtnodeid); - IF_WAYPOINT_ENABLED(on_codecEncode_end, eictx) + IF_CWAYPOINT_ENABLED(on_codecEncode_end, eictx) { DECLARE_VECTOR_CONST_POINTERS_TYPE(ZL_Data); VECTOR_CONST_POINTERS(ZL_Data) odata; @@ -285,12 +308,13 @@ static ZL_Report ENC_runTransform_internal( RTGM_getOutStreamID(rtgm, eictx->rtnodeid, (int)i); const ZL_Data* d = RTGM_getRStream(rtgm, rtsid); bool pushbackSuccess = VECTOR_PUSHBACK(odata, d); - ZL_RET_R_IF_NOT( - allocation, - pushbackSuccess, - "Unable to append to the waypoint odata vector"); + if (!pushbackSuccess) { + VECTOR_DESTROY(odata); + ZL_ERR(allocation, + "Unable to append to the waypoint odata vector"); + } } - WAYPOINT( + CWAYPOINT( on_codecEncode_end, eictx, ZL_codemodConstDatasAsOutputs(VECTOR_DATA(odata)), @@ -300,7 +324,7 @@ static ZL_Report ENC_runTransform_internal( } // Check that we didn't encounter an error sending the transform header. - ZL_RET_R_IF_ERR(eictx->sendTransformHeaderError); + ZL_ERR_IF_ERR(eictx->sendTransformHeaderError); // Check that the transform has generated // at least as many output streams as compulsory singleton outputs. @@ -309,23 +333,23 @@ static ZL_Report ENC_runTransform_internal( // This can't be done with a simple counter though, // and would require contribution from the RTGraph Manager. size_t const nbOut1 = trDesc->publicDesc.gd.nbSOs; - ZL_RET_R_IF_LT(transform_executionFailure, nbOutStreams, nbOut1); + ZL_ERR_IF_LT(nbOutStreams, nbOut1, transform_executionFailure); unsigned const formatVersion = (unsigned)ZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion); if (formatVersion < 9) { // Format versions less than 9 don't support 0 output streams. - ZL_RET_R_IF_EQ( - formatVersion_unsupported, + ZL_ERR_IF_EQ( nbOutStreams, 0, + formatVersion_unsupported, "Not supported until format version 9"); } - ZL_RET_R_IF_GT( - formatVersion_unsupported, + ZL_ERR_IF_GT( nbOutStreams, - ZL_transformOutStreamsLimit(formatVersion)); + ZL_transformOutStreamsLimit(formatVersion), + formatVersion_unsupported); return ZL_returnValue(nbOutStreams); } @@ -342,6 +366,7 @@ ZL_Report ENC_runTransform( Arena* wkspArena, CachedStates* trstates) { + ZL_RESULT_DECLARE_SCOPE_REPORT(cctx); ZL_ASSERT_NN(trDesc); ZL_DLOG(BLOCK, "ENC_runTransform on Transform '%s' (%u) (lparams=%p)", @@ -351,7 +376,7 @@ ZL_Report ENC_runTransform( if (lparams == NULL) lparams = CNODE_getLocalParams(cnode); ZL_Encoder eiState; - ZL_RET_R_IF_ERR(ENC_initEICtx( + ZL_ERR_IF_ERR(ENC_initEICtx( &eiState, cctx, wkspArena, &rtnodeid, cnode, lparams, trstates)); ZL_Report const transformRes = ENC_runTransform_internal( &eiState, nodeid, trDesc, inputs, nbInputs); @@ -361,7 +386,7 @@ ZL_Report ENC_runTransform( void* ZL_Encoder_getScratchSpace(ZL_Encoder* ei, size_t size) { - WAYPOINT(on_ZL_Encoder_getScratchSpace, ei, size); + CWAYPOINT(on_ZL_Encoder_getScratchSpace, ei, size); return ALLOC_Arena_malloc(ei->wkspArena, size); } diff --git a/src/openzl/compress/encode_frameheader.c b/src/openzl/compress/encode_frameheader.c index 09384ccbe..79f4b51fc 100644 --- a/src/openzl/compress/encode_frameheader.c +++ b/src/openzl/compress/encode_frameheader.c @@ -30,11 +30,12 @@ static ZL_Report computeFHBound( size_t nbBuffs, size_t nbRegens) { - ZL_RET_R_IF_GT(GENERIC, numInputs, ZL_ENCODER_INPUT_LIMIT); - ZL_RET_R_IF_GT( - GENERIC, nbTransforms, ZL_runtimeNodeLimit(ZL_MAX_FORMAT_VERSION)); - ZL_RET_R_IF_GT( - GENERIC, nbBuffs, ZL_runtimeStreamLimit(ZL_MAX_FORMAT_VERSION)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GT(numInputs, ZL_ENCODER_INPUT_LIMIT, GENERIC); + ZL_ERR_IF_GT( + nbTransforms, ZL_runtimeNodeLimit(ZL_MAX_FORMAT_VERSION), GENERIC); + ZL_ERR_IF_GT( + nbBuffs, ZL_runtimeStreamLimit(ZL_MAX_FORMAT_VERSION), GENERIC); // Validate that this bound cannot overflow ZL_ASSERT_LT( @@ -98,7 +99,9 @@ static ZL_Report EFH_Workspace_init( void* dst, size_t dstCapacity) { - ZL_TRY_LET_R( + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET( + size_t, dstBound, computeFHBound(numInputs, nbTransforms, nbStoredBuffs, nbRegens)); size_t const regenArr32 = sizeof(uint32_t) * nbRegens; @@ -109,7 +112,7 @@ static ZL_Report EFH_Workspace_init( size_t const allocationSize = buffSize + regenArr32 + trArrays + dstSize; uint32_t* const alloc = ZL_malloc(allocationSize); - ZL_RET_R_IF_NULL(allocation, alloc); + ZL_ERR_IF_NULL(alloc, allocation); wksp->buffScratch0 = alloc; wksp->scratch0 = wksp->buffScratch0 + nbStoredBuffs; @@ -161,7 +164,8 @@ static void compressTrID( size_t nbTransforms, const uint8_t ctrFlags[], uint32_t* snodeidsScratch, - uint32_t* cnodeidsScratch) + uint32_t* cnodeidsScratch, + unsigned formatVersion) { if (!nbTransforms) return; @@ -179,7 +183,7 @@ static void compressTrID( size_t const nbCNodeIds = MEM_ptrDistance(cnodeids, niPtr[1]) / sizeof(uint32_t); // use bitPacking for standard nodes - int const nbBits = ZL_nextPow2(ZL_StandardTransformID_end); + int const nbBits = ZL_StandardTransformID_numBits(formatVersion); ZL_ASSERT_GE(ZL_WC_avail(out), ((nbTransforms * (size_t)nbBits) + 7) / 8); ZL_WC_bitpackEncode32(out, snodeids, nbSNodeIds, nbBits); @@ -384,9 +388,10 @@ static uint8_t encodeType(ZL_Type type) static ZL_Report EFH_encodeInputSizes_v20(ZL_WC* out, const InputDesc* inDesc, size_t numInputs) { - ZL_RET_R_IF_LT(dstCapacity_tooSmall, ZL_WC_avail(out), numInputs * 4); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_LT(ZL_WC_avail(out), numInputs * 4, dstCapacity_tooSmall); for (size_t n = 0; n < numInputs; n++) { - ZL_RET_R_IF_GE(srcSize_tooLarge, inDesc[n].byteSize, UINT_MAX); + ZL_ERR_IF_GE(inDesc[n].byteSize, UINT_MAX, srcSize_tooLarge); ZL_WC_pushLE32(out, (uint32_t)inDesc[n].byteSize); } return ZL_returnValue(numInputs * 4); @@ -394,10 +399,11 @@ EFH_encodeInputSizes_v20(ZL_WC* out, const InputDesc* inDesc, size_t numInputs) static ZL_Report EFH_writeVarint(ZL_WC* out, uint64_t num) { - ZL_RET_R_IF_LT( - dstCapacity_tooSmall, + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_LT( ZL_WC_avail(out), - ZL_VARINT_FAST_OVERWRITE_64); + ZL_VARINT_FAST_OVERWRITE_64, + dstCapacity_tooSmall); size_t sWritten = ZL_varintEncode64Fast(num, ZL_WC_ptr(out)); ZL_WC_ASSERT_HAS(out, sWritten); ZL_WC_advance(out, sWritten); @@ -407,14 +413,15 @@ static ZL_Report EFH_writeVarint(ZL_WC* out, uint64_t num) static ZL_Report EFH_encodeInputSizes_v21(ZL_WC* out, const InputDesc* inDesc, size_t numInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t start = ZL_WC_size(out); for (size_t n = 0; n < numInputs; n++) { - ZL_RET_R_IF_ERR(EFH_writeVarint(out, (uint64_t)inDesc[n].byteSize + 1)); + ZL_ERR_IF_ERR(EFH_writeVarint(out, (uint64_t)inDesc[n].byteSize + 1)); } // add nbStrings for (size_t n = 0; n < numInputs; n++) { if (inDesc[n].type == ZL_Type_string) { - ZL_RET_R_IF_ERR(EFH_writeVarint(out, inDesc[n].numElts)); + ZL_ERR_IF_ERR(EFH_writeVarint(out, inDesc[n].numElts)); } } @@ -444,12 +451,15 @@ static ZL_Report writeFrameHeader_internal( size_t dstCapacity, const EFH_FrameInfo* fip) { - ZL_TRY_LET_R(hsBound, computeFHBound(fip->numInputs, 0, 0, 0)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET(size_t, hsBound, computeFHBound(fip->numInputs, 0, 0, 0)); + // Add comment bytes relaxing header bound + hsBound += fip->comment.size ? 4 + fip->comment.size : 0; ZL_DLOG(FRAME, "writeFrameHeader_internal (nbInputs=%zu, maxBound=%zu bytes)", fip->numInputs, hsBound); - ZL_RET_R_IF_LT(internalBuffer_tooSmall, dstCapacity, hsBound); + ZL_ERR_IF_LT(dstCapacity, hsBound, dstCapacity_tooSmall); ZL_WC out = ZL_WC_wrap(dst, dstCapacity); @@ -465,6 +475,9 @@ static ZL_Report writeFrameHeader_internal( flags |= 1 << 0; if (fip->fprop->hasCompressedChecksum) flags |= 1 << 1; + if (encoder->formatVersion >= ZL_COMMENT_VERSION_MIN + && fip->fprop->hasComment) + flags |= 1 << 2; ZL_WC_push(&out, flags); } @@ -553,10 +566,10 @@ static ZL_Report writeFrameHeader_internal( ZL_WC_push(&out, token3); } if (fip->numInputs > 273) { - ZL_RET_R_IF_GT( - userBuffers_invalidNum, + ZL_ERR_IF_GT( fip->numInputs, - ZL_ENCODER_INPUT_LIMIT); + ZL_ENCODER_INPUT_LIMIT, + userBuffers_invalidNum); ZL_WC_pushLE16(&out, (uint16_t)(fip->numInputs - 274)); } if (fip->numInputs > 5) { @@ -578,33 +591,44 @@ static ZL_Report writeFrameHeader_internal( } } else if (encoder->formatVersion == 14) { // Support for Single Typed Input - ZL_RET_R_IF_GT( - graph_invalidNumInputs, + ZL_ERR_IF_GT( fip->numInputs, 1, + graph_invalidNumInputs, "Format version 14 only supports 1 Typed Input"); ZL_WC_push(&out, encodeType(fip->inputDescs[0].type)); } else { // formatVersion <= 13 : single serial input, no type header - ZL_RET_R_IF_GT( - graph_invalidNumInputs, + ZL_ERR_IF_GT( fip->numInputs, 1, + graph_invalidNumInputs, "Format version %u only supports 1 Serial Input", encoder->formatVersion); - ZL_RET_R_IF_NE( - streamType_incorrect, + ZL_ERR_IF_NE( encodeType(fip->inputDescs[0].type), 0, + streamType_incorrect, "Format version %u only supports 1 Serial Input", encoder->formatVersion); } // Store Sizes of Inputs // @note (@cyan): currently, input size is presumed always known - ZL_RET_R_IF_ERR(EFH_encodeInputSizes( + ZL_ERR_IF_ERR(EFH_encodeInputSizes( &out, fip->inputDescs, fip->numInputs, encoder->formatVersion)); + // Store variable-length comment + if (encoder->formatVersion >= ZL_COMMENT_VERSION_MIN + && fip->fprop->hasComment) { + ZL_ERR_IF_GT( + fip->comment.size, + ZL_MAX_HEADER_COMMENT_SIZE_LIMIT, + graph_invalid); + ZL_WC_pushVarint(&out, fip->comment.size); + ZL_WC_shove(&out, (const uint8_t*)fip->comment.data, fip->comment.size); + } + if ((encoder->formatVersion >= ZL_CHUNK_VERSION_MIN) && fip->fprop->hasCompressedChecksum) { // Frame header checksum @@ -624,8 +648,9 @@ static ZL_Report writeFrameHeaderV3orMore( size_t dstCapacity, const EFH_FrameInfo* fip) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); EFH_Workspace wksp = { 0 }; - ZL_RET_R_IF_ERR(EFH_Workspace_init( + ZL_ERR_IF_ERR(EFH_Workspace_init( &wksp, fip->numInputs, 0, 0, 0, dst, dstCapacity)); ZL_Report ret = writeFrameHeader_internal(encoder, wksp.dst, wksp.dstCapacity, fip); @@ -656,8 +681,10 @@ static ZL_Report writeChunkHeaderV8_internal( const GraphInfo* gip, EFH_Workspace* wksp) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); /* @note (@cyan): the bound could be tightened a bit */ - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, hsBound, computeFHBound( gip->nbSessionInputs, @@ -668,7 +695,7 @@ static ZL_Report writeChunkHeaderV8_internal( "writeChunkHeaderV8_internal (nbInputs=%zu, maxBound=%zu bytes)", gip->nbSessionInputs, hsBound); - ZL_RET_R_IF_LT(internalBuffer_tooSmall, dstCapacity, hsBound); + ZL_ERR_IF_LT(dstCapacity, hsBound, internalBuffer_tooSmall); ZL_ASSERT_GE(encoder->formatVersion, 8); ZL_WC out = ZL_WC_wrap(dst, dstCapacity); @@ -677,13 +704,13 @@ static ZL_Report writeChunkHeaderV8_internal( size_t const nbBuffs = gip->nbStoredBuffs; ZL_ASSERT_GE(nbBuffs, 1); - ZL_RET_R_IF_GE( - corruption, nbCodecs, ZL_runtimeNodeLimit(encoder->formatVersion)); - ZL_RET_R_IF_GE( - corruption, + ZL_ERR_IF_GE( + nbCodecs, ZL_runtimeNodeLimit(encoder->formatVersion), corruption); + ZL_ERR_IF_GE( nbBuffs - 1, - ZL_runtimeStreamLimit(encoder->formatVersion)); - ZL_RET_R_IF_EQ(corruption, nbBuffs, 0); + ZL_runtimeStreamLimit(encoder->formatVersion), + corruption); + ZL_ERR_IF_EQ(nbBuffs, 0, corruption); if (encoder->formatVersion < 9) { ZL_ASSERT_LT(nbCodecs, 256); @@ -731,7 +758,13 @@ static ZL_Report writeChunkHeaderV8_internal( array32[u] = (uint32_t)gip->trInfo[u].trid; } compressTrID( - &out, array32, nbCodecs, trt, wksp->scratch1, wksp->scratch2); + &out, + array32, + nbCodecs, + trt, + wksp->scratch1, + wksp->scratch2, + encoder->formatVersion); } /* Encode Transform's private header's sizes */ @@ -777,10 +810,10 @@ static ZL_Report writeChunkHeaderV8_internal( // v15-: MI Transform's input count must be always 1 totalNbRegens = nbCodecs; for (size_t u = 0; u < nbCodecs; u++) { - ZL_RET_R_IF_NE( - node_versionMismatch, + ZL_ERR_IF_NE( gip->nbTrInputs[u], 1, + node_versionMismatch, "Version %u encoding format does not support Transforms featuring 2+ inputs", encoder->formatVersion); } @@ -822,9 +855,10 @@ static ZL_Report writeChunkHeaderV8orMore( const ZL_FrameProperties* info, const GraphInfo* gip) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "writeChunkHeaderV8orMore"); EFH_Workspace wksp = { 0 }; - ZL_RET_R_IF_ERR(EFH_Workspace_init( + ZL_ERR_IF_ERR(EFH_Workspace_init( &wksp, gip->nbSessionInputs, gip->nbTransforms, @@ -846,7 +880,9 @@ static ZL_Report writeChunkHeaderV8orMore( } } EFH_Workspace_destroy(&wksp); - ZL_DLOG(SEQ, "ZL_isError(ret) = %i", ZL_isError(ret)); + if (ZL_isError(ret)) { + ZL_DLOG(ERROR, "writeChunkHeaderV8orMore() error"); + } return ret; } diff --git a/src/openzl/compress/encode_frameheader.h b/src/openzl/compress/encode_frameheader.h index 0a6e0e6cb..a7bb49eda 100644 --- a/src/openzl/compress/encode_frameheader.h +++ b/src/openzl/compress/encode_frameheader.h @@ -6,6 +6,7 @@ #include "openzl/common/wire_format.h" // ZL_FrameHeaderInfo #include "openzl/shared/portability.h" #include "openzl/zl_buffer.h" // ZL_RBuffer +#include "openzl/zl_common_types.h" #include "openzl/zl_data.h" // ZL_Type #include "openzl/zl_errors.h" // ZL_Report @@ -29,6 +30,7 @@ typedef struct { const ZL_FrameProperties* fprop; const InputDesc* inputDescs; /**< Array of input stream's properties */ size_t numInputs; + ZL_Comment comment; } EFH_FrameInfo; /** diff --git a/src/openzl/compress/gcparams.c b/src/openzl/compress/gcparams.c index a0dc897ce..6e64c1367 100644 --- a/src/openzl/compress/gcparams.c +++ b/src/openzl/compress/gcparams.c @@ -25,6 +25,7 @@ const GCParams GCParams_default = { // so we don't need to manage the case of `ZL_TernaryParam_auto`. .compressedChecksum = ZL_TernaryParam_enable, .contentChecksum = ZL_TernaryParam_enable, + .storeOnExpansion = ZL_TernaryParam_enable, .minStreamSize = ZL_MINSTREAMSIZE_DEFAULT, }; @@ -53,6 +54,8 @@ const GCParamToName GCParams_kAllParams[] = { { ZL_CParam_compressedChecksum, { (const char*[]){ "compressedChecksum" }, 1 } }, { ZL_CParam_contentChecksum, { (const char*[]){ "contentChecksum" }, 1 } }, + { ZL_CParam_storeOnExpansion, + { (const char*[]){ "storeOnExpansion" }, 1 } }, { ZL_CParam_minStreamSize, { (const char*[]){ "minStreamSize" }, 1 } } }; @@ -60,6 +63,7 @@ ZL_Report GCParams_setParameter(GCParams* gcparams, ZL_CParam paramId, int value) { ZL_ASSERT_NN(gcparams); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); switch (paramId) { case ZL_CParam_stickyParameters: gcparams->stickyParameters = (value != 0); // 0 or 1 @@ -84,17 +88,20 @@ GCParams_setParameter(GCParams* gcparams, ZL_CParam paramId, int value) // TODO (@Cyan): provide bounds gcparams->contentChecksum = (ZL_TernaryParam)value; break; + case ZL_CParam_storeOnExpansion: + gcparams->storeOnExpansion = (ZL_TernaryParam)value; + break; case ZL_CParam_minStreamSize: // TODO (@Cyan): provide bounds gcparams->minStreamSize = (unsigned)value; break; case ZL_CParam_formatVersion: if (!(value == 0 || ZL_isFormatVersionSupported((uint32_t)value))) - ZL_RET_R_ERR(formatVersion_unsupported); + ZL_ERR(formatVersion_unsupported); gcparams->formatVersion = (uint32_t)value; break; default: - ZL_RET_R_ERR(compressionParameter_invalid); + ZL_ERR(compressionParameter_invalid); } return ZL_returnSuccess(); } @@ -134,17 +141,19 @@ void GCParams_applyDefaults(GCParams* dst, const GCParams* defaults) SET_DEFAULT(dst, defaults, formatVersion); SET_DEFAULT(dst, defaults, compressedChecksum); SET_DEFAULT(dst, defaults, contentChecksum); + SET_DEFAULT(dst, defaults, storeOnExpansion); SET_DEFAULT(dst, defaults, minStreamSize); } #undef SET_DEFAULT ZL_Report GCParams_finalize(GCParams* gcparams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); uint32_t const formatVersion = (uint32_t)GCParams_getParameter(gcparams, ZL_CParam_formatVersion); // Check if the format version is unset - ZL_RET_R_IF_EQ(formatVersion_notSet, formatVersion, 0); + ZL_ERR_IF_EQ(formatVersion, 0, formatVersion_notSet); // Turn off checksums for format versions that don't support them. if (formatVersion <= 3) { @@ -180,6 +189,8 @@ int GCParams_getParameter(const GCParams* gcparams, ZL_CParam paramId) return (int)gcparams->compressedChecksum; case ZL_CParam_contentChecksum: return (int)gcparams->contentChecksum; + case ZL_CParam_storeOnExpansion: + return (int)gcparams->storeOnExpansion; case ZL_CParam_minStreamSize: return (int)gcparams->minStreamSize; default: @@ -193,11 +204,12 @@ ZL_Report GCParams_forEachParam( void* opaque) { ZL_ASSERT_NN(gcparams); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (size_t i = 0; i < ZL_ARRAY_SIZE(GCParams_kAllParams); ++i) { const ZL_CParam param = GCParams_kAllParams[i].param; const int value = GCParams_getParameter(gcparams, param); if (value != 0) { - ZL_RET_R_IF_ERR(callback(opaque, param, value)); + ZL_ERR_IF_ERR(callback(opaque, param, value)); } } return ZL_returnSuccess(); @@ -231,6 +243,7 @@ void GCParams_copy(GCParams* dst, const GCParams* src) ZL_Report GCParams_strToParam(const char* param) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const size_t len = strlen(param); for (size_t i = 0; i < ZL_ARRAY_SIZE(GCParams_kAllParams); ++i) { for (size_t n = 0; n < GCParams_kAllParams[i].names.nbNames; ++n) { @@ -240,10 +253,7 @@ ZL_Report GCParams_strToParam(const char* param) } } } - ZL_RET_R_ERR( - compressionParameter_invalid, - "Parameter string invalid: %s", - param); + ZL_ERR(compressionParameter_invalid, "Parameter string invalid: %s", param); } const char* GCParams_paramToStr(ZL_CParam param) diff --git a/src/openzl/compress/gcparams.h b/src/openzl/compress/gcparams.h index dd73c7366..352df468a 100644 --- a/src/openzl/compress/gcparams.h +++ b/src/openzl/compress/gcparams.h @@ -61,6 +61,13 @@ typedef struct { /// Automatically disabled for format versions <= 3 ZL_TernaryParam contentChecksum; + /// Controls whether chunks that expand during compression + /// are automatically replaced with STORE (anti-inflation guard). + /// ZL_TernaryParam_enable: Replace expanded chunks with STORE (default) + /// ZL_TernaryParam_disable: Keep compressed output even if it expanded + /// ZL_TernaryParam_auto: Resolves to enable via defaults + ZL_TernaryParam storeOnExpansion; + /// Minimum stream size threshold for automatic storage without compression /// Streams smaller than this size are stored directly to avoid expansion /// Default: ZL_MINSTREAMSIZE_DEFAULT (10 bytes) @@ -137,7 +144,8 @@ ZL_Report GCParams_resetStartingGraphID(GCParams* gcparams); /// @note stickyParameter is intentionally NOT overridden by defaults /// @note Applied parameters: compressionLevel, decompressionLevel, /// permissiveCompression, -/// formatVersion, compressedChecksum, contentChecksum, minStreamSize +/// formatVersion, compressedChecksum, contentChecksum, +/// storeOnExpansion, minStreamSize void GCParams_applyDefaults(GCParams* dst, const GCParams* defaults); /// Finalizes and validates the parameters, resolving incompatibilities where @@ -216,7 +224,7 @@ ZL_Report GCParams_forEachParam( /// @note Supported parameter names: "stickyParameters", "compressionLevel", /// "decompressionLevel", /// "formatVersion", "permissiveCompression", "compressedChecksum", -/// "contentChecksum", "minStreamSize" +/// "contentChecksum", "storeOnExpansion", "minStreamSize" /// @note Use ZL_validResult() to extract the parameter ID from a successful /// result ZL_Report GCParams_strToParam(const char* param); diff --git a/src/openzl/compress/graph_registry.c b/src/openzl/compress/graph_registry.c index 82d528901..68f1d5daf 100644 --- a/src/openzl/compress/graph_registry.c +++ b/src/openzl/compress/graph_registry.c @@ -1,40 +1,46 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -#include "openzl/compress/graph_registry.h" +#include "openzl/compress/graph_registry.h" // InternalGraphDesc, GR_standardGraphs declarations #include "openzl/codecs/bitpack/encode_bitpack_binding.h" // SI_selector_bitpack -#include "openzl/codecs/encoder_registry.h" // ER_standardNodes -#include "openzl/codecs/entropy/encode_entropy_binding.h" -#include "openzl/codecs/lz/encode_lz_binding.h" +#include "openzl/codecs/encoder_registry.h" // ER_standardNodes, CNode definitions +#include "openzl/codecs/entropy/encode_entropy_binding.h" // EI_fseDynamicGraph, EI_huffmanDynamicGraph, EI_entropyDynamicGraph +#include "openzl/codecs/lz/encode_lz_binding.h" // EI_fieldLzDynGraph, EI_fieldLzLiteralsDynGraph, SI_fieldLzLiteralsChannelSelector +#include "openzl/codecs/merge_sorted/encode_merge_sorted_binding.h" // MIGRAPH_MERGE_SORTED #include "openzl/codecs/parse_int/encode_parse_int_binding.h" // MIGRAPH_TRY_PARSE_INT -#include "openzl/common/assertion.h" -#include "openzl/common/logging.h" -#include "openzl/compress/compress_types.h" -#include "openzl/compress/dyngraph_interface.h" // ZL_Graph definition -#include "openzl/compress/graphs/generic_clustering_graph.h" // graph_compressClustered -#include "openzl/compress/graphs/simple_data_description_language.h" -#include "openzl/compress/graphs/split_graph.h" -#include "openzl/compress/implicit_conversion.h" // ICONV_* -#include "openzl/compress/private_nodes.h" // ZL_PrivateStandardGraphID_end -#include "openzl/compress/selector.h" // SelectorCtx -#include "openzl/compress/selectors/selector_compress.h" -#include "openzl/compress/selectors/selector_constant.h" -#include "openzl/compress/selectors/selector_genericLZ.h" -#include "openzl/compress/selectors/selector_numeric.h" -#include "openzl/compress/selectors/selector_store.h" -#include "openzl/shared/utils.h" // ZL_ARRAY_SIZE -#include "openzl/zl_data.h" -#include "openzl/zl_errors.h" // ZL_TRY_LET_T -#include "openzl/zl_graph_api.h" // ZS2_Graph_* -#include "openzl/zl_localParams.h" -#include "openzl/zl_opaque_types.h" +#include "openzl/codecs/partition/encode_partition_bitpack.h" // EI_partitionBitpackDynGraph +#include "openzl/codecs/transpose/encode_transpose_binding.h" // MIGRAPH_TRANSPOSE_SPLIT +#include "openzl/common/assertion.h" // ZL_ASSERT_* macros for runtime checks +#include "openzl/common/logging.h" // STR_REPLACE_NULL, logging utilities +#include "openzl/compress/compress_types.h" // Compression-related type definitions +#include "openzl/compress/dyngraph_interface.h" // ZL_Graph definition and graph context functions +#include "openzl/compress/graphs/generic_clustering_graph.h" // MIGRAPH_CLUSTERING +#include "openzl/compress/graphs/sddl/simple_data_description_language.h" // ZL_SDDL_dynGraph +#include "openzl/compress/graphs/sddl2/sddl2.h" // SDDL2_replayChunk, SDDL2_segment +#include "openzl/compress/graphs/small_lengths_graph.h" +#include "openzl/compress/graphs/split_graph.h" // ZL_splitFnGraph +#include "openzl/compress/implicit_conversion.h" // ICONV_isCompatible for type checking +#include "openzl/compress/private_nodes.h" // ZL_PrivateStandardGraphID_end, private node ID definitions +#include "openzl/compress/segmenters/segmenter_numeric.h" // SEGM_numeric_desc +#include "openzl/compress/segmenters/segmenter_serial.h" // SEGM_serial_desc +#include "openzl/compress/selector.h" // SelectorCtx, ZL_SelectorFn, SelCtx_* functions +#include "openzl/compress/selectors/ml/ml_selector_graph.h" // ZL_MLSel_dynGraph +#include "openzl/compress/selectors/selector_compress.h" // SI_selector_compress, SI_selector_compress_* functions +#include "openzl/compress/selectors/selector_constant.h" // SI_selector_constant +#include "openzl/compress/selectors/selector_genericLZ.h" // SI_selector_genericLZ +#include "openzl/compress/selectors/selector_numeric.h" // SI_selector_numeric +#include "openzl/compress/selectors/selector_store.h" // SI_selector_store, MIGRAPH_STORE +#include "openzl/shared/utils.h" // ZL_ARRAY_SIZE macro +#include "openzl/zl_data.h" // ZL_Type definitions and data structures +#include "openzl/zl_errors.h" // ZL_TRY_LET, ZL_ERR_IF_* error handling macros +#include "openzl/zl_graph_api.h" // ZL_Graph_*, ZL_Edge_* API functions +#include "openzl/zl_localParams.h" // ZL_LocalParams structure and functions +#include "openzl/zl_opaque_types.h" // Opaque type definitions used by the API #define _1_SUCCESSOR(s) (const ZL_GraphID[]){ { s } }, 1 #define _2_SUCCESSORS(s1, s2) (const ZL_GraphID[]){ { s1 }, { s2 } }, 2 // Pay attention to match the following conditions: // - intype => input type of the Graph, hence of the Head Node -// - minv => highest minimum version of Head Node and all Successor Graphs -// - maxv => lowest maximum version of Head Node and all Successor Graphs // These values must be manually determined and provided, // they can't be extracted from ER_standardNodes nor GR_standardGraphs, // because these sources are not considered "constant" by the C standard. @@ -95,6 +101,15 @@ }, \ } +#define REGISTER_SEGMENTER(id, _sdesc) \ + [id] = { \ + .type = GR_segmenter, \ + .gdi = { \ + .segDesc = _sdesc, \ + .baseGraphID = ZL_GRAPH_ILLEGAL, \ + }, \ + } + #define REGISTER_SPECIAL(id, _name, _type) \ [id] = { \ .type = _type, \ @@ -118,17 +133,34 @@ const InternalGraphDesc GR_standardGraphs[ZL_PrivateStandardGraphID_end] = { REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_fse, "!zl.fse", ZL_Type_serial, EI_fseDynamicGraph), REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_huffman, "!zl.huffman", ZL_Type_serial | ZL_Type_struct | ZL_Type_numeric, EI_huffmanDynamicGraph), REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_entropy, "!zl.entropy", ZL_Type_serial | ZL_Type_struct | ZL_Type_numeric, EI_entropyDynamicGraph), - REGISTER_SELECTOR(ZL_StandardGraphID_constant, "!zl.constant", SI_selector_constant, ZL_Type_serial | ZL_Type_struct), + REGISTER_SELECTOR(ZL_StandardGraphID_constant, "!zl.constant", SI_selector_constant, ZL_Type_serial | ZL_Type_struct | ZL_Type_numeric), REGISTER_STATIC_GRAPH(ZL_StandardGraphID_zstd, "!zl.zstd", ZL_Type_serial, ZL_PrivateStandardNodeID_zstd, _1_SUCCESSOR(ZL_PrivateStandardGraphID_serial_store) ), REGISTER_SELECTOR(ZL_StandardGraphID_bitpack, "!zl.bitpack", SI_selector_bitpack, ZL_Type_serial | ZL_Type_numeric), REGISTER_STATIC_GRAPH(ZL_StandardGraphID_flatpack, "!zl.flatpack", ZL_Type_serial, ZL_PrivateStandardNodeID_flatpack, _2_SUCCESSORS(ZL_PrivateStandardGraphID_serial_store, ZL_PrivateStandardGraphID_serial_store) ), REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_field_lz, "!zl.field_lz", ZL_Type_struct | ZL_Type_numeric, EI_fieldLzDynGraph), + REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_lz, "!zl.lz", ZL_Type_serial, EI_lzDynGraph), REGISTER_MIGRAPH(ZL_StandardGraphID_compress_generic, MIGRAPH_COMPRESS), REGISTER_SELECTOR(ZL_StandardGraphID_select_generic_lz_backend, "!zl.select_generic_lz_backend", SI_selector_genericLZ, ZL_Type_serial), + REGISTER_SEGMENTER(ZL_StandardGraphID_segment_numeric, SEGM_NUMERIC_DESC), + REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_interpret_num8_compress, "!zl.private.interpret_num8_compress", ZL_Type_serial, ZL_StandardNodeID_convert_serial_to_num8, _1_SUCCESSOR(ZL_PrivateStandardGraphID_numeric_compress)), + REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_interpret_num16_compress, "!zl.private.interpret_num16_compress", ZL_Type_serial, ZL_StandardNodeID_convert_serial_to_num_le16, _1_SUCCESSOR(ZL_PrivateStandardGraphID_numeric_compress)), + REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_interpret_num32_compress, "!zl.private.interpret_num32_compress", ZL_Type_serial, ZL_StandardNodeID_convert_serial_to_num_le32, _1_SUCCESSOR(ZL_PrivateStandardGraphID_numeric_compress)), + REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_interpret_num64_compress, "!zl.private.interpret_num64_compress", ZL_Type_serial, ZL_StandardNodeID_convert_serial_to_num_le64, _1_SUCCESSOR(ZL_PrivateStandardGraphID_numeric_compress)), + REGISTER_SEGMENTER(ZL_StandardGraphID_segment_num8_from_serial, SEGM_NUM_FROM_SERIAL_DESC(1, 8, ZL_PrivateStandardGraphID_interpret_num8_compress)), + REGISTER_SEGMENTER(ZL_StandardGraphID_segment_num16_from_serial, SEGM_NUM_FROM_SERIAL_DESC(2, 16, ZL_PrivateStandardGraphID_interpret_num16_compress)), + REGISTER_SEGMENTER(ZL_StandardGraphID_segment_num32_from_serial, SEGM_NUM_FROM_SERIAL_DESC(4, 32, ZL_PrivateStandardGraphID_interpret_num32_compress)), + REGISTER_SEGMENTER(ZL_StandardGraphID_segment_num64_from_serial, SEGM_NUM_FROM_SERIAL_DESC(8, 64, ZL_PrivateStandardGraphID_interpret_num64_compress)), + REGISTER_SEGMENTER(ZL_StandardGraphID_segment_serial, SEGM_SERIAL_DESC), REGISTER_SELECTOR(ZL_StandardGraphID_select_numeric, "!zl.select_numeric", SI_selector_numeric, ZL_Type_numeric), REGISTER_MIGRAPH(ZL_StandardGraphID_clustering, MIGRAPH_CLUSTERING), REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_simple_data_description_language, "!zl.sddl", ZL_Type_serial, ZL_SDDL_dynGraph), + REGISTER_SEGMENTER(ZL_StandardGraphID_simple_data_description_language_v2, SEGM_SDDL2_DESC), REGISTER_MIGRAPH(ZL_StandardGraphID_try_parse_int, MIGRAPH_TRY_PARSE_INT), + REGISTER_STATIC_GRAPH(ZL_StandardGraphID_lz4, "!zl.lz4", ZL_Type_serial, ZL_PrivateStandardNodeID_lz4, _1_SUCCESSOR(ZL_PrivateStandardGraphID_serial_store)), + REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_partition_bitpack, "!zl.partition_bitpack", ZL_Type_numeric, EI_partitionBitpackDynGraph), + REGISTER_DYNAMIC_GRAPH(ZL_StandardGraphID_ml_selector,"!zl.ml_selector", ZL_Type_numeric, ZL_MLSel_dynGraph), + REGISTER_MIGRAPH(ZL_PrivateStandardGraphID_merge_sorted, MIGRAPH_MERGE_SORTED), + REGISTER_MIGRAPH(ZL_PrivateStandardGraphID_transpose_split, MIGRAPH_TRANSPOSE_SPLIT), // Private graphs REGISTER_SELECTOR(ZL_PrivateStandardGraphID_store1, "!zl.private.store1", SI_selector_store, ZL_Type_any), @@ -164,11 +196,16 @@ const InternalGraphDesc GR_standardGraphs[ZL_PrivateStandardGraphID_end] = { REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_range_pack, "!zl.private.range_pack", ZL_Type_numeric, ZL_StandardNodeID_range_pack, _1_SUCCESSOR(ZL_StandardGraphID_field_lz) ), REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_range_pack_zstd, "!zl.private.range_pack_zstd", ZL_Type_numeric, ZL_StandardNodeID_range_pack, _1_SUCCESSOR(ZL_StandardGraphID_zstd) ), REGISTER_STATIC_GRAPH(ZL_PrivateStandardGraphID_tokenize_delta_field_lz, "!zl.private.tokenize_delta_field_lz", ZL_Type_numeric, ZL_PrivateStandardNodeID_tokenize_sorted, _2_SUCCESSORS(ZL_PrivateStandardGraphID_delta_field_lz, ZL_StandardGraphID_field_lz) ), - + REGISTER_DYNAMIC_GRAPH(ZL_PrivateStandardGraphID_split_serial, "!zl.private.split_serial", ZL_Type_serial, ZL_splitFnGraph), REGISTER_DYNAMIC_GRAPH(ZL_PrivateStandardGraphID_split_struct, "!zl.private.split_struct", ZL_Type_struct, ZL_splitFnGraph), REGISTER_DYNAMIC_GRAPH(ZL_PrivateStandardGraphID_split_numeric, "!zl.private.split_numeric", ZL_Type_numeric, ZL_splitFnGraph), REGISTER_DYNAMIC_GRAPH(ZL_PrivateStandardGraphID_split_string, "!zl.private.split_string", ZL_Type_string, ZL_splitFnGraph), + REGISTER_DYNAMIC_GRAPH(ZL_PrivateStandardGraphID_sddl2_chunk, "!zl.private.sddl2_chunk", ZL_Type_serial, SDDL2_replayChunk), + + REGISTER_MIGRAPH(ZL_PrivateStandardGraphID_n_to_n, MIGRAPH_N_TO_N), + + REGISTER_DYNAMIC_GRAPH(ZL_PrivateStandardGraphID_compress_small_lengths, "!zl.compress_small_lengths", ZL_Type_numeric, ZL_compressSmallLengthsGraph), }; // clang-format on @@ -180,6 +217,7 @@ int GR_isStandardGraph(ZL_GraphID gid) static ZL_Report GR_validateStaticGraph(ZL_IDType sgid) { ZL_ASSERT_LT(sgid, ZL_PrivateStandardGraphID_end); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_FunctionGraphDesc const migd = GR_standardGraphs[sgid].gdi.migd; ZL_ASSERT_EQ(migd.nbCustomNodes, 1); const CNode* const cnode = &ER_standardNodes[migd.customNodes[0].nid]; @@ -194,47 +232,47 @@ static ZL_Report GR_validateStaticGraph(ZL_IDType sgid) // Check compatibility with Head Node size_t const nbOutputs = mitgd->nbSOs; - ZL_RET_R_IF_NE( - logicError, + ZL_ERR_IF_NE( mitgd->nbInputs, 1, + logicError, "Node %s has too many inputs", gname); - ZL_RET_R_IF_NE( - logicError, + ZL_ERR_IF_NE( migd.inputTypeMasks[0], mitgd->inputTypes[0], + logicError, "Incorrect input type for Graph %s", gname); // Ensure that Successors are valid - ZL_RET_R_IF_NE( - logicError, + ZL_ERR_IF_NE( nbOutputs, nbSuccessors, + logicError, "incorrect nb of successors for graph %s", gname); for (size_t n = 0; n < nbSuccessors; n++) { - ZL_RET_R_IF_NOT( - logicError, + ZL_ERR_IF_NOT( GR_isStandardGraph(successors[n]), + logicError, "all successors of Graph %s must be standard Graphs", gname); const ZL_FunctionGraphDesc* succDesc = &GR_standardGraphs[successors[n].gid].gdi.migd; - ZL_RET_R_IF_NE( - logicError, + ZL_ERR_IF_NE( succDesc->nbInputs, 1, + logicError, "Successor graph must take exactly one input"); // check type mismatch ZL_Type const origType = mitgd->soTypes[n]; ZL_Type const dstTypes = succDesc->inputTypeMasks[0]; - ZL_RET_R_IF_NOT( - logicError, + ZL_ERR_IF_NOT( ICONV_isCompatible(origType, dstTypes), + logicError, "one of the successors of graph %s requires an incompatible stream type (orig:%x != %x:dst)", gname, origType, @@ -269,6 +307,7 @@ void GR_validate(void) ZL_Report GR_staticGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); ZL_ASSERT_NN(gctx); ZL_ASSERT_NN(inputs); ZL_NodeIDList const headNode_l = ZL_Graph_getCustomNodes(gctx); @@ -281,7 +320,7 @@ GR_staticGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) // no local parameter passed lparams = NULL; } - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, outputList, ZL_Edge_runMultiInputNode_withParams( @@ -291,7 +330,7 @@ GR_staticGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) // Note: this version only supports TypedTransform as HeadNode ZL_ASSERT_EQ(gidl.nbGraphIDs, nbOutputs); for (size_t n = 0; n < nbOutputs; n++) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( ZL_Edge_setDestination(outputList.edges[n], gidl.graphids[n])); } return ZL_returnSuccess(); @@ -303,6 +342,7 @@ GR_staticGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) // it might be more readable to keep them separated. ZL_Report GR_VOGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); ZL_ASSERT_NN(gctx); ZL_ASSERT_EQ(nbInputs, 1); ZL_ASSERT_NN(inputs); @@ -316,7 +356,7 @@ ZL_Report GR_VOGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) // no local parameter passed lparams = NULL; } - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, outputList, ZL_Edge_runMultiInputNode_withParams( @@ -327,10 +367,10 @@ ZL_Report GR_VOGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) const void* const pp = GCTX_getPrivateParam(gctx); ZL_ASSERT_NN(pp); unsigned const nbSingletons = ((const unsigned*)pp)[0]; - ZL_RET_R_IF_LT( - nodeExecution_invalidOutputs, + ZL_ERR_IF_LT( nbOutputs, (size_t)nbSingletons, + nodeExecution_invalidOutputs, "the head VO Node has not generated enough outputs according to its definition "); // Register and check that all singular outputs receive one successor. @@ -341,27 +381,27 @@ ZL_Report GR_VOGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) ZL_IDType const outcomeID = StreamCtx_getOutcomeID(sctx); if (n < nbSingletons) { /* Singular output */ - ZL_RET_R_IF_NE( - nodeExecution_invalidOutputs, + ZL_ERR_IF_NE( outcomeID, n, + nodeExecution_invalidOutputs, "a Singular output has not received a Successor"); } else { /* Variable outputs */ - ZL_RET_R_IF_LT( - nodeExecution_invalidOutputs, + ZL_ERR_IF_LT( outcomeID, nbSingletons, - "overloading Singular output"); - ZL_RET_R_IF_GE( nodeExecution_invalidOutputs, + "overloading Singular output"); + ZL_ERR_IF_GE( outcomeID, outcomeList.nbGraphIDs, + nodeExecution_invalidOutputs, "Variable Output ID is out of range"); } // assign successor ZL_GraphID const next_gid = outcomeList.graphids[outcomeID]; - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(sctx, next_gid)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(sctx, next_gid)); } return ZL_returnSuccess(); @@ -370,6 +410,7 @@ ZL_Report GR_VOGraphWrapper(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) ZL_Report GR_selectorWrapper(ZL_Graph* gctx, ZL_Edge* inputCtxs[], size_t nbInputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); ZL_ASSERT_NN(gctx); ZL_ASSERT_EQ(nbInputs, 1); ZL_Edge* const inputCtx = inputCtxs[0]; @@ -388,13 +429,14 @@ GR_selectorWrapper(ZL_Graph* gctx, ZL_Edge* inputCtxs[], size_t nbInputs) SelectorSuccessorParams, successorParams, 1, gctx->graphArena); successorParams->params = NULL; // init to NULL, will be set by selector if // there are params to be sent - ZL_RET_R_IF_ERR(SelCtx_initSelectorCtx( + ZL_ERR_IF_ERR(SelCtx_initSelectorCtx( &siState, gctx->cctx, gctx->graphArena, lparams, successorParams, - ZL_Graph_getOpaquePtr(gctx))); + ZL_Graph_getOpaquePtr(gctx), + gctx->depth)); ZL_ASSERT_NN(selector_f); ZL_GraphID selectedSuccessor = selector_f( &siState, @@ -404,7 +446,7 @@ GR_selectorWrapper(ZL_Graph* gctx, ZL_Edge* inputCtxs[], size_t nbInputs) ZL_RuntimeGraphParameters const rgp = { .localParams = successorParams->params }; - ZL_RET_R_IF_ERR(ZL_Edge_setParameterizedDestination( + ZL_ERR_IF_ERR(ZL_Edge_setParameterizedDestination( inputCtxs, nbInputs, selectedSuccessor, &rgp)); SelCtx_destroySelectorCtx(&siState); @@ -443,9 +485,10 @@ void GR_getAllStandardGraphIDs(ZL_GraphID* graphs, size_t graphsSize) ZL_Report GR_forEachStandardGraph(GR_StandardGraphsCallback cb, void* opaque) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (ZL_IDType gid = 0; gid < ZL_ARRAY_SIZE(GR_standardGraphs); ++gid) { if (GR_standardGraphs[gid].type != GR_illegal) { - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( cb(opaque, (ZL_GraphID){ gid }, &GR_standardGraphs[gid])); } } diff --git a/src/openzl/compress/graph_registry.h b/src/openzl/compress/graph_registry.h index 5c9d432bd..d5875a452 100644 --- a/src/openzl/compress/graph_registry.h +++ b/src/openzl/compress/graph_registry.h @@ -14,7 +14,12 @@ ZL_BEGIN_C_DECLS -typedef enum { GR_illegal = 0, GR_store, GR_dynamicGraph } GraphFunctionType_e; +typedef enum { + GR_illegal = 0, + GR_store, + GR_dynamicGraph, + GR_segmenter +} GraphFunctionType_e; typedef struct { union { diff --git a/src/openzl/compress/graphmgr.c b/src/openzl/compress/graphmgr.c index e869fd38b..ba051a496 100644 --- a/src/openzl/compress/graphmgr.c +++ b/src/openzl/compress/graphmgr.c @@ -1,21 +1,23 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -#include "openzl/compress/graphmgr.h" -#include "openzl/common/allocation.h" -#include "openzl/common/assertion.h" -#include "openzl/common/limits.h" -#include "openzl/common/logging.h" -#include "openzl/common/map.h" -#include "openzl/common/opaque.h" -#include "openzl/compress/cgraph.h" -#include "openzl/compress/graph_registry.h" // ZL_PrivateStandardGraphID_end, DynGraph_Desc_internal -#include "openzl/compress/implicit_conversion.h" // ICONV_isCompatible -#include "openzl/compress/localparams.h" // LP_* -#include "openzl/compress/name.h" -#include "openzl/shared/mem.h" -#include "openzl/shared/overflow.h" -#include "openzl/zl_opaque_types.h" -#include "openzl/zl_reflection.h" +#include "openzl/compress/graphmgr.h" // GraphsMgr interface and GM_* function declarations +#include "openzl/common/allocation.h" // ALLOC_Arena_malloc, ALLOC_HeapArena_create, arena memory management +#include "openzl/common/assertion.h" // ZL_ASSERT_* macros for runtime checks +#include "openzl/common/limits.h" // ZL_ENCODER_GRAPH_LIMIT constant +#include "openzl/common/logging.h" // ZL_DLOG, STR_REPLACE_NULL for logging and debugging +#include "openzl/common/map.h" // ZL_DECLARE_PREDEF_MAP_TYPE, GraphMap for name-to-GraphID mapping +#include "openzl/common/opaque.h" // ZL_OpaquePtrRegistry for managing opaque pointers +#include "openzl/compress/cgraph.h" // CNODE_getName, CNode definitions, graph context functions +#include "openzl/compress/graph_registry.h" // ZL_PrivateStandardGraphID_end, GR_standardGraphs, InternalGraphDesc +#include "openzl/compress/implicit_conversion.h" // ICONV_isCompatible for type checking +#include "openzl/compress/localparams.h" // LP_transferLocalParams for parameter management +#include "openzl/compress/materializer.h" // MPM_* functions for materializer operations +#include "openzl/compress/name.h" // ZL_Name_*, ZS2_Name_* for graph name handling +#include "openzl/shared/mem.h" // ZL_malloc, ZL_free, ZL_memcpy memory utilities +#include "openzl/shared/overflow.h" // ZL_overflowMulST for integer overflow checks +#include "openzl/zl_ctransform.h" // ZL_MaterializerDesc, ZL_Materializer for materialization +#include "openzl/zl_opaque_types.h" // Opaque type definitions used by the API +#include "openzl/zl_reflection.h" // ZL_MIGraphDesc and type reflection utilities /* === State Management === */ @@ -28,8 +30,10 @@ struct GraphsMgr_s { /// Contains a map from name -> graph for all standard & custom graphs GraphMap nameMap; Arena* allocator; + Arena* scratchAllocator; const Nodes_manager* nmgr; ZL_OpaquePtrRegistry opaquePtrs; + MaterializedParamMap materializedParams; ZL_OperationContext* opCtx; }; // note: typedef'd to GraphsMgr @@ -38,11 +42,12 @@ static ZL_Report GM_fillStandardGraphsCallback( ZL_GraphID graph, const InternalGraphDesc* desc) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); GraphsMgr* gm = opaque; const ZL_Name name = ZS2_Name_wrapStandard(desc->gdi.migd.name); GraphMap_Insert insert = GraphMap_insertVal(&gm->nameMap, (GraphMap_Entry){ name, graph }); - ZL_RET_R_IF(allocation, insert.badAlloc); + ZL_ERR_IF(insert.badAlloc, allocation); ZL_ASSERT_EQ( insert.ptr->val.gid, graph.gid, @@ -58,19 +63,27 @@ static ZL_Report GM_fillStandardGraphs(GraphsMgr* gm) GraphsMgr* GM_create(const Nodes_manager* nmgr) { - GraphsMgr* const gm = ZL_malloc(sizeof(*gm)); + GraphsMgr* const gm = ZL_calloc(sizeof(*gm)); if (!gm) return NULL; ZL_OpaquePtrRegistry_init(&gm->opaquePtrs); gm->nmgr = nmgr; gm->allocator = ALLOC_HeapArena_create(); if (gm->allocator == NULL) { - ZL_free(gm); + GM_free(gm); return NULL; } + gm->scratchAllocator = ALLOC_StackArena_create(); + if (gm->scratchAllocator == NULL) { + GM_free(gm); + return NULL; + } + gm->materializedParams = + MaterializedParamMap_create(ZL_ENCODER_GRAPH_LIMIT); VECTOR_INIT(gm->gdv, ZL_ENCODER_GRAPH_LIMIT); gm->nameMap = GraphMap_create(ZL_ENCODER_GRAPH_LIMIT); if (ZL_isError(GM_fillStandardGraphs(gm))) { + GM_free(gm); return NULL; } gm->opCtx = nmgr->opCtx; @@ -81,9 +94,12 @@ void GM_free(GraphsMgr* gm) { if (gm == NULL) return; + MPM_dematerializeAllParams(&gm->materializedParams); + MaterializedParamMap_destroy(&gm->materializedParams); ZL_OpaquePtrRegistry_destroy(&gm->opaquePtrs); VECTOR_DESTROY(gm->gdv); GraphMap_destroy(&gm->nameMap); + ALLOC_Arena_freeArena(gm->scratchAllocator); ALLOC_Arena_freeArena(gm->allocator); ZL_free(gm); } @@ -109,6 +125,7 @@ static ZL_GraphID GM_lgid_to_zgid(ZL_IDType lgid) bool GM_isValidGraphID(const GraphsMgr* gm, ZL_GraphID gid) { + ZL_DLOG(SEQ, "GM_isValidGraphID(%u)", gid.gid); ZL_IDType const cid = gid.gid; size_t const nbGraphs = VECTOR_SIZE(gm->gdv); return ZL_StandardGraphID_illegal < cid @@ -120,11 +137,20 @@ bool GM_isValidGraphID(const GraphsMgr* gm, ZL_GraphID gid) #define GM_TRANSFER_ARRAY(_dgm, _arr, _size, _out) \ do { \ const void* _out_void; \ - ZL_RET_R_IF_ERR(GM_transferBuffer( \ + ZL_ERR_IF_ERR(GM_transferBuffer( \ (_dgm), (_arr), sizeof(*(_arr)), (_size), &_out_void)); \ *(_out) = _out_void; \ } while (0) +// Forward declarations +static ZL_RESULT_OF(ZL_GraphID) GM_registerSegmenter_internal( + GraphsMgr* gm, + const ZL_SegmenterDesc* segDesc, + ZL_GraphID originalGraphID, + ZL_GraphType originalGraphType, + const void* privateParam, + size_t ppSize); + static ZL_Report GM_transferBuffer( GraphsMgr* gm, const void* buffer, @@ -132,6 +158,7 @@ static ZL_Report GM_transferBuffer( size_t nbElts, const void** out) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); *out = NULL; if (buffer == NULL) ZL_ASSERT_EQ(nbElts, 0); @@ -140,11 +167,10 @@ static ZL_Report GM_transferBuffer( } size_t nbBytes; if (ZL_overflowMulST(eltWidth, nbElts, &nbBytes)) { - ZL_RET_R_ERR( - allocation, "Integer overflow: %zu * %zu", eltWidth, nbElts); + ZL_ERR(allocation, "Integer overflow: %zu * %zu", eltWidth, nbElts); } void* const dst = ALLOC_Arena_malloc(gm->allocator, nbBytes); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); ZL_memcpy(dst, buffer, nbBytes); *out = dst; return ZL_returnSuccess(); @@ -156,6 +182,7 @@ static ZL_Report GM_transferCustomGIDs( size_t nbGids, const ZL_GraphID** out) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); GM_TRANSFER_ARRAY(gm, gids, nbGids, out); return ZL_returnSuccess(); } @@ -166,6 +193,7 @@ static ZL_Report GM_transferCustomNIDs( size_t nbNids, const ZL_NodeID** out) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); GM_TRANSFER_ARRAY(gm, nids, nbNids, out); return ZL_returnSuccess(); } @@ -176,6 +204,7 @@ static ZL_Report GM_transferTypes( size_t nbTypes, const ZL_Type** out) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); GM_TRANSFER_ARRAY(gm, types, nbTypes, out); return ZL_returnSuccess(); } @@ -192,29 +221,29 @@ static ZL_Report GM_finalizeGraphRegistration( GraphsMgr* gm, Graph_Desc_internal* gdi) { + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); const ZL_IDType lgid = (ZL_IDType)VECTOR_SIZE(gm->gdv); // Need to check the name before pushing into the vector ZL_Name name; - ZL_RET_R_IF_ERR(ZL_Name_init(&name, gm->allocator, gdi->migd.name, lgid)); + ZL_ERR_IF_ERR(ZL_Name_init(&name, gm->allocator, gdi->migd.name, lgid)); // Update the name in the GDI gdi->migd.name = ZL_Name_unique(&name); gdi->maybeName = name; - ZL_RET_R_IF_NOT(allocation, VECTOR_PUSHBACK(gm->gdv, *gdi)); + ZL_ERR_IF_NOT(VECTOR_PUSHBACK(gm->gdv, *gdi), allocation); const ZL_GraphID gid = GM_lgid_to_zgid(lgid); GraphMap_Insert insert = GraphMap_insertVal(&gm->nameMap, (GraphMap_Entry){ name, gid }); if (insert.badAlloc || !insert.inserted) { VECTOR_POPBACK(gm->gdv); // Rollback the state - ZL_RET_R_IF(allocation, insert.badAlloc); + ZL_ERR_IF(insert.badAlloc, allocation); ZL_ASSERT(name.isAnchor, "Non-anchor is guaranteed to be unique"); - ZL_RET_R_ERR( - invalidName, - "Graph anchor name \"%s\" is not unique!", - ZL_Name_unique(&name)); + ZL_ERR(invalidName, + "Graph anchor name \"%s\" is not unique!", + ZL_Name_unique(&name)); } return ZL_returnValue(lgid); @@ -287,7 +316,24 @@ static ZL_RESULT_OF(ZL_GraphID) GM_registerInternalGraph( &gdi.migd.customGraphs)); ZL_ERR_IF_ERR(GM_transferCustomNIDs( gm, migd->customNodes, migd->nbCustomNodes, &gdi.migd.customNodes)); + + // do materialization here ZL_ERR_IF_ERR(GM_transferLocalParameters(gm, &gdi.migd.localParams)); + // Materialize params if materializer is provided (with deduplication) + if (migd->materializer.materializeFn != NULL) { + // Validate provided params don't contain the paramId reserved for the + // materializer + ZL_ERR_IF_ERR(MPM_validateMaterializedParamId( + &gdi.migd.localParams, migd->materializer.paramId)); + // Add the materialized object to refParams + ZL_ERR_IF_ERR(MPM_addOrReuseMaterializedParam( + gm->allocator, + gm->scratchAllocator, + &gm->materializedParams, + gm->opCtx, + &gdi.migd.localParams, + &migd->materializer)); + } if (ppSize == 0) { // No need to transfer, just copy the pointer @@ -362,6 +408,7 @@ GM_registerTypedSelectorGraph(GraphsMgr* gm, const ZL_SelectorDesc* tsd) .customGraphs = tsd->customGraphs, .nbCustomGraphs = tsd->nbCustomGraphs, .localParams = tsd->localParams, + .materializer = tsd->materializer, .opaque = { .ptr = tsd->opaque.ptr }, }; return GM_registerInternalGraph( @@ -455,10 +502,10 @@ GM_registerStaticGraph(GraphsMgr* gm, const ZL_StaticGraphDesc* sgDesc) .nbCustomNodes = 1, .customGraphs = successors, .nbCustomGraphs = nbSuccessors, - .localParams = sgDesc->localParams - ? sgDesc->localParams[0] - : cnode->transformDesc.publicDesc.localParams, }; + if (sgDesc->localParams) { + migd.localParams = *sgDesc->localParams; + } unsigned const nsParam = (unsigned)nbSingletons; return GM_registerInternalGraph( gm, @@ -469,6 +516,197 @@ GM_registerStaticGraph(GraphsMgr* gm, const ZL_StaticGraphDesc* sgDesc) sizeof(nsParam)); } +ZL_Report GM_overrideGraphParams( + GraphsMgr* const gm, + ZL_GraphID targetGraph, + const ZL_GraphParameters* gp) +{ + ZL_RESULT_DECLARE_SCOPE(size_t, gm->opCtx); + ZL_ASSERT_NN(gm); + + ZL_ERR_IF( + GR_isStandardGraph(targetGraph), + graph_invalid, + "Cannot replace standard graph"); + + ZL_IDType const lid = GM_GraphID_to_lgid(targetGraph); + ZL_ERR_IF_GE(lid, VECTOR_SIZE(gm->gdv), internalBuffer_tooSmall); + // Check that the graphs is a parameterized graph + ZL_ERR_IF_NE( + VECTOR_AT(gm->gdv, lid).originalGraphType, + ZL_GraphType_parameterized, + graph_invalid); + ZL_FunctionGraphDesc* const migd = &VECTOR_AT(gm->gdv, lid).migd; + + // Validate custom graphs + for (size_t i = 0; i < gp->nbCustomGraphs; ++i) { + // TODO(T219759022): Should this be allowed? + if (gp->customGraphs[i].gid == ZL_GRAPH_ILLEGAL.gid) { + continue; + } + ZL_ERR_IF_NOT( + GM_isValidGraphID(gm, gp->customGraphs[i]), + graph_invalid, + "Custom GraphID at idx=%zu is invalid!", + i); + } + + // Validate custom nodes + // TODO(T219759022): Should ZL_NODE_ILLEGAL be allowed? + // It currently is, because NM_getCNode() returns non-null. + for (size_t i = 0; i < gp->nbCustomNodes; ++i) { + const CNode* cnode = NM_getCNode(gm->nmgr, gp->customNodes[i]); + ZL_ERR_IF_NULL( + cnode, + graph_invalid, + "Custom NodeID at idx=%zu is invalid!", + i); + } + + if (gp->nbCustomGraphs > 0) { + ZL_ERR_IF_ERR(GM_transferCustomGIDs( + gm, gp->customGraphs, gp->nbCustomGraphs, &migd->customGraphs)); + migd->nbCustomGraphs = gp->nbCustomGraphs; + } + if (gp->nbCustomNodes > 0) { + ZL_ERR_IF_ERR(GM_transferCustomNIDs( + gm, gp->customNodes, gp->nbCustomNodes, &migd->customNodes)); + migd->nbCustomNodes = gp->nbCustomNodes; + } + if (gp->localParams) { + migd->localParams = *gp->localParams; + ZL_ERR_IF_ERR(GM_transferLocalParameters(gm, &migd->localParams)); + } + if (gp->name) { + ZL_ERR(parameter_invalid, "Cannot replace the name of a graph"); + } + return ZL_returnSuccess(); +} + +/// @returns An error if the graph @p haystack recursively depends on @p needle +/// through parameterization. +/// @pre both are valid graphs +static ZL_Report GM_checkDoesNotDependOn( + const GraphsMgr* gm, + ZL_GraphID needle, + ZL_GraphID haystack) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); + + ZL_ASSERT(GM_isValidGraphID(gm, haystack)); + ZL_ASSERT(GM_isValidGraphID(gm, needle)); + + size_t count = 0; + for (;;) { + // Check if haystack (recursively) depends on needle. + ZL_ERR_IF_EQ( + haystack.gid, + needle.gid, + graph_invalid, + "Would introduce infinite loop"); + + // There are at most ZL_ENCODER_GRAPH_LIMIT graphs in a compressor. If + // this limit is surpassed, we must be in some sort of infinite loop. + // This is unexpected, because it means the graph was already invalid. + ZL_ERR_IF_GT( + count++, + ZL_ENCODER_GRAPH_LIMIT, + graph_invalid, + "Would introuce infinite loop"); + + if (GR_isStandardGraph(haystack)) { + // Standard graphs aren't parameterized graphs + break; + } + const Graph_Desc_internal* desc = + &VECTOR_AT(gm->gdv, GM_GraphID_to_lgid(haystack)); + if (desc->originalGraphType != ZL_GraphType_parameterized) { + // Not a parameterized graph + break; + } + + // Iteratively check the base graph of the parameterized graph + haystack = desc->baseGraphID; + } + + return ZL_returnSuccess(); +} + +/// @returns an error if @p graph1 is not compatible with @p graph0. +/// @note Cannot catch all possible incompatibilities, but will catch +/// if it is statically incompatible. Other incompatibilities will be +/// caught at runtime. +static ZL_Report GM_checkInputTypesAreCompatible( + const GraphsMgr* gm, + ZL_GraphID graph0, + ZL_GraphID graph1) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(gm->opCtx); + + GM_GraphMetadata meta0 = GM_getGraphMetadata(gm, graph0); + GM_GraphMetadata meta1 = GM_getGraphMetadata(gm, graph1); + + ZL_ERR_IF_NE( + meta0.nbInputs, + meta1.nbInputs, + graph_invalid, + "Graphs have different number of inputs"); + for (size_t i = 0; i < meta0.nbInputs; ++i) { + ZL_ERR_IF_EQ( + meta0.inputTypeMasks[i] & meta1.inputTypeMasks[i], + 0, + graph_invalid, + "Input %zu types are not compatible", + i); + } + + return ZL_returnSuccess(); +} + +ZL_Report +GM_overrideBaseGraph(GraphsMgr* gm, ZL_GraphID graph, ZL_GraphID newBaseGraph) +{ + ZL_ASSERT_NN(gm); + ZL_RESULT_DECLARE_SCOPE(size_t, gm->opCtx); + + ZL_ERR_IF( + GR_isStandardGraph(graph), + graph_invalid, + "Cannot replace standard graph"); + ZL_ERR_IF_NOT( + GM_isValidGraphID(gm, graph), graph_invalid, "Graph is invalid"); + ZL_ERR_IF_NOT( + GM_isValidGraphID(gm, newBaseGraph), + graph_invalid, + "New base graph is invalid"); + + ZL_ERR_IF_ERR(GM_checkInputTypesAreCompatible(gm, graph, newBaseGraph)); + + ZL_IDType const lid = GM_GraphID_to_lgid(graph); + // Check that the graphs is a parameterized graph + ZL_ERR_IF_NE( + VECTOR_AT(gm->gdv, lid).originalGraphType, + ZL_GraphType_parameterized, + graph_invalid, + "Graph is not parameterized"); + + // Validate that newBaseGraph does not depend on graph + ZL_ERR_IF_ERR(GM_checkDoesNotDependOn( + gm, /* needle */ graph, /* haystack */ newBaseGraph)); + // Set the new base graph and check for infinite loops + VECTOR_AT(gm->gdv, lid).baseGraphID = newBaseGraph; + + // Clear the custom graphs, custom nodes, and local params + VECTOR_AT(gm->gdv, lid).migd.customGraphs = NULL; + VECTOR_AT(gm->gdv, lid).migd.nbCustomGraphs = 0; + VECTOR_AT(gm->gdv, lid).migd.customNodes = NULL; + VECTOR_AT(gm->gdv, lid).migd.nbCustomNodes = 0; + ZL_LocalParams* localParams = &VECTOR_AT(gm->gdv, lid).migd.localParams; + memset(localParams, 0, sizeof(*localParams)); + + return ZL_returnSuccess(); +} + ZL_RESULT_OF(ZL_GraphID) GM_registerParameterizedGraph( GraphsMgr* gm, @@ -477,6 +715,42 @@ GM_registerParameterizedGraph( ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, gm->opCtx); ZL_ASSERT_NN(gm); ZL_ASSERT_NN(desc); + ZL_DLOG(SEQ, + "GM_registerParameterizedGraph (name=%s)", + STR_REPLACE_NULL(desc->name)); + + // Check if the base graph is a segmenter and handle it separately + GM_GraphMetadata baseMeta = GM_getGraphMetadata(gm, desc->graph); + if (baseMeta.graphType == ZL_GraphType_segmenter) { + const ZL_SegmenterDesc* segDescPtr = + GM_getSegmenterDesc(gm, desc->graph); + ZL_ERR_IF_NULL(segDescPtr, graph_invalid); + + ZL_SegmenterDesc segDesc = *segDescPtr; + + if (desc->localParams) { + segDesc.localParams = *desc->localParams; + } + if (desc->nbCustomGraphs > 0) { + segDesc.customGraphs = desc->customGraphs; + segDesc.numCustomGraphs = desc->nbCustomGraphs; + } + if (desc->name != NULL) { + segDesc.name = desc->name; + } else { + segDesc.name = ZL_Name_prefix(&baseMeta.name); + } + + // Keep originalGraphType as segmenter, use baseGraphID to indicate + // parameterization + return GM_registerSegmenter_internal( + gm, + &segDesc, + desc->graph, + ZL_GraphType_segmenter, + GM_getPrivateParam(gm, desc->graph), + 0 /* No need to transfer private param */); + } const ZL_FunctionGraphDesc* miDescPtr = GM_getMultiInputGraphDesc(gm, desc->graph); @@ -498,8 +772,8 @@ GM_registerParameterizedGraph( if (desc->name != NULL) { miDesc.name = desc->name; } else { - // Use the name prefix rather than the unique name, because this graph - // needs a new non-anchor name. + // Use the name prefix rather than the unique name, because this + // graph needs a new non-anchor name. ZL_Name name = GM_getGraphMetadata(gm, desc->graph).name; miDesc.name = ZL_Name_prefix(&name); } @@ -566,7 +840,23 @@ static ZL_RESULT_OF(ZL_GraphID) GM_registerSegmenter_internal( segDesc->customGraphs, segDesc->numCustomGraphs, &gdi.segDesc.customGraphs)); + ZL_ERR_IF_ERR(GM_transferLocalParameters(gm, &gdi.segDesc.localParams)); + // Materialize params if materializer is provided (with deduplication) + if (segDesc->materializer.materializeFn != NULL) { + // Validate provided params don't contain the paramId reserved for + // the materializer + ZL_ERR_IF_ERR(MPM_validateMaterializedParamId( + &gdi.segDesc.localParams, segDesc->materializer.paramId)); + // Add the materialized object to refParams + ZL_ERR_IF_ERR(MPM_addOrReuseMaterializedParam( + gm->allocator, + gm->scratchAllocator, + &gm->materializedParams, + gm->opCtx, + &gdi.segDesc.localParams, + &segDesc->materializer)); + } if (ppSize == 0) { // No need to transfer, just copy the pointer @@ -606,9 +896,9 @@ ZL_GraphID GM_getLastRegisteredGraph(const GraphsMgr* gm) VECTOR_SIZE(gm->gdv)); ZL_ASSERT_NN(gm); if (VECTOR_SIZE(gm->gdv) == 0) { - // Note(@Cyan): this scenario only happens when no custom graph has been - // registered yet. Another option here could be to return the most - // generic standard graph instead. + // Note(@Cyan): this scenario only happens when no custom graph has + // been registered yet. Another option here could be to return the + // most generic standard graph instead. return ZL_GRAPH_ILLEGAL; } // The last registered graph is the last element in the vector @@ -617,6 +907,10 @@ ZL_GraphID GM_getLastRegisteredGraph(const GraphsMgr* gm) ZL_GraphID GM_getGraphByName(const GraphsMgr* gm, const char* graph) { + // Lookup should not be done using anchor names + if (graph == NULL || ZL_keyIsAnchor(graph)) { + return ZL_GRAPH_ILLEGAL; + } const ZL_Name key = ZL_Name_wrapKey(graph); const GraphMap_Entry* entry = GraphMap_find(&gm->nameMap, &key); if (entry != NULL) { @@ -631,28 +925,43 @@ static GM_GraphMetadata GM_getSegmenterMetadata( ZL_GraphID gid) { ZL_ASSERT(GM_isValidGraphID(gm, gid)); - ZL_ASSERT(!GR_isStandardGraph(gid)); GM_GraphMetadata meta; + ZL_DLOG(SEQ, "GM_getSegmenterMetadata (graphid=%u)", gid.gid); // graphType - ZL_IDType const lgid = GM_GraphID_to_lgid(gid); - ZL_ASSERT_EQ( - VECTOR_AT(gm->gdv, lgid).originalGraphType, ZL_GraphType_segmenter); + if (!GR_isStandardGraph(gid)) { + ZL_IDType const lgid = GM_GraphID_to_lgid(gid); + ZL_ASSERT_EQ( + VECTOR_AT(gm->gdv, lgid).originalGraphType, + ZL_GraphType_segmenter); + } meta.graphType = ZL_GraphType_segmenter; const ZL_SegmenterDesc* desc = GM_getSegmenterDesc(gm, gid); ZL_ASSERT_NN(desc); - // baseGraphID (no parameterization yet) - meta.baseGraphID = ZL_GRAPH_ILLEGAL; + // baseGraphID + if (!GR_isStandardGraph(gid)) { + ZL_IDType const lgid = GM_GraphID_to_lgid(gid); + meta.baseGraphID = VECTOR_AT(gm->gdv, lgid).baseGraphID; + } else { + // this is not a parameterized graph, it's an original + meta.baseGraphID = ZL_GRAPH_ILLEGAL; + } // name - meta.name = VECTOR_AT(gm->gdv, lgid).maybeName; - ZL_ASSERT_EQ( - strcmp(ZL_Name_unique(&meta.name), desc->name), - 0, - "Name mismatch in %s", - desc->name); + ZL_ASSERT_NN(desc); + if (GR_isStandardGraph(gid)) { + meta.name = ZS2_Name_wrapStandard(desc->name); + } else { + ZL_IDType const lgid = GM_GraphID_to_lgid(gid); + meta.name = VECTOR_AT(gm->gdv, lgid).maybeName; + ZL_ASSERT_EQ( + strcmp(ZL_Name_unique(&meta.name), desc->name), + 0, + "Name mismatch in %s", + desc->name); + } ZL_ASSERT(!ZL_Name_isEmpty(&meta.name)); meta.inputTypeMasks = desc->inputTypeMasks; @@ -672,10 +981,13 @@ GM_GraphMetadata GM_getGraphMetadata(const GraphsMgr* gm, ZL_GraphID gid) { ZL_ASSERT(GM_isValidGraphID(gm, gid)); GM_GraphMetadata meta; + ZL_DLOG(SEQ, "GM_getGraphMetadata (graphid=%u)", gid.gid); // graphType if (GR_isStandardGraph(gid)) { meta.graphType = ZL_GraphType_standard; + if (GR_standardGraphs[gid.gid].type == GR_segmenter) + meta.graphType = ZL_GraphType_segmenter; } else { ZL_IDType const lgid = GM_GraphID_to_lgid(gid); meta.graphType = VECTOR_AT(gm->gdv, lgid).originalGraphType; @@ -695,6 +1007,7 @@ GM_GraphMetadata GM_getGraphMetadata(const GraphsMgr* gm, ZL_GraphID gid) } // name + ZL_ASSERT_NN(desc); if (GR_isStandardGraph(gid)) { meta.name = ZS2_Name_wrapStandard(desc->name); } else { @@ -727,7 +1040,7 @@ GM_GraphMetadata GM_getGraphMetadata(const GraphsMgr* gm, ZL_GraphID gid) if (meta.graphType == ZL_GraphType_standard) { ZL_ASSERT( !memcmp(&meta.localParams, - &(ZL_LocalParams){}, + &(ZL_LocalParams){ 0 }, sizeof(ZL_LocalParams))); } if (meta.graphType == ZL_GraphType_selector) { @@ -744,39 +1057,52 @@ const ZL_FunctionGraphDesc* GM_getMultiInputGraphDesc( const GraphsMgr* gm, ZL_GraphID graphid) { + ZL_IDType const ggid = graphid.gid; + ZL_DLOG(BLOCK, "GM_getMultiInputGraphDesc (graphid=%u)", ggid); if (GR_isStandardGraph(graphid)) { - if (GR_standardGraphs[graphid.gid].type == GR_illegal) { - return NULL; + switch (GR_standardGraphs[ggid].type) { + case GR_store: + case GR_dynamicGraph: + return &GR_standardGraphs[ggid].gdi.migd; + case GR_illegal: + case GR_segmenter: + default: + return NULL; } - return &GR_standardGraphs[graphid.gid].gdi.migd; } - ZL_IDType const lgid = graphid.gid; - ZL_DLOG(BLOCK, "GM_getMultiInputGraphDesc (graphid=%u)", lgid); - ZL_IDType const lid = GM_GraphID_to_lgid(graphid); + ZL_IDType const lgid = GM_GraphID_to_lgid(graphid); ZL_ASSERT_NN(gm); - if (lid >= VECTOR_SIZE(gm->gdv)) + if (lgid >= VECTOR_SIZE(gm->gdv)) { + ZL_DLOG(ERROR, + "requested graphid=%u is invalid (too large, >= %zu max)", + ggid, + VECTOR_SIZE(gm->gdv)); return NULL; - if (VECTOR_AT(gm->gdv, lid).originalGraphType == ZL_GraphType_segmenter) + } + if (VECTOR_AT(gm->gdv, lgid).originalGraphType == ZL_GraphType_segmenter) return NULL; - return &VECTOR_AT(gm->gdv, lid).migd; + return &VECTOR_AT(gm->gdv, lgid).migd; } const ZL_SegmenterDesc* GM_getSegmenterDesc( const GraphsMgr* gm, ZL_GraphID graphid) { + ZL_IDType const ggid = graphid.gid; + ZL_DLOG(BLOCK, "GM_getSelectorDesc (graphid=%u)", ggid); if (GR_isStandardGraph(graphid)) { - return NULL; // not supported yet + if (GR_standardGraphs[graphid.gid].type != GR_segmenter) { + return NULL; + } + return &GR_standardGraphs[graphid.gid].gdi.segDesc; } - ZL_IDType const lgid = graphid.gid; - ZL_DLOG(BLOCK, "GM_getSelectorDesc (graphid=%u)", lgid); - ZL_IDType const lid = GM_GraphID_to_lgid(graphid); + ZL_IDType const lgid = GM_GraphID_to_lgid(graphid); ZL_ASSERT_NN(gm); - if (lid >= VECTOR_SIZE(gm->gdv)) + if (lgid >= VECTOR_SIZE(gm->gdv)) return NULL; - ZL_ASSERT_EQ( - VECTOR_AT(gm->gdv, lid).originalGraphType, ZL_GraphType_segmenter); - return &VECTOR_AT(gm->gdv, lid).segDesc; + if (VECTOR_AT(gm->gdv, lgid).originalGraphType != ZL_GraphType_segmenter) + return NULL; + return &VECTOR_AT(gm->gdv, lgid).segDesc; } GraphType_e GM_graphType(const GraphsMgr* gm, ZL_GraphID graphid) @@ -787,6 +1113,8 @@ GraphType_e GM_graphType(const GraphsMgr* gm, ZL_GraphID graphid) return gt_store; case GR_dynamicGraph: return gt_miGraph; + case GR_segmenter: + return gt_segmenter; case GR_illegal: default: return gt_illegal; @@ -824,6 +1152,8 @@ const void* GM_getPrivateParam(const GraphsMgr* gm, ZL_GraphID graphid) { if (GR_isStandardGraph(graphid)) { ZL_ASSERT(GR_isStandardGraph(graphid)); + if (GR_standardGraphs[graphid.gid].type == GR_segmenter) + return NULL; /* segmenters have no private params */ ZL_ASSERT_EQ(GR_standardGraphs[graphid.gid].type, GR_dynamicGraph); return GR_standardGraphs[graphid.gid].gdi.privateParam; } @@ -839,9 +1169,10 @@ ZL_Report GM_forEachGraph( void* opaque, const ZL_Compressor* compressor) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (size_t i = 0; i < VECTOR_SIZE(gmgr->gdv); ++i) { const ZL_GraphID gid = GM_lgid_to_zgid((ZL_IDType)i); - ZL_RET_R_IF_ERR(callback(opaque, compressor, gid)); + ZL_ERR_IF_ERR(callback(opaque, compressor, gid)); } return ZL_returnSuccess(); } diff --git a/src/openzl/compress/graphmgr.h b/src/openzl/compress/graphmgr.h index 9077855af..65c0d42d7 100644 --- a/src/openzl/compress/graphmgr.h +++ b/src/openzl/compress/graphmgr.h @@ -129,6 +129,20 @@ ZL_Report GM_forEachGraph( void* opaque, const ZL_Compressor* compressor); +// Warning: This is part of experimental API for graph mutation on the +// compressor. +// +// Replaces all the parameters of the target graph with @p gp. If there is a +// cycle in the graph as a result of this operation, it is UB. +ZL_Report GM_overrideGraphParams( + GraphsMgr* const gm, + ZL_GraphID targetGraph, + const ZL_GraphParameters* gp); + +/// @see ZL_Compressor_overrideBaseGraph +ZL_Report +GM_overrideBaseGraph(GraphsMgr* gm, ZL_GraphID graph, ZL_GraphID newBaseGraph); + ZL_END_C_DECLS #endif // ZSTRONG_COMPRESS_GRAPHMGR_H diff --git a/src/openzl/compress/graphs/generic_clustering_graph.c b/src/openzl/compress/graphs/generic_clustering_graph.c index 00c6ed55e..62fcad6d3 100644 --- a/src/openzl/compress/graphs/generic_clustering_graph.c +++ b/src/openzl/compress/graphs/generic_clustering_graph.c @@ -118,25 +118,19 @@ static A1C_Arena graph_wrapArena(ZL_Graph* graph) static ZL_RESULT_OF(ZL_ClusteringConfig) graph_getClusteringConfig(ZL_Graph* graph) { - ZL_RESULT_DECLARE_SCOPE_REPORT(graph); - const uint8_t* serializedConfig = - ZL_Graph_getLocalRefParam(graph, ZL_GENERIC_CLUSTERING_CONFIG_ID) - .paramRef; + ZL_RESULT_DECLARE_SCOPE(ZL_ClusteringConfig, graph); + ZL_RefParam serializedConfig = + ZL_Graph_getLocalRefParam(graph, ZL_GENERIC_CLUSTERING_CONFIG_ID); + const uint8_t* config = serializedConfig.paramRef; + size_t configSize = serializedConfig.paramSize; + // TODO: provide a default config when config parameter is not passed to // graph - ZL_RET_T_IF_NULL( - ZL_ClusteringConfig, graphParameter_invalid, serializedConfig); - ZL_IntParam configSizeParam = ZL_Graph_getLocalIntParam( - graph, ZL_GENERIC_CLUSTERING_CONFIG_SIZE_ID); - ZL_RET_T_IF_EQ( - ZL_ClusteringConfig, - graphParameter_invalid, - configSizeParam.paramId, - ZL_LP_INVALID_PARAMID); - size_t configSize = (size_t)configSizeParam.paramValue; - A1C_Arena arena = graph_wrapArena(graph); + ZL_ERR_IF_NULL(config, graphParameter_invalid); + + A1C_Arena arena = graph_wrapArena(graph); return ZL_Clustering_deserializeClusteringConfig( - ZL_ERR_CTX_PTR, serializedConfig, configSize, &arena); + ZL_ERR_CTX_PTR, config, configSize, &arena); } static ZL_Report cbor_serializeTypeSuccessor( @@ -149,22 +143,22 @@ static ZL_Report cbor_serializeTypeSuccessor( A1C_MapBuilder typeSuccessorMapBuilder = A1C_Item_map_builder(parent, 4, arena); { - A1C_MAP_TRY_ADD_R(pair, typeSuccessorMapBuilder); + A1C_MAP_TRY_ADD(pair, typeSuccessorMapBuilder); A1C_Item_string_refCStr(&pair->key, "type"); A1C_Item_int64(&pair->val, (A1C_Int64)typeSuccesor->type); } { - A1C_MAP_TRY_ADD_R(pair, typeSuccessorMapBuilder); + A1C_MAP_TRY_ADD(pair, typeSuccessorMapBuilder); A1C_Item_string_refCStr(&pair->key, "eltWidth"); A1C_Item_int64(&pair->val, (A1C_Int64)typeSuccesor->eltWidth); } { - A1C_MAP_TRY_ADD_R(pair, typeSuccessorMapBuilder); + A1C_MAP_TRY_ADD(pair, typeSuccessorMapBuilder); A1C_Item_string_refCStr(&pair->key, "successorIdx"); A1C_Item_int64(&pair->val, (A1C_Int64)typeSuccesor->successorIdx); } { - A1C_MAP_TRY_ADD_R(pair, typeSuccessorMapBuilder); + A1C_MAP_TRY_ADD(pair, typeSuccessorMapBuilder); A1C_Item_string_refCStr(&pair->key, "clusteringCodecIdx"); A1C_Item_int64(&pair->val, (A1C_Int64)typeSuccesor->clusteringCodecIdx); } @@ -181,32 +175,32 @@ ZL_Report ZL_Clustering_serializeClusteringConfig( { ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); A1C_Item* root = A1C_Item_root(arena); - ZL_RET_R_IF_NULL(allocation, root); + ZL_ERR_IF_NULL(root, allocation); A1C_MapBuilder rootMapBuilder = A1C_Item_map_builder(root, 2, arena); { - A1C_MAP_TRY_ADD_R(pair, rootMapBuilder); + A1C_MAP_TRY_ADD(pair, rootMapBuilder); A1C_Item_string_refCStr(&pair->key, "clusters"); A1C_Item* clusters = A1C_Item_array(&pair->val, config->nbClusters, arena); - ZL_RET_R_IF_NULL(allocation, clusters); + ZL_ERR_IF_NULL(clusters, allocation); for (size_t i = 0; i < config->nbClusters; i++) { A1C_MapBuilder clustersMapBuilder = A1C_Item_map_builder(&clusters[i], 2, arena); { - A1C_MAP_TRY_ADD_R(p, clustersMapBuilder); + A1C_MAP_TRY_ADD(p, clustersMapBuilder); A1C_Item_string_refCStr(&p->key, "typeSuccessor"); - ZL_RET_R_IF_ERR(cbor_serializeTypeSuccessor( + ZL_ERR_IF_ERR(cbor_serializeTypeSuccessor( errCtx, &p->val, arena, &config->clusters[i].typeSuccessor)); } { - A1C_MAP_TRY_ADD_R(p, clustersMapBuilder); + A1C_MAP_TRY_ADD(p, clustersMapBuilder); A1C_Item_string_refCStr(&p->key, "memberTags"); A1C_Item* memberTags = A1C_Item_array( &p->val, config->clusters[i].nbMemberTags, arena); - ZL_RET_R_IF_NULL(allocation, memberTags); + ZL_ERR_IF_NULL(memberTags, allocation); for (size_t j = 0; j < config->clusters[i].nbMemberTags; j++) { A1C_Item_int64( &memberTags[j], @@ -216,25 +210,25 @@ ZL_Report ZL_Clustering_serializeClusteringConfig( } } { - A1C_MAP_TRY_ADD_R(pair, rootMapBuilder); + A1C_MAP_TRY_ADD(pair, rootMapBuilder); A1C_Item_string_refCStr(&pair->key, "typeDefaults"); A1C_Item* typeDefaults = A1C_Item_array(&pair->val, config->nbTypeDefaults, arena); - ZL_RET_R_IF_NULL(allocation, typeDefaults); + ZL_ERR_IF_NULL(typeDefaults, allocation); for (size_t i = 0; i < config->nbTypeDefaults; i++) { - ZL_RET_R_IF_ERR(cbor_serializeTypeSuccessor( + ZL_ERR_IF_ERR(cbor_serializeTypeSuccessor( errCtx, &typeDefaults[i], arena, &config->typeDefaults[i])); } } *dstSize = A1C_Item_encodedSize(root); *dst = arena->calloc(arena->opaque, *dstSize); - ZL_RET_R_IF_NULL(allocation, *dst); + ZL_ERR_IF_NULL(*dst, allocation); A1C_Error error; size_t res = A1C_Item_encode(root, *dst, *dstSize, &error); if (res == 0) { - ZL_RET_R_WRAP_ERR(A1C_Error_convert(NULL, error)); + return ZL_WRAP_ERROR(A1C_Error_convert(NULL, error)); } - ZL_RET_R_IF_NE(allocation, res, *dstSize); + ZL_ERR_IF_NE(res, *dstSize, allocation); return ZL_returnSuccess(); } @@ -244,15 +238,15 @@ static ZL_Report cbor_deserializeTypeSuccessor( ZL_ClusteringConfig_TypeSuccessor* typeSuccessor) { ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); - A1C_TRY_EXTRACT_R_INT64(type, A1C_Map_get_cstr(typeSuccessorMap, "type")); + A1C_TRY_EXTRACT_INT64(type, A1C_Map_get_cstr(typeSuccessorMap, "type")); typeSuccessor->type = (ZL_Type)type; - A1C_TRY_EXTRACT_R_INT64( + A1C_TRY_EXTRACT_INT64( eltWidth, A1C_Map_get_cstr(typeSuccessorMap, "eltWidth")); typeSuccessor->eltWidth = (size_t)eltWidth; - A1C_TRY_EXTRACT_R_INT64( + A1C_TRY_EXTRACT_INT64( successorIdx, A1C_Map_get_cstr(typeSuccessorMap, "successorIdx")); typeSuccessor->successorIdx = (size_t)successorIdx; - A1C_TRY_EXTRACT_R_INT64( + A1C_TRY_EXTRACT_INT64( clusteringCodecIdx, A1C_Map_get_cstr(typeSuccessorMap, "clusteringCodecIdx")); typeSuccessor->clusteringCodecIdx = (size_t)clusteringCodecIdx; @@ -267,7 +261,7 @@ ZL_Clustering_deserializeClusteringConfig( size_t configSize, A1C_Arena* arena) { - ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + ZL_RESULT_DECLARE_SCOPE(ZL_ClusteringConfig, errCtx); ZL_ClusteringConfig dst; A1C_Decoder decoder; A1C_DecoderConfig decoderConfig = @@ -277,74 +271,51 @@ ZL_Clustering_deserializeClusteringConfig( .rejectUnknownSimple = true }; A1C_Decoder_init(&decoder, *arena, decoderConfig); const A1C_Item* root = A1C_Decoder_decode(&decoder, config, configSize); - A1C_TRY_EXTRACT_T_MAP(ZL_ClusteringConfig, rootMap, root); + A1C_TRY_EXTRACT_MAP(rootMap, root); - A1C_TRY_EXTRACT_T_ARRAY( - ZL_ClusteringConfig, - clustersItem, - A1C_Map_get_cstr(&rootMap, "clusters")); + A1C_TRY_EXTRACT_ARRAY(clustersItem, A1C_Map_get_cstr(&rootMap, "clusters")); dst.nbClusters = clustersItem.size; - ZL_RET_T_IF_GT( - ZL_ClusteringConfig, - node_invalid_input, + ZL_ERR_IF_GT( dst.nbClusters, - (size_t)ZL_runtimeNodeInputLimit(ZL_MAX_FORMAT_VERSION)); + (size_t)ZL_runtimeNodeInputLimit(ZL_MAX_FORMAT_VERSION), + node_invalid_input); dst.clusters = arena->calloc( arena->opaque, dst.nbClusters * sizeof(ZL_ClusteringConfig_Cluster)); - ZL_RET_T_IF_NULL(ZL_ClusteringConfig, allocation, dst.clusters); + ZL_ERR_IF_NULL(dst.clusters, allocation); for (size_t i = 0; i < dst.nbClusters; i++) { const A1C_Item* clusterItem = A1C_Array_get(&clustersItem, i); - A1C_TRY_EXTRACT_T_MAP(ZL_ClusteringConfig, clusterMap, clusterItem); - A1C_TRY_EXTRACT_T_MAP( - ZL_ClusteringConfig, + A1C_TRY_EXTRACT_MAP(clusterMap, clusterItem); + A1C_TRY_EXTRACT_MAP( typeSuccessorMap, A1C_Map_get_cstr(&clusterMap, "typeSuccessor")); - ZL_RET_T_IF_ERR( - ZL_ClusteringConfig, - cbor_deserializeTypeSuccessor( - errCtx, - &typeSuccessorMap, - &dst.clusters[i].typeSuccessor)); - A1C_TRY_EXTRACT_T_ARRAY( - ZL_ClusteringConfig, - memberTagsArray, - A1C_Map_get_cstr(&clusterMap, "memberTags")); + ZL_ERR_IF_ERR(cbor_deserializeTypeSuccessor( + errCtx, &typeSuccessorMap, &dst.clusters[i].typeSuccessor)); + A1C_TRY_EXTRACT_ARRAY( + memberTagsArray, A1C_Map_get_cstr(&clusterMap, "memberTags")); dst.clusters[i].nbMemberTags = memberTagsArray.size; dst.clusters[i].memberTags = arena->calloc( arena->opaque, dst.clusters[i].nbMemberTags * sizeof(int)); - ZL_RET_T_IF_NULL( - ZL_ClusteringConfig, allocation, dst.clusters[i].memberTags); + ZL_ERR_IF_NULL(dst.clusters[i].memberTags, allocation); for (size_t j = 0; j < dst.clusters[i].nbMemberTags; j++) { - A1C_TRY_EXTRACT_T_INT64( - ZL_ClusteringConfig, - memberTag, - A1C_Array_get(&memberTagsArray, j)); - ZL_RET_T_IF_GT( - ZL_ClusteringConfig, - nodeParameter_invalidValue, - memberTag, - INT32_MAX); + A1C_TRY_EXTRACT_INT64( + memberTag, A1C_Array_get(&memberTagsArray, j)); + ZL_ERR_IF_GT(memberTag, INT32_MAX, nodeParameter_invalidValue); dst.clusters[i].memberTags[j] = (int)memberTag; } } - A1C_TRY_EXTRACT_T_ARRAY( - ZL_ClusteringConfig, - typeDefaultsItem, - A1C_Map_get_cstr(&rootMap, "typeDefaults")); + A1C_TRY_EXTRACT_ARRAY( + typeDefaultsItem, A1C_Map_get_cstr(&rootMap, "typeDefaults")); dst.nbTypeDefaults = typeDefaultsItem.size; dst.typeDefaults = arena->calloc( arena->opaque, dst.nbTypeDefaults * sizeof(ZL_ClusteringConfig_TypeSuccessor)); - ZL_RET_T_IF_NULL(ZL_ClusteringConfig, allocation, dst.typeDefaults); + ZL_ERR_IF_NULL(dst.typeDefaults, allocation); for (size_t i = 0; i < dst.nbTypeDefaults; i++) { const A1C_Item* typeDefaultItem = A1C_Array_get(&typeDefaultsItem, i); - A1C_TRY_EXTRACT_T_MAP( - ZL_ClusteringConfig, typeDefaultMap, typeDefaultItem); - ZL_RET_T_IF_ERR( - ZL_ClusteringConfig, - cbor_deserializeTypeSuccessor( - errCtx, &typeDefaultMap, &dst.typeDefaults[i])); + A1C_TRY_EXTRACT_MAP(typeDefaultMap, typeDefaultItem); + ZL_ERR_IF_ERR(cbor_deserializeTypeSuccessor( + errCtx, &typeDefaultMap, &dst.typeDefaults[i])); } return ZL_RESULT_WRAP_VALUE(ZL_ClusteringConfig, dst); @@ -410,10 +381,7 @@ static ZL_RESULT_OF(ZL_NodeID) getDefaultClusteringCodec( clusteringCodec = ZL_NODE_CONCAT_STRING; break; default: - ZL_RET_T_ERR( - ZL_NodeID, - node_invalid_input, - "Invalid type for uncofigured tag"); + ZL_ERR(node_invalid_input, "Invalid type for uncofigured tag"); } return ZL_RESULT_WRAP_VALUE(ZL_NodeID, clusteringCodec); } else { @@ -439,17 +407,17 @@ static ZL_Report validateClusteredConfig( ZL_RESULT_DECLARE_SCOPE_REPORT(graph); /* Check successor index is not out of range for clusters */ for (size_t i = 0; i < config->nbClusters; i++) { - ZL_RET_R_IF_GE( - graphParameter_invalid, + ZL_ERR_IF_GE( config->clusters[i].typeSuccessor.successorIdx, - succList->nbGraphIDs); + succList->nbGraphIDs, + graphParameter_invalid); } /* Check successor index is not out of range for defaultSuccessors */ for (size_t i = 0; i < config->nbTypeDefaults; i++) { - ZL_RET_R_IF_GE( - graphParameter_invalid, + ZL_ERR_IF_GE( config->typeDefaults[i].successorIdx, - succList->nbGraphIDs); + succList->nbGraphIDs, + graphParameter_invalid); } return ZL_returnSuccess(); } @@ -481,11 +449,11 @@ static ZL_Report sendClustersToSuccessors( if (nbEdges == 1) { // Directly send edge to successor if there is only a single edge in // the cluster. - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(cluster[0], successor)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(cluster[0], successor)); continue; } - ZL_TRY_LET_T( + ZL_TRY_LET( ZL_EdgeList, clustered, ZL_Edge_runMultiInputNode(cluster, nbEdges, clusterNode)); @@ -498,13 +466,13 @@ static ZL_Report sendClustersToSuccessors( // TODO: These numeric streams can be concat together across all // clusters. It is worth checking if this is worthwhile at the stage // of benchmarking the testing corpus - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( + ZL_ERR_IF_ERR(ZL_Edge_setDestination( clustered.edges[0], ZL_GRAPH_FIELD_LZ)); clusteredOutIdx = 1; } // The second edge goes to the custom successor - ZL_RET_R_IF_ERR(ZL_Edge_setDestination( + ZL_ERR_IF_ERR(ZL_Edge_setDestination( clustered.edges[clusteredOutIdx], successor)); } return ZL_returnSuccess(); @@ -514,10 +482,11 @@ ZL_RESULT_DECLARE_TYPE(Tag); static ZL_RESULT_OF(Tag) getTagForEdge(const ZL_Edge* edge) { + ZL_RESULT_DECLARE_SCOPE(Tag, NULL); const ZL_Input* input = ZL_Edge_getData(edge); ZL_IntMetadata metadata = ZL_Input_getIntMetadata(input, ZL_CLUSTERING_TAG_METADATA_ID); - ZL_RET_T_IF(Tag, node_invalid_input, !metadata.isPresent); + ZL_ERR_IF(!metadata.isPresent, node_invalid_input); Tag tag = { .tag = metadata.mValue, .typeWidth = { .eltWidth = ZL_Input_eltWidth(input), .type = ZL_Input_type(input) } }; @@ -545,10 +514,10 @@ static ZL_Report setClusterInfosUnconfigured_byTag( size_t nbConfigured = nbClusters; for (size_t i = 0; i < nbInputs; i++) { - ZL_TRY_LET_T(Tag, tag, getTagForEdge(inputs[i])); + ZL_TRY_LET(Tag, tag, getTagForEdge(inputs[i])); TagToClusterMap_Insert status = TagToClusterMap_insertVal( tagToClusterMap, (TagToClusterMap_Entry){ tag, nbClusters }); - ZL_RET_R_IF(allocation, status.badAlloc); + ZL_ERR_IF(status.badAlloc, allocation); size_t idx = status.ptr->val; // Skip if configured cluster @@ -560,12 +529,12 @@ static ZL_Report setClusterInfosUnconfigured_byTag( } // Create new cluster clusterInfos[idx].nbEdges = 1; - ZL_TRY_SET_T( + ZL_TRY_SET( ZL_NodeID, clusterInfos[idx].node, getDefaultClusteringCodec( errCtx, tag.typeWidth, defaultSuccessors, nodes)); - ZL_TRY_SET_T( + ZL_TRY_SET( ZL_GraphID, clusterInfos[idx].successor, getDefaultSuccessor( @@ -602,10 +571,10 @@ static ZL_Report setClusterInfosConfigured( Tag tag = { .tag = cluster.memberTags[j], .typeWidth = typeWidth }; TagToClusterMap_Insert status = TagToClusterMap_insertVal( tagToCluster, (TagToClusterMap_Entry){ tag, i }); - ZL_RET_R_IF(allocation, status.badAlloc); + ZL_ERR_IF(status.badAlloc, allocation); // Checks that for clusters of the same type, a tag does not appear // twice - ZL_RET_R_IF(node_invalid_input, !status.inserted); + ZL_ERR_IF(!status.inserted, node_invalid_input); } clusterInfos[i].nbEdges = 0; ZL_ERR_IF_GE( @@ -625,7 +594,7 @@ static ZL_Report setClusterInfosConfigured( } // Count the number of edges in each cluster for (size_t i = 0; i < nbInputs; i++) { - ZL_TRY_LET_T(Tag, tag, getTagForEdge(inputs[i])); + ZL_TRY_LET(Tag, tag, getTagForEdge(inputs[i])); const TagToClusterMap_Entry* entry = TagToClusterMap_findVal(tagToCluster, tag); if (entry == NULL) { @@ -661,7 +630,7 @@ static ZL_Report graph_compressClusteredImpl( ZL_RESULT_DECLARE_SCOPE_REPORT(graph); ZL_GraphIDList succList = ZL_Graph_getCustomGraphs(graph); ZL_NodeIDList clusteringCodecsList = ZL_Graph_getCustomNodes(graph); - ZL_RET_R_IF_ERR(validateClusteredConfig(graph, config, &succList)); + ZL_ERR_IF_ERR(validateClusteredConfig(graph, config, &succList)); // Initialize cluster infos size_t maxNbClusters = nbInputs + config->nbClusters; @@ -669,7 +638,8 @@ static ZL_Report graph_compressClusteredImpl( graph, maxNbClusters * sizeof(ClusterInfo)); // Cluster the configured inputs and initialize nbClusters - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, nbClusters, setClusterInfosConfigured( ZL_ERR_CTX_PTR, @@ -689,13 +659,14 @@ static ZL_Report graph_compressClusteredImpl( TypeToSuccessorMap_Insert status = TypeToSuccessorMap_insertVal( defaultSuccessors, (TypeToSuccessorMap_Entry){ typeWidth, *typeSuccesor }); - ZL_RET_R_IF(allocation, status.badAlloc); + ZL_ERR_IF(status.badAlloc, allocation); // Checks that there are no duplicates among type defualts - ZL_RET_R_IF(node_invalid_input, !status.inserted); + ZL_ERR_IF(!status.inserted, node_invalid_input); } // Cluster unconfigured inputs and update nbClusters - ZL_TRY_SET_R( + ZL_TRY_SET( + size_t, nbClusters, setClusterInfosUnconfigured_byTag( ZL_ERR_CTX_PTR, @@ -711,7 +682,7 @@ static ZL_Report graph_compressClusteredImpl( // Group edges present by cluster ZL_Edge*** clusteredEdges = ZL_Graph_getScratchSpace(graph, nbClusters * sizeof(ZL_Edge**)); - ZL_RET_R_IF_NULL(allocation, clusteredEdges); + ZL_ERR_IF_NULL(clusteredEdges, allocation); size_t* clusterSizes = ZL_Graph_getScratchSpace(graph, nbClusters * sizeof(size_t)); memset(clusterSizes, 0, nbClusters * sizeof(size_t)); @@ -719,22 +690,22 @@ static ZL_Report graph_compressClusteredImpl( for (size_t i = 0; i < nbClusters; i++) { clusteredEdges[i] = ZL_Graph_getScratchSpace( graph, clusterInfos[i].nbEdges * sizeof(ZL_Edge*)); - ZL_RET_R_IF_NULL(allocation, clusteredEdges[i]); + ZL_ERR_IF_NULL(clusteredEdges[i], allocation); } // Group edges by cluster for (size_t i = 0; i < nbInputs; i++) { - ZL_TRY_LET_T(Tag, tag, getTagForEdge(inputs[i])); + ZL_TRY_LET(Tag, tag, getTagForEdge(inputs[i])); const TagToClusterMap_Entry* entry = TagToClusterMap_findVal(tagToClusterIdxMap, tag); - ZL_RET_R_IF_NULL(GENERIC, entry); + ZL_ERR_IF_NULL(entry, GENERIC); size_t idx = entry->val; - ZL_RET_R_IF_GT(GENERIC, clusterSizes[idx], clusterInfos[idx].nbEdges); + ZL_ERR_IF_GT(clusterSizes[idx], clusterInfos[idx].nbEdges, GENERIC); clusteredEdges[idx][clusterSizes[idx]++] = inputs[i]; } // Send clustered edges to their successors - ZL_RET_R_IF_ERR(sendClustersToSuccessors( + ZL_ERR_IF_ERR(sendClustersToSuccessors( ZL_ERR_CTX_PTR, clusteredEdges, clusterInfos, nbClusters)); return ZL_returnSuccess(); } @@ -743,7 +714,7 @@ ZL_Report graph_compressClustered(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs) { ZL_RESULT_DECLARE_SCOPE_REPORT(graph); - ZL_TRY_LET_T(ZL_ClusteringConfig, config, graph_getClusteringConfig(graph)); + ZL_TRY_LET(ZL_ClusteringConfig, config, graph_getClusteringConfig(graph)); size_t maxNbTags = nbInputs; for (size_t i = 0; i < config.nbClusters; i++) { @@ -811,17 +782,12 @@ ZL_GraphID ZL_Clustering_registerGraphWithCustomClusteringCodecs( ALLOC_Arena_freeArena(arena); return ZL_GRAPH_ILLEGAL; } - ZL_IntParam sizeParam = (ZL_IntParam){ - .paramId = ZL_GENERIC_CLUSTERING_CONFIG_SIZE_ID, - .paramValue = (int)dstSize, - }; ZL_CopyParam configParam = (ZL_CopyParam){ .paramId = ZL_GENERIC_CLUSTERING_CONFIG_ID, .paramPtr = dst, .paramSize = dstSize, }; ZL_LocalParams clusteringParams = (ZL_LocalParams){ - .intParams = { .intParams = &sizeParam, .nbIntParams = 1 }, .copyParams = { .copyParams = &configParam, .nbCopyParams = 1 }, }; ZL_ParameterizedGraphDesc const clusteringGraphDesc = { diff --git a/src/openzl/compress/graphs/generic_clustering_graph.h b/src/openzl/compress/graphs/generic_clustering_graph.h index 6950c806e..0a968a785 100644 --- a/src/openzl/compress/graphs/generic_clustering_graph.h +++ b/src/openzl/compress/graphs/generic_clustering_graph.h @@ -5,7 +5,7 @@ #include "openzl/codecs/zl_clustering.h" #include "openzl/shared/a1cbor.h" -#include "openzl/zl_cgraph.h" +#include "openzl/zl_compressor.h" #include "openzl/zl_data.h" #if defined(__cplusplus) @@ -13,7 +13,6 @@ extern "C" { #endif #define ZL_GENERIC_CLUSTERING_CONFIG_ID 315 -#define ZL_GENERIC_CLUSTERING_CONFIG_SIZE_ID 316 #define ZL_GENERIC_CLUSTERING_GRAPH_MIN_FORMAT_VERSION 18 @@ -65,12 +64,12 @@ ZL_Clustering_deserializeClusteringConfig( ZL_Report graph_compressClustered(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs); -#define MIGRAPH_CLUSTERING \ - { \ - .name = "!zl.cluster", .graph_f = graph_compressClustered, \ - .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, .nbInputs = 1, \ - .lastInputIsVariable = 1 \ - } +#define MIGRAPH_CLUSTERING \ + { .name = "!zl.cluster", \ + .graph_f = graph_compressClustered, \ + .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, \ + .nbInputs = 1, \ + .lastInputIsVariable = 1 } #if defined(__cplusplus) } // extern "C" diff --git a/src/openzl/compress/graphs/simple_data_description_language.c b/src/openzl/compress/graphs/sddl/simple_data_description_language.c similarity index 83% rename from src/openzl/compress/graphs/simple_data_description_language.c rename to src/openzl/compress/graphs/sddl/simple_data_description_language.c index 9e606ef32..4060e8123 100644 --- a/src/openzl/compress/graphs/simple_data_description_language.c +++ b/src/openzl/compress/graphs/sddl/simple_data_description_language.c @@ -1,6 +1,6 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -#include "openzl/compress/graphs/simple_data_description_language.h" +#include "openzl/compress/graphs/sddl/simple_data_description_language.h" #include #include @@ -18,7 +18,7 @@ #include "openzl/common/operation_context.h" #include "openzl/common/vector.h" -#include "openzl/compress/graphs/simple_data_description_language_source_code.h" +#include "openzl/compress/graphs/sddl/simple_data_description_language_source_code.h" //////////////////////////////////////// // Misc Utilities @@ -109,10 +109,13 @@ typedef struct { size_t width; ZL_Type type; + + // For numeric types + bool is_integer; bool is_signed; bool is_big_endian; - uint32_t dest; + ZL_SDDL_Dest dest; } ZL_SDDL_Field_Atom; typedef struct { @@ -172,6 +175,8 @@ typedef struct { typedef enum { ZL_SDDL_OpCode_die, ZL_SDDL_OpCode_expect, + ZL_SDDL_OpCode_log, + ZL_SDDL_OpCode_consume, ZL_SDDL_OpCode_sizeof, ZL_SDDL_OpCode_send, @@ -186,11 +191,27 @@ typedef enum { // Binary arithmetic operations ZL_SDDL_OpCode_eq, ZL_SDDL_OpCode_ne, + ZL_SDDL_OpCode_gt, + ZL_SDDL_OpCode_ge, + ZL_SDDL_OpCode_lt, + ZL_SDDL_OpCode_le, ZL_SDDL_OpCode_add, ZL_SDDL_OpCode_sub, ZL_SDDL_OpCode_mul, ZL_SDDL_OpCode_div, ZL_SDDL_OpCode_mod, + + // Bitwise operations + ZL_SDDL_OpCode_bit_and, + ZL_SDDL_OpCode_bit_or, + ZL_SDDL_OpCode_bit_xor, + ZL_SDDL_OpCode_bit_not, + + // Logical operations + ZL_SDDL_OpCode_log_and, + ZL_SDDL_OpCode_log_or, + ZL_SDDL_OpCode_log_not, + } ZL_SDDL_OpCode; #define ZL_SDDL_OP_ARG_COUNT 2 @@ -267,7 +288,8 @@ ZL_INLINE ZL_SDDL_Expr ZL_SDDL_Expr_makeNum(ZL_SDDL_IntT val) * Utils * *********/ -static const char* ZL_SDDL_FieldType_toString(ZL_SDDL_FieldType type) +ZL_MAYBE_UNUSED_FUNCTION static const char* ZL_SDDL_FieldType_toString( + ZL_SDDL_FieldType type) { switch (type) { case ZL_SDDL_FieldType_poison: @@ -290,6 +312,8 @@ static const char* ZL_SDDL_OpCode_toString(ZL_SDDL_OpCode opcode) return "die"; case ZL_SDDL_OpCode_expect: return "expect"; + case ZL_SDDL_OpCode_log: + return "log"; case ZL_SDDL_OpCode_consume: return "consume"; case ZL_SDDL_OpCode_sizeof: @@ -308,6 +332,14 @@ static const char* ZL_SDDL_OpCode_toString(ZL_SDDL_OpCode opcode) return "eq"; case ZL_SDDL_OpCode_ne: return "ne"; + case ZL_SDDL_OpCode_gt: + return "gt"; + case ZL_SDDL_OpCode_ge: + return "ge"; + case ZL_SDDL_OpCode_lt: + return "lt"; + case ZL_SDDL_OpCode_le: + return "le"; case ZL_SDDL_OpCode_add: return "add"; case ZL_SDDL_OpCode_sub: @@ -318,6 +350,20 @@ static const char* ZL_SDDL_OpCode_toString(ZL_SDDL_OpCode opcode) return "div"; case ZL_SDDL_OpCode_mod: return "mod"; + case ZL_SDDL_OpCode_bit_and: + return "bit_and"; + case ZL_SDDL_OpCode_bit_or: + return "bit_or"; + case ZL_SDDL_OpCode_bit_xor: + return "bit_xor"; + case ZL_SDDL_OpCode_bit_not: + return "bit_not"; + case ZL_SDDL_OpCode_log_and: + return "log_and"; + case ZL_SDDL_OpCode_log_or: + return "log_or"; + case ZL_SDDL_OpCode_log_not: + return "log_not"; default: return "unknown"; } @@ -351,28 +397,28 @@ static const char* ZL_SDDL_ExprType_toString(ZL_SDDL_ExprType type) static void log_expr(const ZL_SDDL_Expr* const expr) { - ZL_LOG(ALWAYS, - "expr %p: type = %s", - expr, - ZL_SDDL_ExprType_toString(expr->type)); + ZL_RLOG(ALWAYS, + "Logging value of expr %p:\n type: %s\n", + expr, + ZL_SDDL_ExprType_toString(expr->type)); switch (expr->type) { case ZL_SDDL_ExprType_null: break; case ZL_SDDL_ExprType_op: - ZL_LOG(ALWAYS, "op = %s", ZL_SDDL_OpCode_toString(expr->op.op)); + ZL_RLOG(ALWAYS, " op: %s\n", ZL_SDDL_OpCode_toString(expr->op.op)); break; case ZL_SDDL_ExprType_num: - ZL_LOG(ALWAYS, "val = %lld", (long long)expr->num.val); + ZL_RLOG(ALWAYS, " val: %lld\n", (long long)expr->num.val); break; case ZL_SDDL_ExprType_field: break; case ZL_SDDL_ExprType_dest: break; case ZL_SDDL_ExprType_var: - ZL_LOG(ALWAYS, - "name = '%.*s'", - expr->var.name.size, - expr->var.name.data); + ZL_RLOG(ALWAYS, + " name: '%.*s'\n", + expr->var.name.size, + expr->var.name.data); break; case ZL_SDDL_ExprType_scope: break; @@ -423,7 +469,7 @@ ZL_SDDL_Program* ZL_SDDL_Program_create(ZL_OperationContext* opCtx) ZL_OC_init(opCtx); } prog->opCtx = opCtx; - prog->num_dests = 1; + prog->num_dests = 0; ZL_SDDL_SourceCode_initEmpty(arena, &prog->source_code); return prog; } @@ -455,6 +501,7 @@ static size_t ZL_SDDL_OpCode_numArgs(const ZL_SDDL_OpCode opcode) case ZL_SDDL_OpCode_die: return 0; case ZL_SDDL_OpCode_expect: + case ZL_SDDL_OpCode_log: case ZL_SDDL_OpCode_consume: case ZL_SDDL_OpCode_sizeof: return 1; @@ -467,12 +514,27 @@ static size_t ZL_SDDL_OpCode_numArgs(const ZL_SDDL_OpCode opcode) return 1; case ZL_SDDL_OpCode_eq: case ZL_SDDL_OpCode_ne: + case ZL_SDDL_OpCode_gt: + case ZL_SDDL_OpCode_ge: + case ZL_SDDL_OpCode_lt: + case ZL_SDDL_OpCode_le: case ZL_SDDL_OpCode_add: case ZL_SDDL_OpCode_sub: case ZL_SDDL_OpCode_mul: case ZL_SDDL_OpCode_div: case ZL_SDDL_OpCode_mod: return 2; + case ZL_SDDL_OpCode_bit_not: + return 1; + case ZL_SDDL_OpCode_bit_and: + case ZL_SDDL_OpCode_bit_or: + case ZL_SDDL_OpCode_bit_xor: + return 2; + case ZL_SDDL_OpCode_log_not: + return 1; + case ZL_SDDL_OpCode_log_and: + case ZL_SDDL_OpCode_log_or: + return 2; default: return 0; } @@ -553,78 +615,177 @@ static ZL_Report ZL_SDDL_Program_decodeExpr_field_atom( if (StringView_eqCStr(&sv, "byte")) { atom->width = 1; atom->type = ZL_Type_serial; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "i1")) { atom->width = 1; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "u1")) { atom->width = 1; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "i2l")) { atom->width = 2; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "i2b")) { atom->width = 2; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = true; } else if (StringView_eqCStr(&sv, "u2l")) { atom->width = 2; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "u2b")) { atom->width = 2; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = true; } else if (StringView_eqCStr(&sv, "i4l")) { atom->width = 4; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "i4b")) { atom->width = 4; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = true; } else if (StringView_eqCStr(&sv, "u4l")) { atom->width = 4; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "u4b")) { atom->width = 4; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = true; } else if (StringView_eqCStr(&sv, "i8l")) { atom->width = 8; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "i8b")) { atom->width = 8; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = true; atom->is_big_endian = true; } else if (StringView_eqCStr(&sv, "u8l")) { atom->width = 8; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = false; } else if (StringView_eqCStr(&sv, "u8b")) { atom->width = 8; atom->type = ZL_Type_numeric; + atom->is_integer = true; atom->is_signed = false; atom->is_big_endian = true; + } else if (StringView_eqCStr(&sv, "f1")) { + atom->width = 1; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "f2l")) { + atom->width = 2; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "f2b")) { + atom->width = 2; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = true; + } else if (StringView_eqCStr(&sv, "f4l")) { + atom->width = 4; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "f4b")) { + atom->width = 4; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = true; + } else if (StringView_eqCStr(&sv, "f8l")) { + atom->width = 8; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "f8b")) { + atom->width = 8; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = true; + } else if (StringView_eqCStr(&sv, "bf1")) { + atom->width = 1; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "bf2l")) { + atom->width = 2; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "bf2b")) { + atom->width = 2; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = true; + } else if (StringView_eqCStr(&sv, "bf4l")) { + atom->width = 4; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "bf4b")) { + atom->width = 4; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = true; + } else if (StringView_eqCStr(&sv, "bf8l")) { + atom->width = 8; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = false; + } else if (StringView_eqCStr(&sv, "bf8b")) { + atom->width = 8; + atom->type = ZL_Type_numeric; + atom->is_integer = false; + atom->is_signed = true; + atom->is_big_endian = true; } else { ZL_ERR(corruption, "Unrecognized builtin type name: '%.*s'", @@ -646,7 +807,9 @@ static ZL_Report ZL_SDDL_Program_decodeExpr_field_atom( } // Assigned in send op. - atom->dest = 0; + atom->dest = (ZL_SDDL_Dest){ + .dest = 0, + }; // TODO: integer/float/struct? signedness? endianness? return ZL_returnSuccess(); @@ -864,6 +1027,9 @@ static ZL_Report ZL_SDDL_Program_decodeExprType( } else if (StringView_eqCStr(&type_sv, "expect")) { expr->type = ZL_SDDL_ExprType_op; expr->op.op = ZL_SDDL_OpCode_expect; + } else if (StringView_eqCStr(&type_sv, "log")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_log; } else if (StringView_eqCStr(&type_sv, "consume")) { expr->type = ZL_SDDL_ExprType_op; expr->op.op = ZL_SDDL_OpCode_consume; @@ -891,6 +1057,18 @@ static ZL_Report ZL_SDDL_Program_decodeExprType( } else if (StringView_eqCStr(&type_sv, "ne")) { expr->type = ZL_SDDL_ExprType_op; expr->op.op = ZL_SDDL_OpCode_ne; + } else if (StringView_eqCStr(&type_sv, "gt")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_gt; + } else if (StringView_eqCStr(&type_sv, "ge")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_ge; + } else if (StringView_eqCStr(&type_sv, "lt")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_lt; + } else if (StringView_eqCStr(&type_sv, "le")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_le; } else if (StringView_eqCStr(&type_sv, "add")) { expr->type = ZL_SDDL_ExprType_op; expr->op.op = ZL_SDDL_OpCode_add; @@ -906,6 +1084,27 @@ static ZL_Report ZL_SDDL_Program_decodeExprType( } else if (StringView_eqCStr(&type_sv, "mod")) { expr->type = ZL_SDDL_ExprType_op; expr->op.op = ZL_SDDL_OpCode_mod; + } else if (StringView_eqCStr(&type_sv, "bit_and")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_bit_and; + } else if (StringView_eqCStr(&type_sv, "bit_or")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_bit_or; + } else if (StringView_eqCStr(&type_sv, "bit_xor")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_bit_xor; + } else if (StringView_eqCStr(&type_sv, "bit_not")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_bit_not; + } else if (StringView_eqCStr(&type_sv, "log_and")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_log_and; + } else if (StringView_eqCStr(&type_sv, "log_or")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_log_or; + } else if (StringView_eqCStr(&type_sv, "log_not")) { + expr->type = ZL_SDDL_ExprType_op; + expr->op.op = ZL_SDDL_OpCode_log_not; } // Num else if (StringView_eqCStr(&type_sv, "int")) { @@ -1656,6 +1855,11 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr( ZL_SDDL_Scope* const scope, const ZL_SDDL_Expr* const expr); +// Forward declaration +static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_consume( + ZL_SDDL_State* const state, + const ZL_SDDL_Expr* const expr); + // Forward declaration static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_consumeField( ZL_SDDL_State* const state, @@ -1716,56 +1920,62 @@ static ZL_SDDL_Expr ZL_SDDL_State_readAtom( (ZL_SDDL_IntT)ZL_read8(state->src + state->pos)); } case ZL_Type_numeric: - switch (atom->width) { - case 1: { - uint8_t narrow = ZL_read8(state->src + state->pos); - if (atom->is_signed) { - return ZL_SDDL_Expr_makeNum( - (ZL_SDDL_IntT)(int8_t)narrow); - } else { - return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)narrow); - } - } - case 2: { - uint16_t narrow; - if (atom->is_big_endian) { - narrow = ZL_readBE16(state->src + state->pos); - } else { - narrow = ZL_readLE16(state->src + state->pos); - } - if (atom->is_signed) { - return ZL_SDDL_Expr_makeNum( - (ZL_SDDL_IntT)(int16_t)narrow); - } else { - return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)narrow); + if (atom->is_integer) { + switch (atom->width) { + case 1: { + uint8_t narrow = ZL_read8(state->src + state->pos); + if (atom->is_signed) { + return ZL_SDDL_Expr_makeNum( + (ZL_SDDL_IntT)(int8_t)narrow); + } else { + return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)narrow); + } } - } - case 4: { - uint32_t narrow; - if (atom->is_big_endian) { - narrow = ZL_readBE32(state->src + state->pos); - } else { - narrow = ZL_readLE32(state->src + state->pos); + case 2: { + uint16_t narrow; + if (atom->is_big_endian) { + narrow = ZL_readBE16(state->src + state->pos); + } else { + narrow = ZL_readLE16(state->src + state->pos); + } + if (atom->is_signed) { + return ZL_SDDL_Expr_makeNum( + (ZL_SDDL_IntT)(int16_t)narrow); + } else { + return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)narrow); + } } - if (atom->is_signed) { - return ZL_SDDL_Expr_makeNum( - (ZL_SDDL_IntT)(int32_t)narrow); - } else { - return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)narrow); + case 4: { + uint32_t narrow; + if (atom->is_big_endian) { + narrow = ZL_readBE32(state->src + state->pos); + } else { + narrow = ZL_readLE32(state->src + state->pos); + } + if (atom->is_signed) { + return ZL_SDDL_Expr_makeNum( + (ZL_SDDL_IntT)(int32_t)narrow); + } else { + return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)narrow); + } } - } - case 8: { - if (atom->is_big_endian) { - return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)ZL_readBE64( - state->src + state->pos)); - } else { - return ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)ZL_readLE64( - state->src + state->pos)); + case 8: { + if (atom->is_big_endian) { + return ZL_SDDL_Expr_makeNum( + (ZL_SDDL_IntT)ZL_readBE64( + state->src + state->pos)); + } else { + return ZL_SDDL_Expr_makeNum( + (ZL_SDDL_IntT)ZL_readLE64( + state->src + state->pos)); + } } + default: + ZL_ASSERT_FAIL("Illegal width"); + return ZL_SDDL_Expr_makeNull(); } - default: - ZL_ASSERT_FAIL("Illegal width"); - return ZL_SDDL_Expr_makeNull(); + } else { + return ZL_SDDL_Expr_makeNull(); } case ZL_Type_struct: ZL_ASSERT_FAIL("Unsupported atom type."); @@ -1821,7 +2031,7 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_consumeAtom( ZL_RESULT_DECLARE_SCOPE(ZL_SDDL_Expr, state->opCtx); const size_t width = atom->width; - const uint32_t tag = atom->dest; + const uint32_t tag = atom->dest.dest; ZL_ASSERT_LT(tag, state->num_tags); @@ -1859,7 +2069,7 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_consumeArray_ofAtoms( ZL_RESULT_DECLARE_SCOPE(ZL_SDDL_Expr, state->opCtx); const size_t atom_width = atom->width; - const uint32_t tag = atom->dest; + const uint32_t tag = atom->dest.dest; // TODO: handle overflow? const size_t width = atom_width * arr_len; @@ -2001,44 +2211,51 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_consumeArray( ZL_ERR_IF_NULL(dyn, GENERIC); const ZL_SDDL_Expr* const inner_expr = &dyn->exprs[0]; const ZL_SDDL_Expr* const len_expr = &dyn->exprs[1]; - ZL_ERR_IF_NE(inner_expr->type, ZL_SDDL_ExprType_field, corruption); + ZL_ERR_IF( + inner_expr->type != ZL_SDDL_ExprType_field + && inner_expr->type != ZL_SDDL_ExprType_func, + corruption); ZL_ERR_IF_NE(len_expr->type, ZL_SDDL_ExprType_num, corruption); ZL_ERR_IF_LT(len_expr->num.val, 0, corruption); const size_t len = (size_t)len_expr->num.val; - if (inner_expr->field.type == ZL_SDDL_FieldType_atom) { - // Optimization - return ZL_SDDL_State_consumeArray_ofAtoms( - state, &inner_expr->field.atom, len); - } - - if (inner_expr->field.type == ZL_SDDL_FieldType_record && len > 1) { - // Optimization - ZL_ERR_IF_ERR(ZL_SDDL_State_consumeRecord_noScope( - state, &inner_expr->field.record, true)); - - const size_t instr_count = inner_expr->field.record.dyn->instrs->count; - - // As an optimization, these reserves are allowed to fail. - (void)VECTOR_RESERVE( - state->segment_sizes, - VECTOR_SIZE(state->segment_sizes) + instr_count * (len - 1)); - (void)VECTOR_RESERVE( - state->segment_tags, - VECTOR_SIZE(state->segment_tags) + instr_count * (len - 1)); + if (inner_expr->type == ZL_SDDL_ExprType_field) { + if (inner_expr->field.type == ZL_SDDL_FieldType_atom) { + // Optimization + return ZL_SDDL_State_consumeArray_ofAtoms( + state, &inner_expr->field.atom, len); + } - for (size_t i = 1; i < len; i++) { + if (inner_expr->field.type == ZL_SDDL_FieldType_record && len > 1) { + // Optimization ZL_ERR_IF_ERR(ZL_SDDL_State_consumeRecord_noScope( - state, &inner_expr->field.record, false)); + state, &inner_expr->field.record, true)); + + const size_t instr_count = + inner_expr->field.record.dyn->instrs->count; + + // As an optimization, these reserves are allowed to fail. + (void)VECTOR_RESERVE( + state->segment_sizes, + VECTOR_SIZE(state->segment_sizes) + + instr_count * (len - 1)); + (void)VECTOR_RESERVE( + state->segment_tags, + VECTOR_SIZE(state->segment_tags) + instr_count * (len - 1)); + + for (size_t i = 1; i < len; i++) { + ZL_ERR_IF_ERR(ZL_SDDL_State_consumeRecord_noScope( + state, &inner_expr->field.record, false)); + } + return ZL_WRAP_VALUE(ZL_SDDL_Expr_makeNull()); } - return ZL_WRAP_VALUE(ZL_SDDL_Expr_makeNull()); } for (size_t i = 0; i < len; i++) { ZL_TRY_LET( ZL_SDDL_Expr, field_result, - ZL_SDDL_State_consumeField(state, &inner_expr->field)); + ZL_SDDL_State_consume(state, inner_expr)); ZL_SDDL_Expr_decref(state, &field_result); } return ZL_WRAP_VALUE(ZL_SDDL_Expr_makeNull()); @@ -2207,7 +2424,7 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_send( ZL_SDDL_FieldType_atom, corruption, "Can't send non-atom field."); - result.field.atom.dest = dest->dest.dest; + result.field.atom.dest = dest->dest; return ZL_WRAP_VALUE(result); } @@ -2264,7 +2481,7 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_bind( static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_op_inner( ZL_SDDL_State* const state, ZL_SDDL_Scope* const scope, - const ZL_SDDL_Expr args[const ZL_SDDL_OP_ARG_COUNT], + const ZL_SDDL_Expr args[ZL_SDDL_OP_ARG_COUNT], const size_t num_args, const ZL_SDDL_Op* const op) { @@ -2292,6 +2509,37 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_op_inner( "Expect op got 0-valued argument. Failing the parse."); break; } + case ZL_SDDL_OpCode_log: { + // #ifndef NDEBUG + + log_expr(&args[0]); + + const ZL_RESULT_OF(ZL_SDDL_SourceLocationPrettyString) pstr_res = + ZL_SDDL_SourceLocationPrettyString_create( + ZL_ERR_CTX_PTR, + state->arena, + &state->prog->source_code, + &state->cur_src_loc, + 2); + + ZL_ASSERT( + !ZL_RES_isError(pstr_res), + "Error in ZL_SDDL_SourceLocationPrettyString_create(): %s", + ZL_E_str(ZL_RES_error(pstr_res))); + + if (!ZL_RES_isError(pstr_res)) { + const ZL_SDDL_SourceLocationPrettyString pstr = + ZL_RES_value(pstr_res); + if (pstr.str.data != NULL) { + ZL_RLOG(ALWAYS, "at %.*s", pstr.str.size, pstr.str.data); + } + + ZL_SDDL_SourceLocationPrettyString_destroy(state->arena, &pstr); + } + // #endif + result = args[0]; + break; + } case ZL_SDDL_OpCode_consume: { ZL_TRY_SET( ZL_SDDL_Expr, @@ -2363,6 +2611,30 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_op_inner( result = ZL_SDDL_Expr_makeNum(args[0].num.val != args[1].num.val); break; } + case ZL_SDDL_OpCode_gt: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val > args[1].num.val); + break; + } + case ZL_SDDL_OpCode_ge: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val >= args[1].num.val); + break; + } + case ZL_SDDL_OpCode_lt: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val < args[1].num.val); + break; + } + case ZL_SDDL_OpCode_le: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val <= args[1].num.val); + break; + } case ZL_SDDL_OpCode_add: { ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); @@ -2394,12 +2666,49 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_op_inner( ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); ZL_ERR_IF_EQ( args[1].num.val, 0, corruption, "Modulus can't be zero."); - result.type = ZL_SDDL_ExprType_num; - result.num.val = args[0].num.val % args[1].num.val; - result = ZL_SDDL_Expr_makeNum(args[0].num.val == args[1].num.val); + result = ZL_SDDL_Expr_makeNum(args[0].num.val % args[1].num.val); + break; + } + case ZL_SDDL_OpCode_bit_and: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val & args[1].num.val); + break; + } + case ZL_SDDL_OpCode_bit_or: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val | args[1].num.val); + break; + } + case ZL_SDDL_OpCode_bit_xor: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val ^ args[1].num.val); + break; + } + case ZL_SDDL_OpCode_bit_not: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(~args[0].num.val); + break; + } + case ZL_SDDL_OpCode_log_and: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val && args[1].num.val); + break; + } + case ZL_SDDL_OpCode_log_or: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + ZL_ERR_IF_NE(args[1].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(args[0].num.val || args[1].num.val); + break; + } + case ZL_SDDL_OpCode_log_not: { + ZL_ERR_IF_NE(args[0].type, ZL_SDDL_ExprType_num, corruption); + result = ZL_SDDL_Expr_makeNum(!args[0].num.val); break; } - default: ZL_ERR(corruption, "Unknown opcode %d", op->op); } @@ -2588,6 +2897,9 @@ static ZL_RESULT_OF(ZL_SDDL_Expr) ZL_SDDL_State_execExpr_var( return ZL_WRAP_VALUE(ZL_SDDL_Expr_makeNum( (ZL_SDDL_IntT)state->size - (ZL_SDDL_IntT)state->pos)); } + if (StringView_eqCStr(&var->name, "_pos")) { + return ZL_WRAP_VALUE(ZL_SDDL_Expr_makeNum((ZL_SDDL_IntT)state->pos)); + } return ZL_SDDL_Scope_get(state, scope, var); } @@ -2693,8 +3005,8 @@ ZL_SDDL_State_exec( const ZL_SDDL_SourceLocationPrettyString pstr = ZL_RES_value(pstr_res); if (pstr.str.data != NULL) { - ZL_E_ADDFRAME( - &ZL_RES_error(result), + ZL_RES_error(result) = ZL_E_ADDFRAME( + ZL_RES_error(result), ZL_EE_EMPTY, "\nEncountered error at position %zu while processing:\n%.*s", state->pos, @@ -2733,11 +3045,14 @@ ZL_SDDL_State_exec( GENERIC, "Incorrectly tracked expression lifetimes!"); - ZL_SDDL_Instructions instructions = {}; + ZL_SDDL_Instructions instructions = { 0 }; instructions.dispatch_instructions.nbSegments = VECTOR_SIZE(state->segment_sizes); - instructions.dispatch_instructions.nbTags = state->num_tags; + ZL_ERR_IF_GT( + VECTOR_SIZE(state->dests), UINT_MAX, nodeExecution_invalidOutputs); + instructions.dispatch_instructions.nbTags = + (uint32_t)VECTOR_SIZE(state->dests); instructions.dispatch_instructions.segmentSizes = VECTOR_DATA(state->segment_sizes); @@ -2944,12 +3259,12 @@ ZL_Compressor_buildSDDLGraph( .paramSize = programSize, }; const ZL_LocalParams lp = { - .intParams = {}, + .intParams = {0}, .copyParams = { .copyParams = &cp, .nbCopyParams = 1, }, - .refParams = {}, + .refParams = {0}, }; const ZL_ParameterizedGraphDesc desc = { .name = NULL, diff --git a/src/openzl/compress/graphs/simple_data_description_language.h b/src/openzl/compress/graphs/sddl/simple_data_description_language.h similarity index 83% rename from src/openzl/compress/graphs/simple_data_description_language.h rename to src/openzl/compress/graphs/sddl/simple_data_description_language.h index 1fe1b48a0..2b120fe8f 100644 --- a/src/openzl/compress/graphs/simple_data_description_language.h +++ b/src/openzl/compress/graphs/sddl/simple_data_description_language.h @@ -55,6 +55,7 @@ ZL_BEGIN_C_DECLS * +---------+-----------+ * | die | Op | * | expect | Op | + * | log | Op | * | consume | Op | * | sizeof | Op | * | send | Op | @@ -63,12 +64,23 @@ ZL_BEGIN_C_DECLS * | bind | Op | * | eq | Op | * | ne | Op | + * | gt | Op | + * | ge | Op | + * | lt | Op | + * | le | Op | * | neg | Op | * | add | Op | * | sub | Op | * | mul | Op | * | div | Op | * | mod | Op | + * | bit_and | Op | + * | bit_or | Op | + * | bit_xor | Op | + * | bit_not | Op | + * | log_and | Op | + * | log_or | Op | + * | log_not | Op | * | int | Num | * | poison | Field | * | atom | Field | @@ -93,6 +105,7 @@ ZL_BEGIN_C_DECLS * +---------+------+------+-----+-------+-------- * | die | 0 | N | | | Unconditionally fail * | expect | 1 | N | IV | | Fail the parse if arg is 0 + * | log | 1 | * | * | | Logs the arg to stderr for debug * | consume | 1 | INS | FV | | Consumes a field, see below * | sizeof | 1 | I | FV | | (Recursize) size of given field * | send | 2 | F | FV | DV | New field assoc'ed w/ dest @@ -101,12 +114,23 @@ ZL_BEGIN_C_DECLS * | bind | 2 | Func | Func| Tuple | Applies args to func. * | eq | 2 | I | IV | IV | eval(lhs) == eval(rhs) * | ne | 2 | I | IV | IV | eval(lhs) != eval(rhs) + * | gt | 2 | I | IV | IV | eval(lhs) > eval(rhs) + * | ge | 2 | I | IV | IV | eval(lhs) >= eval(rhs) + * | lt | 2 | I | IV | IV | eval(lhs) < eval(rhs) + * | le | 2 | I | IV | IV | eval(lhs) <= eval(rhs) * | neg | 1 | I | IV | | - eval(arg) * | add | 2 | I | IV | IV | eval(lhs) + eval(rhs) * | sub | 2 | I | IV | IV | eval(lhs) - eval(rhs) * | mul | 2 | I | IV | IV | eval(lhs) * eval(rhs) * | div | 2 | I | IV | IV | eval(lhs) / eval(rhs) * | mod | 2 | I | IV | IV | eval(lhs) % eval(rhs) + * | bit_and | 2 | I | IV | IV | eval(lhs) & eval(rhs) + * | bit_or | 2 | I | IV | IV | eval(lhs) | eval(rhs) + * | bit_xor | 2 | I | IV | IV | eval(lhs) ^ eval(rhs) + * | bit_not | 1 | I | IV | | ~eval(arg) + * | log_and | 2 | I | IV | IV | eval(lhs) && eval(rhs) + * | log_or | 2 | I | IV | IV | eval(lhs) || eval(rhs) + * | log_not | 1 | I | IV | | !eval(arg) * * ### Num * @@ -146,6 +170,20 @@ ZL_BEGIN_C_DECLS * | i8b | Numeric | 8 | Yes | Big | Yes | * | u8l | Numeric | 8 | No | Little | Yes | * | u8b | Numeric | 8 | No | Big | Yes | + * | f1 | Numeric | 1 | Yes | N/A | No | + * | f2l | Numeric | 2 | Yes | Little | No | + * | f2b | Numeric | 2 | Yes | Big | No | + * | f4l | Numeric | 4 | Yes | Little | No | + * | f4b | Numeric | 4 | Yes | Big | No | + * | f8l | Numeric | 8 | Yes | Little | No | + * | f8b | Numeric | 8 | Yes | Big | No | + * | bf1 | Numeric | 1 | Yes | N/A | No | + * | bf2l | Numeric | 2 | Yes | Little | No | + * | bf2b | Numeric | 2 | Yes | Big | No | + * | bf4l | Numeric | 4 | Yes | Little | No | + * | bf4b | Numeric | 4 | Yes | Big | No | + * | bf8l | Numeric | 8 | Yes | Little | No | + * | bf8b | Numeric | 8 | Yes | Big | No | * * - Record: a struct-like compound type. The map value is a list of * expressions each of which must resolve to a field at record evaluation @@ -170,6 +208,14 @@ ZL_BEGIN_C_DECLS * context other than as the left-hand argument to the assignment operator, it * resolves to the expression that was most recently assigned into that var. * + * There are some built-in variables which can be read but which can't be + * assigned to: + * + * | Variable | Type | Evaluates To | + * +----------+------+------------------------+ + * | `_pos` | Int | Bytes consumed so far. | + * | `_rem` | Int | Bytes remaining. | + * * ### Tuple: * * A Tuple expression is just a list of expressions, used by the bind op to @@ -240,8 +286,8 @@ const char* ZL_SDDL_Program_getErrorContextString_fromError( typedef struct ZL_SDDL_State_s ZL_SDDL_State; typedef struct { - ZL_Type type; - size_t width; // 0 when not unused. + ZL_Type type; // 0 when unused. + size_t width; // 0 when unused. bool big_endian; } ZL_SDDL_OutputInfo; diff --git a/src/openzl/compress/graphs/simple_data_description_language_source_code.c b/src/openzl/compress/graphs/sddl/simple_data_description_language_source_code.c similarity index 98% rename from src/openzl/compress/graphs/simple_data_description_language_source_code.c rename to src/openzl/compress/graphs/sddl/simple_data_description_language_source_code.c index d4decc6e3..7cfc4f365 100644 --- a/src/openzl/compress/graphs/simple_data_description_language_source_code.c +++ b/src/openzl/compress/graphs/sddl/simple_data_description_language_source_code.c @@ -1,6 +1,6 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. -#include "openzl/compress/graphs/simple_data_description_language_source_code.h" +#include "openzl/compress/graphs/sddl/simple_data_description_language_source_code.h" #include diff --git a/src/openzl/compress/graphs/simple_data_description_language_source_code.h b/src/openzl/compress/graphs/sddl/simple_data_description_language_source_code.h similarity index 100% rename from src/openzl/compress/graphs/simple_data_description_language_source_code.h rename to src/openzl/compress/graphs/sddl/simple_data_description_language_source_code.h diff --git a/src/openzl/compress/graphs/sddl2/COMPILER_INTEGRATION.md b/src/openzl/compress/graphs/sddl2/COMPILER_INTEGRATION.md new file mode 100644 index 000000000..f3ee4091b --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/COMPILER_INTEGRATION.md @@ -0,0 +1,786 @@ +# SDDL2 VM Compiler Integration Guide + +This guide is for developers implementing compilers that target the SDDL2 VM bytecode format. + +--- + +## Quick Start + +### 1. Essential Reading (in order) + +1. **Bytecode format**: `tools/sddl2/assembler/Bytecode_spec.md` + - Instruction encoding (32-bit words, little-endian) + - Immediate value encoding + - Example programs with hex dumps + +2. **Instruction set**: `sddl2_opcodes.def` (this directory) + - **Source of truth** for all opcodes + - Family IDs, opcode values, parameter types, descriptions + +3. **Example code** (progressive learning path): + - **Start simple**: `tests/compress/graphs/sddl2/asm/` - 53 focused examples + - `test_math_add.asm` - Basic arithmetic (8 lines) + - `test_multiple_typed_segments.asm` - Creating segments (21 lines) + - `test_push_remaining_initial.asm` - Dynamic sizing + - Each file demonstrates one feature clearly + - **Real-world programs**: `examples/sddl2_asm/` + - `sao_silesia.asm` - Star catalog parser (start here) + - `sao_full.asm` - Extended features (next step) + +4. **VM API**: `sddl2_interpreter.h` (this directory) + - Entry point: `SDDL2_execute_bytecode()` + - Parameters: bytecode, input data, output segments + +### 2. Key Concepts + +**Stack-Based Execution** +- VM operates on a stack of typed values (I64, Tag, Type) +- All operations manipulate the stack +- Track stack depth during compilation to avoid underflow/overflow + +**Segments** +- Output: list of tagged byte ranges over input buffer +- Each segment has: tag (u32), start position, size, type +- VM validates segments don't exceed input bounds + +**Types** +- 24 primitive types (U8, I16LE, F32BE, BF16LE, etc.) +- Composite types: structures (via `type.structure`) +- Arrays: encoded as type with width > 1 + +--- + +## Deployment Model + +### Production: Offline Compilation + Runtime Execution + +**Important:** The SDDL compiler and VM run at **different times** and often on **different machines**: + +``` +┌─────────────────────────┐ +│ Development/Build Time │ +│ (Offline) │ +└─────────────────────────┘ + │ + │ 1. SDDL Compiler runs + │ Input: SDDL source + │ Output: Bytecode file + │ + ▼ + bytecode.bin + │ + │ 2. Transport + │ (copy to production system) + │ + ▼ +┌─────────────────────────┐ +│ Compression Time │ +│ (Production) │ +└─────────────────────────┘ + │ + │ 3. Create compressor + │ - SDDL2 VM as graph + │ - Load bytecode.bin as parameter + │ + ▼ + Compression happens + (VM executes bytecode during compression) +``` + +**Your compiler's job:** +- Generate valid bytecode +- Save to file/transport format +- **No direct VM API calls in production** + +**Production integration** (handled by OpenZL framework, not by you): +```c +// Production code (you don't write this) +// The compression framework does: +ZL_Compressor* compressor = ZL_Compressor_create(); +ZL_Compressor_registerSDDL2Graph( + compressor, bytecode_data, bytecode_size); +ZL_Compressor_compress(compressor, input_data, ...); +``` + +Use `ZL_Compressor_registerSDDL2Graph_advanced()` if you need a custom +successor graph or a non-default chunk-size hint. + +--- + +### Testing: Direct VM API for Development + +**For testing your compiler output during development**, you can call the VM API directly: + +```c +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" +#include +#include + +int main() { + // ============================================================ + // 1. Your compiler generated this bytecode + // ============================================================ + uint8_t bytecode[] = { + 0x01, 0x00, 0x02, 0x00, // push.u32 + 0x0A, 0x00, 0x00, 0x00, // 10 + 0x0C, 0x00, 0x01, 0x00, // segment.create_unspecified + 0x05, 0x00, 0x01, 0x00 // halt + }; + size_t bytecode_size = sizeof(bytecode); + + // ============================================================ + // 2. Load test input data + // ============================================================ + uint8_t input_data[] = { + 0x48, 0x65, 0x6C, 0x6C, 0x6F, // "Hello" + 0x01, 0x02, 0x03, 0x04, 0x05 // Some data + }; + size_t input_size = sizeof(input_data); + + // ============================================================ + // 3. Initialize segment list (output) + // ============================================================ + SDDL2_Segment_list segments; + SDDL2_Segment_list_init(&segments); + + // ============================================================ + // 4. Execute bytecode + // ============================================================ + SDDL2_Error err = SDDL2_execute_bytecode( + bytecode, bytecode_size, + input_data, input_size, + &segments + ); + + // ============================================================ + // 5. Check for errors + // ============================================================ + if (err != SDDL2_OK) { + fprintf(stderr, "VM Error: %d\n", err); + SDDL2_Segment_list_destroy(&segments); + return 1; + } + + // ============================================================ + // 6. Inspect results + // ============================================================ + printf("Success! Created %zu segments\n", segments.count); + for (size_t i = 0; i < segments.count; i++) { + SDDL2_Segment* seg = &segments.items[i]; + printf(" Segment %zu:\n", i); + printf(" Tag: %u\n", seg->tag); + printf(" Start: %zu\n", seg->start_pos); + printf(" Size: %zu bytes\n", seg->size_bytes); + printf(" Type: kind=%d, width=%u\n", + seg->type.kind, seg->type.width); + } + + // ============================================================ + // 7. Clean up + // ============================================================ + SDDL2_Segment_list_destroy(&segments); + + return 0; +} +``` + +**Compile and run:** +```bash +# Link against OpenZL libraries +gcc -o test_compiler test_compiler.c -I/path/to/include -L/path/to/lib -lopenzl + +# Run test +./test_compiler +``` + +--- + +### Testing from Files + +For larger tests, load bytecode and input from files: + +```c +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" +#include +#include + +// Helper: Load file into memory +uint8_t* load_file(const char* path, size_t* size) { + FILE* f = fopen(path, "rb"); + if (!f) return NULL; + + fseek(f, 0, SEEK_END); + *size = ftell(f); + fseek(f, 0, SEEK_SET); + + uint8_t* data = malloc(*size); + fread(data, 1, *size, f); + fclose(f); + + return data; +} + +int main(int argc, char** argv) { + if (argc != 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + + // Load bytecode generated by your compiler + size_t bytecode_size; + uint8_t* bytecode = load_file(argv[1], &bytecode_size); + if (!bytecode) { + fprintf(stderr, "Failed to load bytecode: %s\n", argv[1]); + return 1; + } + + // Validate bytecode size + if (bytecode_size % 4 != 0) { + fprintf(stderr, "Invalid bytecode size: %zu (must be multiple of 4)\n", + bytecode_size); + free(bytecode); + return 1; + } + + // Load test input + size_t input_size; + uint8_t* input_data = load_file(argv[2], &input_size); + if (!input_data) { + fprintf(stderr, "Failed to load input: %s\n", argv[2]); + free(bytecode); + return 1; + } + + // Execute VM + SDDL2_Segment_list segments; + SDDL2_Segment_list_init(&segments); + + SDDL2_Error err = SDDL2_execute_bytecode( + bytecode, bytecode_size, + input_data, input_size, + &segments + ); + + // Report results + if (err != SDDL2_OK) { + fprintf(stderr, "VM execution failed with error: %d\n", err); + } else { + printf("✓ Success: %zu segments created\n", segments.count); + + // Optionally dump segment details + for (size_t i = 0; i < segments.count; i++) { + SDDL2_Segment* seg = &segments.items[i]; + printf(" [%zu] tag=%u start=%zu size=%zu\n", + i, seg->tag, seg->start_pos, seg->size_bytes); + } + } + + // Cleanup + SDDL2_Segment_list_destroy(&segments); + free(bytecode); + free(input_data); + + return (err == SDDL2_OK) ? 0 : 1; +} +``` + +**Usage:** +```bash +# Generate bytecode with your compiler +./my_sddl_compiler source.sddl -o program.bin + +# Test execution +./vm_test program.bin test_input.dat +``` + +--- + +### Regression Testing + +Build a test harness to validate your compiler: + +```bash +#!/bin/bash +# test_compiler.sh - Regression test suite + +COMPILER=./my_sddl_compiler +VM_TEST=./vm_test +TEST_DIR=tests + +passed=0 +failed=0 + +for sddl_file in $TEST_DIR/*.sddl; do + base=$(basename "$sddl_file" .sddl) + input="$TEST_DIR/${base}.input" + expected="$TEST_DIR/${base}.expected" + + # Compile + bytecode="/tmp/${base}.bin" + if ! $COMPILER "$sddl_file" -o "$bytecode"; then + echo "✗ $base: compilation failed" + ((failed++)) + continue + fi + + # Execute + actual="/tmp/${base}.output" + if ! $VM_TEST "$bytecode" "$input" > "$actual" 2>&1; then + echo "✗ $base: VM execution failed" + ((failed++)) + continue + fi + + # Compare + if diff -q "$expected" "$actual" > /dev/null; then + echo "✓ $base" + ((passed++)) + else + echo "✗ $base: output mismatch" + diff "$expected" "$actual" + ((failed++)) + fi +done + +echo "" +echo "Results: $passed passed, $failed failed" +exit $failed +``` + +--- + +## Code Generation Walkthrough + +The examples below show how to generate bytecode programmatically. For more patterns, see the 53 test programs in `tests/compress/graphs/sddl2/asm/` - each demonstrates a specific feature. + +### Example: Generate "Push 42 and halt" + +**Assembly:** +```asm +push.u32 42 +halt +``` + +**Bytecode generation (pseudo-code):** +```python +def emit_instruction(family_id, opcode_id): + # 32-bit word: [family:16][opcode:16] in little-endian + word = (opcode_id << 16) | family_id + emit_u32_le(word) + +def emit_u32_le(value): + bytecode.append(value & 0xFF) + bytecode.append((value >> 8) & 0xFF) + bytecode.append((value >> 16) & 0xFF) + bytecode.append((value >> 24) & 0xFF) + +# Generate: push.u32 42 +emit_instruction(0x0001, 0x0002) # PUSH family, push.u32 opcode +emit_u32_le(42) # Immediate operand + +# Generate: halt +emit_instruction(0x0005, 0x0001) # CONTROL family, halt opcode + +# Result: [01 00 02 00 2a 00 00 00 05 00 01 00] +``` + +### Example: Create a tagged segment + +**Task:** Parse a 28-byte header, then create a segment tagged "header" (tag=1) + +**Assembly:** +```asm +push.i32 28 # Size +push.tag 1 # Tag +segment.create_tagged # Create segment: pops tag, size +halt +``` + +**Bytecode generation:** +```python +emit_instruction(0x0001, 0x0003) # push.i32 +emit_u32_le(28) +emit_instruction(0x0001, 0x0005) # push.tag +emit_u32_le(1) +emit_instruction(0x000C, 0x0002) # segment.create_tagged +emit_instruction(0x0005, 0x0001) # halt +``` + +**Stack discipline:** +``` +Initial: [] +push.i32 28: [I64(28)] +push.tag 1: [I64(28), Tag(1)] +segment.create_tagged: [] (pops 2, creates segment, pushes nothing) +halt: [] +``` + +--- + +## Common Patterns + +### 1. Fixed-Size Header +```asm +push.i32 +segment.create_unspecified # Or with a tag for typed header +``` + +### 2. Dynamic Array Count +```asm +push.remaining # Bytes left in input +push.i32 # Bytes per item +math.div # Count = remaining / item_size +``` + +### 3. Building Structure Types +```asm +# Example: struct { u32 id; f32 value; } +push.type.u32le # Member 1 +push.type.f32le # Member 2 +push.i32 2 # Member count +type.structure # Create structure type +``` + +### 4. Tagged Segments with Types +```asm +push.tag # Segment tag +push.type.f64le # Element type +push.i32 # Element count +segment.create_tagged # Creates typed segment +``` + +### 5. Validation +```asm +# Assert that a value equals expected +push.i32 +cmp.eq # Compare with value on stack +expect_true # Fail if not equal +``` + +--- + +## Stack Discipline + +**Critical:** Track stack depth during compilation to prevent: +- **Stack underflow**: Popping from empty stack → `SDDL2_STACK_UNDERFLOW` +- **Stack overflow**: Exceeding capacity → `SDDL2_STACK_OVERFLOW` + +**Stack effects** (examples from `sddl2_opcodes.def`): +``` +push.u32 : ... → ... I64(val) (+1) +math.add: ... I64(a) I64(b) → ... I64(a+b) (-1) +segment.create_tagged: ... Tag Type I64 → ... (-3) +stack.dup: ... V → ... V V (+1) +stack.swap: ... A B → ... B A (±0) +``` + +**Validation checklist:** +- Start with empty stack +- After each instruction, verify stack depth ≥ 0 +- Program end: stack can be non-empty (but usually should be empty) + +--- + +## Error Handling + +### Error Codes (from `sddl2_error.h`) + +| Error | Cause | Compiler Fix | +|-------|-------|--------------| +| `SDDL2_STACK_UNDERFLOW` | Popped from empty stack | Check stack depth before emitting pop instructions | +| `SDDL2_STACK_OVERFLOW` | Stack capacity exceeded | Reduce stack usage or increase limit | +| `SDDL2_TYPE_MISMATCH` | Wrong value type for operation | Track value types on stack | +| `SDDL2_LOAD_BOUNDS` | Load address out of bounds | Validate load addresses are within input | +| `SDDL2_SEGMENT_BOUNDS` | Segment extends beyond input | Validate segment sizes don't exceed remaining input | +| `SDDL2_DIV_ZERO` | Division by zero | Add runtime check or guarantee non-zero divisor | +| `SDDL2_INVALID_BYTECODE` | Malformed bytecode | Ensure bytecode size is multiple of 4 | +| `SDDL2_VALIDATION_FAILED` | `expect_true` failed | Check validation logic | + +--- + +## Debugging Your Compiler Output + +### 1. Enable VM Traces + +Build with trace support to see instruction-by-instruction execution: + +```bash +make BUILD_TYPE=TRACES_NOSAN LOG_LEVEL=POS +``` + +Example trace output: +``` +[SDDL2] @0000: push.u32 (00010002) | stack depth: 1 +[SDDL2] @0002: push.remaining (00010081) | stack depth: 2 +[SDDL2] @0003: math.div (00020004) | stack depth: 1 +[SDDL2] @0004: segment.create_tagged (000C0002) | stack depth: 0 +[SDDL2] @0005: halt (00050001) | stack depth: 0 +``` + +Trace format: +- `@0000` - Program counter (word offset, not byte offset) +- `push.u32` - Instruction mnemonic +- `(00010002)` - Raw instruction encoding (hex) +- `stack depth: 1` - Stack depth **after** instruction executes + +### 2. Use the Disassembler + +The VM includes a disassembler based on `sddl2_opcodes.def`: + +```c +#include "openzl/compress/graphs/sddl2/sddl2_disasm.h" + +void debug_bytecode(const uint8_t* bytecode, size_t size) { + for (size_t i = 0; i < size; i += 4) { + uint32_t instr = *(uint32_t*)(bytecode + i); + const char* mnemonic = SDDL2_disasm_instruction(instr); + printf("@%04zx: %s\n", i/4, mnemonic); + } +} +``` + +### 3. Validate Bytecode Structure + +**Before submitting to VM:** +- Check: `bytecode_size % 4 == 0` +- Verify: All instruction words are valid (family exists, opcode exists) +- Scan for immediates: Instructions with parameters have correct immediate sizes + +--- + +## Type System Deep Dive + +### Primitive Types + +24 built-in types (from `sddl2_vm.h`): + +| Type | Size | Description | +|------|------|-------------| +| `BYTES` | 1 | Raw byte | +| `U8` / `I8` | 1 | Unsigned/signed 8-bit | +| `U16LE` / `U16BE` | 2 | Unsigned 16-bit (little/big endian) | +| `I16LE` / `I16BE` | 2 | Signed 16-bit | +| `U32LE` / `U32BE` | 4 | Unsigned 32-bit | +| `I32LE` / `I32BE` | 4 | Signed 32-bit | +| `U64LE` / `U64BE` | 8 | Unsigned 64-bit | +| `I64LE` / `I64BE` | 8 | Signed 64-bit | +| `F16LE` / `F16BE` | 2 | IEEE 754 half-precision float | +| `BF16LE` / `BF16BE` | 2 | Brain float 16 | +| `F32LE` / `F32BE` | 4 | IEEE 754 single-precision float | +| `F64LE` / `F64BE` | 8 | IEEE 754 double-precision float | + +**Push primitive types:** +```asm +push.type.u32le # Pushes Type{U32LE, width=1} +push.type.f64be # Pushes Type{F64BE, width=1} +``` + +### Composite Types + +**Fixed-size arrays:** +```asm +# Create type: F32LE[100] +push.type.f32le # Base type +push.i32 100 # Array size +type.fixed_array # Pops: type, size → Pushes: Type{F32LE, width=100} +``` + +**Structures:** +```asm +# struct Point { f32 x; f32 y; f32 z; } +push.type.f32le # Member 1: x +push.type.f32le # Member 2: y +push.type.f32le # Member 3: z +push.i32 3 # Member count +type.structure # Creates: Type{STRUCTURE, width=1, struct_data=...} +``` + +**Nested structures:** +```asm +# struct Data { u32 id; Point pos; } +push.type.u32le # Member 1: id +push.type.f32le # Point.x +push.type.f32le # Point.y +push.type.f32le # Point.z +push.i32 3 +type.structure # Creates Point type +push.i32 2 # Data has 2 members: u32, Point +type.structure # Creates Data type +``` + +### Type Sizing + +Use `type.sizeof` to get byte size of a type: + +```asm +push.type.f64le +type.sizeof # Pushes I64(8) + +# For structures: +push.type.u32le +push.type.f32le +push.i32 2 +type.structure # Creates struct { u32; f32; } +type.sizeof # Pushes I64(8) (4 + 4) +``` + +--- + +## Performance Considerations + +### Stack Depth Limits + +- **Default limit**: 4,096 values +- **Hard limit**: 512,384 values (compile-time constant) +- Compilers should aim for shallow stack usage + +### Segment Limits + +- **Maximum segments**: 512,384 (hard limit) +- Plan segment granularity accordingly + +### Memory Allocation + +- **Production mode**: Uses arena allocation from `ZL_Graph_getScratchSpace()` +- **Test mode**: Uses standard `malloc`/`realloc` +- Compilers don't control allocation directly + +--- + +## Testing Your Compiler + +### 1. Unit Test Template + +```c +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" + +void test_my_compiler_output() { + // Your compiler generates this + uint8_t bytecode[] = { + 0x01, 0x00, 0x02, 0x00, // push.u32 + 0x2a, 0x00, 0x00, 0x00, // 42 + 0x05, 0x00, 0x01, 0x00 // halt + }; + + // Test input + uint8_t input[] = {0xAA, 0xBB, 0xCC}; + + // Execute + SDDL2_Segment_list segments; + SDDL2_Segment_list_init(&segments); + + SDDL2_Error err = SDDL2_execute_bytecode( + bytecode, sizeof(bytecode), + input, sizeof(input), + &segments + ); + + assert(err == SDDL2_OK); + // Validate segments... + + SDDL2_Segment_list_destroy(&segments); +} +``` + +### 2. Integration Test Strategy + +1. **Compile known-good assembly** using the Python assembler +2. **Compile same logic** using your compiler +3. **Compare bytecode** byte-for-byte (or segment outputs) + +### 3. Regression Test Suite + +Maintain a corpus of SDDL programs and their expected bytecode: +``` +tests/ + hello.sddl → hello.bin + hello.expected_segments + header.sddl → header.bin + header.expected_segments + ... +``` + +--- + +## API Reference + +### Main Entry Point + +```c +SDDL2_Error SDDL2_execute_bytecode( + const void* bytecode, // Bytecode buffer (must be 4-byte aligned) + size_t bytecode_size, // Bytecode size in bytes (must be multiple of 4) + const void* input_data, // Input data buffer + size_t input_size, // Input data size in bytes + SDDL2_Segment_list* output_segments // Output: populated segment list (must be initialized) +); +``` + +**Returns:** `SDDL2_OK` on success, error code on failure + +**Preconditions:** +- `bytecode_size % 4 == 0` +- `output_segments` initialized via `SDDL2_Segment_list_init()` + +**Postconditions:** +- On success: `output_segments` contains parsed segments +- On failure: `output_segments` state is undefined (destroy anyway) +- Caller must call `SDDL2_Segment_list_destroy()` when done + +--- + +## Reserved Features + +The following instruction families are **reserved** but not yet implemented: + +- **VAR (0x0009)**: Variables +- **CALL (0x000B)**: Function calls + +Bytecode using these families will fail with `SDDL2_INVALID_BYTECODE`. + +**Planning ahead:** If/when these are implemented, bytecode format may remain compatible, but no guarantees until stabilized. + +--- + +## FAQ + +**Q: Can I use jumps or branches?** +A: No. The VM is single-pass, no control flow. Use `expect_true` for validation only. + +**Q: How do I handle variable-length data?** +A: Use `push.remaining` to get remaining bytes, then calculate count dynamically. + +**Q: What's the difference between `segment.create_unspecified` and `segment.create_tagged`?** +A: `create_unspecified` has no tag (used for headers/metadata). `create_tagged` requires tag + type for typed data streams. + +**Q: Can I create segments out of order?** +A: No. Segments must be created sequentially as you traverse the input forward. + +**Q: What if my input doesn't parse completely?** +A: VM will succeed even if some bytes remain unconsumed. Use `push.remaining` with `expect_true` to enforce complete parsing: +```asm +push.remaining +push.zero +cmp.eq # remaining == 0? +expect_true # Fail if not +``` + +**Q: How do I handle byte alignment/padding?** +A: Create segments for padding bytes, or use `load.*` instructions to skip them without creating segments. + +**Q: Where should I report compiler bugs vs VM bugs?** +A: [Add your project's bug tracker info here] + +--- + +## Additional Resources + +- **VM README**: `README.md` (this directory) - Debugging, testing, source of truth +- **Bytecode spec**: `tools/sddl2/assembler/Bytecode_spec.md` - Format details +- **Assembler README**: `tools/sddl2/assembler/README.md` - Assembler tool documentation +- **Test framework**: `tests/compress/graphs/sddl2/BYTECODE_TEST_FRAMEWORK.md` - Auto-discovery testing +- **Test examples**: `tests/compress/graphs/sddl2/asm/` - 53 simple, focused examples (start here) +- **Real-world examples**: `examples/sddl2_asm/` - Study `sao_silesia.asm` first, then `sao_full.asm` + +--- + +**Last updated:** 2025-11-19 +**Bytecode format version:** v0.2 diff --git a/src/openzl/compress/graphs/sddl2/README.md b/src/openzl/compress/graphs/sddl2/README.md new file mode 100644 index 000000000..fe69274f7 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/README.md @@ -0,0 +1,443 @@ +# SDDL2 Virtual Machine + +Stack-based bytecode interpreter for parsing and decomposing structured data. + +## Source of Truth + +**`sddl2_opcodes.def`** is the single source of truth for the instruction set. + +Several files are auto-generated from this definition and **must not be manually edited**: + +- `sddl2_opcodes.h` - C opcode definitions +- `sddl2_disasm_generated.h` - Disassembler implementation +- `tools/sddl2/assembler/OpcodesGenerated.h` - C++ assembler opcode definitions + +Each generated file contains a header clearly marking it as auto-generated. + +### Regenerating Files + +After modifying `sddl2_opcodes.def`: + +```bash +# Regenerate C headers (VM) +python3 src/openzl/compress/graphs/sddl2/generate_c_headers.py + +# Regenerate C++ assembler opcodes +python3 tools/sddl2/assembler/generate_opcodes.py +``` + +## Debug Traces + +The SDDL2 VM uses the OpenZL trace system. Enable traces at build time: + +```bash +make BUILD_TYPE=TRACES +# or without ASAN overhead: +make BUILD_TYPE=TRACES_NOSAN +``` + +For instruction-level traces, add `LOG_LEVEL=POS`: + +```bash +make BUILD_TYPE=TRACES_NOSAN LOG_LEVEL=POS +``` + +Equivalently, using environment variables: + +```bash +export BUILD_TYPE=TRACES_NOSAN +export LOG_LEVEL=POS +make +``` + +### Trace Output Format + +Each executed instruction produces one trace line: + +``` +[SDDL2] @0004: math.add (00020001) | stack depth: 1 +``` + +- `@0004` - Program counter (instruction offset in 32-bit words) +- `math.add` - Instruction mnemonic +- `00020001` - Raw 32-bit instruction word (little-endian hex) +- `stack depth: 1` - Stack depth after execution + +### Instruction Encoding + +32-bit instruction word format: +``` +Bits 15-0 (low): Opcode within family +Bits 31-16 (high): Family ID +``` + +Example: `00020001` = Family 0x0002 (MATH), Opcode 0x0001 (add) + +See `sddl2_opcodes.def` for complete family/opcode mappings. + +## Testing + +Run SDDL2-specific tests: + +```bash +make sddl2_test +``` + +These tests are fast and useful during VM development. They're also included in `make test`. + +## Troubleshooting + +### Common Errors + +#### `SDDL2_INVALID_BYTECODE` + +**Symptoms:** +- VM fails immediately during bytecode loading +- Error occurs before any instructions execute + +**Common causes:** +1. Bytecode size is not a multiple of 4 bytes +2. Invalid instruction encoding (family or opcode doesn't exist) +3. Corrupted bytecode buffer + +**How to debug:** +```bash +# Check bytecode size +ls -l your_bytecode.bin +# Size must be divisible by 4 + +# Inspect bytecode hex dump +hexdump -C your_bytecode.bin | head -20 + +# Compare with known-good bytecode from assembler +./sddl2_assembler -c "push.zero halt" +# Should output: 01 00 01 00 05 00 01 00 +``` + +**How to fix:** +- Ensure your bytecode generator emits complete 32-bit words +- Verify all family IDs and opcode IDs against `sddl2_opcodes.def` +- Check for off-by-one errors in bytecode buffer sizing + +--- + +#### `SDDL2_STACK_UNDERFLOW` + +**Symptoms:** +- VM fails during execution with stack underflow +- Attempting to pop from empty stack + +**Common causes:** +1. Incorrect stack depth tracking during compilation +2. Wrong number of operands for instruction +3. Forgot to push required values before operation + +**How to debug:** +```bash +# Enable instruction-level traces to see stack depth progression +make BUILD_TYPE=TRACES_NOSAN LOG_LEVEL=POS + +# Look for stack depth going to 0 then attempting pop: +# [SDDL2] @0002: push.u32 (00010002) | stack depth: 1 +# [SDDL2] @0004: math.add (00020001) | stack depth: 0 ← ERROR: needs 2 values! +``` + +**How to fix:** +- Review bytecode generation to ensure correct stack discipline +- Track stack depth during compilation (see COMPILER_INTEGRATION.md) +- Verify instruction stack effects match your expectations + +--- + +#### `SDDL2_STACK_OVERFLOW` + +**Symptoms:** +- VM fails when stack exceeds capacity +- Usually happens with very deep computations or loops + +**Common causes:** +1. Pushing too many values without consuming them +2. Unbounded recursion (if CALL family implemented) +3. Incorrect stack cleanup + +**How to debug:** +- Enable traces to see when stack depth grows unexpectedly +- Check for `push.*` instructions without corresponding pops +- Review stack cleanup after operations + +**How to fix:** +- Use `stack.drop` to remove unneeded values +- Restructure computation to use fewer intermediate values +- Default limit is 4,096 values (see `sddl2_vm.h`) + +--- + +#### `SDDL2_TYPE_MISMATCH` + +**Symptoms:** +- VM fails when operation expects specific value type +- Example: Math operation on Tag value instead of I64 + +**Common causes:** +1. Pushing Tag when I64 expected (or vice versa) +2. Pushing Type when value expected +3. Stack order confusion + +**How to debug:** +```bash +# Enable traces to see value types on stack +make BUILD_TYPE=TRACES_NOSAN LOG_LEVEL=POS + +# Check the sequence before the error: +# [SDDL2] @0000: push.tag (00010005) | stack depth: 1 ← Tag value +# [SDDL2] @0002: push.u32 (00010002) | stack depth: 2 ← I64 value +# [SDDL2] @0004: math.add (00020001) | TYPE_MISMATCH ← Can't add Tag + I64 +``` + +**How to fix:** +- Verify correct push.* instruction for each value type +- Use `push.u32/i32/i64` for numeric values (→ I64) +- Use `push.tag` for segment tags (→ Tag) +- Use `push.type.*` for type descriptors (→ Type) + +--- + +#### `SDDL2_SEGMENT_BOUNDS` + +**Symptoms:** +- VM fails when creating segment +- Segment extends beyond input buffer + +**Common causes:** +1. Segment size calculation is wrong +2. Not accounting for already-consumed bytes +3. Input data is shorter than expected + +**How to debug:** +```bash +# Add validation before segment creation: +push.remaining # Check how many bytes left +# ... calculate your segment size ... +# Use cmp.* and expect_true to validate +``` + +**Example validation:** +```asm +# Before: stack has segment_size +stack.dup # Duplicate size +push.remaining # Get remaining bytes +cmp.le # size <= remaining? +expect_true # Fail with better error if not +# Now safe to create segment +``` + +**How to fix:** +- Use `push.remaining` to track available bytes +- Add runtime checks with `expect_true` +- Verify input data matches expected format + +--- + +#### `SDDL2_LOAD_BOUNDS` + +**Symptoms:** +- VM fails during `load.*` instruction +- Attempting to load from address beyond input buffer + +**Common causes:** +1. Load address calculation is wrong +2. Using absolute position instead of relative offset +3. Input shorter than expected + +**How to debug:** +```bash +# Enable traces to see the address being loaded +# [SDDL2] @0010: load.u32le (00060008) | stack depth: 1 +# Check: was the address on stack valid? +``` + +**How to fix:** +- Validate addresses before load: `0 <= addr < input_size` +- Use `push.current_pos` to track position +- Add bounds checks with `expect_true` + +--- + +#### `SDDL2_DIV_ZERO` + +**Symptoms:** +- VM fails during `math.div` or `math.mod` +- Divisor is zero + +**Common causes:** +1. Dynamic calculation produces zero divisor +2. Input data has zero in unexpected place +3. Logic error in size calculation + +**How to debug:** +```bash +# Add validation before division: +stack.dup # Duplicate divisor +push.zero +cmp.ne # divisor != 0? +expect_true # Fail if zero +# Now safe to divide +``` + +**How to fix:** +- Add runtime checks before division +- Handle zero case explicitly in compilation logic +- Validate input format assumptions + +--- + +#### `SDDL2_VALIDATION_FAILED` + +**Symptoms:** +- VM fails at `expect_true` instruction +- Runtime validation assertion failed + +**Common causes:** +1. Input data doesn't match expected format +2. Magic number / version check failed +3. Field value out of expected range + +**How to debug:** +```bash +# Recent versions include rich trace output: +make BUILD_TYPE=TRACES_NOSAN LOG_LEVEL=POS + +# Output shows validation context: +# [SDDL2] expect_true FAILED +# [SDDL2] Trace: push.i32 1234 → cmp.eq → expect_true +# [SDDL2] Expected: true, Got: false +``` + +**How to fix:** +- Check if input data format matches expectations +- Review validation logic for correctness +- Add trace.start before complex validations for debugging + +--- + +### Debugging Strategies + +#### 1. Compare with Known-Good Bytecode + +```bash +# Generate reference bytecode using assembler +echo "push.u32 42 +halt" > test.asm +./sddl2_assembler -i test.asm -o test.bin + +# Compare with your compiler output +hexdump -C test.bin +hexdump -C your_output.bin +``` + +#### 2. Use the Disassembler + +```c +#include "openzl/compress/graphs/sddl2/sddl2_disasm.h" + +void dump_bytecode(const uint8_t* bytecode, size_t size) { + const uint32_t* words = (const uint32_t*)bytecode; + size_t word_count = size / 4; + + for (size_t i = 0; i < word_count; i++) { + const char* mnemonic = SDDL2_disasm_instruction(words[i]); + printf("@%04zu: %-20s (0x%08x)\n", i, mnemonic, words[i]); + } +} +``` + +#### 3. Incremental Testing + +Test bytecode generation in stages: +1. Start with simple: `push.zero halt` +2. Add arithmetic: `push.u32 5 push.u32 3 math.add halt` +3. Add segments: `push.i32 10 segment.create_unspecified halt` +4. Add types: `push.type.u32le push.i32 1 type.fixed_array halt` + +#### 4. Unit Test Each Pattern + +```c +// Test: Push and arithmetic +SDDL2_Error test_arithmetic() { + uint8_t bytecode[] = { + 0x01, 0x00, 0x02, 0x00, // push.u32 + 0x05, 0x00, 0x00, 0x00, // 5 + 0x01, 0x00, 0x02, 0x00, // push.u32 + 0x03, 0x00, 0x00, 0x00, // 3 + 0x02, 0x00, 0x01, 0x00, // math.add + 0x05, 0x00, 0x01, 0x00 // halt + }; + + uint8_t input[] = {0x00}; // Dummy input + SDDL2_Segment_list segments; + SDDL2_Segment_list_init(&segments); + + SDDL2_Error err = SDDL2_execute_bytecode( + bytecode, sizeof(bytecode), + input, sizeof(input), + &segments + ); + + SDDL2_Segment_list_destroy(&segments); + return err; +} +``` + +--- + +### Stack Debugging Tips + +**Problem: Stack depth doesn't match expectations** + +1. **Track stack manually:** + ``` + Initial: [] + push.u32 42: [I64(42)] + push.u32 10: [I64(42), I64(10)] + math.add: [I64(52)] + ``` + +2. **Use traces to verify:** + ```bash + [SDDL2] @0000: push.u32 (00010002) | stack depth: 1 ✓ + [SDDL2] @0002: push.u32 (00010002) | stack depth: 2 ✓ + [SDDL2] @0004: math.add (00020001) | stack depth: 1 ✓ + ``` + +3. **Common stack discipline mistakes:** + - Forgetting `type.structure` pops N types and member count + - Not accounting for `segment.create_tagged` popping 3 values + - Stack order confusion (operations pop TOS first) + +**Problem: Segments created but empty/wrong** + +1. **Check segment creation arguments:** + ```asm + # segment.create_tagged expects: Tag, Type, Count (TOS) + push.tag 1 # Tag + push.type.u32le # Type + push.i32 100 # Count (TOS - popped first!) + segment.create_tagged + ``` + +2. **Verify with traces that all 3 values are present before call** + +3. **Common mistakes:** + - Wrong stack order (Tag/Type/Count reversed) + - Count is zero (creates zero-size segment) + - Type is incorrect (wrong primitive or structure) + +--- + +## Related Documentation + +- **Compiler integration**: `COMPILER_INTEGRATION.md` (this directory) - Complete guide for compiler writers +- **Assembler**: `tools/sddl2/assembler/README.md` - Assembler tool documentation +- **Bytecode format**: `tools/sddl2/assembler/Bytecode_spec.md` - Format specification +- **Test framework**: `tests/compress/graphs/sddl2/BYTECODE_TEST_FRAMEWORK.md` - Auto-discovery testing +- **Examples**: `examples/sddl2_asm/` - Working programs (start with `sao_silesia.asm`) diff --git a/src/openzl/compress/graphs/sddl2/generate_c_headers.py b/src/openzl/compress/graphs/sddl2/generate_c_headers.py new file mode 100644 index 000000000..5845eeaf8 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/generate_c_headers.py @@ -0,0 +1,393 @@ +#!/usr/bin/env python3 +""" +Generate C header files from sddl2_opcodes.def + +This script parses the structured opcode definition file and generates: +- sddl2_opcodes.h (C11 header with opcode definitions) +- sddl2_disasm_generated.h (C disassembler implementation) + +Usage: + python3 generate_c_headers.py +""" + +import re +from datetime import datetime +from pathlib import Path +from typing import Dict, List, Tuple + + +def parse_def_file(def_file_path: Path) -> Tuple[Dict[str, tuple], List[tuple]]: + """ + Parse the .def file and extract family and opcode definitions. + + Format: + @family NAME ID "Description" + mnemonic opcode [params] "Description" + + Returns: + (families_dict, opcodes_list) + families_dict: {name: (id, description)} + opcodes_list: [(mnemonic, family, opcode, [param_types], description)] + """ + families = {} + opcodes = [] + + content = def_file_path.read_text() + lines = content.split("\n") + + current_family = None + + for line in lines: + stripped = line.strip() + + # Skip comments and empty lines + if not stripped or stripped.startswith("#"): + continue + + # Parse @family directive: @family NAME ID "Description" + if stripped.startswith("@family"): + # Extract family name, ID, and description (in quotes) + match = re.match( + r'@family\s+(\w+)\s+(0x[0-9A-Fa-f]+)\s+"([^"]*)"', stripped + ) + if match: + family_name = match.group(1) + family_id = match.group(2) + description = match.group(3) + families[family_name] = (int(family_id, 16), description) + current_family = family_name + else: + # Family without description + match = re.match(r"@family\s+(\w+)\s+(0x[0-9A-Fa-f]+)", stripped) + if match: + family_name = match.group(1) + family_id = match.group(2) + families[family_name] = (int(family_id, 16), "") + current_family = family_name + + # Parse indented opcode lines + elif line.startswith(" ") and current_family: + # Format: mnemonic opcode [params] "Description" + match = re.match( + r'\s+([\w.]+)\s+(0x[0-9A-Fa-f]+)(?:\s+([^"]+))?\s+"([^"]*)"', line + ) + + if match: + mnemonic = match.group(1) + opcode = match.group(2) + params_str = match.group(3) + description = match.group(4) + + # Parse parameters if present + params = [] + if params_str: + params = [p.strip() for p in params_str.split() if p.strip()] + + opcodes.append( + (mnemonic, current_family, int(opcode, 16), params, description) + ) + + return families, opcodes + + +def generate_c_header(families: Dict[str, tuple], opcodes: List[tuple]) -> str: + """ + Generate C11 header code for sddl2_opcodes.h + + Args: + families: {name: (id, description)} + opcodes: [(mnemonic, family, opcode, [param_types], description)] + """ + lines = [] + + # Header + lines.append("// Copyright (c) Meta Platforms, Inc. and affiliates.") + lines.append("") + lines.append("// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY") + lines.append("//") + lines.append( + "// Generated from: src/openzl/compress/graphs/sddl2/sddl2_opcodes.def" + ) + lines.append( + f"// Generated at: {datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S UTC')}" + ) + lines.append("// Generator: generate_c_headers.py") + lines.append("//") + lines.append( + "// To regenerate: python3 src/openzl/compress/graphs/sddl2/generate_c_headers.py" + ) + lines.append("") + lines.append("#ifndef OPENZL_SDDL2_OPCODES_H") + lines.append("#define OPENZL_SDDL2_OPCODES_H") + lines.append("") + lines.append("/**") + lines.append(" * SDDL2 VM Opcode Definitions") + lines.append(" *") + lines.append( + " * This file defines the opcode families and instruction opcodes for the SDDL2 VM." + ) + lines.append(" * ") + lines.append(" * Instruction Format:") + lines.append(" * - 32-bit instruction word (little-endian)") + lines.append(" * - Low 16 bits: Family ID") + lines.append(" * - High 16 bits: Opcode within family") + lines.append(" */") + lines.append("") + + # Family enum + lines.append( + "/* ============================================================================" + ) + lines.append(" * OPCODE FAMILIES") + lines.append( + " * ========================================================================= */" + ) + lines.append("") + lines.append("enum sddl2_family {") + + family_order = [ + "PUSH", + "MATH", + "CMP", + "LOGIC", + "CONTROL", + "LOAD", + "STACK", + "TYPE", + "VAR", + "EXPECT", + "CALL", + "SEGMENT", + ] + + for family_name in family_order: + if family_name in families: + id_val, description = families[family_name] + lines.append( + f" SDDL2_FAMILY_{family_name:8s} = 0x{id_val:04X}, /* {description} */" + ) + + lines.append("};") + lines.append("") + + # Opcode enums per family + lines.append( + "/* ============================================================================" + ) + lines.append(" * OPCODES") + lines.append( + " * ========================================================================= */" + ) + lines.append("") + + # Group by family + by_family = {} + for mnemonic, family, opcode, params, description in opcodes: + if family not in by_family: + by_family[family] = [] + by_family[family].append((mnemonic, opcode, params, description)) + + for family_name in family_order: + if family_name not in by_family: + continue + + id_val, description = families[family_name] + lines.append(f"/* {family_name} family (0x{id_val:04X}) - {description} */") + lines.append(f"enum sddl2_opcode_{family_name.lower()} {{") + + for mnemonic, opcode, params, _desc in sorted( + by_family[family_name], key=lambda x: x[1] + ): + # Convert mnemonic to C identifier (replace dots with underscores) + # Strip family prefix if present (e.g., "push.zero" -> "zero") + mnemonic_lower = mnemonic.lower() + family_prefix = family_name.lower() + "." + if mnemonic_lower.startswith(family_prefix): + c_name = mnemonic[len(family_prefix) :].replace(".", "_").upper() + else: + c_name = mnemonic.replace(".", "_").upper() + + # Add parameter comment if present + param_comment = "" + if params: + param_str = ", ".join(params) + param_comment = f" /* param: {param_str} */" + + lines.append( + f" SDDL2_OP_{family_name}_{c_name} = 0x{opcode:04X},{param_comment}" + ) + + lines.append("};") + lines.append("") + + lines.append("#endif // OPENZL_SDDL2_OPCODES_H") + lines.append("") + + return "\n".join(lines) + + +def generate_c_disasm_header(families: Dict[str, tuple], opcodes: List[tuple]) -> str: + """ + Generate C disassembler implementation header for sddl2_disasm_generated.h + + This header is meant to be included by sddl2_disasm.c to provide the + auto-generated instruction name lookup implementation. + + Args: + families: {name: (id, description)} + opcodes: [(mnemonic, family, opcode, [param_types], description)] + """ + lines = [] + + # Header + lines.append("// Copyright (c) Meta Platforms, Inc. and affiliates.") + lines.append("") + lines.append("// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY") + lines.append("//") + lines.append( + "// Generated from: src/openzl/compress/graphs/sddl2/sddl2_opcodes.def" + ) + lines.append( + f"// Generated at: {datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S UTC')}" + ) + lines.append("// Generator: generate_c_headers.py") + lines.append("//") + lines.append( + "// To regenerate: python3 src/openzl/compress/graphs/sddl2/generate_c_headers.py" + ) + lines.append("") + lines.append("/**") + lines.append(" * SDDL2 Disassembler - Generated Implementation") + lines.append(" *") + lines.append( + " * This file contains the auto-generated instruction name lookup logic." + ) + lines.append(" * It is included by sddl2_disasm.c to provide the implementation of") + lines.append(" * SDDL2_instruction_name().") + lines.append(" *") + lines.append( + " * DO NOT include this file directly - it's included by sddl2_disasm.c" + ) + lines.append(" */") + lines.append("") + lines.append("#ifndef OPENZL_SDDL2_DISASM_GENERATED_H") + lines.append("#define OPENZL_SDDL2_DISASM_GENERATED_H") + lines.append("") + lines.append("#include ") + lines.append('#include "openzl/compress/graphs/sddl2/sddl2_opcodes.h"') + lines.append("") + lines.append("// This function implementation is generated from sddl2_opcodes.def") + lines.append("// NOLINTNEXTLINE(facebook-hte-StaticInHeader)") + lines.append( + "static inline const char* SDDL2_instruction_name_impl(uint16_t family, uint16_t opcode)" + ) + lines.append("{") + lines.append(" switch (family) {") + + # Group by family for readability + by_family = {} + for mnemonic, family, opcode, params, description in opcodes: + if family not in by_family: + by_family[family] = [] + by_family[family].append((mnemonic, opcode, params, description)) + + # Output in family order (only families that actually exist) + family_order = [ + "PUSH", + "MATH", + "CMP", + "LOGIC", + "CONTROL", + "LOAD", + "STACK", + "TYPE", + "VAR", + "EXPECT", + "CALL", + "SEGMENT", + ] + + # Filter to only include families that exist in the header + existing_families = [f for f in family_order if f in families] + + for family_name in existing_families: + if family_name not in by_family: + # Handle empty families (families defined but with no opcodes) + id_val, description = families[family_name] + lines.append(f" case SDDL2_FAMILY_{family_name}:") + lines.append(f' return "{family_name.lower()}.?";') + lines.append("") + continue + + id_val, description = families[family_name] + lines.append(f" case SDDL2_FAMILY_{family_name}:") + lines.append(" switch (opcode) {") + + for mnemonic, _opcode, _params, _desc in sorted( + by_family[family_name], key=lambda x: x[1] + ): + # Convert mnemonic to C identifier (replace dots with underscores) + # Strip family prefix if present (e.g., "push.zero" -> "zero") + mnemonic_lower = mnemonic.lower() + family_prefix = family_name.lower() + "." + if mnemonic_lower.startswith(family_prefix): + c_name = mnemonic[len(family_prefix) :].replace(".", "_").upper() + else: + c_name = mnemonic.replace(".", "_").upper() + + lines.append( + f' case SDDL2_OP_{family_name}_{c_name}: return "{mnemonic}";' + ) + + lines.append(f' default: return "{family_name.lower()}.?";') + lines.append(" }") + lines.append("") + + lines.append(" default:") + lines.append(' return "?.?";') + lines.append(" }") + lines.append("}") + lines.append("") + lines.append("#endif // OPENZL_SDDL2_DISASM_GENERATED_H") + lines.append("") + + return "\n".join(lines) + + +def main(): + script_dir = Path(__file__).parent + def_file = script_dir / "sddl2_opcodes.def" + c_header_output = script_dir / "sddl2_opcodes.h" + c_disasm_header_output = script_dir / "sddl2_disasm_generated.h" + + if not def_file.exists(): + print(f"Error: {def_file} not found") + return 1 + + print(f"Parsing {def_file}...") + families, opcodes = parse_def_file(def_file) + + print(f"Found {len(families)} families, {len(opcodes)} opcodes") + + # Generate C header + print(f"Generating {c_header_output}...") + c_header_code = generate_c_header(families, opcodes) + c_header_output.write_text(c_header_code) + print(f" ✓ {c_header_output}") + + # Generate C disassembler header + print(f"Generating {c_disasm_header_output}...") + c_disasm_header_code = generate_c_disasm_header(families, opcodes) + c_disasm_header_output.write_text(c_disasm_header_code) + print(f" ✓ {c_disasm_header_output}") + + print("\nSuccessfully generated C header files:") + print(f" - {len(families)} families") + print(f" - {len(opcodes)} instructions") + print(f"\nSingle source of truth: {def_file}") + + return 0 + + +if __name__ == "__main__": + exit(main()) diff --git a/src/openzl/compress/graphs/sddl2/sddl2.c b/src/openzl/compress/graphs/sddl2/sddl2.c new file mode 100644 index 000000000..b9b698733 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2.c @@ -0,0 +1,1525 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "sddl2.h" + +#include +#include + +#include "openzl/codecs/splitByStruct/encode_splitByStruct_binding.h" +#include "openzl/codecs/zl_clustering.h" // ZL_CLUSTERING_TAG_METADATA_ID +#include "openzl/common/assertion.h" +#include "openzl/common/logging.h" +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" +#include "openzl/compress/private_nodes.h" +#include "openzl/zl_compressor.h" // ZL_Compressor_registerParameterizedGraph +#include "openzl/zl_localParams.h" // ZL_CopyParam, ZL_LocalParams +#include "openzl/zl_public_nodes.h" +#include "openzl/zl_segmenter.h" +#include "openzl/zl_selector.h" // ZL_LP_INVALID_PARAMID +#include "openzl/zl_version.h" + +/** + * SDDL2 segmenter and chunk replay integration. + * + * Public flow: + * 1. Execute the SDDL2 VM once over the full serial input in `SDDL2_segment()`. + * 2. Partition the emitted segment plan into chunk-local slices, splitting + * inside a segment only when that segment alone exceeds the chunk target. + * 3. Replay each slice through the private `!zl.private.sddl2_chunk` graph. + */ + +/** + * Arena allocator wrapper for ZL_Segmenter_getScratchSpace. + * Segmenter scratch space is session-lifetime, so emitted segment plans remain + * valid while chunk-local inner graphs replay them. + */ +static void* sddl2_segmenter_arena_allocator(void* allocator_ctx, size_t size) +{ + return ZL_Segmenter_getScratchSpace((ZL_Segmenter*)allocator_ctx, size); +} + +/** + * Determine endianness for a given SDDL2 type. + * + * @param type_kind The SDDL2 type kind + * @param out_is_little_endian Output parameter for endianness result + * @return ZL_Report indicating success or error + * + * Note: 1-byte types have no inherent endianness; we arbitrarily choose + * little-endian for consistency. + */ +static ZL_Report sddl2_determine_endianness( + SDDL2_Type_kind type_kind, + bool* out_is_little_endian, + ZL_Graph* graph) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + switch (type_kind) { + // 1-byte types (no endianness - arbitrary choice: little-endian) + case SDDL2_TYPE_U8: + case SDDL2_TYPE_I8: + case SDDL2_TYPE_F8: + *out_is_little_endian = true; + break; + + // Little-endian types + case SDDL2_TYPE_U16LE: + case SDDL2_TYPE_I16LE: + case SDDL2_TYPE_U32LE: + case SDDL2_TYPE_I32LE: + case SDDL2_TYPE_U64LE: + case SDDL2_TYPE_I64LE: + case SDDL2_TYPE_F16LE: + case SDDL2_TYPE_BF16LE: + case SDDL2_TYPE_F32LE: + case SDDL2_TYPE_F64LE: + *out_is_little_endian = true; + break; + + // Big-endian types + case SDDL2_TYPE_U16BE: + case SDDL2_TYPE_I16BE: + case SDDL2_TYPE_U32BE: + case SDDL2_TYPE_I32BE: + case SDDL2_TYPE_U64BE: + case SDDL2_TYPE_I64BE: + case SDDL2_TYPE_F16BE: + case SDDL2_TYPE_BF16BE: + case SDDL2_TYPE_F32BE: + case SDDL2_TYPE_F64BE: + *out_is_little_endian = false; + break; + + // BYTES type should be handled by caller + case SDDL2_TYPE_BYTES: + ZL_ERR(GENERIC, + "BYTES type should be filtered before endianness check"); + + // STRUCTURE type should be handled by caller + case SDDL2_TYPE_STRUCTURE: + ZL_ERR(GENERIC, + "STRUCTURE type should be filtered before endianness check"); + + default: + ZL_ERR(GENERIC, "Unknown SDDL2 type kind: %d", (int)type_kind); + } + + return ZL_returnSuccess(); +} + +static ZL_GraphID sddl2_register_graph( + ZL_Compressor* const compressor, + const void* const bytecode, + const size_t bytecode_size, + const ZL_GraphID* const custom_graphs, + const size_t nb_custom_graphs, + const size_t chunk_byte_size) +{ + const bool has_chunk_size = chunk_byte_size != 0; + if (chunk_byte_size > (size_t)INT_MAX) { + ZL_LOG(WARN, + "sddl2_register_graph: chunk_byte_size=%zu exceeds INT_MAX", + chunk_byte_size); + return ZL_GRAPH_ILLEGAL; + } + if (nb_custom_graphs > 1) { + ZL_LOG(WARN, + "sddl2_register_graph: expected at most 1 custom graph, got %zu", + nb_custom_graphs); + return ZL_GRAPH_ILLEGAL; + } + + const ZL_CopyParam copyParams[] = { { + .paramId = SDDL2_BYTECODE_PARAM, + .paramPtr = bytecode, + .paramSize = bytecode_size, + } }; + const ZL_IntParam intParams[] = { { + .paramId = SDDL2_CHUNK_BYTE_SIZE_PARAM, + .paramValue = (int)chunk_byte_size, + } }; + const ZL_LocalParams localParams = { + .intParams = { intParams, has_chunk_size ? 1 : 0 }, + .copyParams = { copyParams, 1 }, + }; + const ZL_ParameterizedGraphDesc desc = { + .graph = ZL_GRAPH_SDDL2, + .customGraphs = custom_graphs, + .nbCustomGraphs = nb_custom_graphs, + .localParams = &localParams, + }; + + return ZL_Compressor_registerParameterizedGraph(compressor, &desc); +} + +ZL_GraphID ZL_Compressor_registerSDDL2Graph( + ZL_Compressor* const compressor, + const void* const bytecode, + const size_t bytecode_size) +{ + return sddl2_register_graph( + compressor, bytecode, bytecode_size, NULL, 0, 0); +} + +ZL_GraphID ZL_Compressor_registerSDDL2Graph_advanced( + ZL_Compressor* const compressor, + const void* const bytecode, + const size_t bytecode_size, + const ZL_GraphID destination, + const size_t chunk_byte_size) +{ + return sddl2_register_graph( + compressor, + bytecode, + bytecode_size, + &destination, + 1, + chunk_byte_size); +} + +static bool sddl2_try_count_primitive_fields( + SDDL2_Type type, + size_t* out_total_fields) +{ + if (type.kind != SDDL2_TYPE_STRUCTURE) { + *out_total_fields = 1; + return true; + } + + if (type.struct_data == NULL) { + return false; + } + + size_t total = 0; + for (size_t i = 0; i < type.struct_data->member_count; i++) { + size_t member_total = 0; + if (!sddl2_try_count_primitive_fields( + type.struct_data->members[i], &member_total) + || member_total > SIZE_MAX - total) { + return false; + } + total += member_total; + } + + *out_total_fields = total; + return true; +} + +/** + * Count the total number of primitive fields in a type (recursive). + * + * For structures, recursively counts all primitive fields within. + * For primitives, returns the width (number of elements). + * + * Rejects arrays of structures (width > 1 on STRUCTURE type). + * + * @param graph Graph context for error reporting + * @param type The type to analyze + * @return ZL_Report containing the field count on success, or error + */ +static ZL_Report sddl2_count_primitive_fields(ZL_Graph* graph, SDDL2_Type type) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + size_t total_fields = 0; + ZL_ERR_IF_NOT( + sddl2_try_count_primitive_fields(type, &total_fields), + GENERIC, + "Failed to count primitive fields for SDDL2 type"); + + return ZL_returnValue(total_fields); +} + +/** + * Recursively flatten a type's field sizes into an array. + * + * For structures, recursively flattens all nested fields. + * For primitives, appends the field size. + * + * @param graph Graph context for error reporting + * @param type The type to flatten + * @param field_sizes Output array (must be pre-allocated) + * @param index Pointer to current index in output array (updated during + * recursion) + * @return ZL_Report indicating success or error + */ +static ZL_Report sddl2_flatten_field_sizes( + ZL_Graph* graph, + SDDL2_Type type, + size_t* field_sizes, + size_t* index) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + if (type.kind == SDDL2_TYPE_STRUCTURE) { + // Recursively flatten all members + ZL_ERR_IF_NULL( + type.struct_data, + GENERIC, + "Structure type has NULL struct_data"); + + for (size_t i = 0; i < type.struct_data->member_count; i++) { + ZL_ERR_IF_ERR(sddl2_flatten_field_sizes( + graph, type.struct_data->members[i], field_sizes, index)); + } + } else { + SDDL2_RESULT_OF(size_t) const field_size_report = SDDL2_Type_size(type); + ZL_ERR_IF( + SDDL2_isError(field_size_report), + GENERIC, + "Failed to compute size for type kind %d", + (int)type.kind); + size_t const field_size = SDDL2_value(field_size_report); + + field_sizes[(*index)++] = field_size; + } + + return ZL_returnSuccess(); +} + +/** + * Extract field sizes from a structure type (supports nested structures). + * + * Recursively flattens nested structures into a flat array of primitive field + * sizes. Supports arbitrary nesting depth as long as all structures have + * width=1. + * + * @param graph Graph context for memory allocation and error reporting + * @param struct_type The structure type to analyze + * @param out_field_sizes Output pointer to array of field sizes + * @param out_nb_fields Output pointer to number of fields + * @return ZL_Report indicating success or error + * + * Supported: + * - Nested structures with width=1: {U8, {I16LE, I32LE}, F64BE} + * - Arrays of primitives: {U8, [I32LE × 10], F64BE} + * - Arbitrary nesting depth + * + * Not supported (rejected with error): + * - Arrays of structures: [{U8, I32LE} × 10] + */ +static ZL_Report sddl2_extract_flat_field_sizes( + ZL_Graph* graph, + SDDL2_Type struct_type, + size_t** out_field_sizes, + size_t* out_nb_fields) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + // Validate this is a structure type + ZL_ERR_IF_NE( + struct_type.kind, + SDDL2_TYPE_STRUCTURE, + GENERIC, + "Expected structure type, got type kind %d", + (int)struct_type.kind); + + // Count total primitive fields (recursive) + ZL_TRY_LET( + size_t, + total_fields, + sddl2_count_primitive_fields(graph, struct_type)); + + ZL_ERR_IF_EQ( + total_fields, + 0, + GENERIC, + "Structure has no valid primitive fields"); + + // Allocate field sizes array using arena + size_t* field_sizes = (size_t*)ZL_Graph_getScratchSpace( + graph, total_fields * sizeof(size_t)); + ZL_ERR_IF_NULL(field_sizes, allocation); + + // Recursively flatten field sizes + size_t index = 0; + ZL_ERR_IF_ERR( + sddl2_flatten_field_sizes(graph, struct_type, field_sizes, &index)); + + // Verify we filled the expected number of fields + ZL_ERR_IF_NE( + index, + total_fields, + GENERIC, + "Field count mismatch: expected %zu, got %zu", + total_fields, + index); + + *out_field_sizes = field_sizes; + *out_nb_fields = total_fields; + + return ZL_returnSuccess(); +} + +/** + * Recursively extract primitive field types from a structure (flattened). + * + * Similar to sddl2_flatten_field_sizes, but extracts the actual SDDL2_Type_kind + * for each primitive field. This is needed to apply proper type conversions. + * + * @param graph Graph context for error reporting + * @param type The type to flatten + * @param field_types Output array of SDDL2_Type_kind (must be pre-allocated) + * @param index Pointer to current index in output array (updated during + * recursion) + * @return ZL_Report indicating success or error + */ +static ZL_Report sddl2_flatten_field_types( + ZL_Graph* graph, + SDDL2_Type type, + SDDL2_Type_kind* field_types, + size_t* index) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + if (type.kind == SDDL2_TYPE_STRUCTURE) { + // Recursively flatten all members + ZL_ERR_IF_NULL( + type.struct_data, + GENERIC, + "Structure type has NULL struct_data"); + + for (size_t i = 0; i < type.struct_data->member_count; i++) { + ZL_ERR_IF_ERR(sddl2_flatten_field_types( + graph, type.struct_data->members[i], field_types, index)); + } + } else { + // Primitive type: append its kind + // For array types (width > 1), we still just record the element type + // The width is handled by field_sizes array + field_types[(*index)++] = type.kind; + } + + return ZL_returnSuccess(); +} + +/** + * Extract field types from a structure type (supports nested structures). + * + * Recursively flattens nested structures into a flat array of primitive field + * types. Works in tandem with sddl2_extract_flat_field_sizes(). + * + * @param graph Graph context for memory allocation and error reporting + * @param struct_type The structure type to analyze + * @param out_field_types Output pointer to array of SDDL2_Type_kind + * @return ZL_Report containing the number of fields on success, or error + */ +static ZL_Report sddl2_extract_flat_field_types( + ZL_Graph* graph, + SDDL2_Type struct_type, + SDDL2_Type_kind** out_field_types) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + // Count total primitive fields (reuse existing function) + ZL_TRY_LET( + size_t, + total_fields, + sddl2_count_primitive_fields(graph, struct_type)); + + ZL_ERR_IF_EQ( + total_fields, + 0, + GENERIC, + "Structure has no valid primitive fields"); + + // Allocate field types array using arena + SDDL2_Type_kind* field_types = (SDDL2_Type_kind*)ZL_Graph_getScratchSpace( + graph, total_fields * sizeof(SDDL2_Type_kind)); + ZL_ERR_IF_NULL(field_types, allocation); + + // Recursively flatten field types + size_t index = 0; + ZL_ERR_IF_ERR( + sddl2_flatten_field_types(graph, struct_type, field_types, &index)); + + // Verify we filled the expected number of fields + ZL_ERR_IF_NE( + index, + total_fields, + GENERIC, + "Field type count mismatch: expected %zu, got %zu", + total_fields, + index); + + *out_field_types = field_types; + + return ZL_returnValue(total_fields); +} + +/** + * Convert a Struct edge (from split-by-struct) to a Numeric edge. + * + * This function handles the specific conversion needed for structure fields + * after split-by-struct operation. Split-by-struct outputs Struct edges + * with embedded size information, which need to be converted to Numeric + * edges with appropriate endianness. + * + * @param graph Graph context for error reporting + * @param struct_edge The Struct edge to convert (output from split-by-struct) + * @param field_type_kind The SDDL2 type kind for this field (determines + * endianness) + * @param out_converted_edge Output pointer to the converted Numeric edge + * @return ZL_Report indicating success or error + */ +static ZL_Report sddl2_apply_struct_field_conversion( + ZL_Graph* graph, + ZL_Edge* struct_edge, + SDDL2_Type_kind field_type_kind, + ZL_Edge** out_converted_edge) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + // Skip BYTES type (shouldn't happen with structures, but be defensive) + if (field_type_kind == SDDL2_TYPE_BYTES) { + ZL_ERR(GENERIC, "BYTES type not supported in structure fields"); + } + + // Determine endianness for this field + bool is_little_endian; + ZL_ERR_IF_ERR(sddl2_determine_endianness( + field_type_kind, &is_little_endian, graph)); + + // Get the appropriate Struct→Numeric conversion node + ZL_NodeID convert_node; + if (is_little_endian) { + convert_node = ZL_NODE_CONVERT_STRUCT_TO_NUM_LE; + } else { + convert_node = ZL_NODE_CONVERT_STRUCT_TO_NUM_BE; + } + + // Apply Struct→Numeric conversion + ZL_TRY_LET( + ZL_EdgeList, converted, ZL_Edge_runNode(struct_edge, convert_node)); + + // Validate that conversion produced exactly one edge + ZL_ERR_IF_NE( + converted.nbEdges, + 1, + GENERIC, + "Struct-to-numeric conversion should produce exactly 1 edge, got %zu", + converted.nbEdges); + + *out_converted_edge = converted.edges[0]; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_set_next_stream_tag( + ZL_Graph* graph, + ZL_Edge* edge, + ZL_IDType* next_stream_id); + +/** + * Apply split-by-struct transform to a structure segment. + * + * Splits an edge containing an array of structures into N separate edges, + * one for each primitive field. Handles nested structures by flattening them. + * + * Process: + * 1. Extract flattened field sizes from structure type + * 2. Extract flattened field types from structure type + * 3. Run split-by-struct node with field sizes as runtime parameters + * 4. Apply type conversion to each output edge based on field type + * 5. Route each field edge to COMPRESS_GENERIC + * + * @param graph Graph context for operations and error reporting + * @param edge The edge containing the structure array + * @param type The structure type information + * @param dest Destination graph for field edges + * @param next_stream_id Pointer to counter for generating unique stream tags + * @return ZL_Report indicating success or error + * + * Example: + * Input: Array of {U8, I16LE, I32LE} structures + * Output: 3 edges - [all U8], [all I16LE], [all I32LE] + */ +static ZL_Report sddl2_apply_structure_split( + ZL_Graph* graph, + ZL_Edge* edge, + SDDL2_Type type, + ZL_GraphID dest, + ZL_IDType* next_stream_id) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + ZL_DLOG(BLOCK, + "Applying split-by-struct to segment with structure type (width=%u)", + type.width); + + // Step 1: Extract flattened field sizes + size_t* field_sizes = NULL; + size_t nb_fields = 0; + ZL_ERR_IF_ERR(sddl2_extract_flat_field_sizes( + graph, type, &field_sizes, &nb_fields)); + + ZL_DLOG(BLOCK, "Structure has %zu flattened primitive fields", nb_fields); + + // Step 2: Extract flattened field types (for later conversion) + SDDL2_Type_kind* field_types = NULL; + ZL_TRY_LET( + size_t, + nb_field_types, + sddl2_extract_flat_field_types(graph, type, &field_types)); + + // Sanity check: field counts must match + ZL_ERR_IF_NE( + nb_fields, + nb_field_types, + GENERIC, + "Field count mismatch: sizes=%zu, types=%zu", + nb_fields, + nb_field_types); + + // Step 3: Build non-zero sizes for split-by-struct + size_t* nonzero_sizes = (size_t*)ZL_Graph_getScratchSpace( + graph, nb_fields * sizeof(size_t)); + ZL_ERR_IF_NULL(nonzero_sizes, allocation); + + size_t nb_nonzero = 0; + for (size_t i = 0; i < nb_fields; i++) { + if (field_sizes[i] > 0) { + nonzero_sizes[nb_nonzero++] = field_sizes[i]; + } + } + + ZL_CopyParam const fieldSizesParam = { + .paramId = ZL_SPLITBYSTRUCT_FIELDSIZES_PID, + .paramPtr = nonzero_sizes, + .paramSize = nb_nonzero * sizeof(size_t) + }; + + // Package into LocalParams structure + ZL_LocalCopyParams const lcp = { &fieldSizesParam, 1 }; + ZL_LocalParams const lParams = { .copyParams = lcp }; + + // Step 4: Run split-by-struct node with runtime parameters + ZL_TRY_LET( + ZL_EdgeList, + split_outputs, + ZL_Edge_runNode_withParams( + edge, ZL_NODE_SPLIT_BY_STRUCT, &lParams)); + + // Validate we got the expected number of output edges + ZL_ERR_IF_NE( + split_outputs.nbEdges, + nb_nonzero, + GENERIC, + "Split-by-struct produced %zu edges, expected %zu", + split_outputs.nbEdges, + nb_nonzero); + + ZL_DLOG(BLOCK, "Split-by-struct produced %zu field edges", nb_nonzero); + + // Step 5: Convert, tag, and route each field; skip IDs for zero-size + size_t edge_idx = 0; + for (size_t i = 0; i < nb_fields; i++) { + // Skip zero-size fields but still increment stream ID + if (field_sizes[i] == 0) { + ZL_DLOG(BLOCK, "Field %zu: skipped (zero size)", i); + *next_stream_id += 1; + continue; + } + + ZL_Edge* field_edge = split_outputs.edges[edge_idx++]; + SDDL2_Type_kind field_type_kind = field_types[i]; + if (field_types[i] != SDDL2_TYPE_BYTES) { + ZL_ERR_IF_ERR(sddl2_apply_struct_field_conversion( + graph, field_edge, field_type_kind, &field_edge)); + } + + ZL_DLOG(BLOCK, + "Field %zu: converted Struct→Numeric (type kind %d)", + i, + (int)field_type_kind); + + // Attach clustering tag and route to destination + ZL_ERR_IF_ERR( + sddl2_set_next_stream_tag(graph, field_edge, next_stream_id)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(field_edge, dest)); + } + + ZL_DLOG(BLOCK, + "Structure split complete: %zu fields routed to destination", + nb_fields); + + return ZL_returnSuccess(); +} + +/** + * Apply type conversion to a segment edge. + * + * Converts a Serial edge to a Numeric edge with the appropriate bit width + * and endianness based on the segment's type information. + * + * For array types (width > 1), this converts the primitive element type, + * not the entire array. For example, Type{U32LE, 10} converts each U32LE + * element (32 bits), not the whole 320-bit array. + * + * @param graph Graph context for error reporting + * @param edge The edge to convert + * @param type The segment type information + * @param out_converted_edge Output pointer to the converted edge + * @return ZL_Report indicating success or error + */ +static ZL_Report sddl2_apply_type_conversion( + ZL_Graph* graph, + ZL_Edge* edge, + SDDL2_Type type, + ZL_Edge** out_converted_edge) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + // Determine primitive element size in bytes (not including width) + // For array types, we convert the base element, not the full array + SDDL2_RESULT_OF(size_t) + const element_size_report = SDDL2_kind_size(type.kind); + ZL_ERR_IF( + SDDL2_isError(element_size_report), + GENERIC, + "Invalid SDDL2 type kind %d for segment (unsupported type)", + (int)type.kind); + size_t const element_size = SDDL2_value(element_size_report); + + // Determine endianness + bool is_little_endian; + ZL_ERR_IF_ERR( + sddl2_determine_endianness(type.kind, &is_little_endian, graph)); + + // Get the appropriate conversion node based on endianness and size + size_t bit_width = element_size * 8; + ZL_NodeID convert_node; + if (is_little_endian) { + convert_node = ZL_Node_convertSerialToNumLE(bit_width); + } else { + convert_node = ZL_Node_convertSerialToNumBE(bit_width); + } + + // Apply type conversion to the edge + ZL_TRY_LET(ZL_EdgeList, converted, ZL_Edge_runNode(edge, convert_node)); + + // Validate that conversion produced exactly one edge + ZL_ERR_IF_NE( + converted.nbEdges, + 1, + GENERIC, + "Type conversion should produce exactly 1 edge, got %zu", + converted.nbEdges); + + *out_converted_edge = converted.edges[0]; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_set_next_stream_tag( + ZL_Graph* graph, + ZL_Edge* edge, + ZL_IDType* next_stream_id) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + ZL_ERR_IF_NULL(edge, GENERIC); + ZL_ERR_IF_NULL(next_stream_id, GENERIC); + ZL_ERR_IF_GT( + *next_stream_id, + (ZL_IDType)INT_MAX, + internalBuffer_tooSmall, + "SDDL2 clustering tag exceeded int metadata capacity"); + + int const stream_tag = (int)(*next_stream_id); + *next_stream_id += 1; + return ZL_Edge_setIntMetadata( + edge, ZL_CLUSTERING_TAG_METADATA_ID, stream_tag); +} + +/** + * Process a single segment: apply type conversion and route to destination. + * + * Handles three types of segments: + * - BYTES: Route directly to destination without conversion + * - STRUCTURE: Split into field arrays, convert each field, route to + * destination + * - Primitive: Convert Serial→Numeric and route to destination + * + * @param graph Graph context for operations and error reporting + * @param edge The edge to process + * @param type The segment type metadata + * @param dest The destination graph for non-structure segments + * @param next_stream_id Pointer to counter for generating unique stream tags + * @return ZL_Report indicating success or error + */ +static ZL_Report sddl2_process_segment( + ZL_Graph* graph, + ZL_Edge* edge, + SDDL2_Type type, + ZL_GraphID dest, + ZL_IDType* next_stream_id) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + switch (type.kind) { + case SDDL2_TYPE_BYTES: + // BYTES segments: attach clustering tag and route + { + ZL_ERR_IF_ERR( + sddl2_set_next_stream_tag(graph, edge, next_stream_id)); + return ZL_Edge_setDestination(edge, dest); + } + + case SDDL2_TYPE_STRUCTURE: + // STRUCTURE segments: split, convert fields, attach tags, and route + return sddl2_apply_structure_split( + graph, edge, type, dest, next_stream_id); + + // Primitive numeric types: convert Serial→Numeric, attach tag, and + // route + case SDDL2_TYPE_U8: + case SDDL2_TYPE_I8: + case SDDL2_TYPE_U16LE: + case SDDL2_TYPE_U16BE: + case SDDL2_TYPE_I16LE: + case SDDL2_TYPE_I16BE: + case SDDL2_TYPE_U32LE: + case SDDL2_TYPE_U32BE: + case SDDL2_TYPE_I32LE: + case SDDL2_TYPE_I32BE: + case SDDL2_TYPE_U64LE: + case SDDL2_TYPE_U64BE: + case SDDL2_TYPE_I64LE: + case SDDL2_TYPE_I64BE: + case SDDL2_TYPE_F8: + case SDDL2_TYPE_F16LE: + case SDDL2_TYPE_F16BE: + case SDDL2_TYPE_BF16LE: + case SDDL2_TYPE_BF16BE: + case SDDL2_TYPE_F32LE: + case SDDL2_TYPE_F32BE: + case SDDL2_TYPE_F64LE: + case SDDL2_TYPE_F64BE: { + ZL_ERR_IF_ERR( + sddl2_apply_type_conversion(graph, edge, type, &edge)); + ZL_ERR_IF_ERR( + sddl2_set_next_stream_tag(graph, edge, next_stream_id)); + return ZL_Edge_setDestination(edge, dest); + } + } + + // Unreachable: all SDDL2_Type_kind values are handled above + ZL_ERR(GENERIC, "Unknown SDDL2 type kind: %d", (int)type.kind); +} + +static ZL_Report sddl2_segmenter_error_to_report( + ZL_Segmenter* sctx, + SDDL2_Error err) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + switch (err) { + case SDDL2_OK: + return ZL_returnSuccess(); + + case SDDL2_INVALID_BYTECODE: + ZL_ERR(parameter_invalid, + "SDDL2 bytecode is malformed or contains invalid " + "instructions"); + + case SDDL2_STACK_OVERFLOW: + ZL_ERR(transform_executionFailure, + "SDDL2 VM stack overflow: operation exceeded " + "maximum stack depth"); + + case SDDL2_STACK_UNDERFLOW: + ZL_ERR(transform_executionFailure, + "SDDL2 VM stack underflow: operation attempted to " + "pop from empty stack"); + + case SDDL2_MATH_OVERFLOW: + ZL_ERR(transform_executionFailure, + "SDDL2 VM mathematical operation overflows"); + + case SDDL2_TYPE_MISMATCH: + ZL_ERR(parameter_invalid, + "SDDL2 VM type error: operation received " + "incompatible value types"); + + case SDDL2_LOAD_BOUNDS: + ZL_ERR(corruption, + "SDDL2 VM attempted to load data beyond input " + "buffer bounds"); + + case SDDL2_SEGMENT_BOUNDS: + ZL_ERR(srcSize_tooSmall, + "SDDL2 VM segment extends beyond input buffer " + "boundaries"); + + case SDDL2_LIMIT_EXCEEDED: + ZL_ERR(internalBuffer_tooSmall, + "SDDL2 VM capacity limit exceeded: too many " + "segments or tags"); + + case SDDL2_DIV_ZERO: + ZL_ERR(parameter_invalid, + "SDDL2 VM division by zero in bytecode execution"); + + case SDDL2_ALLOCATION_FAILED: + ZL_ERR(allocation, "SDDL2 VM memory allocation failed"); + + case SDDL2_VALIDATION_FAILED: + ZL_ERR(parameter_invalid, + "SDDL2 VM validation failed: expect_true " + "condition not met"); + } + + ZL_ERR(GENERIC, "SDDL2 VM returned unknown error code: %d", (int)err); +} + +static ZL_Report sddl2_extract_single_destination( + ZL_GraphIDList gidlist, + ZL_GraphID* out_dest) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZL_ERR_IF_NULL(out_dest, GENERIC); + ZL_GraphID dest = ZL_GRAPH_COMPRESS_GENERIC; + ZL_ERR_IF_GT( + gidlist.nbGraphIDs, + 1, + GENERIC, + "SDDL2 supports at most 1 custom graph, got %zu", + gidlist.nbGraphIDs); + if (gidlist.nbGraphIDs != 0) { + ZL_ASSERT_NN(gidlist.graphids); + dest = gidlist.graphids[0]; + } + + *out_dest = dest; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_get_destination_graph( + ZL_Graph* graph, + ZL_GraphID* out_dest) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + return sddl2_extract_single_destination( + ZL_Graph_getCustomGraphs(graph), out_dest); +} + +static ZL_Report sddl2_get_segmenter_destination_graph( + ZL_Segmenter* sctx, + ZL_GraphID* out_dest) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + return sddl2_extract_single_destination( + ZL_Segmenter_getCustomGraphs(sctx), out_dest); +} + +static ZL_Report sddl2_get_replay_start_stream_id(ZL_Graph* graph) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + const ZL_IntParam startStreamParam = ZL_Graph_getLocalIntParam( + graph, SDDL2_REPLAY_START_STREAM_ID_PARAM); + if (startStreamParam.paramId == ZL_LP_INVALID_PARAMID) { + return ZL_returnValue(0); + } + + ZL_ERR_IF_LT( + startStreamParam.paramValue, + 0, + graphParameter_invalid, + "SDDL2 replay start stream id must be non-negative"); + return ZL_returnValue((size_t)startStreamParam.paramValue); +} + +static ZL_Report sddl2_get_replay_segments( + ZL_Graph* graph, + const SDDL2_ReplaySegment** out_segments, + size_t* out_num_segments) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + const ZL_RefParam replaySegments = + ZL_Graph_getLocalRefParam(graph, SDDL2_REPLAY_SEGMENTS_PARAM); + ZL_ERR_IF_NE( + replaySegments.paramId, + SDDL2_REPLAY_SEGMENTS_PARAM, + graphParameter_invalid, + "SDDL2 replay requires a segments parameter"); + ZL_ERR_IF_NE( + replaySegments.paramSize % sizeof(SDDL2_ReplaySegment), + 0, + graphParameter_invalid, + "SDDL2 replay segments parameter has invalid size"); + ZL_ERR_IF( + replaySegments.paramRef == NULL && replaySegments.paramSize != 0, + graphParameter_invalid, + "SDDL2 replay segments parameter has a null payload"); + + *out_segments = (const SDDL2_ReplaySegment*)replaySegments.paramRef; + *out_num_segments = replaySegments.paramSize / sizeof(SDDL2_ReplaySegment); + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_replay_segments( + ZL_Graph* graph, + ZL_Edge* input, + const SDDL2_ReplaySegment* segments, + size_t nbSegments) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + if (nbSegments == 0) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(input, ZL_GRAPH_STORE)); + return ZL_returnSuccess(); + } + ZL_ERR_IF_NULL( + segments, + graphParameter_invalid, + "SDDL2 replay requires a non-null segment slice"); + + size_t* segmentSizes = (size_t*)ZL_Graph_getScratchSpace( + graph, nbSegments * sizeof(size_t)); + ZL_ERR_IF_NULL(segmentSizes, allocation); + + size_t nbNonZero = 0; + for (size_t i = 0; i < nbSegments; i++) { + if (segments[i].size_bytes > 0) { + segmentSizes[nbNonZero++] = segments[i].size_bytes; + } + } + + ZL_TRY_LET( + ZL_EdgeList, + outputs, + ZL_Edge_runSplitNode(input, segmentSizes, nbNonZero)); + ZL_ERR_IF_NE( + outputs.nbEdges, + nbNonZero, + GENERIC, + "SDDL2 replay split produced %zu edges for %zu segments", + outputs.nbEdges, + nbNonZero); + + ZL_GraphID dest = ZL_GRAPH_COMPRESS_GENERIC; + ZL_ERR_IF_ERR(sddl2_get_destination_graph(graph, &dest)); + ZL_TRY_LET( + size_t, + next_stream_id_value, + sddl2_get_replay_start_stream_id(graph)); + ZL_IDType next_stream_id = (ZL_IDType)next_stream_id_value; + + size_t outputIdx = 0; + for (size_t i = 0; i < nbSegments; i++) { + if (segments[i].size_bytes == 0) { + // Skip zero-sized segments but still increment the stream id + ZL_TRY_LET( + size_t, + nbFields, + sddl2_count_primitive_fields(graph, segments[i].type)); + next_stream_id += (unsigned int)nbFields; + continue; + } + ZL_ERR_IF_ERR(sddl2_process_segment( + graph, + outputs.edges[outputIdx++], + segments[i].type, + dest, + &next_stream_id)); + } + + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_process_segment_chunk( + ZL_Segmenter* sctx, + ZL_GraphID destination, + const SDDL2_ReplaySegment* chunkSegments, + size_t nbChunkSegments, + size_t chunkBytes, + ZL_IDType startStreamId) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + /* + * Empty chunks never reach this helper: sddl2_flush_chunk_segments() + * returns early on count == 0, and sddl2_plan_segment_chunks() handles the + * top-level zero-segment case directly. + */ + ZL_ASSERT_GT(nbChunkSegments, 0); + + ZL_ERR_IF_GT( + startStreamId, + (ZL_IDType)INT_MAX, + internalBuffer_tooSmall, + "SDDL2 chunk stream id overflowed"); + int const startStreamParamValue = (int)startStreamId; + const ZL_IntParam intParams[] = { { + .paramId = SDDL2_REPLAY_START_STREAM_ID_PARAM, + .paramValue = startStreamParamValue, + } }; + const ZL_RefParam refParams[] = { { + .paramId = SDDL2_REPLAY_SEGMENTS_PARAM, + .paramRef = chunkSegments, + .paramSize = nbChunkSegments * sizeof(*chunkSegments), + } }; + const ZL_LocalParams chunkParams = { + .intParams = { intParams, 1 }, + .refParams = { refParams, 1 }, + }; + const ZL_GraphID customGraphs[] = { destination }; + const ZL_RuntimeGraphParameters gparams = { + .customGraphs = customGraphs, + .nbCustomGraphs = 1, + .localParams = &chunkParams, + }; + + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &chunkBytes, 1, ZL_GRAPH_SDDL2_CHUNK, &gparams)); + return ZL_returnSuccess(); +} + +/* Mutable state for one in-flight replay chunk. */ +typedef struct { + SDDL2_ReplaySegment* segments; + size_t capacity; + size_t count; + size_t bytes; + ZL_IDType startStreamId; +} SDDL2_ChunkAccumulator; + +static ZL_Report sddl2_append_chunk_replay_slice( + ZL_Segmenter* sctx, + SDDL2_ChunkAccumulator* chunk, + ZL_IDType segmentStreamId, + SDDL2_Type type, + size_t sliceBytes) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(chunk, GENERIC); + ZL_ERR_IF_NULL(chunk->segments, allocation); + ZL_ASSERT_LE(chunk->count, chunk->capacity); + ZL_ERR_IF_GT( + chunk->bytes, + SIZE_MAX - sliceBytes, + internalBuffer_tooSmall, + "SDDL2 chunk byte count overflowed"); + + if (chunk->count == 0) { + chunk->startStreamId = segmentStreamId; + } + ZL_ERR_IF_EQ( + chunk->count, + chunk->capacity, + internalBuffer_tooSmall, + "SDDL2 chunk replay-slice buffer overflow"); + + SDDL2_ReplaySegment const replaySlice = { + .size_bytes = sliceBytes, + .type = type, + }; + chunk->segments[chunk->count] = replaySlice; + chunk->count += 1; + chunk->bytes += sliceBytes; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_flush_chunk_segments( + ZL_Segmenter* sctx, + ZL_GraphID destination, + SDDL2_ChunkAccumulator* chunk) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(chunk, GENERIC); + if (chunk->count == 0) { + return ZL_returnSuccess(); + } + + ZL_ASSERT_NN(chunk->segments); + ZL_ERR_IF_ERR(sddl2_process_segment_chunk( + sctx, + destination, + chunk->segments, + chunk->count, + chunk->bytes, + chunk->startStreamId)); + + chunk->count = 0; + chunk->bytes = 0; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_get_chunk_split_unit_size( + ZL_Segmenter* sctx, + SDDL2_Type type) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + if (type.kind == SDDL2_TYPE_STRUCTURE) { + ZL_ERR_IF_NULL( + type.struct_data, + GENERIC, + "SDDL2 structure segment has null type metadata"); + ZL_ERR_IF_EQ( + type.struct_data->total_size_bytes, + 0, + GENERIC, + "SDDL2 structure segment has zero-sized split units"); + return ZL_returnValue(type.struct_data->total_size_bytes); + } + + // Primitive kinds, including BYTES, split on their element size. + // BYTES intentionally uses 1-byte units so raw byte spans can chunk. + SDDL2_RESULT_OF(size_t) const unitBytes_report = SDDL2_kind_size(type.kind); + ZL_ERR_IF( + SDDL2_isError(unitBytes_report), + GENERIC, + "Failed to derive a split unit size for SDDL2 segment chunking"); + return ZL_returnValue(SDDL2_value(unitBytes_report)); +} + +typedef struct { + ZL_GraphID destination; + size_t remainingInputBytes; + size_t chunkSizeLimit; + ZL_IDType nextStreamId; + SDDL2_ChunkAccumulator chunk; +} SDDL2_ChunkPlanner; + +static ZL_Report sddl2_execute_vm_segments( + ZL_Segmenter* sctx, + const void* bytecode, + size_t bytecode_size, + const void* input_data, + size_t input_size, + SDDL2_Segment_list* out_segments) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(out_segments, GENERIC); + + SDDL2_Segment_list_init( + out_segments, sddl2_segmenter_arena_allocator, sctx); + const SDDL2_Error err = SDDL2_execute_bytecode( + bytecode, bytecode_size, input_data, input_size, out_segments); + if (err != SDDL2_OK) { + SDDL2_Segment_list_destroy(out_segments); + return sddl2_segmenter_error_to_report(sctx, err); + } + + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_resolve_chunk_size_limit( + ZL_Segmenter* sctx, + ZL_IntParam chunkSizeParam, + size_t* out_chunkSizeLimit) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(out_chunkSizeLimit, GENERIC); + + size_t chunkSizeLimit = SDDL2_DEFAULT_CHUNK_BYTE_SIZE; + if (chunkSizeParam.paramId != ZL_LP_INVALID_PARAMID) { + ZL_ERR_IF_LT( + chunkSizeParam.paramValue, + 0, + parameter_invalid, + "SDDL2 chunk size must be non-negative when provided"); + if (chunkSizeParam.paramValue > 0) { + chunkSizeLimit = (size_t)chunkSizeParam.paramValue; + } + } + if (ZL_Segmenter_getCParam(sctx, ZL_CParam_formatVersion) + < ZL_CHUNK_VERSION_MIN) { + chunkSizeLimit = SIZE_MAX; + } + + *out_chunkSizeLimit = chunkSizeLimit; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_init_chunk_planner( + ZL_Segmenter* sctx, + ZL_GraphID destination, + size_t input_size, + size_t chunkSizeLimit, + size_t maxSegments, + SDDL2_ChunkPlanner* out_planner) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(out_planner, GENERIC); + + /* + * Reused as a chunk-local replay-slice buffer. Runtime graph params are + * consumed synchronously by ZL_Segmenter_processChunk(), so the buffer only + * needs to remain valid until each call returns. + */ + SDDL2_ReplaySegment* replaySegments = + (SDDL2_ReplaySegment*)ZL_Segmenter_getScratchSpace( + sctx, maxSegments * sizeof(*replaySegments)); + ZL_ERR_IF_NULL(replaySegments, allocation); + + *out_planner = (SDDL2_ChunkPlanner){ + .destination = destination, + .remainingInputBytes = input_size, + .chunkSizeLimit = chunkSizeLimit, + .nextStreamId = 0, + .chunk = { + .segments = replaySegments, + .capacity = maxSegments, + .count = 0, + .bytes = 0, + .startStreamId = 0, + }, + }; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_reserve_segment_stream_id( + ZL_Segmenter* sctx, + SDDL2_ChunkPlanner* planner, + SDDL2_Type type, + ZL_IDType* out_segmentStreamId) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(planner, GENERIC); + ZL_ERR_IF_NULL(out_segmentStreamId, GENERIC); + + const ZL_IDType maxStreamCount = (ZL_IDType)INT_MAX; + size_t segmentStreams = 0; + ZL_ERR_IF_NOT( + sddl2_try_count_primitive_fields(type, &segmentStreams) + && segmentStreams != 0, + GENERIC, + "Failed to count replay streams for SDDL2 segment"); + ZL_ERR_IF_GT( + segmentStreams, + maxStreamCount, + internalBuffer_tooSmall, + "SDDL2 chunking produced too many logical output streams"); + + ZL_IDType const segmentStreamCount = (ZL_IDType)segmentStreams; + ZL_ERR_IF_GT( + planner->nextStreamId, + maxStreamCount - segmentStreamCount, + internalBuffer_tooSmall, + "SDDL2 chunking exceeded clustering tag capacity"); + + *out_segmentStreamId = planner->nextStreamId; + planner->nextStreamId += segmentStreamCount; + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_plan_split_segment_chunks( + ZL_Segmenter* sctx, + SDDL2_ChunkPlanner* planner, + const SDDL2_Segment* seg, + ZL_IDType segmentStreamId) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(planner, GENERIC); + ZL_ERR_IF_NULL(seg, GENERIC); + + ZL_TRY_LET( + size_t, + elementBytes, + sddl2_get_chunk_split_unit_size(sctx, seg->type)); + ZL_ERR_IF_NE( + seg->size_bytes % elementBytes, + 0, + nodeParameter_invalidValue, + "SDDL2 segment size is not aligned to its split unit size"); + ZL_ERR_IF_GT( + elementBytes, + planner->chunkSizeLimit, + parameter_invalid, + "SDDL2 chunk size %zu cannot fit one element of size %zu", + planner->chunkSizeLimit, + elementBytes); + + size_t const maxElementsPerChunk = planner->chunkSizeLimit / elementBytes; + ZL_ASSERT_GT(maxElementsPerChunk, 0); + size_t const maxSliceBytes = maxElementsPerChunk * elementBytes; + + size_t remainingSegmentBytes = seg->size_bytes; + while (remainingSegmentBytes > 0) { + size_t sliceBytes = remainingSegmentBytes; + if (sliceBytes > maxSliceBytes) { + sliceBytes = maxSliceBytes; + } + + ZL_ERR_IF_ERR(sddl2_append_chunk_replay_slice( + sctx, &planner->chunk, segmentStreamId, seg->type, sliceBytes)); + remainingSegmentBytes -= sliceBytes; + + if (remainingSegmentBytes > 0) { + ZL_ERR_IF_ERR(sddl2_flush_chunk_segments( + sctx, planner->destination, &planner->chunk)); + } + } + + return ZL_returnSuccess(); +} + +static ZL_Report sddl2_plan_segment_chunk( + ZL_Segmenter* sctx, + SDDL2_ChunkPlanner* planner, + const SDDL2_Segment* seg) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(planner, GENERIC); + ZL_ERR_IF_NULL(seg, GENERIC); + ZL_ERR_IF_GT( + seg->size_bytes, + planner->remainingInputBytes, + nodeParameter_invalidValue, + "split instructions do not map exactly the entire input"); + planner->remainingInputBytes -= seg->size_bytes; + + ZL_IDType segmentStreamId = 0; + ZL_ERR_IF_ERR(sddl2_reserve_segment_stream_id( + sctx, planner, seg->type, &segmentStreamId)); + + if (planner->chunkSizeLimit == SIZE_MAX + || seg->size_bytes <= planner->chunkSizeLimit) { + const bool wouldExceedChunk = planner->chunk.count > 0 + && planner->chunkSizeLimit != SIZE_MAX + && (planner->chunk.bytes >= planner->chunkSizeLimit + || seg->size_bytes + > planner->chunkSizeLimit - planner->chunk.bytes); + if (wouldExceedChunk) { + ZL_ERR_IF_ERR(sddl2_flush_chunk_segments( + sctx, planner->destination, &planner->chunk)); + } + + return sddl2_append_chunk_replay_slice( + sctx, + &planner->chunk, + segmentStreamId, + seg->type, + seg->size_bytes); + } + + ZL_ERR_IF_ERR(sddl2_flush_chunk_segments( + sctx, planner->destination, &planner->chunk)); + return sddl2_plan_split_segment_chunks(sctx, planner, seg, segmentStreamId); +} + +static ZL_Report sddl2_plan_segment_chunks( + ZL_Segmenter* sctx, + const SDDL2_Segment_list* segments, + size_t input_size, + size_t chunkSizeLimit, + ZL_GraphID destination) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NULL(segments, GENERIC); + + if (segments->count == 0) { + return ZL_Segmenter_processChunk( + sctx, &input_size, 1, ZL_GRAPH_STORE, NULL); + } + + /* + * Initialize eagerly so static analysis can see all planner fields are + * defined even though the real setup happens through the helper below. + */ + SDDL2_ChunkPlanner planner = { 0 }; + ZL_ERR_IF_ERR(sddl2_init_chunk_planner( + sctx, + destination, + input_size, + chunkSizeLimit, + segments->count, + &planner)); + + for (size_t i = 0; i < segments->count; i++) { + ZL_ERR_IF_ERR( + sddl2_plan_segment_chunk(sctx, &planner, &segments->items[i])); + } + + ZL_ERR_IF_NE( + planner.remainingInputBytes, + 0, + nodeParameter_invalidValue, + "split instructions do not map exactly the entire input"); + ZL_ERR_IF_ERR(sddl2_flush_chunk_segments( + sctx, planner.destination, &planner.chunk)); + + return ZL_returnSuccess(); +} + +ZL_Report SDDL2_segment(ZL_Segmenter* sctx) ZL_NOEXCEPT_FUNC_PTR +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + + ZL_ERR_IF_NE(ZL_Segmenter_numInputs(sctx), 1, node_invalid_input); + + const ZL_Input* input = ZL_Segmenter_getInput(sctx, 0); + ZL_ASSERT_NN(input); + ZL_ERR_IF_NE(ZL_Input_type(input), ZL_Type_serial, node_invalid_input); + + const ZL_RefParam bytecodeParam = + ZL_Segmenter_getLocalRefParam(sctx, SDDL2_BYTECODE_PARAM); + ZL_ERR_IF_NE( + bytecodeParam.paramId, SDDL2_BYTECODE_PARAM, parameter_invalid); + if (bytecodeParam.paramRef == NULL) { + ZL_ERR_IF_NE(bytecodeParam.paramSize, 0, parameter_invalid); + } + + const ZL_IntParam chunkSizeParam = + ZL_Segmenter_getLocalIntParam(sctx, SDDL2_CHUNK_BYTE_SIZE_PARAM); + ZL_GraphID destination = ZL_GRAPH_COMPRESS_GENERIC; + ZL_ERR_IF_ERR(sddl2_get_segmenter_destination_graph(sctx, &destination)); + + const void* input_data = ZL_Input_ptr(input); + const size_t input_size = ZL_Input_contentSize(input); + + size_t chunkSizeLimit = 0; + ZL_ERR_IF_ERR(sddl2_resolve_chunk_size_limit( + sctx, chunkSizeParam, &chunkSizeLimit)); + + SDDL2_Segment_list segments; + ZL_ERR_IF_ERR(sddl2_execute_vm_segments( + sctx, + bytecodeParam.paramRef, + bytecodeParam.paramSize, + input_data, + input_size, + &segments)); + + ZL_Report const planReport = sddl2_plan_segment_chunks( + sctx, &segments, input_size, chunkSizeLimit, destination); + SDDL2_Segment_list_destroy(&segments); + return planReport; +} + +ZL_Report SDDL2_replayChunk(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs) + ZL_NOEXCEPT_FUNC_PTR +{ + ZL_ASSERT_NN(graph); + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + ZL_ERR_IF_NE(nbInputs, 1, graph_invalidNumInputs); + ZL_ASSERT_NN(inputs); + ZL_ASSERT_NN(inputs[0]); + ZL_Edge* const input_edge = inputs[0]; + + const ZL_Input* const input = ZL_Edge_getData(input_edge); + ZL_ASSERT_NN(input); + ZL_ERR_IF_NE(ZL_Input_type(input), ZL_Type_serial, inputType_unsupported); + + const SDDL2_ReplaySegment* segments = NULL; + size_t num_segments = 0; + ZL_ERR_IF_ERR(sddl2_get_replay_segments(graph, &segments, &num_segments)); + + return sddl2_replay_segments(graph, input_edge, segments, num_segments); +} diff --git a/src/openzl/compress/graphs/sddl2/sddl2.h b/src/openzl/compress/graphs/sddl2/sddl2.h new file mode 100644 index 000000000..e1b856cfe --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2.h @@ -0,0 +1,64 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_GRAPHS_SDDL_V2_H +#define OPENZL_GRAPHS_SDDL_V2_H + +#include "openzl/codecs/zl_sddl2.h" +#include "openzl/compress/graphs/sddl2/sddl2_vm.h" +#include "openzl/zl_graph_api.h" +#include "openzl/zl_segmenter.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +#define SDDL2_REPLAY_SEGMENTS_PARAM 7687 +#define SDDL2_REPLAY_START_STREAM_ID_PARAM 7688 + +/** + * Private chunk-replay descriptor passed from `SDDL2_segment()` to the + * `!zl.private.sddl2_chunk` helper graph. + * + * Replay operates on chunk-local byte slices that have already been cut out of + * the original input. It only needs each slice size to re-split the chunk + * input and the corresponding type metadata to replay conversion and routing. + */ +typedef struct { + size_t size_bytes; + SDDL2_Type type; +} SDDL2_ReplaySegment; + +#define SEGM_SDDL2_DESC \ + { \ + .name = "!zl.sddl2", \ + .segmenterFn = SDDL2_segment, \ + .inputTypeMasks = &(const ZL_Type){ ZL_Type_serial }, \ + .numInputs = 1, \ + .lastInputIsVariable = false, \ + } + +/** + * Private SDDL2 chunk replay entrypoint backing `!zl.private.sddl2_chunk`. + * + * The graph expects a slice of precomputed `SDDL2_ReplaySegment` values + * through `SDDL2_REPLAY_SEGMENTS_PARAM`, and may also receive an initial + * clustering stream id through `SDDL2_REPLAY_START_STREAM_ID_PARAM`. + */ +ZL_Report SDDL2_replayChunk(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs) + ZL_NOEXCEPT_FUNC_PTR; + +/** + * Public standard SDDL2 segmenter entrypoint. + * + * This is the implementation behind the standard graph `!zl.sddl2`. It runs + * the SDDL2 VM once over the whole input, determines chunk boundaries on the + * emitted segment list, and dispatches chunk-local work to the private + * `!zl.private.sddl2_chunk` helper graph. + */ +ZL_Report SDDL2_segment(ZL_Segmenter* sctx) ZL_NOEXCEPT_FUNC_PTR; + +#if defined(__cplusplus) +} +#endif + +#endif // OPENZL_GRAPHS_SDDL_V2_H diff --git a/src/openzl/compress/graphs/sddl2/sddl2_disasm.c b/src/openzl/compress/graphs/sddl2/sddl2_disasm.c new file mode 100644 index 000000000..664ab6037 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_disasm.c @@ -0,0 +1,18 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/** + * SDDL2 Disassembler - Implementation + * + * Provides instruction name decoding for debugging purposes. + * The implementation is auto-generated from sddl2_opcodes.def. + */ + +#include "sddl2_disasm.h" + +// Include the auto-generated implementation +#include "openzl/compress/graphs/sddl2/sddl2_disasm_generated.h" + +const char* SDDL2_instruction_name(uint16_t family, uint16_t opcode) +{ + return SDDL2_instruction_name_impl(family, opcode); +} diff --git a/src/openzl/compress/graphs/sddl2/sddl2_disasm.h b/src/openzl/compress/graphs/sddl2/sddl2_disasm.h new file mode 100644 index 000000000..90dc71786 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_disasm.h @@ -0,0 +1,44 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/** + * SDDL2 Disassembler - Instruction Introspection + * + * Provides debugging utilities for SDDL2 bytecode: + * - Instruction name decoding + * - Human-readable instruction formatting + * + * This module is intended for debugging and diagnostic purposes only. + */ + +#ifndef SDDL2_DISASM_H +#define SDDL2_DISASM_H + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Get human-readable name for an instruction. + * + * Decodes a family ID and opcode into an instruction mnemonic string. + * Returns the same mnemonics used in SDDL2 assembly source code. + * + * @param family Family ID (bits 31-16 of instruction word) + * @param opcode Opcode within family (bits 15-0 of instruction word) + * @return Instruction name (e.g., "math.add", "push.zero", "halt") + * or "?.?" / "family.?" if not recognized + * + * Examples: + * SDDL2_instruction_name(0x0002, 0x0001) → "math.add" + * SDDL2_instruction_name(0x0005, 0x0001) → "halt" + * SDDL2_instruction_name(0x0001, 0x0080) → "push.current_pos" + */ +const char* SDDL2_instruction_name(uint16_t family, uint16_t opcode); + +#if defined(__cplusplus) +} +#endif + +#endif // SDDL2_DISASM_H diff --git a/src/openzl/compress/graphs/sddl2/sddl2_disasm_generated.h b/src/openzl/compress/graphs/sddl2/sddl2_disasm_generated.h new file mode 100644 index 000000000..23a4b4834 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_disasm_generated.h @@ -0,0 +1,266 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY +// +// Generated from: src/openzl/compress/graphs/sddl2/sddl2_opcodes.def +// Generated at: 2026-04-13 19:23:35 UTC +// Generator: generate_c_headers.py +// +// To regenerate: python3 src/openzl/compress/graphs/sddl2/generate_c_headers.py + +/** + * SDDL2 Disassembler - Generated Implementation + * + * This file contains the auto-generated instruction name lookup logic. + * It is included by sddl2_disasm.c to provide the implementation of + * SDDL2_instruction_name(). + * + * DO NOT include this file directly - it's included by sddl2_disasm.c + */ + +#ifndef OPENZL_SDDL2_DISASM_GENERATED_H +#define OPENZL_SDDL2_DISASM_GENERATED_H + +#include +#include "openzl/compress/graphs/sddl2/sddl2_opcodes.h" + +// This function implementation is generated from sddl2_opcodes.def +// NOLINTNEXTLINE(facebook-hte-StaticInHeader) +static inline const char* SDDL2_instruction_name_impl( + uint16_t family, + uint16_t opcode) +{ + switch (family) { + case SDDL2_FAMILY_PUSH: + switch (opcode) { + case SDDL2_OP_PUSH_ZERO: + return "push.zero"; + case SDDL2_OP_PUSH_U32: + return "push.u32"; + case SDDL2_OP_PUSH_I32: + return "push.i32"; + case SDDL2_OP_PUSH_I64: + return "push.i64"; + case SDDL2_OP_PUSH_TAG: + return "push.tag"; + case SDDL2_OP_PUSH_CURRENT_POS: + return "push.current_pos"; + case SDDL2_OP_PUSH_REMAINING: + return "push.remaining"; + case SDDL2_OP_PUSH_STACK_DEPTH: + return "push.stack_depth"; + case SDDL2_OP_PUSH_TYPE_BYTES: + return "push.type.bytes"; + case SDDL2_OP_PUSH_TYPE_U8: + return "push.type.u8"; + case SDDL2_OP_PUSH_TYPE_I8: + return "push.type.i8"; + case SDDL2_OP_PUSH_TYPE_U16LE: + return "push.type.u16le"; + case SDDL2_OP_PUSH_TYPE_U16BE: + return "push.type.u16be"; + case SDDL2_OP_PUSH_TYPE_I16LE: + return "push.type.i16le"; + case SDDL2_OP_PUSH_TYPE_I16BE: + return "push.type.i16be"; + case SDDL2_OP_PUSH_TYPE_U32LE: + return "push.type.u32le"; + case SDDL2_OP_PUSH_TYPE_U32BE: + return "push.type.u32be"; + case SDDL2_OP_PUSH_TYPE_I32LE: + return "push.type.i32le"; + case SDDL2_OP_PUSH_TYPE_I32BE: + return "push.type.i32be"; + case SDDL2_OP_PUSH_TYPE_U64LE: + return "push.type.u64le"; + case SDDL2_OP_PUSH_TYPE_U64BE: + return "push.type.u64be"; + case SDDL2_OP_PUSH_TYPE_I64LE: + return "push.type.i64le"; + case SDDL2_OP_PUSH_TYPE_I64BE: + return "push.type.i64be"; + case SDDL2_OP_PUSH_TYPE_F8: + return "push.type.f8"; + case SDDL2_OP_PUSH_TYPE_F16LE: + return "push.type.f16le"; + case SDDL2_OP_PUSH_TYPE_F16BE: + return "push.type.f16be"; + case SDDL2_OP_PUSH_TYPE_BF16LE: + return "push.type.bf16le"; + case SDDL2_OP_PUSH_TYPE_BF16BE: + return "push.type.bf16be"; + case SDDL2_OP_PUSH_TYPE_F32LE: + return "push.type.f32le"; + case SDDL2_OP_PUSH_TYPE_F32BE: + return "push.type.f32be"; + case SDDL2_OP_PUSH_TYPE_F64LE: + return "push.type.f64le"; + case SDDL2_OP_PUSH_TYPE_F64BE: + return "push.type.f64be"; + default: + return "push.?"; + } + + case SDDL2_FAMILY_MATH: + switch (opcode) { + case SDDL2_OP_MATH_ADD: + return "math.add"; + case SDDL2_OP_MATH_SUB: + return "math.sub"; + case SDDL2_OP_MATH_MUL: + return "math.mul"; + case SDDL2_OP_MATH_DIV: + return "math.div"; + case SDDL2_OP_MATH_MOD: + return "math.mod"; + case SDDL2_OP_MATH_ABS: + return "math.abs"; + case SDDL2_OP_MATH_NEG: + return "math.neg"; + case SDDL2_OP_MATH_BIT_AND: + return "math.bit_and"; + case SDDL2_OP_MATH_BIT_OR: + return "math.bit_or"; + case SDDL2_OP_MATH_BIT_XOR: + return "math.bit_xor"; + case SDDL2_OP_MATH_BIT_NOT: + return "math.bit_not"; + default: + return "math.?"; + } + + case SDDL2_FAMILY_CMP: + switch (opcode) { + case SDDL2_OP_CMP_EQ: + return "cmp.eq"; + case SDDL2_OP_CMP_NE: + return "cmp.ne"; + case SDDL2_OP_CMP_LT: + return "cmp.lt"; + case SDDL2_OP_CMP_LE: + return "cmp.le"; + case SDDL2_OP_CMP_GT: + return "cmp.gt"; + case SDDL2_OP_CMP_GE: + return "cmp.ge"; + default: + return "cmp.?"; + } + + case SDDL2_FAMILY_LOGIC: + switch (opcode) { + case SDDL2_OP_LOGIC_AND: + return "logic.and"; + case SDDL2_OP_LOGIC_OR: + return "logic.or"; + case SDDL2_OP_LOGIC_XOR: + return "logic.xor"; + case SDDL2_OP_LOGIC_NOT: + return "logic.not"; + default: + return "logic.?"; + } + + case SDDL2_FAMILY_CONTROL: + switch (opcode) { + case SDDL2_OP_CONTROL_HALT: + return "halt"; + case SDDL2_OP_CONTROL_EXPECT_TRUE: + return "expect_true"; + case SDDL2_OP_CONTROL_JUMP_IF: + return "jump_if"; + case SDDL2_OP_CONTROL_TRACE_START: + return "trace.start"; + default: + return "control.?"; + } + + case SDDL2_FAMILY_LOAD: + switch (opcode) { + case SDDL2_OP_LOAD_U8: + return "load.u8"; + case SDDL2_OP_LOAD_I8: + return "load.i8"; + case SDDL2_OP_LOAD_U16LE: + return "load.u16le"; + case SDDL2_OP_LOAD_I16LE: + return "load.i16le"; + case SDDL2_OP_LOAD_U32LE: + return "load.u32le"; + case SDDL2_OP_LOAD_I32LE: + return "load.i32le"; + case SDDL2_OP_LOAD_I64LE: + return "load.i64le"; + case SDDL2_OP_LOAD_U16BE: + return "load.u16be"; + case SDDL2_OP_LOAD_I16BE: + return "load.i16be"; + case SDDL2_OP_LOAD_U32BE: + return "load.u32be"; + case SDDL2_OP_LOAD_I32BE: + return "load.i32be"; + case SDDL2_OP_LOAD_I64BE: + return "load.i64be"; + default: + return "load.?"; + } + + case SDDL2_FAMILY_STACK: + switch (opcode) { + case SDDL2_OP_STACK_DUP: + return "stack.dup"; + case SDDL2_OP_STACK_OVER: + return "stack.over"; + case SDDL2_OP_STACK_DROP: + return "stack.drop"; + case SDDL2_OP_STACK_SWAP: + return "stack.swap"; + case SDDL2_OP_STACK_ROT: + return "stack.rot"; + case SDDL2_OP_STACK_DROP_IF: + return "stack.drop_if"; + default: + return "stack.?"; + } + + case SDDL2_FAMILY_TYPE: + switch (opcode) { + case SDDL2_OP_TYPE_FIXED_ARRAY: + return "type.fixed_array"; + case SDDL2_OP_TYPE_STRUCTURE: + return "type.structure"; + case SDDL2_OP_TYPE_SIZEOF: + return "type.sizeof"; + default: + return "type.?"; + } + + case SDDL2_FAMILY_VAR: + switch (opcode) { + case SDDL2_OP_VAR_STORE: + return "var.store"; + case SDDL2_OP_VAR_LOAD: + return "var.load"; + default: + return "var.?"; + } + + case SDDL2_FAMILY_CALL: + return "call.?"; + + case SDDL2_FAMILY_SEGMENT: + switch (opcode) { + case SDDL2_OP_SEGMENT_CREATE_UNSPECIFIED: + return "segment.create_unspecified"; + case SDDL2_OP_SEGMENT_CREATE_TAGGED: + return "segment.create_tagged"; + default: + return "segment.?"; + } + + default: + return "?.?"; + } +} + +#endif // OPENZL_SDDL2_DISASM_GENERATED_H diff --git a/src/openzl/compress/graphs/sddl2/sddl2_error.h b/src/openzl/compress/graphs/sddl2/sddl2_error.h new file mode 100644 index 000000000..f4554e80e --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_error.h @@ -0,0 +1,119 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/** + * SDDL2 Error Handling + * + * Provides: + * - SDDL2_Error enum - Unified error codes for all VM operations + * - SDDL2_RESULT_OF(type) - Generic Result type macro + * - SDDL2_TRY() macro - Propagate errors up the call stack + */ + +#ifndef SDDL2_ERROR_H +#define SDDL2_ERROR_H + +#include // size_t + +#include "openzl/zl_macro_helpers.h" // ZS_MACRO_CONCAT +#include "openzl/zl_portability.h" // ZL_NODISCARD + +#if defined(__cplusplus) +extern "C" { +#endif + +/* ============================================================================ + * Error Codes + * ========================================================================= */ + +/** + * VM error codes. + * Used as return values for all VM operations. + */ +typedef enum { + SDDL2_OK = 0, // Success + SDDL2_STACK_OVERFLOW, // Stack capacity exceeded + SDDL2_STACK_UNDERFLOW, // Pop from empty stack + SDDL2_MATH_OVERFLOW, // Arithmetic overflow + SDDL2_TYPE_MISMATCH, // Operation received wrong value type + SDDL2_LOAD_BOUNDS, // Load address out of bounds + SDDL2_SEGMENT_BOUNDS, // Segment extends beyond input buffer + SDDL2_LIMIT_EXCEEDED, // Maximum capacity limit exceeded + SDDL2_DIV_ZERO, // Division by zero + SDDL2_ALLOCATION_FAILED, // Memory allocation failed + SDDL2_INVALID_BYTECODE, // Malformed or invalid bytecode + SDDL2_VALIDATION_FAILED // Runtime validation/assertion failed +} SDDL2_Error; + +/* ============================================================================ + * SDDL2_RESULT_OF - Generic Result Type + * ============================================================================ + * + * Creates a Result type that bundles a value with an error code. + * Eliminates out parameters and triggers warnings if return value is ignored. + * + * Usage: + * SDDL2_RESULT_DECLARE_TYPE(size_t); // declare once + * + * SDDL2_RESULT_OF(size_t) result = some_function(); + * if (SDDL2_isError(result)) { handle_error(SDDL2_error(result)); } + * size_t value = SDDL2_value(result); + */ + +#define SDDL2_RESULT_OF(type) ZS_MACRO_CONCAT(SDDL2_Result_, type) + +#define SDDL2_RESULT_DECLARE_TYPE(type) \ + typedef struct ZL_NODISCARD { \ + SDDL2_Error _code; \ + type _value; \ + } SDDL2_RESULT_OF(type) + +/* Generic accessors */ +#define SDDL2_isError(result) ((result)._code != SDDL2_OK) +#define SDDL2_error(result) ((result)._code) +#define SDDL2_value(result) ((result)._value) + +/* Generic constructors */ +#if defined(__cplusplus) +# define SDDL2_success(type, val) (SDDL2_RESULT_OF(type){ SDDL2_OK, (val) }) +# define SDDL2_failure(type, err) (SDDL2_RESULT_OF(type){ (err), {} }) +#else +# define SDDL2_success(type, val) \ + ((SDDL2_RESULT_OF(type)){ ._code = SDDL2_OK, ._value = (val) }) +# define SDDL2_failure(type, err) ((SDDL2_RESULT_OF(type)){ ._code = (err) }) +#endif + +/* Pre-declare size_t Result type (used in public API) */ +SDDL2_RESULT_DECLARE_TYPE(size_t); + +/* ============================================================================ + * Error Handling Macros + * ========================================================================= */ + +/** + * Try an operation that returns SDDL2_Error, return on failure. + */ +#define SDDL2_TRY(operation) \ + do { \ + SDDL2_Error _err = (operation); \ + if (_err != SDDL2_OK) \ + return _err; \ + } while (0) + +/** + * Declare a variable and assign the result value, or return on error. + * Use in functions that return SDDL2_Error. + */ +#define SDDL2_TRY_LET(type, var, operation) \ + type var; \ + do { \ + SDDL2_RESULT_OF(type) _result = (operation); \ + if (SDDL2_isError(_result)) \ + return SDDL2_error(_result); \ + (var) = SDDL2_value(_result); \ + } while (0) + +#if defined(__cplusplus) +} +#endif + +#endif // SDDL2_ERROR_H diff --git a/src/openzl/compress/graphs/sddl2/sddl2_interpreter.c b/src/openzl/compress/graphs/sddl2/sddl2_interpreter.c new file mode 100644 index 000000000..948eae610 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_interpreter.c @@ -0,0 +1,557 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" +#include "openzl/common/logging.h" +#include "openzl/compress/graphs/sddl2/sddl2_disasm.h" +#include "openzl/compress/graphs/sddl2/sddl2_opcodes.h" +#include "openzl/shared/mem.h" + +/* ============================================================================ + * X-Macro Definitions for Opcode Families + * ========================================================================= */ + +/** + * X-macro pattern for opcode dispatch. + * This approach generates switch cases at compile time, guaranteeing no runtime + * array scans and allowing the same authoritative list to be reused for + * multiple purposes (dispatch, name generation, etc.). + * + * Pattern inspired by: https://news.ycombinator.com/item?id=43472143 + */ + +// clang-format off +#define FOR_EACH_LOAD_OP(_func) \ + _func(SDDL2_OP_LOAD_U8, SDDL2_op_load_u8) \ + _func(SDDL2_OP_LOAD_I8, SDDL2_op_load_i8) \ + _func(SDDL2_OP_LOAD_U16LE, SDDL2_op_load_u16le) \ + _func(SDDL2_OP_LOAD_U16BE, SDDL2_op_load_u16be) \ + _func(SDDL2_OP_LOAD_I16LE, SDDL2_op_load_i16le) \ + _func(SDDL2_OP_LOAD_I16BE, SDDL2_op_load_i16be) \ + _func(SDDL2_OP_LOAD_U32LE, SDDL2_op_load_u32le) \ + _func(SDDL2_OP_LOAD_U32BE, SDDL2_op_load_u32be) \ + _func(SDDL2_OP_LOAD_I32LE, SDDL2_op_load_i32le) \ + _func(SDDL2_OP_LOAD_I32BE, SDDL2_op_load_i32be) \ + _func(SDDL2_OP_LOAD_I64LE, SDDL2_op_load_i64le) \ + _func(SDDL2_OP_LOAD_I64BE, SDDL2_op_load_i64be) + +#define FOR_EACH_MATH_OP(_func) \ + _func(SDDL2_OP_MATH_ADD, SDDL2_op_add) \ + _func(SDDL2_OP_MATH_SUB, SDDL2_op_sub) \ + _func(SDDL2_OP_MATH_MUL, SDDL2_op_mul) \ + _func(SDDL2_OP_MATH_DIV, SDDL2_op_div) \ + _func(SDDL2_OP_MATH_MOD, SDDL2_op_mod) \ + _func(SDDL2_OP_MATH_ABS, SDDL2_op_abs) \ + _func(SDDL2_OP_MATH_NEG, SDDL2_op_neg) \ + _func(SDDL2_OP_MATH_BIT_AND, SDDL2_op_bit_and) \ + _func(SDDL2_OP_MATH_BIT_OR, SDDL2_op_bit_or) \ + _func(SDDL2_OP_MATH_BIT_XOR, SDDL2_op_bit_xor) \ + _func(SDDL2_OP_MATH_BIT_NOT, SDDL2_op_bit_not) + +#define FOR_EACH_CMP_OP(_func) \ + _func(SDDL2_OP_CMP_EQ, SDDL2_op_eq) \ + _func(SDDL2_OP_CMP_NE, SDDL2_op_ne) \ + _func(SDDL2_OP_CMP_LT, SDDL2_op_lt) \ + _func(SDDL2_OP_CMP_LE, SDDL2_op_le) \ + _func(SDDL2_OP_CMP_GT, SDDL2_op_gt) \ + _func(SDDL2_OP_CMP_GE, SDDL2_op_ge) + +#define FOR_EACH_LOGIC_OP(_func) \ + _func(SDDL2_OP_LOGIC_AND, SDDL2_op_and) \ + _func(SDDL2_OP_LOGIC_OR, SDDL2_op_or) \ + _func(SDDL2_OP_LOGIC_XOR, SDDL2_op_xor) \ + _func(SDDL2_OP_LOGIC_NOT, SDDL2_op_not) + +#define FOR_EACH_STACK_OP(_func) \ + _func(SDDL2_OP_STACK_DROP, SDDL2_op_drop) \ + _func(SDDL2_OP_STACK_DROP_IF, SDDL2_op_stack_drop_if) \ + _func(SDDL2_OP_STACK_DUP, SDDL2_op_dup) \ + _func(SDDL2_OP_STACK_SWAP, SDDL2_op_swap) + +#define FOR_EACH_PUSH_TYPE_OP(_func) \ + _func(SDDL2_OP_PUSH_TYPE_BYTES, SDDL2_TYPE_BYTES) \ + _func(SDDL2_OP_PUSH_TYPE_U8, SDDL2_TYPE_U8) \ + _func(SDDL2_OP_PUSH_TYPE_I8, SDDL2_TYPE_I8) \ + _func(SDDL2_OP_PUSH_TYPE_U16LE, SDDL2_TYPE_U16LE) \ + _func(SDDL2_OP_PUSH_TYPE_U16BE, SDDL2_TYPE_U16BE) \ + _func(SDDL2_OP_PUSH_TYPE_I16LE, SDDL2_TYPE_I16LE) \ + _func(SDDL2_OP_PUSH_TYPE_I16BE, SDDL2_TYPE_I16BE) \ + _func(SDDL2_OP_PUSH_TYPE_U32LE, SDDL2_TYPE_U32LE) \ + _func(SDDL2_OP_PUSH_TYPE_U32BE, SDDL2_TYPE_U32BE) \ + _func(SDDL2_OP_PUSH_TYPE_I32LE, SDDL2_TYPE_I32LE) \ + _func(SDDL2_OP_PUSH_TYPE_I32BE, SDDL2_TYPE_I32BE) \ + _func(SDDL2_OP_PUSH_TYPE_U64LE, SDDL2_TYPE_U64LE) \ + _func(SDDL2_OP_PUSH_TYPE_U64BE, SDDL2_TYPE_U64BE) \ + _func(SDDL2_OP_PUSH_TYPE_I64LE, SDDL2_TYPE_I64LE) \ + _func(SDDL2_OP_PUSH_TYPE_I64BE, SDDL2_TYPE_I64BE) \ + _func(SDDL2_OP_PUSH_TYPE_F8, SDDL2_TYPE_F8) \ + _func(SDDL2_OP_PUSH_TYPE_F16LE, SDDL2_TYPE_F16LE) \ + _func(SDDL2_OP_PUSH_TYPE_F16BE, SDDL2_TYPE_F16BE) \ + _func(SDDL2_OP_PUSH_TYPE_BF16LE, SDDL2_TYPE_BF16LE) \ + _func(SDDL2_OP_PUSH_TYPE_BF16BE, SDDL2_TYPE_BF16BE) \ + _func(SDDL2_OP_PUSH_TYPE_F32LE, SDDL2_TYPE_F32LE) \ + _func(SDDL2_OP_PUSH_TYPE_F32BE, SDDL2_TYPE_F32BE) \ + _func(SDDL2_OP_PUSH_TYPE_F64LE, SDDL2_TYPE_F64LE) \ + _func(SDDL2_OP_PUSH_TYPE_F64BE, SDDL2_TYPE_F64BE) + +#define FOR_EACH_VAR_OP(_func) \ + _func(SDDL2_OP_VAR_STORE, SDDL2_op_var_store) \ + _func(SDDL2_OP_VAR_LOAD, SDDL2_op_var_load) + +// clang-format on + +/* ============================================================================ + * X-Macro Dispatch Helpers + * ========================================================================= */ + +/** + * Helper macro to generate a switch case for stack operations. + * Used with FOR_EACH_*_OP macros to generate compile-time dispatch. + */ +#define EMIT_STACK_OP_CASE(_opcode, _handler) \ + case _opcode: \ + err = _handler(&stack, &trace, pc_before); \ + break; + +/** + * Helper macro to generate a switch case for LOAD operations. + * Used with FOR_EACH_LOAD_OP macro to generate compile-time dispatch. + */ +#define EMIT_LOAD_OP_CASE(_opcode, _handler) \ + case _opcode: \ + err = _handler(&stack, &buffer); \ + break; + +/** + * Helper macro to generate a switch case for PUSH_TYPE operations. + * Used with FOR_EACH_PUSH_TYPE_OP macro to generate compile-time dispatch. + */ +#define EMIT_PUSH_TYPE_CASE(_opcode, _type_kind) \ + case _opcode: { \ + SDDL2_Type type = { .kind = _type_kind, .width = 1 }; \ + err = SDDL2_Stack_push(stack, SDDL2_Value_type(type)); \ + found = 1; \ + break; \ + } + +/** + * Dispatch macro for opcode families using X-macro switch. + * Generates a switch statement with cases for all opcodes in the family. + * Returns SDDL2_INVALID_BYTECODE for unknown opcodes. + */ +#define DISPATCH_OP_FAMILY(_family_for_each, _emit_case) \ + do { \ + switch (opcode) { \ + _family_for_each(_emit_case) default \ + : CLEANUP_AND_RETURN(SDDL2_INVALID_BYTECODE); \ + } \ + } while (0) + +/* ============================================================================ + * Immediate Value Reading Helpers + * ========================================================================= */ + +/** + * Read a 32-bit unsigned immediate value from bytecode. + * + * @param bytecode Bytecode buffer + * @param bytecode_size Total bytecode size + * @param pc Program counter (will be advanced by 4 on success) + * @param out_value Output parameter for the read value + * @return SDDL2_OK on success, SDDL2_INVALID_BYTECODE if insufficient bytes + */ +static inline SDDL2_Error read_u32_immediate( + const char* bytecode, + size_t bytecode_size, + size_t* pc, + uint32_t* out_value) +{ + if (*pc + 4 > bytecode_size) { + return SDDL2_INVALID_BYTECODE; + } + *out_value = ZL_readLE32(&bytecode[*pc]); + *pc += 4; + return SDDL2_OK; +} + +/** + * Read a 32-bit signed immediate value from bytecode. + * + * @param bytecode Bytecode buffer + * @param bytecode_size Total bytecode size + * @param pc Program counter (will be advanced by 4 on success) + * @param out_value Output parameter for the read value + * @return SDDL2_OK on success, SDDL2_INVALID_BYTECODE if insufficient bytes + */ +static inline SDDL2_Error read_i32_immediate( + const char* bytecode, + size_t bytecode_size, + size_t* pc, + int32_t* out_value) +{ + if (*pc + 4 > bytecode_size) { + return SDDL2_INVALID_BYTECODE; + } + *out_value = (int32_t)ZL_readLE32(&bytecode[*pc]); + *pc += 4; + return SDDL2_OK; +} + +/** + * Read a 64-bit signed immediate value from bytecode. + * + * @param bytecode Bytecode buffer + * @param bytecode_size Total bytecode size + * @param pc Program counter (will be advanced by 8 on success) + * @param out_value Output parameter for the read value + * @return SDDL2_OK on success, SDDL2_INVALID_BYTECODE if insufficient bytes + */ +static inline SDDL2_Error read_i64_immediate( + const char* bytecode, + size_t bytecode_size, + size_t* pc, + int64_t* out_value) +{ + if (*pc + 8 > bytecode_size) { + return SDDL2_INVALID_BYTECODE; + } + *out_value = (int64_t)ZL_readLE64(&bytecode[*pc]); + *pc += 8; + return SDDL2_OK; +} + +/* ============================================================================ + * PUSH Family Handler + * ========================================================================= */ + +/** + * Handle all PUSH family operations. + * + * The PUSH family includes immediate values, constants, buffer queries, + * and type push operations. + * + * @param opcode The specific PUSH opcode to execute + * @param bytecode Bytecode buffer (for reading immediate values) + * @param bytecode_size Total bytecode size + * @param pc Program counter pointer (advanced when reading immediates) + * @param stack Stack to push values onto + * @param buffer Input buffer (for position/remaining queries) + * @return SDDL2_OK on success, error code on failure + */ +static SDDL2_Error handle_push_family( + uint16_t opcode, + const char* bytecode, + size_t bytecode_size, + size_t* pc, + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer) +{ + SDDL2_Error err = SDDL2_OK; + + if (opcode == SDDL2_OP_PUSH_ZERO) { + err = SDDL2_Stack_push(stack, SDDL2_Value_i64(0)); + } else if (opcode == SDDL2_OP_PUSH_U32) { + uint32_t value; + if ((err = read_u32_immediate(bytecode, bytecode_size, pc, &value)) + != SDDL2_OK) { + return err; + } + err = SDDL2_Stack_push(stack, SDDL2_Value_i64((int64_t)value)); + } else if (opcode == SDDL2_OP_PUSH_I32) { + int32_t value; + if ((err = read_i32_immediate(bytecode, bytecode_size, pc, &value)) + != SDDL2_OK) { + return err; + } + err = SDDL2_Stack_push(stack, SDDL2_Value_i64((int64_t)value)); + } else if (opcode == SDDL2_OP_PUSH_I64) { + int64_t value; + if ((err = read_i64_immediate(bytecode, bytecode_size, pc, &value)) + != SDDL2_OK) { + return err; + } + err = SDDL2_Stack_push(stack, SDDL2_Value_i64(value)); + } else if (opcode == SDDL2_OP_PUSH_TAG) { + uint32_t tag; + if ((err = read_u32_immediate(bytecode, bytecode_size, pc, &tag)) + != SDDL2_OK) { + return err; + } + err = SDDL2_Stack_push(stack, SDDL2_Value_tag(tag)); + } else if (opcode == SDDL2_OP_PUSH_CURRENT_POS) { + err = SDDL2_op_current_pos(stack, buffer); + } else if (opcode == SDDL2_OP_PUSH_REMAINING) { + err = SDDL2_op_remaining(stack, buffer); + } else if (opcode == SDDL2_OP_PUSH_STACK_DEPTH) { + err = SDDL2_op_push_stack_depth(stack); + } else { + // Handle all push.type opcodes via X-macro dispatch + int found = 0; + switch (opcode) { + FOR_EACH_PUSH_TYPE_OP(EMIT_PUSH_TYPE_CASE) + default: + return SDDL2_INVALID_BYTECODE; + } + (void)found; + } + + return err; +} + +/** + * Cleanup helper for SDDL2_execute_bytecode. + * Destroys the tag registry, trace buffer, and returns the specified error + * code. + * + * This macro is function-scoped and undefined after SDDL2_execute_bytecode. + */ +#define CLEANUP_AND_RETURN(error_code) \ + do { \ + SDDL2_Tag_registry_destroy(®istry); \ + SDDL2_Trace_buffer_destroy(&trace); \ + return (error_code); \ + } while (0) + +static SDDL2_Error SDDL2_skip( + const char* bytecode, + size_t bytecode_size, + size_t* pc, + size_t skip_count) +{ + while (skip_count > 0) { + // Need at least the 4-byte instruction header + if (*pc + 4 > bytecode_size) { + return SDDL2_INVALID_BYTECODE; + } + + uint32_t instruction = ZL_readLE32(&bytecode[*pc]); + uint16_t family = (uint16_t)((instruction >> 16) & 0xFFFF); + uint16_t opcode = (uint16_t)(instruction & 0xFFFF); + + // Advance past the instruction header + *pc += 4; + + // Advance past any immediate payload for this opcode + switch (family) { + case SDDL2_FAMILY_PUSH: + switch (opcode) { + case SDDL2_OP_PUSH_U32: + case SDDL2_OP_PUSH_I32: + case SDDL2_OP_PUSH_TAG: + if (*pc + 4 > bytecode_size) { + return SDDL2_INVALID_BYTECODE; + } + *pc += 4; + break; + + case SDDL2_OP_PUSH_I64: + if (*pc + 8 > bytecode_size) { + return SDDL2_INVALID_BYTECODE; + } + *pc += 8; + break; + + default: + // No immediate payload + break; + } + break; + + default: + // Other families currently have no variable-sized immediates + // here + break; + } + + skip_count--; + } + + return SDDL2_OK; +} + +SDDL2_Error SDDL2_execute_bytecode( + const void* bytecode_buffer, + size_t bytecode_size, + const void* input_data, + size_t input_size, + SDDL2_Segment_list* output_segments) +{ + const char* bytecode = bytecode_buffer; + + // Validate input conditions + ZL_ASSERT_NN(output_segments); + if (bytecode == NULL) + ZL_ASSERT_EQ(bytecode_size, 0); + + if (bytecode_size % 4 != 0) { + // Bytecode must be multiple of 4 + return SDDL2_INVALID_BYTECODE; + } + + // Initialize VM state + SDDL2_Stack stack; + SDDL2_Value stack_storage[256]; + stack.items = stack_storage; + stack.capacity = 256; + SDDL2_Stack_init(&stack); + + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, input_data, input_size); + + SDDL2_Var_registers var_regs; + SDDL2_Var_registers_init(&var_regs); + + SDDL2_Tag_registry registry; + // Use same allocator as output_segments (arena in production, NULL in + // tests) + SDDL2_Tag_registry_init( + ®istry, output_segments->alloc_fn, output_segments->alloc_ctx); + + SDDL2_Trace_buffer trace; + // Use same allocator as output_segments + SDDL2_Trace_buffer_init( + &trace, output_segments->alloc_fn, output_segments->alloc_ctx); + + // Program counter (byte offset) + size_t pc = 0; + + // Execution loop + int halted = 0; + while (pc < bytecode_size && !halted) { + // Fetch instruction (32-bit word) + if (pc + 4 > bytecode_size) { + CLEANUP_AND_RETURN( + SDDL2_INVALID_BYTECODE); // Incomplete instruction + } + + uint32_t instruction = ZL_readLE32(&bytecode[pc]); + size_t pc_before = pc; + pc += 4; + + // Decode instruction word + // Bits 31-16: Family ID + // Bits 15-0: Opcode within family + uint16_t family = (uint16_t)((instruction >> 16) & 0xFFFF); + uint16_t opcode = (uint16_t)(instruction & 0xFFFF); + + ZL_DLOG(SEQ, + "[SDDL2] PC=%zu: %s (0x%08x) stack_depth=%zu", + pc_before, + SDDL2_instruction_name(family, opcode), + instruction, + SDDL2_Stack_depth(&stack)); + + // Dispatch + SDDL2_Error err = SDDL2_OK; + + switch (family) { + case SDDL2_FAMILY_CONTROL: + if (opcode == SDDL2_OP_CONTROL_HALT) { + halted = 1; + } else if (opcode == SDDL2_OP_CONTROL_EXPECT_TRUE) { + err = SDDL2_op_expect_true(&stack, &trace); + } else if (opcode == SDDL2_OP_CONTROL_JUMP_IF) { + size_t skip_count = 0; + err = SDDL2_op_jump_if(&stack, &skip_count); + if (err == SDDL2_OK) { + err = SDDL2_skip( + bytecode, bytecode_size, &pc, skip_count); + } + } else if (opcode == SDDL2_OP_CONTROL_TRACE_START) { + SDDL2_Trace_buffer_start(&trace); + } else { + CLEANUP_AND_RETURN( + SDDL2_INVALID_BYTECODE); // Unknown opcode + } + break; + + case SDDL2_FAMILY_PUSH: + err = handle_push_family( + opcode, bytecode, bytecode_size, &pc, &stack, &buffer); + break; + + case SDDL2_FAMILY_SEGMENT: + if (opcode == SDDL2_OP_SEGMENT_CREATE_UNSPECIFIED) { + err = SDDL2_op_segment_create_unspecified( + &stack, &buffer, output_segments); + } else if (opcode == SDDL2_OP_SEGMENT_CREATE_TAGGED) { + err = SDDL2_op_segment_create_tagged( + &stack, &buffer, output_segments, ®istry); + } else { + CLEANUP_AND_RETURN( + SDDL2_INVALID_BYTECODE); // Unknown opcode + } + break; + + // Stack operation families (X-macro dispatch) + case SDDL2_FAMILY_MATH: + DISPATCH_OP_FAMILY(FOR_EACH_MATH_OP, EMIT_STACK_OP_CASE); + break; + + case SDDL2_FAMILY_CMP: + DISPATCH_OP_FAMILY(FOR_EACH_CMP_OP, EMIT_STACK_OP_CASE); + break; + + case SDDL2_FAMILY_LOGIC: + DISPATCH_OP_FAMILY(FOR_EACH_LOGIC_OP, EMIT_STACK_OP_CASE); + break; + + case SDDL2_FAMILY_STACK: + DISPATCH_OP_FAMILY(FOR_EACH_STACK_OP, EMIT_STACK_OP_CASE); + break; + + case SDDL2_FAMILY_TYPE: + if (opcode == SDDL2_OP_TYPE_FIXED_ARRAY) { + err = SDDL2_op_type_fixed_array(&stack); + } else if (opcode == SDDL2_OP_TYPE_STRUCTURE) { + err = SDDL2_op_type_structure( + &stack, + output_segments->alloc_fn, + output_segments->alloc_ctx); + } else if (opcode == SDDL2_OP_TYPE_SIZEOF) { + err = SDDL2_op_type_sizeof(&stack); + } else { + CLEANUP_AND_RETURN( + SDDL2_INVALID_BYTECODE); // Unknown opcode + } + break; + + case SDDL2_FAMILY_LOAD: + DISPATCH_OP_FAMILY(FOR_EACH_LOAD_OP, EMIT_LOAD_OP_CASE); + break; + + // Note: expect_true is part of CONTROL family (ID 0x000A not + // generated for empty EXPECT family) + + case SDDL2_FAMILY_VAR: + if (opcode == SDDL2_OP_VAR_STORE) { + err = SDDL2_op_var_store( + &stack, &trace, pc_before, &var_regs); + } else if (opcode == SDDL2_OP_VAR_LOAD) { + err = SDDL2_op_var_load( + &stack, &trace, pc_before, &var_regs); + } else { + CLEANUP_AND_RETURN(SDDL2_INVALID_BYTECODE); + } + break; + + // Unimplemented families + case SDDL2_FAMILY_CALL: + CLEANUP_AND_RETURN(SDDL2_INVALID_BYTECODE); + } + + // Check for errors + if (err != SDDL2_OK) { + CLEANUP_AND_RETURN(err); + } + } + + // Cleanup + SDDL2_Tag_registry_destroy(®istry); + SDDL2_Trace_buffer_destroy(&trace); + + // Implicit halt: reaching the end of bytecode is treated as a successful + // halt, even if no explicit halt instruction was encountered. + // This makes simple programs more concise and follows the behavior of + // high-level languages where functions can end without explicit return. + return SDDL2_OK; +} diff --git a/src/openzl/compress/graphs/sddl2/sddl2_interpreter.h b/src/openzl/compress/graphs/sddl2/sddl2_interpreter.h new file mode 100644 index 000000000..a8bbbfa46 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_interpreter.h @@ -0,0 +1,48 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_SDDL2_INTERPRETER_H +#define OPENZL_SDDL2_INTERPRETER_H + +#include +#include +#include "openzl/compress/graphs/sddl2/sddl2_vm.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * OpenZL VM Bytecode Interpreter + * + * Executes bytecode programs generated by the SDDL assembler. + * + * Bytecode Format: + * - Instructions are 32-bit words (little-endian) + * - Format: [Family:16bit][Opcode:16bit] + * - Some instructions have immediate operands following the instruction word + */ + +/** + * Execute a bytecode program. + * + * @param bytecode Pointer to bytecode buffer + * @param bytecode_size Size of bytecode in bytes (must be multiple of 4) + * @param input_data Pointer to input data buffer + * @param input_size Size of input data in bytes + * @param output_segments Pointer to segment list to populate (must be + * initialized) + * + * @return SDDL2_OK on success, error code on failure + */ +SDDL2_Error SDDL2_execute_bytecode( + const void* bytecode, + size_t bytecode_size, + const void* input_data, + size_t input_size, + SDDL2_Segment_list* output_segments); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_SDDL2_INTERPRETER_H diff --git a/src/openzl/compress/graphs/sddl2/sddl2_opcodes.def b/src/openzl/compress/graphs/sddl2/sddl2_opcodes.def new file mode 100644 index 000000000..c46802a27 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_opcodes.def @@ -0,0 +1,142 @@ +# OpenZL VM Instruction Set Definition +# +# Single source of truth for SDDL2 VM opcodes - used by: +# - C11 VM (via generated sddl2_opcodes.h) +# - Python assembler (via generated opcodes_generated.py) +# - C++ compiler (via generated sddl2_opcodes.h) +# +# Instruction Format (32-bit word, little-endian): +# - Bits 31-16 (high): Family ID (16 bits) +# - Bits 15-0 (low): Opcode within family (16 bits) +# - Encoding: instruction = (family_id << 16) | opcode_id +# +# Definition Format: +# @family NAME ID "Description" +# full.mnemonic opcode [params] "Description" +# +# Note: Mnemonics should include the full name as used in assembly code. +# Most use family.opcode format (e.g., "push.zero"), but some +# exceptions exist (e.g., "halt" instead of "control.halt"). +# +# Parameter types: u32, i32, i64 +# +# To regenerate C headers: python3 src/openzl/compress/graphs/sddl2/generate_c_headers.py +# To regenerate Python: python3 tools/sddl2/assembler/generate_opcodes.py + +# ============================================================================ +# OPCODE FAMILIES & INSTRUCTIONS +# ============================================================================ + +@family PUSH 0x0001 "Push constants and values onto stack" + push.zero 0x0001 "Push constant value 0 onto stack" + push.u32 0x0002 u32 "Push unsigned 32-bit immediate value onto stack" + push.i32 0x0003 i32 "Push signed 32-bit immediate value onto stack" + push.i64 0x0004 i64 "Push signed 64-bit immediate value onto stack" + push.tag 0x0005 u32 "Push Tag value onto stack" + # VM variables + push.current_pos 0x0080 "Push current input cursor position onto stack as I64" + push.remaining 0x0081 "Push remaining bytes in input buffer onto stack as I64" + push.stack_depth 0x0082 "Push current stack depth (number of elements) onto stack as I64" + # Type opcodes: organized by category with gaps for future expansion + # 0x0100: Base type (raw bytes) + push.type.bytes 0x0100 "Push Type{BYTES, 1} onto stack" + # 0x0110-0x011F: Integer types (16 slots, 14 used, 2 reserved) + push.type.u8 0x0110 "Push Type{U8, 1} onto stack" + push.type.i8 0x0111 "Push Type{I8, 1} onto stack" + push.type.u16le 0x0112 "Push Type{U16LE, 1} onto stack" + push.type.u16be 0x0113 "Push Type{U16BE, 1} onto stack" + push.type.i16le 0x0114 "Push Type{I16LE, 1} onto stack" + push.type.i16be 0x0115 "Push Type{I16BE, 1} onto stack" + push.type.u32le 0x0116 "Push Type{U32LE, 1} onto stack" + push.type.u32be 0x0117 "Push Type{U32BE, 1} onto stack" + push.type.i32le 0x0118 "Push Type{I32LE, 1} onto stack" + push.type.i32be 0x0119 "Push Type{I32BE, 1} onto stack" + push.type.u64le 0x011A "Push Type{U64LE, 1} onto stack" + push.type.u64be 0x011B "Push Type{U64BE, 1} onto stack" + push.type.i64le 0x011C "Push Type{I64LE, 1} onto stack" + push.type.i64be 0x011D "Push Type{I64BE, 1} onto stack" + # 0x0120-0x012F: Reserved for future integer types (16 slots) + # 0x0130-0x013F: Floating point types (16 slots, 9 used, 7 reserved) + push.type.f8 0x0130 "Push Type{F8, 1} onto stack" + push.type.f16le 0x0131 "Push Type{F16LE, 1} onto stack" + push.type.f16be 0x0132 "Push Type{F16BE, 1} onto stack" + push.type.bf16le 0x0133 "Push Type{BF16LE, 1} onto stack" + push.type.bf16be 0x0134 "Push Type{BF16BE, 1} onto stack" + push.type.f32le 0x0135 "Push Type{F32LE, 1} onto stack" + push.type.f32be 0x0136 "Push Type{F32BE, 1} onto stack" + push.type.f64le 0x0137 "Push Type{F64LE, 1} onto stack" + push.type.f64be 0x0138 "Push Type{F64BE, 1} onto stack" + +@family MATH 0x0002 "Arithmetic operations on I64 values" + math.add 0x0001 "Pop two I64 values, push their sum" + math.sub 0x0002 "Pop two I64 values, push their difference (second - first)" + math.mul 0x0003 "Pop two I64 values, push their product" + math.div 0x0004 "Pop two I64 values, push their quotient (second / first)" + math.mod 0x0005 "Pop two I64 values, push their remainder (second % first)" + math.abs 0x0006 "Pop I64 value, push its absolute value" + math.neg 0x0007 "Pop I64 value, push its negation" + math.bit_and 0x0008 "Pop two I64 values, push their bitwise AND" + math.bit_or 0x0009 "Pop two I64 values, push their bitwise OR" + math.bit_xor 0x000A "Pop two I64 values, push their bitwise XOR" + math.bit_not 0x000B "Pop I64 value, push its bitwise NOT" + +@family CMP 0x0003 "Comparison operations on signed I64 values" + cmp.eq 0x0001 "Pop two I64 values, push 1 if equal, 0 otherwise" + cmp.ne 0x0002 "Pop two I64 values, push 1 if not equal, 0 otherwise" + cmp.lt 0x0003 "Pop two I64 values, push 1 if second < first, 0 otherwise" + cmp.le 0x0004 "Pop two I64 values, push 1 if second <= first, 0 otherwise" + cmp.gt 0x0005 "Pop two I64 values, push 1 if second > first, 0 otherwise" + cmp.ge 0x0006 "Pop two I64 values, push 1 if second >= first, 0 otherwise" + +@family LOGIC 0x0004 "Logical operations" + logic.and 0x0001 "Pop two I64 values, push 1 if both non-zero, 0 otherwise (logical AND)" + logic.or 0x0002 "Pop two I64 values, push 1 if either non-zero, 0 otherwise (logical OR)" + logic.xor 0x0003 "Pop two I64 values, push 1 if exactly one is non-zero, 0 otherwise (logical XOR)" + logic.not 0x0004 "Pop I64 value, push 1 if zero, 0 otherwise (logical NOT)" + +@family CONTROL 0x0005 "Control flow operations" + halt 0x0001 "Stop VM execution" + expect_true 0x0002 "Pop I64 value, error if value is 0 (false)" + jump_if 0x0003 "Pop I64 value, pop I64 N, skip next N instructions (advance PC by N*4 bytes) if value is not 0 (true)" + trace.start 0x0004 "Begin collecting execution traces for validation debugging" + +@family LOAD 0x0006 "Load operations" + # 8-bit loads (endianness-independent) + load.u8 0x0001 "Load unsigned 8-bit value from buffer[TOS] and push as I64" + load.i8 0x0002 "Load signed 8-bit value from buffer[TOS] and push as I64" + # Little-endian loads: 0x00__ + load.u16le 0x0010 "Load unsigned 16-bit LE value from buffer[TOS] and push as I64" + load.i16le 0x0011 "Load signed 16-bit LE value from buffer[TOS] and push as I64" + load.u32le 0x0020 "Load unsigned 32-bit LE value from buffer[TOS] and push as I64" + load.i32le 0x0021 "Load signed 32-bit LE value from buffer[TOS] and push as I64" + load.i64le 0x0030 "Load signed 64-bit LE value from buffer[TOS] and push as I64" + # Big-endian loads: 0x01__ + load.u16be 0x0110 "Load unsigned 16-bit BE value from buffer[TOS] and push as I64" + load.i16be 0x0111 "Load signed 16-bit BE value from buffer[TOS] and push as I64" + load.u32be 0x0120 "Load unsigned 32-bit BE value from buffer[TOS] and push as I64" + load.i32be 0x0121 "Load signed 32-bit BE value from buffer[TOS] and push as I64" + load.i64be 0x0130 "Load signed 64-bit BE value from buffer[TOS] and push as I64" + +@family STACK 0x0007 "Stack manipulation operations" + stack.dup 0x0001 "Duplicate top stack value" + stack.over 0x0002 "Copy second stack value to top" + stack.drop 0x0003 "Remove top stack value" + stack.swap 0x0004 "Swap top two stack values" + stack.rot 0x0005 "Rotate top three stack values" + # Conditional operations: 0x0010+ + stack.drop_if 0x0010 "Pop I64 condition, then pop and discard top value if condition is non-zero (true)" + +@family TYPE 0x0008 "Type operations" + type.fixed_array 0x0001 "Pop I64 (count), pop Type, push Type with width multiplied by count" + type.structure 0x0002 "Pop I64 (member_count), pop member_count Types, push composite structure Type" + type.sizeof 0x0010 "Pop Type, push its total size in bytes as I64" + +@family VAR 0x0009 "Variable operations" + var.store 0x0001 "Pop Value, pop I64 (register), store Value in register" + var.load 0x0002 "Pop I64 (register), push Value stored in register" + +@family CALL 0x000B "Function call operations" + +@family SEGMENT 0x000C "Segment creation operations" + segment.create_unspecified 0x0001 "Pop I64 (size_bytes), create unspecified segment" + segment.create_tagged 0x0002 "Pop I64 (element_count), pop Type, pop Tag, create typed segment" diff --git a/src/openzl/compress/graphs/sddl2/sddl2_opcodes.h b/src/openzl/compress/graphs/sddl2/sddl2_opcodes.h new file mode 100644 index 000000000..798af371c --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_opcodes.h @@ -0,0 +1,170 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY +// +// Generated from: src/openzl/compress/graphs/sddl2/sddl2_opcodes.def +// Generated at: 2026-04-13 19:23:35 UTC +// Generator: generate_c_headers.py +// +// To regenerate: python3 src/openzl/compress/graphs/sddl2/generate_c_headers.py + +#ifndef OPENZL_SDDL2_OPCODES_H +#define OPENZL_SDDL2_OPCODES_H + +/** + * SDDL2 VM Opcode Definitions + * + * This file defines the opcode families and instruction opcodes for the SDDL2 + * VM. + * + * Instruction Format: + * - 32-bit instruction word (little-endian) + * - Low 16 bits: Family ID + * - High 16 bits: Opcode within family + */ + +/* ============================================================================ + * OPCODE FAMILIES + * ========================================================================= */ + +enum sddl2_family { + SDDL2_FAMILY_PUSH = 0x0001, /* Push constants and values onto stack */ + SDDL2_FAMILY_MATH = 0x0002, /* Arithmetic operations on I64 values */ + SDDL2_FAMILY_CMP = 0x0003, /* Comparison operations on signed I64 values */ + SDDL2_FAMILY_LOGIC = 0x0004, /* Logical operations */ + SDDL2_FAMILY_CONTROL = 0x0005, /* Control flow operations */ + SDDL2_FAMILY_LOAD = 0x0006, /* Load operations */ + SDDL2_FAMILY_STACK = 0x0007, /* Stack manipulation operations */ + SDDL2_FAMILY_TYPE = 0x0008, /* Type operations */ + SDDL2_FAMILY_VAR = 0x0009, /* Variable operations */ + SDDL2_FAMILY_CALL = 0x000B, /* Function call operations */ + SDDL2_FAMILY_SEGMENT = 0x000C, /* Segment creation operations */ +}; + +/* ============================================================================ + * OPCODES + * ========================================================================= */ + +/* PUSH family (0x0001) - Push constants and values onto stack */ +enum sddl2_opcode_push { + SDDL2_OP_PUSH_ZERO = 0x0001, + SDDL2_OP_PUSH_U32 = 0x0002, /* param: u32 */ + SDDL2_OP_PUSH_I32 = 0x0003, /* param: i32 */ + SDDL2_OP_PUSH_I64 = 0x0004, /* param: i64 */ + SDDL2_OP_PUSH_TAG = 0x0005, /* param: u32 */ + SDDL2_OP_PUSH_CURRENT_POS = 0x0080, + SDDL2_OP_PUSH_REMAINING = 0x0081, + SDDL2_OP_PUSH_STACK_DEPTH = 0x0082, + SDDL2_OP_PUSH_TYPE_BYTES = 0x0100, + SDDL2_OP_PUSH_TYPE_U8 = 0x0110, + SDDL2_OP_PUSH_TYPE_I8 = 0x0111, + SDDL2_OP_PUSH_TYPE_U16LE = 0x0112, + SDDL2_OP_PUSH_TYPE_U16BE = 0x0113, + SDDL2_OP_PUSH_TYPE_I16LE = 0x0114, + SDDL2_OP_PUSH_TYPE_I16BE = 0x0115, + SDDL2_OP_PUSH_TYPE_U32LE = 0x0116, + SDDL2_OP_PUSH_TYPE_U32BE = 0x0117, + SDDL2_OP_PUSH_TYPE_I32LE = 0x0118, + SDDL2_OP_PUSH_TYPE_I32BE = 0x0119, + SDDL2_OP_PUSH_TYPE_U64LE = 0x011A, + SDDL2_OP_PUSH_TYPE_U64BE = 0x011B, + SDDL2_OP_PUSH_TYPE_I64LE = 0x011C, + SDDL2_OP_PUSH_TYPE_I64BE = 0x011D, + SDDL2_OP_PUSH_TYPE_F8 = 0x0130, + SDDL2_OP_PUSH_TYPE_F16LE = 0x0131, + SDDL2_OP_PUSH_TYPE_F16BE = 0x0132, + SDDL2_OP_PUSH_TYPE_BF16LE = 0x0133, + SDDL2_OP_PUSH_TYPE_BF16BE = 0x0134, + SDDL2_OP_PUSH_TYPE_F32LE = 0x0135, + SDDL2_OP_PUSH_TYPE_F32BE = 0x0136, + SDDL2_OP_PUSH_TYPE_F64LE = 0x0137, + SDDL2_OP_PUSH_TYPE_F64BE = 0x0138, +}; + +/* MATH family (0x0002) - Arithmetic operations on I64 values */ +enum sddl2_opcode_math { + SDDL2_OP_MATH_ADD = 0x0001, + SDDL2_OP_MATH_SUB = 0x0002, + SDDL2_OP_MATH_MUL = 0x0003, + SDDL2_OP_MATH_DIV = 0x0004, + SDDL2_OP_MATH_MOD = 0x0005, + SDDL2_OP_MATH_ABS = 0x0006, + SDDL2_OP_MATH_NEG = 0x0007, + SDDL2_OP_MATH_BIT_AND = 0x0008, + SDDL2_OP_MATH_BIT_OR = 0x0009, + SDDL2_OP_MATH_BIT_XOR = 0x000A, + SDDL2_OP_MATH_BIT_NOT = 0x000B, +}; + +/* CMP family (0x0003) - Comparison operations on signed I64 values */ +enum sddl2_opcode_cmp { + SDDL2_OP_CMP_EQ = 0x0001, + SDDL2_OP_CMP_NE = 0x0002, + SDDL2_OP_CMP_LT = 0x0003, + SDDL2_OP_CMP_LE = 0x0004, + SDDL2_OP_CMP_GT = 0x0005, + SDDL2_OP_CMP_GE = 0x0006, +}; + +/* LOGIC family (0x0004) - Logical operations */ +enum sddl2_opcode_logic { + SDDL2_OP_LOGIC_AND = 0x0001, + SDDL2_OP_LOGIC_OR = 0x0002, + SDDL2_OP_LOGIC_XOR = 0x0003, + SDDL2_OP_LOGIC_NOT = 0x0004, +}; + +/* CONTROL family (0x0005) - Control flow operations */ +enum sddl2_opcode_control { + SDDL2_OP_CONTROL_HALT = 0x0001, + SDDL2_OP_CONTROL_EXPECT_TRUE = 0x0002, + SDDL2_OP_CONTROL_JUMP_IF = 0x0003, + SDDL2_OP_CONTROL_TRACE_START = 0x0004, +}; + +/* LOAD family (0x0006) - Load operations */ +enum sddl2_opcode_load { + SDDL2_OP_LOAD_U8 = 0x0001, + SDDL2_OP_LOAD_I8 = 0x0002, + SDDL2_OP_LOAD_U16LE = 0x0010, + SDDL2_OP_LOAD_I16LE = 0x0011, + SDDL2_OP_LOAD_U32LE = 0x0020, + SDDL2_OP_LOAD_I32LE = 0x0021, + SDDL2_OP_LOAD_I64LE = 0x0030, + SDDL2_OP_LOAD_U16BE = 0x0110, + SDDL2_OP_LOAD_I16BE = 0x0111, + SDDL2_OP_LOAD_U32BE = 0x0120, + SDDL2_OP_LOAD_I32BE = 0x0121, + SDDL2_OP_LOAD_I64BE = 0x0130, +}; + +/* STACK family (0x0007) - Stack manipulation operations */ +enum sddl2_opcode_stack { + SDDL2_OP_STACK_DUP = 0x0001, + SDDL2_OP_STACK_OVER = 0x0002, + SDDL2_OP_STACK_DROP = 0x0003, + SDDL2_OP_STACK_SWAP = 0x0004, + SDDL2_OP_STACK_ROT = 0x0005, + SDDL2_OP_STACK_DROP_IF = 0x0010, +}; + +/* TYPE family (0x0008) - Type operations */ +enum sddl2_opcode_type { + SDDL2_OP_TYPE_FIXED_ARRAY = 0x0001, + SDDL2_OP_TYPE_STRUCTURE = 0x0002, + SDDL2_OP_TYPE_SIZEOF = 0x0010, +}; + +/* VAR family (0x0009) - Variable operations */ +enum sddl2_opcode_var { + SDDL2_OP_VAR_STORE = 0x0001, + SDDL2_OP_VAR_LOAD = 0x0002, +}; + +/* SEGMENT family (0x000C) - Segment creation operations */ +enum sddl2_opcode_segment { + SDDL2_OP_SEGMENT_CREATE_UNSPECIFIED = 0x0001, + SDDL2_OP_SEGMENT_CREATE_TAGGED = 0x0002, +}; + +#endif // OPENZL_SDDL2_OPCODES_H diff --git a/src/openzl/compress/graphs/sddl2/sddl2_vm.c b/src/openzl/compress/graphs/sddl2/sddl2_vm.c new file mode 100644 index 000000000..e338b8559 --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_vm.c @@ -0,0 +1,1813 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/** + * OpenZL Execution Engine - VM Implementation + * + * Implementation of non-performance-critical VM functions. + * Performance-critical functions (push/pop) remain inlined in the header. + */ + +#include "sddl2_vm.h" +#include +#include "openzl/common/logging.h" +#include "openzl/shared/mem.h" // ZL_memcpy() for memory operations +#include "openzl/shared/overflow.h" // ZL_overflowMulU32, ZL_overflowAddST, etc. + +/* ============================================================================ + * Stack Operations + * + * Provides basic stack management functions for the SDDL2 VM. + * Performance-critical push/pop operations are inlined in the header. + * These functions handle: initialization, peek, depth queries, and emptiness + * checks. + * ========================================================================= */ + +void SDDL2_Stack_init(SDDL2_Stack* stack) +{ + stack->top = 0; +} + +SDDL2_Error SDDL2_Stack_peek(const SDDL2_Stack* stack, SDDL2_Value* out) +{ + if (stack->top == 0) { + return SDDL2_STACK_UNDERFLOW; + } + *out = stack->items[stack->top - 1]; + return SDDL2_OK; +} + +size_t SDDL2_Stack_depth(const SDDL2_Stack* stack) +{ + return stack->top; +} + +int SDDL2_Stack_is_empty(const SDDL2_Stack* stack) +{ + return stack->top == 0; +} + +/* ============================================================================ + * Memory Allocation Fallback Implementations + * ========================================================================= */ + +#ifdef SDDL2_ENABLE_TEST_ALLOCATOR + +/* Test mode: Real stdlib allocator fallbacks for when alloc_fn is NULL */ +# include + +void* sddl2_fallback_realloc(void* ptr, size_t size) +{ + return realloc(ptr, size); +} + +void sddl2_fallback_free(void* ptr) +{ + free(ptr); +} + +#else + +/* Production mode: No-op/failing stubs (no stdlib dependency) */ +void* sddl2_fallback_realloc(void* ptr, size_t size) +{ + (void)ptr; + (void)size; + return NULL; // Always fail - production must provide allocator +} + +void sddl2_fallback_free(void* ptr) +{ + (void)ptr; + // No-op - production never uses heap allocation +} + +#endif // SDDL2_ENABLE_TEST_ALLOCATOR + +/* ============================================================================ + * Type Utilities + * + * Helper functions for calculating sizes of SDDL2 types. + * - SDDL2_kind_size(): Returns byte size for a given type kind (U8, I16LE, + * etc.) + * - SDDL2_Type_size(): Returns total size accounting for width multiplier + * Handles both primitive types and complex structures. + * ========================================================================= */ + +SDDL2_RESULT_OF(size_t) SDDL2_kind_size(SDDL2_Type_kind kind) +{ + switch (kind) { + case SDDL2_TYPE_U8: + case SDDL2_TYPE_I8: + case SDDL2_TYPE_F8: + return SDDL2_success(size_t, 1); + case SDDL2_TYPE_U16LE: + case SDDL2_TYPE_U16BE: + case SDDL2_TYPE_I16LE: + case SDDL2_TYPE_I16BE: + case SDDL2_TYPE_F16LE: + case SDDL2_TYPE_F16BE: + case SDDL2_TYPE_BF16LE: + case SDDL2_TYPE_BF16BE: + return SDDL2_success(size_t, 2); + case SDDL2_TYPE_U32LE: + case SDDL2_TYPE_U32BE: + case SDDL2_TYPE_I32LE: + case SDDL2_TYPE_I32BE: + case SDDL2_TYPE_F32LE: + case SDDL2_TYPE_F32BE: + return SDDL2_success(size_t, 4); + case SDDL2_TYPE_U64LE: + case SDDL2_TYPE_U64BE: + case SDDL2_TYPE_I64LE: + case SDDL2_TYPE_I64BE: + case SDDL2_TYPE_F64LE: + case SDDL2_TYPE_F64BE: + return SDDL2_success(size_t, 8); + case SDDL2_TYPE_BYTES: + return SDDL2_success(size_t, 1); + case SDDL2_TYPE_STRUCTURE: + default: + return SDDL2_failure(size_t, SDDL2_TYPE_MISMATCH); + } +} + +SDDL2_RESULT_OF(size_t) SDDL2_Type_size(SDDL2_Type type) +{ + if (type.kind == SDDL2_TYPE_STRUCTURE) { + if (type.struct_data == NULL) { + return SDDL2_failure(size_t, SDDL2_TYPE_MISMATCH); + } + return SDDL2_success( + size_t, type.struct_data->total_size_bytes* type.width); + } + + SDDL2_RESULT_OF(size_t) ks = SDDL2_kind_size(type.kind); + if (SDDL2_isError(ks)) { + return ks; + } + return SDDL2_success(size_t, SDDL2_value(ks) * type.width); +} + +/* ============================================================================ + * Memory Management Abstraction Layer (Forward Declarations) + * ========================================================================= */ + +static void* sddl2_realloc( + void* old_ptr, + size_t old_size, + size_t new_size, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx); + +static void sddl2_free(void* ptr, SDDL2_allocator_fn alloc_fn); + +/* ============================================================================ + * Value Construction Helpers + * + * Simple constructors for SDDL2_Value types. + * Used by Generic Stack Helpers (push_i64) and throughout VM operations. + * ========================================================================= */ + +SDDL2_Value SDDL2_Value_i64(int64_t val) +{ + SDDL2_Value v; + v.kind = SDDL2_VALUE_I64; + v.value.as_i64 = val; + return v; +} + +SDDL2_Value SDDL2_Value_tag(uint32_t tag_id) +{ + SDDL2_Value v; + v.kind = SDDL2_VALUE_TAG; + v.value.as_tag = tag_id; + return v; +} + +SDDL2_Value SDDL2_Value_type(SDDL2_Type type) +{ + SDDL2_Value v; + v.kind = SDDL2_VALUE_TYPE; + v.value.as_type = type; + return v; +} + +/* ============================================================================ + * Generic Stack Operation Helpers + * + * Internal helper functions that encapsulate common stack operation patterns: + * - pop_i64(): Pop and validate I64 value + * - pop_positive_i64(): Pop and validate positive I64, convert to size_t + * - pop_tag(), pop_type(): Type-specific pop operations + * - push_i64(): Push I64 result + * These reduce boilerplate and ensure consistent type checking. + * ========================================================================= */ + +/* Result types for internal use (not in public header) */ +SDDL2_RESULT_DECLARE_TYPE(int64_t); +SDDL2_RESULT_DECLARE_TYPE(uint32_t); +SDDL2_RESULT_DECLARE_TYPE(SDDL2_Type); + +/** + * Pop a single I64 value from stack with type checking. + * Common pattern for unary operations and address calculations. + */ +static inline SDDL2_RESULT_OF(int64_t) pop_i64(SDDL2_Stack* stack) +{ + SDDL2_RESULT_OF(SDDL2_Value) r = SDDL2_Stack_pop(stack); + if (SDDL2_isError(r)) { + return SDDL2_failure(int64_t, SDDL2_error(r)); + } + if (SDDL2_value(r).kind != SDDL2_VALUE_I64) { + return SDDL2_failure(int64_t, SDDL2_TYPE_MISMATCH); + } + return SDDL2_success(int64_t, SDDL2_value(r).value.as_i64); +} + +/** + * Pop a non-negative I64 value from stack and convert to size_t. + * Common pattern for count/size operations (>= 0). + * Used by type.fixed_array and type.structure for element/member counts. + */ +static inline SDDL2_RESULT_OF(size_t) pop_positive_i64(SDDL2_Stack* stack) +{ + SDDL2_RESULT_OF(int64_t) r = pop_i64(stack); + if (SDDL2_isError(r)) { + return SDDL2_failure(size_t, SDDL2_error(r)); + } + if (SDDL2_value(r) < 0) { + return SDDL2_failure(size_t, SDDL2_TYPE_MISMATCH); + } + return SDDL2_success(size_t, (size_t)SDDL2_value(r)); +} + +/** + * Pop a Tag value from stack with type checking. + */ +static inline SDDL2_RESULT_OF(uint32_t) pop_tag(SDDL2_Stack* stack) +{ + SDDL2_RESULT_OF(SDDL2_Value) r = SDDL2_Stack_pop(stack); + if (SDDL2_isError(r)) { + return SDDL2_failure(uint32_t, SDDL2_error(r)); + } + if (SDDL2_value(r).kind != SDDL2_VALUE_TAG) { + return SDDL2_failure(uint32_t, SDDL2_TYPE_MISMATCH); + } + return SDDL2_success(uint32_t, SDDL2_value(r).value.as_tag); +} + +/** + * Pop a Type value from stack with type checking. + */ +static inline SDDL2_RESULT_OF(SDDL2_Type) pop_type(SDDL2_Stack* stack) +{ + SDDL2_RESULT_OF(SDDL2_Value) r = SDDL2_Stack_pop(stack); + if (SDDL2_isError(r)) { + return SDDL2_failure(SDDL2_Type, SDDL2_error(r)); + } + if (SDDL2_value(r).kind != SDDL2_VALUE_TYPE) { + return SDDL2_failure(SDDL2_Type, SDDL2_TYPE_MISMATCH); + } + return SDDL2_success(SDDL2_Type, SDDL2_value(r).value.as_type); +} + +/** + * Push an I64 result to stack. + * Common pattern for operations that produce integer results. + */ +static inline SDDL2_Error push_i64(SDDL2_Stack* stack, int64_t value) +{ + return SDDL2_Stack_push(stack, SDDL2_Value_i64(value)); +} + +/* ============================================================================ + * Type Operations + * + * Implements type construction operations for creating complex types: + * - type.fixed_array: Creates array type by multiplying base type width + * - type.structure: Creates structure type from member types + * Both operations include overflow detection and proper memory management. + * ========================================================================= */ + +SDDL2_Error SDDL2_op_type_fixed_array(SDDL2_Stack* stack) +{ + // Pop array count (must be positive) + SDDL2_TRY_LET(size_t, array_count, pop_positive_i64(stack)); + + // Pop the base type from stack + SDDL2_TRY_LET(SDDL2_Type, base_type, pop_type(stack)); + + // Create new type with multiplied width + SDDL2_Type array_type = base_type; + if (ZL_overflowMulU32( + base_type.width, (uint32_t)array_count, &array_type.width)) { + ZL_DLOG(ERROR, + "Width multiplication would overflow: base_width=%u, array_count=%zu", + base_type.width, + array_count); + return SDDL2_MATH_OVERFLOW; + } + + // Push the array type back onto stack + return SDDL2_Stack_push(stack, SDDL2_Value_type(array_type)); +} + +SDDL2_Error SDDL2_op_type_structure( + SDDL2_Stack* stack, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx) +{ + // Pop member count (must be positive) + SDDL2_TRY_LET(size_t, member_count, pop_positive_i64(stack)); + + // Calculate allocation size for structure data + // size = sizeof(header) + member_count * sizeof(SDDL2_Type) + size_t allocation_size = + sizeof(SDDL2_Struct_data) + member_count * sizeof(SDDL2_Type); + + // Allocate structure data + if (alloc_fn == NULL) { + assert(alloc_ctx == NULL); + alloc_fn = sddl2_fallback_realloc; // mostly for tests without arena + } + SDDL2_Struct_data* const struct_data = alloc_fn(alloc_ctx, allocation_size); + + if (struct_data == NULL) { + return SDDL2_ALLOCATION_FAILED; + } + + // Initialize structure metadata + struct_data->member_count = member_count; + struct_data->total_size_bytes = 0; // Will compute below + + // Pop member types from stack (in reverse order since stack is LIFO) + // Stack has: Type₀ Type₁ Type₂ ... Typeₙ₋₁ [top was count] + // We need to pop Typeₙ₋₁ first, then Typeₙ₋₂, etc. + // To get them in order, we pop into array in reverse + for (size_t i = 0; i < member_count; i++) { + size_t index = member_count - 1 - i; // Reverse index + + SDDL2_RESULT_OF(SDDL2_Type) type_result = pop_type(stack); + if (SDDL2_isError(type_result)) { + // When *not* in arena mode (i.e. during tests), + // it's necessary to free() here to avoid memory leaks + sddl2_free(struct_data, alloc_fn); + return SDDL2_error(type_result); + } + struct_data->members[index] = SDDL2_value(type_result); + } + + // Compute total size by summing all member sizes + for (size_t i = 0; i < member_count; i++) { + SDDL2_RESULT_OF(size_t) + const member_size_report = SDDL2_Type_size(struct_data->members[i]); + if (SDDL2_isError(member_size_report)) { + sddl2_free(struct_data, alloc_fn); + return SDDL2_error(member_size_report); + } + size_t const member_size = SDDL2_value(member_size_report); + + // Check for size overflow when adding member_size + if (ZL_overflowAddST( + struct_data->total_size_bytes, + member_size, + &struct_data->total_size_bytes)) { + sddl2_free(struct_data, alloc_fn); + return SDDL2_MATH_OVERFLOW; + } + } + + // Create structure type + SDDL2_Type struct_type = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, // Single instance (can be multiplied + // later with type.fixed_array) + .struct_data = struct_data }; + + // Push structure type onto stack + return SDDL2_Stack_push(stack, SDDL2_Value_type(struct_type)); +} + +SDDL2_Error SDDL2_op_type_sizeof(SDDL2_Stack* stack) +{ + // Pop the type + SDDL2_TRY_LET(SDDL2_Type, type, pop_type(stack)); + SDDL2_TRY_LET(size_t, size, SDDL2_Type_size(type)); + return push_i64(stack, (int64_t)size); +} + +/* ============================================================================ + * Arithmetic Operations + * + * Implements basic arithmetic operations (add, sub, mul, div, mod, abs, neg). + * All operations include overflow detection and return SDDL2_STACK_OVERFLOW + * on overflow. Division operations check for divide-by-zero. + * ========================================================================= */ + +/** + * Helper: Check if addition would overflow. + * Example: add_would_overflow(INT64_MAX, 1) → true + * add_would_overflow(100, 200) → false + */ +static inline bool add_would_overflow(int64_t a, int64_t b) +{ + if (b > 0 && a > INT64_MAX - b) + return true; + if (b < 0 && a < INT64_MIN - b) + return true; + return false; +} + +/** + * Helper: Check if subtraction would overflow. + * Uses: (b < 0 && a > INT64_MAX + b) || (b > 0 && a < INT64_MIN + b) + */ +static inline bool sub_would_overflow(int64_t a, int64_t b) +{ + if (b < 0 && a > INT64_MAX + b) + return true; + if (b > 0 && a < INT64_MIN + b) + return true; + return false; +} + +/** + * Helper: Check if multiplication would overflow. + */ +static inline bool mul_would_overflow(int64_t a, int64_t b) +{ + // Special cases + if (a == 0 || b == 0) + return false; + if (a == 1 || b == 1) + return false; + if (a == -1) + return (b == INT64_MIN); + if (b == -1) + return (a == INT64_MIN); + + // Check if a * b would overflow + if (a > 0) { + if (b > 0) { + return a > INT64_MAX / b; + } else { + return b < INT64_MIN / a; + } + } else { + if (b > 0) { + return a < INT64_MIN / b; + } else { + return a < INT64_MAX / b; + } + } +} + +SDDL2_Error +SDDL2_op_add(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + if (add_would_overflow(a, b)) { + return SDDL2_MATH_OVERFLOW; + } + + return push_i64(stack, a + b); +} + +SDDL2_Error +SDDL2_op_sub(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + if (sub_would_overflow(a, b)) { + return SDDL2_MATH_OVERFLOW; + } + + return push_i64(stack, a - b); +} + +SDDL2_Error +SDDL2_op_mul(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + if (mul_would_overflow(a, b)) { + return SDDL2_MATH_OVERFLOW; + } + + return push_i64(stack, a * b); +} + +SDDL2_Error +SDDL2_op_div(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + // Divide by zero check + if (b == 0) { + return SDDL2_DIV_ZERO; + } + + // Overflow check: INT64_MIN / -1 = overflow + if (a == INT64_MIN && b == -1) { + return SDDL2_MATH_OVERFLOW; + } + + return push_i64(stack, a / b); +} + +SDDL2_Error +SDDL2_op_mod(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + // Divide by zero check + if (b == 0) { + return SDDL2_DIV_ZERO; + } + + return push_i64(stack, a % b); +} + +SDDL2_Error +SDDL2_op_abs(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + // Check for INT64_MIN (abs(INT64_MIN) overflows) + if (a == INT64_MIN) { + return SDDL2_MATH_OVERFLOW; + } + + return push_i64(stack, (a < 0) ? -a : a); +} + +SDDL2_Error +SDDL2_op_neg(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + + // Check for INT64_MIN (negation overflows) + if (a == INT64_MIN) { + return SDDL2_MATH_OVERFLOW; + } + + return push_i64(stack, -a); +} + +/* ============================================================================ + * Comparison Operations (CMP Family) + * + * Implements comparison operations that return 0 (false) or 1 (true): + * - eq, ne: Equality/inequality checks + * - lt, le, gt, ge: Relational comparisons + * All operations work on signed I64 values. + * ========================================================================= */ + +static void SDDL2_log_binary_op( + const char* op_name, + const char* op_symbol, + int64_t a, + int64_t b, + int64_t result, + SDDL2_Trace_buffer* trace, + size_t pc); + +static void SDDL2_log_unary_op( + const char* op_name, + const char* op_symbol, + int64_t a, + int64_t result, + SDDL2_Trace_buffer* trace, + size_t pc); + +SDDL2_Error +SDDL2_op_eq(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a == b); + SDDL2_log_binary_op("cmp.eq", "==", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_ne(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a != b); + SDDL2_log_binary_op("cmp.ne", "!=", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_lt(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a < b); + SDDL2_log_binary_op("cmp.lt", "<", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_le(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a <= b); + SDDL2_log_binary_op("cmp.le", "<=", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_gt(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a > b); + SDDL2_log_binary_op("cmp.gt", ">", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_ge(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a >= b); + SDDL2_log_binary_op("cmp.ge", ">=", a, b, result, trace, pc); + return push_i64(stack, result); +} + +/* ============================================================================ + * Bitwise Operations (MATH Family - bitwise subset) + * + * Implements bitwise operations on I64 values: + * - bit_and: Bitwise AND + * - bit_or: Bitwise OR + * - bit_xor: Bitwise XOR + * - bit_not: Bitwise NOT (one's complement) + * All operations work on the full 64-bit representation. + * ========================================================================= */ + +SDDL2_Error +SDDL2_op_bit_and(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a & b); + SDDL2_log_binary_op("math.bit_and", "&", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_bit_or(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a | b); + SDDL2_log_binary_op("math.bit_or", "|", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_bit_xor(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a ^ b); + SDDL2_log_binary_op("math.bit_xor", "^", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_bit_not(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (~a); + SDDL2_log_unary_op("math.bit_not", "~", a, result, trace, pc); + return push_i64(stack, result); +} + +/* ============================================================================ + * Logical Operations (LOGIC Family) + * + * Implements boolean/logical operations on I64 values: + * - and: Logical AND (returns 0 or 1) + * - or: Logical OR (returns 0 or 1) + * - xor: Logical XOR (returns 0 or 1) + * - not: Logical NOT (returns 0 or 1) + * All operations treat 0 as false and non-zero as true. + * ========================================================================= */ + +SDDL2_Error +SDDL2_op_and(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a && b); + SDDL2_log_binary_op("logic.and", "&&", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_or(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (a || b); + SDDL2_log_binary_op("logic.or", "||", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_xor(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, b, pop_i64(stack)); + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = ((a && !b) || (!a && b)); + SDDL2_log_binary_op("logic.xor", "^^", a, b, result, trace, pc); + return push_i64(stack, result); +} + +SDDL2_Error +SDDL2_op_not(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + SDDL2_TRY_LET(int64_t, a, pop_i64(stack)); + int64_t result = (!a); + SDDL2_log_unary_op("logic.not", "!", a, result, trace, pc); + return push_i64(stack, result); +} + +/* ============================================================================ + * Stack Manipulation Operations (STACK Family) + * + * Provides basic stack manipulation primitives: + * - drop: Remove top value from stack + * - dup: Duplicate top value + * - swap: Exchange top two values + * These are type-agnostic and work with any stack value. + * ========================================================================= */ + +SDDL2_Error +SDDL2_op_drop(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + return SDDL2_error(SDDL2_Stack_pop(stack)); +} + +SDDL2_Error +SDDL2_op_stack_drop_if(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, condition, pop_i64(stack)); + + if (condition != 0) { + return SDDL2_error(SDDL2_Stack_pop(stack)); + } + + return SDDL2_OK; +} + +SDDL2_Error SDDL2_op_jump_if(SDDL2_Stack* stack, size_t* out_skip_count) +{ + SDDL2_TRY_LET(int64_t, condition, pop_i64(stack)); + SDDL2_TRY_LET(size_t, n, pop_positive_i64(stack)); + + if (condition != 0) { + *out_skip_count = n; + } else { + *out_skip_count = 0; + } + + return SDDL2_OK; +} + +SDDL2_Error +SDDL2_op_dup(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + SDDL2_Value val; + SDDL2_TRY(SDDL2_Stack_peek(stack, &val)); + return SDDL2_Stack_push(stack, val); +} + +SDDL2_Error +SDDL2_op_swap(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc) +{ + (void)trace; + (void)pc; + + if (stack->top < 2) { + return SDDL2_STACK_UNDERFLOW; + } + + SDDL2_Value temp = stack->items[stack->top - 1]; + stack->items[stack->top - 1] = stack->items[stack->top - 2]; + stack->items[stack->top - 2] = temp; + + return SDDL2_OK; +} + +/* ============================================================================ + * Variable Operations (VAR Family) + * + * Provides register-based variable storage: + * - var.store: Pop value + register index, store value in register + * - var.load: Pop register index, push value from register + * These enable saving and restoring intermediate values across stack + * operations without complex stack manipulation. + * ========================================================================= */ + +void SDDL2_Var_registers_init(SDDL2_Var_registers* regs) +{ + for (size_t i = 0; i < SDDL2_VAR_REGISTER_COUNT; i++) { + regs->occupied[i] = 0; + } +} + +SDDL2_Error SDDL2_op_var_store( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc, + SDDL2_Var_registers* regs) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, reg_index, pop_i64(stack)); + + if (reg_index < 0 || reg_index >= SDDL2_VAR_REGISTER_COUNT) { + return SDDL2_LOAD_BOUNDS; + } + + SDDL2_TRY_LET(SDDL2_Value, val, SDDL2_Stack_pop(stack)); + + regs->values[reg_index] = val; + regs->occupied[reg_index] = 1; + + return SDDL2_OK; +} + +SDDL2_Error SDDL2_op_var_load( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc, + SDDL2_Var_registers* regs) +{ + (void)trace; + (void)pc; + + SDDL2_TRY_LET(int64_t, reg_index, pop_i64(stack)); + + if (reg_index < 0 || reg_index >= SDDL2_VAR_REGISTER_COUNT) { + return SDDL2_LOAD_BOUNDS; + } + + if (!regs->occupied[reg_index]) { + return SDDL2_LOAD_BOUNDS; + } + + return SDDL2_Stack_push(stack, regs->values[reg_index]); +} + +/* ============================================================================ + * Validation Operations (EXPECT Family) + * + * Provides runtime validation and assertion operations: + * - expect_true: Verify that a condition (I64 value) is non-zero + * These enable data validation and contract checking in SDDL2 programs. + * Combined with comparison and logic operations, they can express complex + * validation rules (e.g., cmp.eq + expect_true validates equality). + * ========================================================================= */ + +static void SDDL2_log_expect_true_failure( + const SDDL2_Trace_buffer* trace, + const SDDL2_Stack* stack); + +SDDL2_Error SDDL2_op_expect_true(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace) +{ + SDDL2_TRY_LET(int64_t, value, pop_i64(stack)); + + if (value == 0) { + SDDL2_log_expect_true_failure(trace, stack); + + // Reset trace buffer (stop and clear) - NULL-safe + SDDL2_Trace_buffer_reset(trace); + + return SDDL2_VALIDATION_FAILED; + } + + // Success - reset trace buffer (stop and clear) - NULL-safe + SDDL2_Trace_buffer_reset(trace); + + return SDDL2_OK; +} + +/* ============================================================================ + * Input Cursor Operations + * + * Provides operations for reading data from the input: + * - Cursor initialization and query operations (current_pos, remaining) + * - Load operations for various integer types (u8, i8, u16le/be, etc.) + * All load operations include bounds checking and return SDDL2_LOAD_BOUNDS on + * error. Supports both little-endian (le) and big-endian (be) byte orders. + * ========================================================================= */ + +void SDDL2_Input_cursor_init( + SDDL2_Input_cursor* buffer, + const void* data, + size_t size) +{ + buffer->data = data; + buffer->size = size; + buffer->current_pos = 0; +} + +/** + * Helper: Check bounds for load operations. + * Validates that an address and size fit within the buffer. + */ +static inline SDDL2_Error +check_load_bounds(const SDDL2_Input_cursor* buffer, int64_t addr, size_t size) +{ + if (addr < 0 || (size_t)addr + size > buffer->size) { + return SDDL2_LOAD_BOUNDS; + } + return SDDL2_OK; +} + +SDDL2_Error SDDL2_op_current_pos( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer) +{ + // Push current cursor position as I64 + return push_i64(stack, (int64_t)buffer->current_pos); +} + +SDDL2_Error SDDL2_op_remaining( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer) +{ + size_t remaining = buffer->size - buffer->current_pos; + return push_i64(stack, (int64_t)remaining); +} + +SDDL2_Error SDDL2_op_push_stack_depth(SDDL2_Stack* stack) +{ + return push_i64(stack, (int64_t)stack->top); +} + +/** + * Macro-generated load operations. + * All 12 load operations follow identical control flow with only size and + * read expressions differing. Using a macro ensures consistency and reduces + * boilerplate from ~150 lines to ~40 lines. + */ +static void SDDL2_log_load(const char* op_name, int64_t addr, int64_t value); + +#define DEFINE_LOAD_OP(name, size, read_expr) \ + SDDL2_Error SDDL2_op_load_##name( \ + SDDL2_Stack* stack, const SDDL2_Input_cursor* buffer) \ + { \ + SDDL2_TRY_LET(int64_t, addr, pop_i64(stack)); \ + SDDL2_TRY(check_load_bounds(buffer, addr, size)); \ + const uint8_t* bytes = (const uint8_t*)buffer->data; \ + int64_t value = (int64_t)(read_expr); \ + SDDL2_log_load(#name, addr, value); \ + return push_i64(stack, value); \ + } + +// 8-bit loads +DEFINE_LOAD_OP(u8, 1, bytes[addr]) +DEFINE_LOAD_OP(i8, 1, (int8_t)bytes[addr]) + +// 16-bit loads (little-endian) +DEFINE_LOAD_OP(u16le, 2, ZL_readLE16(&bytes[addr])) +DEFINE_LOAD_OP(i16le, 2, (int16_t)ZL_readLE16(&bytes[addr])) + +// 16-bit loads (big-endian) +DEFINE_LOAD_OP(u16be, 2, ZL_readBE16(&bytes[addr])) +DEFINE_LOAD_OP(i16be, 2, (int16_t)ZL_readBE16(&bytes[addr])) + +// 32-bit loads (little-endian) +DEFINE_LOAD_OP(u32le, 4, ZL_readLE32(&bytes[addr])) +DEFINE_LOAD_OP(i32le, 4, (int32_t)ZL_readLE32(&bytes[addr])) + +// 32-bit loads (big-endian) +DEFINE_LOAD_OP(u32be, 4, ZL_readBE32(&bytes[addr])) +DEFINE_LOAD_OP(i32be, 4, (int32_t)ZL_readBE32(&bytes[addr])) + +// 64-bit loads +DEFINE_LOAD_OP(i64le, 8, (int64_t)ZL_readLE64(&bytes[addr])) +DEFINE_LOAD_OP(i64be, 8, (int64_t)ZL_readBE64(&bytes[addr])) + +#undef DEFINE_LOAD_OP + +/* ============================================================================ + * Segment Operations + * + * Implements operations for creating data segments in the output: + * - segment.create.unspecified: Create byte segment without tag + * - segment.create.tagged: Create typed segment with tag identifier + * Segments are automatically merged when consecutive with same tag/type. + * Uses segment_create_internal() as unified implementation. + * ========================================================================= */ + +/* ============================================================================ + * Memory Management Abstraction Layer + * + * Provides unified memory management supporting both arena and heap allocation: + * - ensure_capacity(): Generic dynamic array growth with 2x strategy + * - sddl2_realloc(): Arena/heap-aware realloc abstraction + * - sddl2_free(): Arena/heap-aware free abstraction + * Arena mode: Allocates new memory and copies (no-op on free) + * Heap mode: Uses standard realloc/free for testing + * ========================================================================= */ + +// Forward declarations +static int tag_registry_register( + SDDL2_Tag_registry* registry, + uint32_t tag, + SDDL2_Type type); + +/** + * Initial capacity for dynamic arrays when growing from zero. + * This is primarily a fail-safe since init functions now pre-allocate capacity. + * Set to 32 to reduce early reallocations if pre-allocation fails. + */ +#define SDDL2_DYNAMIC_ARRAY_INITIAL_CAPACITY 32 + +/** + * Generic dynamic array capacity growth helper. + * Implements 2x growth strategy with configurable limits. + * + * @param items_ptr_addr Address of items array pointer (as void*) - will be + * updated on success + * @param count Current item count + * @param capacity_ptr Pointer to current capacity (will be updated on success) + * @param element_size Size of each element in bytes + * @param max_capacity Maximum allowed capacity + * @param alloc_fn Allocator function + * @param alloc_ctx Allocator context + * @return 1 on success, 0 on failure (max capacity reached or allocation + * failed) + */ +static int ensure_capacity( + void* items_ptr_addr, + size_t count, + size_t* capacity_ptr, + size_t element_size, + size_t max_capacity, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx) +{ + void** items_ptr = (void**)items_ptr_addr; + + // Already have capacity + if (count < *capacity_ptr) { + return 1; + } + + // Check against maximum capacity limit + if (*capacity_ptr >= max_capacity) { + return 0; // Maximum capacity reached + } + + // Calculate new capacity: 2x growth + size_t new_capacity = (*capacity_ptr == 0) + ? SDDL2_DYNAMIC_ARRAY_INITIAL_CAPACITY + : (*capacity_ptr * 2); + + // Cap at maximum capacity + if (new_capacity > max_capacity) { + new_capacity = max_capacity; + } + + // Reallocate + size_t old_size = count * element_size; + size_t new_size = new_capacity * element_size; + + void* new_items = + sddl2_realloc(*items_ptr, old_size, new_size, alloc_fn, alloc_ctx); + + if (!new_items) { + return 0; // Allocation failed + } + + // Update pointers + *items_ptr = new_items; + *capacity_ptr = new_capacity; + return 1; +} + +/** + * Unified realloc-like abstraction supporting both arena and heap allocation. + * + * @param old_ptr Existing allocation (NULL for initial allocation) + * @param old_size Size of old allocation in bytes (used for copying) + * @param new_size Desired new size in bytes + * @param alloc_fn Allocator function (NULL = use fallback) + * @param alloc_ctx Allocator context (e.g., ZL_Graph* for arena allocation) + * @return New allocation, or NULL on failure + */ +static void* sddl2_realloc( + void* old_ptr, + size_t old_size, + size_t new_size, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx) +{ + if (alloc_fn != NULL) { + // Arena path: allocate new + copy old data + void* new_ptr = alloc_fn(alloc_ctx, new_size); + if (new_ptr == NULL) { + return NULL; // Allocation failed + } + + // Copy old data if it exists + assert(new_size >= old_size); + if (old_ptr != NULL && old_size > 0) { + ZL_memcpy(new_ptr, old_ptr, old_size); + } + + return new_ptr; + } else { + // Fallback: real realloc (test mode) or NULL (production mode) + return sddl2_fallback_realloc(old_ptr, new_size); + } +} + +/** + * Unified free abstraction supporting both arena and heap allocation. + * + * @param ptr Pointer to free (can be NULL) + * @param alloc_fn Allocator function (NULL = use fallback) + */ +static void sddl2_free(void* ptr, SDDL2_allocator_fn alloc_fn) +{ + if (alloc_fn == NULL) { + sddl2_fallback_free(ptr); + } + // Arena-allocated memory: no-op (arena handles cleanup) +} + +/* ============================================================================ + * Segment Registry Operations + * + * Manages the list of all created segments: + * - Stores segments in creation order + * - Supports dynamic growth with pre-allocation for arena allocators + * - Automatically merges consecutive segments with same tag/type + * - Each segment tracks: tag, start position, size, and type information + * Used during SDDL2 execution to build the segment table. + * ========================================================================= */ + +void SDDL2_Segment_list_init( + SDDL2_Segment_list* list, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx) +{ + list->items = NULL; + list->count = 0; + list->capacity = 0; + list->alloc_fn = alloc_fn; + list->alloc_ctx = alloc_ctx; + + // Pre-allocate initial capacity for arena allocators + if (alloc_fn != NULL) { + size_t initial_size = + + SDDL2_SEGMENT_INITIAL_CAPACITY * sizeof(SDDL2_Segment); + list->items = (SDDL2_Segment*)alloc_fn(alloc_ctx, initial_size); + if (list->items != NULL) { + list->capacity = SDDL2_SEGMENT_INITIAL_CAPACITY; + } + // If allocation fails, capacity remains 0 and will be handled + // by segment_list_ensure_capacity() when first segment is added + } +} + +void SDDL2_Segment_list_destroy(SDDL2_Segment_list* list) +{ + sddl2_free(list->items, list->alloc_fn); + list->items = NULL; + list->count = 0; + list->capacity = 0; +} + +/** + * Helper: Ensure segment list has capacity for at least one more item. + * Grows by 2x when needed. + * + * Uses the unified sddl2_realloc() abstraction which handles both + * arena allocation and heap allocation transparently. + * + * Returns 0 if capacity limit is exceeded or allocation fails. + */ +static int segment_list_ensure_capacity(SDDL2_Segment_list* list) +{ + return ensure_capacity( + (void*)&list->items, + list->count, + &list->capacity, + sizeof(SDDL2_Segment), + SDDL2_SEGMENT_MAX_CAPACITY, + list->alloc_fn, + list->alloc_ctx); +} + +/** + * Internal helper: Create a segment with tag, type, and element count. + * Handles validation, merging, and cursor advancement. + * + * This is the unified implementation for both tagged and unspecified segments. + * An unspecified segment is just a tagged segment with tag=0 and type=BYTES. + * + * @param tag Segment tag (0 for unspecified) + * @param type Segment type descriptor + * @param element_count Number of elements (size is element_count * type_size) + * @param buffer Input buffer (cursor will be advanced) + * @param segments Segment list (segment will be appended or merged) + * @param registry Tag registry (tag will be registered if non-zero) + * @return SDDL2_OK on success, error code on failure + */ +static SDDL2_Error segment_create_internal( + uint32_t tag, + SDDL2_Type type, + size_t element_count, + SDDL2_Input_cursor* buffer, + SDDL2_Segment_list* segments, + SDDL2_Tag_registry* registry) +{ + // Calculate actual size in bytes + // total_type_size = size of one instance of the type (including width) + // segment_size = element_count × total_type_size + SDDL2_TRY_LET(size_t, total_type_size, SDDL2_Type_size(type)); + + // Check for overflow in element_count * total_type_size multiplication + size_t size_bytes; + if (ZL_overflowMulST(element_count, total_type_size, &size_bytes)) { + return SDDL2_MATH_OVERFLOW; // Size overflow + } + + // Bounds check: segment must fit in remaining input + if (buffer->current_pos + size_bytes > buffer->size) { + return SDDL2_SEGMENT_BOUNDS; + } + + // Register tag if non-zero (tagged segments only) + if (tag != 0) { + if (!tag_registry_register(registry, tag, type)) { + return SDDL2_TYPE_MISMATCH; // Tag already registered with different + // type, or capacity limit exceeded, or + // allocation failed + } + } + + // Check if we can merge with the last segment + // Merge conditions: same tag AND same type AND consecutive positions + // This applies to ALL segments, including unspecified ones (tag=0) + // Unspecified segments merge to reduce overhead for "leftover" data + if (segments->count > 0) { + SDDL2_Segment* last = &segments->items[segments->count - 1]; + size_t expected_pos = last->start_pos + last->size_bytes; + + if (last->tag == tag && expected_pos == buffer->current_pos) { + // If tags match, types MUST match due to tag-type uniqueness: + // - Non-zero tags: enforced by tag_registry_register() above + // - Tag 0 (unspecified): always BYTES type by definition + assert(last->type.kind == type.kind); + assert(last->type.width == type.width); + assert(type.kind != SDDL2_TYPE_STRUCTURE + || last->type.struct_data == type.struct_data); + + // MERGE: Just extend the last segment's size + last->size_bytes += size_bytes; + buffer->current_pos += size_bytes; + return SDDL2_OK; + } + } + + // Cannot merge - create new segment + if (!segment_list_ensure_capacity(segments)) { + return SDDL2_LIMIT_EXCEEDED; // Capacity limit exceeded or allocation + // failed + } + + SDDL2_Segment seg; + seg.tag = tag; + seg.start_pos = buffer->current_pos; + seg.size_bytes = size_bytes; + seg.type = type; + + segments->items[segments->count++] = seg; + + // Advance cursor + buffer->current_pos += size_bytes; + + return SDDL2_OK; +} + +SDDL2_Error SDDL2_op_segment_create_unspecified( + SDDL2_Stack* stack, + SDDL2_Input_cursor* buffer, + SDDL2_Segment_list* segments) +{ + // Pop size from stack + SDDL2_TRY_LET(int64_t, size_i64, pop_i64(stack)); + + // Validate size (must be non-negative) + if (size_i64 < 0) { + return SDDL2_TYPE_MISMATCH; + } + + // Unspecified segment = tag 0, type BYTES + SDDL2_Type bytes_type = { .kind = SDDL2_TYPE_BYTES, .width = 1 }; + + // Delegate to internal helper (registry can be NULL since tag=0) + return segment_create_internal( + 0, bytes_type, (size_t)size_i64, buffer, segments, NULL); +} + +/* ============================================================================ + * Tag Registry Operations + * + * Manages the set of unique non-zero tags used in segments: + * - Tracks all unique tags in creation order + * - Prevents duplicate tag registration + * - Supports dynamic growth with pre-allocation for arena allocators + * - Used by tagged segment creation to ensure tag uniqueness + * Tags serve as identifiers to reference specific data regions. + * ========================================================================= */ + +void SDDL2_Tag_registry_init( + SDDL2_Tag_registry* registry, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx) +{ + registry->entries = NULL; + registry->count = 0; + registry->capacity = 0; + registry->alloc_fn = alloc_fn; + registry->alloc_ctx = alloc_ctx; + + // Pre-allocate initial capacity for arena allocators + if (alloc_fn != NULL) { + size_t initial_size = + SDDL2_TAG_INITIAL_CAPACITY * sizeof(SDDL2_Tag_entry); + registry->entries = (SDDL2_Tag_entry*)alloc_fn(alloc_ctx, initial_size); + if (registry->entries != NULL) { + registry->capacity = SDDL2_TAG_INITIAL_CAPACITY; + } + // If allocation fails, capacity remains 0 and will be handled + // by tag_registry_register() when first tag is registered + } +} + +void SDDL2_Tag_registry_destroy(SDDL2_Tag_registry* registry) +{ + sddl2_free(registry->entries, registry->alloc_fn); + registry->entries = NULL; + registry->count = 0; + registry->capacity = 0; +} + +/** + * Helper: Compare two types for equality. + * Returns true if types match (kind, width, and struct_data for structures). + */ +static bool types_equal(SDDL2_Type a, SDDL2_Type b) +{ + if (a.kind != b.kind || a.width != b.width) { + return false; + } + + // For structures, also compare struct_data pointers + if (a.kind == SDDL2_TYPE_STRUCTURE) { + return a.struct_data == b.struct_data; + } + + return true; +} + +/** + * Helper: Register a tag with its associated type. + * If tag already exists, validates that the type matches. + * Returns 1 on success, 0 on allocation failure or type mismatch. + * + * Semantic constraint: A tag uniquely identifies a type. + * Attempting to use the same tag with different types is an error. + */ +static int tag_registry_register( + SDDL2_Tag_registry* registry, + uint32_t tag, + SDDL2_Type type) +{ + // Check if tag is already registered + for (size_t i = 0; i < registry->count; i++) { + if (registry->entries[i].tag == tag) { + // Tag exists - verify type matches + if (!types_equal(registry->entries[i].type, type)) { + // Type mismatch! Same tag used with different types + ZL_DLOG(ERROR, + "Tag %u already registered with different type " + "(existing kind=%d width=%u, new kind=%d width=%u)", + tag, + registry->entries[i].type.kind, + registry->entries[i].type.width, + type.kind, + type.width); + return 0; // Type mismatch error + } + return 1; // Already registered with same type - OK + } + } + + // Tag not yet registered - add it + if (!ensure_capacity( + (void*)®istry->entries, + registry->count, + ®istry->capacity, + sizeof(SDDL2_Tag_entry), + SDDL2_TAG_MAX_CAPACITY, + registry->alloc_fn, + registry->alloc_ctx)) { + return 0; // Allocation failed or capacity limit reached + } + + // Register tag with type + registry->entries[registry->count].tag = tag; + registry->entries[registry->count].type = type; + registry->count++; + return 1; +} + +/* ============================================================================ + * Trace Buffer Operations + * + * Trace buffer lifecycle and manipulation functions for validation debugging. + * Used to collect operation traces during execution and dump them on + * expect_true failure. + * ========================================================================= */ + +void SDDL2_Trace_buffer_init( + SDDL2_Trace_buffer* trace, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx) +{ + trace->entries = NULL; + trace->count = 0; + trace->capacity = 0; + trace->active = 0; + trace->alloc_fn = alloc_fn; + trace->alloc_ctx = alloc_ctx; +} + +void SDDL2_Trace_buffer_destroy(SDDL2_Trace_buffer* trace) +{ + sddl2_free(trace->entries, trace->alloc_fn); + trace->entries = NULL; + trace->count = 0; + trace->capacity = 0; + trace->active = 0; +} + +/** + * Start trace collection. + * Activates the trace buffer to begin recording operations. + * NULL-safe: Does nothing if trace is NULL. + */ +void SDDL2_Trace_buffer_start(SDDL2_Trace_buffer* trace) +{ + if (!trace) + return; + trace->active = 1; +} + +/** + * Stop trace collection without clearing the buffer. + * Deactivates trace collection but preserves recorded entries. + * NULL-safe: Does nothing if trace is NULL. + */ +void SDDL2_Trace_buffer_stop(SDDL2_Trace_buffer* trace) +{ + if (!trace) + return; + trace->active = 0; +} + +/** + * Reset the trace buffer (stop and clear). + * Stops trace collection and clears all recorded entries. + * NULL-safe: Does nothing if trace is NULL. + */ +void SDDL2_Trace_buffer_reset(SDDL2_Trace_buffer* trace) +{ + if (!trace) + return; + trace->active = 0; + trace->count = 0; +} + +/** + * Append a trace entry to the buffer. + * Only records if tracing is active. + * Returns 1 on success, 0 on allocation failure. + */ +int SDDL2_Trace_buffer_append( + SDDL2_Trace_buffer* trace, + size_t pc, + const char* op_name, + const char* details) +{ + // Only append if tracing is active + if (!trace->active) { + return 1; // Success (no-op when inactive) + } + + // Ensure capacity for new entry + if (!ensure_capacity( + (void*)&trace->entries, + trace->count, + &trace->capacity, + sizeof(SDDL2_Trace_entry), + SDDL2_TRACE_MAX_CAPACITY, + trace->alloc_fn, + trace->alloc_ctx)) { + return 0; // Allocation failed or capacity exceeded + } + + // Create and append the trace entry + SDDL2_Trace_entry* entry = &trace->entries[trace->count++]; + entry->pc = pc; + entry->op_name = op_name; + + // Copy details string (safely truncate if needed) + size_t details_len = 0; + if (details) { + while (details[details_len] + && details_len < SDDL2_TRACE_DETAILS_SIZE - 1) { + entry->details[details_len] = details[details_len]; + details_len++; + } + } + entry->details[details_len] = '\0'; + + return 1; +} + +/** + * Dump the trace buffer to ERROR log. + * Used when expect_true fails to show the execution context. + */ +void SDDL2_Trace_buffer_dump(const SDDL2_Trace_buffer* trace) +{ + if (trace->count == 0) { + ZL_DLOG(ERROR, "[ERROR] No trace entries recorded"); + return; + } + + ZL_DLOG(ERROR, "[ERROR] Execution trace (%zu entries):", trace->count); + for (size_t i = 0; i < trace->count; i++) { + const SDDL2_Trace_entry* entry = &trace->entries[i]; + if (entry->details[0] != '\0') { + ZL_DLOG(ERROR, + "[ERROR] PC=%zu: %s - %s", + entry->pc, + entry->op_name, + entry->details); + } else { + ZL_DLOG(ERROR, "[ERROR] PC=%zu: %s", entry->pc, entry->op_name); + } + } +} + +SDDL2_Error SDDL2_op_segment_create_tagged( + SDDL2_Stack* stack, + SDDL2_Input_cursor* buffer, + SDDL2_Segment_list* segments, + SDDL2_Tag_registry* registry) +{ + // Pop in reverse order: size (top), type, tag (bottom) + SDDL2_TRY_LET(int64_t, size_i64, pop_i64(stack)); + SDDL2_TRY_LET(SDDL2_Type, type, pop_type(stack)); + SDDL2_TRY_LET(uint32_t, tag, pop_tag(stack)); + + // Validate size (must be non-negative) + if (size_i64 < 0) { + return SDDL2_TYPE_MISMATCH; + } + + // Delegate to internal helper + return segment_create_internal( + tag, type, (size_t)size_i64, buffer, segments, registry); +} + +/* ============================================================================ + * Trace/Diagnostic Functions + * + * Helper functions for debugging and diagnostic output. + * Placed at end of file to minimize visual clutter in main operation code. + * ========================================================================= */ + +/** + * Log binary operation details for debugging and trace recording. + * + * Unified logging function for CMP and LOGIC binary operations. + * Outputs operands, operator, and result at POS log level for fine-grained + * tracing during bytecode execution. Also records in trace buffer if active. + * + * @param op_name Full operation name including family (e.g., "cmp.eq", + * "logic.and") + * @param op_symbol Symbolic operator (e.g., "==", "&") + * @param a First operand + * @param b Second operand + * @param result Operation result + * @param trace Trace buffer for recording (NULL-safe) + * @param pc Program counter for trace entry + */ +static void SDDL2_log_binary_op( + const char* op_name, + const char* op_symbol, + int64_t a, + int64_t b, + int64_t result, + SDDL2_Trace_buffer* trace, + size_t pc) +{ + ZL_DLOG(POS, + "[SDDL2] %s: %lld %s %lld → %lld", + op_name, + (long long)a, + op_symbol, + (long long)b, + (long long)result); + + if (trace && trace->active) { + char details[SDDL2_TRACE_DETAILS_SIZE]; + snprintf( + details, + sizeof(details), + "%s: %lld %s %lld → %lld", + op_name, + (long long)a, + op_symbol, + (long long)b, + (long long)result); + SDDL2_Trace_buffer_append(trace, pc, op_name, details); + } +} + +/** + * Log unary operation details for debugging and trace recording. + * + * Unified logging function for unary operations. + * Outputs operand, operator, and result at POS log level for fine-grained + * tracing during bytecode execution. Also records in trace buffer if active. + * + * @param op_name Full operation name including family (e.g., "logic.not") + * @param op_symbol Symbolic operator (e.g., "~") + * @param a Operand + * @param result Operation result + * @param trace Trace buffer for recording (NULL-safe) + * @param pc Program counter for trace entry + */ +static void SDDL2_log_unary_op( + const char* op_name, + const char* op_symbol, + int64_t a, + int64_t result, + SDDL2_Trace_buffer* trace, + size_t pc) +{ + ZL_DLOG(POS, + "[SDDL2] %s: %s%lld → %lld", + op_name, + op_symbol, + (long long)a, + (long long)result); + + if (trace && trace->active) { + char details[SDDL2_TRACE_DETAILS_SIZE]; + snprintf( + details, + sizeof(details), + "%s: %s%lld → %lld", + op_name, + op_symbol, + (long long)a, + (long long)result); + SDDL2_Trace_buffer_append(trace, pc, op_name, details); + } +} + +/** + * Log load operation details for debugging. + * + * Outputs address and loaded value at POS log level for fine-grained + * tracing of memory load operations during bytecode execution. + * + * @param op_name Operation name (e.g., "u8", "i16le", "u32be") + * @param addr Memory address being loaded from + * @param value Value that was loaded + */ +static void SDDL2_log_load(const char* op_name, int64_t addr, int64_t value) +{ + ZL_DLOG(POS, + "[SDDL2] load.%s: addr=0x%llx → %lld (0x%llx)", + op_name, + (unsigned long long)addr, + (long long)value, + (unsigned long long)value); +} + +/** + * Log concise expect_true failure with trace context and stack state. + * + * Dumps execution trace (if available), reports validation failure, + * and shows remaining stack state for context. + * + * @param trace Trace buffer with execution history (NULL-safe, can be inactive) + * @param stack Stack after popping the failed value (for context) + */ +static void SDDL2_log_expect_true_failure( + const SDDL2_Trace_buffer* trace, + const SDDL2_Stack* stack) +{ + // Dump trace if available and non-empty + if (trace && trace->count > 0) { + SDDL2_Trace_buffer_dump(trace); + } + + // Concise failure message + ZL_DLOG(ERROR, + "[SDDL2] expect_true VALIDATION FAILURE: got 0 (expected non-zero)"); + + // Show stack state if non-empty (useful for debugging context) + if (stack->top > 0) { + ZL_DLOG(ERROR, "[SDDL2] Remaining stack: depth=%zu", stack->top); + size_t show_count = stack->top < 3 ? stack->top : 3; + for (size_t i = 0; i < show_count; i++) { + size_t idx = stack->top - 1 - i; + const SDDL2_Value* val = &stack->items[idx]; + switch (val->kind) { + case SDDL2_VALUE_I64: + ZL_DLOG(ERROR, + "[SDDL2] [%zu] I64: %lld", + idx, + (long long)val->value.as_i64); + break; + case SDDL2_VALUE_TAG: + ZL_DLOG(ERROR, + "[SDDL2] [%zu] TAG: %u", + idx, + val->value.as_tag); + break; + case SDDL2_VALUE_TYPE: + ZL_DLOG(ERROR, + "[SDDL2] [%zu] TYPE: kind=%d width=%u", + idx, + val->value.as_type.kind, + val->value.as_type.width); + break; + } + } + if (stack->top > 3) { + ZL_DLOG(ERROR, "[SDDL2] ... and %zu more", stack->top - 3); + } + } +} diff --git a/src/openzl/compress/graphs/sddl2/sddl2_vm.h b/src/openzl/compress/graphs/sddl2/sddl2_vm.h new file mode 100644 index 000000000..9776af94f --- /dev/null +++ b/src/openzl/compress/graphs/sddl2/sddl2_vm.h @@ -0,0 +1,1020 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +/** + * OpenZL Execution Engine - VM Internal Structures + * + * This header defines the internal runtime structures for the OpenZL VM, + * as specified in the OpenZL Execution Engine Specification v0.2. + * + * The VM is a stack-based execution engine that: + * - Traverses input buffers exactly once + * - Defines tagged segments over byte ranges + * - Automatically chunks segments + * - Converts segments into typed streams + */ + +#ifndef SDDL2_VM_H +#define SDDL2_VM_H + +#include +#include +#include "openzl/compress/graphs/sddl2/sddl2_error.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/* ============================================================================ + * Value System + * ========================================================================= */ + +/** + * Value kinds supported by the VM stack. + * The VM stack operates on three distinct value kinds: + * - I64: 64-bit signed integer values + * - Tag: Segment tag identifiers + * - Type: Type descriptors for segments + */ +typedef enum { + SDDL2_VALUE_I64 = 1, + SDDL2_VALUE_TAG = 2, + SDDL2_VALUE_TYPE = 3, +} SDDL2_Value_kind; + +/** + * Type descriptor structure. + * Represents the type of a segment, including: + * - kind: The type category (primitive or STRUCTURE) + * - width: Number of elements (1 for scalar, >1 for arrays) + * - struct_data: NULL for primitives, pointer to structure data for STRUCTURE + * types + * + * For primitives: + * Total byte size = primitive_type_size(kind) * width + * + * For structures: + * Total byte size = structure_size * width + * (structure_size stored in struct_data) + */ +/* Primitive types: 0-23 (1, 2, 4, or 8 byte values) + * Complex types: 100+ */ +typedef enum { + SDDL2_TYPE_BYTES = 0, + SDDL2_TYPE_U8, + SDDL2_TYPE_I8, + SDDL2_TYPE_U16LE, + SDDL2_TYPE_U16BE, + SDDL2_TYPE_I16LE, + SDDL2_TYPE_I16BE, + SDDL2_TYPE_U32LE, + SDDL2_TYPE_U32BE, + SDDL2_TYPE_I32LE, + SDDL2_TYPE_I32BE, + SDDL2_TYPE_U64LE, + SDDL2_TYPE_U64BE, + SDDL2_TYPE_I64LE, + SDDL2_TYPE_I64BE, + SDDL2_TYPE_F8, + SDDL2_TYPE_F16LE, + SDDL2_TYPE_F16BE, + SDDL2_TYPE_BF16LE, + SDDL2_TYPE_BF16BE, + SDDL2_TYPE_F32LE, + SDDL2_TYPE_F32BE, + SDDL2_TYPE_F64LE, + SDDL2_TYPE_F64BE, + + SDDL2_TYPE_STRUCTURE = 100, +} SDDL2_Type_kind; + +// Forward declaration for recursive type composition +typedef struct SDDL2_Struct_data SDDL2_Struct_data; + +typedef struct { + SDDL2_Type_kind kind; // Type category (primitive or STRUCTURE) + uint32_t width; // Number of elements (consistent meaning across all types) + union { + void* complex_data; // Generic access: NULL for primitives, non-NULL for + // complex types + SDDL2_Struct_data* struct_data; // Type-safe access for STRUCTURE types + }; +} SDDL2_Type; + +/** + * Structure type metadata (heap-allocated). + * + * Contains the member types of a structure. + * Each member is itself a full SDDL2_Type, allowing: + * - Primitives: {U8, 1, NULL} + * - Arrays: {I32LE, 10, NULL} + * - Nested structures: {SDDL2_TYPE_STRUCTURE, 1, ptr_to_other_struct} + * + * Memory layout: + * Fixed header (member_count, total_size_bytes) + * Flexible array of member types + */ +struct SDDL2_Struct_data { + size_t member_count; // Number of members in the structure + size_t total_size_bytes; // Cached: sum of all member sizes (for + // performance) + SDDL2_Type members[]; // Flexible array member: the actual member types +}; + +/** + * Tagged value on the VM stack. + * This is a discriminated union representing one of three value kinds. + */ +typedef struct { + SDDL2_Value_kind kind; + union { + int64_t as_i64; // For SDDL2_VALUE_I64 + uint32_t as_tag; // For SDDL2_VALUE_TAG + SDDL2_Type as_type; // For SDDL2_VALUE_TYPE + } value; +} SDDL2_Value; + +/* Declare Result type for SDDL2_Value */ +SDDL2_RESULT_DECLARE_TYPE(SDDL2_Value); + +/* ============================================================================ + * Stack Structure + * ========================================================================= */ + +/** + * Maximum configurable stack depth. + * This is a hard limit and cannot be overridden. + */ +#define SDDL2_STACK_DEPTH_MAX 512384 + +/** + * Default maximum stack depth. + * Currently not used since tests provide their own stack storage. + * Reserved for future dynamic stack allocation if needed. + * Can be overridden at compile time with -DSDDL2_STACK_DEPTH_DEFAULT=value + */ +#ifndef SDDL2_STACK_DEPTH_DEFAULT +# define SDDL2_STACK_DEPTH_DEFAULT 4096 +#endif + +/** + * VM stack structure. + * LIFO stack with configurable maximum depth. + * Stack items are allocated via arena allocation. + */ +typedef struct { + SDDL2_Value* items; // Pointer to stack items (arena-allocated) + size_t top; // Index of next free slot (0 = empty stack) + size_t capacity; // Maximum stack depth +} SDDL2_Stack; + +/* ============================================================================ + * Variable Register File + * ========================================================================= */ + +/** + * Number of variable registers available to VM programs. + * Can be overridden at compile time with -DSDDL2_VAR_REGISTER_COUNT=value. + */ +#ifndef SDDL2_VAR_REGISTER_COUNT +# define SDDL2_VAR_REGISTER_COUNT 256 +#endif + +/** + * Variable register file for the SDDL2 VM. + * + * Provides a fixed set of named registers that can store any Value type. + * Programs use var.store/var.load to save and restore intermediate values + * across sequences of stack operations. + * + * Each register tracks whether it has been written to (occupied), so that + * loading from an uninitialized register produces a clear error. + */ +typedef struct { + SDDL2_Value values[SDDL2_VAR_REGISTER_COUNT]; + uint8_t occupied[SDDL2_VAR_REGISTER_COUNT]; +} SDDL2_Var_registers; + +/** + * Initialize a variable register file (all registers unoccupied). + */ +void SDDL2_Var_registers_init(SDDL2_Var_registers* regs); + +/* ============================================================================ + * Memory Allocation Strategy + * ========================================================================= */ + +/** + * Allocator callback for arena or test allocation. + * + * Production: Use arena allocation (e.g., ZL_Graph_getScratchSpace) + * Tests: Define SDDL2_ENABLE_TEST_ALLOCATOR and pass NULL for malloc fallback + * + * Memory is never freed individually; arena handles lifecycle in production. + * + * @param allocator_ctx Context (e.g., ZL_Graph* for arena) + * @param size Bytes to allocate + * @return Allocated memory or NULL on failure + */ +typedef void* (*SDDL2_allocator_fn)(void* allocator_ctx, size_t size); + +/** + * Dynamic Array Capacity Configuration + * + * Initial capacities: Pre-allocated to reduce reallocation overhead with arena + * allocators (which require new allocation + copy). + * Maximum capacities: Hard limits to prevent unbounded memory growth. + * Exceeding max results in SDDL2_LIMIT_EXCEEDED. + * + * All values can be overridden at compile time: + * -DSDDL2_SEGMENT_INITIAL_CAPACITY=value + * -DSDDL2_SEGMENT_MAX_CAPACITY=value + * -DSDDL2_TAG_INITIAL_CAPACITY=value + * -DSDDL2_TAG_MAX_CAPACITY=value + */ +#ifndef SDDL2_SEGMENT_INITIAL_CAPACITY +# define SDDL2_SEGMENT_INITIAL_CAPACITY 4096 +#endif +#ifndef SDDL2_SEGMENT_MAX_CAPACITY +# define SDDL2_SEGMENT_MAX_CAPACITY 524288 // 512K segments +#endif +#ifndef SDDL2_TAG_INITIAL_CAPACITY +# define SDDL2_TAG_INITIAL_CAPACITY 4096 +#endif +#ifndef SDDL2_TAG_MAX_CAPACITY +# define SDDL2_TAG_MAX_CAPACITY 32768 // 32K tags +#endif + +/* ============================================================================ + * Memory Allocation Fallback Functions (implemented in sddl2_vm.c) + * ========================================================================= */ + +void* sddl2_fallback_realloc(void* ptr, size_t size); +void sddl2_fallback_free(void* ptr); + +/* ============================================================================ + * Segments + * ========================================================================= */ + +/** + * Segment structure with tag and type. + * Represents a typed, tagged region of input data. + */ +typedef struct { + uint32_t tag; // Segment identifier (0 = unspecified) + size_t start_pos; // Start offset in input buffer + size_t size_bytes; // Length in bytes + SDDL2_Type type; // Element type (defines array of type.kind with type.width + // elements) +} SDDL2_Segment; + +/* ============================================================================ + * Segment & Tag Registry Operations + * + * Both segment lists and tag registries follow the same lifecycle pattern: + * - init(): Prepares structure with optional arena allocator + * - destroy(): Frees resources (no-op for arena mode) + * + * Allocation modes: + * - alloc_fn=NULL: Falls back to realloc/free (test mode) + * - alloc_fn!=NULL: Uses arena allocation (production mode) + * Arena mode never frees memory individually; arena handles cleanup. + * ========================================================================= */ + +/** + * Dynamic list of segments. + * Grows as segments are created during VM execution. + * + * Uses allocator callback for memory management to remain independent + * of OpenZL infrastructure while supporting arena allocation. + */ +typedef struct { + SDDL2_Segment* items; // Dynamic array of segments + size_t count; // Number of segments + size_t capacity; // Allocated capacity + SDDL2_allocator_fn alloc_fn; // Allocator function (NULL = use realloc) + void* alloc_ctx; // Opaque allocator context +} SDDL2_Segment_list; + +void SDDL2_Segment_list_init( + SDDL2_Segment_list* list, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx); + +void SDDL2_Segment_list_destroy(SDDL2_Segment_list* list); + +/** + * Tag entry storing both tag ID and associated type. + * Enforces semantic constraint: a tag uniquely identifies a type. + */ +typedef struct { + uint32_t tag; // Tag identifier + SDDL2_Type type; // Associated type (must be consistent across all uses) +} SDDL2_Tag_entry; + +/** + * Tag registry for tracking tag usage. + * Tags are registered on first use to ensure consistency. + * Each tag is associated with a specific type - attempting to use the same + * tag with a different type results in SDDL2_TYPE_MISMATCH error. + * + * Uses allocator callback for memory management to remain independent + * of OpenZL infrastructure while supporting arena allocation. + */ +typedef struct { + SDDL2_Tag_entry* entries; // Array of tag entries (tag + type pairs) + size_t count; // Number of registered tags + size_t capacity; // Allocated capacity + SDDL2_allocator_fn alloc_fn; // Allocator function (NULL = use realloc) + void* alloc_ctx; // Opaque allocator context +} SDDL2_Tag_registry; + +void SDDL2_Tag_registry_init( + SDDL2_Tag_registry* registry, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx); + +void SDDL2_Tag_registry_destroy(SDDL2_Tag_registry* registry); + +/* ============================================================================ + * Trace Buffer for Validation Debugging + * ========================================================================= */ + +/** + * Trace buffer configuration. + * Initial/max capacities for trace entries. + */ +#ifndef SDDL2_TRACE_INITIAL_CAPACITY +# define SDDL2_TRACE_INITIAL_CAPACITY 64 +#endif +#ifndef SDDL2_TRACE_MAX_CAPACITY +# define SDDL2_TRACE_MAX_CAPACITY 1024 +#endif +#ifndef SDDL2_TRACE_DETAILS_SIZE +# define SDDL2_TRACE_DETAILS_SIZE 128 +#endif + +/** + * Single trace entry capturing an operation during execution. + * Records PC, opcode name, and detailed information about operands/results. + */ +typedef struct { + size_t pc; // Program counter at this operation + const char* op_name; // Operation name (static string) + char details[SDDL2_TRACE_DETAILS_SIZE]; // Details like "cmp.eq: 5 == 10 → + // 0" +} SDDL2_Trace_entry; + +/** + * Trace buffer for collecting execution traces during validation. + * Used to provide detailed error messages when expect_true fails. + * + * Usage pattern: + * 1. trace.start opcode sets active=1 + * 2. Operations append trace entries when active + * 3. expect_true: + * - On failure: dump trace buffer to ERROR log + * - On success: discard trace buffer + * - Always sets active=0 + * + * Memory management: + * - Uses allocator callback (arena or realloc) + * - Only allocated when trace.start is executed + * - Grows dynamically up to max capacity + */ +typedef struct { + SDDL2_Trace_entry* entries; // Dynamic array of trace entries + size_t count; // Number of entries + size_t capacity; // Allocated capacity + int active; // 0=disabled, 1=collecting traces + SDDL2_allocator_fn alloc_fn; // Allocator function (NULL = use realloc) + void* alloc_ctx; // Opaque allocator context +} SDDL2_Trace_buffer; + +/* ============================================================================ + * Input Cursor + * ========================================================================= */ + +/** + * Input cursor structure for sequential traversal of input data. + * + * Tracks position within borrowed input data. The caller owns `data` and must + * ensure it outlives this cursor. The VM never modifies or frees the data + * pointer. + * + * The VM traverses the input exactly once, advancing the cursor as segments are + * created. + */ +typedef struct { + const void* data; // Borrowed pointer to input data (any type) + size_t size; // Total size in bytes + size_t current_pos; // Cursor for sequential segment creation +} SDDL2_Input_cursor; + +/* ============================================================================ + * Stack Operations + * ========================================================================= */ + +/** + * Initialize an empty stack. + */ +void SDDL2_Stack_init(SDDL2_Stack* stack); + +/** + * Push a value onto the stack. + * Returns SDDL2_STACK_OVERFLOW if stack is full. + * + * NOTE: Kept as inline for performance - this is on the hot path, + * called for every VM instruction that produces a value. + */ +static inline SDDL2_Error SDDL2_Stack_push( + SDDL2_Stack* stack, + SDDL2_Value value) +{ + if (stack->top >= stack->capacity) { + return SDDL2_STACK_OVERFLOW; + } + stack->items[stack->top++] = value; + return SDDL2_OK; +} + +/** + * Pop a value from the stack. + * Returns SDDL2_STACK_UNDERFLOW if stack is empty. + * + * NOTE: Kept as inline for performance - this is on the hot path, + * called for every VM instruction that consumes a value. + */ +static inline SDDL2_RESULT_OF(SDDL2_Value) SDDL2_Stack_pop(SDDL2_Stack* stack) +{ + if (stack->top == 0) { + return SDDL2_failure(SDDL2_Value, SDDL2_STACK_UNDERFLOW); + } + return SDDL2_success(SDDL2_Value, stack->items[--stack->top]); +} + +/** + * Peek at the top value without removing it. + * Returns SDDL2_STACK_UNDERFLOW if stack is empty. + */ +SDDL2_Error SDDL2_Stack_peek(const SDDL2_Stack* stack, SDDL2_Value* out); + +/** + * Get current stack depth. + */ +size_t SDDL2_Stack_depth(const SDDL2_Stack* stack); + +/** + * Check if stack is empty. + */ +int SDDL2_Stack_is_empty(const SDDL2_Stack* stack); + +/* ============================================================================ + * Value Construction Helpers - create typed stack values + * ========================================================================= */ + +SDDL2_Value SDDL2_Value_i64(int64_t val); +SDDL2_Value SDDL2_Value_tag(uint32_t tag_id); +SDDL2_Value SDDL2_Value_type(SDDL2_Type type); + +/* ============================================================================ + * Type Utilities + * ========================================================================= */ + +/** + * Get the size in bytes of a single element of the given type kind. + * Returns SDDL2_TYPE_MISMATCH for unknown/invalid kinds and STRUCTURE. + */ +SDDL2_RESULT_OF(size_t) SDDL2_kind_size(SDDL2_Type_kind kind); + +/** + * Get the total size in bytes of a type (element_size × width). + * Returns SDDL2_TYPE_MISMATCH for invalid types. + */ +SDDL2_RESULT_OF(size_t) SDDL2_Type_size(SDDL2_Type type); + +/* ============================================================================ + * Type Operations + * ========================================================================= */ + +/** + * Create a fixed array type from base type. + * Stack: array_count:I64 base_type:Type -> array_type:Type + * + * Pops an I64 array count and a Type from the stack, then pushes a new Type + * with width multiplied by the array count. This creates a fixed-size array + * type. + * + * Example: + * push.type.u32le // Type{U32LE, 1} + * push.i32 10 // I64: 10 + * type.fixed_array // Type{U32LE, 10} - array of 10 U32LE elements + * + * @param stack The VM stack + * @return SDDL2_OK or error code + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack has fewer than 2 values + * - SDDL2_TYPE_MISMATCH: stack values are not {I64, Type}, or array_count <= + * 0 + * - SDDL2_STACK_OVERFLOW: width multiplication would overflow, or push would + * overflow the stack + */ +SDDL2_Error SDDL2_op_type_fixed_array(SDDL2_Stack* stack); + +/** + * Create a structure type from member types. + * Stack: Type₀ Type₁ Type₂ ... Typeₙ₋₁ N:I64 -> Type_struct + * + * Pops an I64 count N and N types from the stack, then creates a structure + * type containing those members in order. The structure's total size is the + * sum of all member sizes. + * + * Example: + * push.type U8 // Member 0: U8 + * push.type I16LE // Member 1: I16LE + * push.type I32LE // Member 2: I32LE + * push.i64 3 // 3 members + * type.structure // Type{STRUCTURE} with 7 bytes total + * + * Structures can contain: + * - Primitives: {U8, 1, NULL} + * - Arrays: {I32LE, 10, NULL} + * - Nested structures: {SDDL2_TYPE_STRUCTURE, 1, ptr} + * + * @param stack The VM stack + * @param alloc_fn Allocator function for structure data (NULL = use malloc) + * @param alloc_ctx Allocator context (e.g., ZL_Graph* for arena allocation) + * @return SDDL2_OK or error code + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack has fewer than N+1 values + * - SDDL2_TYPE_MISMATCH: top value not I64, or any of N values not Type, or N + * <= 0 + * - SDDL2_ALLOCATION_FAILED: failed to allocate structure data + * - SDDL2_STACK_OVERFLOW: push would overflow the stack + */ +SDDL2_Error SDDL2_op_type_structure( + SDDL2_Stack* stack, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx); + +/** + * Get the size in bytes of a type. + * Stack: Type -> I64 + * + * Pops a Type from the stack and pushes its total size in bytes as an I64. + * This is useful for validating structure sizes or computing memory + * requirements. + * + * Example: + * push.type.i32le // Type{I32LE, width=1} + * type.sizeof // Pushes 4 + * + * push.type.i16le + * push.u32 10 + * type.fixed_array // Type{I16LE, width=10} + * type.sizeof // Pushes 20 + * + * For structure types, returns the total size accounting for all members. + * + * @param stack The VM stack + * @return SDDL2_OK or error code + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack is empty + * - SDDL2_TYPE_MISMATCH: top value is not a Type + * - SDDL2_STACK_OVERFLOW: push would overflow the stack + */ +SDDL2_Error SDDL2_op_type_sizeof(SDDL2_Stack* stack); + +/* ============================================================================ + * Arithmetic Operations + * + * Binary operations: Stack: a:I64 b:I64 -> result:I64 + * Unary operations: Stack: a:I64 -> result:I64 + * All check for overflow; div/mod also check for divide-by-zero. + * Errors: TypeMismatch, Overflow (all), DivZero (div, mod only) + * ========================================================================= */ + +SDDL2_Error +SDDL2_op_add(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a + b +SDDL2_Error +SDDL2_op_sub(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a - b +SDDL2_Error +SDDL2_op_mul(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a * b +SDDL2_Error +SDDL2_op_div(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a / b +SDDL2_Error +SDDL2_op_mod(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a % b +SDDL2_Error +SDDL2_op_abs(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // |a| +SDDL2_Error +SDDL2_op_neg(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // -a +SDDL2_Error SDDL2_op_bit_and( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); // a & b +SDDL2_Error SDDL2_op_bit_or( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); // a | b +SDDL2_Error SDDL2_op_bit_xor( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); // a ^ b +SDDL2_Error SDDL2_op_bit_not( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); // ~a + +/* ============================================================================ + * Comparison Operations (CMP Family) + * + * All comparison operations follow the same pattern: + * Stack: a:I64 b:I64 -> (comparison_result?1:0):I64 + * Errors: TypeMismatch + * Returns 1 if comparison is true, 0 if false. + * ========================================================================= */ + +SDDL2_Error +SDDL2_op_eq(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a == b +SDDL2_Error +SDDL2_op_ne(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a != b +SDDL2_Error +SDDL2_op_lt(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a < b +SDDL2_Error +SDDL2_op_le(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a <= b +SDDL2_Error +SDDL2_op_gt(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a > b +SDDL2_Error +SDDL2_op_ge(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a >= b + +/* ============================================================================ + * Logical Operations (LOGIC Family) + * + * Binary operations: Stack: a:I64 b:I64 -> result:I64 + * Unary operation: Stack: a:I64 -> result:I64 + * All operations perform boolean logical operations on I64 values. + * Values are treated as boolean: 0 is false, non-zero is true. + * Results are always 0 or 1. + * Errors: TypeMismatch + * ========================================================================= */ + +SDDL2_Error SDDL2_op_and( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); // a && b +SDDL2_Error +SDDL2_op_or(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // a || b +SDDL2_Error SDDL2_op_xor( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); // a ^^ b +SDDL2_Error +SDDL2_op_not(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); // !a + +/* ============================================================================ + * Stack Manipulation Operations (STACK Family) + * ========================================================================= */ + +/** + * Drop (remove) the top value from the stack. + * Stack: value -> (empty) + * Errors: StackUnderflow + */ +SDDL2_Error +SDDL2_op_drop(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); + +/** + * Conditionally drop the top value from the stack based on a condition. + * Pops condition (I64), then pops and discards top value if condition is + * non-zero. Stack (condition true): value condition -> (empty) Stack + * (condition false): value condition -> value Errors: StackUnderflow, + * TypeMismatch + */ +SDDL2_Error SDDL2_op_stack_drop_if( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc); + +/** + * Duplicate the top value on the stack. + * Stack: value -> value value + * Errors: StackUnderflow, StackOverflow + */ +SDDL2_Error +SDDL2_op_dup(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); + +/** + * Swap the top two values on the stack. + * Stack: a b -> b a + * Errors: StackUnderflow + */ +SDDL2_Error +SDDL2_op_swap(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace, size_t pc); + +/* ============================================================================ + * Variable Operations (VAR Family) + * ========================================================================= */ + +/** + * Store a value into a variable register. + * Stack: value:Value register:I64 -> (empty) + * + * Pops an I64 register index, then pops a generic Value, and stores the + * Value into the given register. The register index must be in range + * [0, SDDL2_VAR_REGISTER_COUNT). + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack has fewer than 2 values + * - SDDL2_TYPE_MISMATCH: top value is not I64 (register index) + * - SDDL2_LOAD_BOUNDS: register index out of range + */ +SDDL2_Error SDDL2_op_var_store( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc, + SDDL2_Var_registers* regs); + +/** + * Load a value from a variable register. + * Stack: register:I64 -> value:Value + * + * Pops an I64 register index and pushes the Value stored in that register + * onto the stack. The register must have been previously written to with + * var.store. + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack is empty + * - SDDL2_TYPE_MISMATCH: top value is not I64 (register index) + * - SDDL2_LOAD_BOUNDS: register index out of range or register uninitialized + */ +SDDL2_Error SDDL2_op_var_load( + SDDL2_Stack* stack, + SDDL2_Trace_buffer* trace, + size_t pc, + SDDL2_Var_registers* regs); + +/* ============================================================================ + * Validation Operations (EXPECT Family) + * ========================================================================= */ + +/** + * Validate that the top stack value is true (non-zero). + * Stack: value:I64 -> (empty) + * + * Pops an I64 value from the stack and verifies it is non-zero. + * If the value is 0 (false), dumps the trace buffer (if active) and + * returns SDDL2_VALIDATION_FAILED. + * This enables runtime assertions and data validation in SDDL2 programs. + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack is empty + * - SDDL2_TYPE_MISMATCH: top value is not I64 + * - SDDL2_VALIDATION_FAILED: value is 0 (false) + */ +SDDL2_Error SDDL2_op_expect_true(SDDL2_Stack* stack, SDDL2_Trace_buffer* trace); + +/** + * Conditionally skip N instructions (control flow operation). + * Stack: N:I64 condition:I64 -> (empty) + * + * Pops an I64 condition and an I64 value N from the stack. + * If condition is non-zero (true), returns N via out_skip_count. + * If condition is zero (false), returns 0 via out_skip_count. + * The interpreter should advance PC by out_skip_count*4 bytes. + * N must be non-negative. + * + * @param stack The VM stack + * @param out_skip_count Output parameter for the number of instructions to skip + * @return SDDL2_OK on success, error code on failure + * + * Errors: + * - SDDL2_STACK_UNDERFLOW: stack has fewer than 2 elements + * - SDDL2_TYPE_MISMATCH: values are not I64 or N is negative + */ +SDDL2_Error SDDL2_op_jump_if(SDDL2_Stack* stack, size_t* out_skip_count); + +/* ============================================================================ + * Input Cursor Operations + * ========================================================================= */ + +/** + * Initialize an input buffer. + */ +void SDDL2_Input_cursor_init( + SDDL2_Input_cursor* buffer, + const void* data, + size_t size); + +/** + * Push current input cursor position. + * Stack: (empty) -> current_pos:I64 + * Does NOT advance cursor. + */ +SDDL2_Error SDDL2_op_current_pos( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); + +/** + * Push remaining bytes in input buffer. + * Stack: (empty) -> remaining:I64 + * Does NOT advance cursor. + */ +SDDL2_Error SDDL2_op_remaining( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); + +/** + * Push current stack depth (number of elements on stack). + * Stack: (empty) -> depth:I64 + */ +SDDL2_Error SDDL2_op_push_stack_depth(SDDL2_Stack* stack); + +/* ============================================================================ + * Load Operations + * + * All load operations follow the same pattern: + * Stack: addr:I64 -> value:I64 + * Errors: TypeMismatch, LoadBounds + * Does NOT advance cursor + * + * Naming convention: load_[u/i][8/16/32/64][le/be] + * - u = unsigned (zero-extend), i = signed (sign-extend) + * - 8/16/32/64 = bit width + * - le = little-endian, be = big-endian (omitted for 8-bit) + * ========================================================================= */ + +SDDL2_Error SDDL2_op_load_u8( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i8( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_u16le( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_u16be( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i16le( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i16be( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_u32le( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_u32be( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i32le( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i32be( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i64le( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); +SDDL2_Error SDDL2_op_load_i64be( + SDDL2_Stack* stack, + const SDDL2_Input_cursor* buffer); + +/* ============================================================================ + * Trace Buffer Operations + * ========================================================================= */ + +/** + * Initialize a trace buffer with optional arena allocator. + * @param trace Trace buffer to initialize + * @param alloc_fn Allocator function (NULL = use realloc) + * @param alloc_ctx Allocator context + */ +void SDDL2_Trace_buffer_init( + SDDL2_Trace_buffer* trace, + SDDL2_allocator_fn alloc_fn, + void* alloc_ctx); + +/** + * Destroy a trace buffer and free resources. + * @param trace Trace buffer to destroy + */ +void SDDL2_Trace_buffer_destroy(SDDL2_Trace_buffer* trace); + +/** + * Start collecting traces. + * NULL-safe: Does nothing if trace is NULL. + * @param trace Trace buffer to activate (may be NULL) + */ +void SDDL2_Trace_buffer_start(SDDL2_Trace_buffer* trace); + +/** + * Stop collecting traces without clearing the buffer. + * NULL-safe: Does nothing if trace is NULL. + * @param trace Trace buffer to deactivate (may be NULL) + */ +void SDDL2_Trace_buffer_stop(SDDL2_Trace_buffer* trace); + +/** + * Reset the trace buffer (stop tracing and clear all entries). + * NULL-safe: Does nothing if trace is NULL. + * @param trace Trace buffer to reset (may be NULL) + */ +void SDDL2_Trace_buffer_reset(SDDL2_Trace_buffer* trace); + +/** + * Append a trace entry to the buffer. + * Only records if tracing is active. + * @param trace Trace buffer + * @param pc Program counter + * @param op_name Operation name (static string) + * @param details Detailed information (may be NULL) + * @return 1 on success, 0 on allocation failure + */ +int SDDL2_Trace_buffer_append( + SDDL2_Trace_buffer* trace, + size_t pc, + const char* op_name, + const char* details); + +/** + * Dump trace buffer to ERROR log. + * Used when expect_true fails to show execution context. + * @param trace Trace buffer to dump + */ +void SDDL2_Trace_buffer_dump(const SDDL2_Trace_buffer* trace); + +/** + * Create an unspecified segment (no tag, no type, just bytes). + * Stack: size:I64 -> (nothing) + * Side effects: + * - Advances buffer->current_pos by size + * - Appends segment to list with tag=0 + * Errors: TypeMismatch, StackUnderflow, SegmentBounds + */ +SDDL2_Error SDDL2_op_segment_create_unspecified( + SDDL2_Stack* stack, + SDDL2_Input_cursor* buffer, + SDDL2_Segment_list* segments); + +/** + * Create a typed, tagged segment with automatic merging. + * Stack: tag:Tag type:Type size:I64 -> (nothing) + * + * Parameter order rationale: + * - tag: Identifies WHICH logical entity (e.g., "user_ids", "timestamps") + * - type: Describes WHAT data structure (e.g., I32LE array, U8 bytes) + * - size: Quantifies HOW MUCH data (number of elements in the array) + * Tag + Type together define the segment's identity, then size quantifies it. + * + * The type defines the unit type of the array. For example: + * - type={U8, width=1}: Array of bytes + * - type={I32LE, width=1}: Array of little-endian 32-bit integers + * - type={F64BE, width=1}: Array of big-endian 64-bit floats + * + * The actual byte size of the segment is calculated as: + * size_bytes = element_count * SDDL2_Type_size(type.kind) + * + * Automatic Merging Behavior: + * If the last segment has the same tag AND same type AND is consecutive + * (previous.start_pos + previous.size_bytes == new.start_pos), + * the new segment will be merged into the existing one by + * increasing its size_bytes instead of creating a new segment. + * + * Example: + * tag.const 100 + * type.const {U8, 1} + * push 100 // 100 elements of U8 = 100 bytes + * segment_create_tagged // seg[0]: {tag=100, start=0, size=100, type=U8} + * + * tag.const 100 + * type.const {U8, 1} + * push 50 + * segment_create_tagged // Merged! seg[0]: {tag=100, start=0, size=150, + * type=U8} + * + * tag.const 200 + * type.const {I32LE, 1} + * push 20 + * segment_create_tagged // seg[1]: {tag=200, start=150, size=20, type=I32LE} + * + * Side effects: + * - Advances buffer->current_pos by size + * - Either merges with last segment OR appends new segment + * - Registers tag on first use + * + * Errors: TypeMismatch, StackUnderflow, SegmentBounds + */ +SDDL2_Error SDDL2_op_segment_create_tagged( + SDDL2_Stack* stack, + SDDL2_Input_cursor* buffer, + SDDL2_Segment_list* segments, + SDDL2_Tag_registry* registry); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // SDDL2_VM_H diff --git a/src/openzl/compress/graphs/small_lengths_graph.c b/src/openzl/compress/graphs/small_lengths_graph.c new file mode 100644 index 000000000..25432ee15 --- /dev/null +++ b/src/openzl/compress/graphs/small_lengths_graph.c @@ -0,0 +1,80 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/compress/graphs/small_lengths_graph.h" + +#include "openzl/codecs/zl_entropy.h" +#include "openzl/codecs/zl_generic.h" +#include "openzl/codecs/zl_partition.h" +#include "openzl/codecs/zl_quantize.h" +#include "openzl/codecs/zl_sentinel.h" +#include "openzl/codecs/zl_store.h" +#include "openzl/common/assertion.h" + +static const size_t kInputStoreThreshold = 50; +static const size_t kLargeStoreThreshold = 100; + +ZL_Report ZL_compressSmallLengthsGraph( + ZL_Graph* graph, + ZL_Edge** inputs, + size_t numInputs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + ZL_ASSERT_EQ(numInputs, 1); + ZL_Edge* const edge = inputs[0]; + const ZL_Input* const input = ZL_Edge_getData(edge); + + if (ZL_Input_numElts(input) < kInputStoreThreshold) { + return ZL_Edge_setDestination(edge, ZL_GRAPH_STORE); + } + + if (ZL_Input_eltWidth(input) == 1) { + // 1-byte values go directly to Huffman + return ZL_Edge_setDestination(edge, ZL_GRAPH_HUFFMAN); + } + + if (!ZL_Graph_isNodeSupported(graph, ZL_NODE_SENTINEL_BYTE)) { + // Older format versions fallback to generic compression + return ZL_Edge_setDestination(edge, ZL_GRAPH_COMPRESS_GENERIC); + } + + // All values < 255 go into small stream + // Other values push 255 into small stream and go into large stream + ZL_TRY_LET( + ZL_EdgeList, edges, ZL_Edge_runNode(edge, ZL_NODE_SENTINEL_BYTE)); + ZL_ASSERT_EQ(edges.nbEdges, 2); + + ZL_Edge* const smallEdge = edges.edges[0]; + ZL_Edge* const largeEdge = edges.edges[1]; + + // Small values go to Huffman (they are U8) + ZL_ERR_IF_ERR(ZL_Edge_setDestination(smallEdge, ZL_GRAPH_HUFFMAN)); + + const ZL_Input* const largeInput = ZL_Edge_getData(largeEdge); + + const size_t largeEltWidth = ZL_Input_eltWidth(largeInput); + if (ZL_Input_numElts(largeInput) < kLargeStoreThreshold) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(largeEdge, ZL_GRAPH_STORE)); + } else if ( + largeEltWidth == 2 + && ZL_Graph_isNodeSupported(graph, ZL_NODE_PARTITION)) { + // For 2-byte values send the lengths to partition+bitpack + ZL_ERR_IF_ERR( + ZL_Edge_setDestination(largeEdge, ZL_GRAPH_PARTITION_BITPACK)); + } else if (largeEltWidth == 4) { + // TODO(T264089692): Use partition for quantize lengths once it is + // optimized + ZL_TRY_SET( + ZL_EdgeList, + edges, + ZL_Edge_runNode(largeEdge, ZL_NODE_QUANTIZE_LENGTHS)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(edges.edges[0], ZL_GRAPH_FSE)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(edges.edges[1], ZL_GRAPH_STORE)); + } else { + // Don't have a good graph prepared yet, or the format version doesn't + // support it, just use generic compression + ZL_ERR_IF_ERR( + ZL_Edge_setDestination(largeEdge, ZL_GRAPH_COMPRESS_GENERIC)); + } + + return ZL_returnSuccess(); +} diff --git a/src/openzl/compress/graphs/small_lengths_graph.h b/src/openzl/compress/graphs/small_lengths_graph.h new file mode 100644 index 000000000..c75b2c5ed --- /dev/null +++ b/src/openzl/compress/graphs/small_lengths_graph.h @@ -0,0 +1,16 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_COMPRESS_GRAPHS_SMALL_LENGTHS_GRAPH_H +#define OPENZL_COMPRESS_GRAPHS_SMALL_LENGTHS_GRAPH_H + +#include "openzl/zl_graph_api.h" + +/** + * Backend for ZL_GRAPH_COMPRESS_SMALL_LENGTHS + */ +ZL_Report ZL_compressSmallLengthsGraph( + ZL_Graph* graph, + ZL_Edge** inputs, + size_t numInputs); + +#endif diff --git a/src/openzl/compress/graphs/split_graph.c b/src/openzl/compress/graphs/split_graph.c index 2df23e679..076ed7404 100644 --- a/src/openzl/compress/graphs/split_graph.c +++ b/src/openzl/compress/graphs/split_graph.c @@ -26,3 +26,19 @@ ZL_Report ZL_splitFnGraph(ZL_Graph* graph, ZL_Edge** inputs, size_t numInputs) } return ZL_returnSuccess(); } + +ZL_Report ZL_nToNFnGraph(ZL_Graph* graph, ZL_Edge** inputs, size_t numInputs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + ZL_ASSERT_NN(inputs); + ZL_ASSERT_NN(graph); + + const ZL_GraphIDList graphs = ZL_Graph_getCustomGraphs(graph); + ZL_ERR_IF_NE(graphs.nbGraphIDs, numInputs, parameter_invalid); + + for (size_t i = 0; i < numInputs; ++i) { + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputs[i], graphs.graphids[i])); + } + return ZL_returnSuccess(); +} diff --git a/src/openzl/compress/graphs/split_graph.h b/src/openzl/compress/graphs/split_graph.h index 05d0546f7..78e870087 100644 --- a/src/openzl/compress/graphs/split_graph.h +++ b/src/openzl/compress/graphs/split_graph.h @@ -10,4 +10,17 @@ */ ZL_Report ZL_splitFnGraph(ZL_Graph* graph, ZL_Edge** inputs, size_t numInputs); +/** + * Routes N input streams to N successor graphs. + * Input[i] is routed to successor graph[i]. + */ +ZL_Report ZL_nToNFnGraph(ZL_Graph* graph, ZL_Edge** inputs, size_t numInputs); + +#define MIGRAPH_N_TO_N \ + { .name = "!zl.n_to_n", \ + .graph_f = ZL_nToNFnGraph, \ + .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, \ + .nbInputs = 1, \ + .lastInputIsVariable = 1 } + #endif diff --git a/src/openzl/compress/localparams.c b/src/openzl/compress/localparams.c index e3cf67e95..7cd8c35ae 100644 --- a/src/openzl/compress/localparams.c +++ b/src/openzl/compress/localparams.c @@ -13,13 +13,14 @@ static ZL_Report LP_transferBuffer(Arena* alloc, void const** bufferPtr, size_t nbytes) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(bufferPtr); if (nbytes == 0) { *bufferPtr = NULL; } else { ZL_ASSERT_NN(alloc); void* const dst = ALLOC_Arena_malloc(alloc, nbytes); - ZL_RET_R_IF_NULL(allocation, dst); + ZL_ERR_IF_NULL(dst, allocation); ZL_ASSERT_NN(*bufferPtr); ZL_memcpy(dst, *bufferPtr, nbytes); *bufferPtr = dst; @@ -36,11 +37,12 @@ static ZL_Report LP_transferLocalIntParams(Arena* alloc, ZL_LocalIntParams* lip) { ZL_ASSERT_NN(alloc); ZL_ASSERT_NN(lip); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const nbIntParams = lip->nbIntParams; ZL_DLOG(TRANSFORM, "LP_transferLocalIntParams: nb=%zu", nbIntParams); void const* buffer = lip->intParams; - ZL_RET_R_IF_ERR(LP_transferBuffer( + ZL_ERR_IF_ERR(LP_transferBuffer( alloc, &buffer, nbIntParams * sizeof(lip->intParams[0]))); lip->intParams = buffer; return ZL_returnSuccess(); @@ -55,11 +57,12 @@ static ZL_Report LP_transferLocalRefParams(Arena* alloc, ZL_LocalRefParams* lrp) { ZL_ASSERT_NN(alloc); ZL_ASSERT_NN(lrp); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const nbRefParams = lrp->nbRefParams; ZL_DLOG(TRANSFORM, "LP_transferLocalRefParams: nb=%zu", nbRefParams); void const* buffer = lrp->refParams; - ZL_RET_R_IF_ERR(LP_transferBuffer( + ZL_ERR_IF_ERR(LP_transferBuffer( alloc, &buffer, nbRefParams * sizeof(lrp->refParams[0]))); lrp->refParams = buffer; return ZL_returnSuccess(); @@ -71,19 +74,20 @@ static ZL_Report LP_transferLocalFlatParams( { ZL_ASSERT_NN(alloc); ZL_ASSERT_NN(lgp); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const nbCopyParams = lgp->nbCopyParams; ZL_DLOG(TRANSFORM, "LP_transferLocalGenParams: nb=%zu", nbCopyParams); ZL_CopyParam* dstParams = ALLOC_Arena_malloc(alloc, nbCopyParams * sizeof(ZL_CopyParam)); - ZL_RET_R_IF_NULL(allocation, dstParams); + ZL_ERR_IF_NULL(dstParams, allocation); // transfer generic parameter's content into local storage // to not depend on origin's lifetime for (size_t n = 0; n < nbCopyParams; n++) { size_t const size = lgp->genParams[n].paramSize; void const* content = lgp->genParams[n].paramPtr; - ZL_RET_R_IF_ERR(LP_transferBuffer(alloc, &content, size)); + ZL_ERR_IF_ERR(LP_transferBuffer(alloc, &content, size)); ZL_CopyParam const gp = { .paramId = lgp->genParams[n].paramId, .paramPtr = content, @@ -97,9 +101,10 @@ static ZL_Report LP_transferLocalFlatParams( ZL_Report LP_transferLocalParams(Arena* alloc, ZL_LocalParams* lp) { - ZL_RET_R_IF_ERR(LP_transferLocalIntParams(alloc, &lp->intParams)); - ZL_RET_R_IF_ERR(LP_transferLocalFlatParams(alloc, &lp->copyParams)); - ZL_RET_R_IF_ERR(LP_transferLocalRefParams(alloc, &lp->refParams)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR(LP_transferLocalIntParams(alloc, &lp->intParams)); + ZL_ERR_IF_ERR(LP_transferLocalFlatParams(alloc, &lp->copyParams)); + ZL_ERR_IF_ERR(LP_transferLocalRefParams(alloc, &lp->refParams)); return ZL_returnSuccess(); } diff --git a/src/openzl/compress/materializer.c b/src/openzl/compress/materializer.c new file mode 100644 index 000000000..e6b7c63ff --- /dev/null +++ b/src/openzl/compress/materializer.c @@ -0,0 +1,260 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/compress/materializer.h" +#include "openzl/common/allocation.h" // ALLOC_* +#include "openzl/compress/localparams.h" // LP_getLocalRefParam, LP_getLocalIntParam +#include "openzl/zl_unique_id.h" // ZL_UniqueID_isValid + +// ****************************************************************** +// MaterializedParamMap +// ****************************************************************** + +// Validate that paramId is not invalid and not already in use by existing local +// params +ZL_Report MPM_validateMaterializedParamId(const ZL_LocalParams* lp, int paramId) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_EQ( + paramId, + ZL_LP_INVALID_PARAMID, + GENERIC, + "Materialized paramId cannot be ZL_LP_INVALID_PARAMID"); + + ZL_RefParam rp = LP_getLocalRefParam(lp, paramId); + ZL_ERR_IF_NE( + rp.paramId, + ZL_LP_INVALID_PARAMID, + GENERIC, + "Materialized paramId %d is already registered", + paramId); + + ZL_IntParam ip = LP_getLocalIntParam(lp, paramId); + ZL_ERR_IF_NE( + ip.paramId, + ZL_LP_INVALID_PARAMID, + GENERIC, + "Materialized paramId %d is already registered as an intParam", + paramId); + return ZL_returnSuccess(); +} + +ZL_Report MPM_addMaterializedRefParam( + Arena* allocator, + ZL_OperationContext* opCtx, + ZL_LocalParams* lp, + int paramId, + const void* materializedObj) +{ + ZL_ASSERT_NN(allocator); + ZL_ASSERT_NN(opCtx); + ZL_ASSERT_NN(lp); + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + + // Allocate new refParams array with one more entry + size_t const newNbRefParams = lp->refParams.nbRefParams + 1; + ZL_RefParam* newRefParams = + ALLOC_Arena_malloc(allocator, newNbRefParams * sizeof(ZL_RefParam)); + ZL_ERR_IF_NULL(newRefParams, allocation); + + // Copy existing refParams + for (size_t i = 0; i < lp->refParams.nbRefParams; i++) { + newRefParams[i] = lp->refParams.refParams[i]; + } + + // Add the materialized param + newRefParams[lp->refParams.nbRefParams] = (ZL_RefParam){ + .paramId = paramId, + .paramRef = materializedObj, + .paramSize = 0, // Size unknown for materialized objects + }; + + // Update the localParams + lp->refParams.refParams = newRefParams; + lp->refParams.nbRefParams = newNbRefParams; + + return ZL_returnSuccess(); +} + +ZL_Report MPM_addOrReuseMaterializedParam( + Arena* allocator, + Arena* scratchAllocator, + MaterializedParamMap* materializedParams, + ZL_OperationContext* opCtx, + ZL_LocalParams* lp, + const ZL_MaterializerDesc* matDesc) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + if (matDesc == NULL || matDesc->materializeFn == NULL) { + return ZL_returnSuccess(); + } + if (matDesc->dematerializeFn == NULL) { + ZL_ERR(GENERIC, + "Materializer must provide a valid dematerialize function pointer"); + } + + // Create key for lookup + MaterializedParamKey key = { + .localParams = *lp, + .matDesc = *matDesc, + }; + + // Search for existing materialized param with same key + MaterializedParamMap_Entry const* existingEntry = + MaterializedParamMap_find(materializedParams, &key); + if (existingEntry != NULL) { + return MPM_addMaterializedRefParam( + allocator, + opCtx, + lp, + matDesc->paramId, + existingEntry->val.materializedParam); + } + + // Not found, create new materialized param + ZL_Materializer mat = { + .persistentArena = allocator, + .scratchArena = scratchAllocator, + .opaquePtr = matDesc->opaque, + }; + ZL_RESULT_OF(ZL_VoidPtr) matResult = matDesc->materializeFn(&mat, lp); + ALLOC_Arena_freeAll(scratchAllocator); + ZL_ERR_IF_ERR(matResult); + + void* materialized = ZL_RES_value(matResult); + + MaterializedParamEntry newEntry = { + .materializedParam = materialized, + }; + + MaterializedParamMap_Entry entryToInsert = { + .key = key, + .val = newEntry, + }; + + MaterializedParamMap_Insert insertResult = + MaterializedParamMap_insert(materializedParams, &entryToInsert); + if (insertResult.badAlloc) { + ZL_Materializer mat2 = { + // dematerializers aren't allowed to allocate + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = matDesc->opaque, + }; + matDesc->dematerializeFn(&mat2, materialized); + ZL_ERR(allocation, "Failed to insert materialized param into map"); + } + + return MPM_addMaterializedRefParam( + allocator, opCtx, lp, matDesc->paramId, materialized); +} + +void MPM_dematerializeAllParams(MaterializedParamMap* materializedParams) +{ + MaterializedParamMap_Iter iter = + MaterializedParamMap_iter(materializedParams); + MaterializedParamMap_Entry const* entry; + while ((entry = MaterializedParamMap_Iter_next(&iter)) != NULL) { + if (entry->val.materializedParam != NULL) { + ZL_ASSERT_NN(entry->key.matDesc.dematerializeFn); + ZL_Materializer mat = { + // dematerializers aren't allowed to allocate + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = entry->key.matDesc.opaque, + }; + entry->key.matDesc.dematerializeFn( + &mat, entry->val.materializedParam); + } + } +} + +// ****************************************************************** +// On-the-fly Materialization (for runtime params) +// ****************************************************************** + +ZL_RESULT_OF(OneshotMaterializationResult) +MPM_materializeOneshot( + Arena* allocator, + Arena* scratchAllocator, + ZL_OperationContext* opCtx, + const ZL_LocalParams* runtimeParams, + const ZL_MaterializerDesc* matDesc) +{ + ZL_RESULT_DECLARE_SCOPE(OneshotMaterializationResult, opCtx); + ZL_ASSERT_NN(allocator); + ZL_ASSERT_NN(opCtx); + ZL_ASSERT_NN(matDesc); + ZL_ASSERT_NN(runtimeParams); + // This should be impossible, since we check the validity of the + // materializer when it's first registered alongside the base node. + ZL_ERR_IF_NULL( + matDesc->dematerializeFn, + logicError, + "Materializer must provide a valid materialize function pointer"); + + ZL_ERR_IF_ERR( + MPM_validateMaterializedParamId(runtimeParams, matDesc->paramId)); + + ZL_Materializer mat = { + .persistentArena = allocator, + .scratchArena = scratchAllocator, + .opaquePtr = matDesc->opaque, + }; + ZL_RESULT_OF(ZL_VoidPtr) + matResult = matDesc->materializeFn(&mat, runtimeParams); + ALLOC_Arena_freeAll(scratchAllocator); + ZL_ERR_IF_ERR(matResult); + void* materialized = ZL_RES_value(matResult); + + OneshotMaterializationResult retval = { + .modifiedParams = *runtimeParams, + .materializedObj = materialized, + .matDesc = *matDesc, + }; + + ZL_Report addResult = MPM_addMaterializedRefParam( + allocator, + opCtx, + &retval.modifiedParams, + matDesc->paramId, + materialized); + + if (ZL_isError(addResult)) { + // Clean up materialized object + ZL_Materializer mat2 = { + // dematerializers aren't allowed to allocate + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = matDesc->opaque, + }; + matDesc->dematerializeFn(&mat2, materialized); + ZL_ERR_IF_ERR(addResult); + } + + return ZL_WRAP_VALUE(retval); +} + +void MPM_dematerializeOneshot( + Arena* allocator, + OneshotMaterializationResult* matResult) +{ + ZL_ASSERT_NN(allocator); + ZL_ASSERT_NN(matResult); + + if (matResult->materializedObj == NULL) { + return; + } + + // This should be impossible, since nonnull materializedObj indicates + // materialization happened via MPM_materializeOneshot, and we check the + // validity of the materializer in MPM_materializeOneshot + ZL_ASSERT_NN(matResult->matDesc.dematerializeFn); + + ZL_Materializer mat = { + // dematerializers aren't allowed to allocate + .persistentArena = NULL, + .scratchArena = NULL, + .opaquePtr = matResult->matDesc.opaque, + }; + matResult->matDesc.dematerializeFn(&mat, matResult->materializedObj); +} diff --git a/src/openzl/compress/materializer.h b/src/openzl/compress/materializer.h new file mode 100644 index 000000000..058954d64 --- /dev/null +++ b/src/openzl/compress/materializer.h @@ -0,0 +1,125 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_COMPRESS_MATERIALIZER_H +#define ZSTRONG_COMPRESS_MATERIALIZER_H + +#include "openzl/common/allocation.h" // Arena +#include "openzl/common/map.h" +#include "openzl/dict/materializer_ctx.h" // struct ZL_Materializer_s +#include "openzl/shared/portability.h" +#include "openzl/zl_errors.h" // ZL_RESULT_DECLARE_TYPE_IMPL, ZL_RESULT_OF + +ZL_BEGIN_C_DECLS + +// ****************************************************************** +// MaterializedParamMap +// ****************************************************************** + +typedef struct { + ZL_LocalParams localParams; + ZL_MaterializerDesc matDesc; // The description provided at registration +} MaterializedParamKey; + +typedef struct { + void* materializedParam; // The materialized object +} MaterializedParamEntry; + +// Custom hash and equality functions for MaterializedParamKey. Uses the +// LocalParams object and ZL_MaterializerDesc for the comparison. +size_t MaterializedParamMap_hash(const MaterializedParamKey* key); +bool MaterializedParamMap_eq( + const MaterializedParamKey* lhs, + const MaterializedParamKey* rhs); + +ZL_DECLARE_CUSTOM_MAP_TYPE( + MaterializedParamMap, + MaterializedParamKey, + MaterializedParamEntry); + +/* MPM_validateMaterializedParamId(): + * Validate that paramId is not invalid and not already in use by existing + * local params. + * @return : success, or error if paramId is invalid or already in use + */ +ZL_Report MPM_validateMaterializedParamId( + const ZL_LocalParams* lp, + int paramId); + +/* MPM_addMaterializedRefParam(): + * Add a materialized param to the refParams of the local params. + * @return : success, or error if paramId is already in use + */ +ZL_Report MPM_addMaterializedRefParam( + Arena* allocator, + ZL_OperationContext* opCtx, + ZL_LocalParams* lp, + int paramId, + const void* materializedObj); + +/* MPM_addOrReuseMaterializedParam(): + * Find or create a materialized param in the registry. This function will + * handle cleaning up the materialized object if an error occurs. + * @return : success, or error + */ +ZL_Report MPM_addOrReuseMaterializedParam( + Arena* allocator, + Arena* scratchAllocator, + MaterializedParamMap* materializedParams, + ZL_OperationContext* opCtx, + ZL_LocalParams* lp, + const ZL_MaterializerDesc* matDesc); + +/* MPM_dematerializeAllParams(): + * Function called before MaterializedParamMap_destroy() to free all non-arena + * memory allocated by materializers. + */ +void MPM_dematerializeAllParams(MaterializedParamMap* materializedParams); + +// ****************************************************************** +// MaterializedParamMap: Static functions +// ****************************************************************** + +typedef struct { + ZL_LocalParams modifiedParams; + void* materializedObj; + ZL_MaterializerDesc matDesc; +} OneshotMaterializationResult; +ZL_RESULT_DECLARE_TYPE(OneshotMaterializationResult); + +/** + * @brief Materialize runtime params on-the-fly + * + * Materializes the params using the provided materializer and returns modified + * params with the materialized ref added. The returned context must be cleaned + * up with MPM_dematerializeOneshot() after use. + * + * @param allocator Arena for allocations that should persist during use + * @param opCtx Operation context for error reporting + * @param runtimeParams The runtime params to materialize (will be copied) + * @param matDesc The materializer descriptor + * @return On success, returns modified params and associated objects required + * to dematerialize. + * + * Note: we cannot simply return the modified local params because deallocation + * would require freeing a const pointer. + */ +ZL_RESULT_OF(OneshotMaterializationResult) +MPM_materializeOneshot( + Arena* allocator, + Arena* scratchAllocator, + ZL_OperationContext* opCtx, + const ZL_LocalParams* runtimeParams, + const ZL_MaterializerDesc* matDesc); + +/** + * @brief Clean up on-the-fly materialized params + * + * Dematerializes the object and frees all associated resources. + */ +void MPM_dematerializeOneshot( + Arena* allocator, + OneshotMaterializationResult* matResult); + +ZL_END_C_DECLS + +#endif diff --git a/src/openzl/compress/name.c b/src/openzl/compress/name.c index 205877821..17cf65c9b 100644 --- a/src/openzl/compress/name.c +++ b/src/openzl/compress/name.c @@ -7,17 +7,18 @@ static ZL_Report ZL_validatePrefix(const char* prefix, bool isStandard) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const bool hasStandardPrefix = (strncmp(prefix, "!zl.", 4) == 0); if (isStandard) { - ZL_RET_R_IF_NOT( - invalidName, + ZL_ERR_IF_NOT( hasStandardPrefix, + invalidName, "Standard name \"%s\" doesn't start with \"!zl.\"", prefix); } else { - ZL_RET_R_IF( - invalidName, + ZL_ERR_IF( hasStandardPrefix, + invalidName, "User defined anchor name \"%s\" cannot start with the " "standard prefix \"!zl.\"", prefix); @@ -29,24 +30,24 @@ static ZL_Report ZL_validatePrefix(const char* prefix, bool isStandard) ++idx; } for (; prefix[idx] != '\0'; ++idx) { - ZL_RET_R_IF_EQ( - invalidName, + ZL_ERR_IF_EQ( prefix[idx], '!', + invalidName, "Name \"%s\" contains '!', which denotes that a name is an " "anchor, and is only allowed in the first byte of the name", prefix); - ZL_RET_R_IF_EQ( - invalidName, + ZL_ERR_IF_EQ( prefix[idx], '#', + invalidName, "Name \"%s\" contains '#', which is not allowed in names", prefix); } - ZL_RET_R_IF_GT( - invalidName, + ZL_ERR_IF_GT( idx, ZL_PREFIX_MAX_LEN, + invalidName, "Name \"%s\" is too long. Names must be no more than %d characters", prefix, ZL_PREFIX_MAX_LEN); @@ -59,17 +60,18 @@ ZL_Report ZL_Name_init( const char* prefix, ZL_IDType uniqueID) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (prefix == NULL) { prefix = ""; } - ZL_RET_R_IF_ERR(ZL_validatePrefix(prefix, false)); + ZL_ERR_IF_ERR(ZL_validatePrefix(prefix, false)); size_t prefixLen = strlen(prefix); ZL_ASSERT_LE(prefixLen, ZL_NAME_MAX_LEN); { char* prefixStorage = ALLOC_Arena_calloc(arena, ZL_NAME_STORAGE_SIZE); - ZL_RET_R_IF_NULL(allocation, prefixStorage); + ZL_ERR_IF_NULL(prefixStorage, allocation); strcpy(prefixStorage, prefix); prefix = prefixStorage; } @@ -84,16 +86,16 @@ ZL_Report ZL_Name_init( } char* unique = ALLOC_Arena_calloc(arena, ZL_NAME_STORAGE_SIZE); - ZL_RET_R_IF_NULL(allocation, unique); + ZL_ERR_IF_NULL(unique, allocation); const int nameLen = snprintf(unique, ZL_NAME_STORAGE_SIZE, "%s#%u", prefix, uniqueID); ZL_ASSERT_LT(nameLen, ZL_NAME_STORAGE_SIZE); ZL_ASSERT_EQ(nameLen, (int)strlen(unique)); - ZL_RET_R_IF_LT( - invalidName, + ZL_ERR_IF_LT( nameLen, 0, + invalidName, "Name formatting for \"%s\" failed", prefix); diff --git a/src/openzl/compress/name.h b/src/openzl/compress/name.h index 1546775b2..a7dd19c42 100644 --- a/src/openzl/compress/name.h +++ b/src/openzl/compress/name.h @@ -81,6 +81,11 @@ ZL_INLINE ZL_Name ZL_Name_wrapKey(const char* key) return name; } +ZL_INLINE bool ZL_keyIsAnchor(const char* key) +{ + return key[0] == '!'; +} + /// @returns True if the name object is empty (standard graphs / nodes don't /// fill their ZL_Name) ZL_INLINE bool ZL_Name_isEmpty(const ZL_Name* name) diff --git a/src/openzl/compress/nodemgr.c b/src/openzl/compress/nodemgr.c index 840cc5271..4ffb8afc9 100644 --- a/src/openzl/compress/nodemgr.c +++ b/src/openzl/compress/nodemgr.c @@ -11,11 +11,12 @@ static ZL_Report NM_fillStandardNodesCallback(void* opaque, ZL_NodeID node, const CNode* cnode) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); Nodes_manager* nmgr = opaque; const ZL_Name name = CNODE_getNameObj(cnode); NodeMap_Insert insert = NodeMap_insertVal(&nmgr->nameMap, (NodeMap_Entry){ name, node }); - ZL_RET_R_IF(allocation, insert.badAlloc); + ZL_ERR_IF(insert.badAlloc, allocation); ZL_ASSERT_EQ(insert.ptr->val.nid, node.nid); return ZL_returnSuccess(); } @@ -27,7 +28,8 @@ static ZL_Report NM_fillStandardNodes(Nodes_manager* nmgr) ZL_Report NM_init(Nodes_manager* nmgr, ZL_OperationContext* opCtx) { - ZL_RET_R_IF_ERR(CTM_init(&nmgr->ctm)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_ERR(CTM_init(&nmgr->ctm, opCtx)); nmgr->nameMap = NodeMap_create(ZL_ENCODER_GRAPH_LIMIT); nmgr->opCtx = opCtx; return NM_fillStandardNodes(nmgr); @@ -66,6 +68,7 @@ static CNodeID NM_CNodeID_fromNodeID(ZL_NodeID nodeid) static ZL_Report NM_registerName(Nodes_manager* nmgr, ZL_NodeID node) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const CNode* cnode = CTM_getCNode(&nmgr->ctm, NM_CNodeID_fromNodeID(node)); ZL_ASSERT_NN(cnode); @@ -76,12 +79,11 @@ static ZL_Report NM_registerName(Nodes_manager* nmgr, ZL_NodeID node) if (insert.badAlloc || !insert.inserted) { CTM_rollback( &nmgr->ctm, NM_CNodeID_fromNodeID(node)); // Rollback the state - ZL_RET_R_IF(allocation, insert.badAlloc); + ZL_ERR_IF(insert.badAlloc, allocation); ZL_ASSERT(name.isAnchor, "Non-anchor is guaranteed to be unique"); - ZL_RET_R_ERR( - invalidName, - "Node anchor name \"%s\" is not unique!", - ZL_Name_unique(&name)); + ZL_ERR(invalidName, + "Node anchor name \"%s\" is not unique!", + ZL_Name_unique(&name)); } return ZL_returnSuccess(); } @@ -91,6 +93,7 @@ NM_registerCustomTransform( Nodes_manager* nmgr, const InternalTransform_Desc* ctd) { + ZL_RESULT_DECLARE_SCOPE(ZL_NodeID, NULL); ZL_ASSERT_NN(ctd); ZL_DLOG(BLOCK, "NM_registerCustomTransform '%s'", @@ -99,13 +102,13 @@ NM_registerCustomTransform( // WARNING: Must not fail before this line otherwise opaque will be leaked ZL_RESULT_OF(CNodeID) cnodeidResult = CTM_registerCustomTransform(&nmgr->ctm, ctd); - ZL_RET_T_IF_ERR(ZL_NodeID, cnodeidResult); + ZL_ERR_IF_ERR(cnodeidResult); ZL_NodeID gnid = NM_NodeID_fromCNodeID(ZL_RES_value(cnodeidResult)); ZL_DLOG(SEQ, "Transform '%s' gets session ID %u", STR_REPLACE_NULL(ctd->publicDesc.name), gnid); - ZL_RET_T_IF_ERR(ZL_NodeID, NM_registerName(nmgr, gnid)); + ZL_ERR_IF_ERR(NM_registerName(nmgr, gnid)); return ZL_RESULT_WRAP_VALUE(ZL_NodeID, gnid); } @@ -117,6 +120,7 @@ NM_registerStandardTransform( unsigned minFormatVersion, unsigned maxFormatVersion) { + ZL_RESULT_DECLARE_SCOPE(ZL_NodeID, NULL); ZL_DLOG(BLOCK, "NM_registerStandardTransform"); ZL_ASSERT_NN(nmgr); ZL_ASSERT_NULL(ctd->publicDesc.opaque.freeFn); @@ -124,9 +128,9 @@ NM_registerStandardTransform( ZL_RESULT_OF(CNodeID) cnodeidResult = CTM_registerStandardTransform( &nmgr->ctm, ctd, minFormatVersion, maxFormatVersion); - ZL_RET_T_IF_ERR(ZL_NodeID, cnodeidResult); + ZL_ERR_IF_ERR(cnodeidResult); ZL_NodeID gnid = NM_NodeID_fromCNodeID(ZL_RES_value(cnodeidResult)); - ZL_RET_T_IF_ERR(ZL_NodeID, NM_registerName(nmgr, gnid)); + ZL_ERR_IF_ERR(NM_registerName(nmgr, gnid)); return ZL_RESULT_WRAP_VALUE( ZL_NodeID, NM_NodeID_fromCNodeID(ZL_RES_value(cnodeidResult))); } @@ -134,6 +138,7 @@ NM_registerStandardTransform( ZL_RESULT_OF(ZL_NodeID) NM_parameterizeNode(Nodes_manager* nmgr, const ZL_ParameterizedNodeDesc* desc) { + ZL_RESULT_DECLARE_SCOPE(ZL_NodeID, NULL); ZL_DLOG(BLOCK, "NM_parameterizeNode"); const ZL_NodeID nodeid = desc->node; const CNode* const srcCNode = NM_getCNode(nmgr, nodeid); @@ -141,9 +146,9 @@ NM_parameterizeNode(Nodes_manager* nmgr, const ZL_ParameterizedNodeDesc* desc) ZL_ASSERT_NN(nmgr); ZL_RESULT_OF(CNodeID) cnodeidResult = CTM_parameterizeNode(&nmgr->ctm, srcCNode, desc); - ZL_RET_T_IF_ERR(ZL_NodeID, cnodeidResult); + ZL_ERR_IF_ERR(cnodeidResult); ZL_NodeID gnid = NM_NodeID_fromCNodeID(ZL_RES_value(cnodeidResult)); - ZL_RET_T_IF_ERR(ZL_NodeID, NM_registerName(nmgr, gnid)); + ZL_ERR_IF_ERR(NM_registerName(nmgr, gnid)); return ZL_RESULT_WRAP_VALUE( ZL_NodeID, NM_NodeID_fromCNodeID(ZL_RES_value(cnodeidResult))); } @@ -159,6 +164,10 @@ const CNode* NM_getCNode(const Nodes_manager* nmgr, ZL_NodeID nodeid) ZL_NodeID NM_getNodeByName(const Nodes_manager* nmgr, const char* node) { + // Lookup should not be done using anchor names + if (node == NULL || ZL_keyIsAnchor(node)) { + return ZL_NODE_ILLEGAL; + } const ZL_Name key = ZL_Name_wrapKey(node); const NodeMap_Entry* entry = NodeMap_find(&nmgr->nameMap, &key); if (entry != NULL) { @@ -174,11 +183,12 @@ ZL_Report NM_forEachNode( void* opaque, const ZL_Compressor* compressor) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const size_t nbCNodes = CTM_nbCNodes(&nmgr->ctm); for (ZL_IDType id = 0; id < nbCNodes; ++id) { CNodeID cnodeID = { id }; ZL_NodeID nodeID = NM_NodeID_fromCNodeID(cnodeID); - ZL_RET_R_IF_ERR(callback(opaque, compressor, nodeID)); + ZL_ERR_IF_ERR(callback(opaque, compressor, nodeID)); } return ZL_returnSuccess(); } diff --git a/src/openzl/compress/private_nodes.h b/src/openzl/compress/private_nodes.h index 8fdf08da6..30764099f 100644 --- a/src/openzl/compress/private_nodes.h +++ b/src/openzl/compress/private_nodes.h @@ -61,6 +61,15 @@ extern "C" { // Only use in scenarios where the condition is guaranteed to be true. #define ZL_NODE_DEDUP_NUM_TRUSTED (ZL_NodeID){ZL_PrivateStandardNodeID_dedup_num_trusted} +// bitSplit +// Input: 1 numeric stream (all widths supported) +// Output: N numeric streams (one per bit range specified in parameters) +// Parameters: Array of bit widths [w₀, w₁, ..., wₙ₋₁] (LSB to MSB order) +// Result: Splits each element by bit ranges into multiple streams +// Note: Fully reversible. Parameters required (empty params = error). +// If sum(widths) < element_width, top bits must be zero. +#define ZL_NODE_BITSPLIT (ZL_NodeID){ZL_PrivateStandardNodeID_bitSplit} + // Internal node for conversion from Serial to String // Requires passing parameters, documented in encode_conversion_binding.h #define ZL_NODE_SETSTRINGLENS (ZL_NodeID){ZL_PrivateStandardNodeID_set_string_lens} @@ -129,6 +138,8 @@ typedef enum { ZL_PrivateStandardNodeID_dedup_num_trusted, + ZL_PrivateStandardNodeID_bitSplit, + // Deprecated nodes that should not be used in new code. // We retain support for testing purposes. @@ -143,6 +154,8 @@ typedef enum { ZL_PrivateStandardNodeID_transpose_split4_deprecated, ZL_PrivateStandardNodeID_transpose_split8_deprecated, + ZL_PrivateStandardNodeID_lz4, + ZL_PrivateStandardNodeID_end // last id, used to detect out-of-bound enum // values } ZL_PrivateStandardNodeID; @@ -191,6 +204,19 @@ typedef enum { ZL_PrivateStandardGraphID_split_struct, ZL_PrivateStandardGraphID_split_numeric, ZL_PrivateStandardGraphID_split_string, + ZL_PrivateStandardGraphID_sddl2_chunk, + + ZL_PrivateStandardGraphID_n_to_n, + + ZL_PrivateStandardGraphID_merge_sorted, + ZL_PrivateStandardGraphID_transpose_split, + + ZL_PrivateStandardGraphID_interpret_num8_compress, + ZL_PrivateStandardGraphID_interpret_num16_compress, + ZL_PrivateStandardGraphID_interpret_num32_compress, + ZL_PrivateStandardGraphID_interpret_num64_compress, + + ZL_PrivateStandardGraphID_compress_small_lengths, ZL_PrivateStandardGraphID_end // last id, used to detect out-of-bound enum // values @@ -217,6 +243,7 @@ typedef enum { #define ZL_GRAPH_BITPACK_SERIAL (ZL_GraphID){ZL_PrivateStandardGraphID_bitpack_serial} #define ZL_GRAPH_BITPACK_INT (ZL_GraphID){ZL_PrivateStandardGraphID_bitpack_int} +#define ZL_GRAPH_SDDL2_CHUNK (ZL_GraphID){ZL_PrivateStandardGraphID_sddl2_chunk} /** * Create a tokenize delta field lz graph. @@ -267,6 +294,44 @@ typedef enum { #define ZL_GRAPH_SPLIT_NUMERIC (ZL_GraphID){ZL_PrivateStandardGraphID_split_numeric} #define ZL_GRAPH_SPLIT_STRING (ZL_GraphID){ZL_PrivateStandardGraphID_split_string} +#define ZL_GRAPH_N_TO_N (ZL_GraphID){ZL_PrivateStandardGraphID_n_to_n} + +#define ZL_GRAPH_INTERPRET_NUM8_COMPRESS (ZL_GraphID){ZL_PrivateStandardGraphID_interpret_num8_compress} +#define ZL_GRAPH_INTERPRET_NUM16_COMPRESS (ZL_GraphID){ZL_PrivateStandardGraphID_interpret_num16_compress} +#define ZL_GRAPH_INTERPRET_NUM32_COMPRESS (ZL_GraphID){ZL_PrivateStandardGraphID_interpret_num32_compress} +#define ZL_GRAPH_INTERPRET_NUM64_COMPRESS (ZL_GraphID){ZL_PrivateStandardGraphID_interpret_num64_compress} + +/** + * Specializes in compressing small lengths that are mostly < 255. + * For example: literal & match lengths from LZ. + */ +#define ZL_GRAPH_COMPRESS_SMALL_LENGTHS (ZL_GraphID){ZL_PrivateStandardGraphID_compress_small_lengths} + +/** + * This graph selects between the merge sorted transform and a backup graph + * based on the number of sorted runs in the input. Chooses backup graph if + * width is not 4. + * + * Input: A stream of width 1, 2, 4, or 8. + */ +#define ZL_GRAPH_MERGE_SORTED \ + (ZL_GraphID) \ + { \ + ZL_PrivateStandardGraphID_merge_sorted \ + } + +/** + * This graph selects between different transpose implementations based on + * element width. + * + * Input: A stream of width 1, 2, 4, or 8. + */ +#define ZL_GRAPH_TRANSPOSE_SPLIT \ + (ZL_GraphID) \ + { \ + ZL_PrivateStandardGraphID_transpose_split \ + } + // clang-format on #if defined(__cplusplus) diff --git a/src/openzl/compress/rtgraphs.c b/src/openzl/compress/rtgraphs.c index d462d15b2..3a27f7948 100644 --- a/src/openzl/compress/rtgraphs.c +++ b/src/openzl/compress/rtgraphs.c @@ -17,20 +17,20 @@ ZL_Report RTGM_init(RTGraph* rtgm) ZL_DLOG(OBJ + 1, "RTGM_init"); ZL_ASSERT_NN(rtgm); ZL_ASSERT_NULL(rtgm->streamArena); // not initialized yet ! + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); rtgm->streamArena = ALLOC_HeapArena_create(); // using heap arena by default, can be // changed later with // RTGM_setStreamArenaType() - ZL_RET_R_IF_NULL(allocation, rtgm->streamArena); + ZL_ERR_IF_NULL(rtgm->streamArena, allocation); rtgm->rtsidsArena = ALLOC_StackArena_create(); - ZL_RET_R_IF_NULL(allocation, rtgm->rtsidsArena); + ZL_ERR_IF_NULL(rtgm->rtsidsArena, allocation); VECTOR_INIT(rtgm->nodes, ZL_runtimeNodeLimit(ZL_MAX_FORMAT_VERSION)); VECTOR_INIT(rtgm->streams, ZL_runtimeStreamLimit(ZL_MAX_FORMAT_VERSION)); rtgm->nextStreamUniqueID = 0; return ZL_returnSuccess(); } -static void RTGM_clearRTStreamsFrom(RTGraph* rtgraph, unsigned rank); void RTGM_reset(RTGraph* rtgm) { VECTOR_CLEAR(rtgm->nodes); @@ -55,6 +55,7 @@ void RTGM_destroy(RTGraph* rtgm) ZL_Report RTGM_setStreamArenaType(RTGraph* rtgm, ZL_DataArenaType sat) { ZL_ASSERT_NN(rtgm); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Such modification should only be done when there is no stream, // i.e. between compression sessions ZL_ASSERT_EQ(VECTOR_SIZE(rtgm->streams), 0); @@ -67,9 +68,9 @@ ZL_Report RTGM_setStreamArenaType(RTGraph* rtgm, ZL_DataArenaType sat) newArena = ALLOC_StackArena_create(); break; default: - ZL_RET_R_IF(parameter_invalid, 1, "Stream Arena type is invalid"); + ZL_ERR_IF(1, parameter_invalid, "Stream Arena type is invalid"); } - ZL_RET_R_IF_NULL(allocation, newArena); + ZL_ERR_IF_NULL(newArena, allocation); ALLOC_Arena_freeArena(rtgm->streamArena); rtgm->streamArena = newArena; return ZL_returnSuccess(); @@ -91,18 +92,15 @@ RTGM_createNode( const RTStreamID* inRtsids, size_t nbInRtsids) { + ZL_RESULT_DECLARE_SCOPE(RTNodeID, NULL); // T258630070 ZL_DLOG(SEQ, "RTGM_createNode (cnode: %s)", CNODE_getName(cnode)); ZL_ASSERT_NN(rtgraph); size_t const nbOutSingletons = CNODE_getNbOut1s(cnode); // Assign new RTnode size_t const rtsids_byteSize = sizeof(RTStreamID) * nbInRtsids; - ALLOC_ARENA_MALLOC_CHECKED_T( - RTStreamID, - rtsids_stored, - nbInRtsids, - rtgraph->rtsidsArena, - RTNodeID); + ALLOC_ARENA_MALLOC_CHECKED( + RTStreamID, rtsids_stored, nbInRtsids, rtgraph->rtsidsArena); ZL_memcpy(rtsids_stored, inRtsids, rtsids_byteSize); RTNode node = { .cnode = cnode, @@ -113,22 +111,19 @@ RTGM_createNode( ZL_IDType const rtnodeid = (ZL_IDType)VECTOR_SIZE(rtgraph->nodes); // This allocation can fail if we ran into the limit // ZL_runtimeNodeLimit() - ZL_RET_T_IF_NOT( - RTNodeID, - temporaryLibraryLimitation, - VECTOR_PUSHBACK(rtgraph->nodes, node)); + ZL_ERR_IF_NOT( + VECTOR_PUSHBACK(rtgraph->nodes, node), temporaryLibraryLimitation); // Reserve capacity to register out-streams // This allocation can fail if we ran into the limit // ZL_runtimeStreamLimit() size_t const newSize = VECTOR_SIZE(rtgraph->streams) + nbOutSingletons; - ZL_RET_T_IF_NE( - RTNodeID, - temporaryLibraryLimitation, + ZL_ERR_IF_NE( VECTOR_RESIZE(rtgraph->streams, newSize), - newSize); + newSize, + temporaryLibraryLimitation); - return ZL_RESULT_WRAP_VALUE(RTNodeID, (RTNodeID){ rtnodeid }); + return ZL_WRAP_VALUE((RTNodeID){ rtnodeid }); } size_t RTGM_getNbNodes(RTGraph const* rtnm) @@ -236,6 +231,7 @@ RTGM_addStream( size_t eltWidth, size_t eltsCapacity) { + ZL_RESULT_DECLARE_SCOPE(RTStreamID, NULL); ZL_DLOG(BLOCK, "RTGM_addStream (outcomeID=%i)", outcomeID); ZL_ASSERT_NN(rtgraph); RTNode* const rtnode = &VECTOR_AT(rtgraph->nodes, rtnodeid.rtnid); @@ -244,11 +240,10 @@ RTGM_addStream( // Singleton output // space for Singleton is presumed already reserved ZL_ASSERT_NN(rtnode); - ZL_RET_T_IF_GE( - RTStreamID, - successor_invalid, + ZL_ERR_IF_GE( rtnode->startOutRtsids + (ZL_IDType)outcomeID, VECTOR_SIZE(rtgraph->streams), + successor_invalid, "attempted to provide an invalid Successor"); rtsid = rtnode->startOutRtsids + (ZL_IDType)outcomeID; } else { // (isVO) @@ -257,42 +252,41 @@ RTGM_addStream( // Note : requires serialized stream creation (no concurrency) ZL_DLOG(SEQ, "adding a VO Stream"); rtsid = (ZL_IDType)VECTOR_SIZE(rtgraph->streams); - ZL_RET_T_IF( - RTStreamID, - allocation, - VECTOR_RESIZE(rtgraph->streams, rtsid + 1) <= rtsid); + ZL_ERR_IF( + VECTOR_RESIZE(rtgraph->streams, rtsid + 1) <= rtsid, + allocation); } ZL_DLOG(SEQ, "new RT_stream at ID : %u", rtsid); RT_CStream* const rtStream = &VECTOR_AT(rtgraph->streams, rtsid); - ZL_RET_T_IF_NN( - RTStreamID, - streamParameter_invalid, + ZL_ERR_IF_NN( rtStream->stream, + streamParameter_invalid, "this stream ID is already in use"); ZL_Data* const stream = STREAM_createInArena( rtgraph->streamArena, RTGM_genStreamID(rtgraph)); - ZL_RET_T_IF_NULL(RTStreamID, allocation, stream, "Failed creating stream"); + ZL_ERR_IF_NULL(stream, allocation, "Failed creating stream"); ZL_Report const report = STREAM_reserve(stream, streamtype, eltWidth, eltsCapacity); if (ZL_isError(report)) { STREAM_free(stream); - ZL_RET_T_IF_ERR(RTStreamID, report); + ZL_ERR_IF_ERR(report); } rtStream->stream = stream; ZL_ASSERT_GE(outcomeID, 0); rtStream->outcomeID = (ZL_IDType)outcomeID; rtnode->nbOutStreams++; - return ZL_RESULT_WRAP_VALUE(RTStreamID, (RTStreamID){ rtsid }); + return ZL_WRAP_VALUE((RTStreamID){ rtsid }); } // maps Input to internal Stream ZL_RESULT_OF(RTStreamID) RTGM_refInput(RTGraph* rtgraph, const ZL_Data* stream) { + ZL_RESULT_DECLARE_SCOPE(RTStreamID, NULL); ZL_DLOG(SEQ, "RTGM_refInput (id:%zu, size:%zu)", VECTOR_SIZE(rtgraph->streams), @@ -300,16 +294,10 @@ RTGM_refInput(RTGraph* rtgraph, const ZL_Data* stream) RT_CStream rtstream = { .stream = STREAM_createInArena( rtgraph->streamArena, RTGM_genStreamID(rtgraph)) }; - ZL_RET_T_IF_NULL(RTStreamID, allocation, rtstream.stream); - ZL_RET_T_IF_ERR( - RTStreamID, - STREAM_refStreamWithoutRefcount(rtstream.stream, stream)); - ZL_RET_T_IF_NOT( - RTStreamID, - allocation, - VECTOR_PUSHBACK(rtgraph->streams, rtstream)); - return ZL_RESULT_WRAP_VALUE( - RTStreamID, + ZL_ERR_IF_NULL(rtstream.stream, allocation); + ZL_ERR_IF_ERR(STREAM_refStreamWithoutRefCount(rtstream.stream, stream)); + ZL_ERR_IF_NOT(VECTOR_PUSHBACK(rtgraph->streams, rtstream), allocation); + return ZL_WRAP_VALUE( (RTStreamID){ (ZL_IDType)(VECTOR_SIZE(rtgraph->streams) - 1) }); } @@ -332,6 +320,7 @@ RTGM_refContentIntoNewStream( ZL_Data const* src, size_t offsetBytes) { + ZL_RESULT_DECLARE_SCOPE(RTStreamID, NULL); ZL_DLOG(BLOCK, "RTGM_refContentIntoNewStream"); ZL_ASSERT_NN(rtgraph); RTNode* const rtnode = &VECTOR_AT(rtgraph->nodes, rtnodeid.rtnid); @@ -340,11 +329,10 @@ RTGM_refContentIntoNewStream( // Singleton output // should be already reserved ZL_ASSERT_NN(rtnode); - ZL_RET_T_IF_GE( - RTStreamID, - successor_invalid, + ZL_ERR_IF_GE( rtnode->startOutRtsids + (ZL_IDType)outcomeID, VECTOR_SIZE(rtgraph->streams), + successor_invalid, "attempted to provide an invalid Successor"); rtsid = rtnode->startOutRtsids + (ZL_IDType)outcomeID; } else { // isVO @@ -353,20 +341,19 @@ RTGM_refContentIntoNewStream( // Note : requires serialized stream creation (no concurrency) ZL_DLOG(SEQ, "adding a VO Stream"); rtsid = (ZL_IDType)VECTOR_SIZE(rtgraph->streams); - ZL_RET_T_IF( - RTStreamID, - allocation, - VECTOR_RESIZE(rtgraph->streams, rtsid + 1) <= rtsid); + ZL_ERR_IF( + VECTOR_RESIZE(rtgraph->streams, rtsid + 1) <= rtsid, + allocation); } ZL_Data* const stream = STREAM_createInArena( rtgraph->streamArena, RTGM_genStreamID(rtgraph)); - ZL_RET_T_IF_NULL(RTStreamID, allocation, stream, "Failed creating stream"); + ZL_ERR_IF_NULL(stream, allocation, "Failed creating stream"); ZL_Report err = STREAM_refStreamByteSlice( stream, src, streamtype, offsetBytes, eltWidth, nbElts); if (ZL_isError(err)) { STREAM_free(stream); - ZL_RET_T_IF_ERR(RTStreamID, err); + ZL_ERR_IF_ERR(err); } RT_CStream* const rtStream = &VECTOR_AT(rtgraph->streams, rtsid); @@ -375,7 +362,7 @@ RTGM_refContentIntoNewStream( ZL_ASSERT_GE(outcomeID, 0); rtStream->outcomeID = (ZL_IDType)outcomeID; rtnode->nbOutStreams++; - return ZL_RESULT_WRAP_VALUE(RTStreamID, (RTStreamID){ rtsid }); + return ZL_WRAP_VALUE((RTStreamID){ rtsid }); } void RTGM_storeStream(RTGraph* rtgraph, RTStreamID rtstreamid) @@ -419,10 +406,14 @@ const ZL_Data* RTGM_getRStream(const RTGraph* rtgraph, RTStreamID rtstreamid) * but requires the state to be writable in order to receive the reference */ ZL_Data* RTGM_getWStream(RTGraph* rtgraph, RTStreamID rtstreamid) { + ZL_DLOG(SEQ, "RTGM_getWStream (streamid==%u)", rtstreamid.rtsid); ZL_ASSERT_NN(rtgraph); ZL_IDType const rtsid = rtstreamid.rtsid; - ZL_Data* stream = VECTOR_AT(rtgraph->streams, rtsid).stream; + ZL_Data* const stream = VECTOR_AT(rtgraph->streams, rtsid).stream; + if (stream == NULL) { + ZL_DLOG(ERROR, "streamID=%u is invalid", rtsid); + } ZL_ASSERT_NN(stream); // should be valid return stream; } @@ -468,6 +459,10 @@ void RTGM_guardRTStream( RTStreamID rtstream, unsigned protectRank) { + ZL_DLOG(SEQ, + "RTGM_guardRTStream (rtstream=%u, protectRank=%u)", + rtstream.rtsid, + protectRank); if (protectRank == 0) return; ZL_IDType const rtsid = rtstream.rtsid; @@ -489,6 +484,10 @@ void RTGM_clearRTStream( RTStreamID rtstream, unsigned protectRank) { + ZL_DLOG(SEQ, + "RTGM_clearRTStream (rtstream=%u, protectRank=%u)", + rtstream.rtsid, + protectRank); ZL_ASSERT_NN(rtgraph); ZL_IDType const rtsid = rtstream.rtsid; RT_CStream* const rtcs = &VECTOR_AT(rtgraph->streams, rtsid); @@ -507,7 +506,7 @@ void RTGM_clearRTStream( // Remove all buffers created after that rank id. // WARNING ! Very dangerous operation (stateful) // To be used _ONLY_ in specific circumstances -static void RTGM_clearRTStreamsFrom(RTGraph* rtgraph, unsigned rank) +void RTGM_clearRTStreamsFrom(RTGraph* rtgraph, unsigned rank) { size_t const nbStreams = VECTOR_SIZE(rtgraph->streams); if (rank == nbStreams) diff --git a/src/openzl/compress/rtgraphs.h b/src/openzl/compress/rtgraphs.h index 744aa166f..39b0e2b1b 100644 --- a/src/openzl/compress/rtgraphs.h +++ b/src/openzl/compress/rtgraphs.h @@ -183,6 +183,11 @@ RTStreamID RTGM_getOutStreamID(const RTGraph* rtnm, RTNodeID rtnid, int outIdx); // To be used _ONLY_ in specific circumstances void RTGM_clearNodesFrom(RTGraph* rtgraph, unsigned nodeRank); +// Remove all streams created after that rank id +// WARNING ! Very dangerous operation (stateful) +// To be used _ONLY_ in specific circumstances +void RTGM_clearRTStreamsFrom(RTGraph* rtgraph, unsigned rank); + /* ===== Methods associated to RTStreams ===== */ // RTGM_refInput() : diff --git a/src/openzl/compress/segmenter.c b/src/openzl/compress/segmenter.c index e8c51f444..7de19fd12 100644 --- a/src/openzl/compress/segmenter.c +++ b/src/openzl/compress/segmenter.c @@ -22,7 +22,8 @@ struct ZL_Segmenter_s { ZL_Data** inputs; size_t nbInputs; size_t* consumed; - Arena* arena; + size_t numChunks; + Arena* sessionArena; Arena* chunkArena; }; @@ -49,30 +50,31 @@ ZL_Segmenter* SEGM_init( size_t nbInputs, ZL_CCtx* cctx, RTGraph* rtgm, - Arena* arena, + Arena* sessionArena, Arena* chunkArena) { ZL_DLOG(BLOCK, "SEGM_init"); - ZL_Segmenter* seg = ALLOC_Arena_malloc(arena, sizeof(ZL_Segmenter)); + ZL_Segmenter* seg = ALLOC_Arena_malloc(sessionArena, sizeof(ZL_Segmenter)); if (seg == NULL) return NULL; - seg->segDesc = segDesc; - seg->cctx = cctx; - seg->rtgm = rtgm; - seg->arena = arena; - seg->chunkArena = chunkArena; + seg->segDesc = segDesc; + seg->numChunks = 0; + seg->cctx = cctx; + seg->rtgm = rtgm; + seg->sessionArena = sessionArena; + seg->chunkArena = chunkArena; ZL_ASSERT_EQ(nbInputs, VECTOR_SIZE(rtgm->streams)); seg->nbInputs = nbInputs; - seg->inputs = ALLOC_Arena_malloc(arena, nbInputs * sizeof(ZL_Data*)); + seg->inputs = ALLOC_Arena_malloc(sessionArena, nbInputs * sizeof(ZL_Data*)); if (seg->inputs == NULL) return NULL; - seg->consumed = ALLOC_Arena_calloc(arena, nbInputs * sizeof(size_t)); + seg->consumed = ALLOC_Arena_calloc(sessionArena, nbInputs * sizeof(size_t)); if (seg->consumed == NULL) return NULL; for (size_t n = 0; n < nbInputs; n++) { seg->inputs[n] = - STREAM_createInArena(arena, (ZL_DataID){ (ZL_IDType)n }); - ZL_Report ref = STREAM_refStreamWithoutRefcount( + STREAM_createInArena(sessionArena, (ZL_DataID){ (ZL_IDType)n }); + ZL_Report ref = STREAM_refStreamWithoutRefCount( seg->inputs[n], VECTOR_AT(rtgm->streams, n).stream); if (ZL_isError(ref)) return NULL; @@ -89,35 +91,35 @@ ZL_Segmenter* SEGM_init( /* === internal actions === */ /** - * Implementation Notes for SEGM_runSegmenter(): - * - * Delegation Strategy: This function acts as a thin wrapper around the - * user-provided segmenter function, handling validation and error checking - * while delegating the actual chunking logic to the registered callback. - * - * Consumption Validation: Only accets complete input consumption on - * successful execution. - * - * Error Propagation: Preserves the original error from the segmenter function. - * This ensures the root cause of failures is visible to callers. + * SEGM_runSegmenter(): acts as a thin wrapper around the user-provided + * segmenter callback. User code is in charge of actual chunking logic. The + * wrapper just checks that all conditions are correctly respected. In current + * implementation, it enforces that input is entirely consumed. */ ZL_Report SEGM_runSegmenter(ZL_Segmenter* segCtx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(segCtx); ZL_ASSERT_NN(segCtx); ZL_SegmenterFn const segfn = segCtx->segDesc->segmenterFn; ZL_ASSERT_NN(segfn); - ZL_Report const r = segfn(segCtx); - if (!ZL_isError(r)) { - for (size_t n = 0; n < segCtx->nbInputs; n++) { - ZL_RET_R_IF_LT( - segmenter_inputNotConsumed, - segCtx->consumed[n], - ZL_Data_numElts(segCtx->inputs[n]), - "input %zu wasn't entirely consumed", - n); - } + ZL_ERR_IF_ERR(segfn(segCtx), "Segmenter function failed"); + + // Check post-conditions + ZL_ERR_IF_EQ( + segCtx->numChunks, + (size_t)0, + segmenter_noSegments, + "segmenter must produce at least one segment"); + for (size_t n = 0; n < segCtx->nbInputs; n++) { + ZL_ERR_IF_LT( + segCtx->consumed[n], + ZL_Data_numElts(segCtx->inputs[n]), + segmenter_inputNotConsumed, + "input %zu wasn't entirely consumed", + n); } - return r; + + return ZL_returnSuccess(); } /* === accessors === */ @@ -152,6 +154,12 @@ ZL_RefParam ZL_Segmenter_getLocalRefParam( return LP_getLocalRefParam(&segCtx->segDesc->localParams, refParamId); } +const ZL_LocalParams* ZL_Segmenter_getLocalParams(const ZL_Segmenter* segCtx) +{ + ZL_ASSERT_NN(segCtx); + return &segCtx->segDesc->localParams; +} + /* Consultation request for Custom Successor Graphs */ ZL_GraphIDList ZL_Segmenter_getCustomGraphs(const ZL_Segmenter* segCtx) { @@ -197,7 +205,7 @@ const ZL_Input* ZL_Segmenter_getInput( if (alreadyConsumed > ZL_Data_numElts(sessionInput)) return NULL; ZL_Data* const chunkInput = STREAM_createInArena( - segCtx->arena, (ZL_DataID){ (ZL_IDType)inputID }); + segCtx->sessionArena, (ZL_DataID){ (ZL_IDType)inputID }); if (chunkInput == NULL) return NULL; ZL_Report r = STREAM_refEndStreamWithoutRefCount( @@ -233,7 +241,7 @@ ZL_Report ZL_Segmenter_getNumElts( * */ void* ZL_Segmenter_getScratchSpace(ZL_Segmenter* segCtx, size_t size) { - return ALLOC_Arena_malloc(segCtx->arena, size); + return ALLOC_Arena_malloc(segCtx->sessionArena, size); } /** @@ -265,6 +273,14 @@ ZL_Report ZL_Segmenter_processChunk( ZL_GraphID startingGraphID, const ZL_RuntimeGraphParameters* rGraphParams) { + CWAYPOINT( + on_ZL_Segmenter_processChunk_start, + segCtx, + numElts, + numInputs, + startingGraphID, + rGraphParams); + ZL_ASSERT_NN(segCtx); ZL_CCtx* const cctx = segCtx->cctx; ZL_ASSERT_NN(cctx); @@ -283,7 +299,7 @@ ZL_Report ZL_Segmenter_processChunk( ZL_Data_numElts(segCtx->inputs[n]), parameter_invalid); chunkInputs[n] = STREAM_createInArena( - segCtx->arena, (ZL_DataID){ (ZL_IDType)n }); + segCtx->chunkArena, (ZL_DataID){ (ZL_IDType)n }); ZL_ERR_IF_NULL(chunkInputs[n], allocation); ZL_ERR_IF_ERR(STREAM_refStreamSliceWithoutRefCount( chunkInputs[n], @@ -315,6 +331,7 @@ ZL_Report ZL_Segmenter_processChunk( /* depth */ 1)); ZL_Report r = CCTX_flushChunk(cctx, (void*)chunkInputs, numInputs); + segCtx->numChunks++; // clean and exit for (size_t n = 0; n < numInputs; n++) { @@ -323,5 +340,16 @@ ZL_Report ZL_Segmenter_processChunk( STREAM_free(chunkInputs[n]); } CCTX_cleanChunk(cctx); + + CWAYPOINT(on_ZL_Segmenter_processChunk_end, segCtx, r); return r; } + +ZL_CONST_FN +ZL_OperationContext* ZL_Segmenter_getOperationContext(ZL_Segmenter* sctx) +{ + if (sctx == NULL) { + return NULL; + } + return ZL_CCtx_getOperationContext(sctx->cctx); +} diff --git a/src/openzl/compress/segmenter.h b/src/openzl/compress/segmenter.h index 26dc30e73..6fc1a6d9b 100644 --- a/src/openzl/compress/segmenter.h +++ b/src/openzl/compress/segmenter.h @@ -38,7 +38,7 @@ * state * @param rtgm Runtime graph manager, must be reset and initialized for each * chunk - * @param arena Main arena allocator for segmenter context allocation + * @param sessionArena Main arena allocator for segmenter context allocation * @param chunkArena Dedicated arena for chunk-lifetime allocations during * processing * @return Initialized segmenter context, or NULL on initialization failure @@ -52,7 +52,7 @@ ZL_Segmenter* SEGM_init( size_t numInputs, ZL_CCtx* cctx, RTGraph* rtgm, - Arena* arena, + Arena* sessionArena, Arena* chunkArena); /** diff --git a/src/openzl/compress/segmenters/segmenter_numeric.c b/src/openzl/compress/segmenters/segmenter_numeric.c new file mode 100644 index 000000000..14554b41a --- /dev/null +++ b/src/openzl/compress/segmenters/segmenter_numeric.c @@ -0,0 +1,203 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/compress/segmenters/segmenter_numeric.h" +#include "openzl/codecs/zl_segmenters.h" // ZL_SEGMENT_NUM*_FROM_SERIAL +#include "openzl/common/assertion.h" +#include "openzl/compress/private_nodes.h" +#include "openzl/zl_compress.h" // ZL_MIN_CHUNK_SIZE +#include "openzl/zl_compressor.h" +#include "openzl/zl_input.h" +#include "openzl/zl_selector.h" // ZL_LP_INVALID_PARAMID +#include "openzl/zl_version.h" + +#include // INT_MAX + +ZL_Report SEGM_numeric(ZL_Segmenter* sctx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + size_t const numInputs = ZL_Segmenter_numInputs(sctx); + ZL_ASSERT_EQ(numInputs, 1); + const ZL_Input* const input = ZL_Segmenter_getInput(sctx, 0); + ZL_ASSERT_NN(input); + size_t const width = ZL_Input_eltWidth(input); + ZL_ASSERT(width == 1 || width == 2 || width == 4 || width == 8); + + // Note: Currently, shared compile-time default chunk size. + // Tomorrow: global parameter, then local parameter. + size_t const chunkByteSizeMax = ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE; + size_t const chunkEltSizeMax = chunkByteSizeMax / width; + ZL_GraphID const headGraph = ZL_GRAPH_NUMERIC_COMPRESS; + + size_t numElts = ZL_Input_numElts(input); + if (ZL_Segmenter_getCParam(sctx, ZL_CParam_formatVersion) + < ZL_CHUNK_VERSION_MIN) { + ZL_ERR_IF_ERR( + ZL_Segmenter_processChunk(sctx, &numElts, 1, headGraph, NULL)); + return ZL_returnSuccess(); + } + + while (numElts > chunkEltSizeMax) { + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &chunkEltSizeMax, 1, headGraph, NULL)); + numElts -= chunkEltSizeMax; + } + ZL_ASSERT_LE(numElts, chunkEltSizeMax); + ZL_ERR_IF_ERR( + ZL_Segmenter_processChunk(sctx, &numElts, 1, headGraph, NULL)); + + return ZL_returnSuccess(); +} + +/* ---- Serial-input numeric segmenter ---- */ + +ZL_Report SEGM_numFromSerial(ZL_Segmenter* sctx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + size_t const numInputs = ZL_Segmenter_numInputs(sctx); + ZL_ASSERT_EQ(numInputs, 1); + const ZL_Input* const input = ZL_Segmenter_getInput(sctx, 0); + ZL_ASSERT_NN(input); + + /* read element width from local params */ + ZL_IntParam const widthParam = ZL_Segmenter_getLocalIntParam( + sctx, SEGM_NUM_FROM_SERIAL_ELT_WIDTH_ID); + size_t const width = (widthParam.paramId != ZL_LP_INVALID_PARAMID) + ? (size_t)widthParam.paramValue + : 1; + ZL_ERR_IF_NOT( + width == 1 || width == 2 || width == 4 || width == 8, + parameter_invalid); + + /* read chunk size from local params, or use default */ + ZL_IntParam const chunkParam = ZL_Segmenter_getLocalIntParam( + sctx, SEGM_NUM_FROM_SERIAL_CHUNK_BYTE_SIZE_ID); + size_t const chunkByteSizeMax = + (chunkParam.paramId != ZL_LP_INVALID_PARAMID) + ? (size_t)chunkParam.paramValue + : SEGM_NUM_FROM_SERIAL_DEFAULT_CHUNK_SIZE; + + /* align chunk size down to element width */ + size_t const chunkByteSizeAligned = + chunkByteSizeMax - (chunkByteSizeMax % width); + ZL_ERR_IF_NOT(chunkByteSizeAligned > 0, parameter_invalid); + + /* retrieve successor graph (release-mode-checked: a corrupted compressor + * could parameterize to nbCustomGraphs == 0 and cause an OOB read) */ + ZL_GraphIDList const customGraphs = ZL_Segmenter_getCustomGraphs(sctx); + ZL_ERR_IF_LT(customGraphs.nbGraphIDs, 1, parameter_invalid); + ZL_GraphID const headGraph = customGraphs.graphids[0]; + + size_t totalBytes = ZL_Input_contentSize(input); + /* Old wire formats cannot encode segmented output. */ + if (ZL_Segmenter_getCParam(sctx, ZL_CParam_formatVersion) + < ZL_CHUNK_VERSION_MIN) { + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &totalBytes, 1, headGraph, NULL)); + return ZL_returnSuccess(); + } + + while (totalBytes > chunkByteSizeAligned) { + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &chunkByteSizeAligned, 1, headGraph, NULL)); + totalBytes -= chunkByteSizeAligned; + } + ZL_ASSERT_LE(totalBytes, chunkByteSizeAligned); + ZL_ERR_IF_ERR( + ZL_Segmenter_processChunk(sctx, &totalBytes, 1, headGraph, NULL)); + + return ZL_returnSuccess(); +} + +/* ---- Registration helper ---- */ + +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildNumFromSerialSegmenter2( + ZL_Compressor* compressor, + size_t eltByteWidth, + size_t chunkByteSize, + ZL_GraphID successorGraph) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor); + + /* Select the standard segmenter head and default successor + * for this element width */ + ZL_GraphID baseGraph; + ZL_GraphID defaultSuccessor; + switch (eltByteWidth) { + case 1: + baseGraph = ZL_SEGMENT_NUM8_FROM_SERIAL; + defaultSuccessor = ZL_GRAPH_INTERPRET_NUM8_COMPRESS; + break; + case 2: + baseGraph = ZL_SEGMENT_NUM16_FROM_SERIAL; + defaultSuccessor = ZL_GRAPH_INTERPRET_NUM16_COMPRESS; + break; + case 4: + baseGraph = ZL_SEGMENT_NUM32_FROM_SERIAL; + defaultSuccessor = ZL_GRAPH_INTERPRET_NUM32_COMPRESS; + break; + case 8: + baseGraph = ZL_SEGMENT_NUM64_FROM_SERIAL; + defaultSuccessor = ZL_GRAPH_INTERPRET_NUM64_COMPRESS; + break; + default: + ZL_ERR_IF_NOT(0, parameter_invalid); + } + + /* Use default successor if none specified */ + if (!ZL_GraphID_isValid(successorGraph)) { + successorGraph = defaultSuccessor; + } + + /* chunkByteSize == 0 means "use the segmenter's built-in default" + * (uniform convention across the ZL_Compressor_build*Segmenter family). */ + if (chunkByteSize == 0) { + chunkByteSize = ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE; + } + /* Enforce ZL_MIN_CHUNK_SIZE: ZL_compressBound() assumes chunks of at + * least this size; smaller chunks may produce output exceeding the + * bound. The previous "must be at least one element wide" requirement + * is implied (ZL_MIN_CHUNK_SIZE >= 8 >= max eltByteWidth). */ + ZL_ERR_IF_LT(chunkByteSize, ZL_MIN_CHUNK_SIZE, parameter_invalid); + /* Must fit in int (ZL_IntParam::paramValue is int) */ + ZL_ERR_IF_NOT(chunkByteSize <= (size_t)INT_MAX, parameter_invalid); + + /* Parameterize with element width, chunk size, and successor graph. + * Both params must be provided because parameterization replaces + * (not merges) the local params from the base graph. */ + ZL_IntParam intParams[] = { + { .paramId = SEGM_NUM_FROM_SERIAL_ELT_WIDTH_ID, + .paramValue = (int)eltByteWidth }, + { .paramId = SEGM_NUM_FROM_SERIAL_CHUNK_BYTE_SIZE_ID, + .paramValue = (int)chunkByteSize }, + }; + ZL_LocalParams localParams = { + .intParams = { .intParams = intParams, .nbIntParams = 2 }, + }; + ZL_ParameterizedGraphDesc const desc = { + .graph = baseGraph, + .customGraphs = &successorGraph, + .nbCustomGraphs = 1, + .localParams = &localParams, + }; + ZL_GraphID const result = + ZL_Compressor_registerParameterizedGraph(compressor, &desc); + ZL_ERR_IF_NOT(ZL_GraphID_isValid(result), graph_invalid); + return ZL_WRAP_VALUE(result); +} + +ZL_GraphID ZL_Compressor_buildNumFromSerialSegmenter( + ZL_Compressor* compressor, + size_t eltByteWidth, + size_t chunkByteSize, + ZL_GraphID successorGraph) +{ + ZL_RESULT_OF(ZL_GraphID) + res = ZL_Compressor_buildNumFromSerialSegmenter2( + compressor, eltByteWidth, chunkByteSize, successorGraph); + if (ZL_RES_isError(res)) { + return ZL_GRAPH_ILLEGAL; + } else { + return ZL_RES_value(res); + } +} diff --git a/src/openzl/compress/segmenters/segmenter_numeric.h b/src/openzl/compress/segmenters/segmenter_numeric.h new file mode 100644 index 000000000..e0e8d8bb1 --- /dev/null +++ b/src/openzl/compress/segmenters/segmenter_numeric.h @@ -0,0 +1,62 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_COMPRESS_SEGMENTERS_NUMERIC_H +#define ZSTRONG_COMPRESS_SEGMENTERS_NUMERIC_H + +#include "openzl/shared/portability.h" +#include "openzl/zl_segmenter.h" + +ZL_BEGIN_C_DECLS + +ZL_Report SEGM_numeric(ZL_Segmenter* sctx); + +#define SEGM_NUMERIC_DESC \ + { \ + .name = "!zl.segmenter_numeric", \ + .segmenterFn = SEGM_numeric, \ + .inputTypeMasks = &(const ZL_Type){ ZL_Type_numeric }, \ + .numInputs = 1, \ + .lastInputIsVariable = false, \ + } + +/* ---- Serial-input numeric segmenter ---- */ + +/** + * Segmenter that accepts serial input and chunks it by byte size, + * aligned to a configurable element width. + * Chunk size and element width are read from local int params. + * Each chunk is forwarded to the first custom graph. + */ +ZL_Report SEGM_numFromSerial(ZL_Segmenter* sctx); + +/* Local param IDs */ +#define SEGM_NUM_FROM_SERIAL_CHUNK_BYTE_SIZE_ID 300 +#define SEGM_NUM_FROM_SERIAL_ELT_WIDTH_ID 301 + +/* Default chunk size: shared segmenter default */ +#define SEGM_NUM_FROM_SERIAL_DEFAULT_CHUNK_SIZE \ + ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE + +#define SEGM_NUM_FROM_SERIAL_DESC(eltWidth, widthBits, defaultGraphEnumID) \ + { \ + .name = "!zl.segment_num" #widthBits "_from_serial", \ + .segmenterFn = SEGM_numFromSerial, \ + .inputTypeMasks = &(const ZL_Type){ ZL_Type_serial }, \ + .numInputs = 1, \ + .lastInputIsVariable = false, \ + .customGraphs = (const ZL_GraphID[]){ { defaultGraphEnumID } }, \ + .numCustomGraphs = 1, \ + .localParams = { \ + .intParams = { \ + .intParams = (const ZL_IntParam[]){ \ + { .paramId = SEGM_NUM_FROM_SERIAL_ELT_WIDTH_ID, \ + .paramValue = (eltWidth) }, \ + }, \ + .nbIntParams = 1, \ + }, \ + }, \ + } + +ZL_END_C_DECLS + +#endif // ZSTRONG_COMPRESS_SEGMENTERS_NUMERIC_H diff --git a/src/openzl/compress/segmenters/segmenter_serial.c b/src/openzl/compress/segmenters/segmenter_serial.c new file mode 100644 index 000000000..f45ea9ea3 --- /dev/null +++ b/src/openzl/compress/segmenters/segmenter_serial.c @@ -0,0 +1,124 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/compress/segmenters/segmenter_serial.h" +#include "openzl/codecs/zl_generic.h" // ZL_GRAPH_COMPRESS_GENERIC +#include "openzl/codecs/zl_segmenters.h" // ZL_SEGMENT_SERIAL +#include "openzl/common/assertion.h" +#include "openzl/zl_compress.h" // ZL_MIN_CHUNK_SIZE +#include "openzl/zl_compressor.h" +#include "openzl/zl_input.h" +#include "openzl/zl_selector.h" // ZL_LP_INVALID_PARAMID +#include "openzl/zl_version.h" + +#include // INT_MAX + +ZL_Report SEGM_serial(ZL_Segmenter* sctx) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(sctx); + size_t const numInputs = ZL_Segmenter_numInputs(sctx); + ZL_ASSERT_EQ(numInputs, 1); + const ZL_Input* const input = ZL_Segmenter_getInput(sctx, 0); + ZL_ASSERT_NN(input); + + /* read chunk size from local params, or use default. Reject negative + * paramValue before the size_t cast — a corrupted compressor could + * otherwise wrap to a huge size and silently disable chunking. */ + ZL_IntParam const chunkParam = ZL_Segmenter_getLocalIntParam( + sctx, ZL_SEGMENT_SERIAL_CHUNK_BYTE_SIZE_PARAM); + if (chunkParam.paramId != ZL_LP_INVALID_PARAMID) { + ZL_ERR_IF_LT(chunkParam.paramValue, 0, parameter_invalid); + } + size_t const chunkByteSizeMax = + (chunkParam.paramId != ZL_LP_INVALID_PARAMID) + ? (size_t)chunkParam.paramValue + : ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE; + ZL_ERR_IF_NOT(chunkByteSizeMax > 0, parameter_invalid); + + /* retrieve successor graph (release-mode-checked: a corrupted compressor + * could parameterize to nbCustomGraphs == 0 and cause an OOB read) */ + ZL_GraphIDList const customGraphs = ZL_Segmenter_getCustomGraphs(sctx); + ZL_ERR_IF_LT(customGraphs.nbGraphIDs, 1, parameter_invalid); + ZL_GraphID const headGraph = customGraphs.graphids[0]; + + size_t totalBytes = ZL_Input_contentSize(input); + /* Old wire formats cannot encode segmented output. */ + if (ZL_Segmenter_getCParam(sctx, ZL_CParam_formatVersion) + < ZL_CHUNK_VERSION_MIN) { + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &totalBytes, 1, headGraph, NULL)); + return ZL_returnSuccess(); + } + + while (totalBytes > chunkByteSizeMax) { + ZL_ERR_IF_ERR(ZL_Segmenter_processChunk( + sctx, &chunkByteSizeMax, 1, headGraph, NULL)); + totalBytes -= chunkByteSizeMax; + } + ZL_ASSERT_LE(totalBytes, chunkByteSizeMax); + ZL_ERR_IF_ERR( + ZL_Segmenter_processChunk(sctx, &totalBytes, 1, headGraph, NULL)); + + return ZL_returnSuccess(); +} + +/* ---- Registration helper ---- */ + +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildSerialSegmenter2( + ZL_Compressor* compressor, + size_t chunkByteSize, + ZL_GraphID successorGraph) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor); + + /* Use default successor if none specified */ + if (!ZL_GraphID_isValid(successorGraph)) { + successorGraph = ZL_GRAPH_COMPRESS_GENERIC; + } + + /* chunkByteSize == 0 means "use the segmenter's built-in default" + * (matches the SDDL2 and C++ wrapper conventions). */ + if (chunkByteSize == 0) { + chunkByteSize = ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE; + } + /* Enforce ZL_MIN_CHUNK_SIZE: ZL_compressBound() assumes chunks of at + * least this size; smaller chunks may produce output exceeding the + * bound. */ + ZL_ERR_IF_LT(chunkByteSize, ZL_MIN_CHUNK_SIZE, parameter_invalid); + /* Must fit in int (ZL_IntParam::paramValue is int) */ + ZL_ERR_IF_NOT(chunkByteSize <= (size_t)INT_MAX, parameter_invalid); + + /* Parameterize with chunk size and successor graph */ + ZL_IntParam intParams[] = { + { .paramId = ZL_SEGMENT_SERIAL_CHUNK_BYTE_SIZE_PARAM, + .paramValue = (int)chunkByteSize }, + }; + ZL_LocalParams localParams = { + .intParams = { .intParams = intParams, .nbIntParams = 1 }, + }; + ZL_ParameterizedGraphDesc const desc = { + .graph = ZL_SEGMENT_SERIAL, + .customGraphs = &successorGraph, + .nbCustomGraphs = 1, + .localParams = &localParams, + }; + ZL_GraphID const result = + ZL_Compressor_registerParameterizedGraph(compressor, &desc); + ZL_ERR_IF_NOT(ZL_GraphID_isValid(result), graph_invalid); + return ZL_WRAP_VALUE(result); +} + +ZL_GraphID ZL_Compressor_buildSerialSegmenter( + ZL_Compressor* compressor, + size_t chunkByteSize, + ZL_GraphID successorGraph) +{ + ZL_RESULT_OF(ZL_GraphID) + res = ZL_Compressor_buildSerialSegmenter2( + compressor, chunkByteSize, successorGraph); + if (ZL_RES_isError(res)) { + return ZL_GRAPH_ILLEGAL; + } else { + return ZL_RES_value(res); + } +} diff --git a/src/openzl/compress/segmenters/segmenter_serial.h b/src/openzl/compress/segmenters/segmenter_serial.h new file mode 100644 index 000000000..4619acd44 --- /dev/null +++ b/src/openzl/compress/segmenters/segmenter_serial.h @@ -0,0 +1,37 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef ZSTRONG_COMPRESS_SEGMENTERS_SERIAL_H +#define ZSTRONG_COMPRESS_SEGMENTERS_SERIAL_H + +#include "openzl/codecs/zl_segmenters.h" // ZL_SEGMENT_SERIAL_CHUNK_BYTE_SIZE_PARAM +#include "openzl/shared/portability.h" +#include "openzl/zl_graphs.h" // ZL_StandardGraphID_compress_generic +#include "openzl/zl_segmenter.h" + +ZL_BEGIN_C_DECLS + +/** + * Segmenter that accepts serial input and chunks it by byte size. + * Chunk size is read from local int param + * ZL_SEGMENT_SERIAL_CHUNK_BYTE_SIZE_PARAM, defaulting to + * ZL_DEFAULT_SEGMENTER_CHUNK_BYTE_SIZE. + * Each chunk is forwarded to the first custom graph (the successor). + */ +ZL_Report SEGM_serial(ZL_Segmenter* sctx); + +#define SEGM_SERIAL_DESC \ + { \ + .name = "!zl.segment_serial", \ + .segmenterFn = SEGM_serial, \ + .inputTypeMasks = &(const ZL_Type){ ZL_Type_serial }, \ + .numInputs = 1, \ + .lastInputIsVariable = false, \ + .customGraphs = \ + (const ZL_GraphID[]){ \ + { ZL_StandardGraphID_compress_generic } }, \ + .numCustomGraphs = 1, \ + } + +ZL_END_C_DECLS + +#endif // ZSTRONG_COMPRESS_SEGMENTERS_SERIAL_H diff --git a/src/openzl/compress/selector.c b/src/openzl/compress/selector.c index 3c5b0c75a..44b60e90a 100644 --- a/src/openzl/compress/selector.c +++ b/src/openzl/compress/selector.c @@ -4,7 +4,6 @@ #include "openzl/compress/cctx.h" // CCTX_* #include "openzl/compress/graphmgr.h" // GM_* #include "openzl/compress/localparams.h" -#include "openzl/zl_common_types.h" // ZL_TernaryParam_disable #include "openzl/zl_data.h" #include "openzl/zl_reflection.h" // ZL_Compressor_Graph_getInput0Mask #include "openzl/zl_selector.h" // ZL_GraphReport, ZL_Selector_tryGraph def @@ -15,7 +14,8 @@ ZL_Report SelCtx_initSelectorCtx( Arena* wkspArena, const ZL_LocalParams* lparams, SelectorSuccessorParams* successorLParams, - const void* opaque) + const void* opaque, + unsigned depth) { ZL_ASSERT_NN(selCtx); ZL_ASSERT_NN(wkspArena); @@ -23,7 +23,8 @@ ZL_Report SelCtx_initSelectorCtx( .wkspArena = wkspArena, .lparams = lparams, .successorLParams = successorLParams, - .opaque = opaque }; + .opaque = opaque, + .depth = depth }; return ZL_returnSuccess(); } @@ -65,11 +66,12 @@ ZL_Report ZL_Selector_setSuccessorParams( const ZL_Selector* selCtx, const ZL_LocalParams* lparams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(selCtx->cctx); if (lparams) { ALLOC_ARENA_MALLOC_CHECKED( ZL_LocalParams, lparamsCopy, 1, selCtx->wkspArena); *lparamsCopy = *lparams; - ZL_RET_R_IF_ERR(LP_transferLocalParams(selCtx->wkspArena, lparamsCopy)); + ZL_ERR_IF_ERR(LP_transferLocalParams(selCtx->wkspArena, lparamsCopy)); SelectorSuccessorParams* p = selCtx->successorLParams; p->params = lparamsCopy; } @@ -127,3 +129,10 @@ const void* ZL_Selector_getOpaquePtr(const ZL_Selector* selector) { return selector->opaque; } + +unsigned ZL_Selector_getGraphDepth(const ZL_Selector* selCtx) +{ + ZL_ASSERT_NN(selCtx); + ZL_ASSERT_GE(selCtx->depth, 1); + return selCtx->depth; +} diff --git a/src/openzl/compress/selector.h b/src/openzl/compress/selector.h index c06990c92..57b4dd322 100644 --- a/src/openzl/compress/selector.h +++ b/src/openzl/compress/selector.h @@ -27,6 +27,8 @@ struct ZL_Selector_s { /// are scoped to the current context Arena* wkspArena; const void* opaque; + /// Current graph execution depth + unsigned depth; }; /// typedef'd to ZL_Selector within zs2_transform_api.h ZL_Report SelCtx_initSelectorCtx( @@ -35,7 +37,8 @@ ZL_Report SelCtx_initSelectorCtx( Arena* wkspArena, const ZL_LocalParams* lparams, SelectorSuccessorParams* successorLParams, - const void* opaque); + const void* opaque, + unsigned depth); void SelCtx_destroySelectorCtx(ZL_Selector* selCtx); diff --git a/src/openzl/compress/selectors/ml/features.c b/src/openzl/compress/selectors/ml/features.c index 6a51452fc..6ebddeaff 100644 --- a/src/openzl/compress/selectors/ml/features.c +++ b/src/openzl/compress/selectors/ml/features.c @@ -228,11 +228,9 @@ static bool calcIntegerFeatures( ZL_Report FeatureGen_integer( const ZL_Input* inputStream, - VECTOR(LabeledFeature) * features, - const void* featureContext) + VECTOR(LabeledFeature) * features) { - (void)featureContext; - + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT(ZL_Input_type(inputStream) == ZL_Type_numeric); const void* data = ZL_Input_ptr(inputStream); const size_t nbElts = ZL_Input_numElts(inputStream); @@ -240,6 +238,26 @@ ZL_Report FeatureGen_integer( bool badAlloc = calcIntegerFeatures(features, data, eltWidth, nbElts); - ZL_RET_R_IF(allocation, badAlloc, "Failed to add features to vector"); + ZL_ERR_IF(badAlloc, allocation, "Failed to add features to vector"); return ZL_returnSuccess(); } + +ZL_RESULT_OF(FeatureGenerator) +FeatureGen_getFeatureGen(FeatureGenId id) +{ + ZL_RESULT_DECLARE_SCOPE(FeatureGenerator, NULL); + if (id == FeatureGenId_Int) { + return ZL_WRAP_VALUE(FeatureGen_integer); + } + + ZL_ERR(compressionParameter_invalid, "Must use standard feature generator"); +} + +FeatureGenId FeatureGen_getId(FeatureGenerator featureGenerator) +{ + if (featureGenerator == FeatureGen_integer) { + return FeatureGenId_Int; + } + + return FeatureGenId_Invalid; +} diff --git a/src/openzl/compress/selectors/ml/features.h b/src/openzl/compress/selectors/ml/features.h index c519b4917..8d7f85ae8 100644 --- a/src/openzl/compress/selectors/ml/features.h +++ b/src/openzl/compress/selectors/ml/features.h @@ -18,6 +18,11 @@ typedef struct { } LabeledFeature; DECLARE_VECTOR_TYPE(LabeledFeature) +typedef enum { + FeatureGenId_Int, + FeatureGenId_Invalid = -1, +} FeatureGenId; + /** * Calculates the basic features for numeric data, assuming that the data is * unsigned integers. @@ -28,8 +33,7 @@ DECLARE_VECTOR_TYPE(LabeledFeature) */ ZL_Report FeatureGen_integer( const ZL_Input* inputStream, - VECTOR(LabeledFeature) * features, - const void* featureContext); + VECTOR(LabeledFeature) * features); /** * Defines type Feature Generator, which takes a stream and generates various @@ -39,9 +43,20 @@ ZL_Report FeatureGen_integer( */ typedef ZL_Report (*FeatureGenerator)( const ZL_Input* inputStream, - VECTOR(LabeledFeature) * features, - const void* featureContext); + VECTOR(LabeledFeature) * features); + +ZL_RESULT_DECLARE_TYPE(FeatureGenerator); +/** + * @returns FeatureGenerator corresponding to the @p id + */ +ZL_RESULT_OF(FeatureGenerator) +FeatureGen_getFeatureGen(FeatureGenId id); + +/** + * @returns FeatureGenerators enum corresponding to @p featureGenerator + */ +FeatureGenId FeatureGen_getId(FeatureGenerator featureGenerator); ZL_END_C_DECLS #endif diff --git a/src/openzl/compress/selectors/ml/gbt.c b/src/openzl/compress/selectors/ml/gbt.c index cc6c8150f..574e53d6f 100644 --- a/src/openzl/compress/selectors/ml/gbt.c +++ b/src/openzl/compress/selectors/ml/gbt.c @@ -76,7 +76,7 @@ size_t GBTPredictor_predict( } if (predictor->numForests == 1) { - if (maxValue < 0.5) { + if (maxValue < 0) { return 0; } return 1; @@ -95,22 +95,23 @@ size_t GBTPredictor_getNumClasses(const GBTPredictor* predictor) return predictor->numForests; } -ZL_RESULT_OF(Label) -GBTModel_predict(const GBTModel* model, const ZL_Input* in) +ZL_RESULT_OF(size_t) +GBTModel_predictInd(const GBTModel* model, const ZL_Input* in, ZL_Graph* graph) { + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + VECTOR(LabeledFeature) featuresMap = VECTOR_EMPTY(kMaxFeaturesCapacity); - const ZL_Report report = - model->featureGenerator(in, &featuresMap, model->featureContext); + const ZL_Report report = model->featureGenerator(in, &featuresMap); if (ZL_isError(report)) { VECTOR_DESTROY(featuresMap); - ZL_RET_T_IF_ERR(Label, report, "Error in generating features"); + ZL_ERR_IF_ERR(report); } float* featuresData = (float*)malloc(model->nbFeatures * sizeof(float)); if (featuresData == NULL) { VECTOR_DESTROY(featuresMap); - ZL_RET_T_IF_NULL(Label, allocation, "Error allocating features"); + ZL_ERR(allocation); } for (size_t i = 0; i < model->nbFeatures; i++) { @@ -127,26 +128,30 @@ GBTModel_predict(const GBTModel* model, const ZL_Input* in) model->predictor, featuresData, model->nbFeatures); free(featuresData); VECTOR_DESTROY(featuresMap); - ZL_RET_T_IF_GE( - Label, - GENERIC, + ZL_ERR_IF_GE( classInd, - model->nbLabels, - "Predicted class index larger than number of classes"); - const Label classification = model->classLabels[classInd]; - return ZL_RESULT_WRAP_VALUE(Label, classification); + model->nbSuccessors, + GENERIC, + "Predicted class index larger than number of successors"); + return ZL_RESULT_WRAP_VALUE(size_t, classInd); } -const char* GBTModel_Desc_predict(const void* opaque, const ZL_Input* in) +ZL_RESULT_OF(size_t) +GBTModel_predict(const GBTModel* model, const ZL_Input* in) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, NULL); + return GBTModel_predictInd(model, in, NULL); +} + +size_t GBTModel_Desc_predict(const void* opaque, const ZL_Input* in) { const GBTModel* model = (const GBTModel*)opaque; - ZL_RESULT_OF(Label) + ZL_RESULT_OF(size_t) result = GBTModel_predict(model, in); if (ZL_RES_isError(result)) { - return ""; + return model->nbSuccessors; } - const char* decodedLabel = ZL_RES_value(result); - return decodedLabel; + return ZL_RES_value(result); } ZL_Report GBTPredictor_validate_forest( @@ -154,22 +159,23 @@ ZL_Report GBTPredictor_validate_forest( const size_t forest_idx, const int nbFeatures) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const GBTPredictor_Forest* forest = &predictor->forests[forest_idx]; - ZL_RET_R_IF_NULL( - GENERIC, + ZL_ERR_IF_NULL( forest->trees, + GENERIC, "GBTModel's %u forest's tree array is null", forest_idx); for (size_t j = 0; j < forest->numTrees; j++) { const GBTPredictor_Tree* tree = &forest->trees[j]; - ZL_RET_R_IF_NULL( - GENERIC, + ZL_ERR_IF_NULL( tree->nodes, + GENERIC, "GBTModel's %u forest's %u tree is null", forest_idx, j); - ZL_RET_R_IF_ERR(GBTPredictor_validate_tree(tree, nbFeatures)); + ZL_ERR_IF_ERR(GBTPredictor_validate_tree(tree, nbFeatures)); } return ZL_returnSuccess(); @@ -179,21 +185,22 @@ ZL_Report GBTPredictor_validate_tree( const GBTPredictor_Tree* tree, int nbFeatures) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (size_t currNodeIdx = 0; currNodeIdx < tree->numNodes; currNodeIdx++) { const GBTPredictor_Node node = tree->nodes[currNodeIdx]; // Feature index is out of bounds if (nbFeatures != -1) { // Only check if available - ZL_RET_R_IF_GE( - GENERIC, + ZL_ERR_IF_GE( node.featureIdx, nbFeatures, + GENERIC, "Feature index is out of bounds"); } - ZL_RET_R_IF_LT( - GENERIC, node.featureIdx, -1, "Feature index is out of bounds"); + ZL_ERR_IF_LT( + node.featureIdx, -1, GENERIC, "Feature index is out of bounds"); // If feature index is -1, then node is leaf node so we do // not need to verify left/right/missing child indices @@ -202,46 +209,46 @@ ZL_Report GBTPredictor_validate_tree( } // Verify that the node value is a valid numeric float - ZL_RET_R_IF(GENERIC, isnan(node.value), "Node value is nan"); - ZL_RET_R_IF( - GENERIC, + ZL_ERR_IF(isnan(node.value), GENERIC, "Node value is nan"); + ZL_ERR_IF( isinf(node.value), + GENERIC, "Node value is positive or negative infinity"); // If children indices come before the current node index // then there might be a cycle, we expect the index to always // advance - ZL_RET_R_IF_GE( - GENERIC, + ZL_ERR_IF_GE( currNodeIdx, node.leftChildIdx, - "Left child index is less than current node index"); - ZL_RET_R_IF_GE( GENERIC, + "Left child index is less than current node index"); + ZL_ERR_IF_GE( currNodeIdx, node.rightChildIdx, - "Right child index is less than current node index"); - ZL_RET_R_IF_GE( GENERIC, + "Right child index is less than current node index"); + ZL_ERR_IF_GE( currNodeIdx, node.missingChildIdx, + GENERIC, "Missing child index is less than current node index"); // Check if child indices are out of bounds - ZL_RET_R_IF_GE( - GENERIC, + ZL_ERR_IF_GE( node.leftChildIdx, tree->numNodes, - "Left child index is out of bounds"); - ZL_RET_R_IF_GE( GENERIC, + "Left child index is out of bounds"); + ZL_ERR_IF_GE( node.rightChildIdx, tree->numNodes, - "Right child index is out of bounds"); - ZL_RET_R_IF_GE( GENERIC, + "Right child index is out of bounds"); + ZL_ERR_IF_GE( node.missingChildIdx, tree->numNodes, + GENERIC, "Missing child index is out of bounds"); } return ZL_returnSuccess(); @@ -249,29 +256,41 @@ ZL_Report GBTPredictor_validate_tree( ZL_Report GBTPredictor_validate(const GBTPredictor* predictor, int nbFeatures) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (size_t i = 0; i < predictor->numForests; i++) { - ZL_RET_R_IF_ERR(GBTPredictor_validate_forest(predictor, i, nbFeatures)); + ZL_ERR_IF_ERR(GBTPredictor_validate_forest(predictor, i, nbFeatures)); } return ZL_returnSuccess(); } ZL_Report GBTModel_validate(const GBTModel* model) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Check if any model elements are null - ZL_RET_R_IF_NULL(GENERIC, model, "GBTModel is null"); - ZL_RET_R_IF_NULL(GENERIC, model->predictor, "GBTModel's predictor is null"); - ZL_RET_R_IF_NULL( - GENERIC, - model->classLabels, - "GBTModel's classLabels array is null"); - ZL_RET_R_IF_NULL( - GENERIC, + ZL_ERR_IF_NULL(model, GENERIC, "GBTModel is null"); + ZL_ERR_IF_NULL(model->predictor, GENERIC, "GBTModel's predictor is null"); + ZL_ERR_IF_NULL( model->featureLabels, + GENERIC, "GBTModel's featureLabels array is null"); - ZL_RET_R_IF_NULL( - GENERIC, model->predictor->forests, "GBTModel's forests is null"); + ZL_ERR_IF_NULL( + model->predictor->forests, GENERIC, "GBTModel's forests is null"); + + if (model->predictor->numForests == 1) { + ZL_ERR_IF_NE( + 2, + model->nbSuccessors, + GENERIC, + "There is only one forest(binary classification), but number of successors is not 2"); + } else { + ZL_ERR_IF_NE( + model->predictor->numForests, + model->nbSuccessors, + GENERIC, + "Multiclass classification. Number of forests not equal to number of successors"); + } - ZL_RET_R_IF_ERR( + ZL_ERR_IF_ERR( GBTPredictor_validate(model->predictor, (int)model->nbFeatures)); return ZL_returnSuccess(); } diff --git a/src/openzl/compress/selectors/ml/gbt.h b/src/openzl/compress/selectors/ml/gbt.h index ee719c65d..d77fac5ca 100644 --- a/src/openzl/compress/selectors/ml/gbt.h +++ b/src/openzl/compress/selectors/ml/gbt.h @@ -53,7 +53,7 @@ typedef struct { * trees and getting a sum of the values per forest. The forest with the highest * value is chosen as the predicted class. Binary-classification is a special * case in which only one forest is needed and if its combined value is compared - * to 0.5 to decide on the class. + * to 0 to decide on the class. */ typedef struct { size_t numForests; @@ -108,41 +108,47 @@ typedef const char* Label; ZL_RESULT_DECLARE_TYPE(Label); /** - * Defines type GBTModel, which is composed of 3 parts. First, the predictor, - * which can take a vector of features as input and return a class id. Second, - * the feature generator, which takes a stream and returns the features. The - * feature generator can use the optional featureContext opaque ptr. Lastly, the - * labels for the classes and features, which allows us to easily translate - * class ids to class names and also ensure portability between training and - * inference time. + * Defines type GBTModel + * - predictor: can take a vector of features as input and return a class id. + * - featureGenerator: takes a stream and returns the features. + * - nbSuccessors: number of successors in the graph + * - nbFeatures: number of features in the graph + * - featureLabels: labels for each feature */ typedef struct { const GBTPredictor* predictor; FeatureGenerator featureGenerator; - const void* featureContext; - size_t nbLabels; - const Label* classLabels; + size_t nbSuccessors; size_t nbFeatures; const Label* featureLabels; } GBTModel; /** * Calculates the prediction for a single model and set of features generated - from the input stream. + * from the input stream. + * + *@returns the error if the model fails to predict a classification, otherwise + *returns index of prediction. + */ +ZL_RESULT_OF(size_t) +GBTModel_predictInd(const GBTModel* model, const ZL_Input* in, ZL_Graph* graph); - @returns the error if the model fails to predict a classification, otherwise - returns the classified label. +/** + * Wrapper around GBTModel_predictInd. + * + * @returns the error if the model fails to predict a classification, otherwise + * returns the index of the classified successor. */ -ZL_RESULT_OF(Label) +ZL_RESULT_OF(size_t) GBTModel_predict(const GBTModel* model, const ZL_Input* in); /** - * Predicts the label of the input stream using GBTModel_predict + * Predicts the indice of the input stream using GBTModel_predict * - * @returns an empty string if the model fails to predict a classification, - * otherwise returns the string representation of the classification + * @returns nbSuccessors if the model fails to predict a classification, + * otherwise returns the index of the classified successor. */ -const char* GBTModel_Desc_predict(const void* model, const ZL_Input* in); +size_t GBTModel_Desc_predict(const void* model, const ZL_Input* in); /** * Validates the model by making sure each tree inside of the model is diff --git a/src/openzl/compress/selectors/ml/ml_selector_graph.c b/src/openzl/compress/selectors/ml/ml_selector_graph.c new file mode 100644 index 000000000..26fc75ca5 --- /dev/null +++ b/src/openzl/compress/selectors/ml/ml_selector_graph.c @@ -0,0 +1,729 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. +// Note: This file is work in progress and is not ready for use yet. + +#include "openzl/compress/selectors/ml/ml_selector_graph.h" +#include "openzl/codecs/zl_mlselector.h" +#include "openzl/common/a1cbor_helpers.h" +#include "openzl/shared/a1cbor.h" +#include "openzl/zl_compressor.h" +#include "openzl/zl_errors.h" + +/** + * Declare types in order to use ZL_RESULT_OF, this allows function to return + * either success values or errors rather than using out-parameters + */ +ZL_RESULT_DECLARE_TYPE(GBTPredictor); +ZL_RESULT_DECLARE_TYPE(GBTModel); +ZL_RESULT_DECLARE_TYPE(GBTPredictor_Forest); +ZL_RESULT_DECLARE_TYPE(GBTPredictor_Tree); +ZL_RESULT_DECLARE_TYPE(GBTPredictor_Node); + +static void* MLSel_arenaCalloc(void* opaque, size_t size) +{ + void* buffer = ZL_Graph_getScratchSpace((ZL_Graph*)opaque, size); + if (buffer != NULL) { + memset(buffer, 0, size); + } + return buffer; +} + +static A1C_Arena MLSel_wrapArena(ZL_Graph* graph) +{ + A1C_Arena arena; + arena.calloc = MLSel_arenaCalloc; + arena.opaque = graph; + return arena; +} + +static ZL_RESULT_OF(ZL_MLSelectorConfig) MLSel_getConfig(ZL_Graph* graph) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + + ZL_RefParam configInfo = + ZL_Graph_getLocalRefParam(graph, ZL_GENERIC_ML_SELECTOR_CONFIG_ID); + const char* serializedConfig = configInfo.paramRef; + + size_t configSize = configInfo.paramSize; + /** + * a1cArena is used to decode config, memory is automatically freed + * since we are using scratch space from ZL_Graph_getScratchSpace + */ + A1C_Arena a1cArena = MLSel_wrapArena(graph); + return MLSelector_deserializeMLSelectorConfig( + ZL_ERR_CTX_PTR, serializedConfig, configSize, &a1cArena); +} + +ZL_Report ZL_MLSel_dynGraph(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(graph); + ZL_TRY_LET(ZL_MLSelectorConfig, config, MLSel_getConfig(graph)); + + ZL_GraphIDList succList = ZL_Graph_getCustomGraphs(graph); + + if (config.model == ZL_GBT) { + GBTModel* gbt = config.runtimeConfig; + ZL_ERR_IF_NE( + gbt->nbSuccessors, + succList.nbGraphIDs, + successor_invalid, + "GBT model has %zu labels, but graph has %zu successors", + gbt->nbSuccessors, + succList.nbGraphIDs); + for (size_t ind = 0; ind < nbInputs; ind++) { + ZL_TRY_LET( + size_t, + selectedSuccessor, + GBTModel_predictInd( + gbt, ZL_Edge_getData(inputs[ind]), graph)); + ZL_ERR_IF_GE( + selectedSuccessor, + succList.nbGraphIDs, + successor_invalid, + "Selected successor is out of bounds"); + ZL_GraphID succ = succList.graphids[selectedSuccessor]; + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputs[ind], succ)); + } + } else { + return ZL_returnError(ZL_ErrorCode_graph_invalid); + } + + return ZL_returnSuccess(); +} + +static ZL_Report GBTModel_serializeNode( + ZL_ErrorContext* errCtx, + A1C_Item* parent, + A1C_Arena* a1cArena, + const GBTPredictor_Node* node) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + A1C_MapBuilder nodeMapBuilder = A1C_Item_map_builder(parent, 5, a1cArena); + { + A1C_MAP_TRY_ADD(pair, nodeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "featureIdx"); + A1C_Item_int64(&pair->val, (A1C_Int64)node->featureIdx); + } + { + A1C_MAP_TRY_ADD(pair, nodeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "value"); + A1C_Item_float64(&pair->val, node->value); + } + { + A1C_MAP_TRY_ADD(pair, nodeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "leftChildIdx"); + A1C_Item_int64(&pair->val, (A1C_Int64)node->leftChildIdx); + } + { + A1C_MAP_TRY_ADD(pair, nodeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "rightChildIdx"); + A1C_Item_int64(&pair->val, (A1C_Int64)node->rightChildIdx); + } + { + A1C_MAP_TRY_ADD(pair, nodeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "missingChildIdx"); + A1C_Item_int64(&pair->val, (A1C_Int64)node->missingChildIdx); + } + return ZL_returnSuccess(); +} + +static ZL_Report GBTModel_serializeTree( + ZL_ErrorContext* errCtx, + A1C_Item* parent, + A1C_Arena* a1cArena, + const GBTPredictor_Tree* tree) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + A1C_MapBuilder treeMapBuilder = A1C_Item_map_builder(parent, 2, a1cArena); + { + A1C_MAP_TRY_ADD(pair, treeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "numNodes"); + A1C_Item_int64(&pair->val, (A1C_Int64)tree->numNodes); + } + { + A1C_MAP_TRY_ADD(pair, treeMapBuilder); + A1C_Item_string_refCStr(&pair->key, "nodes"); + A1C_Item* nodes = A1C_Item_array(&pair->val, tree->numNodes, a1cArena); + ZL_ERR_IF_NULL(nodes, allocation); + for (size_t i = 0; i < tree->numNodes; i++) { + ZL_ERR_IF_ERR(GBTModel_serializeNode( + errCtx, &nodes[i], a1cArena, &tree->nodes[i])); + } + } + return ZL_returnSuccess(); +} + +static ZL_Report GBTModel_serializeForest( + ZL_ErrorContext* errCtx, + A1C_Item* parent, + A1C_Arena* a1cArena, + const GBTPredictor_Forest* forest) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + A1C_MapBuilder forestMapBuilder = A1C_Item_map_builder(parent, 2, a1cArena); + { + A1C_MAP_TRY_ADD(pair, forestMapBuilder); + A1C_Item_string_refCStr(&pair->key, "numTrees"); + A1C_Item_int64(&pair->val, (A1C_Int64)forest->numTrees); + } + { + A1C_MAP_TRY_ADD(pair, forestMapBuilder); + A1C_Item_string_refCStr(&pair->key, "trees"); + A1C_Item* trees = + A1C_Item_array(&pair->val, forest->numTrees, a1cArena); + ZL_ERR_IF_NULL(trees, allocation); + for (size_t i = 0; i < forest->numTrees; i++) { + ZL_ERR_IF_ERR(GBTModel_serializeTree( + errCtx, &trees[i], a1cArena, &forest->trees[i])); + } + } + return ZL_returnSuccess(); +} + +static ZL_Report GBTModel_serializePredictor( + ZL_ErrorContext* errCtx, + A1C_Item* parent, + A1C_Arena* a1cArena, + const GBTPredictor* predictor) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + A1C_MapBuilder predictorMapBuilder = + A1C_Item_map_builder(parent, 2, a1cArena); + { + A1C_MAP_TRY_ADD(pair, predictorMapBuilder); + A1C_Item_string_refCStr(&pair->key, "numForests"); + A1C_Item_int64(&pair->val, (A1C_Int64)predictor->numForests); + } + { + A1C_MAP_TRY_ADD(pair, predictorMapBuilder); + A1C_Item_string_refCStr(&pair->key, "forests"); + A1C_Item* forests = + A1C_Item_array(&pair->val, predictor->numForests, a1cArena); + ZL_ERR_IF_NULL(forests, allocation); + for (size_t i = 0; i < predictor->numForests; i++) { + ZL_ERR_IF_ERR(GBTModel_serializeForest( + errCtx, &forests[i], a1cArena, &predictor->forests[i])); + } + } + return ZL_returnSuccess(); +} + +/** + * @brief serializes the @p model using @p a1cArena for allocations. All + * allocated memory is tied to @p a1cArena 's underlying arena. Serialized data + * remains valid until arena is freed. When caller frees the arena, all memory + * is cleaned up. + * + * @returns The ZL_Report result of the serialization. Returns an error if the + * config is malformed or if any allocation failure happens. + * @param errCtx Error context for reporting errors + * @param model The GBTModel to be serialized + * @param parent The parent item to which the serialized data is added + * @param a1cArena The arena wrapper in which memory allocations for + * serialization happens + */ +static ZL_Report GBTModel_serialize( + ZL_ErrorContext* errCtx, + const GBTModel* model, + A1C_Item* parent, + A1C_Arena* a1cArena) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(errCtx); + A1C_MapBuilder rootMapBuilder = A1C_Item_map_builder(parent, 6, a1cArena); + + // Serialize predictor + { + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "predictor"); + ZL_ERR_IF_ERR(GBTModel_serializePredictor( + errCtx, &pair->val, a1cArena, model->predictor)); + } + // Serialize featureGenerator using enum + { + FeatureGenId fg = FeatureGen_getId(model->featureGenerator); + ZL_ERR_IF_EQ(fg, FeatureGenId_Invalid, invalidName); + + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "featureGenerator"); + A1C_Item_int64(&pair->val, (A1C_Int64)fg); + } + + // Serialize nbSuccessors + { + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "nbSuccessors"); + A1C_Item_int64(&pair->val, (A1C_Int64)model->nbSuccessors); + } + + // Serialize nbFeatures + { + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "nbFeatures"); + A1C_Item_int64(&pair->val, (A1C_Int64)model->nbFeatures); + } + + // Serialize featureLabels array + { + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "featureLabels"); + A1C_Item* labels = + A1C_Item_array(&pair->val, model->nbFeatures, a1cArena); + ZL_ERR_IF_NULL(labels, allocation); + for (size_t i = 0; i < model->nbFeatures; i++) { + A1C_Item_string_refCStr(&labels[i], model->featureLabels[i]); + } + } + + return ZL_returnSuccess(); +} +static ZL_RESULT_OF(GBTPredictor_Node) GBTModel_deserializeNode( + ZL_ErrorContext* errCtx, + const A1C_Item* a1cItem) +{ + GBTPredictor_Node node = { 0 }; + ZL_RESULT_DECLARE_SCOPE(GBTPredictor_Node, errCtx); + A1C_TRY_EXTRACT_MAP(nodeMap, a1cItem); + + A1C_TRY_EXTRACT_INT64(featureIdx, A1C_Map_get_cstr(&nodeMap, "featureIdx")); + node.featureIdx = (int)featureIdx; + + A1C_TRY_EXTRACT_FLOAT64(value, A1C_Map_get_cstr(&nodeMap, "value")); + node.value = (float)value; + + A1C_TRY_EXTRACT_INT64( + leftChildIdx, A1C_Map_get_cstr(&nodeMap, "leftChildIdx")); + node.leftChildIdx = (size_t)leftChildIdx; + + A1C_TRY_EXTRACT_INT64( + rightChildIdx, A1C_Map_get_cstr(&nodeMap, "rightChildIdx")); + node.rightChildIdx = (size_t)rightChildIdx; + + A1C_TRY_EXTRACT_INT64( + missingChildIdx, A1C_Map_get_cstr(&nodeMap, "missingChildIdx")); + node.missingChildIdx = (size_t)missingChildIdx; + + return ZL_WRAP_VALUE(node); +} + +static ZL_RESULT_OF(GBTPredictor_Tree) GBTModel_deserializeTree( + ZL_ErrorContext* errCtx, + const A1C_Item* treeItem, + A1C_Arena* a1cArena) +{ + GBTPredictor_Tree tree = { 0 }; + ZL_RESULT_DECLARE_SCOPE(GBTPredictor_Tree, errCtx); + A1C_TRY_EXTRACT_MAP(treeMap, treeItem); + + A1C_TRY_EXTRACT_INT64(numNodes, A1C_Map_get_cstr(&treeMap, "numNodes")); + tree.numNodes = (size_t)numNodes; + + A1C_TRY_EXTRACT_ARRAY(nodesArray, A1C_Map_get_cstr(&treeMap, "nodes")); + ZL_ERR_IF_NE( + nodesArray.size, + tree.numNodes, + GENERIC, + "Tree numNodes doesn't match nodes array size"); + + GBTPredictor_Node* nodes = a1cArena->calloc( + a1cArena->opaque, sizeof(GBTPredictor_Node) * tree.numNodes); + + for (size_t i = 0; i < tree.numNodes; i++) { + const A1C_Item* nodeItem = A1C_Array_get(&nodesArray, i); + ZL_ERR_IF_NULL(nodeItem, corruption); + ZL_TRY_LET( + GBTPredictor_Node, + node, + GBTModel_deserializeNode(errCtx, nodeItem)); + nodes[i] = node; + } + + tree.nodes = nodes; + return ZL_WRAP_VALUE(tree); +} + +static ZL_RESULT_OF(GBTPredictor_Forest) GBTModel_deserializeForest( + ZL_ErrorContext* errCtx, + const A1C_Item* forestItem, + A1C_Arena* a1cArena) +{ + GBTPredictor_Forest forest = { 0 }; + ZL_RESULT_DECLARE_SCOPE(GBTPredictor_Forest, errCtx); + A1C_TRY_EXTRACT_MAP(forestMap, forestItem); + + A1C_TRY_EXTRACT_INT64(numTrees, A1C_Map_get_cstr(&forestMap, "numTrees")); + forest.numTrees = (size_t)numTrees; + + A1C_TRY_EXTRACT_ARRAY(treesArray, A1C_Map_get_cstr(&forestMap, "trees")); + ZL_ERR_IF_NE( + treesArray.size, + forest.numTrees, + GENERIC, + "Forest numTrees doesn't match trees array size"); + + GBTPredictor_Tree* trees = a1cArena->calloc( + a1cArena->opaque, sizeof(GBTPredictor_Tree) * forest.numTrees); + + for (size_t i = 0; i < forest.numTrees; i++) { + const A1C_Item* treeItem = A1C_Array_get(&treesArray, i); + ZL_ERR_IF_NULL(treeItem, corruption); + ZL_TRY_LET( + GBTPredictor_Tree, + tree, + GBTModel_deserializeTree(errCtx, treeItem, a1cArena)); + trees[i] = tree; + } + + forest.trees = trees; + return ZL_WRAP_VALUE(forest); +} + +static ZL_RESULT_OF(GBTPredictor) GBTModel_deserializePredictor( + ZL_ErrorContext* errCtx, + const A1C_Item* predictorItem, + A1C_Arena* a1cArena) +{ + GBTPredictor predictor = { 0 }; + ZL_RESULT_DECLARE_SCOPE(GBTPredictor, errCtx); + A1C_TRY_EXTRACT_MAP(predictorMap, predictorItem); + + A1C_TRY_EXTRACT_INT64( + numForests, A1C_Map_get_cstr(&predictorMap, "numForests")); + predictor.numForests = (size_t)numForests; + + A1C_TRY_EXTRACT_ARRAY( + forestsArray, A1C_Map_get_cstr(&predictorMap, "forests")); + ZL_ERR_IF_NE( + forestsArray.size, + predictor.numForests, + GENERIC, + "Predictor numForests doesn't match forests array size"); + + GBTPredictor_Forest* forests = a1cArena->calloc( + a1cArena->opaque, + sizeof(GBTPredictor_Forest) * predictor.numForests); + + for (size_t i = 0; i < predictor.numForests; i++) { + const A1C_Item* forestItem = A1C_Array_get(&forestsArray, i); + ZL_ERR_IF_NULL(forestItem, corruption); + ZL_TRY_LET( + GBTPredictor_Forest, + forest, + GBTModel_deserializeForest(errCtx, forestItem, a1cArena)); + forests[i] = forest; + } + + predictor.forests = forests; + return ZL_WRAP_VALUE(predictor); +} + +/** @brief Deserializes the @p model and returns the result. Uses @p a1cArena + * to initialize decoder, memory is automatically cleaned when graph execution + * completes. + * + * @returns Failure if the config is invalid or an allocation fails. On success + * returns success status and the deserialized config. + * @param errCtx Error context for reporting errors + * @param parent root A1C_Item containing CBOR data + * @param a1cArena The arena wrapper needed for deserialization + */ +static ZL_RESULT_OF(GBTModel) GBTModel_deserialize( + ZL_ErrorContext* errCtx, + const A1C_Item* parent, + A1C_Arena* a1cArena) +{ + GBTModel model; + ZL_RESULT_DECLARE_SCOPE(GBTModel, errCtx); + A1C_TRY_EXTRACT_MAP(rootMap, parent); + + // Deserialize predictor + const A1C_Item* predictorItem = A1C_Map_get_cstr(&rootMap, "predictor"); + ZL_ERR_IF_NULL(predictorItem, corruption); + + ZL_TRY_LET( + GBTPredictor, + predictorValue, + GBTModel_deserializePredictor(errCtx, predictorItem, a1cArena)); + + GBTPredictor* predictor = + a1cArena->calloc(a1cArena->opaque, sizeof(GBTPredictor)); + + ZL_ERR_IF_NULL(predictor, allocation); + *predictor = predictorValue; + model.predictor = predictor; + + // Deserialize featureGenerator using enum + A1C_TRY_EXTRACT_INT64( + featureGeneratorEnum, + A1C_Map_get_cstr(&rootMap, "featureGenerator")); + + ZL_RESULT_OF(FeatureGenerator) + featureGenerator = + FeatureGen_getFeatureGen((FeatureGenId)featureGeneratorEnum); + ZL_ERR_IF_ERR(featureGenerator); + model.featureGenerator = ZL_RES_value(featureGenerator); + + // Deserialize nbSuccessors + A1C_TRY_EXTRACT_INT64( + nbSuccessors, A1C_Map_get_cstr(&rootMap, "nbSuccessors")); + model.nbSuccessors = (size_t)nbSuccessors; + + // Deserialize nbFeatures + A1C_TRY_EXTRACT_INT64(nbFeatures, A1C_Map_get_cstr(&rootMap, "nbFeatures")); + model.nbFeatures = (size_t)nbFeatures; + + // Deserialize featureLabels array + A1C_TRY_EXTRACT_ARRAY( + featureLabelsArray, A1C_Map_get_cstr(&rootMap, "featureLabels")); + ZL_ERR_IF_NE( + featureLabelsArray.size, + model.nbFeatures, + GENERIC, + "nbFeatures doesn't match featureLabels array size"); + + Label* featureLabels = a1cArena->calloc( + a1cArena->opaque, model.nbFeatures * sizeof(Label)); + + for (size_t i = 0; i < model.nbFeatures; i++) { + const A1C_Item* labelItem = A1C_Array_get(&featureLabelsArray, i); + ZL_ERR_IF_NULL(labelItem, corruption); + A1C_TRY_EXTRACT_STRING(labelStr, labelItem); + + // Allocate space for the string and copy it (with null terminator) + char* label = (char*)a1cArena->calloc( + a1cArena->opaque, (labelStr.size + 1) * sizeof(char)); + ZL_ERR_IF_NULL(label, allocation); + memcpy(label, labelStr.data, labelStr.size); + label[labelStr.size] = '\0'; + featureLabels[i] = label; + } + model.featureLabels = featureLabels; + + return ZL_WRAP_VALUE(model); +} +ZL_RESULT_OF(ZL_SerializedMLConfig) +MLSelector_serializeMLSelectorConfig( + ZL_ErrorContext* errCtx, + const ZL_MLSelectorConfig* config, + A1C_Arena* arena) +{ + ZL_SerializedMLConfig dst = { .data = NULL, .size = 0 }; + ZL_RESULT_DECLARE_SCOPE(ZL_SerializedMLConfig, errCtx); + A1C_Item* root = A1C_Item_root(arena); + ZL_ERR_IF_NULL(root, allocation); + // serialize model type + A1C_MapBuilder rootMapBuilder = A1C_Item_map_builder(root, 2, arena); + { + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "model"); + A1C_Item_int64(&pair->val, (A1C_Int64)config->model); + } + // Serialize predictor + { + A1C_MAP_TRY_ADD(pair, rootMapBuilder); + A1C_Item_string_refCStr(&pair->key, "runtimeConfig"); + if (config->model == ZL_GBT) { + ZL_ERR_IF_ERR(GBTModel_serialize( + errCtx, config->runtimeConfig, &pair->val, arena)); + } else { + ZL_ERR(graph_invalid, "model type not supported"); + } + } + dst.size = A1C_Item_encodedSize(root); + dst.data = arena->calloc(arena->opaque, dst.size); + ZL_ERR_IF_NULL(dst.data, allocation); + A1C_Error error; + size_t res = A1C_Item_encode(root, (uint8_t*)dst.data, dst.size, &error); + if (res == 0) { + return ZL_WRAP_ERROR(A1C_Error_convert(NULL, error)); + } + ZL_ERR_IF_NE(res, dst.size, allocation); + return ZL_WRAP_VALUE(dst); +} + +ZL_RESULT_OF(ZL_MLSelectorConfig) +MLSelector_deserializeMLSelectorConfig( + ZL_ErrorContext* errCtx, + const char* config, + size_t size, + A1C_Arena* arena) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_MLSelectorConfig, errCtx); + ZL_MLSelectorConfig dst; + A1C_Decoder decoder; + A1C_DecoderConfig decoderConfig = + (A1C_DecoderConfig){ .maxDepth = 0, + .limitBytes = 0, + .referenceSource = true, + .rejectUnknownSimple = true }; + A1C_Decoder_init(&decoder, *arena, decoderConfig); + const A1C_Item* root = + A1C_Decoder_decode(&decoder, (const uint8_t*)config, size); + ZL_ERR_IF_NULL(root, allocation); + + A1C_TRY_EXTRACT_MAP(rootMap, root); + + A1C_TRY_EXTRACT_INT64(model, A1C_Map_get_cstr(&rootMap, "model")); + dst.model = (ZL_MLSelectorModelType)model; + void* runtimeConfig = NULL; + if (dst.model == ZL_GBT) { + const A1C_Item* runtimeConfigItem = + A1C_Map_get_cstr(&rootMap, "runtimeConfig"); + ZL_ERR_IF_NULL(runtimeConfigItem, corruption); + GBTModel* gbtModelCopy = + (GBTModel*)arena->calloc(arena->opaque, sizeof(GBTModel)); + + ZL_RESULT_OF(GBTModel) + gbtModelResult = GBTModel_deserialize(errCtx, runtimeConfigItem, arena); + + if (ZL_RES_isError(gbtModelResult)) { + return ZL_WRAP_ERROR(ZL_RES_error(gbtModelResult)); + } + + *gbtModelCopy = ZL_RES_value(gbtModelResult); + runtimeConfig = gbtModelCopy; + } + dst.runtimeConfig = runtimeConfig; + + return ZL_WRAP_VALUE(dst); +} + +ZL_RESULT_OF(ZL_GraphID) +ZL_MLSelector_registerGraph( + ZL_Compressor* compressor, + const ZL_MLSelectorConfig* config, + const ZL_GraphID* successors, + size_t nbSuccessors) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor); + + // Cannot serialize if config or runtimeConfig is null + ZL_ERR_IF_NULL(config, graph_nonserializable); + ZL_ERR_IF_NULL(config->runtimeConfig, graph_nonserializable); + + // Make sure config is valid + if (config->model == ZL_GBT) { + GBTModel* gbtModel = (GBTModel*)config->runtimeConfig; + ZL_ERR_IF_ERR(GBTModel_validate(gbtModel)); + ZL_ERR_IF_LT( + FeatureGen_getId(gbtModel->featureGenerator), + 0, + compressionParameter_invalid, + "Must use standard feature generator"); + } + + // Need separate heap arena to allocate memory for serialized data + Arena* arena = ALLOC_HeapArena_create(); + + // a1cArena wraps the heap arena and is used to encode and serialize data + A1C_Arena a1cArena = A1C_Arena_wrap(arena); + + ZL_RESULT_OF(ZL_SerializedMLConfig) + serializedResult = MLSelector_serializeMLSelectorConfig( + ZL_ERR_CTX_PTR, config, &a1cArena); + + if (ZL_RES_isError(serializedResult)) { + ALLOC_Arena_freeArena(arena); + ZL_ERR_IF_ERR(serializedResult); + } + + ZL_SerializedMLConfig serializedConfig = ZL_RES_value(serializedResult); + + ZL_CopyParam configParam = (ZL_CopyParam){ + .paramId = ZL_GENERIC_ML_SELECTOR_CONFIG_ID, + .paramPtr = serializedConfig.data, + .paramSize = serializedConfig.size, + }; + + ZL_LocalParams params = + (ZL_LocalParams){ .copyParams = { .copyParams = &configParam, + .nbCopyParams = 1 } }; + + ZL_ParameterizedGraphDesc const graphDesc = { + .graph = ZL_GRAPH_ML_SELECTOR, + .customGraphs = successors, + .nbCustomGraphs = nbSuccessors, + .localParams = ¶ms, + }; + + const ZL_GraphID graph = + ZL_Compressor_registerParameterizedGraph(compressor, &graphDesc); + + /** + * By freeing the arena, we are freeing all the memory used by + * a1c_arena. We can free arena here because we make a copy param of the + * serialized config, so the lifetime of the serialized config is tied + * to the graph. + */ + ALLOC_Arena_freeArena(arena); + return ZL_RESULT_WRAP_VALUE(ZL_GraphID, graph); +} + +ZL_RESULT_OF(ZL_GraphID) +ZL_Compressor_buildUntrainedMLSelector( + ZL_Compressor* compressor, + const ZL_GraphID* successors, + size_t nbSuccessors) +{ + const GBTPredictor_Node emptyNode = { + .featureIdx = -1, // leaf node + .value = -1.0f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0, + }; + + const GBTPredictor_Tree emptyTree = { + .numNodes = 1, + .nodes = &emptyNode, + }; + + const GBTPredictor_Forest emptyForest = { + .numTrees = 1, + .trees = &emptyTree, + }; + + ZL_RESULT_DECLARE_SCOPE(ZL_GraphID, compressor); + Arena* arena = ALLOC_HeapArena_create(); + + // For binary classification (2 successors), we need 1 forest. + // For multi-class classification (>2 successors), we need numForests = + // nbSuccessors. + size_t numForests = (nbSuccessors == 2) ? 1 : nbSuccessors; + + GBTPredictor_Forest* forests = + ALLOC_Arena_malloc(arena, sizeof(GBTPredictor_Forest) * numForests); + if (forests == NULL) { + ALLOC_Arena_freeArena(arena); + ZL_ERR(allocation, "Failed to allocate forests"); + } + + for (size_t i = 0; i < numForests; i++) { + forests[i] = emptyForest; + } + + const GBTPredictor emptyPredictor = { + .numForests = numForests, + .forests = forests, + }; + + const Label featureLabels[] = { "placeholder" }; + + GBTModel emptyModel = { + .predictor = &emptyPredictor, + .featureGenerator = FeatureGen_integer, + .nbSuccessors = nbSuccessors, + .nbFeatures = 1, + .featureLabels = featureLabels, + }; + + ZL_MLSelectorConfig config = { + .model = ZL_GBT, + .runtimeConfig = (void*)&emptyModel, + }; + + ZL_RESULT_OF(ZL_GraphID) + result = ZL_MLSelector_registerGraph( + compressor, &config, successors, nbSuccessors); + + ALLOC_Arena_freeArena(arena); + return result; +} diff --git a/tools/ml_selector/ml_selector_graph.h b/src/openzl/compress/selectors/ml/ml_selector_graph.h similarity index 72% rename from tools/ml_selector/ml_selector_graph.h rename to src/openzl/compress/selectors/ml/ml_selector_graph.h index 31fe5d528..8d4c78127 100644 --- a/tools/ml_selector/ml_selector_graph.h +++ b/src/openzl/compress/selectors/ml/ml_selector_graph.h @@ -1,12 +1,13 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. // Note: This file is work in progress and is not ready for use yet. -#ifndef ZSTRONG_ML_SELECTOR_GRAPH_H -#define ZSTRONG_ML_SELECTOR_GRAPH_H +#ifndef OPENZL_TOOLS_ML_SELECTOR_GRAPH_H +#define OPENZL_TOOLS_ML_SELECTOR_GRAPH_H -#include -#include -#include +#include "openzl/compress/selectors/ml/gbt.h" +#include "openzl/shared/a1cbor.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_graph_api.h" #if defined(__cplusplus) extern "C" { @@ -14,12 +15,16 @@ extern "C" { #define ZL_GENERIC_ML_SELECTOR_CONFIG_ID 555 +typedef enum { + ZL_GBT, +} ZL_MLSelectorModelType; + /** * A serializable configuration used to select a successor. - * Note: This is a dummy config that will be updated in the future. */ typedef struct { - size_t selectedSuccessor; // The index of the successor to select. + ZL_MLSelectorModelType model; + void* runtimeConfig; } ZL_MLSelectorConfig; /** @@ -86,18 +91,22 @@ ZL_MLSelector_registerGraph( const ZL_GraphID* successors, size_t nbSuccessors); -/** - * @brief Registers a statically defined ml selector graph that can be - * parameterized later. +/** @brief Retrieves list of successors and ZL_MLSelectorConfig from graph and + * selects successor based on prediction made by model specified inside the + * ZL_MLSelectorConfig. * - * @returns The graph ID registered for the ml selector graph - * @param compressor The compressor to register the graph with + * @param graph Graph containing ZL_MLSelectorConfig and list of successors + * @param inputs Array of input edges to be routed to selected successor + * @param nbInputs Number of input edges in the inputs array + * @return Failure if unable to get config from graph or if the + * selected successor is out of bounds or if unable to select successor. Success + * otherwise. */ -ZL_RESULT_OF(ZL_GraphID) -ZL_MLSelector_registerBaseGraph(ZL_Compressor* compressor); +ZL_Report +ZL_MLSel_dynGraph(ZL_Graph* graph, ZL_Edge* inputs[], size_t nbInputs); #if defined(__cplusplus) } #endif -#endif // ZSTRONG_ML_SELECTOR_GRAPH_H +#endif // OPENZL_TOOLS_ML_SELECTOR_GRAPH_H diff --git a/src/openzl/compress/selectors/ml/mlselector.c b/src/openzl/compress/selectors/ml/mlselector.c index eb2a3ad1b..e2b2e37a9 100644 --- a/src/openzl/compress/selectors/ml/mlselector.c +++ b/src/openzl/compress/selectors/ml/mlselector.c @@ -76,14 +76,8 @@ static ZL_GraphID ML_selector( ZL_ASSERT_EQ(ZL_Input_type(in), mlSelector->inStreamType); - const char* label = mlSelector->model.predict(mlSelector->model.opaque, in); - size_t graphIdx = mlSelector->nbGraphs; - for (size_t i = 0; i < mlSelector->nbGraphs; i++) { - if (!strcmp(mlSelector->graphs[i].label, label)) { - graphIdx = i; - break; - } - } + const size_t graphIdx = + mlSelector->model.predict(mlSelector->model.opaque, in); if (graphIdx >= mlSelector->nbGraphs) { return ZL_GRAPH_ILLEGAL; diff --git a/src/openzl/compress/selectors/ml/mlselector.h b/src/openzl/compress/selectors/ml/mlselector.h index b2a016440..739d44eb3 100644 --- a/src/openzl/compress/selectors/ml/mlselector.h +++ b/src/openzl/compress/selectors/ml/mlselector.h @@ -18,11 +18,10 @@ typedef struct ZL_MLModelDesc ZS2_MLModel_Desc; * Defines type ZL_MLModelPredictFn, which is a function that takes an input * stream and generates various features from it. These features are then used * to make a prediction using the model's predict and opaque fields. The - * corresponding predicted label is returned. - @returns const char* specifying the label of the predicted class + * corresponding predicted successor indice is returned. + @returns size_t specifying the index of the predicted successor */ -typedef const char* ( - *ZL_MLModelPredictFn)(const void* opaque, const ZL_Input* in); +typedef size_t (*ZL_MLModelPredictFn)(const void* opaque, const ZL_Input* in); /** * Defines type ZL_MLModelFreeFn, which is a function that frees the model diff --git a/src/openzl/compress/selectors/ml/selector_numeric_model.c b/src/openzl/compress/selectors/ml/selector_numeric_model.c index 264f028cf..d1aef1a91 100644 --- a/src/openzl/compress/selectors/ml/selector_numeric_model.c +++ b/src/openzl/compress/selectors/ml/selector_numeric_model.c @@ -460,7 +460,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -1047,7 +1047,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 61, @@ -1480,7 +1480,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 73, @@ -1997,7 +1997,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -2556,7 +2556,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 89, @@ -3185,7 +3185,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 55, @@ -3576,7 +3576,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 65, @@ -4037,7 +4037,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 61, @@ -4470,7 +4470,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -5071,7 +5071,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 73, @@ -5588,7 +5588,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 37, @@ -5853,7 +5853,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 33, @@ -6090,7 +6090,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 49, @@ -6439,7 +6439,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 49, @@ -6788,7 +6788,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 25, @@ -6969,7 +6969,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 75, @@ -7500,7 +7500,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -8087,7 +8087,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 19, @@ -8226,7 +8226,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 59, @@ -8645,7 +8645,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -9246,7 +9246,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 61, @@ -9679,7 +9679,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 63, @@ -10126,7 +10126,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -10685,7 +10685,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 57, @@ -11090,7 +11090,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -11803,7 +11803,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 43, @@ -12110,7 +12110,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 55, @@ -12501,7 +12501,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 53, @@ -12878,7 +12878,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -13654,7 +13654,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 89, @@ -14283,7 +14283,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 95, @@ -14954,7 +14954,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 95, @@ -15625,7 +15625,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 71, @@ -16128,7 +16128,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -16687,7 +16687,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -17372,7 +17372,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 87, @@ -17987,7 +17987,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -18672,7 +18672,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -19259,7 +19259,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -19860,7 +19860,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -20447,7 +20447,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 103, @@ -21174,7 +21174,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 35, @@ -21425,7 +21425,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 109, @@ -22194,7 +22194,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 75, @@ -22725,7 +22725,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -23410,7 +23410,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -24123,7 +24123,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 53, @@ -24500,7 +24500,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 113, @@ -25297,7 +25297,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -25982,7 +25982,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 71, @@ -26485,7 +26485,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 77, @@ -27030,7 +27030,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 107, @@ -27785,7 +27785,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 71, @@ -28288,7 +28288,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -28889,7 +28889,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 65, @@ -29350,7 +29350,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 91, @@ -29993,7 +29993,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -30580,7 +30580,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -31286,7 +31286,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 109, @@ -32055,7 +32055,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -32768,7 +32768,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 99, @@ -33467,7 +33467,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 103, @@ -34194,7 +34194,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 107, @@ -34949,7 +34949,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 93, @@ -35606,7 +35606,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 113, @@ -36403,7 +36403,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -37004,7 +37004,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 65, @@ -37465,7 +37465,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 107, @@ -38220,7 +38220,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 65, @@ -38681,7 +38681,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 77, @@ -39226,7 +39226,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 87, @@ -39841,7 +39841,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 53, @@ -40218,7 +40218,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 31, @@ -40441,7 +40441,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 59, @@ -40860,7 +40860,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -41573,7 +41573,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -42132,7 +42132,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -42817,7 +42817,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -43376,7 +43376,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -43935,7 +43935,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -44648,7 +44648,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -45207,7 +45207,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 117, @@ -46032,7 +46032,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 99, @@ -46731,7 +46731,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 43, @@ -47038,7 +47038,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 113, @@ -47835,7 +47835,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -48548,7 +48548,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -49338,7 +49338,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 95, @@ -50009,7 +50009,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 105, @@ -50750,7 +50750,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 99, @@ -51449,7 +51449,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 107, @@ -52204,7 +52204,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -52889,7 +52889,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -53574,7 +53574,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -54259,7 +54259,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -54944,7 +54944,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 67, @@ -55419,7 +55419,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 77, @@ -55964,7 +55964,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -56677,7 +56677,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -57362,7 +57362,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -58047,7 +58047,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -58634,7 +58634,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -59347,7 +59347,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 89, @@ -59976,7 +59976,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 93, @@ -60633,7 +60633,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 51, @@ -60996,7 +60996,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -61583,7 +61583,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 83, @@ -62170,7 +62170,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 65, @@ -62631,7 +62631,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 41, @@ -62924,7 +62924,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -63525,7 +63525,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 59, @@ -63944,7 +63944,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 87, @@ -64559,7 +64559,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -65244,7 +65244,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 113, @@ -66041,7 +66041,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 95, @@ -66712,7 +66712,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -67460,7 +67460,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 103, @@ -68187,7 +68187,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 89, @@ -68816,7 +68816,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 71, @@ -69319,7 +69319,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 47, @@ -69654,7 +69654,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 63, @@ -70101,7 +70101,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 59, @@ -70520,7 +70520,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 41, @@ -70813,7 +70813,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 63, @@ -71260,7 +71260,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 61, @@ -71693,7 +71693,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 49, @@ -72042,7 +72042,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 35, @@ -72293,7 +72293,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 63, @@ -72740,7 +72740,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 91, @@ -73383,7 +73383,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 33, @@ -73620,7 +73620,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 63, @@ -74067,7 +74067,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 43, @@ -74374,7 +74374,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 73, @@ -74891,7 +74891,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 121, @@ -75744,7 +75744,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -76429,7 +76429,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 91, @@ -77072,7 +77072,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 89, @@ -77701,7 +77701,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 53, @@ -78078,7 +78078,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 107, @@ -78833,7 +78833,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -79392,7 +79392,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 85, @@ -79993,7 +79993,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 87, @@ -80608,7 +80608,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 61, @@ -81041,7 +81041,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 115, @@ -81852,7 +81852,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -82684,7 +82684,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 115, @@ -83495,7 +83495,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 119, @@ -84334,7 +84334,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 121, @@ -85187,7 +85187,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 115, @@ -85998,7 +85998,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -86683,7 +86683,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 103, @@ -87410,7 +87410,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 121, @@ -88263,7 +88263,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 81, @@ -88836,7 +88836,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 105, @@ -89577,7 +89577,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 103, @@ -90304,7 +90304,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 97, @@ -90989,7 +90989,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 79, @@ -91548,7 +91548,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 115, @@ -92359,7 +92359,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 93, @@ -93016,7 +93016,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 53, @@ -93393,7 +93393,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 93, @@ -94050,7 +94050,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 115, @@ -94861,7 +94861,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 49, @@ -95210,7 +95210,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 107, @@ -95965,7 +95965,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 75, @@ -96496,7 +96496,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 69, @@ -96985,7 +96985,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 49, @@ -97334,7 +97334,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 81, @@ -97907,7 +97907,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 93, @@ -98564,7 +98564,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 101, @@ -99277,7 +99277,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 67, @@ -99752,7 +99752,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 71, @@ -100255,7 +100255,7 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 59, @@ -100674,28 +100674,26 @@ static const GBTPredictor GENERIC_NUMERIC_PREDICTOR = { .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } - + } }; -static const Label GENERIC_NUMERIC_CLASS_LABELS[] = {"delta_fieldlz", "fieldlz", "range_pack", "range_pack_zstd", "tokenize_delta_fieldlz", "zstd"}; -static const size_t GENERIC_NUMERIC_NB_LABELS = 6; + +static const size_t GENERIC_NUMERIC_NB_SUCCESSORS = 6; static const Label GENERIC_NUMERIC_FEATURE_LABELS[] = {"nbElts", "variance", "eltWidth", "stddev", "cardinality", "cardinality_upper", "cardinality_lower", "skewness", "cardinality_ratio", "range_size", "cardinality_range_ratio", "mean", "kurtosis"}; static const size_t GENERIC_NUMERIC_NB_FEATURES = 13; + GBTModel getGenericNumericGbtModel(FeatureGenerator featureGenerator) { GBTModel gbtModel = { .predictor = &GENERIC_NUMERIC_PREDICTOR, .featureGenerator = featureGenerator, - .nbLabels = GENERIC_NUMERIC_NB_LABELS, - .classLabels = GENERIC_NUMERIC_CLASS_LABELS, + .nbSuccessors = GENERIC_NUMERIC_NB_SUCCESSORS, .nbFeatures = GENERIC_NUMERIC_NB_FEATURES, .featureLabels = GENERIC_NUMERIC_FEATURE_LABELS, }; return gbtModel; } - - diff --git a/src/openzl/compress/selectors/ml/selector_numeric_model.h b/src/openzl/compress/selectors/ml/selector_numeric_model.h index 6df4f1d8b..5f19609c6 100644 --- a/src/openzl/compress/selectors/ml/selector_numeric_model.h +++ b/src/openzl/compress/selectors/ml/selector_numeric_model.h @@ -12,6 +12,15 @@ extern "C" { #endif +typedef enum { + GENERIC_NUMERIC_DELTA_FIELDLZ = 0, + GENERIC_NUMERIC_FIELDLZ = 1, + GENERIC_NUMERIC_RANGE_PACK = 2, + GENERIC_NUMERIC_RANGE_PACK_ZSTD = 3, + GENERIC_NUMERIC_TOKENIZE_DELTA_FIELDLZ = 4, + GENERIC_NUMERIC_ZSTD = 5, +} GenericNumericLabelEnum; + // GENERATED GENERIC_NUMERIC MODEL GETTER FUNCTION extern GBTModel getGenericNumericGbtModel(FeatureGenerator featureGenerator); diff --git a/src/openzl/compress/selectors/selector_compress.c b/src/openzl/compress/selectors/selector_compress.c index 8d065fac1..2e69517a4 100644 --- a/src/openzl/compress/selectors/selector_compress.c +++ b/src/openzl/compress/selectors/selector_compress.c @@ -12,9 +12,9 @@ ZL_Report MultiInputGraph_compress(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) { ZL_DLOG(SEQ, "MultiInputGraph_compress: %zu inputs", nbInputs); - (void)gctx; + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); for (size_t n = 0; n < nbInputs; n++) { - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(inputs[n], ZL_GRAPH_COMPRESS1)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputs[n], ZL_GRAPH_COMPRESS1)); } return ZL_returnSuccess(); } diff --git a/src/openzl/compress/selectors/selector_compress.h b/src/openzl/compress/selectors/selector_compress.h index f4fc8c5d9..4b0c23900 100644 --- a/src/openzl/compress/selectors/selector_compress.h +++ b/src/openzl/compress/selectors/selector_compress.h @@ -13,11 +13,13 @@ ZL_BEGIN_C_DECLS ZL_Report MultiInputGraph_compress(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs); -#define MIGRAPH_COMPRESS \ - { \ - .name = "!zl.compress_generic", .graph_f = MultiInputGraph_compress, \ - .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, .nbInputs = 1, \ - .lastInputIsVariable = 1, \ +#define MIGRAPH_COMPRESS \ + { \ + .name = "!zl.compress_generic", \ + .graph_f = MultiInputGraph_compress, \ + .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, \ + .nbInputs = 1, \ + .lastInputIsVariable = 1, \ } // .selector_f = SI_selector_compress, .inStreamType = ZL_Type_any, diff --git a/src/openzl/compress/selectors/selector_constant.c b/src/openzl/compress/selectors/selector_constant.c index 8a6a163ee..a75aab43d 100644 --- a/src/openzl/compress/selectors/selector_constant.c +++ b/src/openzl/compress/selectors/selector_constant.c @@ -4,10 +4,36 @@ #include "openzl/common/assertion.h" #include "openzl/compress/private_nodes.h" +/* Returns non-zero if all bytes of the first element are identical. + * This covers 0x00..00, 0xFF..FF, 0x55..55, etc. + * For such patterns, Serial path is more efficient. */ +static int isSingleBytePattern(const ZL_Input* inputStream) +{ + const uint8_t* ptr = ZL_Input_ptr(inputStream); + size_t const eltWidth = ZL_Input_eltWidth(inputStream); + if (ZL_Input_numElts(inputStream) == 0) { + return 0; + } + uint8_t const firstByte = ptr[0]; + for (size_t i = 1; i < eltWidth; ++i) { + if (ptr[i] != firstByte) + return 0; + } + return 1; +} + /* SI_selector_constant(): * * The goal of this selector is to select between serialized and - * fixed-size constant encoding given an input that can be either type + * fixed-size constant encoding given an input that can be any of + * these types. + * + * Single-byte patterns (0x00, 0xFF, 0x55, etc.) are routed + * to CONSTANT_SERIAL (more efficient). + * + * Note: data arriving at this selector should be verified constant. + * No verification is done here, but if the data is not constant, + * operation will later fail, on reaching the constant node. */ ZL_GraphID SI_selector_constant( @@ -20,12 +46,25 @@ ZL_GraphID SI_selector_constant( (void)customGraphs; (void)nbCustomGraphs; + ZL_Type const inType = ZL_Input_type(inputStream); ZL_ASSERT( - ZL_Input_type(inputStream) == ZL_Type_serial - || ZL_Input_type(inputStream) == ZL_Type_struct); - ZL_ASSERT_GE(ZL_Input_eltWidth(inputStream), 1); + inType == ZL_Type_serial || inType == ZL_Type_struct + || inType == ZL_Type_numeric); + + /* If all bytes are identical, Serial path is more efficient */ + if (isSingleBytePattern(inputStream)) { + return ZL_GRAPH_CONSTANT_SERIAL; + } - return ZL_Input_type(inputStream) == ZL_Type_serial - ? ZL_GRAPH_CONSTANT_SERIAL - : ZL_GRAPH_CONSTANT_FIXED; + switch (inType) { + case ZL_Type_serial: + return ZL_GRAPH_CONSTANT_SERIAL; + case ZL_Type_struct: + case ZL_Type_numeric: + return ZL_GRAPH_CONSTANT_FIXED; + /* fallthrough - not supported */ + case ZL_Type_string: + default: + ZL_REQUIRE(0, "Unsupported input type for constant selector"); + } } diff --git a/src/openzl/compress/selectors/selector_constant.h b/src/openzl/compress/selectors/selector_constant.h index 30196c345..81cbc4997 100644 --- a/src/openzl/compress/selectors/selector_constant.h +++ b/src/openzl/compress/selectors/selector_constant.h @@ -9,7 +9,7 @@ ZL_BEGIN_C_DECLS // .selector_f = SI_selector_constant, -// .inStreamType = ZL_Type_serial | ZL_Type_struct, +// .inStreamType = ZL_Type_serial | ZL_Type_struct | ZL_Type_numeric, ZL_GraphID SI_selector_constant( const ZL_Selector* selCtx, const ZL_Input* inputStream, diff --git a/src/openzl/compress/selectors/selector_numeric.c b/src/openzl/compress/selectors/selector_numeric.c index 27c9d4dd7..105a944bd 100644 --- a/src/openzl/compress/selectors/selector_numeric.c +++ b/src/openzl/compress/selectors/selector_numeric.c @@ -16,25 +16,24 @@ ZL_GraphID SI_selector_numeric( (void)nbCustomGraphs; GBTModel gbtModel = getGenericNumericGbtModel(FeatureGen_integer); - ZL_RESULT_OF(Label) - + ZL_RESULT_OF(size_t) result = GBTModel_predict(&gbtModel, inputStream); if (ZL_RES_isError(result)) { return ZL_GRAPH_ILLEGAL; } + size_t decodedLabel = ZL_RES_value(result); - const char* decodedLabel = ZL_RES_value(result); - if (!strcmp(decodedLabel, "fieldlz")) { + if (decodedLabel == GENERIC_NUMERIC_FIELDLZ) { return ZL_GRAPH_FIELD_LZ; - } else if (!strcmp(decodedLabel, "range_pack")) { + } else if (decodedLabel == GENERIC_NUMERIC_RANGE_PACK) { return ZL_GRAPH_RANGE_PACK; - } else if (!strcmp(decodedLabel, "range_pack_zstd")) { + } else if (decodedLabel == GENERIC_NUMERIC_RANGE_PACK_ZSTD) { return ZL_GRAPH_RANGE_PACK_ZSTD; - } else if (!strcmp(decodedLabel, "delta_fieldlz")) { + } else if (decodedLabel == GENERIC_NUMERIC_DELTA_FIELDLZ) { return ZL_GRAPH_DELTA_FIELD_LZ; - } else if (!strcmp(decodedLabel, "tokenize_delta_fieldlz")) { + } else if (decodedLabel == GENERIC_NUMERIC_TOKENIZE_DELTA_FIELDLZ) { return ZL_GRAPH_TOKENIZE_DELTA_FIELD_LZ; - } else if (!strcmp(decodedLabel, "zstd")) { + } else if (decodedLabel == GENERIC_NUMERIC_ZSTD) { return ZL_GRAPH_ZSTD; } diff --git a/src/openzl/compress/selectors/selector_numeric.h b/src/openzl/compress/selectors/selector_numeric.h index 0c5768d55..ee1002db8 100644 --- a/src/openzl/compress/selectors/selector_numeric.h +++ b/src/openzl/compress/selectors/selector_numeric.h @@ -18,4 +18,4 @@ ZL_GraphID SI_selector_numeric( ZL_END_C_DECLS -#endif +#endif // ZSTRONG_COMPRESS_SELECTORS_SELECTOR_NUMERIC_H diff --git a/src/openzl/compress/selectors/selector_store.c b/src/openzl/compress/selectors/selector_store.c index a89a1929c..864c746eb 100644 --- a/src/openzl/compress/selectors/selector_store.c +++ b/src/openzl/compress/selectors/selector_store.c @@ -8,9 +8,9 @@ ZL_Report MultiInputGraph_store(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs) { - (void)gctx; + ZL_RESULT_DECLARE_SCOPE_REPORT(gctx); for (size_t n = 0; n < nbInputs; n++) { - ZL_RET_R_IF_ERR(ZL_Edge_setDestination(inputs[n], ZL_GRAPH_STORE1)); + ZL_ERR_IF_ERR(ZL_Edge_setDestination(inputs[n], ZL_GRAPH_STORE1)); } return ZL_returnSuccess(); } diff --git a/src/openzl/compress/selectors/selector_store.h b/src/openzl/compress/selectors/selector_store.h index 0d7e6ebc4..580700d68 100644 --- a/src/openzl/compress/selectors/selector_store.h +++ b/src/openzl/compress/selectors/selector_store.h @@ -13,12 +13,12 @@ ZL_BEGIN_C_DECLS ZL_Report MultiInputGraph_store(ZL_Graph* gctx, ZL_Edge* inputs[], size_t nbInputs); -#define MIGRAPH_STORE \ - { \ - .name = "!zl.store", .graph_f = MultiInputGraph_store, \ - .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, .nbInputs = 1, \ - .lastInputIsVariable = 1 \ - } +#define MIGRAPH_STORE \ + { .name = "!zl.store", \ + .graph_f = MultiInputGraph_store, \ + .inputTypeMasks = (const ZL_Type[]){ ZL_Type_any }, \ + .nbInputs = 1, \ + .lastInputIsVariable = 1 } // .selector_f = SI_selector_store, .inStreamType = ZL_Type_any, ZL_GraphID SI_selector_store( diff --git a/src/openzl/decompress/dctx2.h b/src/openzl/decompress/dctx2.h index 57bba711c..f5667f442 100644 --- a/src/openzl/decompress/dctx2.h +++ b/src/openzl/decompress/dctx2.h @@ -125,6 +125,47 @@ ZL_Report DCtx_setAppliedParameters(ZL_DCtx* dctx); int DCtx_getAppliedGParam(const ZL_DCtx* dctx, ZL_DParam gdparam); +/// Sentinel value indicating a stream is stored in the frame rather than +/// produced by a decoder node. +#define ZL_PRODUCER_STORE ((ZL_IDType)(-1)) + +typedef struct ZL_AppendToOutputOptimization_s ZL_AppendToOutputOptimization; + +typedef struct ZL_DecoderFusionDesc_s ZL_DecoderFusionDesc; + +/// Metadata about a single data stream in the decompression context. +typedef struct ZL_DCtx_DataInfo { + ZL_Data* data; + ZL_AppendToOutputOptimization* appendOpt; + /// The index of the node that produced this stream or + /// ZL_PRODUCER_STORE if stored in the frame. + ZL_IDType producerNodeIdx; +} ZL_DCtx_DataInfo; + +/** + * Run the decoder for a single node. + * + * @param nodeInfo The node to run. + * @param withinFusedDecoder If true, this function is being called from within + * a currently executing decoder fusion via ZL_DecoderFusion_runCodec(), so do + * not search for decoder fusions as the caller is explicitly asking for the + * codec to be executed. + */ +ZL_Report DCTX_runDecoder( + ZL_DCtx* dctx, + const DFH_NodeInfo* nodeInfo, + bool withinFusedDecoder); + +/// Register a decoder fusion with the decompression context. +/// @see ZL_DecoderFusionState_registerFusion() +ZL_Report DCTX_registerDecoderFusion( + ZL_DCtx* dctx, + const ZL_DecoderFusionDesc* fusion); + +/// Remove all registered decoder fusions from the decompression context. +/// @see ZL_DecoderFusionState_clearFusions() +void DCTX_clearDecoderFusions(ZL_DCtx* dctx); + ZL_END_C_DECLS #endif // ZSTRONG_DECOMPRESS_DCTX2_H diff --git a/src/openzl/decompress/decode_frameheader.c b/src/openzl/decompress/decode_frameheader.c index 69184280f..5c0cfe2f4 100644 --- a/src/openzl/decompress/decode_frameheader.c +++ b/src/openzl/decompress/decode_frameheader.c @@ -12,7 +12,7 @@ #include "openzl/common/assertion.h" // ZS_ASSERT_* #include "openzl/common/cursor.h" // ZL_RC #include "openzl/common/limits.h" -#include "openzl/common/wire_format.h" // ZL_StandardTransformID_end +#include "openzl/common/wire_format.h" // ZL_StandardTransformID_numBits #include "openzl/fse/fse.h" // FSE_getErrorName #include "openzl/fse/hist.h" // HIST_count_simple #include "openzl/shared/bits.h" @@ -34,6 +34,8 @@ struct ZL_FrameInfo { uint64_t* decompressedSizes; uint64_t* numElts; size_t frameHeaderSize; + void* comment; + size_t commentSize; }; static ZL_Type decodeType(uint8_t et) @@ -60,13 +62,14 @@ static ZL_Report DFH_decodeNbOutputs( size_t* consumedPtr, size_t formatVersion) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_LE(*consumedPtr, cSize); if (formatVersion <= 14) { // single input only *consumedPtr += (formatVersion == 14); return ZL_returnValue(1); } else if (formatVersion < ZL_CHUNK_VERSION_MIN) { - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, *consumedPtr + 1 + 4); + ZL_ERR_IF_LT(cSize, *consumedPtr + 1 + 4, srcSize_tooSmall); size_t nbOutputs = (size_t)(((const uint8_t*)cSrc)[*consumedPtr] >> 6) + 1; *consumedPtr += 1; @@ -90,7 +93,7 @@ static ZL_Report DFH_decodeNbOutputs( } return ZL_returnValue(nbOutputs); } else { // format >= ZL_CHUNK_VERSION_MIN - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, *consumedPtr + 1 + 4); + ZL_ERR_IF_LT(cSize, *consumedPtr + 1 + 4, srcSize_tooSmall); uint8_t token1 = ((const uint8_t*)cSrc)[*consumedPtr]; *consumedPtr += 1; size_t nbOutputs = (size_t)(token1 & 15); @@ -111,19 +114,20 @@ static ZL_Report DFH_decoderOutputTypes( size_t* consumedPtr, size_t formatVersion) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (formatVersion < 14) { // no type types[0] = ZL_Type_serial; } else if (formatVersion < ZL_CHUNK_VERSION_MIN) { size_t firstToken = ZL_MIN(nbOutputs, 3); - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, 5); + ZL_ERR_IF_LT(cSize, 5, srcSize_tooSmall); for (size_t n = 0; n < firstToken; n++) { size_t shift = n * 2; types[n] = decodeType(((((const uint8_t*)cSrc)[4]) >> shift) & 3); } if (nbOutputs > 3) { size_t const limit = ZL_MIN(nbOutputs, 5); - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, 6); + ZL_ERR_IF_LT(cSize, 6, srcSize_tooSmall); for (size_t n = 3; n < limit; n++) { size_t shift = (n - 3) * 2; types[n] = @@ -132,7 +136,7 @@ static ZL_Report DFH_decoderOutputTypes( } if (nbOutputs > 5) { size_t const neededBytes = ((nbOutputs - 5) + 3) / 4; - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, *consumedPtr + neededBytes); + ZL_ERR_IF_LT(cSize, *consumedPtr + neededBytes, srcSize_tooSmall); uint8_t token = 0; for (size_t n = 5; n < nbOutputs; n++) { size_t shift = ((n - 5) % 4) * 2; @@ -159,7 +163,7 @@ static ZL_Report DFH_decoderOutputTypes( } /* nbOutputs > 2 */ size_t const neededBytes = (nbOutputs - done + 3) / 4; - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, *consumedPtr + neededBytes); + ZL_ERR_IF_LT(cSize, *consumedPtr + neededBytes, srcSize_tooSmall); uint8_t token = 0; for (size_t n = done; n < nbOutputs; n++) { size_t shift = ((n - done) % 4) * 2; @@ -180,8 +184,9 @@ static ZL_Report DFH_decodeOutputSizes_v20( size_t cSize, size_t nbOutputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); (void)numElts; // not used for versions <= 20 - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, 4 * nbOutputs); + ZL_ERR_IF_LT(cSize, 4 * nbOutputs, srcSize_tooSmall); for (size_t n = 0; n < nbOutputs; n++) { dSizes[n] = ZL_readLE32((const char*)src + 4 * n); } @@ -196,26 +201,27 @@ static ZL_Report DFH_decodeOutputSizes_v21( const ZL_Type* types, size_t nbOutputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); const uint8_t* ptr = src; const uint8_t* end = ptr + cSize; - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, 1); + ZL_ERR_IF_LT(cSize, 1, srcSize_tooSmall); { uint8_t const firstByte = ((const uint8_t*)src)[0]; // 0 means "final output size(s) are unknown" - ZL_RET_R_IF_EQ( - temporaryLibraryLimitation, + ZL_ERR_IF_EQ( firstByte, 0x0, + temporaryLibraryLimitation, "doesn't support unknown size outputs for the time being"); } for (size_t n = 0; n < nbOutputs; n++) { - ZL_TRY_LET_T(uint64_t, v64, ZL_varintDecode(&ptr, end)); - ZL_RET_R_IF_EQ( - temporaryLibraryLimitation, + ZL_TRY_LET(uint64_t, v64, ZL_varintDecode(&ptr, end)); + ZL_ERR_IF_EQ( v64, 0, + temporaryLibraryLimitation, "does not support unknown decompressed size"); dSizes[n] = v64 - 1; } @@ -223,9 +229,6 @@ static ZL_Report DFH_decodeOutputSizes_v21( // decode Nb strings for (size_t n = 0; n < nbOutputs; n++) { switch (types[n]) { - default: - ZL_ASSERT_FAIL("invalid type"); - ZL_FALLTHROUGH; case ZL_Type_struct: case ZL_Type_numeric: // no idea at this stage (unsupported) @@ -235,7 +238,10 @@ static ZL_Report DFH_decodeOutputSizes_v21( numElts[n] = dSizes[n]; break; case ZL_Type_string: - ZL_TRY_SET_T(uint64_t, numElts[n], ZL_varintDecode(&ptr, end)); + ZL_TRY_SET(uint64_t, numElts[n], ZL_varintDecode(&ptr, end)); + break; + default: + ZL_ASSERT_FAIL("invalid type"); break; } } @@ -267,42 +273,47 @@ static ZL_Report DFH_FrameInfo_decodeFrameHeader( const void* cSrc, size_t cSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(BLOCK, "***** DFH_FrameInfo_decodeFrameHeader ***** \n"); memset(zfi, 0, sizeof(*zfi)); - ZL_TRY_LET_R(formatVersion, ZL_getFormatVersionFromFrame(cSrc, cSize)); + ZL_TRY_LET( + size_t, formatVersion, ZL_getFormatVersionFromFrame(cSrc, cSize)); ZL_ASSERT_NN(zfi); zfi->formatVersion = formatVersion; size_t consumed = 4; + const uint8_t* ptr = (const uint8_t*)cSrc; /* frame properties, such as checksums */ if (zfi->formatVersion >= ZL_CHUNK_VERSION_MIN) { - ZL_RET_R_IF_LE(srcSize_tooSmall, cSize, consumed); - uint8_t const flags = ((const uint8_t*)cSrc)[consumed++]; - zfi->properties.hasContentChecksum = ((flags & (1 << 0)) != 0); + ZL_ERR_IF_LE(cSize, consumed, srcSize_tooSmall); + uint8_t const flags = ptr[consumed++]; + zfi->properties.hasContentChecksum = ((flags & (1 << 0)) != 0); zfi->properties.hasCompressedChecksum = ((flags & (1 << 1)) != 0); + zfi->properties.hasComment = ((flags & (1 << 2)) != 0); } /* nb of outputs */ - ZL_TRY_SET_R( + ZL_TRY_SET( + size_t, zfi->nbOutputs, DFH_decodeNbOutputs(cSrc, cSize, &consumed, formatVersion)); ZL_DLOG(BLOCK, "frame format %u, hosts %u output streams", formatVersion, zfi->nbOutputs); - ZL_RET_R_IF_GT( - outputs_tooNumerous, + ZL_ERR_IF_GT( zfi->nbOutputs, ZL_runtimeInputLimit((unsigned)formatVersion), + outputs_tooNumerous, "Too many outputs for this format version"); // @note for the time being, do not support 0 output // (which is different from an empty output). - ZL_RET_R_IF_EQ(GENERIC, zfi->nbOutputs, 0, "doesn't support 0 output"); + ZL_ERR_IF_EQ(zfi->nbOutputs, 0, GENERIC, "doesn't support 0 output"); // Decode Output Types ALLOC_MALLOC_CHECKED(ZL_Type, types, zfi->nbOutputs); zfi->types = types; - ZL_RET_R_IF_ERR(DFH_decoderOutputTypes( + ZL_ERR_IF_ERR(DFH_decoderOutputTypes( types, zfi->nbOutputs, cSrc, cSize, &consumed, formatVersion)); // Decode Output Sizes @@ -311,12 +322,13 @@ static ZL_Report DFH_FrameInfo_decodeFrameHeader( zfi->decompressedSizes = dSizes; ALLOC_MALLOC_CHECKED(uint64_t, numElts, zfi->nbOutputs); zfi->numElts = numElts; - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, oss, DFH_decodeOutputSizes( dSizes, numElts, - (const char*)cSrc + consumed, + ptr + consumed, cSize - consumed, types, zfi->nbOutputs, @@ -326,13 +338,37 @@ static ZL_Report DFH_FrameInfo_decodeFrameHeader( "DFH_FrameInfo_decodeFrameHeader consumed %zu bytes from header", consumed); + // Decode Comment + if (formatVersion >= ZL_COMMENT_VERSION_MIN && zfi->properties.hasComment) { + const uint8_t* cSrcCur = ptr + consumed; + ZL_TRY_LET_CONST( + uint64_t, commentSize, ZL_varintDecode(&cSrcCur, ptr + cSize)); + ZL_ERR_IF_EQ( + commentSize, + 0, + corruption, + "Invalid frame header: comment size cannot be 0 when flag is set."); + ZL_ERR_IF_GT( + commentSize, + ZL_MAX_HEADER_COMMENT_SIZE_LIMIT, + corruption, + "Invalid frame header: frame max comment size exceeded."); + zfi->commentSize = commentSize; + consumed += (size_t)(cSrcCur - (ptr + consumed)); + zfi->comment = ZL_malloc(commentSize); + ZL_ERR_IF_NULL(zfi->comment, allocation); + ZL_ERR_IF_GT(consumed + commentSize, cSize, corruption); + memcpy(zfi->comment, ptr + consumed, commentSize); + consumed += commentSize; + } + if ((formatVersion >= ZL_CHUNK_VERSION_MIN) && zfi->properties.hasCompressedChecksum) { // Frame header checksum uint64_t const fhchk = XXH3_64bits(cSrc, consumed) & 255; - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, consumed + 1); + ZL_ERR_IF_LT(cSize, consumed + 1, srcSize_tooSmall); uint64_t const rhchk = ((const uint8_t*)cSrc)[consumed++]; - ZL_RET_R_IF_NE(corruption, fhchk, rhchk); + ZL_ERR_IF_NE(fhchk, rhchk, corruption); } if (formatVersion >= ZL_CHUNK_VERSION_MIN) { @@ -363,30 +399,34 @@ void ZL_FrameInfo_free(ZL_FrameInfo* zfi) ZL_free(zfi->types); ZL_free(zfi->decompressedSizes); ZL_free(zfi->numElts); + ZL_free(zfi->comment); ZL_free(zfi); } ZL_Report ZL_FrameInfo_getFormatVersion(const ZL_FrameInfo* zfi) { - ZL_RET_R_IF_NULL(GENERIC, zfi); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_NULL(zfi, GENERIC); return ZL_returnValue(zfi->formatVersion); } ZL_Report ZL_FrameInfo_getNumOutputs(const ZL_FrameInfo* zfi) { - ZL_RET_R_IF_NULL(GENERIC, zfi); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_NULL(zfi, GENERIC); ZL_ASSERT_GT(zfi->nbOutputs, 0); return ZL_returnValue(zfi->nbOutputs); } ZL_Report ZL_FrameInfo_getOutputType(const ZL_FrameInfo* zfi, int outputID) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "ZL_FrameInfo_getOutputType (outputID:%i)", outputID); ZL_ASSERT_NN(zfi); - ZL_RET_R_IF_GE( - outputID_invalid, + ZL_ERR_IF_GE( outputID, (int)zfi->nbOutputs, + outputID_invalid, "This frame only contains %zu outputs", zfi->nbOutputs); return ZL_returnValue((size_t)zfi->types[outputID]); @@ -396,11 +436,12 @@ ZL_Report ZL_FrameInfo_getDecompressedSize( const ZL_FrameInfo* zfi, int outputID) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(zfi); - ZL_RET_R_IF_GE( - outputID_invalid, + ZL_ERR_IF_GE( outputID, (int)zfi->nbOutputs, + outputID_invalid, "This frame only contains %zu outputs", zfi->nbOutputs); ZL_ASSERT_NN(zfi->decompressedSizes); @@ -409,38 +450,55 @@ ZL_Report ZL_FrameInfo_getDecompressedSize( ZL_Report ZL_FrameInfo_getNumElts(const ZL_FrameInfo* zfi, int outputID) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(zfi); - ZL_RET_R_IF_GE( - outputID_invalid, + ZL_ERR_IF_GE( outputID, (int)zfi->nbOutputs, + outputID_invalid, "This frame only contains %zu outputs", zfi->nbOutputs); - ZL_RET_R_IF_LT( - GENERIC, + ZL_ERR_IF_LT( zfi->formatVersion, ZL_CHUNK_VERSION_MIN, + GENERIC, "This method only works on frames with version >= %zu", ZL_CHUNK_VERSION_MIN); // Currently only supports string & serial ZL_ASSERT_NN(zfi->types); ZL_Type const outType = zfi->types[outputID]; - ZL_RET_R_IF_EQ( - temporaryLibraryLimitation, + ZL_ERR_IF_EQ( outType, ZL_Type_struct, - "this method doesn't support Struct type yet"); - ZL_RET_R_IF_EQ( temporaryLibraryLimitation, + "this method doesn't support Struct type yet"); + ZL_ERR_IF_EQ( outType, ZL_Type_numeric, + temporaryLibraryLimitation, "this method doesn't support Numeric type yet"); ZL_ASSERT_NN(zfi->numElts); return ZL_returnValue(zfi->numElts[outputID]); } +ZL_RESULT_OF(ZL_Comment) ZL_FrameInfo_getComment(const ZL_FrameInfo* zfi) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_Comment, NULL); + ZL_Comment comment; + ZL_ASSERT_NN(zfi); + ZL_ERR_IF_LT( + zfi->formatVersion, + ZL_COMMENT_VERSION_MIN, + GENERIC, + "This method only works on frames with version >= %zu", + ZL_COMMENT_VERSION_MIN); + comment.data = zfi->comment; + comment.size = zfi->commentSize; + return ZL_WRAP_VALUE(comment); +} + // -------------------------- // Header parsing // -------------------------- @@ -516,7 +574,9 @@ void DFH_destroy(DFH_Struct* dfh) // Public Symbol ZL_Report ZL_getDecompressedSize(const void* cSrc, size_t cSize) { - ZL_TRY_LET_R(formatVersion, ZL_getFormatVersionFromFrame(cSrc, cSize)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET( + size_t, formatVersion, ZL_getFormatVersionFromFrame(cSrc, cSize)); DFH_Interface const decoder = DFH_getFrameHeaderDecoder((uint32_t)formatVersion); return decoder.getDecompressedSize(&decoder, cSrc, cSize); @@ -535,19 +595,20 @@ ZL_Report ZL_getNumOutputs(const void* cSrc, size_t cSize) // but it creates an additional sync burden when wire format evolves. ZL_Report ZL_getOutputType(ZL_Type* typePtr, const void* cSrc, size_t cSize) { - ZL_TRY_LET_R(formatVersion, ZL_getFormatVersionFromFrame(cSrc, cSize)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET( + size_t, formatVersion, ZL_getFormatVersionFromFrame(cSrc, cSize)); if (formatVersion <= 13) { *typePtr = ZL_Type_serial; } else if (formatVersion < ZL_CHUNK_VERSION_MIN) { - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, 5); + ZL_ERR_IF_LT(cSize, 5, srcSize_tooSmall); uint8_t const typeEncoded = ((const uint8_t*)cSrc)[4]; - ZL_RET_R_IF_GT(invalidRequest_singleOutputFrameOnly, typeEncoded, 3); + ZL_ERR_IF_GT(typeEncoded, 3, invalidRequest_singleOutputFrameOnly); *typePtr = decodeType(typeEncoded); } else { // formatVersion >= ZL_CHUNK_VERSION_MIN - ZL_RET_R_IF_LT(srcSize_tooSmall, cSize, 6); + ZL_ERR_IF_LT(cSize, 6, srcSize_tooSmall); uint8_t const typeEncoded = ((const uint8_t*)cSrc)[5]; - ZL_RET_R_IF_NE( - invalidRequest_singleOutputFrameOnly, typeEncoded & 15, 1); + ZL_ERR_IF_NE(typeEncoded & 15, 1, invalidRequest_singleOutputFrameOnly); *typePtr = decodeType((typeEncoded >> 4) & 3); } return ZL_returnSuccess(); @@ -555,8 +616,10 @@ ZL_Report ZL_getOutputType(ZL_Type* typePtr, const void* cSrc, size_t cSize) ZL_Report ZL_getCompressedSize(const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "ZL_getCompressedSize"); - ZL_TRY_LET_R(formatVersion, ZL_getFormatVersionFromFrame(src, srcSize)); + ZL_TRY_LET( + size_t, formatVersion, ZL_getFormatVersionFromFrame(src, srcSize)); DFH_Interface const decoder = DFH_getFrameHeaderDecoder((uint32_t)formatVersion); return decoder.getCompressedSize(&decoder, src, srcSize); @@ -564,7 +627,9 @@ ZL_Report ZL_getCompressedSize(const void* src, size_t srcSize) ZL_Report ZL_getHeaderSize(const void* src, size_t srcSize) { - ZL_TRY_LET_R(formatVersion, ZL_getFormatVersionFromFrame(src, srcSize)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET( + size_t, formatVersion, ZL_getFormatVersionFromFrame(src, srcSize)); DFH_Interface const decoder = DFH_getFrameHeaderDecoder((uint32_t)formatVersion); return decoder.getHeaderSize(&decoder, src, srcSize); @@ -591,14 +656,15 @@ size_t FrameInfo_frameHeaderSize(const ZL_FrameInfo* fi) static ZL_Report checkedBitpackDecode8(uint8_t* dst, size_t nbElts, ZL_RC* src, int nbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Prevalidated ZL_ASSERT_GE(nbBits, 0); - ZL_RET_R_IF_GT(GENERIC, nbBits, 8, "corruption"); - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT(nbBits, 8, GENERIC, "corruption"); + ZL_ERR_IF_GT( (nbElts * (size_t)nbBits + 7) / 8, - ZL_RC_avail(src)); + ZL_RC_avail(src), + internalBuffer_tooSmall); size_t const srcSize = ZS_bitpackDecode8( dst, nbElts, ZL_RC_ptr(src), ZL_RC_avail(src), nbBits); ZL_RC_advance(src, srcSize); @@ -608,14 +674,15 @@ checkedBitpackDecode8(uint8_t* dst, size_t nbElts, ZL_RC* src, int nbBits) static ZL_Report checkedBitpackDecode32(uint32_t* dst, size_t nbElts, ZL_RC* src, int nbBits) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Prevalidated ZL_ASSERT_GE(nbBits, 0); - ZL_RET_R_IF_GT(GENERIC, nbBits, 32, "corruption"); - ZL_RET_R_IF_GT( - internalBuffer_tooSmall, + ZL_ERR_IF_GT(nbBits, 32, GENERIC, "corruption"); + ZL_ERR_IF_GT( (nbElts * (size_t)nbBits + 7) / 8, - ZL_RC_avail(src)); + ZL_RC_avail(src), + internalBuffer_tooSmall); size_t const srcSize = ZS_bitpackDecode32( dst, nbElts, ZL_RC_ptr(src), ZL_RC_avail(src), nbBits); ZL_RC_advance(src, srcSize); @@ -626,7 +693,8 @@ checkedBitpackDecode32(uint32_t* dst, size_t nbElts, ZL_RC* src, int nbBits) // Simple bit packing, 1 bit per transform (for the time being) static ZL_Report decompressTrt(uint8_t array8[], size_t nbFlags, ZL_RC* src) { - ZL_TRY_LET_R(r, checkedBitpackDecode8(array8, nbFlags, src, 1)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET(size_t, r, checkedBitpackDecode8(array8, nbFlags, src, 1)); ZL_DLOG(BLOCK, "Decoding %zu codec types, using %zu bytes", nbFlags, r); return ZL_returnSuccess(); } @@ -637,8 +705,10 @@ static ZL_Report decompressTrID( size_t nbTransforms, ZL_RC* src, const uint8_t trt8[], - uint32_t scratch[]) + uint32_t scratch[], + unsigned formatVersion) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (!nbTransforms) return ZL_returnSuccess(); @@ -652,9 +722,9 @@ static ZL_Report decompressTrID( unsigned cardinality = 0; size_t const r = HIST_count_simple( nbTrs, &maxTrtValue, &cardinality, trt8, nbTransforms); - ZL_RET_R_IF( - corruption, + ZL_ERR_IF( HIST_isError(r), + corruption, "histogram error: %s", FSE_getErrorName(r)); ZL_ASSERT_LE(maxTrtValue, 1); @@ -662,17 +732,16 @@ static ZL_Report decompressTrID( // start decoding standard nodes uint32_t* snodeids = scratch; - int const nbBits = ZL_nextPow2(ZL_StandardTransformID_end); - ZL_RET_R_IF_ERR(checkedBitpackDecode32(snodeids, nbTrs[0], src, nbBits)); + int const nbBits = ZL_StandardTransformID_numBits(formatVersion); + ZL_ERR_IF_ERR(checkedBitpackDecode32(snodeids, nbTrs[0], src, nbBits)); // then decode custom nodes uint32_t* cnodeids = scratch + nbTrs[0]; for (size_t u = 0; u < nbTrs[1]; u++) { ZL_RESULT_OF(uint64_t) const res = ZL_RC_popVarint(src); - ZL_RET_R_IF_ERR(res); + ZL_ERR_IF_ERR(res); uint64_t const trid64 = ZL_RES_value(res); - ZL_RET_R_IF_GT( - corruption, trid64, UINT32_MAX, "Transform ID too large"); + ZL_ERR_IF_GT(trid64, UINT32_MAX, corruption, "Transform ID too large"); cnodeids[u] = (uint32_t)trid64; } @@ -699,21 +768,22 @@ static ZL_Report decompressTrID( static ZL_Report decompressTrHSize(uint32_t trhSizes[], size_t nbTransforms, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Store 0-size flags in trhSizes temporarily // 1s will be replaced by the header size - ZL_RET_R_IF_ERR(checkedBitpackDecode32(trhSizes, nbTransforms, src, 1)); + ZL_ERR_IF_ERR(checkedBitpackDecode32(trhSizes, nbTransforms, src, 1)); // decode non-zero private header sizes for (size_t u = 0; u < nbTransforms; u++) { if (trhSizes[u] != 0) { // varint decoded ZL_RESULT_OF(uint64_t) const res = ZL_RC_popVarint(src); - ZL_RET_R_IF_ERR(res); + ZL_ERR_IF_ERR(res); uint64_t const trhSize64 = ZL_RES_value(res); - ZL_RET_R_IF_GE( - corruption, + ZL_ERR_IF_GE( trhSize64, UINT32_MAX - 1, + corruption, "Transform header size too large"); trhSizes[u] = (uint32_t)trhSize64 + 1; } @@ -728,9 +798,10 @@ decompressTrHSize(uint32_t trhSizes[], size_t nbTransforms, ZL_RC* src) static ZL_Report decompressNbVOs(uint32_t nbVOs[], size_t nbTransforms, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Store 0-size flags in nbVOs temporarily // 1s will be replaced later by actual nbVOs - ZL_RET_R_IF_ERR(checkedBitpackDecode32(nbVOs, nbTransforms, src, 1)); + ZL_ERR_IF_ERR(checkedBitpackDecode32(nbVOs, nbTransforms, src, 1)); // decode non-zero nbVOs (8-bit encoded, shifted by 1) for (size_t u = 0; u < nbTransforms; u++) { @@ -739,7 +810,7 @@ decompressNbVOs(uint32_t nbVOs[], size_t nbTransforms, ZL_RC* src) // value was < 128. In this case varint is exactly equivalent to // byte encoding. ZL_ASSERT_LT(ZL_transformOutStreamsLimit(8), 128); - ZL_TRY_LET_T(uint64_t, nbVOsMinus1, ZL_RC_popVarint(src)); + ZL_TRY_LET(uint64_t, nbVOsMinus1, ZL_RC_popVarint(src)); nbVOs[u] = (uint32_t)nbVOsMinus1 + 1; } } @@ -756,21 +827,22 @@ static ZL_Report decompressNbRegens( ZL_RC* src, unsigned formatVersion) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(SEQ, "decompressNbRegens (nbTransforms = %zu)", nbTransforms); ZL_ASSERT_GE(formatVersion, 16); // Store 1-size flags in nbRegens temporarily // 1s will be replaced later by actual nbRegens - ZL_RET_R_IF_ERR(checkedBitpackDecode32(nbRegens, nbTransforms, src, 1)); + ZL_ERR_IF_ERR(checkedBitpackDecode32(nbRegens, nbTransforms, src, 1)); // decode non-1 nbRegens (varint encoded, shifted by 2) for (size_t u = 0; u < nbTransforms; u++) { if (nbRegens[u] != 0) { - ZL_TRY_LET_T(uint64_t, nbRegensMinus2, ZL_RC_popVarint(src)); + ZL_TRY_LET(uint64_t, nbRegensMinus2, ZL_RC_popVarint(src)); nbRegens[u] = (uint32_t)nbRegensMinus2 + 2; - ZL_RET_R_IF_GT( - corruption, + ZL_ERR_IF_GT( nbRegens[u], - ZL_runtimeNodeInputLimit(formatVersion)); + ZL_runtimeNodeInputLimit(formatVersion), + corruption); } else { nbRegens[u] = 1; } @@ -787,11 +859,14 @@ static ZL_Report decompress_regenStreamID_distances( ZL_RC* src, size_t nbStoredStreams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Note : distance can never be > (nbDistances + nbStreams) size_t const maxDistance = nbGenStreams + nbStoredStreams; int const nbBits = ZL_nextPow2(maxDistance); - ZL_TRY_LET_R( - r, checkedBitpackDecode32(distances, nbGenStreams, src, nbBits)); + ZL_TRY_LET( + size_t, + r, + checkedBitpackDecode32(distances, nbGenStreams, src, nbBits)); ZL_DLOG(BLOCK, "decompress_regenStreamID_distances : read %zu bytes, using %i bits per %zu entries", r, @@ -805,17 +880,18 @@ static ZL_Report decompress_regenStreamID_distances( static ZL_Report decompressStrSizes(size_t streamSizes[], size_t nbStreams, ZL_RC* src) { - ZL_RET_R_IF_LT( - corruption, + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_LT( ZL_RC_avail(src), nbStreams * 1, + corruption, "Stream sizes header smaller than minimum size"); for (unsigned u = 0; u < nbStreams; u++) { ZL_RESULT_OF(uint64_t) const res = ZL_RC_popVarint(src); - ZL_RET_R_IF_ERR(res); + ZL_ERR_IF_ERR(res); uint64_t const streamSize64 = ZL_RES_value(res); - ZL_RET_R_IF_GE( - corruption, streamSize64, UINT32_MAX, "Stream size too large"); + ZL_ERR_IF_GE( + streamSize64, UINT32_MAX, corruption, "Stream size too large"); streamSizes[u] = (size_t)streamSize64; ZL_DLOG(FRAME, "stream %u => %u bytes", u, streamSizes[u]); } @@ -847,13 +923,14 @@ static ZL_Report DFH_Workspace_init( unsigned nbTransforms, VECTOR(uint32_t) * scratch) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const allocationSize = DFH_scratchSize(nbTransforms); ZL_ASSERT_EQ(VECTOR_MAX_CAPACITY(*scratch), 0); VECTOR_INIT(*scratch, allocationSize); - ZL_RET_R_IF_NE( - allocation, + ZL_ERR_IF_NE( allocationSize, - VECTOR_RESIZE(*scratch, allocationSize)); + VECTOR_RESIZE(*scratch, allocationSize), + allocation); wksp->scratch0 = VECTOR_DATA(*scratch); wksp->scratch1 = @@ -876,8 +953,9 @@ static ZL_Report DFH_decodeFrameHeader_V3orMore( size_t srcSize, unsigned formatVersion) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(FRAME, "decodeFrameHeader (srcSize = %zu)", srcSize); - ZL_RET_R_IF_LT(srcSize_tooSmall, srcSize, FRAME_HEADER_SIZE_MIN); + ZL_ERR_IF_LT(srcSize, FRAME_HEADER_SIZE_MIN, srcSize_tooSmall); ZL_ASSERT_GE(formatVersion, 3); dfh->formatVersion = formatVersion; @@ -885,7 +963,7 @@ static ZL_Report DFH_decodeFrameHeader_V3orMore( if (dfh->frameinfo) ZL_FrameInfo_free(dfh->frameinfo); dfh->frameinfo = ZL_malloc(sizeof(*(dfh->frameinfo))); - ZL_RET_R_IF_NULL(allocation, dfh->frameinfo); + ZL_ERR_IF_NULL(dfh->frameinfo, allocation); return DFH_FrameInfo_decodeFrameHeader(dfh->frameinfo, src, srcSize); } @@ -897,8 +975,9 @@ static ZL_Report decodeChunkHeader_internal( const DFH_Interface* decoder, VECTOR(uint32_t) * scratch) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(FRAME, "decodeChunkHeader_internal (srcSize = %zu)", srcSize); - ZL_RET_R_IF_LT(srcSize_tooSmall, srcSize, CHUNK_HEADER_SIZE_MIN); + ZL_ERR_IF_LT(srcSize, CHUNK_HEADER_SIZE_MIN, srcSize_tooSmall); ZL_ASSERT_GE(decoder->formatVersion, 3); @@ -911,45 +990,44 @@ static ZL_Report decodeChunkHeader_internal( nbStoredStreams = ZL_RC_pop(&in); } else { ZL_RESULT_OF(uint64_t) res = ZL_RC_popVarint(&in); - ZL_RET_R_IF_ERR(res); + ZL_ERR_IF_ERR(res); nbDecoders = ZL_RES_value(res); if (decoder->formatVersion >= ZL_CHUNK_VERSION_MIN) { - ZL_RET_R_IF_EQ(corruption, nbDecoders, 0, "invalid field value"); + ZL_ERR_IF_EQ(nbDecoders, 0, corruption, "invalid field value"); nbDecoders--; } res = ZL_RC_popVarint(&in); - ZL_RET_R_IF_ERR(res); + ZL_ERR_IF_ERR(res); nbStoredStreams = ZL_RES_value(res); } ZL_DLOG(FRAME, "nbDecoders = %u | nbStoredStreams = %u", nbDecoders, nbStoredStreams); - ZL_RET_R_IF_GE( - temporaryLibraryLimitation, + ZL_ERR_IF_GE( nbDecoders, ZL_runtimeNodeLimit(decoder->formatVersion), - "OpenZL refuses to process graphs with this many nodes"); - ZL_RET_R_IF_GE( temporaryLibraryLimitation, + "OpenZL refuses to process graphs with this many nodes"); + ZL_ERR_IF_GE( nbStoredStreams, ZL_runtimeStreamLimit(decoder->formatVersion), + temporaryLibraryLimitation, "OpenZL refuses to process graphs with this many streams"); dfh->nbDTransforms = (size_t)nbDecoders; dfh->nbStoredStreams = (size_t)nbStoredStreams; - ZL_RET_R_IF_NE( - allocation, nbDecoders, VECTOR_RESIZE(dfh->nodes, nbDecoders)); - ZL_RET_R_IF_NE( - allocation, + ZL_ERR_IF_NE(nbDecoders, VECTOR_RESIZE(dfh->nodes, nbDecoders), allocation); + ZL_ERR_IF_NE( nbStoredStreams, - VECTOR_RESIZE(dfh->storedStreamSizes, nbStoredStreams)); + VECTOR_RESIZE(dfh->storedStreamSizes, nbStoredStreams), + allocation); DFH_Workspace wksp = { 0 }; - ZL_RET_R_IF_ERR(DFH_Workspace_init(&wksp, (unsigned)nbDecoders, scratch)); + ZL_ERR_IF_ERR(DFH_Workspace_init(&wksp, (unsigned)nbDecoders, scratch)); DFH_NodeInfo* const nodes = VECTOR_DATA(dfh->nodes); @@ -957,7 +1035,7 @@ static ZL_Report decodeChunkHeader_internal( // ZL_CHUNK_VERSION_MIN if (4 <= decoder->formatVersion && decoder->formatVersion < ZL_CHUNK_VERSION_MIN) { - ZL_RET_R_IF_LT(srcSize_tooSmall, ZL_RC_avail(&in), 1); + ZL_ERR_IF_LT(ZL_RC_avail(&in), 1, srcSize_tooSmall); uint8_t const flags = ZL_RC_pop(&in); dfh->frameinfo->properties.hasContentChecksum = ((flags & (1 << 0)) != 0); @@ -969,7 +1047,7 @@ static ZL_Report decodeChunkHeader_internal( // Collect list of decoders uint8_t* trt8 = wksp.scratch2; - ZL_RET_R_IF_ERR(decompressTrt(trt8, nbDecoders, &in)); + ZL_ERR_IF_ERR(decompressTrt(trt8, nbDecoders, &in)); for (unsigned u = 0; u < nbDecoders; u++) { TransformType_e const trt = trt8[u]; nodes[u].trpid.trt = trt; @@ -977,16 +1055,20 @@ static ZL_Report decodeChunkHeader_internal( } uint32_t* trIDs = wksp.scratch0; - ZL_RET_R_IF_ERR( - decompressTrID(trIDs, nbDecoders, &in, trt8, wksp.scratch1)); + ZL_ERR_IF_ERR(decompressTrID( + trIDs, + nbDecoders, + &in, + trt8, + wksp.scratch1, + decoder->formatVersion)); for (unsigned u = 0; u < nbDecoders; u++) { if (nodes[u].trpid.trt == trt_standard && trIDs[u] >= ZL_StandardTransformID_end) { - ZL_RET_R_ERR( - invalidTransform, - "Standard Codec ID %u too large, must be <= %u", - trIDs[u], - ZL_StandardTransformID_end); + ZL_ERR(invalidTransform, + "Standard Codec ID %u too large, must be <= %u", + trIDs[u], + ZL_StandardTransformID_end); } nodes[u].trpid.trid = trIDs[u]; } @@ -996,7 +1078,7 @@ static ZL_Report decodeChunkHeader_internal( { uint32_t* const trHeaderSizes = wksp.scratch0; size_t totalTHSize = 0; - ZL_RET_R_IF_ERR(decompressTrHSize(trHeaderSizes, nbDecoders, &in)); + ZL_ERR_IF_ERR(decompressTrHSize(trHeaderSizes, nbDecoders, &in)); for (unsigned u = 0; u < nbDecoders; u++) { nodes[u].trhSize = trHeaderSizes[u]; nodes[u].trhStart = totalTHSize; @@ -1008,7 +1090,7 @@ static ZL_Report decodeChunkHeader_internal( // Decode nbVOs per Transform if (decoder->formatVersion >= 8) { uint32_t* const nbVOs = wksp.scratch0; - ZL_RET_R_IF_ERR(decompressNbVOs(nbVOs, nbDecoders, &in)); + ZL_ERR_IF_ERR(decompressNbVOs(nbVOs, nbDecoders, &in)); for (unsigned u = 0; u < nbDecoders; u++) { nodes[u].nbVOs = nbVOs[u]; } @@ -1023,7 +1105,7 @@ static ZL_Report decodeChunkHeader_internal( size_t totalNbRegens = 0; if (decoder->formatVersion >= 16) { uint32_t* const nbRegens = wksp.scratch0; - ZL_RET_R_IF_ERR(decompressNbRegens( + ZL_ERR_IF_ERR(decompressNbRegens( nbRegens, nbDecoders, &in, decoder->formatVersion)); for (unsigned u = 0; u < nbDecoders; u++) { nodes[u].nbRegens = nbRegens[u]; @@ -1039,17 +1121,17 @@ static ZL_Report decodeChunkHeader_internal( // Decode regen stream id distance (1 per Transform) ZL_DLOG(SEQ, "totalNbRegens = %zu", totalNbRegens); - ZL_RET_R_IF_NE( - allocation, + ZL_ERR_IF_NE( totalNbRegens, - VECTOR_RESIZE(dfh->regenDistances, totalNbRegens)); + VECTOR_RESIZE(dfh->regenDistances, totalNbRegens), + allocation); dfh->nbRegens = totalNbRegens; /* warning: do NOT reallocate or update VECTOR distances after that point, * there are pointers referencing its content */ /* Note: this array should rather be hosted within a session-level arena */ { uint32_t* const distances = VECTOR_DATA(dfh->regenDistances); - ZL_RET_R_IF_ERR(decompress_regenStreamID_distances( + ZL_ERR_IF_ERR(decompress_regenStreamID_distances( distances, totalNbRegens, &in, nbStoredStreams)); for (unsigned t = 0, d = 0; t < nbDecoders; t++) { nodes[t].regenDistances = distances + d; @@ -1070,7 +1152,7 @@ static ZL_Report decodeChunkHeader_internal( ZL_ASSERT_LE( nbStoredStreams, ZL_runtimeStreamLimit(decoder->formatVersion)); - ZL_RET_R_IF_ERR(decompressStrSizes( + ZL_ERR_IF_ERR(decompressStrSizes( VECTOR_DATA(dfh->storedStreamSizes), nbStoredStreams, &in)); ZL_DLOG(SEQ, @@ -1104,17 +1186,18 @@ static ZL_Report getDecompressedSizeV3orMore( const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DLOG(FRAME, "getDecompressedSizeV3orMore (from srcSize=%zu)", srcSize); size_t const hSize = (size_t)4 + (decoder->formatVersion > 13) + (decoder->formatVersion >= ZL_CHUNK_VERSION_MIN); - ZL_RET_R_IF_LT(srcSize_tooSmall, srcSize, hSize + 4); + ZL_ERR_IF_LT(srcSize, hSize + 4, srcSize_tooSmall); if (decoder->formatVersion > 14) { uint8_t token1 = ((const uint8_t*)src) [4 + (decoder->formatVersion >= ZL_CHUNK_VERSION_MIN)]; - ZL_RET_R_IF_GE( - invalidRequest_singleOutputFrameOnly, + ZL_ERR_IF_GE( token1, 64, + invalidRequest_singleOutputFrameOnly, "getDecompressedSize is only meaningful for single-output frames"); } if (decoder->formatVersion < ZL_CHUNK_VERSION_MIN) { @@ -1129,17 +1212,17 @@ static ZL_Report getDecompressedSizeV3orMore( ZL_ASSERT_LE(hSize, srcSize); const uint8_t* ptr = (const uint8_t*)src + hSize; const uint8_t* end = (const uint8_t*)src + srcSize; - ZL_TRY_SET_T(uint64_t, oSize, ZL_varintDecode(&ptr, end)); - ZL_RET_R_IF_EQ( - temporaryLibraryLimitation, + ZL_TRY_SET(uint64_t, oSize, ZL_varintDecode(&ptr, end)); + ZL_ERR_IF_EQ( oSize, 0, + temporaryLibraryLimitation, "size must be registered in the frame header"); // 0 means "unknown" ZL_DLOG(BLOCK, "1 stream, of decompressed size %llu bytes", oSize - 1); - ZL_RET_R_IF_GE( - GENERIC, + ZL_ERR_IF_GE( oSize, (uint64_t)SIZE_MAX, + GENERIC, "large size (%llu): unsupported on current system"); return ZL_returnValue((size_t)oSize - 1); } @@ -1148,20 +1231,18 @@ static ZL_Report getDecompressedSizeV3orMore( // I see it used in one assert() so far, // though it requires duplicating the frame scanning logic here // so it's easy to get the duplicated part wrong. -static ZL_Report getCompressedSizeV3orMore( +static ZL_Report getCompressedSizeV3orMore_inner( const DFH_Interface* decoder, const void* src, - size_t srcSize) + size_t srcSize, + DFH_Struct* dfh) { - ZL_DLOG(SEQ, "getCompressedSizeV3orMore (srcSize=%zu)", srcSize); - DFH_Struct dfh; - DFH_init(&dfh); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_Report fhSize = decoder->decodeFrameHeader( - &dfh, src, srcSize, decoder->formatVersion); + dfh, src, srcSize, decoder->formatVersion); size_t frameSize = 0; if (ZL_isError(fhSize)) { - DFH_destroy(&dfh); - ZL_RET_R(fhSize); + return fhSize; } frameSize += ZL_RES_value(fhSize); // Add header size. @@ -1169,44 +1250,59 @@ static ZL_Report getCompressedSizeV3orMore( int oneMoreBlock = 1; while (oneMoreBlock) { - if (dfh.formatVersion >= ZL_CHUNK_VERSION_MIN) { - ZL_RET_R_IF_GE( - srcSize_tooSmall, + if (dfh->formatVersion >= ZL_CHUNK_VERSION_MIN) { + ZL_ERR_IF_GE( frameSize, - srcSize); // need at least one byte + srcSize, + srcSize_tooSmall); // need at least one byte if (((const char*)src)[frameSize] == 0) { // frame footer frameSize++; break; } } - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, chhSize, decoder->decodeChunkHeader( decoder, - &dfh, + dfh, (const char*)src + frameSize, srcSize - frameSize)); frameSize += chhSize; - frameSize += dfh.totalTHSize; + frameSize += dfh->totalTHSize; - for (uint32_t streamNb = 0; streamNb < dfh.nbStoredStreams; + for (uint32_t streamNb = 0; streamNb < dfh->nbStoredStreams; streamNb++) { - frameSize += VECTOR_AT(dfh.storedStreamSizes, streamNb); + frameSize += VECTOR_AT(dfh->storedStreamSizes, streamNb); } - frameSize += dfh.frameinfo->properties.hasContentChecksum ? 4 : 0; - frameSize += dfh.frameinfo->properties.hasCompressedChecksum ? 4 : 0; + frameSize += dfh->frameinfo->properties.hasContentChecksum ? 4 : 0; + frameSize += dfh->frameinfo->properties.hasCompressedChecksum ? 4 : 0; - if (dfh.formatVersion < ZL_CHUNK_VERSION_MIN) + if (dfh->formatVersion < ZL_CHUNK_VERSION_MIN) break; // single block for v20- } + ZL_ERR_IF_GT(frameSize, srcSize, srcSize_tooSmall); - DFH_destroy(&dfh); return ZL_returnValue(frameSize); } +static ZL_Report getCompressedSizeV3orMore( + const DFH_Interface* decoder, + const void* src, + size_t srcSize) +{ + ZL_DLOG(SEQ, "getCompressedSizeV3orMore (srcSize=%zu)", srcSize); + DFH_Struct dfh; + DFH_init(&dfh); + ZL_Report report = + getCompressedSizeV3orMore_inner(decoder, src, srcSize, &dfh); + DFH_destroy(&dfh); + return report; +} + static ZL_Report getHeaderSizeV3orV4( DFH_Interface const* decoder, const void* src, @@ -1244,7 +1340,9 @@ DFH_Interface DFH_getFrameHeaderDecoder(uint32_t formatVersion) ZL_Report DFH_decodeFrameHeader(DFH_Struct* dfh, const void* src, size_t srcSize) { - ZL_TRY_LET_R(formatVersion, ZL_getFormatVersionFromFrame(src, srcSize)); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_TRY_LET( + size_t, formatVersion, ZL_getFormatVersionFromFrame(src, srcSize)); DFH_Interface const decoder = DFH_getFrameHeaderDecoder((uint32_t)formatVersion); return decoder.decodeFrameHeader(dfh, src, srcSize, decoder.formatVersion); diff --git a/src/openzl/decompress/decode_frameheader.h b/src/openzl/decompress/decode_frameheader.h index f6d2c1abf..9ab691768 100644 --- a/src/openzl/decompress/decode_frameheader.h +++ b/src/openzl/decompress/decode_frameheader.h @@ -18,16 +18,33 @@ ZL_BEGIN_C_DECLS // ZL_Report ZL_getHeaderSize(const void* src, size_t srcSize) /* Non-public symbols exposed by this unit */ +typedef struct ZL_DecoderFusionDesc_s ZL_DecoderFusionDesc; typedef struct { PublicTransformInfo trpid; - size_t trhStart; // Start position of this transform header - size_t trhSize; // Size of this transform header - size_t nbVOs; // Nb of VOs (effectively variable nb of inputs) to be - // ingested by this transform - size_t nbRegens; // Nb of streams regenerated by this transform + size_t trhStart; // Start position of this transform header + size_t trhSize; // Size of this transform header + uint32_t nbVOs; // Nb of VOs (effectively variable nb of inputs) to be + // ingested by this transform + uint32_t nbRegens; // Nb of streams regenerated by this transform const uint32_t* regenDistances; // distance indicators to position the // streams regenerated by this transform + /** + * The base stream index for the input streams for this node. + * @note Input streams are listed in reverse order! + * @note Set by the dctx after decoding the frame header. + */ + uint32_t inputStreamBaseIdx; + /** + * The number of input streams for this node. + * @note Set by the dctx after decoding the frame header. + */ + uint32_t numInputStreams; + /** + * If this node is fused, a pointer to the fusion descriptor. + * @note Set by the dctx after decoding the frame header. + */ + const ZL_DecoderFusionDesc* fusion; } DFH_NodeInfo; DECLARE_VECTOR_TYPE(DFH_NodeInfo) diff --git a/src/openzl/decompress/decoder_fusion.c b/src/openzl/decompress/decoder_fusion.c new file mode 100644 index 000000000..504a12032 --- /dev/null +++ b/src/openzl/decompress/decoder_fusion.c @@ -0,0 +1,416 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/decompress/decoder_fusion.h" +#include "openzl/codecs/decoder_registry.h" +#include "openzl/common/limits.h" +#include "openzl/common/set.h" +#include "openzl/decompress/dctx2.h" +#include "openzl/zl_input.h" +#include "openzl/zl_output.h" + +ZL_DECLARE_SET_TYPE(ZL_RegenSet, ZL_IDType); + +static ZL_Report ZL_DecoderFusionDesc_validateImpl( + const ZL_DecoderFusionDesc* fusion, + ZL_RegenSet* regenSet) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZL_ERR_IF_EQ(fusion->pattern.numChildren, 0, logicError); + + const ZL_IDType parentCodec = fusion->pattern.parentCodec; + + for (size_t childIdx = 0; childIdx < fusion->pattern.numChildren; + ++childIdx) { + const ZL_DecoderFusionChild child = fusion->pattern.children[childIdx]; + + ZL_ERR_IF_EQ( + child.codec, + parentCodec, + temporaryLibraryLimitation, + "We use CodecID == fusion->pattern.codecID to determine if " + "it is the parent node during execution. This can be " + "changed."); + ZL_ERR_IF_EQ(child.numRegens, 0, logicError); + for (size_t regen = 0; regen < child.numRegens; ++regen) { + const ZL_RegenSet_Insert insert = + ZL_RegenSet_insertVal(regenSet, child.parentIndices[regen]); + ZL_ERR_IF(insert.badAlloc, allocation); + ZL_ERR_IF( + !insert.inserted, + logicError, + "Fusion has duplicate parent indices"); + } + } + + return ZL_returnSuccess(); +} + +static ZL_Report ZL_DecoderFusionDesc_validate( + const ZL_DecoderFusionDesc* fusion) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_RegenSet regenSet = ZL_RegenSet_create( + (uint32_t)ZL_transformOutStreamsLimit(ZL_MAX_FORMAT_VERSION)); + const ZL_Report result = + ZL_DecoderFusionDesc_validateImpl(fusion, ®enSet); + ZL_RegenSet_destroy(®enSet); + ZL_ERR_IF_ERR(result); + + return ZL_returnSuccess(); +} + +static ZL_Report ZL_DecoderFusionState_buildMap(ZL_DecoderFusionState* state) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZL_DecoderFusionMap_clear(&state->codecFusionMap); + ZL_DecoderFusionMap_reserve( + &state->codecFusionMap, (uint32_t)state->numCodecFusions, false); + + ZL_IDType begin = 0; + for (size_t i = 0; i < state->numCodecFusions; ++i) { + ZL_ASSERT_SUCCESS( + ZL_DecoderFusionDesc_validate(&state->codecFusions[i]), + "Must already be validated"); + if (i == 0) { + continue; + } + + ZL_ASSERT_LT(begin, i); + const ZL_IDType prevCodec = + state->codecFusions[i - 1].pattern.parentCodec; + const ZL_IDType currCodec = state->codecFusions[i].pattern.parentCodec; + ZL_ERR_IF_GT( + prevCodec, + currCodec, + logicError, + "Fusions must be sorted by parent codec."); + if (prevCodec != currCodec) { + const ZL_DecoderFusionMap_Entry entry = { + prevCodec, + { begin, (ZL_IDType)i - begin }, + }; + const ZL_DecoderFusionMap_Insert insert = + ZL_DecoderFusionMap_insertVal( + &state->codecFusionMap, entry); + ZL_ERR_IF(insert.badAlloc, allocation); + ZL_ASSERT(insert.inserted); + begin = (ZL_IDType)i; + } + } + + if (begin != state->numCodecFusions) { + const ZL_DecoderFusionMap_Entry entry = { + state->codecFusions[state->numCodecFusions - 1].pattern.parentCodec, + { begin, (ZL_IDType)state->numCodecFusions - begin }, + }; + const ZL_DecoderFusionMap_Insert insert = + ZL_DecoderFusionMap_insertVal(&state->codecFusionMap, entry); + ZL_ERR_IF(insert.badAlloc, allocation); + ZL_ASSERT(insert.inserted); + } + + return ZL_returnSuccess(); +} + +ZL_Report ZL_DecoderFusionState_init(ZL_DecoderFusionState* state) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + memset(state, 0, sizeof(*state)); + + state->arena = ALLOC_HeapArena_create(); + ZL_ERR_IF_NULL(state->arena, allocation); + + state->codecFusionMap = ZL_DecoderFusionMap_createInArena( + state->arena, ZL_CUSTOM_TRANSFORM_LIMIT); + state->codecFusions = ZL_DecoderFusion_array; + state->numCodecFusions = ZL_DecoderFusionID_end; + + return ZL_DecoderFusionState_buildMap(state); +} + +void ZL_DecoderFusionState_destroy(ZL_DecoderFusionState* state) +{ + if (state->arena) { + ALLOC_Arena_freeArena(state->arena); + } +} + +void ZL_DecoderFusionState_clearFusions(ZL_DecoderFusionState* state) +{ + ZL_DecoderFusionMap_clear(&state->codecFusionMap); + state->codecFusions = NULL; + state->numCodecFusions = 0; + ALLOC_Arena_free(state->arena, state->codecFusionStorage); + state->codecFusionStorage = NULL; +} + +ZL_Report ZL_DecoderFusionState_registerFusion( + ZL_DecoderFusionState* state, + const ZL_DecoderFusionDesc* fusion) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZL_ERR_IF_ERR(ZL_DecoderFusionDesc_validate(fusion)); + + const bool firstDynamicAlloc = + state->codecFusionStorage == NULL && state->numCodecFusions > 0; + ZL_DecoderFusionDesc* codecFusions = ALLOC_Arena_realloc( + state->arena, + state->codecFusionStorage, + (state->numCodecFusions + 1) * sizeof(*state->codecFusionStorage)); + ZL_ERR_IF_NULL(codecFusions, allocation); + state->codecFusionStorage = codecFusions; + if (firstDynamicAlloc) { + memcpy(codecFusions, + state->codecFusions, + state->numCodecFusions * sizeof(*codecFusions)); + } + + ZL_DecoderFusionDesc xferedFusion = *fusion; + + ALLOC_ARENA_MALLOC_CHECKED( + ZL_DecoderFusionChild, + xferedChildren, + fusion->pattern.numChildren, + state->arena); + xferedFusion.pattern.children = xferedChildren; + for (size_t c = 0; c < fusion->pattern.numChildren; ++c) { + xferedChildren[c] = fusion->pattern.children[c]; + ALLOC_ARENA_MALLOC_CHECKED( + uint32_t, + xferedParentIndices, + xferedChildren[c].numRegens, + state->arena); + ZL_ASSERT_GT(xferedChildren[c].numRegens, 0); + memcpy(xferedParentIndices, + xferedChildren[c].parentIndices, + xferedChildren[c].numRegens * sizeof(*xferedParentIndices)); + xferedChildren[c].parentIndices = xferedParentIndices; + } + + // Insert to the end of the range for codecID + const ZL_IDType codecID = fusion->pattern.parentCodec; + size_t idx = state->numCodecFusions; + while (idx > 0 && codecID < codecFusions[idx - 1].pattern.parentCodec) { + codecFusions[idx] = codecFusions[idx - 1]; + --idx; + } + codecFusions[idx] = xferedFusion; + + state->codecFusions = codecFusions; + ++state->numCodecFusions; + + // Rebuild the map + return ZL_DecoderFusionState_buildMap(state); +} + +void* ZL_DecoderFusion_getScratchSpace(ZL_DecoderFusion* state, size_t size) +{ + return ALLOC_Arena_malloc(state->workspaceArena, size); +} + +ZL_Output* ZL_DecoderFusion_createTypedStream( + ZL_DecoderFusion* state, + int index, + size_t eltsCapacity, + size_t eltWidth) +{ + size_t dstCapacity; + if (ZL_overflowMulST(eltsCapacity, eltWidth, &dstCapacity)) { + return NULL; + } + if (eltWidth == 0) { + return NULL; + } + if (index < 0 || index >= (int)state->numRegenStreams) { + return NULL; + } + const DTransform* parentCodec = state->codecs[state->numCodecs - 1]; + return ZL_codemodDataAsOutput(DCTX_newStream( + state->dctx, + state->regenStreamIDs[index], + DT_getRegenType(parentCodec, index), + eltWidth, + eltsCapacity)); +} + +ZL_Output* ZL_DecoderFusion_createStringStream( + ZL_DecoderFusion* state, + int index, + size_t nbStringsMax, + size_t sumStringLensMax) +{ + ZL_Output* const stringS = ZL_DecoderFusion_createTypedStream( + state, index, sumStringLensMax, 1); + if (stringS == NULL) { + return NULL; + } + if (ZL_Output_type(stringS) != ZL_Type_string) { + return NULL; + } + uint32_t* const strLens = + ZL_Output_reserveStringLens(stringS, nbStringsMax); + if (strLens == NULL) { + return NULL; + } + return stringS; +} + +ZL_RESULT_OF(ZL_RBuffer) +ZL_DecoderFusion_getCodecHeader(const ZL_DecoderFusion* state, size_t idx) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_RBuffer, state->dctx); + ZL_ERR_IF_GE(idx, state->numCodecs, logicError); + return ZL_WRAP_VALUE(state->codecHeaders[idx]); +} + +ZL_RESULT_OF(ZL_CodecInputs) +ZL_DecoderFusion_getCodecInputs(const ZL_DecoderFusion* state, size_t idx) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_CodecInputs, state->dctx); + ZL_ERR_IF_GE(idx, state->numCodecs, logicError); + + const DFH_NodeInfo* nodeInfo = state->nodeInfos[idx]; + const size_t total = nodeInfo->numInputStreams; + const size_t nbSOs = total - nodeInfo->nbVOs; + ZL_ASSERT_LE(nbSOs, total); + + const ZL_Input* const* inputs = + ZL_codemodDatasAsInputs(state->codecInputs[idx]); + + ZL_CodecInputs result = { + .singleton = { .inputs = inputs, .numInputs = nbSOs }, + .variable = { .inputs = inputs + nbSOs, .numInputs = total - nbSOs }, + }; + return ZL_WRAP_VALUE(result); +} + +ZL_RESULT_OF(ZL_InputArray) +ZL_DecoderFusion_runCodec(ZL_DecoderFusion* state, size_t idx) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_InputArray, state->dctx); + ZL_ERR_IF_GE(idx, state->numCodecs, logicError); + const DFH_NodeInfo* nodeInfo = state->nodeInfos[idx]; + ZL_ERR_IF_ERR(DCTX_runDecoder( + state->dctx, nodeInfo, /* withinFusedDecoder */ true)); + + const ZL_IDType inputEndIdx = + nodeInfo->inputStreamBaseIdx + nodeInfo->numInputStreams; + // Collect outputs + ALLOC_ARENA_MALLOC_CHECKED( + const ZL_Input*, + outputs, + nodeInfo->nbRegens, + state->workspaceArena); + for (size_t n = 0; n < nodeInfo->nbRegens; n++) { + const ZL_IDType regenIdx = inputEndIdx + nodeInfo->regenDistances[n]; + const ZL_Data* data = ZL_DCtx_getConstStream(state->dctx, regenIdx); + outputs[n] = ZL_codemodDataAsInput(data); + } + + ZL_InputArray result = { + .inputs = outputs, + .numInputs = nodeInfo->nbRegens, + }; + return ZL_WRAP_VALUE(result); +} + +bool ZL_DecoderFusionDesc_fuseIfMatches( + const ZL_DecoderFusionDesc* fusion, + DFH_NodeInfo* nodeInfo, + const ZL_DCtx_DataInfo* dataInfo, + size_t parentNodeIndex) +{ + DFH_NodeInfo* const parentNodeInfo = &nodeInfo[parentNodeIndex]; + ZL_ASSERT_NULL(parentNodeInfo->fusion); + + if (parentNodeInfo->trpid.trt != trt_standard + || parentNodeInfo->trpid.trid != fusion->pattern.parentCodec) { + return false; // Parent codec ID doesn't match + } + + const size_t parentDataInfoBegin = parentNodeInfo->inputStreamBaseIdx; + const size_t parentNumIns = parentNodeInfo->numInputStreams; + + for (size_t childIdx = 0; childIdx < fusion->pattern.numChildren; + ++childIdx) { + ZL_DecoderFusionChild child = fusion->pattern.children[childIdx]; + + if (child.parentIndices[0] >= parentNumIns) { + return false; // Parent does not have enough inputs + } + + const ZL_IDType childNodeIdx = ZL_DecoderFusionDesc_getProducerNodeIdx( + fusion, childIdx, parentNodeInfo, dataInfo); + if (childNodeIdx == ZL_PRODUCER_STORE) { + return false; // Parent input is stored in frame + } + const DFH_NodeInfo* childNodeInfo = &nodeInfo[childNodeIdx]; + + if (childNodeInfo->trpid.trt != trt_standard + || childNodeInfo->trpid.trid != child.codec) { + return false; // Child codec ID doesn't match + } + + if (childNodeInfo->fusion != NULL) { + // This codec is already involved in another fusion. + return false; + } + + if (childNodeInfo->nbRegens != child.numRegens) { + return false; // Child produces wrong number of outputs + } + + const size_t childInputEndIdx = childNodeInfo->inputStreamBaseIdx + + childNodeInfo->numInputStreams; + // Validate the all other regenerated streams map to the correct parent + // input. + // NOTE: We can start at index 1 because getProducerNodeIdx() uses index + // 0 to find the child node, so we know the mapping is correct. + for (size_t regenIdx = 1; regenIdx < child.numRegens; ++regenIdx) { + if (child.parentIndices[regenIdx] >= parentNumIns) { + return false; // Parent does not have enough inputs + } + // NOTE: Inputs are stored in reverse order + const size_t parentStreamID = parentDataInfoBegin + parentNumIns - 1 + - child.parentIndices[regenIdx]; + if (childInputEndIdx + childNodeInfo->regenDistances[regenIdx] + != parentStreamID) { + // Child's `regenIdx`th output is not mapped to + // `parentIndices[regenIdx]`. + return false; + } + } + } + + parentNodeInfo->fusion = fusion; + for (size_t childIdx = 0; childIdx < fusion->pattern.numChildren; + ++childIdx) { + const ZL_IDType childNodeIdx = ZL_DecoderFusionDesc_getProducerNodeIdx( + fusion, childIdx, parentNodeInfo, dataInfo); + ZL_ASSERT_NE(childNodeIdx, ZL_PRODUCER_STORE); + nodeInfo[childNodeIdx].fusion = fusion; + } + + return true; +} + +ZL_IDType ZL_DecoderFusionDesc_getProducerNodeIdx( + const ZL_DecoderFusionDesc* fusion, + size_t childIdx, + const DFH_NodeInfo* parentNodeInfo, + const ZL_DCtx_DataInfo* dataInfo) +{ + ZL_DecoderFusionChild child = fusion->pattern.children[childIdx]; + ZL_ASSERT_NE(child.numRegens, 0); + const size_t parentInIdx = child.parentIndices[0]; + // NOTE: Inputs are stored in reverse order + const size_t parentDataInfoIdx = parentNodeInfo->inputStreamBaseIdx + + parentNodeInfo->numInputStreams - 1 - parentInIdx; + const ZL_DCtx_DataInfo* regenInfo = &dataInfo[parentDataInfoIdx]; + ZL_ASSERT_NULL(regenInfo->appendOpt); + + return regenInfo->producerNodeIdx; +} diff --git a/src/openzl/decompress/decoder_fusion.h b/src/openzl/decompress/decoder_fusion.h new file mode 100644 index 000000000..ae66bfc75 --- /dev/null +++ b/src/openzl/decompress/decoder_fusion.h @@ -0,0 +1,277 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_DECOMPRESS_DECODER_FUSION_H +#define OPENZL_DECOMPRESS_DECODER_FUSION_H + +#include + +#include "openzl/common/allocation.h" +#include "openzl/common/buffer_internal.h" +#include "openzl/common/map.h" +#include "openzl/decompress/dctx2.h" +#include "openzl/decompress/decode_frameheader.h" +#include "openzl/decompress/dtransforms.h" +#include "openzl/zl_errors.h" +#include "openzl/zl_opaque_types.h" + +typedef struct { + /** + * Codec ID of the child. This codec feeds its regenerated streams into the + * parent. + */ + ZL_IDType codec; + /// Number of streams regenerated by the child codec. + uint32_t numRegens; + /// The parent index that each regenerated stream maps to. + const uint32_t* parentIndices; +} ZL_DecoderFusionChild; + +/** + * This struct describes the codecs that participate in a fused decoder. + * + * The @p parentCodec is the final codec in the graph. Currently only a single + * parent codec is supported. + * + * The @p children are the child codecs that feed ALL of their regenerated + * streams into the parent codec. Each child codec can regenerate one or more + * streams. Not all of the parent's inputs need to be regenerated by the + * @p children. + * + * This means that the pattern can only fuse a single layer of child codecs + * who feed all their regenerated streams into a single parent. + * + * @note This pattern matching scheme can be changed as need when the need + * arises to fuse more complicated codec combinations. Fusion is a private API, + * so we can change all callers in a refactor. + */ +typedef struct { + /// Codec ID of the parent codec. + ZL_IDType parentCodec; + /// Number of fused child codecs. + uint32_t numChildren; + /// The fused child codecs. + const ZL_DecoderFusionChild* children; +} ZL_DecoderFusionPattern; + +/** + * State passed to a fused decoder function. + * Contains the decompression context and all codec information needed + * to execute the fused decoder graph. + * + * Arrays indexed by codec use the convention that indices [0, numCodecs-2] + * correspond to pattern.children[0..numChildren-1] (the child codecs), and + * index [numCodecs-1] is the parent codec (pattern.parentCodec). + */ +typedef struct ZL_DecoderFusion_s { + /// The decompression context. + ZL_DCtx* dctx; + /// Arena for temporary allocations during fused decoding. + Arena* workspaceArena; + /// Frame header node info for each codec in the fusion. + const DFH_NodeInfo* const* nodeInfos; + /// The decoder transform for each codec in the fusion. + const DTransform* const* codecs; + /// The private codec header for each codec in the fusion. + const ZL_RBuffer* codecHeaders; + /// The input streams for each codec in the fusion. + const ZL_Data*** codecInputs; + /// The number of codecs in the fusion (children + parent). + size_t numCodecs; + /// The stream IDs for the parent codec's regenerated streams. + const ZL_IDType* regenStreamIDs; + /// The number of regenerated streams for the parent codec. + size_t numRegenStreams; +} ZL_DecoderFusion; + +/// Allocate scratch space from the fusion's workspace arena. +/// @return Pointer to the allocated memory, or NULL on allocation failure. +void* ZL_DecoderFusion_getScratchSpace(ZL_DecoderFusion* state, size_t size); + +/** + * Create a typed output stream for the parent codec's regenerated stream at + * @p index. + * @return The output stream, or NULL on failure. + */ +ZL_Output* ZL_DecoderFusion_createTypedStream( + ZL_DecoderFusion* state, + int index, + size_t eltsCapacity, + size_t eltWidth); + +/** + * Create a string output stream for the parent codec's regenerated stream at + * @p index. + * @return The output stream, or NULL on failure. + */ +ZL_Output* ZL_DecoderFusion_createStringStream( + ZL_DecoderFusion* state, + int index, + size_t nbStringsMax, + size_t sumStringLensMax); + +/** + * Get the private codec header for the codec at @p idx in the fusion. + * @p idx in [0, numCodecs-2] corresponds to pattern.children[idx], and + * @p idx == numCodecs-1 is the parent codec (pattern.parentCodec). + */ +ZL_RESULT_OF(ZL_RBuffer) +ZL_DecoderFusion_getCodecHeader(const ZL_DecoderFusion* state, size_t idx); + +/// A read-only array of input streams. +typedef struct { + const ZL_Input* const* inputs; + size_t numInputs; +} ZL_InputArray; + +ZL_RESULT_DECLARE_TYPE(ZL_InputArray); + +/// The input streams for a codec, split into singleton and variable inputs. +typedef struct { + /// The singleton (fixed) input streams. + ZL_InputArray singleton; + /// The variable input streams. + ZL_InputArray variable; +} ZL_CodecInputs; + +ZL_RESULT_DECLARE_TYPE(ZL_CodecInputs); + +/** + * Get the input streams for the codec at @p idx in the fusion. + * @p idx in [0, numCodecs-2] corresponds to pattern.children[idx], and + * @p idx == numCodecs-1 is the parent codec (pattern.parentCodec). + * @note Inputs will be NULL after ZL_DecoderFusion_runCodec() is called for + * this codec, because the decoder frees its input streams. + * @note When called on the parent codec, inputs produced by fused codecs will + * be NULL. + */ +ZL_RESULT_OF(ZL_CodecInputs) +ZL_DecoderFusion_getCodecInputs(const ZL_DecoderFusion* state, size_t idx); + +/** + * Run the default (non-fused) decoder for the codec at @p idx in the fusion, + * and return its regenerated output streams. + * @p idx in [0, numCodecs-2] corresponds to pattern.children[idx], and + * @p idx == numCodecs-1 is the parent codec (pattern.parentCodec). + */ +ZL_RESULT_OF(ZL_InputArray) +ZL_DecoderFusion_runCodec(ZL_DecoderFusion* state, size_t idx); + +/// The fused decoder function. Called instead of running each codec +/// individually when the fusion pattern matches. +typedef ZL_Report (*ZL_DecoderFusionFn)(ZL_DecoderFusion* fusion); + +/// Describes a decoder fusion: a pattern to match and a function to execute. +typedef struct ZL_DecoderFusionDesc_s { + /// The codec graph pattern that this fusion matches. + ZL_DecoderFusionPattern pattern; + /// The fused decoder function to call when the pattern matches. + ZL_DecoderFusionFn fusionFn; +} ZL_DecoderFusionDesc; + +/// A contiguous range of indices [begin, begin + size). +typedef struct { + uint32_t begin; + uint32_t size; +} ZL_IndexRange; + +ZL_DECLARE_MAP_TYPE(ZL_DecoderFusionMap, ZL_IDType, ZL_IndexRange); + +/// Manages the set of registered decoder fusions and provides lookup by +/// parent codec ID. +typedef struct { + /// Arena for all dynamic allocations owned by this state. + Arena* arena; + /// Map from parent codec ID to the range of fusions in @p codecFusions. + ZL_DecoderFusionMap codecFusionMap; + /// Sorted array of all registered fusions, ordered by parent codec ID. + const ZL_DecoderFusionDesc* codecFusions; + /// Number of registered fusions. + size_t numCodecFusions; + /// Owned storage for dynamically registered fusions (NULL if only + /// using the static ZL_DecoderFusion_array). + ZL_DecoderFusionDesc* codecFusionStorage; +} ZL_DecoderFusionState; + +/// Initialize the fusion state with the built-in fusions from the registry. +ZL_Report ZL_DecoderFusionState_init(ZL_DecoderFusionState* state); + +/// Remove all registered fusions from the state, including built-in fusions +/// from the registry. +void ZL_DecoderFusionState_clearFusions(ZL_DecoderFusionState* state); + +/// Register a new decoder fusion. The fusion descriptor and its children are +/// deep-copied into the state's arena. +ZL_Report ZL_DecoderFusionState_registerFusion( + ZL_DecoderFusionState* state, + const ZL_DecoderFusionDesc* fusion); + +/// Destroy the fusion state and free all associated memory. +void ZL_DecoderFusionState_destroy(ZL_DecoderFusionState* state); + +/** + * Check if @p fusion matches the codec graph rooted at @p parentNodeIndex. + * If it matches, mark the parent and all matching child nodes as fused. + * @return true if the fusion was applied, false otherwise. + */ +bool ZL_DecoderFusionDesc_fuseIfMatches( + const ZL_DecoderFusionDesc* fusion, + DFH_NodeInfo* nodeInfo, + const ZL_DCtx_DataInfo* dataInfo, + size_t parentNodeIndex); + +/** + * Try to fuse the codec graph rooted at @p parentNodeIndex by checking all + * registered fusions for that codec ID. + * @return true if a fusion was applied, false otherwise. + */ +static inline bool ZL_DecoderFusionState_maybeFuse( + const ZL_DecoderFusionState* state, + DFH_NodeInfo* nodeInfo, + const ZL_DCtx_DataInfo* dataInfo, + size_t parentNodeIndex) +{ + PublicTransformInfo codecInfo = nodeInfo[parentNodeIndex].trpid; + if (codecInfo.trt != trt_standard) { + return false; + } + const ZL_DecoderFusionMap_Entry* entry = + ZL_DecoderFusionMap_findVal(&state->codecFusionMap, codecInfo.trid); + if (entry == NULL) { + return false; + } + + for (size_t i = 0; i < entry->val.size; ++i) { + if (ZL_DecoderFusionDesc_fuseIfMatches( + &state->codecFusions[entry->val.begin + i], + nodeInfo, + dataInfo, + parentNodeIndex)) { + return true; + } + } + + return false; +} + +/// Check if @p nodeInfo is the parent node of @p fusion. +static inline bool ZL_DecoderFusionDesc_isParent( + const ZL_DecoderFusionDesc* fusion, + const DFH_NodeInfo* nodeInfo) +{ + ZL_ASSERT(!fusion || nodeInfo->trpid.trt == trt_standard); + return fusion && nodeInfo->trpid.trid == fusion->pattern.parentCodec; +} + +/** + * Get the node index of the codec that produces the first regenerated stream + * for child @p childIdx in the fusion. + * @return The producer node index, or ZL_PRODUCER_STORE if the stream is + * stored in the frame. + */ +ZL_IDType ZL_DecoderFusionDesc_getProducerNodeIdx( + const ZL_DecoderFusionDesc* fusion, + size_t childIdx, + const DFH_NodeInfo* parentNodeInfo, + const ZL_DCtx_DataInfo* dataInfo); + +#endif diff --git a/src/openzl/decompress/decompress2.c b/src/openzl/decompress/decompress2.c index 3acbf30c7..e95ff97ae 100644 --- a/src/openzl/decompress/decompress2.c +++ b/src/openzl/decompress/decompress2.c @@ -10,13 +10,13 @@ #include "openzl/common/limits.h" #include "openzl/common/logging.h" #include "openzl/common/operation_context.h" -#include "openzl/common/scope_context.h" #include "openzl/common/stream.h" // ZL_Data #include "openzl/common/vector.h" #include "openzl/common/wire_format.h" // TransformType_e #include "openzl/decompress/dctx2.h" // DCTX_* declarations #include "openzl/decompress/decode_frameheader.h" // DFH_* -#include "openzl/decompress/dictx.h" // struct ZL_Decoder_s +#include "openzl/decompress/decoder_fusion.h" +#include "openzl/decompress/dictx.h" // struct ZL_Decoder_s #include "openzl/decompress/dtransforms.h" // DTransforms_manager, TransformID #include "openzl/decompress/gdparams.h" #include "openzl/shared/mem.h" // ZL_readLE32, etc. @@ -44,10 +44,10 @@ * - The decoder produces the decoded stream by concatenating all the encoded * streams. */ -typedef struct { +typedef struct ZL_AppendToOutputOptimization_s { /// Pointer to the inputs array /// @note Inputs are listed in reverse order! - struct ZL_DataInfo* inputInfos; + struct ZL_DCtx_DataInfo* inputInfos; /// Index of the next input to append to the head of the output. /// Starts at 0. size_t headInputIdx; @@ -57,33 +57,33 @@ typedef struct { size_t nbInputs; ///< Number of input streams /// Pointer to the output - struct ZL_DataInfo* outputInfo; + struct ZL_DCtx_DataInfo* outputInfo; /// Head inputs get appended to this pointer uint8_t* outputHeadPtr; /// Tail inputs get prepended to this pointer uint8_t* outputTailPtr; } ZL_AppendToOutputOptimization; -typedef struct ZL_DataInfo { - ZL_Data* data; - ZL_AppendToOutputOptimization* appendOpt; -} ZL_DataInfo; - -DECLARE_VECTOR_TYPE(ZL_DataInfo) +typedef struct { + ZL_DCtx_DataInfo* ptr; + size_t size; +} ZL_DCtx_DataInfoArray; struct ZL_DCtx_s { DTransforms_manager dtm; + ZL_DecoderFusionState fusion; ///< Registered decoder fusions DFH_Struct dfh; - VECTOR_CONST_POINTERS(ZL_Data) transformInputStreams; - VECTOR(ZL_DataInfo) dataInfos; + ZL_DCtx_DataInfoArray dataInfo; ZL_Data** outputs; size_t nbOutputs; ZL_RBuffer thstream; size_t currentStreamNb; size_t streamEndPos; bool preserveStreams; - Arena* decompressArena; ///< Lives for the lifetime of the decompression - Arena* workspaceArena; + Arena* chunkArena; ///< Lives for the lifetime of the chunk decompression + Arena* decoderWkspArena; ///< Lives for the lifetime of a single decoder + /// Lives for the lifetime of a single decoder fusion + Arena* fusionWkspArena; Arena* streamArena; ZL_OperationContext opCtx; GDParams requestedGDParams; // As user-selected at DCtx level @@ -99,13 +99,22 @@ ZL_DCtx* ZL_DCtx_create(void) if (!dctx) { return NULL; } - dctx->decompressArena = ALLOC_StackArena_create(); - if (!dctx->decompressArena) { + + ZL_OC_init(&dctx->opCtx); + ZL_OC_startOperation(&dctx->opCtx, ZL_Operation_decompress); + + dctx->chunkArena = ALLOC_StackArena_create(); + if (!dctx->chunkArena) { + ZL_DCtx_free(dctx); + return NULL; + } + dctx->decoderWkspArena = ALLOC_StackArena_create(); + if (!dctx->decoderWkspArena) { ZL_DCtx_free(dctx); return NULL; } - dctx->workspaceArena = ALLOC_StackArena_create(); - if (!dctx->workspaceArena) { + dctx->fusionWkspArena = ALLOC_StackArena_create(); + if (!dctx->fusionWkspArena) { ZL_DCtx_free(dctx); return NULL; } @@ -114,22 +123,24 @@ ZL_DCtx* ZL_DCtx_create(void) ZL_DCtx_free(dctx); return NULL; } - if (ZL_isError(DTM_init(&dctx->dtm, ZL_CUSTOM_TRANSFORM_LIMIT))) { + if (ZL_isError(DTM_init( + &dctx->dtm, + ZL_GET_OPERATION_CONTEXT(dctx), + ZL_CUSTOM_TRANSFORM_LIMIT))) { + ZL_DCtx_free(dctx); + return NULL; + } + if (ZL_isError(ZL_DecoderFusionState_init(&dctx->fusion))) { ZL_DCtx_free(dctx); return NULL; } DFH_init(&dctx->dfh); - ZL_OC_init(&dctx->opCtx); - ZL_OC_startOperation(&dctx->opCtx, ZL_Operation_decompress); - VECTOR_INIT( - dctx->transformInputStreams, - ZL_transformOutStreamsLimit(ZL_MAX_FORMAT_VERSION)); - VECTOR_INIT(dctx->dataInfos, ZL_runtimeStreamLimit(ZL_MAX_FORMAT_VERSION)); return dctx; } ZL_Report ZL_DCtx_setStreamArena(ZL_DCtx* dctx, ZL_DataArenaType sat) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT_NN(dctx); Arena* newArena = NULL; switch (sat) { @@ -140,9 +151,9 @@ ZL_Report ZL_DCtx_setStreamArena(ZL_DCtx* dctx, ZL_DataArenaType sat) newArena = ALLOC_StackArena_create(); break; default: - ZL_RET_R_IF(parameter_invalid, 1, "Stream Arena type is invalid"); + ZL_ERR_IF(1, parameter_invalid, "Stream Arena type is invalid"); } - ZL_RET_R_IF_NULL(allocation, newArena); + ZL_ERR_IF_NULL(newArena, allocation); ALLOC_Arena_freeArena(dctx->streamArena); dctx->streamArena = newArena; return ZL_returnSuccess(); @@ -158,28 +169,39 @@ static void DCTX_freeStreams(ZL_DCtx* dctx) { ZL_DLOG(SEQ, "DCTX_freeStreams"); ZL_ASSERT_NN(dctx); - size_t const nbStreams = VECTOR_SIZE(dctx->dataInfos); + size_t const nbStreams = dctx->dataInfo.size; ZL_DLOG(SEQ, "free %zu Streams", nbStreams); ALLOC_Arena_freeAll(dctx->streamArena); - VECTOR_CLEAR(dctx->dataInfos); } void ZL_DCtx_free(ZL_DCtx* dctx) { if (dctx == NULL) return; - VECTOR_DESTROY(dctx->transformInputStreams); DCTX_freeStreams(dctx); - VECTOR_DESTROY(dctx->dataInfos); DTM_destroy(&dctx->dtm); + ZL_DecoderFusionState_destroy(&dctx->fusion); DFH_destroy(&dctx->dfh); - ALLOC_Arena_freeArena(dctx->workspaceArena); + ALLOC_Arena_freeArena(dctx->decoderWkspArena); + ALLOC_Arena_freeArena(dctx->fusionWkspArena); ALLOC_Arena_freeArena(dctx->streamArena); - ALLOC_Arena_freeArena(dctx->decompressArena); + ALLOC_Arena_freeArena(dctx->chunkArena); ZL_OC_destroy(&dctx->opCtx); ZL_free(dctx); } +ZL_Report DCTX_registerDecoderFusion( + ZL_DCtx* dctx, + const ZL_DecoderFusionDesc* fusion) +{ + return ZL_DecoderFusionState_registerFusion(&dctx->fusion, fusion); +} + +void DCTX_clearDecoderFusions(ZL_DCtx* dctx) +{ + ZL_DecoderFusionState_clearFusions(&dctx->fusion); +} + ZL_Report ZL_DCtx_setParameter(ZL_DCtx* dctx, ZL_DParam gdparam, int value) { ZL_ASSERT_NN(dctx); @@ -228,7 +250,7 @@ unsigned ZL_DCtx_getFrameFormatVersion(const ZL_DCtx* dctx) size_t ZL_DCtx_getNumStreams(const ZL_DCtx* dctx) { - return VECTOR_SIZE(dctx->dataInfos); + return dctx->dataInfo.size; } const ZL_Data* ZL_DCtx_getConstStream(const ZL_DCtx* dctx, ZL_IDType streamID) @@ -236,16 +258,17 @@ const ZL_Data* ZL_DCtx_getConstStream(const ZL_DCtx* dctx, ZL_IDType streamID) if (streamID >= ZL_DCtx_getNumStreams(dctx)) { return NULL; } - return VECTOR_AT(dctx->dataInfos, streamID).data; + return dctx->dataInfo.ptr[streamID].data; } ZL_Report ZL_DCtx_registerPipeDecoder( ZL_DCtx* dctx, const ZL_PipeDecoderDesc* ctd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT_NN(dctx); ZL_ASSERT_NN(ctd); - ZL_RET_R_IF_ERR(DTM_registerDPipeTransform(&dctx->dtm, ctd)); + ZL_ERR_IF_ERR(DTM_registerDPipeTransform(&dctx->dtm, ctd)); return ZL_returnSuccess(); } @@ -253,9 +276,10 @@ ZL_Report ZL_DCtx_registerSplitDecoder( ZL_DCtx* dctx, const ZL_SplitDecoderDesc* ctd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT_NN(dctx); ZL_ASSERT_NN(ctd); - ZL_RET_R_IF_ERR(DTM_registerDSplitTransform(&dctx->dtm, ctd)); + ZL_ERR_IF_ERR(DTM_registerDSplitTransform(&dctx->dtm, ctd)); return ZL_returnSuccess(); } @@ -263,10 +287,11 @@ ZL_Report ZL_DCtx_registerTypedDecoder( ZL_DCtx* dctx, const ZL_TypedDecoderDesc* dttd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT_NN(dctx); ZL_ASSERT_NN(dttd); // WARNING: Must not fail before this line otherwise opaque will be leaked - ZL_RET_R_IF_ERR(DTM_registerDTypedTransform(&dctx->dtm, dttd)); + ZL_ERR_IF_ERR(DTM_registerDTypedTransform(&dctx->dtm, dttd)); return ZL_returnSuccess(); } @@ -274,13 +299,14 @@ ZL_Report ZL_DCtx_registerVODecoder( ZL_DCtx* dctx, const ZL_VODecoderDesc* dvotd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_DLOG(BLOCK, "ZL_DCtx_registerVODecoder '%s'", STR_REPLACE_NULL(dvotd->name)); ZL_ASSERT_NN(dctx); ZL_ASSERT_NN(dvotd); // WARNING: Must not fail before this line otherwise opaque will be leaked - ZL_RET_R_IF_ERR(DTM_registerDVOTransform(&dctx->dtm, dvotd)); + ZL_ERR_IF_ERR(DTM_registerDVOTransform(&dctx->dtm, dvotd)); return ZL_returnSuccess(); } @@ -288,10 +314,11 @@ ZL_Report ZL_DCtx_registerMIDecoder( ZL_DCtx* dctx, const ZL_MIDecoderDesc* dmitd) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT_NN(dctx); ZL_ASSERT_NN(dmitd); // WARNING: Must not fail before this line otherwise opaque will be leaked - ZL_RET_R_IF_ERR(DTM_registerDMITransform(&dctx->dtm, dmitd)); + ZL_ERR_IF_ERR(DTM_registerDMITransform(&dctx->dtm, dmitd)); return ZL_returnSuccess(); } @@ -315,11 +342,12 @@ ZL_Report ZL_DCtx_registerMIDecoder( static ZL_Report ZL_AppendToOutputOptimization_register( ZL_DCtx* dctx, const DFH_NodeInfo* node, - ZL_DataInfo* inputInfos, + ZL_DCtx_DataInfo* inputInfos, size_t nbInputs, - ZL_DataInfo* outputInfo, + ZL_DCtx_DataInfo* outputInfo, ZL_Data* outputData) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); if (dctx->preserveStreams) { // Does not work with stream preservation, so disable the optimization. return ZL_returnValue(0); @@ -358,8 +386,8 @@ static ZL_Report ZL_AppendToOutputOptimization_register( break; } ZL_AppendToOutputOptimization* append = ALLOC_Arena_calloc( - dctx->decompressArena, sizeof(ZL_AppendToOutputOptimization)); - ZL_RET_R_IF_NULL(allocation, append); + dctx->chunkArena, sizeof(ZL_AppendToOutputOptimization)); + ZL_ERR_IF_NULL(append, allocation); append->inputInfos = inputInfos; append->nbInputs = nbInputs; append->headInputIdx = 0; @@ -369,7 +397,7 @@ static ZL_Report ZL_AppendToOutputOptimization_register( append->outputHeadPtr = outputPtr; append->outputTailPtr = outputPtr + outputCapacity; - ZL_RET_R_IF_ERR(STREAM_initWritableStream( + ZL_ERR_IF_ERR(STREAM_typeAttachedBuffer( outputData, ZL_Type_serial, 1, outputCapacity)); // Everything succeeded, make stateful changes to infos @@ -397,11 +425,12 @@ static ZL_Report ZL_AppendToOutputOptimization_commitInput( ZL_AppendToOutputOptimization* append, size_t inputIdx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); // Append to head if equal to the headInputIdx. const bool head = (inputIdx == append->headInputIdx); // Inputs are listed in reverse order - const size_t infoInputPos = append->nbInputs - (inputIdx + 1); - ZL_DataInfo* const inputInfo = &append->inputInfos[infoInputPos]; + const size_t infoInputPos = append->nbInputs - (inputIdx + 1); + ZL_DCtx_DataInfo* const inputInfo = &append->inputInfos[infoInputPos]; ZL_ASSERT_NN(inputInfo); ZL_ASSERT_EQ(inputInfo->appendOpt, append); ZL_Data* const input = inputInfo->data; @@ -413,7 +442,7 @@ static ZL_Report ZL_AppendToOutputOptimization_commitInput( ZL_ASSERT_LE(append->outputHeadPtr, append->outputTailPtr); const size_t outputCapacity = (size_t)(append->outputTailPtr - append->outputHeadPtr); - ZL_RET_R_IF_GT(dstCapacity_tooSmall, inputSize, outputCapacity); + ZL_ERR_IF_GT(inputSize, outputCapacity, dstCapacity_tooSmall); uint8_t* const outputBegin = ZL_Data_wPtr(append->outputInfo->data); uint8_t const* outputEnd = @@ -461,13 +490,15 @@ static ZL_Report ZL_AppendToOutputOptimization_commitInput( * the output buffer, and all inputs starting from `tailInputIdx` by prepending * to the tail of the output buffer. Stops when an uncommitted input is reached. */ -static ZL_Report ZS2_AppendToOutputOptimization_commitInputs( +static ZL_Report ZL_AppendToOutputOptimization_commitInputs( ZL_AppendToOutputOptimization* append) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (; append->headInputIdx < append->tailInputIdx;) { // First check if we can commit head inputs. { - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, success, ZL_AppendToOutputOptimization_commitInput( append, append->headInputIdx)); @@ -478,7 +509,8 @@ static ZL_Report ZS2_AppendToOutputOptimization_commitInputs( } // Next check if we can commit tail inputs. { - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, success, ZL_AppendToOutputOptimization_commitInput( append, append->tailInputIdx - 1)); @@ -502,18 +534,19 @@ static ZL_Report ZS2_AppendToOutputOptimization_commitInputs( * streams are committed, and commits the output stream. */ static ZL_Report ZL_AppendToOutputOptimization_preTransformHook( - ZL_DataInfo* info) + ZL_DCtx_DataInfo* info) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_AppendToOutputOptimization* append = info->appendOpt; ZL_ASSERT_NN(append); - ZL_RET_R_IF_ERR(ZS2_AppendToOutputOptimization_commitInputs(append)); + ZL_ERR_IF_ERR(ZL_AppendToOutputOptimization_commitInputs(append)); if (info == info->appendOpt->outputInfo) { - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( append->headInputIdx, append->tailInputIdx, + corruption, "Not all input streams committed!"); ZL_ASSERT_LE(append->outputHeadPtr, append->outputTailPtr); uint8_t* const outputBegin = ZL_Data_wPtr(info->data); @@ -530,7 +563,7 @@ static ZL_Report ZL_AppendToOutputOptimization_preTransformHook( append->outputHeadPtr += tailSize; const size_t outputSize = (size_t)(append->outputHeadPtr - outputBegin); - ZL_RET_R_IF_ERR(ZL_Data_commit(info->data, outputSize)); + ZL_ERR_IF_ERR(ZL_Data_commit(info->data, outputSize)); ZL_LOG(FRAME, "AppendToOutputOptimization: Successfully committed %zu bytes", outputSize); @@ -548,19 +581,20 @@ static ZL_Report ZL_AppendToOutputOptimization_preTransformHook( * output, point the input directly at the output, to elide a copy. */ static ZL_Report ZL_AppendToOutputOptimization_newStreamHook( - ZL_DataInfo* const info, + ZL_DCtx_DataInfo* const info, ZL_Type type, size_t eltWidth, size_t eltsCapacity) { - ZL_RET_R_IF_EQ( - corruption, + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_EQ( type, ZL_Type_string, - "Strings not supported (already validated cannot be string)"); - ZL_RET_R_IF( corruption, + "Strings not supported (already validated cannot be string)"); + ZL_ERR_IF( type == ZL_Type_numeric, + corruption, "Numeric not supported (already validated cannot be int)"); ZL_AppendToOutputOptimization* append = info->appendOpt; @@ -580,12 +614,12 @@ static ZL_Report ZL_AppendToOutputOptimization_newStreamHook( return ZL_returnValue(0); } - ZL_RET_R_IF_ERR(ZS2_AppendToOutputOptimization_commitInputs(append)); + ZL_ERR_IF_ERR(ZL_AppendToOutputOptimization_commitInputs(append)); size_t bytesNeeded; - ZL_RET_R_IF( - integerOverflow, - ZL_overflowMulST(eltWidth, eltsCapacity, &bytesNeeded)); + ZL_ERR_IF( + ZL_overflowMulST(eltWidth, eltsCapacity, &bytesNeeded), + integerOverflow); ZL_ASSERT_LE(append->outputHeadPtr, append->outputTailPtr); const size_t outputCapacity = @@ -602,27 +636,79 @@ static ZL_Report ZL_AppendToOutputOptimization_newStreamHook( return ZL_returnValue(0); } - ZL_RET_R_IF_ERR(STREAM_refMutBuffer( + ZL_ERR_IF_ERR(STREAM_attachWritableBuffer( info->data, append->outputHeadPtr, type, eltWidth, eltsCapacity)); return ZL_returnValue(1); } -// getNbInputs(): -static ZL_Report -getNbInputs(const ZL_DCtx* dctx, PublicTransformInfo trinfo, size_t nbVOs) +/** + * Runs all node validation except checks that require the input and output + * streams to be materialized. + */ +static ZL_Report DCTX_validateNodeStatic( + ZL_DCtx* dctx, + const DTransform* dt, + const DFH_NodeInfo* nodeInfo) { - ZL_TRY_LET_T( - DTrPtr, - wrappedTr, - DTM_getTransform(&dctx->dtm, trinfo, dctx->dfh.formatVersion)); - size_t const nbIn1s = wrappedTr->miGraphDesc.nbSOs; - ZL_RET_R_IF_GT( - formatVersion_unsupported, - nbIn1s + nbVOs, - ZL_transformOutStreamsLimit(dctx->dfh.formatVersion)); - - return ZL_returnValue(nbIn1s + nbVOs); + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + + if (dctx->dfh.formatVersion < 9) { + ZL_ERR_IF_EQ( + nodeInfo->numInputStreams, + 0, + formatVersion_unsupported, + "0 output streams not supported until format version 9"); + } + ZL_ERR_IF_GT( + nodeInfo->numInputStreams, + ZL_transformOutStreamsLimit(dctx->dfh.formatVersion), + formatVersion_unsupported); + + ZL_ERR_IF_EQ( + nodeInfo->nbRegens, + 0, + corruption, + "Graph inconsistency: Transform has no regenerated streams"); + // Validate that nb of regen streams is compatible + ZL_ERR_IF_NOT( + DT_isNbRegensCompatible(dt, nodeInfo->nbRegens), + nodeRegen_countIncorrect, + "Transform '%s'(%u) is assigned %u streams to regenerate, but its signature specifies %u streams", + DT_getTransformName(dt), + nodeInfo->trpid.trid, + nodeInfo->nbRegens, + dt->miGraphDesc.nbInputs); + + // Validate that we only have variable output streams when we have a + // non-zero number of variable output stream types. This is required + // to ensure that all non-variable transforms get the right number + // of streams. + if (dt->miGraphDesc.nbVOs == 0) { + ZL_ERR_IF_NE( + nodeInfo->nbVOs, + 0, + corruption, + "Transform id=%u isn't accepting VO streams, " + "but %zu VO streams are nonetheless assigned to it in this graph.", + dt->miGraphDesc.CTid, + nodeInfo->nbVOs); + } + + // We already validated the input streams during decode frame header. + // Though they may not all be filled, so we have to check that. + const size_t inputStreamEndIdx = + nodeInfo->inputStreamBaseIdx + nodeInfo->numInputStreams; + ZL_ERR_IF_GT(inputStreamEndIdx, dctx->dataInfo.size, graph_invalid); + ZL_ASSERT_LE(inputStreamEndIdx, dctx->dataInfo.size); + // Check that output streams are not used as input streams + ZL_ERR_IF_GT( + inputStreamEndIdx, + dctx->dataInfo.size - dctx->nbOutputs, + graph_invalid, + "Graph inconsistency: Output stream depends on another output stream"); + + return ZL_returnSuccess(); } /* Reference streams stored in the frame. @@ -633,15 +719,15 @@ static ZL_Report fillStoredStreams( ZL_DCtx* dctx, const void* src, size_t srcSize, - size_t startPos, - VECTOR(uint8_t) * isRegeneratedStream) + size_t startPos) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + ZL_DLOG(SEQ, "fillStoredStreams (srcSize=%zu, startPos=%zu)", srcSize, startPos); - ZL_ASSERT_EQ(VECTOR_SIZE(dctx->dataInfos), 0); - ZL_ASSERT_EQ(VECTOR_SIZE(*isRegeneratedStream), 0); + ZL_ASSERT_EQ(dctx->dataInfo.size, 0); // Start by referencing the Transforms' Header stream size_t srcPos = startPos; @@ -653,7 +739,7 @@ static ZL_Report fillStoredStreams( }; srcPos += thsize; } - ZL_RET_R_IF_GT(srcSize_tooSmall, srcPos, srcSize); + ZL_ERR_IF_GT(srcPos, srcSize, srcSize_tooSmall); // Next we'll reference each of the stored streams in the frame size_t const nbTransforms = dctx->dfh.nbDTransforms; @@ -661,22 +747,27 @@ static ZL_Report fillStoredStreams( size_t const nbRegenStreams = dctx->dfh.nbRegens; size_t const totalNbStreams = nbStoredStreams + nbRegenStreams; size_t const firstOutputIdx = totalNbStreams - dctx->nbOutputs; - ZL_RET_R_IF_GT( - temporaryLibraryLimitation, + ZL_ERR_IF_GT( totalNbStreams, ZL_runtimeStreamLimit(dctx->dfh.formatVersion), + temporaryLibraryLimitation, "too many Streams defined in this Frame"); - ZL_RET_R_IF_NE( - allocation, - totalNbStreams, - VECTOR_RESIZE(dctx->dataInfos, totalNbStreams)); - ZL_RET_R_IF_NE( - allocation, - totalNbStreams, - VECTOR_RESIZE(*isRegeneratedStream, totalNbStreams)); - /* note: vectors are expected to remain in place after this initialization - * because they are supposed to be correctly sized upfront */ + ALLOC_ARENA_MALLOC_CHECKED( + ZL_DCtx_DataInfo, dataInfo, totalNbStreams, dctx->chunkArena); + dctx->dataInfo.ptr = dataInfo; + dctx->dataInfo.size = totalNbStreams; + + ZL_ASSERT_LE(nbTransforms, ZL_runtimeNodeLimit(dctx->dfh.formatVersion)); + ZL_ASSERT_EQ(VECTOR_SIZE(dctx->dfh.nodes), nbTransforms); + DFH_NodeInfo* nodeInfo = VECTOR_DATA(dctx->dfh.nodes); + + // Initialize the dataInfo array + for (size_t stream = 0; stream < totalNbStreams; ++stream) { + dataInfo[stream].data = NULL; + dataInfo[stream].appendOpt = NULL; + dataInfo[stream].producerNodeIdx = ZL_PRODUCER_STORE; + } // Index of the stream being analyzed, // can be either stored or regenerated stream. @@ -692,18 +783,26 @@ static ZL_Report fillStoredStreams( nbStoredStreams); for (size_t transformIdx = 0; transformIdx < nbTransforms; ++transformIdx) { const DFH_NodeInfo* node = &VECTOR_AT(dctx->dfh.nodes, transformIdx); - ZL_TRY_LET_R(nbTrIns, getNbInputs(dctx, node->trpid, node->nbVOs)); + ZL_TRY_LET( + DTrPtr, + wrappedTr, + DTM_getTransform( + &dctx->dtm, node->trpid, dctx->dfh.formatVersion)); + const size_t nbTrIns = wrappedTr->miGraphDesc.nbSOs + node->nbVOs; + + nodeInfo[transformIdx].inputStreamBaseIdx = (ZL_IDType)streamIdx; + nodeInfo[transformIdx].numInputStreams = (ZL_IDType)nbTrIns; + nodeInfo[transformIdx].fusion = NULL; + + // Run all validation that can be done at header decode time. + ZL_ERR_IF_ERR(DCTX_validateNodeStatic(dctx, wrappedTr, node)); + ZL_DLOG(BLOCK, "node %i : transform %i needs %i processed inputs", (int)transformIdx, node->trpid.trid, nbTrIns); size_t const inputEndIdx = streamIdx + nbTrIns; - ZL_RET_R_IF_GT( - corruption, - inputEndIdx, - firstOutputIdx, - "Graph inconsistency: Output stream depends on another output stream"); for (size_t n = 0; n < node->nbRegens; n++) { size_t const outputStreamIdx = @@ -711,33 +810,39 @@ static ZL_Report fillStoredStreams( ZL_ASSERT_GE(outputStreamIdx, inputEndIdx); // Set the output stream as regenerated - ZL_RET_R_IF_GE( - corruption, - outputStreamIdx, - VECTOR_SIZE(*isRegeneratedStream)); - ZL_RET_R_IF_EQ( + ZL_ERR_IF_GE(outputStreamIdx, totalNbStreams, corruption); + ZL_ERR_IF_NE( + dataInfo[outputStreamIdx].producerNodeIdx, + ZL_PRODUCER_STORE, corruption, - VECTOR_AT(*isRegeneratedStream, outputStreamIdx), - 1, "Graph inconsistency: regenerated stream is already assigned. \n"); - VECTOR_AT(*isRegeneratedStream, outputStreamIdx) = 1; + dataInfo[outputStreamIdx].producerNodeIdx = (ZL_IDType)transformIdx; } - if (node->nbRegens == 1) { + // Codec fusion + const bool fused = + DCtx_getAppliedGParam(dctx, ZL_DParam_enableCodecFusion) + == ZL_TernaryParam_enable + && ZL_DecoderFusionState_maybeFuse( + &dctx->fusion, nodeInfo, dataInfo, transformIdx); + + // Append optimization (only when fusion is not applied) + if (!fused && node->nbRegens == 1) { const size_t regenIdx = inputEndIdx + node->regenDistances[0]; ZL_ASSERT_LT(regenIdx, totalNbStreams); if (regenIdx >= firstOutputIdx) { // Outputs are listed in reverse order in dataInfos. size_t const outputIdx = totalNbStreams - (regenIdx + 1); ZL_Data* const outputData = dctx->outputs[outputIdx]; - ZL_TRY_LET_R( + ZL_TRY_LET_CONST( + size_t, hasAppendOpt, ZL_AppendToOutputOptimization_register( dctx, node, - &VECTOR_AT(dctx->dataInfos, streamIdx), + dataInfo + streamIdx, nbTrIns, - &VECTOR_AT(dctx->dataInfos, regenIdx), + dataInfo + regenIdx, outputData)); if (hasAppendOpt) { ZL_LOG(FRAME, @@ -757,15 +862,15 @@ static ZL_Report fillStoredStreams( // streams for each non-regenerated stream. for (streamIdx = 0; streamIdx < totalNbStreams; ++streamIdx) { // Skip over regenerated streams - ZL_ASSERT_LT(streamIdx, VECTOR_SIZE(*isRegeneratedStream)); - if (VECTOR_AT(*isRegeneratedStream, streamIdx)) + if (dataInfo[streamIdx].producerNodeIdx != ZL_PRODUCER_STORE) { continue; + } // Check that we haven't run out ouf stored streams - ZL_RET_R_IF_EQ( - corruption, + ZL_ERR_IF_EQ( storedStreamIdx, nbStoredStreams, + corruption, "Inconsistency: frame contains more streams than expected. \n" "This is a corruption event: frame will not be decompressed. \n" "Plausible causes are: \n" @@ -781,23 +886,23 @@ static ZL_Report fillStoredStreams( storedStreamIdx, storedSize, streamIdx); - ZL_RET_R_IF_NULL( - allocation, + ZL_ERR_IF_NULL( DCTX_newStreamFromConstRef( dctx, (ZL_IDType)streamIdx, ZL_Type_serial, 1, storedSize, - (const char*)src + srcPos)); + (const char*)src + srcPos), + allocation); srcPos += storedSize; ++storedStreamIdx; } - ZL_RET_R_IF_NE( - corruption, + ZL_ERR_IF_NE( storedStreamIdx, nbStoredStreams, + corruption, "Inconsistency: frame does not contain as many streams as expected. \n" "This is a corruption event: frame will not be decompressed. \n" "Plausible causes are: \n" @@ -805,14 +910,11 @@ static ZL_Report fillStoredStreams( " - Invalid Graph construction, which presumes a bug at compression time \n" " - Incorrect Transform definition, such as registering a different Transform with same ID as expected one \n"); - ZL_RET_R_IF_EQ( - corruption, - VECTOR_SIZE(dctx->dataInfos), - 0, - "Frame doesn't contain any stream!"); + ZL_ERR_IF_EQ( + totalNbStreams, 0, corruption, "Frame doesn't contain any stream!"); ZL_LOG(FRAME, "read so far from frame: %zu/%zu", srcPos, srcSize); - ZL_RET_R_IF_GT(srcSize_tooSmall, srcPos, srcSize); + ZL_ERR_IF_GT(srcPos, srcSize, srcSize_tooSmall); dctx->streamEndPos = srcPos; ZL_ASSERT_GE(srcPos, startPos); @@ -829,11 +931,12 @@ static ZL_Report decodeFrameHeader( size_t srcSize, size_t nbOutputs) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_DLOG(FRAME, "decodeFrameHeader (srcSize = %zu)", srcSize); - ZL_TRY_LET_R(hSize, DFH_decodeFrameHeader(&dctx->dfh, src, srcSize)); + ZL_TRY_LET(size_t, hSize, DFH_decodeFrameHeader(&dctx->dfh, src, srcSize)); - ZL_TRY_LET_R(nbOuts, ZL_FrameInfo_getNumOutputs(dctx->dfh.frameinfo)); - ZL_RET_R_IF_NE(userBuffers_invalidNum, nbOuts, nbOutputs); + ZL_TRY_LET(size_t, nbOuts, ZL_FrameInfo_getNumOutputs(dctx->dfh.frameinfo)); + ZL_ERR_IF_NE(nbOuts, nbOutputs, userBuffers_invalidNum); dctx->nbOutputs = nbOutputs; return ZL_returnValue(hSize); } @@ -852,7 +955,7 @@ ZL_Data* DCTX_newStream( int finalStream = 0; /* presume that dctx->streams has been sized exactly * at frame header decoding time */ - size_t const totalNbStreams = VECTOR_SIZE(dctx->dataInfos); + size_t const totalNbStreams = dctx->dataInfo.size; ZL_DLOG(BLOCK, "DCTX_newStream: new buffer id=%i/%zu of (Width;Capacity)=(%zu;%zu)", streamID, @@ -864,7 +967,7 @@ ZL_Data* DCTX_newStream( if (streamID >= (unsigned)(totalNbStreams - dctx->nbOutputs)) { finalStream = 1; } - ZL_DataInfo* const info = &VECTOR_AT(dctx->dataInfos, streamID); + ZL_DCtx_DataInfo* const info = &dctx->dataInfo.ptr[streamID]; if (dctx->preserveStreams && info->data) { // Allow re-using an existing stream if preserveStreams is enabled. @@ -927,7 +1030,7 @@ ZL_Data* DCTX_newStream( ZL_DLOG(BLOCK, "DCTX_newStream: EltWidth=0 is not allowed"); return NULL; } - if (ZL_isError(STREAM_initWritableStream( + if (ZL_isError(STREAM_typeAttachedBuffer( output, stype, eltWidth, eltsCapacity))) { ZL_DLOG(ERROR, "error initializing pre-allocated output stream!"); @@ -976,11 +1079,11 @@ ZL_Data* DCTX_newStreamFromConstRef( ZL_DLOG(BLOCK, "DCTX_newStreamFromConstRef: new buffer id=%i/%zu of %zu elts", streamID, - VECTOR_SIZE(dctx->dataInfos) - 1, + dctx->dataInfo.size, numElts); ZL_ASSERT_NN(dctx); - ZL_ASSERT_LT(streamID, VECTOR_SIZE(dctx->dataInfos)); - ZL_DataInfo* const info = &VECTOR_AT(dctx->dataInfos, streamID); + ZL_ASSERT_LT(streamID, dctx->dataInfo.size); + ZL_DCtx_DataInfo* const info = &dctx->dataInfo.ptr[streamID]; ZL_ASSERT_NULL(info->data); // stream_id not used yet info->data = @@ -1009,12 +1112,12 @@ ZL_Data* DCTX_newStreamFromStreamRef( ZL_DLOG(BLOCK, "DCTX_newStreamFromStreamRef: new stream id=%i/%zu of %zu elts of width %zu", streamID, - VECTOR_SIZE(dctx->dataInfos), + dctx->dataInfo.size, numElts, eltWidth); ZL_ASSERT_NN(dctx); - ZL_ASSERT_LT(streamID, VECTOR_SIZE(dctx->dataInfos)); - ZL_DataInfo* const info = &VECTOR_AT(dctx->dataInfos, streamID); + ZL_ASSERT_LT(streamID, dctx->dataInfo.size); + ZL_DCtx_DataInfo* const info = &dctx->dataInfo.ptr[streamID]; // stream_id should not be used yet ZL_ASSERT_NULL(info->data); @@ -1033,81 +1136,330 @@ ZL_Data* DCTX_newStreamFromStreamRef( return info->data; } -// @return : nb of streams processed -static ZL_Report processStream( +static const ZL_Data** DCTX_getNodeInputs( + const ZL_DCtx* dctx, + const DFH_NodeInfo* nodeInfo, + Arena* workspaceArena) +{ + const ZL_Data** inputs = ALLOC_Arena_malloc( + workspaceArena, nodeInfo->numInputStreams * sizeof(const ZL_Data*)); + if (inputs == NULL) { + return NULL; + } + + for (ZL_IDType n = 0; n < nodeInfo->numInputStreams; n++) { + ZL_IDType const snb = nodeInfo->inputStreamBaseIdx + n; + size_t const inb = nodeInfo->numInputStreams - 1 - n; // reverse order + inputs[inb] = dctx->dataInfo.ptr[snb].data; + } + + return inputs; +} + +static ZL_Report DCTX_validateNodeInputs( ZL_DCtx* dctx, - ZL_IDType streamID, const DTransform* dt, + const DFH_NodeInfo* nodeInfo, + const ZL_Data* const* inputs, + size_t numInputs, + bool allowNullInputs) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + ZL_ASSERT_EQ(nodeInfo->numInputStreams, numInputs); + + ZL_Type allowedVOTypes = 0; + for (size_t i = 0; i < dt->miGraphDesc.nbVOs; i++) { + allowedVOTypes |= dt->miGraphDesc.voTypes[i]; + } + + // Validate input types + for (size_t i = 0; i < numInputs; ++i) { + ZL_ASSERT( + allowNullInputs || inputs[i] != NULL, + "Already validated due to regen validation"); + + // Skip NULL inputs (fused children in decoder fusion) + if (inputs[i] == NULL) { + continue; + } + + // Validate the input type is correct + // (only for the compulsory output streams) + if (i < dt->miGraphDesc.nbSOs) { + // Compulsory range + if (ZL_Data_type(inputs[i]) != dt->miGraphDesc.soTypes[i]) { + ZL_ERR(graph_invalid, + "Error processing stream transform %u: input stream %u has type %d, but we expected type %d", + dt->miGraphDesc.CTid, + (unsigned)i, + ZL_Data_type(inputs[i]), + dt->miGraphDesc.soTypes[i]); + } + } else { + // Validate that variable streams match one of the allowed types + // in the graph description. We can't validate more than that, + // the transform is responsible for everything else. + ZL_ERR_IF_NOT( + ZL_Data_type(inputs[i]) & allowedVOTypes, + graph_invalid, + "Error processing transform %u: Variable input stream %u has type 0x%x, but we expected a type that matches the mask 0x%x", + dt->miGraphDesc.CTid, + (unsigned)(i - dt->miGraphDesc.nbSOs), + ZL_Data_type(inputs[i]), + allowedVOTypes); + } + } + + return ZL_returnSuccess(); +} + +static const ZL_IDType* DCTX_getRegeneratedStreamIDs( + const ZL_DCtx* dctx, + const DFH_NodeInfo* nodeInfo, + Arena* workspaceArena) +{ + ZL_IDType* const regensID = ALLOC_Arena_malloc( + workspaceArena, sizeof(ZL_IDType) * nodeInfo->nbRegens); + if (regensID == NULL) { + return NULL; + } + + const ZL_IDType inputEndIdx = + nodeInfo->inputStreamBaseIdx + nodeInfo->numInputStreams; + for (size_t n = 0; n < nodeInfo->nbRegens; n++) { + regensID[n] = (ZL_IDType)(inputEndIdx + nodeInfo->regenDistances[n]); + ZL_ASSERT_LT(regensID[n], dctx->dataInfo.size); + ZL_ASSERT_NULL( + dctx->dataInfo.ptr[regensID[n]].data, + "Validated in frame header decoding"); + } + return regensID; +} + +static ZL_Report DCTX_validateNodeOutputs( + ZL_DCtx* dctx, + const ZL_IDType* regenStreamIDs, + size_t numRegens) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + + for (size_t n = 0; n < numRegens; n++) { + ZL_Data* outStream = dctx->dataInfo.ptr[regenStreamIDs[n]].data; + ZL_ERR_IF_NULL( + outStream, + transform_executionFailure, + "Node didn't create expected regenerated stream!"); + ZL_ASSERT( + STREAM_isCommitted(outStream), + "Decoding transform did not provide its output size"); + } + + return ZL_returnSuccess(); +} + +static void DCTX_freeDecoderInputStreams( + ZL_DCtx* dctx, const DFH_NodeInfo* nodeInfo) { + if (!dctx->preserveStreams) { + for (ZL_IDType n = 0; n < nodeInfo->numInputStreams; n++) { + ZL_IDType const snb = nodeInfo->inputStreamBaseIdx + n; + ZL_Data** const streamPtr = &dctx->dataInfo.ptr[snb].data; + STREAM_free(*streamPtr); + *streamPtr = NULL; + } + } +} + +static ZL_Report runFusedDecoder( + ZL_DCtx* dctx, + const DFH_NodeInfo* parentNodeInfo) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + + ZL_ASSERT_EQ( + DCtx_getAppliedGParam(dctx, ZL_DParam_enableCodecFusion), + ZL_TernaryParam_enable); + + const ZL_DecoderFusionDesc* const fusion = parentNodeInfo->fusion; + ZL_ASSERT_NN(fusion); + ZL_ASSERT_EQ(parentNodeInfo->trpid.trt, trt_standard); + + // Skip child nodes, they will be fused with the parent + if (!ZL_DecoderFusionDesc_isParent(fusion, parentNodeInfo)) { + return ZL_returnSuccess(); + } + + const size_t numChildCodecs = fusion->pattern.numChildren; + const size_t numFusedCodecs = numChildCodecs + 1; + + // Collate all the DFH_NodeInfo* and DTransform* for the children + parent + ALLOC_ARENA_MALLOC_CHECKED( + const DFH_NodeInfo*, + nodeInfos, + numFusedCodecs, + dctx->fusionWkspArena); + ALLOC_ARENA_MALLOC_CHECKED( + const DTransform*, codecs, numFusedCodecs, dctx->fusionWkspArena); + for (size_t childIdx = 0; childIdx < numChildCodecs; ++childIdx) { + const ZL_IDType childNodeIdx = ZL_DecoderFusionDesc_getProducerNodeIdx( + fusion, childIdx, parentNodeInfo, dctx->dataInfo.ptr); + ZL_ASSERT_NE(childNodeIdx, ZL_PRODUCER_STORE); + nodeInfos[childIdx] = &VECTOR_AT(dctx->dfh.nodes, childNodeIdx); + ZL_TRY_SET( + DTrPtr, + codecs[childIdx], + DTM_getTransform( + &dctx->dtm, + nodeInfos[childIdx]->trpid, + dctx->dfh.formatVersion)); + } + nodeInfos[numChildCodecs] = parentNodeInfo; + + // Build & validate the inputs for each child + ALLOC_ARENA_MALLOC_CHECKED( + const ZL_Data**, + codecInputs, + numFusedCodecs, + dctx->fusionWkspArena); + for (size_t childIdx = 0; childIdx < numChildCodecs; ++childIdx) { + const DFH_NodeInfo* childNodeInfo = nodeInfos[childIdx]; + codecInputs[childIdx] = + DCTX_getNodeInputs(dctx, childNodeInfo, dctx->fusionWkspArena); + ZL_ERR_IF_NULL(codecInputs[childIdx], allocation); + ZL_ERR_IF_ERR(DCTX_validateNodeInputs( + dctx, + codecs[childIdx], + childNodeInfo, + codecInputs[childIdx], + childNodeInfo->numInputStreams, + /* allowNullInputs */ false)); + } + + // Build & validate the inputs for the parent + // NOTE: Inputs from fused codecs are NULL + ZL_TRY_SET( + DTrPtr, + codecs[numChildCodecs], + DTM_getTransform( + &dctx->dtm, + parentNodeInfo->trpid, + dctx->dfh.formatVersion)); + codecInputs[numChildCodecs] = + DCTX_getNodeInputs(dctx, parentNodeInfo, dctx->fusionWkspArena); + ZL_ERR_IF_NULL(codecInputs[numChildCodecs], allocation); + ZL_ERR_IF_ERR(DCTX_validateNodeInputs( + dctx, + codecs[numChildCodecs], + parentNodeInfo, + codecInputs[numChildCodecs], + parentNodeInfo->numInputStreams, + /* allowNullInputs */ true)); + + // Build per-codec header table + ALLOC_ARENA_MALLOC_CHECKED( + ZL_RBuffer, codecHeaders, numFusedCodecs, dctx->fusionWkspArena); + for (size_t i = 0; i < numChildCodecs; ++i) { + ZL_TRY_SET( + ZL_RBuffer, + codecHeaders[i], + ZL_RBuffer_slice( + dctx->thstream, + nodeInfos[i]->trhStart, + nodeInfos[i]->trhSize)); + } + ZL_TRY_SET( + ZL_RBuffer, + codecHeaders[numChildCodecs], + ZL_RBuffer_slice( + dctx->thstream, + parentNodeInfo->trhStart, + parentNodeInfo->trhSize)); + + // Compute regen slots + const ZL_IDType* regensID = DCTX_getRegeneratedStreamIDs( + dctx, parentNodeInfo, dctx->fusionWkspArena); + ZL_ERR_IF_NULL(regensID, allocation); + + // Call the fused decoder + ZL_DecoderFusion state = { + .dctx = dctx, + .workspaceArena = dctx->fusionWkspArena, + .nodeInfos = nodeInfos, + .codecs = codecs, + .codecHeaders = codecHeaders, + .codecInputs = codecInputs, + .numCodecs = numFusedCodecs, + .regenStreamIDs = regensID, + .numRegenStreams = parentNodeInfo->nbRegens, + }; + ZL_ASSERT_NN(fusion->fusionFn); + ZL_Report const report = fusion->fusionFn(&state); + ZL_ERR_IF_ERR_COERCE(report); + + // Check transform's outcome + ZL_ERR_IF_ERR( + DCTX_validateNodeOutputs(dctx, regensID, parentNodeInfo->nbRegens)); + + // Free consumed input streams (must happen before clearing the workspace + // arena because nodeInfos is allocated on the workspace arena). + for (size_t i = 0; i < numFusedCodecs; ++i) { + DCTX_freeDecoderInputStreams(dctx, nodeInfos[i]); + } + + // Clear the workspace arena + ALLOC_Arena_freeAll(dctx->fusionWkspArena); + + return ZL_returnSuccess(); +} + +// @return : nb of streams processed +ZL_Report DCTX_runDecoder( + ZL_DCtx* dctx, + const DFH_NodeInfo* nodeInfo, + bool withinFusedDecoder) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT_NN(dctx); + PublicTransformInfo const trid = nodeInfo->trpid; + ZL_TRY_LET( + DTrPtr, + dt, + DTM_getTransform(&dctx->dtm, trid, dctx->dfh.formatVersion)); + const char* const trName = DT_getTransformName(dt); - ZL_SCOPE_GRAPH_CONTEXT( - dctx, { .transformID = dt->miGraphDesc.CTid, .name = trName }); - size_t const nbInStreams = dt->miGraphDesc.nbSOs + nodeInfo->nbVOs; + ZL_RESULT_SCOPE_ADD_GRAPH_CONTEXT( + (ZL_GraphContext){ .transformID = trid.trid, .name = trName }); + + const ZL_IDType streamID = nodeInfo->inputStreamBaseIdx; + const size_t nbInStreams = nodeInfo->numInputStreams; + + ZL_DLOG(BLOCK, + "transformID = %u '%s' (type:%u)", + trid.trid, + DTM_getTransformName(&dctx->dtm, trid, dctx->dfh.formatVersion), + trid.trt); ZL_DLOG(BLOCK, - "processStream streams [%u-%u] with transform '%s'(%u)", + "runDecoder on input streams [%u-%u] with transform '%s'(%u)", streamID, streamID + (ZL_IDType)nbInStreams - 1, trName, nodeInfo->trpid.trid); - ZL_ASSERT_GT(dt->miGraphDesc.nbSOs + dt->miGraphDesc.nbVOs, 0); - if (dctx->dfh.formatVersion < 9) { - ZL_RET_R_IF_EQ( - formatVersion_unsupported, - nbInStreams, - 0, - "0 output streams not supported until format version 9"); - } - ZL_RET_R_IF_GT( - formatVersion_unsupported, - nbInStreams, - ZL_transformOutStreamsLimit(dctx->dfh.formatVersion)); - // Validate that nb of regen streams is compatible - ZL_RET_R_IF_NOT( - nodeRegen_countIncorrect, - DT_isNbRegensCompatible(dt, nodeInfo->nbRegens), - "Transform '%s'(%u) is assigned %u streams to regenerate, but its signature specifies %u streams", - DT_getTransformName(dt), - nodeInfo->trpid.trid, - nodeInfo->nbRegens, - dt->miGraphDesc.nbInputs); - // Validate that we only have variable output streams when we have a - // non-zero number of variable output stream types. This is required - // to ensure that all non-variable transforms get the right number - // of streams. - if (dt->miGraphDesc.nbVOs == 0) { - ZL_RET_R_IF_NE( - corruption, - nodeInfo->nbVOs, - 0, - "Transform id=%u isn't accepting VO streams, " - "but %zu VO streams are nonetheless assigned to it in this graph.", - dt->miGraphDesc.CTid, - nodeInfo->nbVOs); + // Run decoder fusion + if (!withinFusedDecoder && nodeInfo->fusion != NULL) { + ZL_ERR_IF_ERR(runFusedDecoder(dctx, nodeInfo)); + return ZL_returnValue(nbInStreams); } - ZL_Type allowedVOTypes = 0; - for (size_t i = 0; i < dt->miGraphDesc.nbVOs; i++) { - allowedVOTypes |= dt->miGraphDesc.voTypes[i]; - } - - // We already validated the input streams during decode frame header. - // Though they may not all be filled, so we have to check that. - ZL_ASSERT_LE(streamID + nbInStreams, VECTOR_SIZE(dctx->dataInfos)); - // Check that output streams are not used as input streams - ZL_RET_R_IF_GT( - graph_invalid, - streamID + nbInStreams, - VECTOR_SIZE(dctx->dataInfos) - dctx->nbOutputs); - + // Run append to output optimization if (nodeInfo->nbRegens == 1) { const size_t regenIdx = streamID + nbInStreams + nodeInfo->regenDistances[0]; - ZL_DataInfo* info = &VECTOR_AT(dctx->dataInfos, regenIdx); + ZL_DCtx_DataInfo* info = &dctx->dataInfo.ptr[regenIdx]; if (info->appendOpt) { - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, success, ZL_AppendToOutputOptimization_preTransformHook(info)); if (success) { @@ -1121,8 +1473,7 @@ static ZL_Report processStream( ZL_ASSERT(!dctx->preserveStreams); ZL_ASSERT(STREAM_isCommitted(info->data)); for (size_t i = 0; i < nbInStreams; ++i) { - ZL_Data* input = - VECTOR_AT(dctx->dataInfos, streamID + i).data; + ZL_Data* input = dctx->dataInfo.ptr[streamID + i].data; ZL_ASSERT_NULL(input, "Input must already be freed"); } return ZL_returnValue(nbInStreams); @@ -1130,74 +1481,31 @@ static ZL_Report processStream( } } - // Collect inputs and validate types - ZL_RET_R_IF_NE( - allocation, - nbInStreams, - VECTOR_RESIZE_UNINITIALIZED( - dctx->transformInputStreams, nbInStreams)); - const ZL_Data** inputs = VECTOR_DATA(dctx->transformInputStreams); - for (ZL_IDType n = 0; n < nbInStreams; n++) { - ZL_IDType const snb = streamID + n; - size_t const inb = nbInStreams - 1 - n; // reverse order - inputs[inb] = VECTOR_AT(dctx->dataInfos, snb).data; - - ZL_RET_R_IF_NULL( - graph_invalid, inputs[inb], "Input stream %u not filled!", inb); + // Collect input streams + const ZL_Data** inputs = + DCTX_getNodeInputs(dctx, nodeInfo, dctx->decoderWkspArena); + ZL_ERR_IF_NULL(inputs, allocation); - // Validate the input type is correct - // (only for the compulsory output streams) - if (inb < dt->miGraphDesc.nbSOs) { - // Compulsory range - if (ZL_Data_type(inputs[inb]) != dt->miGraphDesc.soTypes[inb]) { - ZL_RET_R_ERR( - graph_invalid, - "Error processing stream %u, transform %u: input stream %u has type %d, but we expected type %d", - streamID, - dt->miGraphDesc.CTid, - (unsigned)inb, - ZL_Data_type(inputs[inb]), - dt->miGraphDesc.soTypes[inb]); - } - } else { - // Validate that variable streams match one of the allowed types - // in the graph description. We can't validate more than that, - // the transform is responsible for everything else. - ZL_RET_R_IF_NOT( - graph_invalid, - ZL_Data_type(inputs[inb]) & allowedVOTypes, - "Error processing stream %u, transform %u: Variable input stream %u has type 0x%x, but we expected a type that matches the mask 0x%x", - streamID, - dt->miGraphDesc.CTid, - (unsigned)(inb - dt->miGraphDesc.nbSOs), - ZL_Data_type(inputs[inb]), - allowedVOTypes); - } - } + // Validate input types + ZL_ERR_IF_ERR(DCTX_validateNodeInputs( + dctx, + dt, + nodeInfo, + inputs, + nbInStreams, + /* allowNullInputs */ false)); - ZL_ASSERT_NN(dt->transformFn); - ZL_TRY_LET_T( + // Get the codec header + ZL_TRY_LET( ZL_RBuffer, thContent, ZL_RBuffer_slice( dctx->thstream, nodeInfo->trhStart, nodeInfo->trhSize)); - // Determine regenerated streams slots (regensID) - ZL_IDType* const regensID = ALLOC_Arena_malloc( - dctx->workspaceArena, sizeof(ZL_IDType) * nodeInfo->nbRegens); - ZL_RET_R_IF_NULL(allocation, regensID); - for (size_t n = 0; n < nodeInfo->nbRegens; n++) { - regensID[n] = (ZL_IDType)(streamID + nbInStreams - + nodeInfo->regenDistances[n]); - } - // Check that regenerated streams slots are not already filled - for (size_t n = 0; n < nodeInfo->nbRegens; n++) { - ZL_Data* outStream = VECTOR_AT(dctx->dataInfos, regensID[n]).data; - ZL_RET_R_IF_NN( - graph_invalid, - outStream, - "Regenerated stream slot already filled!"); - } + // Determine regenerated streams slots + const ZL_IDType* regensID = DCTX_getRegeneratedStreamIDs( + dctx, nodeInfo, dctx->decoderWkspArena); + ZL_ERR_IF_NULL(regensID, allocation); // Run the transform ZL_DLOG(SEQ, @@ -1209,32 +1517,56 @@ static ZL_Report processStream( .dctx = dctx, .dt = dt, .statePtr = DTM_getStatePtr(&dctx->dtm, nodeInfo->trpid), - .workspaceArena = dctx->workspaceArena, + .workspaceArena = dctx->decoderWkspArena, .regensID = regensID, .nbRegens = nodeInfo->nbRegens, .thContent = thContent, }; - ZL_RET_R_IF_NULL( - logicError, + ZL_ERR_IF_NULL( diState.statePtr, + logicError, "Could not find state for transform %u", nodeInfo->trpid.trid); + DWAYPOINT(on_codecDecode_start, &diState, inputs, nbInStreams); + + ZL_ASSERT_NN(dt->transformFn); ZL_Report const report = dt->transformFn(&diState, dt, inputs, nbInStreams); - ZL_RET_R_IF_ERR_COERCE(report); + if (ZL_isError(report)) { + DWAYPOINT(on_codecDecode_end, &diState, NULL, 0, report); + } + ZL_ERR_IF_ERR_COERCE(report); // Check transform's outcome - for (size_t n = 0; n < nodeInfo->nbRegens; n++) { - ZL_Data* outStream = VECTOR_AT(dctx->dataInfos, regensID[n]).data; - ZL_RET_R_IF_NULL( - transform_executionFailure, - outStream, - "Node didn't create expected regenerated stream!"); - ZL_ASSERT( - STREAM_isCommitted(outStream), - "Decoding transform did not provide its output size"); + ZL_ERR_IF_ERR(DCTX_validateNodeOutputs(dctx, regensID, nodeInfo->nbRegens)); + + IF_DWAYPOINT_ENABLED(on_codecDecode_end, &diState) + { + VECTOR_CONST_POINTERS(ZL_Data) odata; + VECTOR_INIT(odata, nodeInfo->nbRegens); + for (size_t n = 0; n < nodeInfo->nbRegens; n++) { + const ZL_Data* d = dctx->dataInfo.ptr[regensID[n]].data; + bool pushbackSuccess = VECTOR_PUSHBACK(odata, d); + if (!pushbackSuccess) { + VECTOR_DESTROY(odata); + ZL_ERR(allocation, + "Unable to append to the waypoint odata vector"); + } + } + DWAYPOINT( + on_codecDecode_end, + &diState, + VECTOR_DATA(odata), + VECTOR_SIZE(odata), + ZL_returnSuccess()); + VECTOR_DESTROY(odata); } - ALLOC_Arena_freeAll(dctx->workspaceArena); + + // Clear the workspace arena + ALLOC_Arena_freeAll(dctx->decoderWkspArena); + + // Free the input streams + DCTX_freeDecoderInputStreams(dctx, nodeInfo); ZL_DLOG(BLOCK, "decoder '%s' (id:%u) regenerated %zu streams", @@ -1242,42 +1574,19 @@ static ZL_Report processStream( dt->miGraphDesc.CTid, diState.nbRegens); - // Free the input streams - if (!dctx->preserveStreams) { - for (ZL_IDType n = 0; n < nbInStreams; n++) { - ZL_IDType const snb = streamID + n; - ZL_Data** const streamPtr = &VECTOR_AT(dctx->dataInfos, snb).data; - STREAM_free(*streamPtr); - *streamPtr = NULL; - } - } - return ZL_returnValue(nbInStreams); } static ZL_Report runDecoders(ZL_DCtx* dctx) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_DLOG(FRAME, "runDecoders (%zu stages)", dctx->dfh.nbDTransforms); ZL_ASSERT_NN(dctx); - for (size_t stage = 0, startingStream = 0; stage < dctx->dfh.nbDTransforms; - stage++) { + for (size_t stage = 0; stage < dctx->dfh.nbDTransforms; stage++) { ZL_DLOG(BLOCK, "decoding stage %zu", stage); - DFH_NodeInfo const* nodeInfo = &VECTOR_AT(dctx->dfh.nodes, stage); - PublicTransformInfo const trid = nodeInfo->trpid; - ZL_DLOG(BLOCK, - "transformID = %u '%s' (type:%u)", - trid.trid, - DTM_getTransformName(&dctx->dtm, trid, dctx->dfh.formatVersion), - trid.trt); - ZL_RESULT_OF(DTrPtr) - const transform = - DTM_getTransform(&dctx->dtm, trid, dctx->dfh.formatVersion); - ZL_RET_R_IF_ERR(transform); - DTrPtr const dt = ZL_RES_value(transform); - ZL_TRY_LET_R( - nbps, - processStream(dctx, (ZL_IDType)startingStream, dt, nodeInfo)); - startingStream += nbps; + DFH_NodeInfo const* nodeInfo = &VECTOR_AT(dctx->dfh.nodes, stage); + ZL_ERR_IF_ERR(DCTX_runDecoder( + dctx, nodeInfo, /* withinFusedDecoder */ false)); } return ZL_returnSuccess(); @@ -1286,6 +1595,7 @@ static ZL_Report runDecoders(ZL_DCtx* dctx) /* Only used for specific benchmark scenarios */ ZL_Report DCTX_runTransformID(ZL_DCtx* dctx, ZL_IDType transformID) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_ASSERT(dctx->preserveStreams); size_t totalOutputBytes = 0; for (size_t stage = 0, startingStream = 0; stage < dctx->dfh.nbDTransforms; @@ -1293,27 +1603,23 @@ ZL_Report DCTX_runTransformID(ZL_DCtx* dctx, ZL_IDType transformID) DFH_NodeInfo const* node = &VECTOR_AT(dctx->dfh.nodes, stage); PublicTransformInfo const trid = node->trpid; if (trid.trid != transformID) { - ZL_TRY_LET_R(nbInputs, getNbInputs(dctx, trid, node->nbVOs)); - startingStream += nbInputs; + startingStream += node->numInputStreams; continue; } ZL_DLOG(BLOCK, "transformID = %u (type:%u)", trid.trid, trid.trt); - ZL_RESULT_OF(DTrPtr) - const transform = - DTM_getTransform(&dctx->dtm, trid, dctx->dfh.formatVersion); - ZL_RET_R_IF_ERR(transform); - DTrPtr const dt = ZL_RES_value(transform); - ZL_TRY_LET_R( - nbps, processStream(dctx, (ZL_IDType)startingStream, dt, node)); + ZL_TRY_LET( + size_t, + nbps, + DCTX_runDecoder(dctx, node, /* inFusedDecoder */ false)); startingStream += nbps; - ZL_RET_R_IF_NE( - node_versionMismatch, + ZL_ERR_IF_NE( node->nbRegens, 1, + node_versionMismatch, "This method only supports Transforms regenerating a single stream"); ZL_IDType const outStreamID = (ZL_IDType)(startingStream + node->regenDistances[0]); - const ZL_Data* out = VECTOR_AT(dctx->dataInfos, outStreamID).data; + const ZL_Data* out = dctx->dataInfo.ptr[outStreamID].data; ZL_ASSERT_NN(out); ZL_ASSERT( STREAM_isCommitted(out), @@ -1329,7 +1635,7 @@ static ZL_Report addChunksIntoFinalStreams(ZL_DCtx* dctx) { ZL_ASSERT_NN(dctx); ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); - size_t const nbStreams = VECTOR_SIZE(dctx->dataInfos); + size_t const nbStreams = dctx->dataInfo.size; ZL_ERR_IF_GT( dctx->nbOutputs, nbStreams, @@ -1339,7 +1645,7 @@ static ZL_Report addChunksIntoFinalStreams(ZL_DCtx* dctx) for (size_t outputN = 0; outputN < dctx->nbOutputs; outputN++) { ZL_Data* const output = dctx->outputs[outputN]; size_t const lsid = nbStreams - outputN - 1; - const ZL_Data* chunkOutput = VECTOR_AT(dctx->dataInfos, lsid).data; + const ZL_Data* chunkOutput = dctx->dataInfo.ptr[lsid].data; ZL_ERR_IF_NULL( chunkOutput, graph_invalid, "Final stream not produced!"); ZL_Type const type = ZL_Data_type(chunkOutput); @@ -1349,6 +1655,13 @@ static ZL_Report addChunksIntoFinalStreams(ZL_DCtx* dctx) size_t const numElts = ZL_Data_numElts(chunkOutput); size_t const chunkOutputSize = ZL_Data_contentSize(chunkOutput); + ZL_TRY_LET( + size_t, + expectedType, + ZL_FrameInfo_getOutputType(dctx->dfh.frameinfo, (int)outputN)); + ZL_ERR_IF_NE( + type, expectedType, corruption, "Final stream type mismatch"); + if (chunkOutput == output) { ZL_DLOG(SEQ, "final content already decompressed directly into output %zu (total size: %zu bytes)", @@ -1399,10 +1712,10 @@ static ZL_Report addChunksIntoFinalStreams(ZL_DCtx* dctx) // @note (@cyan): this step is only necessary to write eltWidth. // At this stage, stream is already sized for the entire output. // Note that @p numElts is only for current chunk. - // But that's fine, STREAM_initWritableStream() only checks that + // But that's fine, STREAM_typeAttachedBuffer() only checks that // size is large enough. It will not size it down to numElts. ZL_ERR_IF_ERR( - STREAM_initWritableStream(output, type, eltWidth, numElts)); + STREAM_typeAttachedBuffer(output, type, eltWidth, numElts)); } // Append chunk data into final output @@ -1416,13 +1729,15 @@ static void cleanChunkBuffers(ZL_DCtx* dctx) { DCTX_freeStreams(dctx); ALLOC_Arena_freeAll(dctx->streamArena); - ALLOC_Arena_freeAll(dctx->workspaceArena); + ALLOC_Arena_freeAll(dctx->decoderWkspArena); + ALLOC_Arena_freeAll(dctx->fusionWkspArena); + ALLOC_Arena_freeAll(dctx->chunkArena); + memset(&dctx->dataInfo, 0, sizeof(dctx->dataInfo)); } static void cleanAllBuffers(ZL_DCtx* dctx) { cleanChunkBuffers(dctx); - ALLOC_Arena_freeAll(dctx->decompressArena); } // ------------------------------------- @@ -1438,6 +1753,7 @@ static ZL_Report ZL_DCtx_decompressChunk( size_t frameSize, size_t alreadyConsumed) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); size_t consumedSize = alreadyConsumed; ZL_DLOG(BLOCK, "ZL_DCtx_decompressChunk (frameSize=%zu, consumedSize=%zu)", @@ -1452,7 +1768,8 @@ static ZL_Report ZL_DCtx_decompressChunk( cleanChunkBuffers(dctx); ZL_ASSERT_LE(consumedSize, frameSize); - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, chunkHeaderSize, DFH_decodeChunkHeader( &dctx->dfh, @@ -1460,14 +1777,11 @@ static ZL_Report ZL_DCtx_decompressChunk( frameSize - consumedSize)); consumedSize += chunkHeaderSize; - VECTOR(uint8_t) - isRegeneratedStream = - VECTOR_EMPTY(ZL_runtimeStreamLimit(dctx->dfh.formatVersion)); - ZL_Report const chunkStreamsSize = fillStoredStreams( - dctx, framePtr, frameSize, consumedSize, &isRegeneratedStream); - VECTOR_DESTROY(isRegeneratedStream); - ZL_RET_R_IF_ERR(chunkStreamsSize); - consumedSize += ZL_validResult(chunkStreamsSize); + ZL_TRY_LET( + size_t, + chunkStreamsSize, + fillStoredStreams(dctx, framePtr, frameSize, consumedSize)); + consumedSize += chunkStreamsSize; // If present, verify the compressed checksum before running decoders. // Assuming we aren't handling malicious inputs, this ensures that we @@ -1475,14 +1789,14 @@ static ZL_Report ZL_DCtx_decompressChunk( uint32_t expectedContentHash = 0; if (FrameInfo_hasContentChecksum(dctx->dfh.frameinfo)) { - ZL_RET_R_IF_LT(srcSize_tooSmall, frameSize, consumedSize + 4); + ZL_ERR_IF_LT(frameSize, consumedSize + 4, srcSize_tooSmall); expectedContentHash = ZL_readCE32((const char*)framePtr + consumedSize); ZL_DLOG(SEQ, "stored contentHash: %08X", expectedContentHash); consumedSize += 4; } if (FrameInfo_hasCompressedChecksum(dctx->dfh.frameinfo)) { - ZL_RET_R_IF_LT(srcSize_tooSmall, frameSize, consumedSize + 4); + ZL_ERR_IF_LT(frameSize, consumedSize + 4, srcSize_tooSmall); #ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION if (DCtx_getAppliedGParam(dctx, ZL_DParam_checkCompressedChecksum) == ZL_TernaryParam_enable) { @@ -1506,10 +1820,10 @@ static ZL_Report ZL_DCtx_decompressChunk( "actualCompressedHash:%08X vs %08X:expectedCompressedHash", actualHash, expectedHash); - ZL_RET_R_IF_NE( - compressedChecksumWrong, + ZL_ERR_IF_NE( actualHash, expectedHash, + compressedChecksumWrong, "Compressed checksum mismatch! This indicates data corruption after compression!"); } #endif @@ -1517,12 +1831,12 @@ static ZL_Report ZL_DCtx_decompressChunk( } // start the decompression process. - ZL_RET_R_IF_ERR(runDecoders(dctx)); + ZL_ERR_IF_ERR(runDecoders(dctx)); // write result into user's buffer { - ZL_TRY_LET_R(nbOuts, addChunksIntoFinalStreams(dctx)); - ZL_RET_R_IF_NE(corruption, nbOuts, nbOutputs); + ZL_TRY_LET(size_t, nbOuts, addChunksIntoFinalStreams(dctx)); + ZL_ERR_IF_NE(nbOuts, nbOutputs, corruption); } // verify block content checksum @@ -1533,13 +1847,14 @@ static ZL_Report ZL_DCtx_decompressChunk( // Generate checksum based on actual output for (size_t n = 0; n < nbOutputs; n++) { if (ZL_Data_type(outputs[n]) == ZL_Type_numeric) { - ZL_RET_R_IF_NOT( - temporaryLibraryLimitation, + ZL_ERR_IF_NOT( ZL_isLittleEndian(), + temporaryLibraryLimitation, "Cannot calculate hash of numeric output on non little-endian platforms"); } } - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, actualHashT, STREAM_hashLastCommit_xxh3low32( (const ZL_Data**)(void*)outputs, @@ -1554,10 +1869,10 @@ static ZL_Report ZL_DCtx_decompressChunk( FrameInfo_hasCompressedChecksum(dctx->dfh.frameinfo) ? "Content checksum mismatch! This indicates that the data was corrupted during compression or decompression, because the compressed checksum matched! This can be caused by a Zstrong bug, other ASAN bugs in the process, or faulty hardware." : "Content checksum mismatch! This indicates that either data corruption after compression or that data was corrupted during compression or decompression!"; - ZL_RET_R_IF_NE( - contentChecksumWrong, + ZL_ERR_IF_NE( actualContentHash, expectedContentHash, + contentChecksumWrong, "%s", errMsg); #else @@ -1584,7 +1899,12 @@ ZL_Report ZL_DCtx_decompressMultiTBuffer( ZL_OC_startOperation(&dctx->opCtx, ZL_Operation_decompress); ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); - // Set the applied parameters + DWAYPOINT( + on_ZL_DCtx_decompressMultiTBuffer_start, + dctx, + nbOutputs, + framePtr, + frameSize); ZL_ERR_IF_ERR(DCtx_setAppliedParameters(dctx)); // Clean up state - may be dirty if previous decompression failed @@ -1638,9 +1958,6 @@ ZL_Report ZL_DCtx_decompressMultiTBuffer( ZL_FrameInfo_getDecompressedSize(dctx->dfh.frameinfo, (int)n)); switch (type_st) { - default: - ZL_ASSERT_FAIL("invalid type"); - ZL_FALLTHROUGH; case ZL_Type_serial: { ZL_DLOG(SEQ, "pre-allocating output %zu, type Serial, capacity %zu bytes", @@ -1673,11 +1990,15 @@ ZL_Report ZL_DCtx_decompressMultiTBuffer( ZL_FrameInfo_getNumElts(dctx->dfh.frameinfo, (int)n)); ZL_ERR_IF_ERR( STREAM_reserveStrings(outputs[n], numStrings, dSize)); - } + } break; + default: + ZL_ASSERT_FAIL("invalid type"); + break; } } // main decompression loop + size_t chunkIndex = 0; while (1) { // Check end of frame marker if (dctx->dfh.formatVersion >= ZL_CHUNK_VERSION_MIN) { @@ -1694,13 +2015,16 @@ ZL_Report ZL_DCtx_decompressMultiTBuffer( } } + DWAYPOINT(on_decompressChunk_start, dctx, chunkIndex); ZL_TRY_LET( size_t, chunkSize, ZL_DCtx_decompressChunk( dctx, nbOutputs, framePtr, frameSize, consumed)); + DWAYPOINT(on_decompressChunk_end, dctx, ZL_returnValue(chunkSize)); ZL_DLOG(SEQ, "chunk size: %zu", chunkSize); consumed += chunkSize; + chunkIndex++; if (dctx->dfh.formatVersion < ZL_CHUNK_VERSION_MIN) break; @@ -1761,6 +2085,10 @@ ZL_Report ZL_DCtx_decompressMultiTBuffer( ZL_DLOG(BLOCK, "ZL_DCtx_decompressMultiTBuffer: success: decompressed %zu Typed Buffers", nbOutputs); + DWAYPOINT( + on_ZL_DCtx_decompressMultiTBuffer_end, + dctx, + ZL_returnValue(nbOutputs)); return ZL_returnValue(nbOutputs); } @@ -1770,11 +2098,12 @@ ZL_Report ZL_DCtx_decompressTBuffer( const void* compressed, size_t cSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_DLOG(FRAME, "ZL_DCtx_decompressTBuffer: decompressing a Typed Buffer of capacity %zu", STREAM_byteCapacity(ZL_codemodOutputAsData(tbuffer))); - ZL_RET_R_IF_ERR(ZL_DCtx_decompressMultiTBuffer( + ZL_ERR_IF_ERR(ZL_DCtx_decompressMultiTBuffer( dctx, &tbuffer, 1, compressed, cSize)); return ZL_returnValue(ZL_TypedBuffer_byteSize(tbuffer)); @@ -1788,11 +2117,12 @@ ZL_Report ZL_DCtx_decompressTyped( const void* compressed, size_t cSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_DLOG(FRAME, "ZL_DCtx_decompressTyped"); ZL_TypedBuffer* const tbuffer = ZL_TypedBuffer_create(); - ZL_RET_R_IF_NULL(allocation, tbuffer); + ZL_ERR_IF_NULL(tbuffer, allocation); - ZL_Report const tbir = STREAM_refMutRawBuffer( + ZL_Report const tbir = STREAM_attachRawBuffer( ZL_codemodOutputAsData(tbuffer), dst, dstByteCapacity); if (ZL_isError(tbir)) { ZL_TypedBuffer_free(tbuffer); @@ -1830,6 +2160,7 @@ ZL_Report ZL_DCtx_decompress( const void* const cSrc, const size_t cSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); ZL_DLOG(FRAME, "ZL_DCtx_decompress (cSrc=%zu, dstCapacity=%zu)", cSize, @@ -1840,10 +2171,10 @@ ZL_Report ZL_DCtx_decompress( ZL_Report const r = ZL_DCtx_decompressTyped( dctx, &outInfo, dst, dstCapacity, cSrc, cSize); if (!ZL_isError(r)) { - ZL_RET_R_IF_NE( - GENERIC, + ZL_ERR_IF_NE( outInfo.type, ZL_Type_serial, + GENERIC, "ZL_DCtx_decompress is only compatible with serialized output"); } return r; @@ -1852,8 +2183,9 @@ ZL_Report ZL_DCtx_decompress( ZL_Report ZL_decompress(void* dst, size_t dstCapacity, const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_DCtx* const dctx = ZL_DCtx_create(); - ZL_RET_R_IF_NULL(allocation, dctx); + ZL_ERR_IF_NULL(dctx, allocation); ZL_Report r = ZL_DCtx_decompress(dctx, dst, dstCapacity, src, srcSize); @@ -1904,15 +2236,11 @@ DFH_Struct const* DCtx_getFrameHeader(ZL_DCtx const* dctx) /* Note : this is only used by streamdump2 currently */ ZL_Report DCtx_getNbInputStreams(ZL_DCtx const* dctx, ZL_IDType decoderIdx) { - ZL_ASSERT_NN(dctx); - ZL_RET_R_IF_GE(GENERIC, decoderIdx, VECTOR_SIZE(dctx->dfh.nodes)); - const DFH_NodeInfo* const ni = &VECTOR_AT(dctx->dfh.nodes, decoderIdx); - const PublicTransformInfo* const ptri = &(ni->trpid); - const ZL_RESULT_OF(DTrPtr) transform = - DTM_getTransform(&dctx->dtm, *ptri, dctx->dfh.formatVersion); - ZL_RET_R_IF_ERR(transform); + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + + ZL_ERR_IF_GE(decoderIdx, VECTOR_SIZE(dctx->dfh.nodes), GENERIC); return ZL_returnValue( - ZL_RES_value(transform)->miGraphDesc.nbSOs + ni->nbVOs); + VECTOR_AT(dctx->dfh.nodes, decoderIdx).numInputStreams); } /* Note : this is only used by streamdump2 currently */ @@ -1930,3 +2258,29 @@ size_t DCTX_streamMemory(ZL_DCtx const* dctx) { return ALLOC_Arena_memAllocated(dctx->streamArena); } + +ZL_Report ZL_DCtx_attachDecompressIntrospectionHooks( + ZL_DCtx* dctx, + const ZL_DecompressIntrospectionHooks* hooks) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(dctx); + ZL_ASSERT_NN(dctx); + ZL_ERR_IF_NULL(hooks, allocation); + ZL_OperationContext* oc = ZL_DCtx_getOperationContext(dctx); + ZL_ASSERT_NN(oc); + oc->decompressIntrospectionHooks = *hooks; + oc->hasDecompressionHooks = true; + return ZL_returnSuccess(); +} + +ZL_Report ZL_DCtx_detachAllDecompressIntrospectionHooks(ZL_DCtx* dctx) +{ + ZL_ASSERT_NN(dctx); + ZL_OperationContext* oc = ZL_DCtx_getOperationContext(dctx); + ZL_ASSERT_NN(oc); + ZL_zeroes( + &oc->decompressIntrospectionHooks, + sizeof(oc->decompressIntrospectionHooks)); + oc->hasDecompressionHooks = false; + return ZL_returnSuccess(); +} diff --git a/src/openzl/decompress/dictx.c b/src/openzl/decompress/dictx.c index 4a90472aa..2a32ae882 100644 --- a/src/openzl/decompress/dictx.c +++ b/src/openzl/decompress/dictx.c @@ -3,7 +3,8 @@ #include "openzl/decompress/dictx.h" #include "openzl/common/allocation.h" #include "openzl/common/logging.h" -#include "openzl/decompress/dctx2.h" // DCTX_* declarations +#include "openzl/common/operation_context.h" // ZL_OperationContext +#include "openzl/decompress/dctx2.h" // DCTX_* declarations #include "openzl/zl_data.h" ZL_Decoder* DI_createDICtx(ZL_DCtx* dctx) @@ -107,6 +108,12 @@ ZL_Output* ZL_Decoder_create1StringStream( ZL_RBuffer ZL_Decoder_getCodecHeader(const ZL_Decoder* dictx) { ZL_ASSERT_NN(dictx); + DWAYPOINT_WITH_OC( + on_ZL_Decoder_getCodecHeader, + dictx->dctx, + dictx, + dictx->thContent.start, + dictx->thContent.size); return dictx->thContent; } diff --git a/src/openzl/decompress/dtransforms.c b/src/openzl/decompress/dtransforms.c index 939687e79..69dce63a8 100644 --- a/src/openzl/decompress/dtransforms.c +++ b/src/openzl/decompress/dtransforms.c @@ -14,13 +14,20 @@ typedef ZL_Type* ZL_Type_p; ZL_RESULT_DECLARE_TYPE(ZL_Type_p); -ZL_Report DTM_init(DTransforms_manager* dtm, uint32_t maxNbTransforms) +ZL_Report DTM_init( + DTransforms_manager* dtm, + ZL_OperationContext* opCtx, + uint32_t maxNbTransforms) { + ZL_RESULT_DECLARE_SCOPE_REPORT(opCtx); + + dtm->opCtx = opCtx; + ZL_OpaquePtrRegistry_init(&dtm->opaquePtrs); dtm->dtmap = DTransformMap_create(maxNbTransforms); dtm->allocator = ALLOC_HeapArena_create(); - ZL_RET_R_IF_NULL( - allocation, dtm->allocator, "DTM_init: failed creating allocator"); + ZL_ERR_IF_NULL( + dtm->allocator, allocation, "DTM_init: failed creating allocator"); return ZL_returnSuccess(); } @@ -60,6 +67,8 @@ static ZL_Report DTM_storeTransformName( DTransforms_manager* dtm, const char** namePtr) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dtm->opCtx); + const char* name = *namePtr; if (name != NULL) { const size_t len = strlen(name) + 1; @@ -75,12 +84,13 @@ static ZL_RESULT_OF(ZL_Type_p) DTM_storeStreamTypes( ZL_Type const* types, unsigned nbTypes) { + ZL_RESULT_DECLARE_SCOPE(ZL_Type_p, dtm->opCtx); + const ZL_Type_p result = ALLOC_Arena_malloc(dtm->allocator, sizeof(ZL_Type) * nbTypes); - ZL_RET_T_IF_NULL( - ZL_Type_p, - allocation, + ZL_ERR_IF_NULL( result, + allocation, "DTM_storeStreamTypes: failed allocating buffer for stream types"); if (nbTypes) memcpy(result, types, sizeof(ZL_Type) * nbTypes); @@ -92,12 +102,13 @@ static ZL_RESULT_OF(ZL_Type_p) DTM_setOutStreamTypes( ZL_Type const type, unsigned nbTypes) { + ZL_RESULT_DECLARE_SCOPE(ZL_Type_p, dtm->opCtx); + const ZL_Type_p result = ALLOC_Arena_malloc(dtm->allocator, sizeof(ZL_Type) * nbTypes); - ZL_RET_T_IF_NULL( - ZL_Type_p, - allocation, + ZL_ERR_IF_NULL( result, + allocation, "DTM_setOutStreamTypes: failed allocating buffer for stream types"); for (size_t i = 0; i < nbTypes; ++i) { result[i] = type; @@ -173,15 +184,16 @@ static ZL_RESULT_OF(ZL_IDType) DTM_registerDCustomTransform( DTransforms_manager* dtm, const DTransform* dct) { + ZL_RESULT_DECLARE_SCOPE(ZL_IDType, dtm->opCtx); + ZL_ASSERT_NN(dtm); ZL_ASSERT_NN(dct); DTransformMap_Entry entry = { .key = dct->miGraphDesc.CTid, .val = *dct }; DTransformMap_Insert insert = DTransformMap_insert(&dtm->dtmap, &entry); - ZL_RET_T_IF( - ZL_IDType, - allocation, + ZL_ERR_IF( insert.badAlloc, + allocation, "DTM_registerDCustomTransform: failed pushing dct into map"); // TODO: we silently let the write fail and leave the old value in place @@ -197,6 +209,7 @@ static ZL_Report pipeTransformWrapper( const ZL_Data* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); ZL_ASSERT_NN(ins); ZL_ASSERT_EQ(nbIns, 1); (void)nbIns; @@ -210,20 +223,20 @@ static ZL_Report pipeTransformWrapper( } ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstCapacity, 1); - ZL_RET_R_IF_NULL(allocation, out); + ZL_ERR_IF_NULL(out, allocation); void* const dst = ZL_Output_ptr(out); size_t const dstSize = transform->implDesc.dpt.transform_f(dst, dstCapacity, src, srcSize); - ZL_RET_R_IF_GT( - transform_executionFailure, + ZL_ERR_IF_GT( dstSize, dstCapacity, + transform_executionFailure, "transform %s failed", DT_getTransformName(transform)); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstSize)); return ZL_returnValue(1); } @@ -235,6 +248,8 @@ DTM_registerDPipeTransform( DTransforms_manager* dtm, const ZL_PipeDecoderDesc* dpt) { + ZL_RESULT_DECLARE_SCOPE(ZL_IDType, dtm->opCtx); + ZL_MIGraphDesc migd = { .CTid = dpt->CTid, .inputTypes = &kSerializedType, @@ -249,9 +264,7 @@ DTM_registerDPipeTransform( .type = dtr_pipe, }; - ZL_RET_T_IF_ERR( - ZL_IDType, - DTM_storeTransformName(dtm, &transform.implDesc.dpt.name)); + ZL_ERR_IF_ERR(DTM_storeTransformName(dtm, &transform.implDesc.dpt.name)); return DTM_registerDCustomTransform(dtm, &transform); } @@ -264,6 +277,7 @@ static ZL_Report splitTransformWrapper( ZL_Data const* ins[], size_t nbIns) { + ZL_RESULT_DECLARE_SCOPE_REPORT(dictx); size_t const nbInputStreams = transform->miGraphDesc.nbSOs; ZL_ASSERT_EQ(nbIns, nbInputStreams); (void)nbIns; @@ -271,10 +285,10 @@ static ZL_Report splitTransformWrapper( VECTOR(ZL_RBuffer) srcs = VECTOR_EMPTY( ZL_transformOutStreamsLimit(DI_getFrameFormatVersion(dictx))); - ZL_RET_R_IF_LT( - allocation, + ZL_ERR_IF_LT( VECTOR_RESERVE(srcs, nbInputStreams), nbInputStreams, + allocation, "splitTransformWrapper: Failed reserving vector"); for (size_t i = 0; i < nbInputStreams; ++i) { ZL_ASSERT_EQ(ZL_Data_type(ins[i]), ZL_Type_serial); @@ -291,7 +305,7 @@ static ZL_Report splitTransformWrapper( ZL_Output* const out = ZL_Decoder_create1OutStream(dictx, dstCapacity, 1); if (out == NULL) { VECTOR_DESTROY(srcs); - ZL_RET_R_ERR(allocation); + ZL_ERR(allocation); } ZL_WBuffer dst = { .start = ZL_Output_ptr(out), .capacity = dstCapacity }; size_t const dstSize = @@ -299,14 +313,14 @@ static ZL_Report splitTransformWrapper( VECTOR_DESTROY(srcs); - ZL_RET_R_IF_GT( - transform_executionFailure, + ZL_ERR_IF_GT( dstSize, dstCapacity, + transform_executionFailure, "transform %s failed", DT_getTransformName(transform)); - ZL_RET_R_IF_ERR(ZL_Output_commit(out, dstSize)); + ZL_ERR_IF_ERR(ZL_Output_commit(out, dstSize)); return ZL_returnValue(1); } @@ -316,22 +330,25 @@ DTM_registerDSplitTransform( DTransforms_manager* dtm, const ZL_SplitDecoderDesc* dst) { + ZL_RESULT_DECLARE_SCOPE(ZL_IDType, dtm->opCtx); + if (DTransformMap_findVal(&dtm->dtmap, dst->CTid) != NULL) { // Early return; transform already registered; avoid allocating new // space for it. return ZL_RESULT_WRAP_VALUE(ZL_IDType, dst->CTid); } - ZL_RESULT_OF(ZL_Type_p) - const outStreamTypes = DTM_setOutStreamTypes( - dtm, ZL_Type_serial, (unsigned)dst->nbInputStreams); - ZL_RET_T_IF_ERR(ZL_IDType, outStreamTypes); + ZL_TRY_LET_CONST( + ZL_Type_p, + outStreamTypes, + DTM_setOutStreamTypes( + dtm, ZL_Type_serial, (unsigned)dst->nbInputStreams)); ZL_MIGraphDesc migd = { .CTid = dst->CTid, .inputTypes = &kSerializedType, .nbInputs = 1, - .soTypes = ZL_RES_value(outStreamTypes), + .soTypes = outStreamTypes, .nbSOs = dst->nbInputStreams, }; DTransform transform = { @@ -341,9 +358,7 @@ DTM_registerDSplitTransform( .type = dtr_split, }; - ZL_RET_T_IF_ERR( - ZL_IDType, - DTM_storeTransformName(dtm, &transform.implDesc.dst.name)); + ZL_ERR_IF_ERR(DTM_storeTransformName(dtm, &transform.implDesc.dst.name)); return DTM_registerDCustomTransform(dtm, &transform); } @@ -366,34 +381,36 @@ DTM_registerDTypedTransform( DTransforms_manager* dtm, const ZL_TypedDecoderDesc* dtt) { + ZL_RESULT_DECLARE_SCOPE(ZL_IDType, dtm->opCtx); + if (DTransformMap_findVal(&dtm->dtmap, dtt->gd.CTid) != NULL) { // Early return; transform already registered; avoid allocating new // space for it. ZL_OpaquePtr_free(dtt->opaque); return ZL_RESULT_WRAP_VALUE(ZL_IDType, dtt->gd.CTid); } - ZL_RET_T_IF_ERR( - ZL_IDType, - ZL_OpaquePtrRegistry_register(&dtm->opaquePtrs, dtt->opaque)); + ZL_ERR_IF_ERR(ZL_OpaquePtrRegistry_register(&dtm->opaquePtrs, dtt->opaque)); ZL_MIGraphDesc migd = { .CTid = dtt->gd.CTid, }; // Transfer input type - ZL_RESULT_OF(ZL_Type_p) - streamTypes = - DTM_storeStreamTypes(dtm, ZL_STREAMTYPELIST(dtt->gd.inStreamType)); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - migd.inputTypes = ZL_RES_value(streamTypes); - migd.nbInputs = 1; + ZL_TRY_SET( + ZL_Type_p, + migd.inputTypes, + DTM_storeStreamTypes(dtm, ZL_STREAMTYPELIST(dtt->gd.inStreamType))); + migd.nbInputs = 1; // Transfer output types - streamTypes = DTM_storeStreamTypes( - dtm, dtt->gd.outStreamTypes, (unsigned)dtt->gd.nbOutStreams); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - migd.soTypes = ZL_RES_value(streamTypes); - migd.nbSOs = dtt->gd.nbOutStreams; + ZL_TRY_SET( + ZL_Type_p, + migd.soTypes, + DTM_storeStreamTypes( + dtm, + dtt->gd.outStreamTypes, + (unsigned)dtt->gd.nbOutStreams)); + migd.nbSOs = dtt->gd.nbOutStreams; DTransform transform = { .miGraphDesc = migd, .type = dtr_typed, @@ -401,9 +418,7 @@ DTM_registerDTypedTransform( .implDesc.dtt = *dtt, .opaque = dtt->opaque.ptr }; - ZL_RET_T_IF_ERR( - ZL_IDType, - DTM_storeTransformName(dtm, &transform.implDesc.dtt.name)); + ZL_ERR_IF_ERR(DTM_storeTransformName(dtm, &transform.implDesc.dtt.name)); return DTM_registerDCustomTransform(dtm, &transform); } @@ -420,7 +435,8 @@ ZL_Report DT_voTransformWrapper( dictx, ZL_codemodDatasAsInputs(ins), nbO1s, - ZL_codemodDatasAsInputs(ins) + nbO1s, + nbO1s ? ZL_codemodDatasAsInputs(ins) + nbO1s + : ZL_codemodDatasAsInputs(ins), nbIns - nbO1s); } @@ -429,14 +445,15 @@ DTM_registerDVOTransform( DTransforms_manager* dtm, const ZL_VODecoderDesc* dvotd) { + ZL_RESULT_DECLARE_SCOPE(ZL_IDType, dtm->opCtx); + if (DTransformMap_findVal(&dtm->dtmap, dvotd->gd.CTid) != NULL) { // Early return; transform already registered; avoid allocating new // space for it. ZL_OpaquePtr_free(dvotd->opaque); return ZL_RESULT_WRAP_VALUE(ZL_IDType, dvotd->gd.CTid); } - ZL_RET_T_IF_ERR( - ZL_IDType, + ZL_ERR_IF_ERR( ZL_OpaquePtrRegistry_register(&dtm->opaquePtrs, dvotd->opaque)); ZL_MIGraphDesc dmitd = { @@ -444,26 +461,30 @@ DTM_registerDVOTransform( }; // Transfer input type - ZL_RESULT_OF(ZL_Type_p) - streamTypes = DTM_storeStreamTypes( - dtm, ZL_STREAMTYPELIST(dvotd->gd.inStreamType)); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - dmitd.inputTypes = ZL_RES_value(streamTypes); - dmitd.nbInputs = 1; + ZL_TRY_SET( + ZL_Type_p, + dmitd.inputTypes, + DTM_storeStreamTypes( + dtm, ZL_STREAMTYPELIST(dvotd->gd.inStreamType))); + dmitd.nbInputs = 1; // Transfer singleton output types - streamTypes = DTM_storeStreamTypes( - dtm, dvotd->gd.singletonTypes, (unsigned)dvotd->gd.nbSingletons); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - dmitd.soTypes = ZL_RES_value(streamTypes); - dmitd.nbSOs = dvotd->gd.nbSingletons; + ZL_TRY_SET( + ZL_Type_p, + dmitd.soTypes, + DTM_storeStreamTypes( + dtm, + dvotd->gd.singletonTypes, + (unsigned)dvotd->gd.nbSingletons)); + dmitd.nbSOs = dvotd->gd.nbSingletons; // Transfer variable output types - streamTypes = DTM_storeStreamTypes( - dtm, dvotd->gd.voTypes, (unsigned)dvotd->gd.nbVOs); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - dmitd.voTypes = ZL_RES_value(streamTypes); - dmitd.nbVOs = dvotd->gd.nbVOs; + ZL_TRY_SET( + ZL_Type_p, + dmitd.voTypes, + DTM_storeStreamTypes( + dtm, dvotd->gd.voTypes, (unsigned)dvotd->gd.nbVOs)); + dmitd.nbVOs = dvotd->gd.nbVOs; DTransform transform = { .miGraphDesc = dmitd, .type = dtr_vo, @@ -471,9 +492,7 @@ DTM_registerDVOTransform( .implDesc.dvo = *dvotd, .opaque = dvotd->opaque.ptr }; - ZL_RET_T_IF_ERR( - ZL_IDType, - DTM_storeTransformName(dtm, &transform.implDesc.dvo.name)); + ZL_ERR_IF_ERR(DTM_storeTransformName(dtm, &transform.implDesc.dvo.name)); return DTM_registerDCustomTransform(dtm, &transform); } @@ -486,11 +505,12 @@ ZL_Report DT_miTransformWrapper( { size_t const nbO1s = transform->miGraphDesc.nbSOs; ZL_ASSERT(nbIns >= nbO1s); + ZL_Input const** inputs = ZL_codemodDatasAsInputs(ins); return transform->implDesc.dmi.transform_f( dictx, - ZL_codemodDatasAsInputs(ins), + inputs, nbO1s, - ZL_codemodDatasAsInputs(ins) + nbO1s, + nbO1s == 0 ? inputs : inputs + nbO1s, nbIns - nbO1s); } @@ -499,6 +519,8 @@ DTM_registerDMITransform( DTransforms_manager* dtm, const ZL_MIDecoderDesc* dmitd) { + ZL_RESULT_DECLARE_SCOPE(ZL_IDType, dtm->opCtx); + ZL_DLOG(BLOCK, "DTM_registerDMITransform ('%s')", STR_REPLACE_NULL(dmitd->name)); @@ -508,39 +530,39 @@ DTM_registerDMITransform( ZL_OpaquePtr_free(dmitd->opaque); return ZL_RESULT_WRAP_VALUE(ZL_IDType, dmitd->gd.CTid); } - ZL_RET_T_IF_ERR( - ZL_IDType, + ZL_ERR_IF_ERR( ZL_OpaquePtrRegistry_register(&dtm->opaquePtrs, dmitd->opaque)); ZL_MIGraphDesc dmitgd = dmitd->gd; // Check inputs - ZL_RET_T_IF_LT( - ZL_IDType, - invalidTransform, + ZL_ERR_IF_LT( dmitgd.nbInputs, 1, + invalidTransform, "Decoder Transform '%s' must declare at least one regenerated stream", STR_REPLACE_NULL(dmitd->name)); // Transfer input types - ZL_RESULT_OF(ZL_Type_p) - streamTypes = DTM_storeStreamTypes( - dtm, dmitd->gd.inputTypes, (unsigned)dmitd->gd.nbInputs); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - dmitgd.inputTypes = ZL_RES_value(streamTypes); + ZL_TRY_SET( + ZL_Type_p, + dmitgd.inputTypes, + DTM_storeStreamTypes( + dtm, dmitd->gd.inputTypes, (unsigned)dmitd->gd.nbInputs)); // Transfer singleton output types - streamTypes = DTM_storeStreamTypes( - dtm, dmitd->gd.soTypes, (unsigned)dmitd->gd.nbSOs); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - dmitgd.soTypes = ZL_RES_value(streamTypes); + ZL_TRY_SET( + ZL_Type_p, + dmitgd.soTypes, + DTM_storeStreamTypes( + dtm, dmitd->gd.soTypes, (unsigned)dmitd->gd.nbSOs)); // Transfer variable output types - streamTypes = DTM_storeStreamTypes( - dtm, dmitd->gd.voTypes, (unsigned)dmitd->gd.nbVOs); - ZL_RET_T_IF_ERR(ZL_IDType, streamTypes); - dmitgd.voTypes = ZL_RES_value(streamTypes); + ZL_TRY_SET( + ZL_Type_p, + dmitgd.voTypes, + DTM_storeStreamTypes( + dtm, dmitd->gd.voTypes, (unsigned)dmitd->gd.nbVOs)); DTransform transform = { .miGraphDesc = dmitgd, .type = dtr_mi, @@ -548,32 +570,32 @@ DTM_registerDMITransform( .implDesc.dmi = *dmitd, .opaque = dmitd->opaque.ptr }; - ZL_RET_T_IF_ERR( - ZL_IDType, - DTM_storeTransformName(dtm, &transform.implDesc.dmi.name)); + ZL_ERR_IF_ERR(DTM_storeTransformName(dtm, &transform.implDesc.dmi.name)); return DTM_registerDCustomTransform(dtm, &transform); } -static ZL_RESULT_OF(DTrPtr) - DTM_getStandardTransform(ZL_IDType transformID, unsigned formatVersion) +static ZL_RESULT_OF(DTrPtr) DTM_getStandardTransform( + ZL_OperationContext* opCtx, + ZL_IDType transformID, + unsigned formatVersion) { - ZL_RET_T_IF_GE( - DTrPtr, - logicError, + ZL_RESULT_DECLARE_SCOPE(DTrPtr, opCtx); + + ZL_ERR_IF_GE( transformID, ZL_StandardTransformID_end, + logicError, "standard transform ID supposed to be pre-validated"); StandardDTransform const* dtr = &SDecoders_array[transformID]; if (formatVersion < dtr->minFormatVersion || formatVersion > dtr->maxFormatVersion) { - ZL_RET_T_ERR( - DTrPtr, - formatVersion_unsupported, - "Transform is not supported in formatVersion %u - it is supported in versions [%u, %u]", - formatVersion, - dtr->minFormatVersion, - dtr->maxFormatVersion); + ZL_ERR(formatVersion_unsupported, + "Transform %u is not supported in formatVersion %u - it is supported in versions [%u, %u]", + transformID, + formatVersion, + dtr->minFormatVersion, + dtr->maxFormatVersion); } switch (dtr->dtr.type) { case dtr_typed: @@ -584,8 +606,7 @@ static ZL_RESULT_OF(DTrPtr) case dtr_split: default: ZL_ASSERT_FAIL("unsupported standard decoder type"); - ZL_RET_T_ERR( - DTrPtr, logicError, "unsupported standard decoder type"); + ZL_ERR(logicError, "unsupported standard decoder type"); } } @@ -595,9 +616,11 @@ DTM_getTransform( PublicTransformInfo trid, unsigned formatVersion) { + ZL_RESULT_DECLARE_SCOPE(DTrPtr, dtm->opCtx); + ZL_IDType const id = trid.trid; if (trid.trt == trt_standard) - return DTM_getStandardTransform(id, formatVersion); + return DTM_getStandardTransform(dtm->opCtx, id, formatVersion); // Now, this is a custom transform // TODO(terrelln): formatVersion isn't used for custom transforms. @@ -606,10 +629,9 @@ DTM_getTransform( ZL_ASSERT_NN(dtm); const DTransformMap_Entry* entry = DTransformMap_findVal(&dtm->dtmap, id); - ZL_RET_T_IF_NULL( - DTrPtr, - graph_invalid, + ZL_ERR_IF_NULL( entry, + graph_invalid, "Custom decoder transform %u not found!", (unsigned)id); return ZL_RESULT_WRAP_VALUE(DTrPtr, &entry->val); diff --git a/src/openzl/decompress/dtransforms.h b/src/openzl/decompress/dtransforms.h index 647076686..f7dee30ac 100644 --- a/src/openzl/decompress/dtransforms.h +++ b/src/openzl/decompress/dtransforms.h @@ -90,11 +90,15 @@ typedef struct { void* states[ZL_StandardTransformID_end]; /* state storage for Standard Transforms */ ZL_OpaquePtrRegistry opaquePtrs; + ZL_OperationContext* opCtx; } DTransforms_manager; // Constructors / destructors -ZL_Report DTM_init(DTransforms_manager* dtm, uint32_t maxNbTransforms); +ZL_Report DTM_init( + DTransforms_manager* dtm, + ZL_OperationContext* opCtx, + uint32_t maxNbTransforms); void DTM_destroy(DTransforms_manager* dtm); diff --git a/src/openzl/decompress/gdparams.c b/src/openzl/decompress/gdparams.c index c5bf05f16..ef7c0cdac 100644 --- a/src/openzl/decompress/gdparams.c +++ b/src/openzl/decompress/gdparams.c @@ -10,11 +10,13 @@ const GDParams GDParams_default = { .stickyParameters = 0, .checkCompressedChecksum = ZL_TernaryParam_enable, .checkContentChecksum = ZL_TernaryParam_enable, + .enableCodecFusion = ZL_TernaryParam_enable, }; ZL_Report GDParams_setParameter(GDParams* gdparams, ZL_DParam paramId, int value) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); ZL_ASSERT_NN(gdparams); switch (paramId) { case ZL_DParam_stickyParameters: @@ -26,8 +28,11 @@ GDParams_setParameter(GDParams* gdparams, ZL_DParam paramId, int value) case ZL_DParam_checkContentChecksum: gdparams->checkContentChecksum = (ZL_TernaryParam)value; break; + case ZL_DParam_enableCodecFusion: + gdparams->enableCodecFusion = (ZL_TernaryParam)value; + break; default: - ZL_RET_R_ERR(compressionParameter_invalid); + ZL_ERR(compressionParameter_invalid); } return ZL_returnSuccess(); } @@ -41,6 +46,7 @@ void GDParams_applyDefaults(GDParams* dst, const GDParams* defaults) // Note: stickyParameters aren't overridden by defaults SET_DEFAULT(dst, defaults, checkCompressedChecksum); SET_DEFAULT(dst, defaults, checkContentChecksum); + SET_DEFAULT(dst, defaults, enableCodecFusion); } #undef SET_DEFAULT @@ -56,13 +62,12 @@ int GDParams_getParameter(const GDParams* gdparams, ZL_DParam paramId) switch (paramId) { case ZL_DParam_stickyParameters: return gdparams->stickyParameters; - break; case ZL_DParam_checkCompressedChecksum: return (int)gdparams->checkCompressedChecksum; - break; case ZL_DParam_checkContentChecksum: return (int)gdparams->checkContentChecksum; - break; + case ZL_DParam_enableCodecFusion: + return (int)gdparams->enableCodecFusion; default: return 0; } diff --git a/src/openzl/decompress/gdparams.h b/src/openzl/decompress/gdparams.h index e480e6c0a..e235e83bf 100644 --- a/src/openzl/decompress/gdparams.h +++ b/src/openzl/decompress/gdparams.h @@ -18,6 +18,7 @@ typedef struct { int stickyParameters; ZL_TernaryParam checkCompressedChecksum; ZL_TernaryParam checkContentChecksum; + ZL_TernaryParam enableCodecFusion; } GDParams; // All defaults for Global parameters diff --git a/src/openzl/decompress/reflection.c b/src/openzl/decompress/reflection.c index 6c08d4cd2..cdc38349b 100644 --- a/src/openzl/decompress/reflection.c +++ b/src/openzl/decompress/reflection.c @@ -116,8 +116,9 @@ void ZL_ReflectionCtx_registerMIDecoder( static ZL_Report copyStream(ZL_ReflectionCtx* rctx, const ZL_Data** dstPtr, const ZL_Data* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(rctx->dctx); ZL_Data* dst = STREAM_createInArena(rctx->arena, ZL_Data_id(src)); - ZL_RET_R_IF_ERR(STREAM_copy(dst, src)); + ZL_ERR_IF_ERR(STREAM_copy(dst, src)); *dstPtr = dst; return ZL_returnSuccess(); } @@ -129,8 +130,9 @@ static ZL_Report fillStreamAndTransformInfo( ZL_ReflectionCtx* rctx, const char* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(rctx->dctx); DFH_Struct const* dfh = DCtx_getFrameHeader(rctx->dctx); - ZL_RET_R_IF_NULL(GENERIC, dfh); + ZL_ERR_IF_NULL(dfh, GENERIC); const size_t nbStreams = ZL_DCtx_getNumStreams(rctx->dctx); const size_t nbTransforms = dfh->nbDTransforms; @@ -143,7 +145,7 @@ static ZL_Report fillStreamAndTransformInfo( info->index = streamIdx; // Must copy out of the dctx, because the streams may reference the // source buffer. - ZL_RET_R_IF_ERR(copyStream( + ZL_ERR_IF_ERR(copyStream( rctx, &info->stream, ZL_DCtx_getConstStream(rctx->dctx, (ZL_IDType)streamIdx))); @@ -161,7 +163,8 @@ static ZL_Report fillStreamAndTransformInfo( // inputs = regenerated streams of decoder const DFH_NodeInfo* node = &VECTOR_AT(dfh->nodes, transformIdx); const size_t nbInputs = node->nbRegens; - ZL_TRY_LET_R( + ZL_TRY_LET( + size_t, nbOutputs, DCtx_getNbInputStreams(rctx->dctx, (ZL_IDType)transformIdx)); @@ -216,6 +219,7 @@ static ZL_Report fillExtraStreamInfo( ZL_ReflectionCtx* rctx, size_t nbInputStreams) { + ZL_RESULT_DECLARE_SCOPE_REPORT(rctx->dctx); const DFH_Struct* dfh = DCtx_getFrameHeader(rctx->dctx); const size_t nbStoredStreams = dfh->nbStoredStreams; @@ -256,8 +260,9 @@ static ZL_Report fillExtraStreamInfo( static ZL_Report fillFrameInfo(ZL_ReflectionCtx* rctx, const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(rctx->dctx); DFH_Struct const* dfh = DCtx_getFrameHeader(rctx->dctx); - ZL_TRY_LET_R(frameHeaderSize, ZL_getHeaderSize(src, srcSize)); + ZL_TRY_LET(size_t, frameHeaderSize, ZL_getHeaderSize(src, srcSize)); rctx->frameFormatVersion = dfh->formatVersion; rctx->frameHeaderSize = frameHeaderSize; rctx->totalTransformHeaderSize = dfh->totalTHSize; @@ -277,10 +282,11 @@ static ZL_Report ZL_ReflectionCtx_setCompressedFrame_impl( const void* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(rctx->dctx); // Create the output stream storage in our arena. // We reference these streams, so they must live for the lifetime of the // ZL_ReflectionCtx. - ZL_TRY_LET_R(nbOutputs, ZL_FrameInfo_getNumOutputs(fi)); + ZL_TRY_LET(size_t, nbOutputs, ZL_FrameInfo_getNumOutputs(fi)); ALLOC_ARENA_CALLOC_CHECKED( ZL_TypedBuffer*, outputs, nbOutputs, rctx->arena); for (size_t i = 0; i < nbOutputs; ++i) { @@ -290,12 +296,12 @@ static ZL_Report ZL_ReflectionCtx_setCompressedFrame_impl( // Run decompression DCTX_preserveStreams(rctx->dctx); - ZL_RET_R_IF_ERR(ZL_DCtx_decompressMultiTBuffer( + ZL_ERR_IF_ERR(ZL_DCtx_decompressMultiTBuffer( rctx->dctx, outputs, nbOutputs, src, srcSize)); - ZL_RET_R_IF_ERR(fillFrameInfo(rctx, src, srcSize)); - ZL_RET_R_IF_ERR(fillStreamAndTransformInfo(rctx, src)); - ZL_RET_R_IF_ERR(fillExtraStreamInfo(rctx, nbOutputs)); + ZL_ERR_IF_ERR(fillFrameInfo(rctx, src, srcSize)); + ZL_ERR_IF_ERR(fillStreamAndTransformInfo(rctx, src)); + ZL_ERR_IF_ERR(fillExtraStreamInfo(rctx, nbOutputs)); return ZL_returnSuccess(); } @@ -305,13 +311,14 @@ ZL_Report ZL_ReflectionCtx_setCompressedFrame( void const* src, size_t srcSize) { + ZL_RESULT_DECLARE_SCOPE_REPORT(rctx->dctx); ZL_REQUIRE( !rctx->inputHasBeenSet, "Each reflection ctx can only be used for one input"); rctx->inputHasBeenSet = true; ZL_FrameInfo* fi = ZL_FrameInfo_create(src, srcSize); - ZL_RET_R_IF_NULL(allocation, fi); + ZL_ERR_IF_NULL(fi, allocation); ZL_Report report = ZL_ReflectionCtx_setCompressedFrame_impl(rctx, fi, src, srcSize); ZL_FrameInfo_free(fi); diff --git a/src/openzl/dict/bundle.c b/src/openzl/dict/bundle.c new file mode 100644 index 000000000..9831dcfb0 --- /dev/null +++ b/src/openzl/dict/bundle.c @@ -0,0 +1,273 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/dict/bundle.h" + +#include +#include + +#include "openzl/dict/dict.h" +#include "openzl/dict/dict_constants.h" +#include "openzl/fse/common/mem.h" +#include "openzl/zl_opaque_types.h" +#include "openzl/zl_unique_id.h" + +static size_t bundleInfoPackedSize(size_t numDicts) +{ + return ZL_BUNDLE_HEADER_SIZE + numDicts * ZL_UNIQUE_ID_SIZE; +} + +/* ================================================================ + * ZL_BundleInfo_parse + * ================================================================ */ + +ZL_RESULT_OF(ZL_BundleInfo) +ZL_BundleInfo_parse(const void* bundleContent, size_t bundleSize) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_BundleInfo, NULL); + ZL_ERR_IF_NULL( + bundleContent, dict_corruption, "bundle buffer must not be null"); + ZL_ERR_IF_LT( + bundleSize, + ZL_BUNDLE_HEADER_SIZE, + dict_corruption, + "bundle buffer too small"); + + const unsigned char* p = (const unsigned char*)bundleContent; + + U32 const magic = MEM_readLE32(p); + ZL_ERR_IF_NE( + magic, + ZL_BUNDLEINFO_MAGIC, + dict_corruption, + "invalid bundle magic"); + p += 4; + + ZL_UniqueID bundleUID; + ZL_UniqueID_read(&bundleUID, p); + p += ZL_UNIQUE_ID_SIZE; + + unsigned char const isFatBundle = *p; + p += 1; + + U32 const numDicts = MEM_readLE32(p); + p += 4; + + ZL_ERR_IF_GT( + numDicts, + ZL_MAX_DICTS_PER_BUNDLE, + dict_corruption, + "numDicts too large"); + + size_t const dictArraySize = (size_t)numDicts * ZL_UNIQUE_ID_SIZE; + ZL_ERR_IF_LT( + bundleSize, + ZL_BUNDLE_HEADER_SIZE + dictArraySize, + dict_corruption, + "bundle buffer truncated"); + + ZL_BundleInfo result; + memset(&result, 0, sizeof(result)); + result.bundleID.id = bundleUID; + result.isFatBundle = (bool)isFatBundle; + result.numDicts = numDicts; + result.dictIDs = (numDicts > 0) ? (const ZL_DictID*)p : NULL; + result.packedSize = ZL_BUNDLE_HEADER_SIZE + dictArraySize; + + return ZL_RESULT_WRAP_VALUE(ZL_BundleInfo, result); +} + +/* ================================================================ + * BundleInfo_pack + * ================================================================ */ + +ZL_Report +BundleInfo_pack(void* dst, size_t dstCapacity, const ZL_BundleInfo* info) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GT(info->numDicts, ZL_MAX_DICTS_PER_BUNDLE, srcSize_tooLarge); + + size_t const packedSize = bundleInfoPackedSize(info->numDicts); + + ZL_ERR_IF_LT(dstCapacity, packedSize, dstCapacity_tooSmall); + + unsigned char* p = (unsigned char*)dst; + + MEM_writeLE32(p, ZL_BUNDLEINFO_MAGIC); + p += 4; + + ZL_UniqueID_write(p, &info->bundleID.id); + p += ZL_UNIQUE_ID_SIZE; + + *p = (unsigned char)info->isFatBundle; + p += 1; + + MEM_writeLE32(p, (U32)info->numDicts); + p += 4; + + for (size_t i = 0; i < info->numDicts; i++) { + ZL_UniqueID_write(p, &info->dictIDs[i].id); + p += ZL_UNIQUE_ID_SIZE; + } + + return ZL_returnValue(packedSize); +} + +/* ================================================================ + * ZL_DictBundle_packFatBundle + * ================================================================ */ + +ZL_Report ZL_DictBundle_packFatBundle( + void* dst, + size_t dstCapacity, + const void** dicts, + size_t* dictSizes, + size_t numDicts) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GT(numDicts, ZL_MAX_DICTS_PER_BUNDLE, srcSize_tooLarge); + + size_t totalDictSize = 0; + for (size_t i = 0; i < numDicts; i++) { + size_t const prev = totalDictSize; + totalDictSize += dictSizes[i]; + ZL_ERR_IF_LT(totalDictSize, prev, srcSize_tooLarge); + } + + size_t const infoSize = bundleInfoPackedSize(numDicts); + size_t const totalSize = infoSize + totalDictSize; + // overflow check + ZL_ERR_IF_LT(totalSize, totalDictSize, srcSize_tooLarge); + ZL_ERR_IF_LT(totalSize, infoSize, srcSize_tooLarge); + + ZL_ERR_IF_LT(dstCapacity, totalSize, dstCapacity_tooSmall); + + unsigned char* p = (unsigned char*)dst; + + /* Write BundleInfo header with a zeroed bundleID placeholder */ + MEM_writeLE32(p, ZL_BUNDLEINFO_MAGIC); + p += 4; + + unsigned char* const bundleIDSlot = p; + memset(p, 0, ZL_UNIQUE_ID_SIZE); + p += ZL_UNIQUE_ID_SIZE; + + *p = 1; /* isFatBundle = true */ + p += 1; + + MEM_writeLE32(p, (U32)numDicts); + p += 4; + + /* Reach into each packed dict to fetch the dictID */ + for (size_t i = 0; i < numDicts; i++) { + ZL_DictID dictID = Dict_extractID(dicts[i], dictSizes[i]); + ZL_UniqueID_write(p, &dictID.id); + p += ZL_UNIQUE_ID_SIZE; + } + + /* Generate bundleID as SHA256 of the dictID array */ + unsigned char* const dictIDArray = bundleIDSlot + ZL_UNIQUE_ID_SIZE + 1 + 4; + ZL_UniqueID const bundleHash = ZL_UniqueID_computeSHA256( + dictIDArray, numDicts * ZL_UNIQUE_ID_SIZE); + ZL_UniqueID_write(bundleIDSlot, &bundleHash); + + /* Append each packed dict blob */ + for (size_t i = 0; i < numDicts; i++) { + memcpy(p, dicts[i], dictSizes[i]); + p += dictSizes[i]; + } + + return ZL_returnValue(totalSize); +} + +/* ================================================================ + * ZL_DictBundle_parseFatBundle + * ================================================================ */ + +ZL_RESULT_OF(ZL_DictBundleConstPtr) +ZL_DictBundle_parseFatBundle( + const void* bundleContent, + size_t bundleSize, + Arena* allocator) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_DictBundleConstPtr, NULL); + /* Allocate the bundle struct */ + ZL_DictBundle* bundle = (ZL_DictBundle*)ALLOC_Arena_malloc( + allocator, sizeof(ZL_DictBundle)); + ZL_ERR_IF_NULL(bundle, allocation); + + ZL_RESULT_OF(ZL_BundleInfo) + infoResult = ZL_BundleInfo_parse(bundleContent, bundleSize); + ZL_ERR_IF_ERR(infoResult); + bundle->info = ZL_RES_value(infoResult); + if (bundle->info.numDicts != 0) { + ZL_DictID* dictIDs = (ZL_DictID*)ALLOC_Arena_malloc( + allocator, bundle->info.numDicts * sizeof(ZL_DictID)); + ZL_ERR_IF_NULL(dictIDs, allocation); + memcpy(dictIDs, + bundle->info.dictIDs, + bundle->info.numDicts * sizeof(ZL_DictID)); + bundle->info.dictIDs = dictIDs; + } + + ZL_ERR_IF_NE( + (int)bundle->info.isFatBundle, + 1, + dict_corruption, + "expected isFatBundle=1 for fat bundle"); + + /* Allocate the dicts pointer array */ + if (bundle->info.numDicts > 0) { + bundle->dicts = (const ZL_Dict**)ALLOC_Arena_malloc( + allocator, bundle->info.numDicts * sizeof(const ZL_Dict*)); + ZL_ERR_IF_NULL( + bundle->dicts, + allocation, + "failed to allocate dicts array for %zu dicts", + bundle->info.numDicts); + } else { + bundle->dicts = NULL; + } + + size_t totalConsumed = bundle->info.packedSize; + size_t remaining = bundleSize - totalConsumed; + const unsigned char* p = + (const unsigned char*)bundleContent + totalConsumed; + + for (size_t i = 0; i < bundle->info.numDicts; i++) { + ZL_RESULT_OF(ZL_ParsedDict) dictResult = ZL_Dict_parse(p, remaining); + ZL_ERR_IF_ERR(dictResult); + + ZL_ParsedDict const parsed = ZL_RES_value(dictResult); + + /* Validate that this dict's ID matches the declared ID in the info */ + ZL_ERR_IF_NOT( + ZL_UniqueID_eq(&parsed.dictID.id, &bundle->info.dictIDs[i].id), + dict_corruption, + "fat bundle dict[%zu] ID does not match declared dictID", + i); + + /* Allocate and populate a ZL_Dict from the parsed wire data */ + ZL_Dict* dict = + (ZL_Dict*)ALLOC_Arena_calloc(allocator, sizeof(ZL_Dict)); + ZL_ERR_IF_NULL(dict, allocation, "failed to allocate ZL_Dict[%zu]", i); + dict->dictID = parsed.dictID; + dict->materializingCodec = parsed.materializingCodec; + dict->isCustomCodec = parsed.isCustomCodec; + dict->packedSize = parsed.packedSize; + + size_t allocSize = (parsed.contentSize == 0) ? 1 : parsed.contentSize; + void* dictObj = ALLOC_Arena_malloc(allocator, allocSize); + ZL_ERR_IF_NULL(dictObj, allocation); + memcpy(dictObj, parsed.dictContent, parsed.contentSize); + dict->dictObj = dictObj; // TODO: materialize + bundle->dicts[i] = dict; + + size_t const dictWireSize = parsed.packedSize; + p += dictWireSize; + remaining -= dictWireSize; + totalConsumed += dictWireSize; + } + bundle->packedSize = totalConsumed; + + return ZL_RESULT_WRAP_VALUE(ZL_DictBundleConstPtr, bundle); +} diff --git a/src/openzl/dict/bundle.h b/src/openzl/dict/bundle.h new file mode 100644 index 000000000..262c94d9c --- /dev/null +++ b/src/openzl/dict/bundle.h @@ -0,0 +1,76 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_DICT_BUNDLE_H +#define OPENZL_DICT_BUNDLE_H + +#include "openzl/common/allocation.h" +#include "openzl/zl_dict.h" +#include "openzl/zl_errors.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +// ============================================================================ +// ZL_BundleInfo - Wire format parsing/packing +// ============================================================================ + +/** + * Packed wire format for a serialized BundleInfo. + * + * offset size field + * ------ ----- ------------------------------------------------ + * 0 4 magic – 32-bit LE, must be 0x4942CCDA + * 4 32 bundleID – 256-bit LE ZL_DictBundleID + * 36 1 isFatBundle - 0 for standalone bundle info, 1 if the parser + * should additionally expect to find the + * constituent dicts attached to the info + * 37 4 numDicts – 32-bit LE number of dictionaries + * 41 N*32 dictIDs – array of N ZL_DictID (each 256-bit LE) + * + * Total packed size = 41 + numDicts * 32 + * + * A "fat bundle" consists of a packed BundleInfo followed by a + * concatenation of all constituent packed dicts. + */ +ZL_Report +BundleInfo_pack(void* dst, size_t dstCapacity, const ZL_BundleInfo* info); + +// ============================================================================ +// ZL_DictBundle - Packing and parsing +// ============================================================================ + +/** + * Takes an array of pre-packed packed dictionary content (generated by + * training) and packs it into a single "fat" bundle blob containing the + * ZL_BundleInfo, followed by a concatenation of all the packed dicts. + * + * NOTE: the corresponding unpacking function is + * ZL_FatBundleDictLoader_loadFatBundle(). + * + * @pre @p dicts are well-formed packed dicts generated using ZL_Dict_pack(). + */ +ZL_Report ZL_DictBundle_packFatBundle( + void* dst, + size_t dstCapacity, + const void** dicts, + size_t* dictSizes, + size_t numDicts); + +/** + * Parses a fat bundle generated by ZL_DictBundle_packFatBundle(). + * @param allocator an arena to use for bundle/dict creation. + * @return a dict bundle, a structure containing pointers to the arena-allocated + * info and dicts. The memory for the bundle is managed by the arena. + */ +ZL_RESULT_OF(ZL_DictBundleConstPtr) +ZL_DictBundle_parseFatBundle( + const void* bundleContent, + size_t bundleSize, + Arena* allocator); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_DICT_BUNDLE_H diff --git a/src/openzl/dict/dict.c b/src/openzl/dict/dict.c new file mode 100644 index 000000000..a6f4ce929 --- /dev/null +++ b/src/openzl/dict/dict.c @@ -0,0 +1,112 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/dict/dict.h" + +#include +#include + +#include "openzl/common/assertion.h" +#include "openzl/dict/dict_constants.h" +#include "openzl/fse/common/mem.h" +#include "openzl/zl_unique_id.h" + +ZL_DictID Dict_extractID(const void* dictBuffer, size_t dictSize) +{ + ZL_ASSERT(dictSize >= ZL_DICT_HEADER_SIZE); + + ZL_DictID dictID; + memcpy(dictID.id.bytes, (const unsigned char*)dictBuffer + 4, 32); + return dictID; +} + +ZL_RESULT_OF(ZL_ParsedDict) +ZL_Dict_parse(const void* dictBuffer, size_t dictSize) +{ + ZL_RESULT_DECLARE_SCOPE(ZL_ParsedDict, NULL); + ZL_ERR_IF_NULL(dictBuffer, dict_corruption, "dict buffer must not be null"); + ZL_ERR_IF_LT( + dictSize, + ZL_DICT_HEADER_SIZE, + dict_corruption, + "dict buffer too small"); + + const unsigned char* p = (const unsigned char*)dictBuffer; + + U32 const magic = MEM_readLE32(p); + ZL_ERR_IF_NE(magic, ZL_DICT_MAGIC, dict_corruption, "invalid dict magic"); + p += 4; + + ZL_ParsedDict result; + memset(&result, 0, sizeof(result)); + + memcpy(result.dictID.id.bytes, p, 32); + p += 32; + + result.materializingCodec = (ZL_IDType)MEM_readLE32(p); + p += 4; + + result.isCustomCodec = (*p != 0); + p += 1; + + U32 const contentSize = MEM_readLE32(p); + p += 4; + + ZL_ERR_IF_LT( + dictSize, + ZL_DICT_HEADER_SIZE + (size_t)contentSize, + dict_corruption, + "dict buffer truncated"); + + result.contentSize = contentSize; + result.packedSize = ZL_DICT_HEADER_SIZE + (size_t)contentSize; + result.dictContent = (const void*)p; + result.contentHash = ZL_UniqueID_computeSHA256(p, contentSize); + + return ZL_RESULT_WRAP_VALUE(ZL_ParsedDict, result); +} + +ZL_Report Dict_pack( + void* dst, + size_t dstCapacity, + ZL_DictID dictID, + ZL_IDType materializingCodec, + bool isCustomCodec, + const void* dictContent, + size_t contentSize) +{ + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); + ZL_ERR_IF_GT(contentSize, UINT32_MAX, srcSize_tooLarge); + + size_t const packedSize = ZL_DICT_HEADER_SIZE + contentSize; + + ZL_ERR_IF_LT(dstCapacity, packedSize, dstCapacity_tooSmall); + + if (!ZL_UniqueID_isValid(&dictID.id)) { + ZL_UniqueID const hash = + ZL_UniqueID_computeSHA256(dictContent, contentSize); + memcpy(&dictID.id, &hash, sizeof(dictID.id)); + } + + unsigned char* p = (unsigned char*)dst; + + MEM_writeLE32(p, ZL_DICT_MAGIC); + p += 4; + + memcpy(p, dictID.id.bytes, 32); + p += 32; + + MEM_writeLE32(p, (U32)materializingCodec); + p += 4; + + *p = (unsigned char)isCustomCodec; + p += 1; + + MEM_writeLE32(p, (U32)contentSize); + p += 4; + + if (contentSize > 0) { + memcpy(p, dictContent, contentSize); + } + + return ZL_returnValue(packedSize); +} diff --git a/src/openzl/dict/dict.h b/src/openzl/dict/dict.h new file mode 100644 index 000000000..c40bd89e7 --- /dev/null +++ b/src/openzl/dict/dict.h @@ -0,0 +1,58 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_DICT_DICT_H +#define OPENZL_DICT_DICT_H + +#include "openzl/zl_dict.h" +#include "openzl/zl_errors.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Packed wire format for a serialized dictionary. + * + * offset size field + * ------ ----- ------------------------------------------------ + * 0 4 magic – 32-bit LE, must be 0x4944CCDAU + * 4 32 id – 256-bit LE ZL_DictID + * 36 4 codec – 32-bit LE materializing codec ID + * 40 1 isCustomCodec – 0 for standard, 1 for custom + * 41 4 dictSize – 32-bit LE length of content in bytes + * 45 N content – dictSize bytes of raw dictionary content + * + * Total packed size = 45 + dictSize + */ + +/** + * Packs dictionary content into a provided buffer. + * @param dst the buffer to pack the dictionary into. Must be at least + * 45 + @p contentSize bytes. + * @param dstCapacity the size of the @p dst buffer in bytes. + * @param dictID the dictionary ID. If ZL_DICT_ID_NULL is passed, the dictionary + * ID will be automatically generated as the SHA256 of the dictionary content. + * + * @return an error if the buffer is too small. Otherwise, return the size of + * the packed dictionary. + */ +ZL_Report Dict_pack( + void* dst, + size_t dstCapacity, + ZL_DictID dictID, + ZL_IDType materializingCodec, + bool isCustomCodec, + const void* dictContent, + size_t contentSize); + +/** + * Extracts the ID from a packed dict. Assumes the buffer is a valid packed dict + * and does no error checking. + */ +ZL_DictID Dict_extractID(const void* dictBuffer, size_t dictSize); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_DICT_DICT_H diff --git a/src/openzl/dict/dict_constants.h b/src/openzl/dict/dict_constants.h new file mode 100644 index 000000000..cfaa098c7 --- /dev/null +++ b/src/openzl/dict/dict_constants.h @@ -0,0 +1,29 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_DICT_DICT_CONSTANTS_H +#define OPENZL_DICT_DICT_CONSTANTS_H + +#include /* size_t */ + +/** + * Shared wire-format constants for dict and bundle serialization. + * + * These values define the on-disk/on-wire layout described in dict.h + * and bundle.h and must stay in sync with those format comments. + */ + +#define ZL_DICT_MAGIC 0x4944CCDAU /* Little-endian "ÚÌDI" */ +#define ZL_DICT_HEADER_SIZE \ + (4 + 32 + 4 + 1 + 4) /* magic + id + codec + codecType + dictSize = 45 */ + +#define ZL_BUNDLEINFO_MAGIC 0x4942CCDAU /* Little-endian "ÚÌBI" */ +#define ZL_BUNDLE_HEADER_SIZE \ + (4 + 32 + 1 + 4) /* magic + bundleID + isFatBundle + numDicts = 41 */ + +#define ZL_UNIQUE_ID_SIZE 32 /* sizeof(ZL_UniqueID.bytes) */ + +#define ZL_MAX_DICTS_PER_BUNDLE 0xFFFF /* 2^16 - 1 */ + +#define ZL_DICT_INDEX_NONE (SIZE_MAX) /* no dict associated */ + +#endif /* OPENZL_DICT_DICT_CONSTANTS_H */ diff --git a/src/openzl/dict/materializer_ctx.c b/src/openzl/dict/materializer_ctx.c new file mode 100644 index 000000000..2b7a6cf78 --- /dev/null +++ b/src/openzl/dict/materializer_ctx.c @@ -0,0 +1,48 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include "openzl/dict/materializer_ctx.h" + +#include "openzl/common/allocation.h" +#include "openzl/zl_materializer.h" +#include "openzl/zl_unique_id.h" + +ZL_CONST_FN +ZL_OperationContext* ZL_Materializer_getOperationContext(ZL_Materializer* mat) +{ + if (mat == NULL) { + return NULL; + } + return mat->opCtx; +} + +void* ZL_Materializer_allocate(ZL_Materializer* mat, size_t size) +{ + if (mat == NULL || mat->persistentArena == NULL) { + return NULL; + } + return ALLOC_Arena_malloc(mat->persistentArena, size); +} + +void* ZL_Materializer_getScratchSpace(ZL_Materializer* mat, size_t size) +{ + if (mat == NULL || mat->scratchArena == NULL) { + return NULL; + } + return ALLOC_Arena_malloc(mat->scratchArena, size); +} + +void ZL_NOOP_DEMATERIALIZE(ZL_Materializer* matCtx, void* materialized) + ZL_NOEXCEPT_FUNC_PTR +{ + (void)matCtx; + (void)materialized; + return; +} + +bool ZL_MParamID_hasValue(const ZL_MParamID* id) +{ + if (id == NULL) { + return false; + } + return ZL_UniqueID_isValid(&id->id); +} diff --git a/src/openzl/dict/materializer_ctx.h b/src/openzl/dict/materializer_ctx.h new file mode 100644 index 000000000..be1c60f16 --- /dev/null +++ b/src/openzl/dict/materializer_ctx.h @@ -0,0 +1,29 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#ifndef OPENZL_DICT_MATERIALIZER_CTX_H +#define OPENZL_DICT_MATERIALIZER_CTX_H + +#include "openzl/common/allocation.h" // Arena +#include "openzl/detail/zl_error_context.h" // ZL_OperationContext + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Concrete definition of the ZL_Materializer context struct. + * Forward-declared in zl_opaque_types.h as `struct ZL_Materializer_s`. + * Both :dict and :compress need visibility into this layout. + */ +struct ZL_Materializer_s { + Arena* persistentArena; + Arena* scratchArena; + const void* opaquePtr; + ZL_OperationContext* opCtx; +} /* typedef'ed to ZL_Materializer in zl_opaque_types.h */; + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OPENZL_DICT_MATERIALIZER_CTX_H diff --git a/src/openzl/fse/decompress/huf_decompress.c b/src/openzl/fse/decompress/huf_decompress.c index ac34af44d..101671fa7 100644 --- a/src/openzl/fse/decompress/huf_decompress.c +++ b/src/openzl/fse/decompress/huf_decompress.c @@ -570,7 +570,6 @@ HUF_decompress4X1_usingDTable_internal_body( { const BYTE* const istart = (const BYTE*) cSrc; BYTE* const ostart = (BYTE*) dst; BYTE* const oend = ostart + dstSize; - BYTE* const olimit = oend - 3; const void* const dtPtr = DTable + 1; const HUF_DEltX1* const dt = (const HUF_DEltX1*)dtPtr; @@ -608,6 +607,7 @@ HUF_decompress4X1_usingDTable_internal_body( /* up to 16 symbols per loop (4 symbols per stream) in 64-bit mode */ if ((size_t)(oend - op4) >= sizeof(size_t)) { + BYTE* const olimit = oend - 3; for ( ; (endSignal) & (op4 < olimit) ; ) { HUF_DECODE_SYMBOLX1_2(op1, &bitD1); HUF_DECODE_SYMBOLX1_2(op2, &bitD2); @@ -1273,7 +1273,6 @@ HUF_decompress4X2_usingDTable_internal_body( { const BYTE* const istart = (const BYTE*) cSrc; BYTE* const ostart = (BYTE*) dst; BYTE* const oend = ostart + dstSize; - BYTE* const olimit = oend - (sizeof(size_t)-1); const void* const dtPtr = DTable+1; const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr; @@ -1311,6 +1310,7 @@ HUF_decompress4X2_usingDTable_internal_body( /* 16-32 symbols per loop (4-8 symbols per stream) */ if ((size_t)(oend - op4) >= sizeof(size_t)) { + BYTE* const olimit = oend - (sizeof(size_t)-1); for ( ; (endSignal) & (op4 < olimit); ) { #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) HUF_DECODE_SYMBOLX2_2(op1, &bitD1); diff --git a/src/openzl/shared/a1cbor.c b/src/openzl/shared/a1cbor.c index 8f0745aff..ebcd03c39 100644 --- a/src/openzl/shared/a1cbor.c +++ b/src/openzl/shared/a1cbor.c @@ -3,10 +3,11 @@ #include "./a1cbor.h" #include -#include #include #include +#include "./utils.h" + //////////////////////////////////////// // Constants //////////////////////////////////////// @@ -154,7 +155,7 @@ const char A1C_kBase64Map[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; -static size_t A1C_base64EncodedSize(size_t srcSize) +static ZL_MAYBE_UNUSED_FUNCTION size_t A1C_base64EncodedSize(size_t srcSize) { size_t encodedSize = (srcSize / 3) * 4; if (srcSize % 3 != 0) { diff --git a/src/openzl/shared/a1cbor.h b/src/openzl/shared/a1cbor.h index c149ed300..10ac978f1 100644 --- a/src/openzl/shared/a1cbor.h +++ b/src/openzl/shared/a1cbor.h @@ -220,7 +220,7 @@ void A1C_LimitedArena_reset(A1C_LimitedArena* limitedArena); // Decoder //////////////////////////////////////// -#define A1C_MAX_DEPTH_DEFAULT 32 +#define A1C_MAX_DEPTH_DEFAULT 128 typedef struct { /** diff --git a/src/openzl/shared/bits.h b/src/openzl/shared/bits.h index f5d5786f0..b459be56c 100644 --- a/src/openzl/shared/bits.h +++ b/src/openzl/shared/bits.h @@ -12,6 +12,10 @@ #include "openzl/common/debug.h" #include "openzl/shared/portability.h" +#if ZL_HAS_BMI2 +# include +#endif + ZL_BEGIN_C_DECLS ZL_INLINE bool ZL_32bits(void) @@ -482,6 +486,92 @@ ZL_INLINE bool ZL_convertIntToDouble(ZL_IEEEDouble* dbl, int64_t value) #endif +// --------------------------------------------------------------------------- +// bitDeposit: scatter contiguous source bits into positions given by mask +// (PDEP) +// --------------------------------------------------------------------------- + +ZL_INLINE uint64_t ZL_bitDeposit64_fallback(uint64_t src, uint64_t mask) +{ + uint64_t result = 0; + uint64_t srcBit = 1; + while (mask != 0) { + uint64_t const lowestBit = mask & (~mask + 1); + if (src & srcBit) { + result |= lowestBit; + } + mask &= ~lowestBit; + srcBit <<= 1; + } + return result; +} + +ZL_INLINE uint64_t ZL_bitDeposit64(uint64_t src, uint64_t mask) +{ +#if ZL_HAS_BMI2 + return _pdep_u64(src, mask); +#else + return ZL_bitDeposit64_fallback(src, mask); +#endif +} + +ZL_INLINE uint32_t ZL_bitDeposit32_fallback(uint32_t src, uint32_t mask) +{ + return (uint32_t)ZL_bitDeposit64_fallback((uint64_t)src, (uint64_t)mask); +} + +ZL_INLINE uint32_t ZL_bitDeposit32(uint32_t src, uint32_t mask) +{ +#if ZL_HAS_BMI2 + return _pdep_u32(src, mask); +#else + return ZL_bitDeposit32_fallback(src, mask); +#endif +} + +// --------------------------------------------------------------------------- +// bitExtract: collect bits from positions given by mask into contiguous result +// (PEXT) +// --------------------------------------------------------------------------- + +ZL_INLINE uint64_t ZL_bitExtract64_fallback(uint64_t src, uint64_t mask) +{ + uint64_t result = 0; + uint64_t dstBit = 1; + while (mask != 0) { + uint64_t const lowestBit = mask & (~mask + 1); + if (src & lowestBit) { + result |= dstBit; + } + mask &= ~lowestBit; + dstBit <<= 1; + } + return result; +} + +ZL_INLINE uint64_t ZL_bitExtract64(uint64_t src, uint64_t mask) +{ +#if ZL_HAS_BMI2 + return _pext_u64(src, mask); +#else + return ZL_bitExtract64_fallback(src, mask); +#endif +} + +ZL_INLINE uint32_t ZL_bitExtract32_fallback(uint32_t src, uint32_t mask) +{ + return (uint32_t)ZL_bitExtract64_fallback((uint64_t)src, (uint64_t)mask); +} + +ZL_INLINE uint32_t ZL_bitExtract32(uint32_t src, uint32_t mask) +{ +#if ZL_HAS_BMI2 + return _pext_u32(src, mask); +#else + return ZL_bitExtract32_fallback(src, mask); +#endif +} + ZL_END_C_DECLS #endif // ZSTRONG_COMMON_BITS_H diff --git a/src/openzl/shared/clustering_common.c b/src/openzl/shared/clustering_common.c index 3f81c7325..6aca4e7e3 100644 --- a/src/openzl/shared/clustering_common.c +++ b/src/openzl/shared/clustering_common.c @@ -6,16 +6,17 @@ ZL_Report ZL_ContextClustering_decode( ZL_ContextClustering* clustering, ZL_RC* src) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); //> Read the max symbol value if (ZL_RC_avail(src) < 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } size_t const maxSymbol = ZL_RC_pop(src); clustering->maxSymbol = maxSymbol; //> Read the contextToCluster map if (ZL_RC_avail(src) < maxSymbol + 1) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } memcpy(clustering->contextToCluster, ZL_RC_ptr(src), maxSymbol + 1); ZL_RC_advance(src, maxSymbol + 1); diff --git a/src/openzl/shared/clustering_compress.c b/src/openzl/shared/clustering_compress.c index 6e430d5df..715af99d2 100644 --- a/src/openzl/shared/clustering_compress.c +++ b/src/openzl/shared/clustering_compress.c @@ -12,9 +12,10 @@ ZL_Report ZL_ContextClustering_encode( ZL_WC* dst, ZL_ContextClustering const* clustering) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); size_t const size = 1 + clustering->maxSymbol + 1; if (ZL_WC_avail(dst) < size) { - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } //> Write max symbol value @@ -37,6 +38,7 @@ ZL_Report ZL_cluster( size_t maxClusters, ZL_ClusteringMode mode) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); switch (mode) { case ZL_ClusteringMode_identity: ZL_ContextClustering_identity(clustering, context); @@ -50,10 +52,10 @@ ZL_Report ZL_cluster( clustering, context, maxContext, maxClusters); break; default: - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); } if (clustering->numClusters > maxClusters) - ZL_RET_R_ERR(GENERIC); + ZL_ERR(GENERIC); return ZL_returnSuccess(); } diff --git a/src/openzl/shared/data_stats.c b/src/openzl/shared/data_stats.c index 063ee5a1a..26148bf08 100644 --- a/src/openzl/shared/data_stats.c +++ b/src/openzl/shared/data_stats.c @@ -2,7 +2,6 @@ #include -#include "openzl/common/assertion.h" #include "openzl/shared/bits.h" #include "openzl/shared/data_stats.h" #include "openzl/shared/histogram.h" @@ -280,9 +279,10 @@ size_t DataStatsU8_getHuffmanSize(DataStatsU8* stats) size_t DataStatsU8_getDeltaHuffmanSize(DataStatsU8* stats) { - RETURN_OR_SET_LAZY(stats, - deltaHuffmanSize, - DataStatsU8_estimateHuffmanSize(stats, true);); + RETURN_OR_SET_LAZY( + stats, + deltaHuffmanSize, + DataStatsU8_estimateHuffmanSize(stats, true);); } size_t DataStatsU8_estimateHuffmanSizeFast(DataStatsU8* stats, bool delta) diff --git a/src/openzl/shared/estimate.c b/src/openzl/shared/estimate.c index 0d711fb3b..7cb8c0e65 100644 --- a/src/openzl/shared/estimate.c +++ b/src/openzl/shared/estimate.c @@ -8,7 +8,6 @@ #include #include "openzl/common/assertion.h" -#include "openzl/common/debug.h" #include "openzl/shared/bits.h" #include "openzl/shared/data_stats.h" #include "openzl/shared/hash.h" diff --git a/src/openzl/shared/numeric_operations.c b/src/openzl/shared/numeric_operations.c index e66430fc1..c38356c58 100644 --- a/src/openzl/shared/numeric_operations.c +++ b/src/openzl/shared/numeric_operations.c @@ -47,6 +47,18 @@ size_t NUMOP_findMaxST(const size_t array[], size_t arraySize) return max; } +uint8_t NUMOP_findMaxU8(const uint8_t array[], size_t arraySize) +{ + if (arraySize) + ZL_ASSERT_NN(array); + uint8_t max = 0; + for (size_t n = 0; n < arraySize; n++) { + if (max < array[n]) + max = array[n]; + } + return max; +} + uint32_t NUMOP_findMaxArr32(const uint32_t array32[], size_t arraySize) { if (arraySize) @@ -269,12 +281,13 @@ convertArray_2to4(uint32_t* dst32, const uint16_t* src16, size_t size) static ZL_Report convertArray_8to4(uint32_t* dst32, const uint64_t* src64, size_t size) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); for (size_t n = 0; n < size; n++) { // Note : need better overflow control - ZL_RET_R_IF_GE( - integerOverflow, + ZL_ERR_IF_GE( src64[n], (uint64_t)1 << 32, + integerOverflow, "uint64_t value is too large for uint32_t"); dst32[n] = (uint32_t)src64[n]; } @@ -287,6 +300,7 @@ ZL_Report NUMOP_write32_fromNumerics( const void* srcNum, size_t numWidth) { + ZL_RESULT_DECLARE_SCOPE_REPORT(NULL); if (!nbValues) return ZL_returnSuccess(); ZL_ASSERT_NN(array); @@ -303,7 +317,7 @@ ZL_Report NUMOP_write32_fromNumerics( case 8: return convertArray_8to4(array, (const uint64_t*)srcNum, nbValues); default: - ZL_RET_R_ERR(logicError, "only numeric width 1,2,4,8 are allowed"); + ZL_ERR(logicError, "only numeric width 1,2,4,8 are allowed"); } } diff --git a/src/openzl/shared/numeric_operations.h b/src/openzl/shared/numeric_operations.h index 14170aef6..33cc59fb0 100644 --- a/src/openzl/shared/numeric_operations.h +++ b/src/openzl/shared/numeric_operations.h @@ -13,6 +13,7 @@ size_t NUMOP_sumArrayST(const size_t array[], size_t arraySize); uint64_t NUMOP_sumArray32(const uint32_t array[], size_t arraySize); size_t NUMOP_findMaxST(const size_t array[], size_t arraySize); +uint8_t NUMOP_findMaxU8(const uint8_t array[], size_t arraySize); uint32_t NUMOP_findMaxArr32(const uint32_t array32[], size_t arraySize); int NUMOP_underLimit(const unsigned array[], size_t arraySize, unsigned limit); diff --git a/src/openzl/shared/portability.h b/src/openzl/shared/portability.h index b8793c58e..1e570dcf4 100644 --- a/src/openzl/shared/portability.h +++ b/src/openzl/shared/portability.h @@ -33,7 +33,7 @@ ZL_BEGIN_C_DECLS #endif /// Attributes -#if defined(_MSC_VER) +#if defined(_MSC_VER) && !defined(__clang__) # define ZL_FORCE_INLINE_ATTR __forceinline # define ZL_FORCE_NOINLINE_ATTR __declspec(noinline) # define ZL_FLATTEN_ATTR // MSVC doesn't have equivalent to flatten @@ -104,6 +104,111 @@ ZL_BEGIN_C_DECLS # define ZL_HAS_BUILTIN(x) 0 #endif +#ifdef __has_feature +# define ZL_HAS_FEATURE(x) __has_feature(x) +#else +# define ZL_HAS_FEATURE(x) 0 +#endif + +#ifndef ZL_ADDRESS_SANITIZER +# if ZL_HAS_FEATURE(address_sanitizer) +# define ZL_ADDRESS_SANITIZER 1 +# else +# define ZL_ADDRESS_SANITIZER 0 +# endif +#endif + +#if ZL_ADDRESS_SANITIZER +/* Not all platforms that support asan provide sanitizers/asan_interface.h. + * We therefore declare the functions we need ourselves, rather than trying to + * include the header file... */ + +/** + * Marks a memory region ([addr, addr+size)) as unaddressable. + * + * This memory must be previously allocated by your program. Instrumented + * code is forbidden from accessing addresses in this region until it is + * unpoisoned. This function is not guaranteed to poison the entire region - + * it could poison only a subregion of [addr, addr+size) due to ASan + * alignment restrictions. + * + * \note This function is not thread-safe because no two threads can poison or + * unpoison memory in the same memory region simultaneously. + * + * \param addr Start of memory region. + * \param size Size of memory region. */ +void __asan_poison_memory_region(void const volatile* addr, size_t size); + +/** + * Marks a memory region ([addr, addr+size)) as addressable. + * + * This memory must be previously allocated by your program. Accessing + * addresses in this region is allowed until this region is poisoned again. + * This function could unpoison a super-region of [addr, addr+size) due + * to ASan alignment restrictions. + * + * \note This function is not thread-safe because no two threads can + * poison or unpoison memory in the same memory region simultaneously. + * + * \param addr Start of memory region. + * \param size Size of memory region. */ +void __asan_unpoison_memory_region(void const volatile* addr, size_t size); + +/** + * Checks if an address is poisoned. + * + * Returns 1 if addr is poisoned (that is, 1-byte read/write + * access to this address would result in an error report from ASan). + * Otherwise returns 0. + * + * \param addr Address to check. + * + * \retval 1 Address is poisoned. + * \retval 0 Address is not poisoned. + */ +int __asan_address_is_poisoned(void const volatile* addr); +#endif + +#define ZL_POISON_SUPPORTED ZL_ADDRESS_SANITIZER + +ZL_INLINE void ZL_poisonMemory(const void* ptr, size_t size) +{ +#if ZL_ADDRESS_SANITIZER + __asan_poison_memory_region(ptr, size); +#else + (void)ptr; + (void)size; +#endif +} + +ZL_INLINE void ZL_unpoisonMemory(const void* ptr, size_t size) +{ +#if ZL_ADDRESS_SANITIZER + __asan_unpoison_memory_region(ptr, size); +#else + (void)ptr; + (void)size; +#endif +} + +ZL_INLINE bool ZL_addressIsPoisoned(const void* ptr) +{ +#if ZL_ADDRESS_SANITIZER + return __asan_address_is_poisoned(ptr); +#else + (void)ptr; + return false; +#endif +} + +#if ZL_POISON_SUPPORTED +# define ZL_POISON_MEMORY(ptr, size) ZL_poisonMemory(ptr, size) +# define ZL_UNPOISON_MEMORY(ptr, size) ZL_unpoisonMemory(ptr, size) +#else +# define ZL_POISON_MEMORY(ptr, size) +# define ZL_UNPOISON_MEMORY(ptr, size) +#endif + #define ZL_ARCH_FLAG_X86 (1 << 0) #define ZL_ARCH_FLAG_X86_64 ((1 << 1) | ZL_ARCH_FLAG_X86) #define ZL_ARCH_FLAG_I386 ((1 << 2) | ZL_ARCH_FLAG_X86) @@ -126,7 +231,7 @@ ZL_BEGIN_C_DECLS #elif defined(__aarch64__) || defined(__arm64__) # define ZL_ARCH_FLAGS ZL_ARCH_FLAG_ARM64 #elif defined(__arm__) -# define ZL_ARCH_FLAG ZL_ARCH_FLAG_ARM32 +# define ZL_ARCH_FLAGS ZL_ARCH_FLAG_ARM32 #elif defined(__powerpc64__) || defined(__ppc64__) || defined(_ARCH_PPC64) # if defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) \ || (defined(__BYTE_ORDER__) \ @@ -150,6 +255,12 @@ ZL_BEGIN_C_DECLS #define ZL_ARCH_PPC64LE ((ZL_ARCH_FLAGS & ZL_ARCH_FLAG_PPC64LE) != 0) #define ZL_ARCH_PPC64BE ((ZL_ARCH_FLAGS & ZL_ARCH_FLAG_PPC64BE) != 0) +// Enforce 64-bit compilation +#if (ZL_ARCH_FLAGS == ZL_ARCH_FLAG_I386) \ + || (ZL_ARCH_FLAGS == ZL_ARCH_FLAG_ARM32) +# error "This codebase requires a 64-bit platform. 32-bit compilation is not supported yet." +#endif + // Error on unknown architectures for now. // TODO: This should probably be removed before open source. // But I don't want us to accidentally miss an architecture, or @@ -173,6 +284,11 @@ ZL_BEGIN_C_DECLS # endif # if defined(_MSC_VER) # include +// MSVC doesn't define __m256i_u and __m128i_u types like GCC/Clang do. +// These types are used for unaligned SIMD loads/stores. In MSVC, we just +// use the regular __m256i and __m128i types for both aligned and unaligned. +typedef __m256i __m256i_u; +typedef __m128i __m128i_u; # endif #else # define ZL_HAS_AVX2 0 @@ -180,12 +296,14 @@ ZL_BEGIN_C_DECLS #if defined(__SSSE3__) # define ZL_HAS_SSSE3 1 +# include #else # define ZL_HAS_SSSE3 0 #endif #if defined(__SSE4_2__) # define ZL_HAS_SSE42 1 +# include #else # define ZL_HAS_SSE42 0 #endif @@ -211,10 +329,11 @@ ZL_BEGIN_C_DECLS // Detect IEEE 754 floating point support. // Apple doesn't define __STDC_IEC_559__, but supports IEEE 754. // MinGW doesn't define __STDC_IEC_559__, but supports IEEE 754. +// MSVC on x86/x64 supports IEEE 754. #if (defined(__STDC_IEC_559__) && __STDC_IEC_559__) \ || (defined(__STDC_IEC_60559_BFP__) \ && __STDC_IEC_60559_BFP__ >= 202311L) \ - || defined(__APPLE__) || defined(__MINGW32__) + || defined(__APPLE__) || defined(__MINGW32__) || defined(_MSC_VER) # define ZL_HAS_IEEE_754 1 #else # define ZL_HAS_IEEE_754 0 diff --git a/src/openzl/shared/utils.h b/src/openzl/shared/utils.h index 70992be61..f56ba2ccf 100644 --- a/src/openzl/shared/utils.h +++ b/src/openzl/shared/utils.h @@ -7,6 +7,18 @@ ZL_BEGIN_C_DECLS +#if defined(__GNUC__) || defined(__clang__) +# define ZL_MAYBE_UNUSED_FUNCTION __attribute__((__unused__)) +#elif defined(_MSC_VER) +// MSVC does not have a direct equivalent for marking an entire function as +// "unused" to suppress a warning if it is defined but not called. +// Usually, this warning is handled by linker settings, or by ensuring +// the function has internal linkage (static). +# define ZL_MAYBE_UNUSED_FUNCTION +#else +# define ZL_MAYBE_UNUSED_FUNCTION +#endif + /** * This should only be for small helper functions that don't belong in any * grouping. @@ -58,6 +70,18 @@ ZL_INLINE size_t ZL_isLegalIntegerWidth(size_t width) return width == 1 || width == 2 || width == 4 || width == 8; } +/** + * @returns The maximum unsigned value for an element of @p width bytes. + */ +ZL_INLINE uint64_t ZL_maxValueForWidth(size_t width) +{ + ZL_ASSERT(ZL_isLegalIntegerWidth(width)); + if (width == 8) { + return UINT64_MAX; + } + return ((uint64_t)1 << (width * 8)) - 1; +} + ZL_END_C_DECLS #endif // ZS_COMMON_UTILS_H diff --git a/src/openzl/shared/varint.h b/src/openzl/shared/varint.h index 6f13436ff..0f5e785b8 100644 --- a/src/openzl/shared/varint.h +++ b/src/openzl/shared/varint.h @@ -125,6 +125,7 @@ ZL_RESULT_DECLARE_TYPE(uint64_t); ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_varintDecode(const uint8_t** src, const uint8_t* end) { + ZL_RESULT_DECLARE_SCOPE(uint64_t, (ZL_OperationContext*)NULL); int8_t const* ptr = (int8_t const*)*src; int8_t const* endi = (int8_t const*)end; uint64_t val = 0; @@ -181,7 +182,7 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) if (b >= 0) { break; } - ZL_RET_T_ERR(uint64_t, GENERIC); + ZL_ERR(GENERIC); } while (false); } else { int shift = 0; @@ -190,12 +191,12 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) shift += 7; } if (ptr == endi) { - ZL_RET_T_ERR(uint64_t, GENERIC); + ZL_ERR(GENERIC); } val |= (uint64_t)(*ptr++) << shift; } *src = (uint8_t const*)ptr; - return ZL_RESULT_WRAP_VALUE(uint64_t, val); + return ZL_WRAP_VALUE(val); } ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_varintDecodeStrictImpl( @@ -203,6 +204,7 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_varintDecodeStrictImpl( const uint8_t* end, size_t kWidth) { + ZL_RESULT_DECLARE_SCOPE(uint64_t, (ZL_OperationContext*)NULL); int8_t const* ptr = (int8_t const*)*src; int8_t const* endi = (int8_t const*)end; uint64_t val = 0; @@ -237,13 +239,12 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_varintDecodeStrictImpl( val |= (uint64_t)(b & 0x7f) << 28; if (b >= 0) { if (kWidth == 4 && (b & ~0xF) != 0) { - ZL_RET_T_ERR( - uint64_t, GENERIC, "Varint32 has too many bits!"); + ZL_ERR(GENERIC, "Varint32 has too many bits!"); } break; } if (kWidth == 4) { - ZL_RET_T_ERR(uint64_t, GENERIC, "Varint32 has too many bytes!"); + ZL_ERR(GENERIC, "Varint32 has too many bytes!"); } b = *ptr++; val |= (uint64_t)(b & 0x7f) << 35; @@ -269,17 +270,16 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_varintDecodeStrictImpl( val |= (uint64_t)(b & 0x01) << 63; if (b >= 0) { if ((b & ~0x01) != 0) { - ZL_RET_T_ERR( - uint64_t, GENERIC, "Varint64 has too many bits!"); + ZL_ERR(GENERIC, "Varint64 has too many bits!"); } break; } - ZL_RET_T_ERR(uint64_t, GENERIC, "Varint64 has too many bytes!"); + ZL_ERR(GENERIC, "Varint64 has too many bytes!"); } while (false); // The last byte was zero means that the varint was encoded // inefficiently if (!zeroAllowed && b == 0x00) { - ZL_RET_T_ERR(uint64_t, GENERIC, "Varint has trailing 0x00 bytes"); + ZL_ERR(GENERIC, "Varint has trailing 0x00 bytes"); } } else { int iter = 0; @@ -292,20 +292,20 @@ ZL_INLINE ZL_RESULT_OF(uint64_t) ZL_varintDecodeStrictImpl( ZL_ASSERT(!(kWidth == 8 && iter >= ZL_VARINT_LENGTH_64)); } if (ptr == endi) { - ZL_RET_T_ERR(uint64_t, GENERIC, "Varint not finished!"); + ZL_ERR(GENERIC, "Varint not finished!"); } // Impossible because either the src is too small, or we would've // taken the other path. ZL_ASSERT(!(kWidth == 4 && iter >= ZL_VARINT_LENGTH_32 - 1)); ZL_ASSERT(!(kWidth == 8 && iter >= ZL_VARINT_LENGTH_64 - 1)); if (iter > 0 && *ptr == 0) { - ZL_RET_T_ERR(uint64_t, GENERIC, "Varint has trailing 0x00 bytes"); + ZL_ERR(GENERIC, "Varint has trailing 0x00 bytes"); } val |= (uint64_t)(*ptr++) << (iter * 7); } *src = (uint8_t const*)ptr; - return ZL_RESULT_WRAP_VALUE(uint64_t, val); + return ZL_WRAP_VALUE(val); } /** diff --git a/src/openzl/shared/xxhash.h b/src/openzl/shared/xxhash.h index 9139b13fc..f1891ea70 100644 --- a/src/openzl/shared/xxhash.h +++ b/src/openzl/shared/xxhash.h @@ -873,11 +873,6 @@ #elif !defined (__VMS) \ && (defined (__cplusplus) \ || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) - # ifdef _AIX - # include - # else - # include - # endif typedef uint64_t XXH64_hash_t; #else # include @@ -2414,7 +2409,6 @@ * @internal * @brief XXH_memset() macro can be redirected at compile time */ - # include # define XXH_memset memset #endif @@ -2424,7 +2418,6 @@ * @brief XXH_memcmp() macro can be redirected at compile time * Note: only needed by XXH128. */ - # include # define XXH_memcmp memcmp #endif @@ -2570,11 +2563,6 @@ #if !defined (__VMS) \ && (defined (__cplusplus) \ || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) - # ifdef _AIX - # include - # else - # include - # endif typedef uint8_t xxh_u8; #else typedef unsigned char xxh_u8; diff --git a/tests/BUCK b/tests/BUCK index 08ace28be..d7087b245 100644 --- a/tests/BUCK +++ b/tests/BUCK @@ -1,6 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. -load("//data_compression/experimental/zstrong:defs.bzl", "zs_cxxbinary", "zs_cxxlibrary", "zs_fuzzers", "zs_library", "zs_raw_fuzzer", "zs_unittest") +load("../defs.bzl", "cross_platform_labels", "zs_cxxbinary", "zs_cxxlibrary", "zs_fuzzers", "zs_library", "zs_raw_fuzzer", "zs_unittest") oncall("data_compression") @@ -12,27 +12,36 @@ zs_unittest( "unittest/**/*.c", ]), headers = glob(["unittest/**/*.h"]), + labels = cross_platform_labels(), supports_static_listing = False, deps = [ + "..:common", + "..:compress", + "..:dict", + "../cpp:openzl_cpp", + "../tools:json", + "datagen:datagen", ":utils", - "//data_compression/experimental/zstrong:common", - "//data_compression/experimental/zstrong/tests/datagen:datagen", - "//data_compression/experimental/zstrong/tools:json", ], ) zs_unittest( name = "test_compress", - srcs = glob([ - "compress/**/*.c", - "compress/**/*.cpp", - ]), + srcs = glob( + [ + "compress/**/*.c", + "compress/**/*.cpp", + ], + ), headers = glob(["compress/**/*.h"]), + labels = cross_platform_labels(), deps = [ + "..:compress", + "../tools/sddl2/assembler:lib", + "../tools/sddl2/compiler:lib", + "datagen:datagen", ":test_zstrong_fixtures", ":utils", - "//data_compression/experimental/zstrong:compress", - "//data_compression/experimental/zstrong/tests/datagen:datagen", ], ) @@ -40,9 +49,10 @@ zs_unittest( name = "test_decompress", srcs = glob(["decompress/**/*.cpp"]), headers = glob(["decompress/**/*.h"]), + labels = cross_platform_labels(), deps = [ + "..:decompress", ":utils", - "//data_compression/experimental/zstrong:decompress", ], ) @@ -53,24 +63,52 @@ zs_unittest( exclude = ["integrationtest/NoIntrospectionTest.cpp"], ), headers = glob(["integrationtest/**/*.h"]), + labels = cross_platform_labels(), + supports_static_listing = False, deps = [ - "//data_compression/experimental/zstrong:compress", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/tests/datagen:datagen", + "..:compress", + "..:dict", + "../cpp:openzl_cpp", + "datagen:datagen", + "registry:openzl_components", + ":utils", ], ) zs_unittest( name = "test_round_trip", - srcs = glob(["round_trip/**/*.cpp"]), - headers = glob(["round_trip/**/*.h"]), + srcs = glob( + ["round_trip/**/*.cpp"], + exclude = ["round_trip/test_mlselector.cpp"], + ), + headers = glob(["round_trip/**/*.h"]) + [ + "compress/graphs/sddl2/utils.h", + ], + labels = cross_platform_labels(), + deps = [ + "..:compress", + "..:decompress", + "../cpp:openzl_cpp", + "datagen:datagen", + "fbsource//third-party/zstd:zstd", + ":test_zstrong_fixtures", + ":utils", + ], +) + +zs_unittest( + name = "test_ml_selector", + srcs = ["round_trip/test_mlselector.cpp"], + labels = cross_platform_labels(), deps = [ + "..:compress", + "..:decompress", + "../cpp:openzl_cpp", + "datagen:datagen", + "fbsource//third-party/zstd:zstd", + ":ml_selector_utils", ":test_zstrong_fixtures", ":utils", - "//data_compression/experimental/zstrong:compress", - "//data_compression/experimental/zstrong:decompress", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", - "//data_compression/experimental/zstrong/tests/datagen:datagen", ], ) @@ -78,10 +116,11 @@ zs_unittest( name = "test_zstrong", srcs = glob(["zstrong/**/test_*.cpp"]), headers = glob(["zstrong/**/test_*.h"]), + labels = cross_platform_labels(), deps = [ + "..:zstronglib", + "datagen:datagen", ":utils", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tests/datagen:datagen", ], ) @@ -90,21 +129,25 @@ zs_cxxlibrary( srcs = glob(["zstrong/**/*ixture.cpp"]), headers = glob(["zstrong/**/*ixture.h"]), deps = [ - "fbsource//third-party/googletest:gtest", + "..:zstronglib", + "datagen:datagen", ":utils", - "//data_compression/experimental/zstrong:zstronglib", ], + exported_deps = ["fbsource//third-party/googletest:gtest"], ) zs_unittest( name = "test_codecs", srcs = glob(["codecs/**/test_*.cpp"]), headers = glob(["codecs/**/test_*.h"]), + labels = cross_platform_labels(), deps = [ + "..:zstronglib", + "../tools/sddl/compiler:lib", + "../tools/sddl2/compiler:lib", + "datagen:datagen", + "fbsource//third-party/zstd:zstd", ":utils", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tests/datagen:datagen", - "//data_compression/experimental/zstrong/tools/sddl/compiler:lib", ], ) @@ -113,6 +156,19 @@ zs_cxxlibrary( headers = ["constants.h"], ) +zs_cxxlibrary( + name = "ml_selector_utils", + srcs = [ + "ml_selector_utils.cpp", + ], + headers = [ + "ml_selector_utils.h", + ], + exported_deps = [ + "..:compress", + ], +) + zs_cxxlibrary( name = "utils", srcs = [ @@ -123,10 +179,13 @@ zs_cxxlibrary( "local_params_utils.h", "utils.h", ], + deps = [ + "registry:openzl_input", + ], exported_deps = [ + "..:zstronglib", + "../cpp:openzl_cpp", "fbsource//third-party/googletest:gtest", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/cpp:openzl_cpp", ], ) @@ -134,8 +193,8 @@ zs_cxxbinary( name = "round_trip", srcs = ["round_trip.cpp"], deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:fileio", + "..:zstronglib", + "../tools:fileio", "//folly/init:init", ], ) @@ -148,9 +207,9 @@ zs_cxxbinary( "-DBENCHMARK_BITSTREAM", ], deps = [ + "..:common", "fbsource//third-party/googletest:gtest", ":utils", - "//data_compression/experimental/zstrong:common", ], ) @@ -163,8 +222,8 @@ zs_library( "zs2_selector_optimization.h", ], exported_deps = [ - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tools:timefn", + "..:zstronglib", + "../tools:timefn", ], ) @@ -172,18 +231,18 @@ zs_cxxlibrary( name = "fuzz_utils", headers = ["fuzz_utils.h"], exported_deps = [ + "datagen:datagen", + "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", "fbsource//xplat/security/lionhead/utils/lib_ftest/fdp:lib", - "//data_compression/experimental/zstrong/tests/datagen:datagen", ], ) FUZZER_DEPS = [ - "fbsource//xplat/security/lionhead/utils/lib_ftest:lib", ":constants", ":fuzz_utils", ":test_zstrong_fixtures", - "//data_compression/experimental/zstrong:zstronglib", - "//data_compression/experimental/zstrong/tests/datagen:datagen", + "..:zstronglib", + "datagen:datagen", ] zs_fuzzers( @@ -226,6 +285,7 @@ zs_fuzzers( ("IntegerTest", "FuzzFSENCountRoundTrip"), ("IntegerTest", "FuzzIntegerSelector"), ("IntegerTest", "FuzzIntegerDivideBy"), + ("IntegerTest", "FuzzBitSplitRoundTrip"), ], deps = FUZZER_DEPS, ) @@ -239,7 +299,7 @@ zs_fuzzers( ("LargeInputTest", "FuzzSerialGraph"), ], deps = FUZZER_DEPS + [ - "//data_compression/experimental/zstrong/tests/datagen:custom_nodes", + "datagen:custom_nodes", ], ) @@ -297,8 +357,11 @@ zs_fuzzers( ftest_names = [ ("MultiInputTest", "FuzzConcatRoundTrip"), ("MultiInputTest", "FuzzClusterRoundTrip"), + ("MLSelectorMultiInputTest", "FuzzMLSelectorRoundTrip"), + ], + deps = FUZZER_DEPS + [ + ":ml_selector_utils", ], - deps = FUZZER_DEPS, ) zs_fuzzers( diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3d2cf81d2..0ece23239 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -13,19 +13,28 @@ function(add_zs_test TESTNAME) endfunction() add_subdirectory(datagen) +add_subdirectory(compat) file( GLOB_RECURSE test_fixtures CONFIGURE_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/openzl/test_*_fixture.*") +file( + GLOB_RECURSE test_registry + CONFIGURE_DEPENDS + "${CMAKE_CURRENT_LIST_DIR}/registry/*.cpp") + add_library(openzl_test_support ${support_sources} ${CMAKE_CURRENT_LIST_DIR}/utils.cpp ${CMAKE_CURRENT_LIST_DIR}/utils.h ${CMAKE_CURRENT_LIST_DIR}/local_params_utils.cpp ${CMAKE_CURRENT_LIST_DIR}/local_params_utils.h + ${CMAKE_CURRENT_LIST_DIR}/ml_selector_utils.cpp + ${CMAKE_CURRENT_LIST_DIR}/ml_selector_utils.h ${test_fixtures} + ${test_registry} ) target_include_directories(openzl_test_support SYSTEM @@ -52,6 +61,9 @@ file(GLOB_RECURSE test_compress_srcs CONFIGURE_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/compress/*.c") file(GLOB_RECURSE test_compress_headers CONFIGURE_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/compress/*.h") +# Exclude sddl2 tests - they have their own build system and test framework (Makefile-based) +list(FILTER test_compress_srcs EXCLUDE REGEX ".*/compress/graphs/sddl2/.*") +list(FILTER test_compress_headers EXCLUDE REGEX ".*/compress/graphs/sddl2/.*") add_zs_test(test_compress ${test_compress_srcs} ${test_compress_headers}) file(GLOB_RECURSE test_decompress_srcs CONFIGURE_DEPENDS @@ -61,11 +73,22 @@ file(GLOB_RECURSE test_decompress_headers CONFIGURE_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/decompress/*.h") add_zs_test(test_decompress ${test_decompress_srcs} ${test_decompress_headers}) +# Collect all integrationtest files except the conditional ones +file(GLOB_RECURSE integrationtest_srcs CONFIGURE_DEPENDS + "${CMAKE_CURRENT_LIST_DIR}/integrationtest/*.cpp") + +# Exclude the conditional test files +list(FILTER integrationtest_srcs EXCLUDE REGEX ".*/CompressIntrospectionTest\\.cpp$") +list(FILTER integrationtest_srcs EXCLUDE REGEX ".*/NoIntrospectionTest\\.cpp$") + +# Add the appropriate conditional file if (OPENZL_ALLOW_INTROSPECTION) add_zs_test(integrationtest + ${integrationtest_srcs} ${CMAKE_CURRENT_LIST_DIR}/integrationtest/CompressIntrospectionTest.cpp) else() add_zs_test(integrationtest + ${integrationtest_srcs} ${CMAKE_CURRENT_LIST_DIR}/integrationtest/NoIntrospectionTest.cpp) endif() target_link_libraries(integrationtest PRIVATE openzl_cpp) @@ -91,6 +114,17 @@ add_zs_test(test_codecs ${test_codecs_srcs} ${test_codecs_headers}) target_link_libraries(test_codecs PRIVATE sddl_compiler_lib + sddl2_compiler_lib ) -add_dependencies(test_codecs sddl_compiler_lib) +add_dependencies(test_codecs sddl_compiler_lib sddl2_compiler_lib) + +# Serialization tests (excludes fuzzer files) +file(GLOB serialization_test_srcs CONFIGURE_DEPENDS + "${CMAKE_CURRENT_LIST_DIR}/serialization/*.cpp") +file(GLOB serialization_test_headers CONFIGURE_DEPENDS + "${CMAKE_CURRENT_LIST_DIR}/serialization/*.h") +list(FILTER serialization_test_srcs EXCLUDE REGEX ".*/fuzz_.*\\.cpp$") +add_zs_test(test_serialization ${serialization_test_srcs} ${serialization_test_headers}) +# NOTE: Fuzzer tests (zstrong/fuzz_*.cpp) are BUCK-only targets using Meta's +# Lionhead infrastructure and are not included in the CMake build. diff --git a/tests/codecs/test_bitSplit.cpp b/tests/codecs/test_bitSplit.cpp new file mode 100644 index 000000000..da763d7da --- /dev/null +++ b/tests/codecs/test_bitSplit.cpp @@ -0,0 +1,252 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include +#include +#include + +#include + +#include "openzl/codecs/bitSplit/encode_bitSplit_binding.h" +#include "openzl/openzl.hpp" +#include "tests/codecs/test_codec.h" + +namespace openzl { +namespace tests { + +class BitSplitTest : public CodecTest { + public: + /** + * Tests round-trip compression/decompression using bitSplit. + * + * @param bitWidths Array of bit widths for splitting + * @param nbWidths Number of bit widths + * @param input Numeric input data + */ + template + void testBitSplitRoundTrip( + const uint8_t* bitWidths, + size_t nbWidths, + const std::vector& input) + { + // Set format version + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + // Register bitSplit node with parameters + NodeID bitSplitNode = ZL_Compressor_registerBitSplitNode( + compressor_.get(), bitWidths, nbWidths); + ASSERT_NE(bitSplitNode.nid, ZL_NODE_ILLEGAL.nid); + + // bitSplit uses Variable Output (VO) - 1 port that generates N outputs + // at runtime The single successor will be instantiated N times + auto graph = compressor_.buildStaticGraph( + bitSplitNode, { graphs::Compress{}() }); + compressor_.selectStartingGraph(graph); + + // Test round-trip + Input numericInput = Input::refNumeric(poly::span{ input }); + testRoundTrip(numericInput); + } +}; + +// ============================================================================= +// Basic Round-Trip Tests +// ============================================================================= + +TEST_F(BitSplitTest, RoundTrip_8bit_Split_4_4) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 4, 4 }; + testBitSplitRoundTrip(widths, 2, input); +} + +TEST_F(BitSplitTest, RoundTrip_16bit_Split_8_8) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 8, 8 }; + testBitSplitRoundTrip(widths, 2, input); +} + +TEST_F(BitSplitTest, RoundTrip_32bit_Split_4_8_12_8) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 4, 8, 12, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +TEST_F(BitSplitTest, RoundTrip_32bit_Split_8_8_8_8) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 8, 8, 8, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +TEST_F(BitSplitTest, RoundTrip_64bit_Split_16_16_16_16) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 16, 16, 16, 16 }; + testBitSplitRoundTrip(widths, 4, input); +} + +// ============================================================================= +// Single Stream Tests (Identity-like) +// ============================================================================= + +TEST_F(BitSplitTest, RoundTrip_SingleStream_8bit) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 8 }; + testBitSplitRoundTrip(widths, 1, input); +} + +TEST_F(BitSplitTest, RoundTrip_SingleStream_32bit) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 32 }; + testBitSplitRoundTrip(widths, 1, input); +} + +// ============================================================================= +// Partial Coverage Tests (Top bits must be zero) +// ============================================================================= + +TEST_F(BitSplitTest, RoundTrip_PartialCoverage_32bit_Split_3_4_5) +{ + // Values must fit in 12 bits (max 0xFFF) + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i & 0xFFF; + } + + uint8_t widths[] = { 3, 4, 5 }; + testBitSplitRoundTrip(widths, 3, input); +} + +TEST_F(BitSplitTest, RoundTrip_PartialCoverage_16bit_Split_4_4) +{ + // Values must fit in 8 bits (max 0xFF) + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i & 0xFF; + } + + uint8_t widths[] = { 4, 4 }; + testBitSplitRoundTrip(widths, 2, input); +} + +// ============================================================================= +// Random Data Tests +// ============================================================================= + +TEST_F(BitSplitTest, RoundTrip_Random_32bit) +{ + std::mt19937 rng(42); + std::uniform_int_distribution dist; + + std::vector input(1000); + for (auto& v : input) { + v = dist(rng); + } + + uint8_t widths[] = { 8, 8, 8, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +TEST_F(BitSplitTest, RoundTrip_Random_64bit) +{ + std::mt19937_64 rng(42); + std::uniform_int_distribution dist; + + std::vector input(1000); + for (auto& v : input) { + v = dist(rng); + } + + uint8_t widths[] = { 1, 9, 22, 32 }; + testBitSplitRoundTrip(widths, 4, input); +} + +// ============================================================================= +// Edge Cases +// ============================================================================= + +TEST_F(BitSplitTest, RoundTrip_EmptyInput) +{ + std::vector input; + + uint8_t widths[] = { 8, 8, 8, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +TEST_F(BitSplitTest, RoundTrip_SingleElement) +{ + std::vector input = { 0xDEADBEEF }; + + uint8_t widths[] = { 4, 8, 12, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +TEST_F(BitSplitTest, RoundTrip_AllZeros) +{ + std::vector input(1000, 0); + + uint8_t widths[] = { 8, 8, 8, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +TEST_F(BitSplitTest, RoundTrip_AllOnes) +{ + std::vector input(1000, 0xFFFFFFFF); + + uint8_t widths[] = { 8, 8, 8, 8 }; + testBitSplitRoundTrip(widths, 4, input); +} + +// ============================================================================= +// Asymmetric Split Tests +// ============================================================================= + +TEST_F(BitSplitTest, RoundTrip_AsymmetricSplit_1_7) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 1, 7 }; + testBitSplitRoundTrip(widths, 2, input); +} + +TEST_F(BitSplitTest, RoundTrip_AsymmetricSplit_1_31) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + uint8_t widths[] = { 1, 31 }; + testBitSplitRoundTrip(widths, 2, input); +} + +TEST_F(BitSplitTest, RoundTrip_ManySmallWidths) +{ + std::vector input(1000); + std::iota(input.begin(), input.end(), 0); + + // Split 8 bits into 8 individual bits + uint8_t widths[] = { 1, 1, 1, 1, 1, 1, 1, 1 }; + testBitSplitRoundTrip(widths, 8, input); +} + +} // namespace tests +} // namespace openzl diff --git a/tests/codecs/test_bitsplit_bf16.cpp b/tests/codecs/test_bitsplit_bf16.cpp new file mode 100644 index 000000000..8c3ec85c4 --- /dev/null +++ b/tests/codecs/test_bitsplit_bf16.cpp @@ -0,0 +1,200 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include +#include + +#include + +#include "openzl/openzl.hpp" +#include "tests/codecs/test_codec.h" + +namespace openzl { +namespace tests { + +class BitsplitBF16Test : public CodecTest { + public: + /** + * Tests round-trip compression/decompression using bitsplit_bf16. + * + * @param input Numeric input data (2-byte bfloat16 elements as uint16_t) + */ + void testBitsplitBF16RoundTrip(const std::vector& input) + { + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + auto graph = compressor_.buildStaticGraph( + ZL_NODE_BITSPLIT_BF16, { graphs::Compress{}() }); + compressor_.selectStartingGraph(graph); + + Input numericInput = + Input::refNumeric(poly::span{ input }); + testRoundTrip(numericInput); + } +}; + +// ============================================================================= +// BF16 Round-Trip Tests +// ============================================================================= +// bfloat16 layout: [sign:1][exponent:8][mantissa:7] = 16 bits +// No native C++ type, so we use uint16_t with manually constructed bit +// patterns. + +TEST_F(BitsplitBF16Test, BF16_RoundTrip) +{ + // Sweep through a range of normal bf16 values + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + // Range from small positive normals to larger ones + // bf16 exponent field starts at bit 7, normal range [0x0080..0x7F7F] + input[i] = static_cast(0x0080 + (i % 0x7F00)); + } + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_AllZero) +{ + std::vector input(1000, 0x0000); + testBitsplitBF16RoundTrip(input); +} + +// ============================================================================= +// BF16 Edge Cases +// ============================================================================= + +TEST_F(BitsplitBF16Test, BF16_EmptyInput) +{ + std::vector input; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_SingleElement) +{ + // 0x4049 ~= 3.14 in bfloat16 (truncated from fp32 0x4048F5C3) + std::vector input{ 0x4049 }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_NaN) +{ + // bf16 quiet NaN: exponent all 1s (0xFF at bits 7-14), mantissa nonzero + std::vector input{ 0x7FC0 }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_NaNVariants) +{ + // Signaling NaN: exponent all 1s, mantissa nonzero with MSB=0 + // Negative NaN: sign=1, exponent all 1s, mantissa nonzero + std::vector input{ + 0x7F01, // positive signaling NaN + 0xFF01, // negative signaling NaN + 0xFFC0, // negative quiet NaN + }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_Infinity) +{ + std::vector input{ + 0x7F80, // +Inf (exponent all 1s, mantissa zero) + 0xFF80, // -Inf + }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_NegativeZero) +{ + std::vector input{ 0x8000 }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_MinMax) +{ + std::vector input{ + 0x0080, // smallest normal (2^-126) + 0x7F7F, // largest finite + }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_Subnormals) +{ + // bf16 subnormals: exponent = 0, mantissa nonzero (bits 0-6) + std::vector input(127); + for (size_t i = 0; i < input.size(); i++) { + // Subnormal mantissa range: 0x0001..0x007F + input[i] = static_cast((i % 0x7F) + 1); + } + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_NegativeSubnormals) +{ + // bf16 negative subnormals: sign=1, exponent=0, mantissa nonzero (bits 0-6) + std::vector input(127); + for (size_t i = 0; i < input.size(); i++) { + // Negative subnormal range: 0x8001..0x807F + input[i] = static_cast(0x8000 | ((i % 0x7F) + 1)); + } + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_AllBitsSet) +{ + // 0xFFFF = negative NaN with all mantissa bits set + std::vector input{ 0xFFFF }; + testBitsplitBF16RoundTrip(input); +} + +TEST_F(BitsplitBF16Test, BF16_MixedValues) +{ + std::vector input{ + 0x0000, // +0 + 0x8000, // -0 + 0x3F80, // 1.0 + 0xBF80, // -1.0 + 0x4049, // ~3.14 + 0x7F80, // +Inf + 0xFF80, // -Inf + 0x7FC0, // NaN + 0x0001, // smallest subnormal + 0x7F7F, // largest finite + }; + testBitsplitBF16RoundTrip(input); +} + +// ============================================================================= +// Split Order Case +// ============================================================================= + +TEST_F(BitsplitBF16Test, BF16_OutputOrder) +{ + // 0xC049 = negative ~3.14 in bfloat16 + std::vector input{ 0xC049 }; + + uint16_t rawBits; + std::memcpy(&rawBits, input.data(), sizeof(rawBits)); + uint8_t mantissaVal = rawBits & 0x7F; // bottom 7 bits + uint8_t exponentVal = (rawBits >> 7) & 0xFF; // next 8 bits + uint8_t signVal = (rawBits >> 15) & 0x1; // top 1 bit + + std::vector expectedMantissa{ mantissaVal }; + std::vector expectedExponent{ exponentVal }; + std::vector expectedSign{ signVal }; + + Input inMantissa = + Input::refNumeric(poly::span{ expectedMantissa }); + Input inExponent = + Input::refNumeric(poly::span{ expectedExponent }); + Input inSign = Input::refNumeric(poly::span{ expectedSign }); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testCodecVO( + ZL_NODE_BITSPLIT_BF16, + numericInput, + { &inMantissa, &inExponent, &inSign }, + 24); // 24 is version where bitsplit codecs were added +} +} // namespace tests +} // namespace openzl diff --git a/tests/codecs/test_bitsplit_fp.cpp b/tests/codecs/test_bitsplit_fp.cpp new file mode 100644 index 000000000..c9304ceca --- /dev/null +++ b/tests/codecs/test_bitsplit_fp.cpp @@ -0,0 +1,363 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include +#include +#include +#include + +#include + +#include "openzl/openzl.hpp" +#include "tests/codecs/test_codec.h" + +namespace openzl { +namespace tests { + +class BitsplitFPTest : public CodecTest { + public: + /** + * Tests round-trip compression/decompression using bitsplit_fp. + * + * @param input Numeric input data (2, 4, or 8-byte IEEE 754 elements) + */ + template + void testBitsplitFPRoundTrip(const std::vector& input) + { + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + auto graph = compressor_.buildStaticGraph( + ZL_NODE_BITSPLIT_FP, { graphs::Compress{}() }); + compressor_.selectStartingGraph(graph); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testRoundTrip(numericInput); + } +}; + +// ============================================================================= +// FP32 Round-Trip Tests +// ============================================================================= + +TEST_F(BitsplitFPTest, FP32_RoundTrip) +{ + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = static_cast(i) * 0.1f; + } + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_AllZero) +{ + std::vector input(1000, 0.0f); + testBitsplitFPRoundTrip(input); +} + +// ============================================================================= +// FP32 Edge Cases +// ============================================================================= + +TEST_F(BitsplitFPTest, FP32_EmptyInput) +{ + std::vector input; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_SingleElement) +{ + std::vector input{ 999.999f }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_NaN) +{ + std::vector input{ std::numeric_limits::quiet_NaN() }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_Infinity) +{ + std::vector input{ + std::numeric_limits::infinity(), + -std::numeric_limits::infinity(), + }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_NegativeZero) +{ + std::vector input{ -0.0f }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_MinMax) +{ + std::vector input{ + std::numeric_limits::lowest(), + std::numeric_limits::max(), + }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP32_Subnormals) +{ + std::vector input(1000); + const float subnormal = std::numeric_limits::denorm_min(); + for (size_t i = 0; i < input.size(); i++) { + input[i] = subnormal * static_cast(i + 1); + } + testBitsplitFPRoundTrip(input); +} + +// ============================================================================= +// FP64 Round-Trip Tests +// ============================================================================= + +TEST_F(BitsplitFPTest, FP64_RoundTrip) +{ + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = static_cast(i) * 0.1; + } + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_AllZero) +{ + std::vector input(1000, 0.0); + testBitsplitFPRoundTrip(input); +} + +// ============================================================================= +// FP64 Edge Cases +// ============================================================================= + +TEST_F(BitsplitFPTest, FP64_EmptyInput) +{ + std::vector input; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_SingleElement) +{ + std::vector input{ 123456.789012 }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_NaN) +{ + std::vector input{ std::numeric_limits::quiet_NaN() }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_Infinity) +{ + std::vector input{ + std::numeric_limits::infinity(), + -std::numeric_limits::infinity(), + }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_NegativeZero) +{ + std::vector input{ -0.0 }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_MinMax) +{ + std::vector input{ + std::numeric_limits::lowest(), + std::numeric_limits::max(), + }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP64_Subnormals) +{ + std::vector input(1000); + const double subnormal = std::numeric_limits::denorm_min(); + for (size_t i = 0; i < input.size(); i++) { + input[i] = subnormal * static_cast(i + 1); + } + testBitsplitFPRoundTrip(input); +} + +// ============================================================================= +// FP16 Round-Trip Tests +// ============================================================================= +// IEEE 754 half-precision: 1 sign + 5 exponent + 10 mantissa +// No native C++ type, so we use uint16_t with manually constructed bit +// patterns. + +TEST_F(BitsplitFPTest, FP16_RoundTrip) +{ + // Sweep through a range of normal fp16 values + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + // Range from small positive normals to larger ones + // Exponent field [0x0400..0x7BFF] covers all normal fp16 values + input[i] = static_cast(0x0400 + (i % 0x7800)); + } + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_AllZero) +{ + std::vector input(1000, 0x0000); + testBitsplitFPRoundTrip(input); +} + +// ============================================================================= +// FP16 Edge Cases +// ============================================================================= + +TEST_F(BitsplitFPTest, FP16_EmptyInput) +{ + std::vector input; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_SingleElement) +{ + // 0x3C00 = 1.0 in fp16 + std::vector input{ 0x3C00 }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_NaN) +{ + // fp16 quiet NaN: exponent all 1s, mantissa nonzero + std::vector input{ 0x7E00 }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_Infinity) +{ + std::vector input{ + 0x7C00, // +Inf + 0xFC00, // -Inf + }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_NegativeZero) +{ + std::vector input{ 0x8000 }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_MinMax) +{ + std::vector input{ + 0x0400, // smallest normal (2^-14) + 0x7BFF, // largest finite (65504.0) + }; + testBitsplitFPRoundTrip(input); +} + +TEST_F(BitsplitFPTest, FP16_Subnormals) +{ + // fp16 subnormals: exponent = 0, mantissa nonzero + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + // Subnormal mantissa range: 0x0001..0x03FF + input[i] = static_cast((i % 0x03FF) + 1); + } + testBitsplitFPRoundTrip(input); +} + +// ============================================================================= +// Split Order Cases +// ============================================================================= + +TEST_F(BitsplitFPTest, FP32_OutputOrder) +{ + std::vector input{ -3.14f }; + + uint32_t rawBits; + // write the float to 4 bytes of raw bits + + std::memcpy(&rawBits, input.data(), sizeof(rawBits)); + uint32_t mantissaVal = rawBits & 0x7FFFFF; // bottom 23 bits + uint8_t exponentVal = (rawBits >> 23) & 0xFF; // next 8 bits + uint8_t signVal = (rawBits >> 31) & 0x1; // top 1 bit + + std::vector expectedMantissa{ mantissaVal }; + std::vector expectedExponent{ exponentVal }; + std::vector expectedSign{ signVal }; + + Input inMantissa = + Input::refNumeric(poly::span{ expectedMantissa }); + Input inExponent = + Input::refNumeric(poly::span{ expectedExponent }); + Input inSign = Input::refNumeric(poly::span{ expectedSign }); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testCodecVO( + ZL_NODE_BITSPLIT_FP, + numericInput, + { &inMantissa, &inExponent, &inSign }, + 24); // 24 is version where we added this codec +} + +TEST_F(BitsplitFPTest, FP64_OutputOrder) +{ + std::vector input{ -3.14 }; + + uint64_t rawBits; + std::memcpy(&rawBits, input.data(), sizeof(rawBits)); + uint64_t mantissaVal = rawBits & 0xFFFFFFFFFFFFF; // bottom 52 bits + uint16_t exponentVal = (rawBits >> 52) & 0x7FF; // next 11 bits + uint8_t signVal = (rawBits >> 63) & 0x1; // top 1 bit + + std::vector expectedMantissa{ mantissaVal }; + std::vector expectedExponent{ exponentVal }; + std::vector expectedSign{ signVal }; + + Input inMantissa = + Input::refNumeric(poly::span{ expectedMantissa }); + Input inExponent = + Input::refNumeric(poly::span{ expectedExponent }); + Input inSign = Input::refNumeric(poly::span{ expectedSign }); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testCodecVO( + ZL_NODE_BITSPLIT_FP, + numericInput, + { &inMantissa, &inExponent, &inSign }, + 24); // 24 is version where we added this codec +} + +TEST_F(BitsplitFPTest, FP16_OutputOrder) +{ + // -3.14 in fp16 = 0xC248 + std::vector input{ 0xC248 }; + + uint16_t rawBits; + std::memcpy(&rawBits, input.data(), sizeof(rawBits)); + uint16_t mantissaVal = rawBits & 0x3FF; // bottom 10 bits + uint8_t exponentVal = (rawBits >> 10) & 0x1F; // next 5 bits + uint8_t signVal = (rawBits >> 15) & 0x1; // top 1 bit + + std::vector expectedMantissa{ mantissaVal }; + std::vector expectedExponent{ exponentVal }; + std::vector expectedSign{ signVal }; + + Input inMantissa = + Input::refNumeric(poly::span{ expectedMantissa }); + Input inExponent = + Input::refNumeric(poly::span{ expectedExponent }); + Input inSign = Input::refNumeric(poly::span{ expectedSign }); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testCodecVO( + ZL_NODE_BITSPLIT_FP, + numericInput, + { &inMantissa, &inExponent, &inSign }, + 24); // 24 is version where we added this codec +} +} // namespace tests +} // namespace openzl diff --git a/tests/codecs/test_bitsplit_top8.cpp b/tests/codecs/test_bitsplit_top8.cpp new file mode 100644 index 000000000..8d289ab71 --- /dev/null +++ b/tests/codecs/test_bitsplit_top8.cpp @@ -0,0 +1,170 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include + +#include + +#include "openzl/openzl.hpp" +#include "tests/codecs/test_codec.h" + +namespace openzl { +namespace tests { + +class BitsplitTop8Test : public CodecTest { + public: + /** + * Tests round-trip compression/decompression using bitsplit_top8. + * + * @param input Numeric input data + */ + template + void testBitsplitTop8RoundTrip(const std::vector& input) + { + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + // bitsplit_top8 is parameter-free, use ZL_NODE_BITSPLIT_TOP8 directly + auto graph = compressor_.buildStaticGraph( + ZL_NODE_BITSPLIT_TOP8, { graphs::Compress{}() }); + compressor_.selectStartingGraph(graph); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testRoundTrip(numericInput); + } +}; + +// ============================================================================= +// Round-Trip Tests: effective width > 8 +// ============================================================================= + +TEST_F(BitsplitTop8Test, RoundTrip_32bit_20bitEffective) +{ + // Values up to 0xFFFFF (20-bit effective width) + // Expect 2 streams: 12-bit remainder + 8-bit top + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i & 0xFFFFF; + } + testBitsplitTop8RoundTrip(input); +} + +TEST_F(BitsplitTop8Test, RoundTrip_64bit_12bitEffective) +{ + // Values up to 0xFFF (12-bit effective width) + // Expect 2 streams: 4-bit remainder + 8-bit top + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i & 0xFFF; + } + testBitsplitTop8RoundTrip(input); +} + +// ============================================================================= +// Round-Trip Tests: effective width <= 8 +// ============================================================================= + +TEST_F(BitsplitTop8Test, RoundTrip_16bit_8bitValues) +{ + // Values in [0, 255] → effective width = 8 + // Expect 1 stream (8-bit output) + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i & 0xFF; + } + testBitsplitTop8RoundTrip(input); +} + +TEST_F(BitsplitTop8Test, RoundTrip_32bit_4bitValues) +{ + // Values in [0, 15] → effective width = 4 + // Expect 1 stream (8-bit output) + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i & 0xF; + } + testBitsplitTop8RoundTrip(input); +} + +// ============================================================================= +// All-Zero Input +// ============================================================================= + +TEST_F(BitsplitTop8Test, RoundTrip_AllZero_32bit) +{ + // All zeros → effective width = 0, treated as 1 + // Expect 1 stream (8-bit zeros) + std::vector input(1000, 0); + testBitsplitTop8RoundTrip(input); +} + +// ============================================================================= +// Edge Cases +// ============================================================================= + +TEST_F(BitsplitTop8Test, RoundTrip_EmptyInput) +{ + std::vector input; + testBitsplitTop8RoundTrip(input); +} + +TEST_F(BitsplitTop8Test, RoundTrip_SingleElement) +{ + std::vector input = { 0xABCD }; + testBitsplitTop8RoundTrip(input); +} + +// ============================================================================= +// Boundary: effective = 8 (max = 0xFF) +// ============================================================================= + +TEST_F(BitsplitTop8Test, Boundary_Effective8) +{ + // Max = 0xFF → effective width = 8 → 1 stream + std::vector input = { 0xFF, 0x01, 0x80, 0x00 }; + testBitsplitTop8RoundTrip(input); +} + +// ============================================================================= +// Boundary: effective = 9 (max = 0x1FF) +// ============================================================================= + +TEST_F(BitsplitTop8Test, Boundary_Effective9) +{ + // Max = 0x1FF → effective width = 9 → 2 streams (1-bit + 8-bit) + std::vector input = { 0x1FF, 0x100, 0x0FF, 0x000 }; + testBitsplitTop8RoundTrip(input); +} + +// ============================================================================= +// Various element widths +// ============================================================================= + +TEST_F(BitsplitTop8Test, RoundTrip_8bitInput) +{ + std::vector input(256); + for (size_t i = 0; i < 256; i++) { + input[i] = (uint8_t)i; + } + testBitsplitTop8RoundTrip(input); +} + +TEST_F(BitsplitTop8Test, RoundTrip_16bitInput) +{ + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = (uint16_t)(i & 0x3FF); // 10-bit effective + } + testBitsplitTop8RoundTrip(input); +} + +TEST_F(BitsplitTop8Test, RoundTrip_64bitInput) +{ + std::vector input(1000); + for (size_t i = 0; i < input.size(); i++) { + input[i] = i; // small values, effective width grows slowly + } + testBitsplitTop8RoundTrip(input); +} + +} // namespace tests +} // namespace openzl diff --git a/tests/codecs/test_codec.h b/tests/codecs/test_codec.h index 795ac8933..f2cad6dca 100644 --- a/tests/codecs/test_codec.h +++ b/tests/codecs/test_codec.h @@ -8,6 +8,7 @@ #include #include "openzl/openzl.hpp" +#include "tests/utils.h" // @manual namespace openzl { namespace tests { @@ -44,6 +45,41 @@ class AssertEqFunctionGraph : public FunctionGraph { const Input& expected_; }; +class AssertEqVOFunctionGraph : public FunctionGraph { + public: + explicit AssertEqVOFunctionGraph(const std::vector& expected) + : expected_(expected), callIndex_(0) + { + } + + FunctionGraphDescription functionGraphDescription() const override + { + return FunctionGraphDescription{ + .name = "AssertEqVO", + .inputTypeMasks = { TypeMask::Any }, + }; + } + + void graph(GraphState& state) const override + { + auto& edge = state.edges()[0]; + const auto& input = edge.getInput(); + if (callIndex_ >= expected_.size()) { + throw AssertEqException("More streams than expected"); + } + if (input != *expected_[callIndex_]) { + throw AssertEqException( + "Stream " + std::to_string(callIndex_) + " does not match"); + } + ++callIndex_; + edge.setDestination(graphs::Compress{}()); + } + + private: + const std::vector& expected_; + mutable int callIndex_; +}; + class CodecTest : public testing::Test { void testCodecImpl( NodeID node, @@ -69,11 +105,28 @@ class CodecTest : public testing::Test { testRoundTrip(input); } + void testCodecVOImpl( + NodeID node, + poly::span input, + const std::vector& expectedOutputs, + int formatVersion) + { + compressor_.setParameter(CParam::FormatVersion, formatVersion); + auto successor = compressor_.registerFunctionGraph( + std::make_shared(expectedOutputs)); + auto graph = compressor_.buildStaticGraph(node, { successor }); + compressor_.selectStartingGraph(graph); + + testRoundTrip(input); + } + public: void SetUp() override { compressor_ = Compressor(); compressor_.setParameter(CParam::MinStreamSize, -1); + compressor_.setParameter( + CParam::StoreOnExpansion, ZL_TernaryParam_disable); cctx_ = CCtx(); dctx_ = DCtx(); @@ -119,11 +172,62 @@ class CodecTest : public testing::Test { } } + /** + * Tests @p node on @p input, expecting @p expectedOutputs streams on a + * single output for each format version between @p minFormatVersion and + * @p maxFormatVersion. + */ + void testCodecVO( + NodeID node, + const Input& input, + const std::vector& expectedOutputs, + int minFormatVersion, + int maxFormatVersion = ZL_MAX_FORMAT_VERSION) + { + testCodecVO( + node, + { &input, 1 }, + expectedOutputs, + minFormatVersion, + maxFormatVersion); + } + + /** + * Tests @p node on @p input, expecting @p expectedOutputs streams on a + * single output for each format version between @p minFormatVersion and + * @p maxFormatVersion. + */ + void testCodecVO( + NodeID node, + poly::span input, + const std::vector& expectedOutputs, + int minFormatVersion, + int maxFormatVersion = ZL_MAX_FORMAT_VERSION) + { + for (int formatVersion = + std::max(minFormatVersion, ZL_MIN_FORMAT_VERSION); + formatVersion <= maxFormatVersion; + ++formatVersion) { + testCodecVOImpl(node, input, expectedOutputs, formatVersion); + } + } + /// Tests that @p input round trips with the compressor_, cctx_, and dctx_. std::string testRoundTrip(poly::span input) { cctx_.refCompressor(compressor_); - auto compressed = cctx_.compress(input); + // StoreOnExpansion is disabled in this fixture, so the tight + // ZL_compressBound() may be insufficient. Allocate manually + // with ZL_COMPRESSBOUND_UNGUARDED. + size_t inputSize = 0; + for (auto const& inp : input) { + inputSize += inp.contentSize(); + if (inp.type() == Type::String) { + inputSize += inp.numElts() * sizeof(uint32_t); + } + } + std::string compressed(ZL_COMPRESSBOUND_UNGUARDED(inputSize), '\0'); + compressed.resize(cctx_.compress(compressed, input)); auto roundTripped = dctx_.decompress(compressed); EXPECT_EQ(roundTripped.size(), input.size()); for (size_t i = 0; i < input.size(); ++i) { diff --git a/tests/codecs/test_sddl.cpp b/tests/codecs/test_sddl.cpp index 37ae44701..1e2bc1c43 100644 --- a/tests/codecs/test_sddl.cpp +++ b/tests/codecs/test_sddl.cpp @@ -4,10 +4,9 @@ #include -#include "openzl/compress/graphs/simple_data_description_language.h" -#include "openzl/compress/graphs/simple_data_description_language_source_code.h" +#include "openzl/compress/graphs/sddl/simple_data_description_language.h" +#include "openzl/compress/graphs/sddl/simple_data_description_language_source_code.h" -#include "openzl/codecs/zl_sddl.h" #include "openzl/zl_reflection.h" #include "openzl/cpp/CCtx.hpp" @@ -40,6 +39,19 @@ detail::NonNullUniqueCPtr make_state(const ZL_SDDL_Program* prog) ZL_SDDL_State_create(prog, nullptr), ZL_SDDL_State_free); } +std::shared_ptr make_dispatch_instructions( + const ZL_SDDL_Instructions& instrs, + detail::NonNullUniqueCPtr state) +{ + auto owning_ptr = std::make_shared>>( + instrs, std::move(state)); + auto instr_ptr = &owning_ptr->first; + return std::shared_ptr{ std::move(owning_ptr), + instr_ptr }; +} + std::string iota(size_t len) { std::string ret; @@ -50,6 +62,44 @@ std::string iota(size_t len) return ret; } +std::ostream& operator<<(std::ostream& os, const ZL_SDDL_Instructions& instrs) +{ + static const std::map zl_type_names{ + { ZL_Type_serial, "ZL_Type_serial" }, + { ZL_Type_numeric, "ZL_Type_numeric" }, + { ZL_Type_struct, "ZL_Type_struct" }, + { ZL_Type_string, "ZL_Type_string" }, + }; + + os << "(ZL_SDDL_Instructions){\n"; + os << " .dispatch_instructions = (ZL_DispatchInstructions){\n"; + os << " .nbSegments = " << instrs.dispatch_instructions.nbSegments + << ",\n"; + os << " .nbTags = " << instrs.dispatch_instructions.nbTags << ",\n"; + os << " .segmentSizes = " << instrs.dispatch_instructions.segmentSizes + << ",\n"; + os << " .tags = " << instrs.dispatch_instructions.tags << ",\n"; + os << " },\n"; + os << " .outputs = {\n"; + for (size_t i = 0; i < instrs.numOutputs; i++) { + const auto& oi = instrs.outputs[i]; + const auto type_name_it = zl_type_names.find(oi.type); + os << " (ZL_SDDL_OutputInfo) {\n"; + os << " .type = " << oi.type << ", // (" + << (type_name_it != zl_type_names.end() ? type_name_it->second + : "unknown") + << ")\n"; + os << " .width = " << oi.width << ",\n"; + os << " .big_endian = " << (oi.big_endian ? "true" : "false") + << ",\n"; + os << " },\n"; + } + os << " },\n"; + os << " .numOutputs = " << instrs.numOutputs << ",\n"; + os << "}"; + return os; +} + class SimpleDataDescriptionLanguageTest : public Test { protected: enum class Expected { @@ -61,13 +111,17 @@ class SimpleDataDescriptionLanguageTest : public Test { std::string compile(std::string_view program, Expected expected) { - int verbosity = 2; + const int verbosity = 2; std::stringstream logs; std::string code; try { - code = sddl::Compiler{ logs, verbosity }.compile( - program, "[local_input]"); + code = + sddl::Compiler{ + sddl::Compiler::Options{}.with_log(logs).with_verbosity( + verbosity) + } + .compile(program, "[local_input]"); } catch (const sddl::CompilerException&) { if (expected == Expected::FAIL_TO_COMPILE) { // Good. @@ -91,7 +145,7 @@ class SimpleDataDescriptionLanguageTest : public Test { return code; } - void + std::shared_ptr exec(std::string_view program, std::string_view input, Expected expected) { const auto code = compile(program, expected); @@ -100,7 +154,7 @@ class SimpleDataDescriptionLanguageTest : public Test { { const auto res = ZL_SDDL_Program_load(prog.get(), code.data(), code.size()); - ASSERT_EQ( + EXPECT_EQ( ZL_RES_isError(res), expected == Expected::FAIL_TO_DESERIALIZE) << ZL_SDDL_Program_getErrorContextString_fromError( @@ -111,11 +165,17 @@ class SimpleDataDescriptionLanguageTest : public Test { { const auto res = ZL_SDDL_State_exec(state.get(), input.data(), input.size()); - ASSERT_EQ( + EXPECT_EQ( ZL_RES_isError(res), expected == Expected::FAIL_TO_EXECUTE) << ZL_SDDL_State_getErrorContextString_fromError( state.get(), ZL_RES_error(res)); + if (!ZL_RES_isError(res)) { + return make_dispatch_instructions( + ZL_RES_value(res), std::move(state)); + } } + + return {}; } void roundtrip(std::string_view program, std::string_view input) @@ -149,6 +209,8 @@ class SimpleDataDescriptionLanguageTest : public Test { ASSERT_EQ(input, decompressed); } + + std::shared_ptr exec_instr; }; } // anonymous namespace @@ -178,7 +240,7 @@ TEST_F(SimpleDataDescriptionLanguageTest, TrivialRoundtrip) const auto prog = R"( : Byte[_rem] )"; - const auto& input = zstrong::tests::kLoremTestInput; + const auto& input = openzl::tests::kLoremTestInput; roundtrip(prog, input); } @@ -235,12 +297,12 @@ TEST_F(SimpleDataDescriptionLanguageTest, SAO) } Row = { - SRA0 : UInt64LE # Right ascension in degrees - SDEC0: UInt64LE # Declination in degrees - IS : Byte[2] # Instrument status flags - MAG : UInt16LE # Magnitude * 100 - XRPM : UInt32LE # X-axis rate per minute - XDPM : UInt32LE # X-axis drift per minute + SRA0 : Float64LE # Right ascension in degrees + SDEC0: Float64LE # Declination in degrees + IS : Byte[2] # Instrument status flags + MAG : UInt16LE # Magnitude * 100 + XRPM : Float32LE # X-axis rate per minute + XDPM : Float32LE # X-axis drift per minute } # Read the header @@ -380,6 +442,171 @@ TEST_F(SimpleDataDescriptionLanguageTest, consumeVals) roundtrip(prog, input); } +TEST_F(SimpleDataDescriptionLanguageTest, consumeFloats) +{ + const auto prog = R"( + F1 = Float8 + F2L = Float16LE + F2B = Float16BE + F4L = Float32LE + F4B = Float32BE + F8L = Float64LE + F8B = Float64BE + BF1 = BFloat8 + BF2L = BFloat16LE + BF2B = BFloat16BE + BF4L = BFloat32LE + BF4B = BFloat32BE + BF8L = BFloat64LE + BF8B = BFloat64BE + + expect sizeof F1 == 1 + expect sizeof F2L == 2 + expect sizeof F2B == 2 + expect sizeof F4L == 4 + expect sizeof F4B == 4 + expect sizeof F8L == 8 + expect sizeof F8B == 8 + expect sizeof BF1 == 1 + expect sizeof BF2L == 2 + expect sizeof BF2B == 2 + expect sizeof BF4L == 4 + expect sizeof BF4B == 4 + expect sizeof BF8L == 8 + expect sizeof BF8B == 8 + + : F1 + : F2L + : F2B + : F4L + : F4B + : F8L + : F8B + : BF1 + : BF2L + : BF2B + : BF4L + : BF4B + : BF8L + : BF8B + )"; + const auto input = iota(58); + roundtrip(prog, input); +} + +TEST_F(SimpleDataDescriptionLanguageTest, arithmetic) +{ + const auto prog = R"( + expect 5 + 10 == 15 + expect -5 + 10 == 5 + expect 5 + -10 == -5 + expect -5 + -10 == -15 + + expect 5 - 10 == -5 + expect 10 - 5 == 5 + expect -10 - 5 == -15 + expect 10 - -5 == 15 + expect -10 - -5 == -5 + + expect 5 * 10 == 50 + + expect 73 / 10 == 7 + expect 73 % 10 == 3 + + expect 10 == 10 + expect 10 == 9 == 0 + + expect 10 != 9 + expect 10 != 10 == 0 + + expect 10 > 9 + expect 10 > 10 == 0 + expect 10 > 11 == 0 + expect 10 >= 9 + expect 10 >= 10 + expect 10 >= 11 == 0 + expect 10 < 9 == 0 + expect 10 < 10 == 0 + expect 10 < 11 + expect 10 <= 9 == 0 + expect 10 <= 10 + expect 10 <= 11 + + : Byte[] + )"; + const auto input = iota(10); + roundtrip(prog, input); +} + +TEST_F(SimpleDataDescriptionLanguageTest, bitwise_ops) +{ + const auto prog = R"( + expect (1 & 2) == 0 + expect (1 & 2) == (2 & 1) + expect (1 | 2) == 3 + expect (1 | 2) == (2 | 1) + expect (1 ^ 2) == 3 + expect (1 ^ 2) == (2 ^ 1) + expect ~1 == -2 + + expect (1 & 2) == 0 == 1 + expect (4 & 8) == 0 + expect (4 | 8) == 12 + expect (4 ^ 8) == 12 + expect ~4 == -5 + + expect (0xFF & 0x00) == 0x00 + expect (0xFF | 0x00) == 0xFF + expect (0xFF ^ 0x00) == 0xFF + expect ~0x00 == -1 + expect ~0xFF == -256 + + : Byte[] + )"; + const auto input = iota(10); + roundtrip(prog, input); +} + +TEST_F(SimpleDataDescriptionLanguageTest, logical_ops) +{ + const auto prog = R"( + expect 1 && 1 + expect (1 && 1) == 1 + expect !(1 && 0) + expect (1 && 0) == 0 + expect !(0 && 1) + expect (0 && 1) == 0 + expect !(0 && 0) + expect (0 && 0) == 0 + + expect 1 || 1 + expect (1 || 1) == 1 + expect 1 || 0 + expect (1 || 0) == 1 + expect 0 || 1 + expect (0 || 1) == 1 + expect !(0 || 0) + expect (0 || 0) == 0 + + expect !0 + expect !0 == 1 + expect !1 == 0 + expect !!1 + + expect !2 == 0 + expect 4 && 5 + expect (4 && 5) == 1 + expect 4 || 5 + expect (4 || 5) == 1 + expect !(4 && 0) + + : Byte[] + )"; + + const auto input = iota(10); + roundtrip(prog, input); +} + TEST_F(SimpleDataDescriptionLanguageTest, mildlyVexingParses) { const auto prog = R"( @@ -524,6 +751,17 @@ TEST_F(SimpleDataDescriptionLanguageTest, avoidScopeCopiesInTemporaryFunctions) roundtrip(prog, input); } +TEST_F(SimpleDataDescriptionLanguageTest, directlyUseAggregateFieldDecls) +{ + const auto prog = R"( + : {}[1][1] + : {Byte}[1][1] + : {{Byte}}[1][1] + )"; + const auto input = iota(2); + roundtrip(prog, input); +} + TEST_F(SimpleDataDescriptionLanguageTest, consumeTooMuch) { const auto program = R"( @@ -559,6 +797,69 @@ TEST_F(SimpleDataDescriptionLanguageTest, consumeTooMuch) << err_str; } +TEST_F(SimpleDataDescriptionLanguageTest, indeterminateArrayLength) +{ + const auto program = R"( + : UInt32LE[] + expect _rem == 0 + )"; + + for (size_t i = 4; i < 33; i++) { + exec(program, + iota(i), + (i % 4) ? Expected::FAIL_TO_EXECUTE : Expected::SUCCEED); + } + + // Zero-sized objects can't be expanded. + exec(": {}[]; :Byte[3]", iota(3), Expected::FAIL_TO_EXECUTE); + exec(": Byte[0][]; :Byte[3]", iota(3), Expected::FAIL_TO_EXECUTE); +} + +TEST_F(SimpleDataDescriptionLanguageTest, unusedFields) +{ + const auto prog = R"( + A = UInt32LE + B = UInt64LE + C = UInt32LE + D = UInt64LE + E = UInt32LE + F = UInt64LE + + : A[5] + : C[7] + : D[9] + : E[11] + )"; + const auto input = iota((5 + 7 + 11) * 4 + 9 * 8); + roundtrip(prog, input); + + const auto instrs = exec(prog, input, Expected::SUCCEED); + ASSERT_TRUE(instrs); + EXPECT_EQ(instrs->numOutputs, 5); + + roundtrip(prog, input); +} + +TEST_F(SimpleDataDescriptionLanguageTest, multipleDeclsInFunction) +{ + const auto prog = R"( + func = (){ + : UInt32LE + } + + : func + : func + : func + : func + )"; + const auto input = iota(4 * 4); + roundtrip(prog, input); + + const auto instrs = exec(prog, input, Expected::SUCCEED); + ASSERT_TRUE(instrs); + EXPECT_EQ(instrs->numOutputs, 1); +} + class SimpleDataDescriptionLanguageSourceCodePrettyPrintingTest : public Test { protected: void SetUp() override diff --git a/tests/codecs/test_split_byrange.cpp b/tests/codecs/test_split_byrange.cpp new file mode 100644 index 000000000..76c2d2675 --- /dev/null +++ b/tests/codecs/test_split_byrange.cpp @@ -0,0 +1,321 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#include +#include + +#include + +#include "openzl/openzl.hpp" +#include "tests/codecs/test_codec.h" + +namespace openzl { +namespace tests { + +class SplitByRangeTest : public CodecTest { + public: + template + void testSplitByRangeRoundTrip(const std::vector& input) + { + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + auto graph = compressor_.buildStaticGraph( + ZL_NODE_SPLIT_BYRANGE, { graphs::Compress{}() }); + compressor_.selectStartingGraph(graph); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testRoundTrip(numericInput); + } +}; + +// ============================================================================= +// Basic: Two well-separated ranges +// ============================================================================= + +TEST_F(SplitByRangeTest, TwoRanges_WellSeparated) +{ + // Range 1: [100, 110], Range 2: [500, 510] + std::vector input; + for (uint32_t i = 0; i < 500; i++) { + input.push_back(100 + (i % 11)); + } + for (uint32_t i = 0; i < 500; i++) { + input.push_back(500 + (i % 11)); + } + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, TwoRanges_HighThenLow) +{ + // Range 1: [1000, 2000], Range 2: [0, 100] + std::vector input; + input.reserve(600); + for (uint32_t i = 0; i < 300; i++) { + input.push_back(1000 + (i % 1001)); + } + for (uint32_t i = 0; i < 300; i++) { + input.push_back(i % 101); + } + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Three ranges +// ============================================================================= + +TEST_F(SplitByRangeTest, ThreeRanges) +{ + // Range 1: [100, 110], Range 2: [5, 8], Range 3: [200, 210] + std::vector input; + for (uint32_t i = 0; i < 200; i++) { + input.push_back(100 + (i % 11)); + } + for (uint32_t i = 0; i < 200; i++) { + input.push_back(5 + (i % 4)); + } + for (uint32_t i = 0; i < 200; i++) { + input.push_back(200 + (i % 11)); + } + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Single range (no split needed) +// ============================================================================= + +TEST_F(SplitByRangeTest, SingleRange_NoSplit) +{ + std::vector input; + input.reserve(1000); + for (uint32_t i = 0; i < 1000; i++) { + input.push_back(50 + (i % 51)); + } + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Edge Cases +// ============================================================================= + +TEST_F(SplitByRangeTest, EmptyInput) +{ + std::vector input; + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, SingleElement) +{ + std::vector input = { 42 }; + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, TwoElements_SameRange) +{ + std::vector input = { 42, 43 }; + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, TwoElements_DifferentRanges) +{ + std::vector input = { 100, 0 }; + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, AllSameValue) +{ + std::vector input(1000, 42); + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, AllZeros) +{ + std::vector input(1000, 0); + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, MaxValues) +{ + std::vector input = { UINT32_MAX, UINT32_MAX - 1, 0, 1 }; + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Various element widths +// ============================================================================= + +TEST_F(SplitByRangeTest, Width8bit) +{ + // u8 uses large blocks (blockSize=64), so segments need many elements + // for reliable boundary detection with M=7. + std::vector input; + input.reserve(1200); + for (int i = 0; i < 600; i++) { + input.push_back(static_cast(200 + (i % 50))); + } + for (int i = 0; i < 600; i++) { + input.push_back(static_cast(i % 50)); + } + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, Width16bit) +{ + std::vector input; + for (uint16_t i = 0; i < 500; i++) { + input.push_back(10000 + (i % 100)); + } + for (uint16_t i = 0; i < 500; i++) { + input.push_back(i % 100); + } + testSplitByRangeRoundTrip(input); +} + +TEST_F(SplitByRangeTest, Width64bit) +{ + std::vector input; + for (uint64_t i = 0; i < 500; i++) { + input.push_back(1000000ULL + (i % 100)); + } + for (uint64_t i = 0; i < 500; i++) { + input.push_back(i % 100); + } + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Adjacent ranges (touching but not overlapping) +// ============================================================================= + +TEST_F(SplitByRangeTest, AdjacentRanges) +{ + // Range 1: [0, 99], Range 2: [100, 199] + // These ranges are adjacent but non-overlapping + std::vector input; + input.reserve(1000); + for (uint32_t i = 0; i < 500; i++) { + input.push_back(i % 100); + } + for (uint32_t i = 0; i < 500; i++) { + input.push_back(100 + (i % 100)); + } + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Many small segments +// ============================================================================= + +TEST_F(SplitByRangeTest, ManyAlternatingRanges) +{ + // Alternating between high and low values, many segments + std::vector input; + for (int seg = 0; seg < 10; seg++) { + uint32_t base = (seg % 2 == 0) ? 1000 : 0; + for (uint32_t i = 0; i < 50; i++) { + input.push_back(base + (i % 10)); + } + } + testSplitByRangeRoundTrip(input); +} + +// ============================================================================= +// Segment count tests — verify the algorithm doesn't over-split +// ============================================================================= + +class CountingFunctionGraph : public FunctionGraph { + public: + FunctionGraphDescription functionGraphDescription() const override + { + return FunctionGraphDescription{ + .name = "Counter", + .inputTypeMasks = { TypeMask::Numeric }, + }; + } + + void graph(GraphState& state) const override + { + ++count_; + state.edges()[0].setDestination(graphs::Store{}()); + } + + size_t count() const + { + return count_; + } + void reset() const + { + count_ = 0; + } + + private: + mutable size_t count_ = 0; +}; + +class SplitByRangeSegmentCountTest : public SplitByRangeTest { + public: + template + size_t countSegments(const std::vector& input) + { + compressor_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + + auto counter = std::make_shared(); + auto countGraph = compressor_.registerFunctionGraph(counter); + auto graph = compressor_.buildStaticGraph( + ZL_NODE_SPLIT_BYRANGE, { countGraph }); + compressor_.selectStartingGraph(graph); + + Input numericInput = Input::refNumeric(poly::span{ input }); + testRoundTrip(numericInput); + return counter->count(); + } +}; + +TEST_F(SplitByRangeSegmentCountTest, TwoRanges_ProducesTwoSegments) +{ + // Range 1: [100, 110], Range 2: [500, 510] + std::vector input; + for (uint32_t i = 0; i < 500; i++) { + input.push_back(100 + (i % 11)); + } + for (uint32_t i = 0; i < 500; i++) { + input.push_back(500 + (i % 11)); + } + EXPECT_EQ(countSegments(input), 2u); +} + +TEST_F(SplitByRangeSegmentCountTest, SingleRange_ProducesOneSegment) +{ + std::vector input; + input.reserve(1000); + for (uint32_t i = 0; i < 1000; i++) { + input.push_back(50 + (i % 51)); + } + EXPECT_EQ(countSegments(input), 1u); +} + +TEST_F(SplitByRangeSegmentCountTest, MonotonicIncreasing_ShouldNotOversplit) +{ + // A monotonically increasing series has non-overlapping prefix/suffix + // at every position, but splitting it serves no purpose. + // Ideally this should produce 1 segment. + std::vector input; + for (uint32_t i = 0; i < 1000; i++) { + input.push_back(i); + } + size_t segments = countSegments(input); + EXPECT_LE(segments, 2u) << "Monotonic series should not be over-split, got " + << segments << " segments"; +} + +TEST_F(SplitByRangeSegmentCountTest, MonotonicDecreasing_ShouldNotOversplit) +{ + std::vector input; + for (uint32_t i = 0; i < 1000; i++) { + input.push_back(1000 - i); + } + size_t segments = countSegments(input); + EXPECT_LE(segments, 2u) << "Monotonic series should not be over-split, got " + << segments << " segments"; +} + +} // namespace tests +} // namespace openzl diff --git a/tests/codecs/test_split_byrange_generator.cpp b/tests/codecs/test_split_byrange_generator.cpp new file mode 100644 index 000000000..f69017ad5 --- /dev/null +++ b/tests/codecs/test_split_byrange_generator.cpp @@ -0,0 +1,1081 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// Generator-based tests for split_byrange. +// Generates samples with known range boundaries and verifies +// that split_byrange detects the exact boundaries by checking +// the actual output segments. + +#include +#include +#include +#include +#include + +#include + +#include "openzl/openzl.hpp" +#include "tests/codecs/test_codec.h" +#include "tests/datagen/DataGen.h" + +namespace openzl { +namespace tests { + +using datagen::DataGen; + +class SplitByRangeGeneratorTest : public CodecTest { + public: + struct RangeSpec { + uint32_t lo; + uint32_t hi; + size_t count; + }; + + std::vector generateSample( + const std::vector& ranges, + unsigned seed = 42) + { + DataGen gen(seed); + std::vector data; + for (const auto& r : ranges) { + for (size_t i = 0; i < r.count; i++) { + data.push_back(gen.u32_range("val", r.lo, r.hi)); + } + } + return data; + } + + // Build the expected output segments from the input and expected sizes. + // Returns pointers into owned storage. + struct SegmentData { + std::vector> segments; + std::vector inputs; + std::vector ptrs; + }; + + SegmentData buildExpectedSegments( + const std::vector& data, + const std::vector& expectedSizes) + { + SegmentData sd; + size_t pos = 0; + for (size_t sz : expectedSizes) { + sd.segments.emplace_back( + data.begin() + pos, data.begin() + pos + sz); + pos += sz; + } + EXPECT_EQ(pos, data.size()); + // Build Input objects (must survive until test completes) + for (auto& seg : sd.segments) { + sd.inputs.push_back( + Input::refNumeric(poly::span{ seg })); + } + for (auto& inp : sd.inputs) { + sd.ptrs.push_back(&inp); + } + return sd; + } + + // Verify that split_byrange produces exactly the expected segments. + void verifyExactBoundaries( + const std::vector& data, + const std::vector& expectedSizes) + { + Input numericInput = + Input::refNumeric(poly::span{ data }); + auto sd = buildExpectedSegments(data, expectedSizes); + testCodecVO( + ZL_NODE_SPLIT_BYRANGE, + numericInput, + sd.ptrs, + 24 /* minFormatVersion */); + } + + // Verify exact boundaries with a custom minSegmentSize parameter. + void verifyExactBoundariesWithMinSegSize( + const std::vector& data, + const std::vector& expectedSizes, + int minSegmentSize) + { + Input numericInput = + Input::refNumeric(poly::span{ data }); + auto sd = buildExpectedSegments(data, expectedSizes); + NodeID paramNode = + nodes::SplitByRange(minSegmentSize).parameterize(compressor_); + testCodecVO( + paramNode, numericInput, sd.ptrs, 24 /* minFormatVersion */); + } + + // Width-generic helpers for testing non-32-bit element widths + template + struct TypedRangeSpec { + T lo; + T hi; + size_t count; + }; + + template + std::vector generateTypedSample( + const std::vector>& ranges, + unsigned seed = 42) + { + DataGen gen(seed); + std::vector data; + for (const auto& r : ranges) { + for (size_t i = 0; i < r.count; i++) { + data.push_back( + static_cast(gen.u64_range("val", r.lo, r.hi))); + } + } + return data; + } + + template + struct TypedSegmentData { + std::vector> segments; + std::vector inputs; + std::vector ptrs; + }; + + template + void verifyTypedExactBoundaries( + const std::vector& data, + const std::vector& expectedSizes, + int minSegmentSize = 0) + { + TypedSegmentData sd; + size_t pos = 0; + for (size_t sz : expectedSizes) { + sd.segments.emplace_back( + data.begin() + pos, data.begin() + pos + sz); + pos += sz; + } + EXPECT_EQ(pos, data.size()); + for (auto& seg : sd.segments) { + sd.inputs.push_back(Input::refNumeric(poly::span{ seg })); + } + for (auto& inp : sd.inputs) { + sd.ptrs.push_back(&inp); + } + Input numericInput = Input::refNumeric(poly::span{ data }); + NodeID nodeId = ZL_NODE_SPLIT_BYRANGE; + if (minSegmentSize > 0) { + nodeId = nodes::SplitByRange(minSegmentSize) + .parameterize(compressor_); + } + testCodecVO(nodeId, numericInput, sd.ptrs, 24 /* minFormatVersion */); + } +}; + +// ============================================================================= +// Stage 1: Two well-separated ranges +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage1_TwoRanges_FarApart) +{ + auto data = generateSample( + { + { 100, 200, 500 }, + { 1000, 1100, 500 }, + }); + printf("Stage 1: Two ranges far apart (100-200, 1000-1100)\n"); + verifyExactBoundaries(data, { 500, 500 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage1_TwoRanges_HighThenLow) +{ + auto data = generateSample( + { + { 5000, 6000, 300 }, + { 0, 100, 400 }, + }); + printf("Stage 1: Two ranges high then low (5000-6000, 0-100)\n"); + verifyExactBoundaries(data, { 300, 400 }); +} + +// ============================================================================= +// Stage 2: Three ranges (tests recursive splitting) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage2_ThreeRanges_HighLowHigher) +{ + // A=[500,600], B=[0,50], C=[1500,1600] + // Gaps (400, 1450) >> 2×typAmp (~100) for reliable detection. + auto data = generateSample( + { + { 500, 600, 300 }, + { 0, 50, 200 }, + { 1500, 1600, 400 }, + }); + printf("Stage 2: Three ranges high-low-higher (500-600, 0-50, 1500-1600)\n"); + verifyExactBoundaries(data, { 300, 200, 400 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage2_ThreeRanges_Ascending) +{ + // Gaps (300) >> 2×typAmp (~100) for reliable detection. + auto data = generateSample( + { + { 0, 100, 200 }, + { 400, 500, 200 }, + { 800, 900, 200 }, + }); + printf("Stage 2: Three ascending ranges (0-100, 400-500, 800-900)\n"); + verifyExactBoundaries(data, { 200, 200, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage2_ThreeRanges_Descending) +{ + // Gaps (300) >> 2×typAmp (~100) for reliable detection. + auto data = generateSample( + { + { 800, 900, 200 }, + { 400, 500, 200 }, + { 0, 100, 200 }, + }); + printf("Stage 2: Three descending ranges\n"); + verifyExactBoundaries(data, { 200, 200, 200 }); +} + +// ============================================================================= +// Stage 3: Multiple ranges in monotonic order (recursive splitting) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage3_FiveRanges_Ascending) +{ + // Ranges in ascending order: prefix max always < suffix min at boundaries. + // Each segment needs >= M*blockSize = 7*16 = 112 elements for u32. + auto data = generateSample( + { + { 0, 50, 150 }, + { 500, 550, 200 }, + { 1000, 1100, 250 }, + { 2000, 2100, 150 }, + { 3000, 3100, 200 }, + }); + printf("Stage 3: Five ascending ranges\n"); + verifyExactBoundaries(data, { 150, 200, 250, 150, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage3_FiveRanges_Descending) +{ + // Ranges in descending order: suffix max always < prefix min at boundaries + auto data = generateSample( + { + { 3000, 3100, 200 }, + { 2000, 2100, 150 }, + { 1000, 1100, 250 }, + { 500, 550, 200 }, + { 0, 50, 150 }, + }); + printf("Stage 3: Five descending ranges\n"); + verifyExactBoundaries(data, { 200, 150, 250, 200, 150 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage3_FourRanges_Valley) +{ + // Valley pattern: high, low, high — prefix/suffix splits find boundaries + auto data = generateSample( + { + { 2000, 2100, 150 }, + { 0, 50, 250 }, + { 3000, 3100, 200 }, + }); + printf("Stage 3: Valley pattern (high, low, high)\n"); + verifyExactBoundaries(data, { 150, 250, 200 }); +} + +// ============================================================================= +// Stage 4: Adjacent ranges (gap = 1) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage4_AdjacentRanges_Gap1) +{ + auto data = generateSample( + { + { 0, 99, 300 }, + { 100, 199, 300 }, + }); + printf("Stage 4: Adjacent ranges with gap=1 (0-99, 100-199)\n"); + verifyExactBoundaries(data, { 300, 300 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage4_NearRanges_Gap10) +{ + auto data = generateSample( + { + { 0, 100, 300 }, + { 111, 200, 300 }, + }); + printf("Stage 4: Near ranges with gap=10 (0-100, 111-200)\n"); + verifyExactBoundaries(data, { 300, 300 }); +} + +// ============================================================================= +// Stage 5: Many contiguous segments (ascending staircase) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage5_TenAscendingSegments) +{ + // 10 contiguous segments with ascending ranges — algorithm can split these. + // Each segment needs >= M*blockSize = 7*16 = 112 elements for u32. + std::vector specs; + std::vector expectedSizes; + for (int i = 0; i < 10; i++) { + uint32_t base = static_cast(i) * 1000; + specs.push_back({ base, base + 100, 150 }); + expectedSizes.push_back(150); + } + auto data = generateSample(specs); + printf("Stage 5: 10 ascending segments of 150 elements each\n"); + verifyExactBoundaries(data, expectedSizes); +} + +TEST_F(SplitByRangeGeneratorTest, Stage5b_AlternatingSegments_NoSplit) +{ + // Alternating ranges: min-max overlap prevents any split + std::vector data; + for (int seg = 0; seg < 4; seg++) { + uint32_t base = (seg % 2 == 0) ? 0 : 10000; + for (uint32_t i = 0; i < 50; i++) { + data.push_back(base + (i % 100)); + } + } + printf("Stage 5b: Alternating ranges, no split expected\n"); + verifyExactBoundaries(data, { 200 }); +} + +// ============================================================================= +// Stage 6: Single range (no split) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage6_SingleRange_NoSplit) +{ + auto data = generateSample( + { + { 500, 600, 1000 }, + }); + printf("Stage 6: Single range, no split expected\n"); + verifyExactBoundaries(data, { 1000 }); +} + +// ============================================================================= +// Stage 7: Overlapping ranges (should NOT split) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage7_OverlappingRanges_NoSplit) +{ + auto data = generateSample( + { + { 0, 200, 500 }, + { 100, 300, 500 }, + }); + printf("Stage 7: Overlapping ranges (0-200, 100-300), no split\n"); + verifyExactBoundaries(data, { 1000 }); +} + +// ============================================================================= +// Stage 8: Minimum-sized segments (default MIN_SEGMENT_SIZE=16) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage8_MinSizeSegments) +{ + // Each segment has exactly minSegSize=32 elements (the default for u32). + // With blockSize=16 and M=7, 2 blocks per segment is too few for full + // confirmation, but the Meff fallback to 1 still detects well-separated + // ranges. + auto data = generateSample( + { + { 1000, 1100, 150 }, + { 0, 50, 150 }, + }); + printf("Stage 8: Two segments of 150 elements each\n"); + verifyExactBoundaries(data, { 150, 150 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage8b_BelowMinSize_NoSplit) +{ + // 32 elements total < 2*DEFAULT_MIN_SEGMENT_SIZE=64, so no split + auto data = generateSample( + { + { 1000, 1100, 16 }, + { 0, 50, 16 }, + }); + printf("Stage 8b: Below default min size, no split expected\n"); + verifyExactBoundaries(data, { 32 }); +} + +// ============================================================================= +// Stage 9: Large dataset with 3 ranges +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage9_LargeDataset) +{ + auto data = generateSample( + { + { 0, 1000, 10000 }, + { 50000, 60000, 10000 }, + { 100000, 110000, 10000 }, + }); + printf("Stage 9: Large dataset, 3 ranges x 10000 elements\n"); + verifyExactBoundaries(data, { 10000, 10000, 10000 }); +} + +// ============================================================================= +// Stage 10: Progressively closer ranges +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage10_Gap1000) +{ + auto data = generateSample( + { + { 0, 100, 200 }, + { 1100, 1200, 200 }, + }); + printf("Stage 10: Gap=1000\n"); + verifyExactBoundaries(data, { 200, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage10_Gap100) +{ + auto data = generateSample( + { + { 0, 100, 200 }, + { 200, 300, 200 }, + }); + printf("Stage 10: Gap=100\n"); + verifyExactBoundaries(data, { 200, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage10_Gap10) +{ + auto data = generateSample( + { + { 0, 100, 200 }, + { 110, 200, 200 }, + }); + printf("Stage 10: Gap=10\n"); + verifyExactBoundaries(data, { 200, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage10_Gap1) +{ + auto data = generateSample( + { + { 0, 100, 200 }, + { 101, 200, 200 }, + }); + printf("Stage 10: Gap=1\n"); + verifyExactBoundaries(data, { 200, 200 }); +} + +// ============================================================================= +// Stage 11: Four ranges in non-monotonic order +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage11_FourRanges_Shuffled) +{ + // D=[3000,3100], A=[0,50], C=[1000,1100], B=[500,550] + auto data = generateSample( + { + { 3000, 3100, 150 }, + { 0, 50, 200 }, + { 1000, 1100, 150 }, + { 500, 550, 250 }, + }); + printf("Stage 11: Four ranges in non-monotonic order\n"); + verifyExactBoundaries(data, { 150, 200, 150, 250 }); +} + +// ============================================================================= +// Stage 12: Different element widths with exact boundary verification +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage12_Width8bit) +{ + // u8: minSegSize=128, blockSize=64. Need >= M*64 = 448 elts per segment. + auto data = generateTypedSample({ + { 200, 250, 512 }, + { 0, 30, 512 }, + }); + printf("Stage 12: u8 two ranges (200-250, 0-30)\n"); + verifyTypedExactBoundaries(data, { 512, 512 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage12_Width16bit) +{ + // u16: minSegSize=64, blockSize=32. Need >= M*32 = 224 elts per segment. + auto data = generateTypedSample({ + { 0, 100, 256 }, + { 50000, 60000, 256 }, + { 200, 300, 256 }, + }); + printf("Stage 12: u16 three ascending-then-low ranges\n"); + verifyTypedExactBoundaries(data, { 256, 256, 256 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage12_Width64bit) +{ + // u64: minSegSize=32, blockSize=16. Need >= M*16 = 112 elts per segment. + auto data = generateTypedSample({ + { 1000000000ULL, 1000001000ULL, 150 }, + { 0, 500, 150 }, + }); + printf("Stage 12: u64 two ranges (1e9-range, 0-500)\n"); + verifyTypedExactBoundaries(data, { 150, 150 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage12_Width8bit_ThreeRanges) +{ + // u8: blockSize=64, need >= 448 elts per segment for M=7. + auto data = generateTypedSample({ + { 0, 10, 512 }, + { 100, 110, 512 }, + { 200, 210, 512 }, + }); + printf("Stage 12: u8 three ascending ranges\n"); + verifyTypedExactBoundaries(data, { 512, 512, 512 }); +} + +// ============================================================================= +// Stage 13: Custom minSegmentSize parameter +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage13_SmallMinSegSize_AllowsSmallSegments) +{ + // With default minSegmentSize (32 for u32), total < 2*32 triggers early + // exit (no split). With minSegmentSize=4, the early exit threshold drops + // to 2*4=8, allowing the split to proceed. blockSize=4/2=2, so 24/2=12 + // blocks per segment, enough for M=7 confirmation. + auto data = generateSample( + { + { 1000, 1100, 24 }, + { 0, 50, 24 }, + }); + printf("Stage 13: minSegmentSize=4 allows 24-element segments\n"); + verifyExactBoundariesWithMinSegSize(data, { 24, 24 }, 4); +} + +TEST_F(SplitByRangeGeneratorTest, Stage13_LargeMinSegSize_PreventsSmallSplits) +{ + // With minSegmentSize=200, 100-element segments are too small to split. + auto data = generateSample( + { + { 0, 100, 100 }, + { 5000, 6000, 100 }, + }); + printf("Stage 13: minSegmentSize=200 prevents split\n"); + verifyExactBoundariesWithMinSegSize(data, { 200 }, 200); +} + +TEST_F(SplitByRangeGeneratorTest, Stage13_DefaultParam_SameAsUnparameterized) +{ + // Explicitly passing the default value should produce the same result + auto data = generateSample( + { + { 0, 100, 200 }, + { 1000, 1100, 200 }, + }); + printf("Stage 13: Explicit default minSegmentSize=32\n"); + verifyExactBoundariesWithMinSegSize(data, { 200, 200 }, 32); +} + +// ============================================================================= +// Stage 14: Repeated ranges (same value range appearing multiple times, +// separated by different ranges) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage14_ABA_SameRangeTwice) +{ + // Range A appears twice, separated by Range B. + // The algorithm should detect 3 segments even though A repeats. + auto data = generateSample( + { + { 100, 200, 200 }, + { 500, 600, 200 }, + { 100, 200, 200 }, + }); + printf("Stage 14: A-B-A pattern (same range twice)\n"); + verifyExactBoundaries(data, { 200, 200, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage14_ABAB_TwoRangesRepeated) +{ + // Two ranges each appearing twice: A, B, A, B. + auto data = generateSample( + { + { 0, 100, 150 }, + { 500, 600, 150 }, + { 0, 100, 150 }, + { 500, 600, 150 }, + }); + printf("Stage 14: A-B-A-B pattern (two ranges repeated)\n"); + verifyExactBoundaries(data, { 150, 150, 150, 150 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage14_ABCBA_Palindrome) +{ + // Palindrome pattern: ranges go up then back down to same values. + auto data = generateSample( + { + { 0, 50, 150 }, + { 500, 600, 150 }, + { 2000, 2100, 150 }, + { 500, 600, 150 }, + { 0, 50, 150 }, + }); + printf("Stage 14: A-B-C-B-A palindrome pattern\n"); + verifyExactBoundaries(data, { 150, 150, 150, 150, 150 }); +} + +// ============================================================================= +// Stage 15: Short segments between larger ones (confirmation window stress) +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage15_ShortMiddle) +{ + // Short segment between two large segments. Must span >= M blocks + // (7*16=112 for u32) for both adjacent boundaries' confirmation windows. + auto data = generateSample( + { + { 5000, 6000, 300 }, + { 0, 100, 128 }, + { 8000, 9000, 300 }, + }); + printf("Stage 15: Short middle segment\n"); + verifyExactBoundaries(data, { 300, 128, 300 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage15_TwoShortMiddles) +{ + // Two short segments between larger ones. + auto data = generateSample( + { + { 5000, 6000, 200 }, + { 0, 100, 128 }, + { 8000, 9000, 200 }, + { 200, 300, 128 }, + { 12000, 13000, 200 }, + }); + printf("Stage 15: Two short middle segments\n"); + verifyExactBoundaries(data, { 200, 128, 200, 128, 200 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage15_ShortFirst) +{ + // Short segment at the beginning. + auto data = generateSample( + { + { 0, 100, 128 }, + { 5000, 6000, 300 }, + }); + printf("Stage 15: Short first segment\n"); + verifyExactBoundaries(data, { 128, 300 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage15_ShortLast) +{ + // Short segment at the end. + auto data = generateSample( + { + { 5000, 6000, 300 }, + { 0, 100, 128 }, + }); + printf("Stage 15: Short last segment\n"); + verifyExactBoundaries(data, { 300, 128 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage15_ConsecutiveShort) +{ + // Two consecutive short segments. + auto data = generateSample( + { + { 5000, 6000, 200 }, + { 0, 100, 128 }, + { 2000, 2100, 128 }, + { 8000, 9000, 200 }, + }); + printf("Stage 15: Two consecutive short segments\n"); + verifyExactBoundaries(data, { 200, 128, 128, 200 }); +} + +// ============================================================================= +// Stage 16: Repeated ranges with short separators +// ============================================================================= + +TEST_F(SplitByRangeGeneratorTest, Stage16_ABA_ShortB) +{ + // A-B-A where B is a short segment (>= M*blockSize = 112 for u32). + auto data = generateSample( + { + { 100, 200, 300 }, + { 5000, 6000, 128 }, + { 100, 200, 300 }, + }); + printf("Stage 16: A-B-A with short B\n"); + verifyExactBoundaries(data, { 300, 128, 300 }); +} + +TEST_F(SplitByRangeGeneratorTest, Stage16_ABAB_ShortB) +{ + // A-B-A-B where both B segments are short. + auto data = generateSample( + { + { 0, 100, 200 }, + { 5000, 6000, 128 }, + { 0, 100, 200 }, + { 5000, 6000, 128 }, + }); + printf("Stage 16: A-B-A-B with short B segments\n"); + verifyExactBoundaries(data, { 200, 128, 200, 128 }); +} + +// ============================================================================= +// Randomized generator: many test cases with varying parameters +// +// Default: 200 seeds (fast enough for CI). +// Override with env var SPLIT_BYRANGE_NUM_SEEDS for exhaustive local runs: +// SPLIT_BYRANGE_NUM_SEEDS=10000 buck test ... +// ============================================================================= + +static unsigned getNumSeeds() +{ + const char* env = std::getenv("SPLIT_BYRANGE_NUM_SEEDS"); + if (env) { + unsigned n = static_cast(std::strtoul(env, nullptr, 10)); + if (n > 0) + return n; + } + return 200; +} + +// Invariants that guarantee exact boundary detection for all generators: +// +// 1. Gap between adjacent ranges ≥ 2 × max(amp_left, amp_right). +// The inter-range gap must dominate the intra-range amplitude on BOTH +// sides. We pre-generate all amplitudes, then compute each gap based +// on the actual adjacent pair — no global worst-case needed. +// +// 2. Each segment ≥ 512 elements (32 blocks at blockSize=16). +// Well above the 7-block minimum for M=7 confirmation windows. +// +// 3. FIXED_MIN_SEG_SIZE=32 → blockSize=32/2=16. With 16 elements per +// block, the probability of the stability heuristic false-negative +// is negligible. +// Custom minSegSize values are tested deterministically in Stage 13. +// +// These invariants are symmetric — ascending/descending/valley all use +// the same parameters. + +static constexpr uint64_t AMP_MIN = 50; +static constexpr uint64_t AMP_MAX = 500; +static constexpr int FIXED_MIN_SEG_SIZE = 32; +static constexpr size_t MIN_SEG_ELTS = 512; + +// Helper: build ascending ranges from pre-generated parameters. +// Returns the number of ranges that fit in the value space. +// rangeData and expectedSizes are appended to. +static size_t buildAscendingRanges( + DataGen& gen, + uint64_t maxVal, + int nbRanges, + std::vector& rangeData, + std::vector& expectedSizes) +{ + size_t const minSeg = MIN_SEG_ELTS; + + // Clamp ampMax so that nbRanges ranges can fit in [0, maxVal]. + // With N ranges of amplitude A: total = N*A + (N-1)*(2*A+1) = + // A*(3N-2)+(N-1). So A ≤ (maxVal - N + 1) / (3N - 2). + uint64_t ampMax = AMP_MAX; + uint64_t ampMin = AMP_MIN; + if (maxVal < UINT64_MAX && nbRanges >= 1) { + uint64_t denom = (uint64_t)(3 * nbRanges - 2); + uint64_t numer = (maxVal >= (uint64_t)(nbRanges - 1)) + ? maxVal - (uint64_t)(nbRanges - 1) + : 0; + uint64_t budget = numer / denom; + // Allow smaller amplitudes for narrow types (e.g., u8). + // Floor at 10 to ensure blocks have meaningful variation. + ampMin = std::min(ampMin, std::max(budget / 2, (uint64_t)10)); + if (budget < ampMin) + return 0; // value space too small for this many ranges + ampMax = std::min(ampMax, budget); + } + + // Phase 1: pre-generate all amplitudes and segment sizes so that we + // know adjacent amplitudes when computing gaps. + std::vector segSizes; + std::vector amplitudes; + for (int r = 0; r < nbRanges; r++) { + segSizes.push_back(gen.usize_range("segSize", minSeg, minSeg * 3)); + amplitudes.push_back(gen.u64_range("amp", ampMin, ampMax)); + } + + // Phase 2: lay out ranges in ascending order. The gap between range i + // and range i+1 is ≥ 2 × max(amp[i], amp[i+1]), ensuring the inter- + // range separation always dominates the intra-range variation on BOTH + // sides of every boundary. + uint64_t cursor = 0; + size_t rangesBuilt = 0; + for (int r = 0; r < nbRanges; r++) { + uint64_t amplitude = amplitudes[r]; + if (cursor + amplitude > maxVal) { + if (r == 0) { + amplitude = maxVal > cursor ? maxVal - cursor : 0; + } else { + break; + } + } + + uint64_t lo = cursor; + uint64_t hi = std::min(cursor + amplitude, maxVal); + + for (size_t i = 0; i < segSizes[r]; i++) { + rangeData.push_back(gen.u64_range("val", lo, hi)); + } + expectedSizes.push_back(segSizes[r]); + rangesBuilt++; + + // Gap to next range: based on max of this and next amplitude. + if (r + 1 < nbRanges) { + uint64_t gapBase = std::max(amplitude, amplitudes[(size_t)r + 1]); + uint64_t minGap = gapBase * 2 + 1; + uint64_t maxGap = gapBase * 4 + 100; + // Cap maxGap so remaining ranges can still fit. + // Each remaining range needs at least ampMin + minGap space. + int remaining = nbRanges - r - 1; + if (remaining > 0 && maxVal < UINT64_MAX) { + uint64_t reservePerRange = ampMin + ampMin * 2 + 1; + uint64_t reserved = (uint64_t)remaining * reservePerRange; + if (hi + minGap + reserved <= maxVal) { + uint64_t slack = maxVal - hi - reserved; + maxGap = std::min(maxGap, slack); + } + } + if (maxGap < minGap) + maxGap = minGap; + uint64_t gap = gen.u64_range("gap", minGap, maxGap); + cursor = hi + gap; + if (cursor > maxVal) + break; + } + } + return rangesBuilt; +} + +// Dispatch rangeData (uint64_t) to width-specific verification. +static void verifyMultiWidth( + SplitByRangeGeneratorTest& test, + size_t eltWidth, + const std::vector& rangeData, + const std::vector& expectedSizes) +{ + switch (eltWidth) { + case 1: { + std::vector typed(rangeData.begin(), rangeData.end()); + test.verifyTypedExactBoundaries( + typed, expectedSizes, FIXED_MIN_SEG_SIZE); + break; + } + case 2: { + std::vector typed(rangeData.begin(), rangeData.end()); + test.verifyTypedExactBoundaries( + typed, expectedSizes, FIXED_MIN_SEG_SIZE); + break; + } + case 4: { + std::vector typed(rangeData.begin(), rangeData.end()); + test.verifyTypedExactBoundaries( + typed, expectedSizes, FIXED_MIN_SEG_SIZE); + break; + } + case 8: { + test.verifyTypedExactBoundaries( + rangeData, expectedSizes, FIXED_MIN_SEG_SIZE); + break; + } + } +} + +// Generate one ascending-range test case from a seed. +static bool runAscendingRangeTest( + SplitByRangeGeneratorTest& test, + unsigned seed) +{ + DataGen gen(seed); + + size_t const eltWidth = size_t(1) << (int)gen.u32_range("eltW", 0, 3); + uint64_t const maxVal = + (eltWidth == 8) ? UINT64_MAX : (uint64_t(1) << (eltWidth * 8)) - 1; + int const nbRanges = (int)gen.u32_range("nbRanges", 1, 8); + + std::vector rangeData; + std::vector expectedSizes; + size_t built = buildAscendingRanges( + gen, maxVal, nbRanges, rangeData, expectedSizes); + + if (built == 0) + return false; + + verifyMultiWidth(test, eltWidth, rangeData, expectedSizes); + return true; +} + +// Generate one descending-range test case from a seed. +// Uses the same invariants as ascending (the algorithm is symmetric). +// Builds ascending ranges then reverses segment order — structurally different +// from ascending but with identical numeric parameters and multi-width +// coverage. +static bool runDescendingRangeTest( + SplitByRangeGeneratorTest& test, + unsigned seed) +{ + DataGen gen(seed); + + size_t const eltWidth = size_t(1) << (int)gen.u32_range("eltW", 0, 3); + uint64_t const maxVal = + (eltWidth == 8) ? UINT64_MAX : (uint64_t(1) << (eltWidth * 8)) - 1; + int const nbRanges = (int)gen.u32_range("nbRanges", 2, 8); + + // Build ascending ranges to get segment boundaries and values. + std::vector ascData; + std::vector ascSizes; + size_t built = + buildAscendingRanges(gen, maxVal, nbRanges, ascData, ascSizes); + + if (built < 2) + return false; + + // Reverse segment order to create descending pattern. + std::vector rangeData; + std::vector expectedSizes; + size_t pos = ascData.size(); + for (size_t i = ascSizes.size(); i > 0; i--) { + size_t sz = ascSizes[i - 1]; + pos -= sz; + rangeData.insert( + rangeData.end(), + ascData.begin() + pos, + ascData.begin() + pos + sz); + expectedSizes.push_back(sz); + } + + verifyMultiWidth(test, eltWidth, rangeData, expectedSizes); + return true; +} + +// Generate one valley-pattern test case from a seed. +// Valley = descending then ascending ranges (e.g., high-low-high). +// Uses the same invariants as ascending/descending (the algorithm is +// symmetric). Multi-width coverage matches ascending. +static bool runValleyRangeTest(SplitByRangeGeneratorTest& test, unsigned seed) +{ + DataGen gen(seed); + + size_t const eltWidth = size_t(1) << (int)gen.u32_range("eltW", 0, 3); + uint64_t const maxVal = + (eltWidth == 8) ? UINT64_MAX : (uint64_t(1) << (eltWidth * 8)) - 1; + int const nbRanges = (int)gen.u32_range("nbRanges", 3, 8); + + // Build ascending ranges to get segment boundaries and values. + std::vector ascData; + std::vector ascSizes; + size_t built = + buildAscendingRanges(gen, maxVal, nbRanges, ascData, ascSizes); + + if (built < 3) + return false; + + // Rearrange into valley: first half reversed, then second half in order. + // E.g., for segments [A, B, C, D, E]: valley = [B, A, C, D, E] + // (first half [A,B] reversed → [B,A], then [C,D,E] in order) + size_t mid = built / 2; + + // Compute segment start offsets in ascData. + std::vector offsets(built); + offsets[0] = 0; + for (size_t i = 1; i < built; i++) { + offsets[i] = offsets[i - 1] + ascSizes[i - 1]; + } + + std::vector rangeData; + std::vector expectedSizes; + + // First half reversed (indices mid-1, mid-2, ..., 0) + for (size_t i = mid; i > 0; i--) { + size_t idx = i - 1; + rangeData.insert( + rangeData.end(), + ascData.begin() + offsets[idx], + ascData.begin() + offsets[idx] + ascSizes[idx]); + expectedSizes.push_back(ascSizes[idx]); + } + // Second half in order (indices mid, mid+1, ..., built-1) + for (size_t i = mid; i < built; i++) { + rangeData.insert( + rangeData.end(), + ascData.begin() + offsets[i], + ascData.begin() + offsets[i] + ascSizes[i]); + expectedSizes.push_back(ascSizes[i]); + } + + verifyMultiWidth(test, eltWidth, rangeData, expectedSizes); + return true; +} + +TEST_F(SplitByRangeGeneratorTest, Randomized_AscendingRanges) +{ + unsigned const numSeeds = getNumSeeds(); + int tested = 0; + for (unsigned seed = 0; seed < numSeeds; seed++) { + SetUp(); + try { + if (runAscendingRangeTest(*this, seed)) { + tested++; + } + } catch (const std::exception& e) { + FAIL() << "Seed " << seed << " failed: " << e.what(); + } + } + printf("Randomized ascending: %d / %u seeds verified\n", tested, numSeeds); + EXPECT_GE(tested, (int)(numSeeds * 95 / 100)); +} + +TEST_F(SplitByRangeGeneratorTest, Randomized_DescendingRanges) +{ + unsigned const numSeeds = getNumSeeds(); + int tested = 0; + for (unsigned seed = 0; seed < numSeeds; seed++) { + SetUp(); + try { + if (runDescendingRangeTest(*this, seed)) { + tested++; + } + } catch (const std::exception& e) { + FAIL() << "Seed " << seed << " failed: " << e.what(); + } + } + printf("Randomized descending: %d / %u seeds verified\n", tested, numSeeds); + EXPECT_GE(tested, (int)(numSeeds * 95 / 100)); +} + +TEST_F(SplitByRangeGeneratorTest, Randomized_ValleyRanges) +{ + unsigned const numSeeds = getNumSeeds(); + int tested = 0; + for (unsigned seed = 0; seed < numSeeds; seed++) { + SetUp(); + try { + if (runValleyRangeTest(*this, seed)) { + tested++; + } + } catch (const std::exception& e) { + FAIL() << "Seed " << seed << " failed: " << e.what(); + } + } + printf("Randomized valley: %d / %u seeds verified\n", tested, numSeeds); + EXPECT_GE(tested, (int)(numSeeds * 95 / 100)); +} + +} // namespace tests +} // namespace openzl diff --git a/tests/codecs/test_tokenize.cpp b/tests/codecs/test_tokenize.cpp index 441273add..3f2725f8c 100644 --- a/tests/codecs/test_tokenize.cpp +++ b/tests/codecs/test_tokenize.cpp @@ -9,6 +9,7 @@ #include "openzl/openzl.hpp" #include "tests/codecs/test_codec.h" +#include "tests/datagen/random_producer/compat_uniform_distribution.h" namespace openzl { namespace tests { @@ -234,7 +235,7 @@ TEST_F(TokenizeTest, TokenizeStringSorted) { "hello", "me", "world", "zstd" }, std::vector{ 3, 0, 2, 0, 1, 3 }); - std::uniform_int_distribution chrDist('a', 'z'); + datagen::compat_uniform_int_distribution chrDist('a', 'z'); std::uniform_int_distribution lenDist(0, 5); std::mt19937 gen(0xdeadbeef); diff --git a/tests/compat/CMakeLists.txt b/tests/compat/CMakeLists.txt new file mode 100644 index 000000000..b6f0bfad6 --- /dev/null +++ b/tests/compat/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. + +# Compatibility tests for OpenZL public headers under various language modes. +# Each test compiles a trivial program that #includes the umbrella header +# (openzl/openzl.h) and exits. The build is the actual check; the runtime body +# is a no-op. + +add_executable(c99_compat c99_compat.c) +target_link_libraries(c99_compat PRIVATE openzl) +set_target_properties(c99_compat PROPERTIES + C_STANDARD 99 + C_STANDARD_REQUIRED ON + C_EXTENSIONS OFF +) +if(NOT MSVC) + target_compile_options(c99_compat PRIVATE -Werror -Wall -Wextra) +endif() +add_test(NAME c99_compat COMMAND c99_compat) diff --git a/tests/compat/c99_compat.c b/tests/compat/c99_compat.c new file mode 100644 index 000000000..200cb64ec --- /dev/null +++ b/tests/compat/c99_compat.c @@ -0,0 +1,13 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// Compile-time check that OpenZL's public headers remain usable from a strict +// C99 translation unit. The body is intentionally trivial — building this +// target IS the test. Guards against regressions like the duplicate-typedef +// issue fixed in PR #293 (typedef redefinition is a C11 feature). + +#include "openzl/openzl.h" + +int main(void) +{ + return 0; +} diff --git a/tests/compress/graphs/sddl2/README.md b/tests/compress/graphs/sddl2/README.md new file mode 100644 index 000000000..be6dd3975 --- /dev/null +++ b/tests/compress/graphs/sddl2/README.md @@ -0,0 +1,41 @@ +# SDDL2 Test Suite + +## Test Organization + +The tests are split into two layers: + +### Assembly Execution Tests (`test_sddl2_assembly_execution.cpp`) + +End-to-end tests that exercise the full pipeline: assembly source → assembler +→ bytecode → VM execution → segment output. Each test case contains an inline +assembly program as a raw string literal, assembles it, executes the resulting +bytecode against an input buffer, and verifies the output segments and error +codes. + +### VM Unit Tests (`test_sddl2_*.cpp`) + +Lower-level tests that exercise individual VM operations directly through the +C API (e.g. `SDDL2_op_add`, `SDDL2_Stack_push`, `SDDL2_op_expect_true`). +These set up the stack and input cursor manually, call a single operation, and +verify the resulting stack state, error codes, and side effects. They use a +shared test fixture defined in `utils.h`. + +| File | What it covers | +|------|----------------| +| `test_sddl2_vm.cpp` | Stack push/pop, value types | +| `test_sddl2_arithmetic.cpp` | Math operations (add, sub, mul, div, mod, abs, neg) | +| `test_sddl2_logic.cpp` | Bitwise logic (and, or, xor, not) | +| `test_sddl2_segments.cpp` | Unspecified segment creation, bounds checking | +| `test_sddl2_tagged_segments.cpp` | Tagged segment creation with types | +| `test_sddl2_input.cpp` | Input cursor management | +| `test_sddl2_expect.cpp` | `expect_true` validation operation | +| `test_sddl2_stack_depth.cpp` | `push.stack_depth` introspection | +| `test_sddl2_stack_drop_if.cpp` | Conditional stack drop | +| `test_sddl2_type_fixed_array.cpp` | `type.fixed_array` composite type | +| `test_sddl2_type_structure.cpp` | `type.structure` composite type | +| `test_sddl2_type_sizeof.cpp` | Type size calculations | +| `test_sddl2_vm_kind_size.cpp` | Type kind → byte size mapping | +| `test_sddl2_field_extraction.cpp` | Field extraction from segments | +| `test_sddl2_structure_segment.cpp` | Structure-typed segments | +| `test_sddl2_structure_split_integration.cpp` | Structure splitting integration | +| `test_sddl2_load.cpp` | Load operations | diff --git a/tests/compress/graphs/sddl2/test_sddl2_arithmetic.cpp b/tests/compress/graphs/sddl2/test_sddl2_arithmetic.cpp new file mode 100644 index 000000000..bccefc55b --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_arithmetic.cpp @@ -0,0 +1,267 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2ArithmeticTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Basic Operation Tests +// ============================================================================ + +TEST_F(SDDL2ArithmeticTest, AddBasic) +{ + // 5 + 3 = 8 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 8); +} + +TEST_F(SDDL2ArithmeticTest, SubBasic) +{ + // 10 - 4 = 6 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(4)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_sub(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 6); +} + +TEST_F(SDDL2ArithmeticTest, MulBasic) +{ + // 7 * 6 = 42 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(7)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(6)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_mul(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 42); +} + +TEST_F(SDDL2ArithmeticTest, DivBasic) +{ + // 20 / 4 = 5 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(4)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_div(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 5); +} + +TEST_F(SDDL2ArithmeticTest, ModBasic) +{ + // 17 % 5 = 2 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(17)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_mod(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 2); +} + +TEST_F(SDDL2ArithmeticTest, AbsBasic) +{ + // abs(-42) = 42 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_abs(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 42); + + // abs(42) = 42 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_abs(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 42); +} + +TEST_F(SDDL2ArithmeticTest, NegBasic) +{ + // -(-42) = 42 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_neg(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 42); + + // -(42) = -42 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_neg(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, -42); +} + +// ============================================================================ +// Overflow Detection Tests +// ============================================================================ + +TEST_F(SDDL2ArithmeticTest, AddOverflow) +{ + // INT64_MAX + 1 = overflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MAX)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); + + // INT64_MIN + (-1) = overflow + SDDL2_Stack_init(stack_); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); +} + +TEST_F(SDDL2ArithmeticTest, SubOverflow) +{ + // INT64_MIN - 1 = overflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_sub(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); + + // INT64_MAX - (-1) = overflow + SDDL2_Stack_init(stack_); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MAX)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_sub(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); +} + +TEST_F(SDDL2ArithmeticTest, MulOverflow) +{ + // INT64_MAX * 2 = overflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MAX)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_mul(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); + + // INT64_MIN * (-1) = overflow + SDDL2_Stack_init(stack_); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_mul(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); +} + +TEST_F(SDDL2ArithmeticTest, AbsOverflow) +{ + // abs(INT64_MIN) = overflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_abs(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); +} + +TEST_F(SDDL2ArithmeticTest, NegOverflow) +{ + // -(INT64_MIN) = overflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_neg(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); +} + +// ============================================================================ +// Divide-by-Zero Tests +// ============================================================================ + +TEST_F(SDDL2ArithmeticTest, DivByZero) +{ + // 10 / 0 = error + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_div(stack_, NULL, 0), SDDL2_DIV_ZERO); +} + +TEST_F(SDDL2ArithmeticTest, ModByZero) +{ + // 10 % 0 = error + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_mod(stack_, NULL, 0), SDDL2_DIV_ZERO); +} + +TEST_F(SDDL2ArithmeticTest, DivOverflowSpecial) +{ + // INT64_MIN / -1 = overflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_div(stack_, NULL, 0), SDDL2_MATH_OVERFLOW); +} + +// ============================================================================ +// Type Mismatch Tests +// ============================================================================ + +TEST_F(SDDL2ArithmeticTest, AddTypeMismatch) +{ + // I64 + Tag = type mismatch + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2ArithmeticTest, MulTypeMismatch) +{ + // Tag * I64 = type mismatch + SDDL2_Type t = { .kind = SDDL2_TYPE_I32LE, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(t)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_mul(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2ArithmeticTest, AbsTypeMismatch) +{ + // abs(Tag) = type mismatch + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_abs(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// Stack Underflow Tests +// ============================================================================ + +TEST_F(SDDL2ArithmeticTest, AddUnderflow) +{ + // Empty stack - should underflow + EXPECT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); + + // Only one operand - should underflow + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2ArithmeticTest, NegUnderflow) +{ + // Empty stack - should underflow + EXPECT_EQ(SDDL2_op_neg(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// Edge Case Tests +// ============================================================================ + +TEST_F(SDDL2ArithmeticTest, ZeroOperations) +{ + // 0 + 0 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); + + // 0 * 1000 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1000)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_mul(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); + + // abs(0) = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_abs(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2ArithmeticTest, NegativeOperations) +{ + // -5 + 3 = -2 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-5)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, -2); + + // -10 / -2 = 5 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_div(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 5); + + // -17 % 5 = -2 (C89/C99 behavior) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-17)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_mod(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, -2); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_assembly_execution.cpp b/tests/compress/graphs/sddl2/test_sddl2_assembly_execution.cpp new file mode 100644 index 000000000..f91452727 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_assembly_execution.cpp @@ -0,0 +1,1435 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" +#include "tools/sddl2/assembler/Assembler.h" + +namespace openzl { +namespace sddl2 { +namespace testing { + +class SDDL2AssemblyExecutionTest : public SDDL2TestBase { + protected: + void SetUp() override + { + SDDL2_Segment_list_init(&segments_, alloc_fn, alloc_ctx_); + } + + void TearDown() override + { + SDDL2_Segment_list_destroy(&segments_); + } + + SDDL2_Error run(const std::string& assembly, const std::string& input) + { + auto bytecode = assembler_.assemble(assembly); + return SDDL2_execute_bytecode( + bytecode.data(), + bytecode.size(), + input.data(), + input.size(), + &segments_); + } + Assembler assembler_; + SDDL2_Segment_list segments_; +}; + +// ============================================================================ +// Segment Creation Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, SimpleSegmentCreation) +{ + const std::string input = "Hello"; + ASSERT_EQ( + run(R"( + push.i32 5 + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].tag, 0u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 5u); +} + +TEST_F(SDDL2AssemblyExecutionTest, ZeroSizeSegment) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 0 + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].size_bytes, 0u); +} + +// ============================================================================ +// Push Type Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, PushTypeExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.type.u8 + push.type.i32le + push.type.f64be + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushTypeWithSegmentCreateTagged) +{ + const std::string input( + { 0x01, + 0x00, + 0x00, + 0x00, + 0x02, + 0x00, + 0x00, + 0x00, + 0x03, + 0x00, + 0x00, + 0x00 }); + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.i32le + push.u32 3 + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 12u); + EXPECT_EQ(segments_.items[0].type.kind, SDDL2_TYPE_I32LE); + EXPECT_EQ(segments_.items[0].type.width, 1u); +} + +TEST_F(SDDL2AssemblyExecutionTest, MultipleSegments) +{ + // Input data: 12 bytes [01 02 03 04][05 06 07 08][09 0A 0B 0C] + const std::string input( + { 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0A, + 0x0B, + 0x0C }); + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.u8 + push.u32 4 + segment.create_tagged + push.tag 200 + push.type.i32le + push.u32 1 + segment.create_tagged + push.i32 4 + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 3u); + + // Segment 1: U8 array, tag=100, 4 bytes starting at offset 0 + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 4u); + EXPECT_EQ(segments_.items[0].type.kind, SDDL2_TYPE_U8); + EXPECT_EQ(segments_.items[0].type.width, 1u); + + // Segment 2: I32LE scalar, tag=200, 4 bytes starting at offset 4 + EXPECT_EQ(segments_.items[1].tag, 200u); + EXPECT_EQ(segments_.items[1].start_pos, 4u); + EXPECT_EQ(segments_.items[1].size_bytes, 4u); + EXPECT_EQ(segments_.items[1].type.kind, SDDL2_TYPE_I32LE); + EXPECT_EQ(segments_.items[1].type.width, 1u); + + // Segment 3: Unspecified, tag=0, 4 bytes starting at offset 8 + EXPECT_EQ(segments_.items[2].tag, 0u); + EXPECT_EQ(segments_.items[2].start_pos, 8u); + EXPECT_EQ(segments_.items[2].size_bytes, 4u); + EXPECT_EQ(segments_.items[2].type.kind, SDDL2_TYPE_BYTES); +} + +TEST_F(SDDL2AssemblyExecutionTest, MultipleTypedSegments) +{ + const std::string input({ 0x42, 0x00, 0x00, (char)0x80, 0x3F }); + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.u8 + push.u32 1 + segment.create_tagged + push.tag 200 + push.type.f32le + push.u32 1 + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 2u); + + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 1u); + EXPECT_EQ(segments_.items[0].type.kind, SDDL2_TYPE_U8); + EXPECT_EQ(segments_.items[0].type.width, 1u); + + EXPECT_EQ(segments_.items[1].tag, 200u); + EXPECT_EQ(segments_.items[1].start_pos, 1u); + EXPECT_EQ(segments_.items[1].size_bytes, 4u); + EXPECT_EQ(segments_.items[1].type.kind, SDDL2_TYPE_F32LE); + EXPECT_EQ(segments_.items[1].type.width, 1u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushTagExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.tag 100 + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +// ============================================================================ +// MATH Operation Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, MathAddExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 5 + math.add + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, MathCombinedExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 2 + push.i32 3 + math.add + push.i32 4 + math.mul + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, MathAllOperations) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 5 + math.add + push.i32 20 + push.i32 8 + math.sub + push.i32 3 + push.i32 4 + math.mul + push.i32 20 + push.i32 4 + math.div + push.i32 17 + push.i32 5 + math.mod + push.i32 -42 + math.abs + push.i32 10 + math.neg + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, MathDivByZero) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i32 10 + push.i32 0 + math.div + halt + )", + input), + SDDL2_DIV_ZERO); +} + +TEST_F(SDDL2AssemblyExecutionTest, MathOverflow) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i64 0x7FFFFFFFFFFFFFFF + push.i64 1 + math.add + halt + )", + input), + SDDL2_MATH_OVERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, MathStackUnderflow) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i32 10 + math.add + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, MathTypeMismatch) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.type.u8 + push.type.i32le + math.add + halt + )", + input), + SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// CMP Operation Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, CmpAllOperations) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 10 + cmp.eq + push.i32 10 + push.i32 5 + cmp.ne + push.i32 5 + push.i32 10 + cmp.lt + push.i32 10 + push.i32 10 + cmp.le + push.i32 10 + push.i32 5 + cmp.gt + push.i32 10 + push.i32 10 + cmp.ge + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, CmpFalseResults) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 5 + cmp.eq + push.i32 10 + push.i32 5 + cmp.lt + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, CmpNegativeNumbers) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 -10 + push.i32 5 + cmp.lt + push.i32 5 + push.i32 -10 + cmp.gt + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, CmpStackUnderflow) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i32 10 + cmp.eq + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, CmpTypeMismatch) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.tag 100 + push.tag 200 + cmp.eq + halt + )", + input), + SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// STACK Operation Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, StackDrop) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 20 + stack.drop + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDup) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + stack.dup + stack.drop + stack.drop + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackSwap) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 20 + stack.swap + stack.drop + stack.drop + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackOperationsMixedTypes) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.tag 100 + push.type.u8 + stack.dup + stack.swap + stack.drop + stack.drop + stack.drop + stack.drop + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDropUnderflow) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + stack.drop + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDupUnderflow) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + stack.dup + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackSwapUnderflow) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i32 10 + stack.swap + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// Invalid Bytecode / Missing Halt Tests +// ============================================================================ + +/** + * Uses hard-coded bytecode: intentionally malformed/truncated to test + * interpreter error handling of invalid bytecode structure. + */ +TEST_F(SDDL2AssemblyExecutionTest, InvalidBytecodeSize) +{ + const std::string input = "Test"; + uint8_t bytecode[] = { 0x01, 0x00, 0x03 }; + EXPECT_NE( + SDDL2_execute_bytecode( + bytecode, + sizeof(bytecode), + input.data(), + input.size(), + &segments_), + SDDL2_OK); +} + +/** + * Uses hand-crafted bytecode to ensure we test the interpreter's implicit + * halt behavior, not the assembler's. + * + * Bytecode: push.i32 5, segment.create_unspecified (no halt) + */ +TEST_F(SDDL2AssemblyExecutionTest, MissingHalt) +{ + const std::string input = "Test5"; + uint8_t bytecode[] = { + 0x03, 0x00, 0x01, 0x00, // push.i32 + 0x05, 0x00, 0x00, 0x00, // 5 + 0x01, 0x00, 0x0C, 0x00 // segment.create_unspecified + }; + ASSERT_EQ( + SDDL2_execute_bytecode( + bytecode, + sizeof(bytecode), + input.data(), + input.size(), + &segments_), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].size_bytes, 5u); +} + +// ============================================================================ +// type.fixed_array Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, TypeFixedArrayExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.type.u32le + push.i32 10 + type.fixed_array + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, TypeFixedArrayWithSegment) +{ + std::string input(40, '\0'); // mutable: modified below + input[4] = 0x01; + input[8] = 0x02; + input[12] = 0x03; + input[16] = 0x04; + input[20] = 0x05; + input[24] = 0x06; + input[28] = 0x07; + input[32] = 0x08; + input[36] = 0x09; + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.u32le + push.i32 10 + type.fixed_array + push.i32 1 + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 40u); + EXPECT_EQ(segments_.items[0].type.kind, SDDL2_TYPE_U32LE); + EXPECT_EQ(segments_.items[0].type.width, 10u); +} + +// ============================================================================ +// type.structure Test +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, TypeStructureExecution) +{ + const std::string input(1, '\0'); + ASSERT_EQ( + run(R"( + push.type.u8 + push.type.i16le + push.type.i32le + push.i64 3 + type.structure + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +// ============================================================================ +// push.current_pos Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, PushCurrentPosInitial) +{ + const std::string input = "Hello"; + ASSERT_EQ( + run(R"( + push.current_pos + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushCurrentPosAfterSegment) +{ + const std::string input = "HelloWorld"; + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.bytes + push.i32 5 + segment.create_tagged + push.tag 200 + push.type.bytes + push.current_pos + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 2u); + + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 5u); + + EXPECT_EQ(segments_.items[1].tag, 200u); + EXPECT_EQ(segments_.items[1].start_pos, 5u); + EXPECT_EQ(segments_.items[1].size_bytes, 5u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushCurrentPosMultiple) +{ + const std::string input = "0123456789ABCDEF"; + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.bytes + push.i32 3 + segment.create_tagged + push.tag 200 + push.type.bytes + push.current_pos + push.i32 2 + math.add + segment.create_tagged + push.tag 300 + push.type.bytes + push.current_pos + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 3u); + + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 3u); + + EXPECT_EQ(segments_.items[1].tag, 200u); + EXPECT_EQ(segments_.items[1].start_pos, 3u); + EXPECT_EQ(segments_.items[1].size_bytes, 5u); + + EXPECT_EQ(segments_.items[2].tag, 300u); + EXPECT_EQ(segments_.items[2].start_pos, 8u); + EXPECT_EQ(segments_.items[2].size_bytes, 8u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushCurrentPosArithmetic) +{ + const std::string input = "0123456789ABCDEFGHIJ"; + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.bytes + push.i32 10 + segment.create_tagged + push.tag 200 + push.type.bytes + push.current_pos + push.i32 0 + math.sub + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 2u); + + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 10u); + + EXPECT_EQ(segments_.items[1].tag, 200u); + EXPECT_EQ(segments_.items[1].start_pos, 10u); + EXPECT_EQ(segments_.items[1].size_bytes, 10u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushCurrentPosNoSideEffects) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 2 + segment.create_unspecified + push.current_pos + push.current_pos + math.sub + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 2u); +} + +// ============================================================================ +// push.remaining Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, PushRemainingInitial) +{ + const std::string input({ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + ASSERT_EQ( + run(R"( + push.remaining + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 10u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushRemainingAfterSegment) +{ + const std::string input({ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + ASSERT_EQ( + run(R"( + push.i32 5 + segment.create_unspecified + push.remaining + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 10u); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushRemainingMultiple) +{ + const std::string input({ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + EXPECT_EQ( + run(R"( + push.i32 3 + segment.create_unspecified + push.remaining + push.i32 5 + segment.create_unspecified + push.remaining + math.sub + segment.create_unspecified + halt + )", + input), + SDDL2_SEGMENT_BOUNDS); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushRemainingNoSideEffects) +{ + const std::string input({ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + ASSERT_EQ( + run(R"( + push.i32 3 + segment.create_unspecified + push.remaining + push.remaining + cmp.eq + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 4u); +} + +// ============================================================================ +// Logical Operations Error Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, LogicAndStackUnderflow) +{ + const std::string input(1, '\0'); + EXPECT_EQ( + run(R"( + push.i32 42 + logic.and + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, LogicOrEmptyStack) +{ + const std::string input(1, '\0'); + EXPECT_EQ( + run(R"( + logic.or + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, LogicXorTypeMismatch) +{ + const std::string input(1, '\0'); + EXPECT_EQ( + run(R"( + push.tag 100 + push.i32 42 + logic.xor + halt + )", + input), + SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2AssemblyExecutionTest, LogicNotEmptyStack) +{ + const std::string input(1, '\0'); + EXPECT_EQ( + run(R"( + logic.not + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, LogicNotTypeMismatch) +{ + const std::string input(1, '\0'); + EXPECT_EQ( + run(R"( + push.type.u8 + logic.not + halt + )", + input), + SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2AssemblyExecutionTest, LogicAllOperations) +{ + const std::string input(1, '\0'); + ASSERT_EQ( + run(R"( + push.i32 65280 + push.i32 4080 + logic.and + push.i32 15 + logic.or + push.i32 65535 + logic.xor + logic.not + stack.drop + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 0u); +} + +// ============================================================================ +// expect_true Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, ExpectTrueSuccess) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 1 + expect_true + push.i32 42 + expect_true + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, ExpectTrueFailure) +{ + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i32 0 + expect_true + halt + )", + input), + SDDL2_VALIDATION_FAILED); +} + +TEST_F(SDDL2AssemblyExecutionTest, ExpectTrueWithCmp) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 42 + push.i32 42 + cmp.eq + expect_true + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, ExpectTrueWithTrace) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + trace.start # Start trace collection + push.i32 150 + push.i32 200 + cmp.eq # Should record: "cmp.eq: 150 == 200 → 0" + push.i32 5 + push.i32 10 + cmp.lt # Should record: "cmp.lt: 5 < 10 → 1" + logic.or # Should record: "logic.or: 0 || 1 → 1" + logic.not # Should record: "logic.not: !1 → 0" + expect_true + halt + )", + input), + SDDL2_VALIDATION_FAILED); +} + +TEST_F(SDDL2AssemblyExecutionTest, ExpectWithStack) +{ + // 5 < 10 → 1, 1 & 0 → 0 → expect_true fails + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + trace.start + push.i32 100 + push.i32 200 + push.i32 5 + push.i32 10 + cmp.lt + push.i32 0 + logic.and + expect_true + halt + )", + input), + SDDL2_VALIDATION_FAILED); +} + +// ============================================================================ +// push.stack_depth Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, PushStackDepthEmpty) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.stack_depth + push.i32 0 + cmp.eq + expect_true + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushStackDepthTracking) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 20 + push.i32 30 + push.stack_depth + push.i32 3 + cmp.eq + expect_true + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, PushStackDepthArithmetic) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 1 + push.i32 2 + push.stack_depth + push.i32 10 + math.mul + push.i32 20 + cmp.eq + expect_true + halt + )", + input), + SDDL2_OK); +} + +// ============================================================================ +// stack.drop_if Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, StackDropIfTrue) +{ + // condition=1 (true) → drops 42 + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 42 + push.i32 1 + stack.drop_if + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDropIfFalse) +{ + // condition=0 (false) → keeps 42, then explicitly drop it + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 42 + push.i32 0 + stack.drop_if + stack.drop + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDropIfNonzero) +{ + // condition=42 (non-zero = true) → drops 100 + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 100 + push.i32 42 + stack.drop_if + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDropIfNegative) +{ + // condition=-1 (negative = true) → drops 50 + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 50 + push.i32 -1 + stack.drop_if + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDropIfUnderflow) +{ + // Only one value on stack, drop_if needs condition + value + const std::string input = "Test"; + EXPECT_EQ( + run(R"( + push.i32 42 + stack.drop_if + halt + )", + input), + SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2AssemblyExecutionTest, StackDropIfWithCmp) +{ + // 10 > 5 → 1 (true) → drops 99 + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 99 + push.i32 10 + push.i32 5 + cmp.gt + stack.drop_if + halt + )", + input), + SDDL2_OK); +} + +// ============================================================================ +// push.zero / Segment Zero Test +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, SegmentZero) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.zero + segment.create_unspecified + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].size_bytes, 0u); +} + +// ============================================================================ +// Variable Operation Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, VarStoreLoadExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 42 + push.i32 0 + var.store + push.i32 0 + var.load + push.i32 42 + cmp.eq + expect_true + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, VarMultipleRegistersExecution) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 0 + var.store + push.i32 20 + push.i32 1 + var.store + push.i32 30 + push.i32 2 + var.store + + push.i32 0 + var.load + push.i32 10 + cmp.eq + expect_true + + push.i32 1 + var.load + push.i32 20 + cmp.eq + expect_true + + push.i32 2 + var.load + push.i32 30 + cmp.eq + expect_true + halt + )", + input), + SDDL2_OK); +} + +// ============================================================================ +// jump_if Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, JumpIfTrueSkipsInstructions) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 2 + push.i32 1 + jump_if + push.i32 0 + expect_true + push.i32 1 + expect_true + halt + )", + input), + SDDL2_OK); +} + +TEST_F(SDDL2AssemblyExecutionTest, JumpIfFalseExecutesInstructions) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 2 + push.i32 0 + jump_if + push.i32 0 + expect_true + push.i32 1 + expect_true + halt + )", + input), + SDDL2_VALIDATION_FAILED); +} + +TEST_F(SDDL2AssemblyExecutionTest, JumpIfLargerThanInstructions) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.i32 10 + push.i32 1 + jump_if + halt + )", + input), + SDDL2_INVALID_BYTECODE); +} + +// ============================================================================ +// Zero-Size Tagged Segment Tests +// ============================================================================ + +TEST_F(SDDL2AssemblyExecutionTest, ZeroElementTaggedSegment) +{ + const std::string input = "Test"; + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.u16le + push.i64 0 + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[0].size_bytes, 0u); + EXPECT_EQ(segments_.items[0].type.kind, SDDL2_TYPE_U16LE); + EXPECT_EQ(segments_.items[0].type.width, 1u); +} + +TEST_F(SDDL2AssemblyExecutionTest, ZeroElementTaggedSegmentDoesNotAdvanceCursor) +{ + const std::string input({ 0x01, 0x00, 0x02, 0x00 }); + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.u16le + push.i64 0 + segment.create_tagged + push.tag 200 + push.type.u16le + push.i64 2 + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 2u); + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].size_bytes, 0u); + EXPECT_EQ(segments_.items[0].start_pos, 0u); + EXPECT_EQ(segments_.items[1].tag, 200u); + EXPECT_EQ(segments_.items[1].size_bytes, 4u); + EXPECT_EQ(segments_.items[1].start_pos, 0u); +} + +TEST_F(SDDL2AssemblyExecutionTest, ZeroWidthTypeInStructure) +{ + const std::string input({ 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 }); + ASSERT_EQ( + run(R"( + push.tag 100 + push.type.i32le + push.type.u16le + push.i64 0 + type.fixed_array + push.type.i32le + push.i64 3 + type.structure + push.i64 1 + segment.create_tagged + halt + )", + input), + SDDL2_OK); + EXPECT_EQ(segments_.count, 1u); + EXPECT_EQ(segments_.items[0].tag, 100u); + EXPECT_EQ(segments_.items[0].size_bytes, 8u); + EXPECT_EQ(segments_.items[0].type.kind, SDDL2_TYPE_STRUCTURE); + ASSERT_NE(segments_.items[0].type.struct_data, nullptr); + EXPECT_EQ(segments_.items[0].type.struct_data->member_count, 3u); + EXPECT_EQ(segments_.items[0].type.struct_data->total_size_bytes, 8u); +} + +} // namespace testing +} // namespace sddl2 +} // namespace openzl diff --git a/tests/compress/graphs/sddl2/test_sddl2_bitwise.cpp b/tests/compress/graphs/sddl2/test_sddl2_bitwise.cpp new file mode 100644 index 000000000..eac05f8b6 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_bitwise.cpp @@ -0,0 +1,108 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2BitwiseTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Basic Operation Tests +// ============================================================================ + +TEST_F(SDDL2BitwiseTest, BitAndBasic) +{ + // 0xFF00 & 0x0FF0 = 0x0F00 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0xFF00)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x0FF0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0x0F00); +} + +TEST_F(SDDL2BitwiseTest, BitOrBasic) +{ + // 0x00F0 | 0x0F00 = 0x0FF0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x00F0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x0F00)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0x0FF0); +} + +TEST_F(SDDL2BitwiseTest, BitXorBasic) +{ + // 0xAAAA ^ 0x5555 = 0xFFFF + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0xAAAA)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x5555)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0xFFFF); +} + +TEST_F(SDDL2BitwiseTest, BitNotBasic) +{ + // ~0 = -1 (all bits set) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, -1); +} + +// ============================================================================ +// Type Mismatch Tests +// ============================================================================ + +TEST_F(SDDL2BitwiseTest, BitAndTypeMismatch) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_bit_and(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2BitwiseTest, BitNotTypeMismatch) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_bit_not(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// Stack Underflow Tests +// ============================================================================ + +TEST_F(SDDL2BitwiseTest, BitAndUnderflow) +{ + EXPECT_EQ(SDDL2_op_bit_and(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_bit_and(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2BitwiseTest, BitNotUnderflow) +{ + EXPECT_EQ(SDDL2_op_bit_not(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// 64-bit Boundary Tests +// ============================================================================ + +TEST_F(SDDL2BitwiseTest, BitNotInt64MaxMin) +{ + // ~INT64_MAX = INT64_MIN + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MAX)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, INT64_MIN); + + // ~INT64_MIN = INT64_MAX + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, INT64_MAX); +} + +TEST_F(SDDL2BitwiseTest, BitXorInt64MinMax) +{ + // INT64_MIN ^ INT64_MAX = -1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MAX)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_bit_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, -1); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_code_execution.cpp b/tests/compress/graphs/sddl2/test_sddl2_code_execution.cpp new file mode 100644 index 000000000..5f319e652 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_code_execution.cpp @@ -0,0 +1,700 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +#include "openzl/compress/graphs/sddl2/sddl2_interpreter.h" +#include "tools/sddl2/assembler/Assembler.h" +#include "tools/sddl2/compiler/Compiler.h" + +namespace openzl { +namespace sddl2 { +namespace testing { + +class SDDL2CodeExecutionTest : public SDDL2TestBase { + protected: + void SetUp() override + { + SDDL2_Segment_list_init(&segments_, alloc_fn, alloc_ctx_); + } + + void TearDown() override + { + SDDL2_Segment_list_destroy(&segments_); + } + + template + void expect_success( + const std::string& code, + const std::vector& input, + const std::vector& expected_segment_sizes) + { + expect_success( + code, + input.data(), + input.size() * sizeof(T), + expected_segment_sizes); + } + + private: + void expect_success( + const std::string& code, + const uint8_t* input, + size_t input_size, + const std::vector& expected_segment_sizes) + { + EXPECT_EQ(run(code, input, input_size), SDDL2_OK); + + EXPECT_EQ(segments_.count, expected_segment_sizes.size()); + + size_t offset = 0; + for (size_t i = 0; i < expected_segment_sizes.size(); ++i) { + EXPECT_EQ(segments_.items[i].tag, i + 1); + EXPECT_EQ(segments_.items[i].start_pos, offset); + EXPECT_EQ(segments_.items[i].size_bytes, expected_segment_sizes[i]); + offset += expected_segment_sizes[i]; + } + } + + SDDL2_Error run(const std::string& code, const uint8_t* input, size_t size) + { + auto assembly = compiler_.compile(code, "[test code]"); + auto bytecode = assembler_.assemble(std::move(assembly)); + return SDDL2_execute_bytecode( + bytecode.data(), bytecode.size(), input, size, &segments_); + } + + Assembler assembler_; + Compiler compiler_; + SDDL2_Segment_list segments_{}; +}; + +// ============================================================================ +// Consume Primitives +// ============================================================================ + +TEST_F(SDDL2CodeExecutionTest, ConsumeInts) +{ + const std::vector expected_sizes = { 1, 1, 1, 2, 2, 4, 4, 8, 8 }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + : Byte + : Int8 + : UInt8 + : Int16LE + : Int16BE + : Int32LE + : Int32BE + : Int64LE + : Int64BE + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeFloats) +{ + const std::vector expected_sizes = { 2, 2, 2, 2, 4, 4, 8, 8 }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + : Float16LE + : Float16BE + : BFloat16LE + : BFloat16BE + : Float32LE + : Float32BE + : Float64LE + : Float64BE + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeBytes) +{ + const std::vector expected_sizes = { 3, 4 }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + : Bytes(3) + : Byte[] + )", + input, + expected_sizes); +} + +// ============================================================================ +// Consume Containers +// ============================================================================ + +TEST_F(SDDL2CodeExecutionTest, ConsumeRecord) +{ + const std::vector expected_sizes = { 6 }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + : record() {id : Int16LE, val: Int32LE} + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeArrayOfRecords) +{ + const std::vector expected_sizes = { 2, 2 * 6, 3 * 6 }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + : record() {id : Int16LE} + : record() {id : Int16LE, val: Int32LE}[2] + : record() {id : Int16LE, val: Int32LE}[] + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeArrayOfArrays) +{ + const std::vector expected_sizes = { 2 * sizeof(int16_t), + 2 * 2 * sizeof(int16_t), + 2 * 4 * sizeof(int16_t) }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + : Int16LE[2] + : Int16LE[2][2] + : Int16LE[2][] + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeSimpleAnonymous) +{ + const size_t star_entry_size = 2 * sizeof(double) + 2 * sizeof(uint8_t) + + sizeof(int16_t) + 2 * sizeof(float); + const std::vector expected_sizes = { 28, 4 * star_entry_size }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + header : Bytes(28) + stars : record() { + SRA0 : Float64LE, # Right Ascension(radians) + SDEC0 : Float64LE, # Declination(radians) + ISP : Bytes(2), # Spectral type + MAG : Int16LE, # Magnitude + XRPM : Float32LE, # R.A. proper motion + XDPM : Float32LE # Dec. proper motion + }[] + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeSimpleSAO) +{ + const size_t star_entry_size = 2 * sizeof(double) + 2 * sizeof(uint8_t) + + sizeof(int16_t) + 2 * sizeof(float); + const std::vector expected_sizes = { 28, 4 * star_entry_size }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + # Star catalog entry (28 bytes) + record StarEntry() { + SRA0: Float64LE, # Right Ascension (radians) + SDEC0: Float64LE, # Declination (radians) + ISP: Bytes(2), # Spectral type + MAG: Int16LE, # Magnitude + XRPM: Float32LE, # R.A. proper motion + XDPM: Float32LE # Dec. proper motion + } + + # File structure + header: Bytes(28) + stars: StarEntry[] + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeArrayTypeVars) +{ + const std::vector expected_sizes = { 16, 16 * 10, 12, 12 * 10 }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + Foo = Int32LE[4] + Bar = Int32LE[3] + : Foo + : Foo[10] + : Bar + : Bar[10] + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, VarRecordType) +{ + const size_t record_size = sizeof(int32_t) + sizeof(int16_t); + const std::vector expected_sizes = { record_size, 3 * record_size }; + const auto input = gen(sum(expected_sizes)); + + expect_success( + R"( + Entry = record() { x: Int32LE, y: Int16LE } + : Entry + : Entry[3] + )", + input, + expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, AssumeBuiltInType) +{ + const std::vector expected_sizes = { 4, 2 }; + std::vector input = { + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, + }; + + const auto prog = R"( + x : Int32LE + y : Int16LE + expect x == 1 + expect y == 2 + )"; + + expect_success(prog, input, expected_sizes); +} +TEST_F(SDDL2CodeExecutionTest, AssumeRecord) +{ + const size_t record_size = sizeof(int32_t) + sizeof(int16_t); + const std::vector expected_sizes = { record_size }; + std::vector input = { + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, + }; + + const auto prog = R"( + record Foo() { + x: Int32LE, + y: Int16LE + } + foo: Foo + expect foo.x == 1 + expect foo.y == 2 + + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, AssumeNestedRecord) +{ + const std::vector expected_sizes = { + sizeof(int32_t) + sizeof(int16_t) + sizeof(char) + }; + std::vector input = { + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, + }; + + const auto prog = R"( + record Bar() { + x : Int32LE, + y : Int16LE, + } + record Foo() { + bar : Bar, + x : Byte, + } + + foo : Foo + expect foo.bar.x == 1 + expect foo.bar.y == 2 + expect foo.x == 3 + )"; + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, AssumeAnonymousNestedRecord) +{ + const std::vector expected_sizes = { + sizeof(int32_t) + sizeof(int16_t) + sizeof(char) + }; + std::vector input = { + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, + }; + + const auto prog = R"( + record Foo() { + bar : record() { x : Int32LE, y : Int16LE }, + x : Byte, + } + + foo : Foo + expect foo.bar.x == 1 + expect foo.bar.y == 2 + expect foo.x == 3 + )"; + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, AssumeRecordWithGlobalVariableReference) +{ + const std::vector expected_sizes = { + 1, + 4, + }; + std::vector input = { + /* len */ 0x03, + /* foo */ 0x01, 0x02, 0x03, 0x01, + }; + + const auto prog = R"( + len: Byte + record Foo() { + a : Bytes(len), + b : Byte, + } + foo : Foo + expect len == 3 + expect foo.b == 1 + )"; + expect_success(prog, input, expected_sizes); +} + +// ============================================================================ +// Parameterized Records +// ============================================================================ + +TEST_F(SDDL2CodeExecutionTest, ConsumeParameterizedRecord) +{ + const std::vector expected_sizes = { 40 }; + const auto input = gen(sum(expected_sizes)); + + const auto prog = R"( + record Entry(N) { + items: Int32LE[N] + } + : Entry(10) + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeParameterizedRecordMultipleParams) +{ + const std::vector expected_sizes = { 22 }; + const auto input = gen(sum(expected_sizes)); + + const auto prog = R"( + record Foo(A, B) { + x: Int32LE[A], + y: Int16LE[B] + } + ParamFoo = Foo(3, 5) + : ParamFoo + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeParameterizedRecordMultipleCalls) +{ + const std::vector expected_sizes = { 8, 12 }; + const auto input = gen(sum(expected_sizes)); + + const auto prog = R"( + record Entry(N) { + items: Int32LE[N] + } + : Entry(2) + : Entry(3) + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, ConsumeArrayOfParameterizedRecord) +{ + const std::vector expected_sizes = { 60 }; + const auto input = gen(sum(expected_sizes)); + + const auto prog = R"( + record Entry(N) { + items: Int32LE[N] + } + : Entry(5)[3] + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, AssumeParameterizedRecord) +{ + const std::vector expected_sizes = { 1, 21 }; + std::vector input(22, 0); + input[0] = 5; // n = 5 + input[21] = 3; // tag = 3 + + const auto prog = R"( + record Entry(N) { + items: Int32LE[N], + tag: Byte + } + n: Byte + entry: Entry(n) + expect entry.tag == 3 + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, AssumeNestedParameterizedRecord) +{ + const std::vector expected_sizes = { 1, 10 }; + std::vector input(11, 0); + input[0] = 2; // n = 2 + input[9] = 3; // foo.bar.tag = 3 + input[10] = 5; // foo.tag = 5 + + const auto prog = R"( + record Bar(N) { + items: Int32LE[N], + tag: Byte + } + record Foo(M) { + bar: Bar(M), + tag: Byte + } + N: Byte + foo: Foo(N) + expect foo.bar.tag == 3 + expect foo.tag == 5 + expect N == 2 + )"; + + expect_success(prog, input, expected_sizes); +} + +// ============================================================================ +// When Blocks +// ============================================================================ + +TEST_F(SDDL2CodeExecutionTest, WhenBlockTrueCondition) +{ + const std::vector expected_sizes = { 1, 4 }; + std::vector input = { + 0x01, // flag = 1 (true) + 0x0A, 0x00, 0x00, 0x00, // optional = 10 + }; + + const auto prog = R"( + flag: UInt8 + when flag { + optional: Int32LE + } + expect flag == 1 + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, WhenBlockFalseCondition) +{ + const std::vector expected_sizes = { 1, 0 }; + std::vector input = { + 0x00, // flag = 0 (false) + }; + + const auto prog = R"( + flag: UInt8 + when flag { + optional: Int32LE + } + expect flag == 0 + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, NestedWhenBlocks) +{ + const std::vector expected_sizes = { 1, 1, 4 }; + std::vector input = { + 0x01, // a = 1 + 0x02, // b = 2 + 0x0A, 0x00, 0x00, 0x00, // optional = 10 + }; + + const auto prog = R"( + a: UInt8 + b: UInt8 + when a == 1 { + when b == 2 { + optional: Int32LE + } + } + expect a == 1 + expect b == 2 + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, NestedWhenBlocksOuterFalse) +{ + const std::vector expected_sizes = { 1, 1, 0 }; + std::vector input = { + 0x00, // a = 0 (outer false) + 0x02, // b = 2 + }; + + const auto prog = R"( + a: UInt8 + b: UInt8 + when a == 1 { + when b == 2 { + optional: Int32LE + } + } + expect a == 0 + expect b == 2 + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, NestedWhenBlocksInnerFalse) +{ + const std::vector expected_sizes = { 1, 1, 0 }; + std::vector input = { + 0x01, // a = 1 (outer true) + 0x05, // b = 5 (inner false, not 2) + }; + + const auto prog = R"( + a: UInt8 + b: UInt8 + when a == 1 { + when b == 2 { + optional: Int32LE + } + } + expect a == 1 + expect b == 5 + )"; + + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, WhenBlockInParameterizedRecord) +{ + const std::vector expected_sizes = { 10 }; + std::vector input = { + 0x01, 0x00, 0x00, 0x00, // a = 1 + 0x02, 0x00, // optional = 2 + 0x03, 0x00, 0x00, 0x00, // b = 3 + }; + + const auto prog = R"( + record Data(flag) { + a: Int32LE, + when flag { + optional: Int16LE + }, + b: Int32LE + } + data: Data(1) + expect data.a == 1 + expect data.b == 3 + )"; + expect_success(prog, input, expected_sizes); +} + +TEST_F(SDDL2CodeExecutionTest, WhenBlockInParameterizedRecordFalse) +{ + const std::vector expected_sizes = { 8 }; + std::vector input = { + 0x01, 0x00, 0x00, 0x00, // a = 1 + 0x02, 0x00, 0x00, 0x00, // b = 2 + }; + + const auto prog = R"( + record Data(flag) { + a: Int32LE, + when flag { + optional: Int16LE + }, + b: Int32LE + } + data: Data(0) + expect data.a == 1 + expect data.b == 2 + )"; + + expect_success(prog, input, expected_sizes); +} + +// ============================================================================ +// Runtime Value Assignment +// ============================================================================ + +TEST_F(SDDL2CodeExecutionTest, AssignRuntimeValue) +{ + const std::vector expected_sizes = { 4, 4 }; + std::vector input = { + 0x05, 0x00, 0x00, 0x00, // x = 5 + 0x03, 0x00, 0x00, 0x00, // y = 3 + }; + + const auto prog = R"( + x: Int32LE + y: Int32LE + sum = x + y + expect x == 5 + expect y == 3 + expect sum == 8 + )"; + + expect_success(prog, input, expected_sizes); +} + +// ============================================================================ +// Bitwise Operations +// ============================================================================ + +TEST_F(SDDL2CodeExecutionTest, BitwiseOperations) +{ + const std::vector expected_sizes = { 4, 4 }; + std::vector input = { + 0xF0, 0x00, 0x00, 0x00, // a = 0x000000F0 + 0x0F, 0x00, 0x00, 0x00, // b = 0x0000000F + }; + + const auto prog = R"( + a: Int32LE + b: Int32LE + expect (a & b) == 0 + expect (a | b) == 255 + expect (a ^ b) == 255 + expect (~0) == -1 + )"; + + expect_success(prog, input, expected_sizes); +} + +} // namespace testing +} // namespace sddl2 +} // namespace openzl diff --git a/tests/compress/graphs/sddl2/test_sddl2_expect.cpp b/tests/compress/graphs/sddl2/test_sddl2_expect.cpp new file mode 100644 index 000000000..dca92cd60 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_expect.cpp @@ -0,0 +1,217 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2ExpectTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// expect_true Success Tests +// ============================================================================ + +TEST_F(SDDL2ExpectTest, ExpectTruePositiveValue) +{ + // Test: expect_true with positive non-zero value should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueLargePositive) +{ + // Test: expect_true with large positive value should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(123456789)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueNegativeValue) +{ + // Test: expect_true with negative value (non-zero) should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueLargeNegative) +{ + // Test: expect_true with large negative value should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-999999)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueInt64Max) +{ + // Test: expect_true with INT64_MAX should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MAX)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueInt64Min) +{ + // Test: expect_true with INT64_MIN (most negative) should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(INT64_MIN)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +// ============================================================================ +// expect_true Failure Tests +// ============================================================================ + +TEST_F(SDDL2ExpectTest, ExpectTrueZeroFails) +{ + // Test: expect_true with zero should fail with VALIDATION_FAILED + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_VALIDATION_FAILED); + // Stack state after error is implementation-defined, but value should be + // consumed + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +// ============================================================================ +// expect_true Error Condition Tests +// ============================================================================ + +TEST_F(SDDL2ExpectTest, ExpectTrueStackUnderflow) +{ + // Test: expect_true on empty stack should fail with STACK_UNDERFLOW + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueTypeMismatchTag) +{ + // Test: expect_true with Tag instead of I64 should fail with TYPE_MISMATCH + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueTypeMismatchType) +{ + // Test: expect_true with Type instead of I64 should fail with TYPE_MISMATCH + SDDL2_Type type = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// expect_true Combined with Comparison Operations +// ============================================================================ + +TEST_F(SDDL2ExpectTest, ExpectTrueWithCmpEqSuccess) +{ + // Test: cmp.eq followed by expect_true (equal values) + // 42 == 42 -> 1 -> expect_true succeeds + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_eq(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueWithCmpEqFailure) +{ + // Test: cmp.eq followed by expect_true (different values) + // 42 == 99 -> 0 -> expect_true fails + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(99)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_eq(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_VALIDATION_FAILED); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueWithCmpNeSuccess) +{ + // Test: cmp.ne followed by expect_true (different values) + // 42 != 99 -> 1 -> expect_true succeeds + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(99)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_ne(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueWithCmpLtSuccess) +{ + // Test: cmp.lt followed by expect_true + // 10 < 20 -> 1 -> expect_true succeeds + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_lt(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueWithCmpGtFailure) +{ + // Test: cmp.gt followed by expect_true (false condition) + // 10 > 20 -> 0 -> expect_true fails + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_gt(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_VALIDATION_FAILED); +} + +// ============================================================================ +// expect_true Combined with Logic Operations +// ============================================================================ + +TEST_F(SDDL2ExpectTest, ExpectTrueWithLogicNot) +{ + // Test: logic.not followed by expect_true (expect_false pattern) + // push 0 -> not -> -1 -> expect_true succeeds + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueWithLogicAnd) +{ + // Test: logic.and followed by expect_true + // 0xFF & 0x0F = 0x0F (non-zero) -> expect_true succeeds + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0xFF)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x0F)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); +} + +TEST_F(SDDL2ExpectTest, ExpectTrueWithLogicAndZeroResult) +{ + // Test: logic.and followed by expect_true (zero result) + // 0xFF & 0x00 = 0 -> expect_true fails + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0xFF)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x00)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_VALIDATION_FAILED); +} + +// ============================================================================ +// Multiple expect_true Tests +// ============================================================================ + +TEST_F(SDDL2ExpectTest, MultipleExpectTrueAllPass) +{ + // Test: Multiple expect_true operations, all should succeed + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2ExpectTest, MultipleExpectTrueFirstFails) +{ + // Test: First expect_true fails, subsequent ops not reached + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_VALIDATION_FAILED); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_field_extraction.cpp b/tests/compress/graphs/sddl2/test_sddl2_field_extraction.cpp new file mode 100644 index 000000000..580fd437a --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_field_extraction.cpp @@ -0,0 +1,437 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Tests for extracting field sizes and types from structure types. + * + * This test file verifies that: + * - Field sizes are correctly extracted from flat structures + * - Array fields within structures are handled properly + * - Nested structures flatten correctly + * - Field types preserve endianness + * - SDDL2_Type_size() works correctly for structure types + */ + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2FieldExtractionTest : public SDDL2StackTest {}; + +// Helper: Create a structure type from member types +SDDL2_Type createStructureType(SDDL2_Type* members, size_t member_count) +{ + size_t total_size = 0; + for (size_t i = 0; i < member_count; i++) { + total_size += getTypeSize(members[i]); + } + + size_t alloc_size = + sizeof(SDDL2_Struct_data) + member_count * sizeof(SDDL2_Type); + auto* struct_data = (SDDL2_Struct_data*)malloc(alloc_size); + + struct_data->member_count = member_count; + struct_data->total_size_bytes = total_size; + for (size_t i = 0; i < member_count; i++) { + struct_data->members[i] = members[i]; + } + + return { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct_data }; +} + +// Helper: Recursively flatten structure types into primitive type kinds +void flattenFieldTypes(SDDL2_Type type, SDDL2_Type_kind* output, size_t* index) +{ + if (type.kind == SDDL2_TYPE_STRUCTURE) { + SDDL2_Struct_data* data = type.struct_data; + for (size_t i = 0; i < data->member_count; i++) { + flattenFieldTypes(data->members[i], output, index); + } + } else { + output[(*index)++] = type.kind; + } +} + +} // namespace + +// ============================================================================ +// Flat Structure Field Size Tests +// ============================================================================ + +TEST_F(SDDL2FieldExtractionTest, SimpleFlatStructure) +{ + // Structure: {U8, I16LE, I32LE} → total 7 bytes + SDDL2_Type members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + + SDDL2_Type struct_type = createStructureType(members, 3); + SDDL2_Struct_data* data = struct_type.struct_data; + + ASSERT_NE(data, nullptr); + EXPECT_EQ(data->member_count, 3u); + EXPECT_EQ(data->total_size_bytes, 7u); + + EXPECT_EQ(getTypeSize(data->members[0]), 1u); + EXPECT_EQ(getTypeSize(data->members[1]), 2u); + EXPECT_EQ(getTypeSize(data->members[2]), 4u); + + free(data); +} + +TEST_F(SDDL2FieldExtractionTest, StructureWithArrayField) +{ + // Structure: {U8, [I32LE × 10], I16LE} → total 43 bytes + SDDL2_Type members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 10, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + }; + + SDDL2_Type struct_type = createStructureType(members, 3); + SDDL2_Struct_data* data = struct_type.struct_data; + + ASSERT_NE(data, nullptr); + EXPECT_EQ(data->member_count, 3u); + EXPECT_EQ(data->total_size_bytes, 43u); + + EXPECT_EQ(getTypeSize(data->members[0]), 1u); + EXPECT_EQ(getTypeSize(data->members[1]), 40u); + EXPECT_EQ(getTypeSize(data->members[2]), 2u); + + free(data); +} + +TEST_F(SDDL2FieldExtractionTest, AllPrimitiveTypes) +{ + // Structure: {U8, U16LE, F32BE, I64LE} → total 15 bytes + SDDL2_Type members[4] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_U16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_F32BE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I64LE, .width = 1, .struct_data = nullptr }, + }; + + SDDL2_Type struct_type = createStructureType(members, 4); + SDDL2_Struct_data* data = struct_type.struct_data; + + EXPECT_EQ(data->total_size_bytes, 15u); + + size_t expected_sizes[] = { 1, 2, 4, 8 }; + for (size_t i = 0; i < 4; i++) { + EXPECT_EQ(getTypeSize(data->members[i]), expected_sizes[i]); + } + + free(data); +} + +TEST_F(SDDL2FieldExtractionTest, MixedEndianness) +{ + // Structure: {U16LE, I32BE, F64LE, U32BE} → total 18 bytes + SDDL2_Type members[4] = { + { .kind = SDDL2_TYPE_U16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32BE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_F64LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_U32BE, .width = 1, .struct_data = nullptr }, + }; + + SDDL2_Type struct_type = createStructureType(members, 4); + SDDL2_Struct_data* data = struct_type.struct_data; + + EXPECT_EQ(data->total_size_bytes, 18u); + + free(data); +} + +TEST_F(SDDL2FieldExtractionTest, LargeStructure) +{ + // Structure with 10 I32LE fields → total 40 bytes + SDDL2_Type members[10]; + for (size_t i = 0; i < 10; i++) { + members[i] = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + } + + SDDL2_Type struct_type = createStructureType(members, 10); + SDDL2_Struct_data* data = struct_type.struct_data; + + EXPECT_EQ(data->member_count, 10u); + EXPECT_EQ(data->total_size_bytes, 40u); + + free(data); +} + +TEST_F(SDDL2FieldExtractionTest, TypeSizeFunction) +{ + // Verify SDDL2_Type_size() for single instance and array of structures + SDDL2_Type members[2] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + + SDDL2_Type struct_type = createStructureType(members, 2); + EXPECT_EQ(getTypeSize(struct_type), 5u); // 1 + 4 + + struct_type.width = 10; + EXPECT_EQ(getTypeSize(struct_type), 50u); // 5 × 10 + + free(struct_type.struct_data); +} + +// ============================================================================ +// Nested Structure Field Size Tests +// ============================================================================ + +TEST_F(SDDL2FieldExtractionTest, NestedStructure2Levels) +{ + // Inner: {I16LE, I32LE} → 6 bytes + SDDL2_Type inner_members[2] = { + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type inner = createStructureType(inner_members, 2); + + // Outer: {U8, inner, F64BE} → 1 + 6 + 8 = 15 bytes + SDDL2_Type outer_members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + inner, + { .kind = SDDL2_TYPE_F64BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type outer = createStructureType(outer_members, 3); + + SDDL2_Struct_data* outer_data = outer.struct_data; + EXPECT_EQ(outer_data->member_count, 3u); + EXPECT_EQ(outer_data->total_size_bytes, 15u); + + free(inner.struct_data); + free(outer_data); +} + +TEST_F(SDDL2FieldExtractionTest, NestedStructure3Levels) +{ + // Level 1: {I16LE, I32LE} → 6 bytes + SDDL2_Type level1_members[2] = { + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type level1 = createStructureType(level1_members, 2); + + // Level 2: {U8, level1} → 1 + 6 = 7 bytes + SDDL2_Type level2_members[2] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + level1, + }; + SDDL2_Type level2 = createStructureType(level2_members, 2); + + // Level 3: {level2, F64BE} → 7 + 8 = 15 bytes + SDDL2_Type level3_members[2] = { + level2, + { .kind = SDDL2_TYPE_F64BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type level3 = createStructureType(level3_members, 2); + + EXPECT_EQ(getTypeSize(level3), 15u); + + free(level1.struct_data); + free(level2.struct_data); + free(level3.struct_data); +} + +TEST_F(SDDL2FieldExtractionTest, NestedStructureWithArrays) +{ + // Inner: {U8, [I32LE × 5]} → 1 + 20 = 21 bytes + SDDL2_Type inner_members[2] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 5, .struct_data = nullptr }, + }; + SDDL2_Type inner = createStructureType(inner_members, 2); + + // Outer: {I16LE, inner, F64BE} → 2 + 21 + 8 = 31 bytes + SDDL2_Type outer_members[3] = { + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + inner, + { .kind = SDDL2_TYPE_F64BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type outer = createStructureType(outer_members, 3); + + EXPECT_EQ(getTypeSize(outer), 31u); + + free(inner.struct_data); + free(outer.struct_data); +} + +TEST_F(SDDL2FieldExtractionTest, MultipleNestedStructures) +{ + // StructA: {U8, I16LE} → 3 bytes + SDDL2_Type a_members[2] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type structA = createStructureType(a_members, 2); + + // StructB: {I32LE, F64BE} → 12 bytes + SDDL2_Type b_members[2] = { + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_F64BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type structB = createStructureType(b_members, 2); + + // Outer: {structA, U32LE, structB} → 3 + 4 + 12 = 19 bytes + SDDL2_Type outer_members[3] = { + structA, + { .kind = SDDL2_TYPE_U32LE, .width = 1, .struct_data = nullptr }, + structB, + }; + SDDL2_Type outer = createStructureType(outer_members, 3); + + EXPECT_EQ(getTypeSize(outer), 19u); + + free(structA.struct_data); + free(structB.struct_data); + free(outer.struct_data); +} + +// ============================================================================ +// Field Type Extraction Tests +// ============================================================================ + +TEST_F(SDDL2FieldExtractionTest, FieldTypesFlatStructure) +{ + // {U8, I16LE, I32LE} → flattened: [U8, I16LE, I32LE] + SDDL2_Type members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type struct_type = createStructureType(members, 3); + + SDDL2_Type_kind field_types[3]; + size_t index = 0; + flattenFieldTypes(struct_type, field_types, &index); + + EXPECT_EQ(index, 3u); + EXPECT_EQ(field_types[0], SDDL2_TYPE_U8); + EXPECT_EQ(field_types[1], SDDL2_TYPE_I16LE); + EXPECT_EQ(field_types[2], SDDL2_TYPE_I32LE); + + free(struct_type.struct_data); +} + +TEST_F(SDDL2FieldExtractionTest, FieldTypesNestedStructure) +{ + // {U8, {I16LE, I32LE}, F64BE} → flattened: [U8, I16LE, I32LE, F64BE] + SDDL2_Type inner_members[2] = { + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type inner = createStructureType(inner_members, 2); + + SDDL2_Type outer_members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + inner, + { .kind = SDDL2_TYPE_F64BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type outer = createStructureType(outer_members, 3); + + SDDL2_Type_kind field_types[4]; + size_t index = 0; + flattenFieldTypes(outer, field_types, &index); + + EXPECT_EQ(index, 4u); + EXPECT_EQ(field_types[0], SDDL2_TYPE_U8); + EXPECT_EQ(field_types[1], SDDL2_TYPE_I16LE); + EXPECT_EQ(field_types[2], SDDL2_TYPE_I32LE); + EXPECT_EQ(field_types[3], SDDL2_TYPE_F64BE); + + free(inner.struct_data); + free(outer.struct_data); +} + +TEST_F(SDDL2FieldExtractionTest, FieldTypesWithArrays) +{ + // {U8, [I32LE × 10], I16LE} → flattened: [U8, I32LE, I16LE] + SDDL2_Type members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 10, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type struct_type = createStructureType(members, 3); + + SDDL2_Type_kind field_types[3]; + size_t index = 0; + flattenFieldTypes(struct_type, field_types, &index); + + EXPECT_EQ(index, 3u); + EXPECT_EQ(field_types[0], SDDL2_TYPE_U8); + EXPECT_EQ(field_types[1], SDDL2_TYPE_I32LE); + EXPECT_EQ(field_types[2], SDDL2_TYPE_I16LE); + + free(struct_type.struct_data); +} + +TEST_F(SDDL2FieldExtractionTest, FieldTypesSizesAlignment) +{ + // {U8, {I16LE, I32LE}, F64BE} → types: [U8, I16LE, I32LE, F64BE] + // sizes: [1, 2, 4, 8] + SDDL2_Type inner_members[2] = { + { .kind = SDDL2_TYPE_I16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32LE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type inner = createStructureType(inner_members, 2); + + SDDL2_Type outer_members[3] = { + { .kind = SDDL2_TYPE_U8, .width = 1, .struct_data = nullptr }, + inner, + { .kind = SDDL2_TYPE_F64BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type outer = createStructureType(outer_members, 3); + + SDDL2_Type_kind field_types[4]; + size_t type_index = 0; + flattenFieldTypes(outer, field_types, &type_index); + + SDDL2_Type_kind expected_types[] = { + SDDL2_TYPE_U8, SDDL2_TYPE_I16LE, SDDL2_TYPE_I32LE, SDDL2_TYPE_F64BE + }; + size_t expected_sizes[] = { 1, 2, 4, 8 }; + + ASSERT_EQ(type_index, 4u); + for (size_t i = 0; i < 4; i++) { + EXPECT_EQ(field_types[i], expected_types[i]); + EXPECT_EQ(getKindSize(field_types[i]), expected_sizes[i]); + } + + free(inner.struct_data); + free(outer.struct_data); +} + +TEST_F(SDDL2FieldExtractionTest, FieldTypesMixedEndianness) +{ + // {U16LE, I32BE, F64LE, U32BE} → preserves endianness + SDDL2_Type members[4] = { + { .kind = SDDL2_TYPE_U16LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_I32BE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_F64LE, .width = 1, .struct_data = nullptr }, + { .kind = SDDL2_TYPE_U32BE, .width = 1, .struct_data = nullptr }, + }; + SDDL2_Type struct_type = createStructureType(members, 4); + + SDDL2_Type_kind field_types[4]; + size_t index = 0; + flattenFieldTypes(struct_type, field_types, &index); + + EXPECT_EQ(index, 4u); + EXPECT_EQ(field_types[0], SDDL2_TYPE_U16LE); + EXPECT_EQ(field_types[1], SDDL2_TYPE_I32BE); + EXPECT_EQ(field_types[2], SDDL2_TYPE_F64LE); + EXPECT_EQ(field_types[3], SDDL2_TYPE_U32BE); + + free(struct_type.struct_data); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_graph.cpp b/tests/compress/graphs/sddl2/test_sddl2_graph.cpp new file mode 100644 index 000000000..6d4374bf9 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_graph.cpp @@ -0,0 +1,946 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include +#include + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +#include "tools/sddl2/assembler/Assembler.h" +#include "tools/sddl2/compiler/Compiler.h" + +#include "openzl/codecs/zl_generic.h" +#include "openzl/compress/graphs/sddl2/sddl2.h" +#include "openzl/cpp/CCtx.hpp" +#include "openzl/cpp/CompressIntrospectionHooks.hpp" +#include "openzl/cpp/Compressor.hpp" +#include "openzl/cpp/DCtx.hpp" +#include "openzl/cpp/DecompressIntrospectionHooks.hpp" +#include "openzl/cpp/codecs/SDDL2.hpp" +#include "openzl/zl_compress.h" +#include "openzl/zl_config.h" +#include "openzl/zl_decompress.h" +#include "openzl/zl_version.h" + +namespace openzl { +namespace sddl2 { +namespace testing { + +class SDDL2GraphTest : public SDDL2TestBase { + protected: + auto assemble_bytecode(const std::string& code) + { + auto assembly = compiler_.compile(code, "[test code]"); + return assembler_.assemble(std::move(assembly)); + } + + template + void expect_success(const std::string& code, const std::vector& input) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + + auto compressed = compress(code, input_view, 0); + auto decompressed = decompress(compressed); + + EXPECT_EQ(input_view, decompressed); + } + + template + void expect_explicit_zero_chunk_param_success( + const std::string& code, + const std::vector& input) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + + auto compressed = + compress_with_explicit_chunk_param(code, input_view, 0); + auto decompressed = decompress(compressed); + + EXPECT_EQ(input_view, decompressed); + } + + template + void expect_chunked_success( + const std::string& code, + const std::vector& input, + size_t chunk_size) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + + auto compressed = compress(code, input_view, chunk_size); + auto decompressed = decompress(compressed); + + EXPECT_EQ(input_view, decompressed); + } + + template + void expect_chunked_error( + const std::string& code, + const std::vector& input, + size_t chunk_size, + const std::string& msg) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + + try { + (void)compress(code, input_view, chunk_size); + } catch (const openzl::Exception& ex) { + EXPECT_NE(std::string{ ex.what() }.find(msg), std::string::npos) + << ex.what(); + return; + } + EXPECT_TRUE(false) << "Should have thrown an openzl::Exception!" + << std::endl; + } + + template + void expect_error( + const std::string& code, + const std::vector& input, + const std::string& msg) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + try { + compress(code, input_view, 0); + } catch (const openzl::Exception& ex) { + EXPECT_NE(std::string{ ex.what() }.find(msg), std::string::npos) + << ex.what(); + return; + } + EXPECT_TRUE(false) << "Should have thrown an openzl::Exception!" + << std::endl; + } + +#if ZL_ALLOW_INTROSPECTION + template + void expect_chunk_count( + const std::string& code, + const std::vector& input, + size_t expected_chunks, + size_t chunk_size = 0, + int format_version = ZL_MAX_FORMAT_VERSION) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + + CompressChunkCounterHook compress_hook; + auto compressed = compress( + code, input_view, chunk_size, format_version, &compress_hook); + EXPECT_EQ(compress_hook.chunkCount, expected_chunks); + + DecompressChunkCounterHook decompress_hook; + auto decompressed = decompress(compressed, &decompress_hook); + EXPECT_EQ(decompress_hook.chunkCount, expected_chunks); + EXPECT_EQ(input_view, decompressed); + } + + template + void expect_explicit_chunk_param_chunk_count( + const std::string& code, + const std::vector& input, + int chunk_size_param, + size_t expected_chunks) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + + CompressChunkCounterHook compress_hook; + auto compressed = compress_with_explicit_chunk_param( + code, + input_view, + chunk_size_param, + ZL_MAX_FORMAT_VERSION, + &compress_hook); + EXPECT_EQ(compress_hook.chunkCount, expected_chunks); + + DecompressChunkCounterHook decompress_hook; + auto decompressed = decompress(compressed, &decompress_hook); + EXPECT_EQ(decompress_hook.chunkCount, expected_chunks); + EXPECT_EQ(input_view, decompressed); + } + + template + void expect_clustering_tags( + const std::string& code, + const std::vector& input, + const std::set& expected_tags) + { + poly::string_view input_view( + (const char*)input.data(), input.size() * sizeof(T)); + auto bytecode = assemble_bytecode(code); + const poly::string_view bytecode_view( + (const char*)bytecode.data(), bytecode.size()); + auto graphID = graphs::SDDL2(bytecode_view, ZL_GRAPH_COMPRESS_GENERIC) + .parameterize(compressor_); + ClusteringTagCaptureHook hook; + auto compressed = compress_with_graph( + graphID, input_view, ZL_MAX_FORMAT_VERSION, &hook); + auto decompressed = decompress(compressed); + EXPECT_EQ(input_view, decompressed); + EXPECT_EQ(hook.tags, expected_tags); + } +#endif + + private: + std::string compress_with_graph( + ZL_GraphID graphID, + const poly::string_view& input, + int format_version = ZL_MAX_FORMAT_VERSION, + openzl::CompressIntrospectionHooks* hooks = nullptr) + { + compressor_.selectStartingGraph(graphID); + + CCtx cctx; + cctx.setParameter(CParam::FormatVersion, format_version); + if (hooks != nullptr) { + ZL_Report const attachr = ZL_CCtx_attachIntrospectionHooks( + cctx.get(), hooks->getRawHooks()); + EXPECT_FALSE(ZL_isError(attachr)); + if (ZL_isError(attachr)) { + return {}; + } + } + cctx.refCompressor(compressor_); + + return cctx.compressSerial(input); + } + + std::string compress( + const std::string& code, + const poly::string_view& input, + size_t chunk_size, + int format_version = ZL_MAX_FORMAT_VERSION, + openzl::CompressIntrospectionHooks* hooks = nullptr) + { + auto bytecode = assemble_bytecode(code); + + const poly::string_view bytecode_view( + (const char*)bytecode.data(), bytecode.size()); + + // In this helper, chunk_size == 0 means "use the default 16 MiB + // chunking behavior". + auto graphID = chunk_size == 0 + ? graphs::SDDL2(bytecode_view, ZL_GRAPH_STORE) + .parameterize(compressor_) + : graphs::SDDL2(bytecode_view, ZL_GRAPH_STORE, chunk_size) + .parameterize(compressor_); + return compress_with_graph(graphID, input, format_version, hooks); + } + + std::string compress_with_explicit_chunk_param( + const std::string& code, + const poly::string_view& input, + int chunk_size_param, + int format_version = ZL_MAX_FORMAT_VERSION, + openzl::CompressIntrospectionHooks* hooks = nullptr) + { + auto bytecode = assemble_bytecode(code); + + LocalParams local_params; + local_params.addCopyParam( + SDDL2_BYTECODE_PARAM, bytecode.data(), bytecode.size()); + local_params.addIntParam(SDDL2_CHUNK_BYTE_SIZE_PARAM, chunk_size_param); + + auto graphID = compressor_.parameterizeGraph( + ZL_GRAPH_SDDL2, + { + .customGraphs = { { ZL_GRAPH_STORE } }, + .localParams = std::move(local_params), + }); + return compress_with_graph(graphID, input, format_version, hooks); + } + + std::string decompress( + const std::string& input, + openzl::DecompressIntrospectionHooks* hooks = nullptr) + { + DCtx dctx; + if (hooks != nullptr) { + ZL_Report const attachr = + ZL_DCtx_attachDecompressIntrospectionHooks( + dctx.get(), hooks->getRawHooks()); + EXPECT_FALSE(ZL_isError(attachr)); + if (ZL_isError(attachr)) { + return {}; + } + } + return dctx.decompressSerial(input); + } + + Assembler assembler_; + Compiler compiler_; + Compressor compressor_; +}; + +// ============================================================================ +// Scalar / Atomic Types +// ============================================================================ + +TEST_F(SDDL2GraphTest, CompressFixedNumericArray) +{ + const auto input = gen(30); + expect_success( + R"( + : Int64LE[10] + : Float64LE[10] + : Int64BE[2 * 4 + 2] + )", + input); +} + +TEST_F(SDDL2GraphTest, CompressFixedBytesArray) +{ + const auto input = gen(20); + expect_success( + R"( + : Bytes(10)[2] + )", + input); +} + +TEST_F(SDDL2GraphTest, ExpectArithmetic) +{ + const auto input = gen(20); + expect_success( + R"( + expect 5 + 10 == 15 + expect -5 + 10 == 5 + expect 5 - 10 == -5 + expect 10 - -5 == 15 + + expect 5 * 10 == 50 + expect 5 / 10 == 0 + expect 5 % 10 == 5 + + expect 5 & 5 == 5 + expect 5 | 5 == 5 + expect 5 ^ 5 == 0 + + : Byte[] + )", + input); +} + +// ============================================================================ +// Complex Arrays +// ============================================================================ + +TEST_F(SDDL2GraphTest, CompressArrayOfArray) +{ + const auto input = gen(10 * sizeof(int32_t) * 100); + + expect_success( + R"( + : Int32LE[10][] + )", + input); +} + +TEST_F(SDDL2GraphTest, CompressSimpleSAO) +{ + const size_t star_entry_size = 2 * sizeof(double) + 2 * sizeof(uint8_t) + + sizeof(int16_t) + 2 * sizeof(float); + const auto input = gen(28 + 100 * star_entry_size); + + expect_success( + R"( + header : Bytes(28) + stars : record() { + SRA0 : Float64LE, # Right Ascension (radians) + SDEC0 : Float64LE, # Declination (radians) + ISP : Bytes(2), # Spectral type + MAG : Int16LE, # Magnitude + XRPM : Float32LE, # R.A. proper motion + XDPM : Float32LE # Dec. proper motion + }[] + )", + input); +} + +TEST_F(SDDL2GraphTest, CompressChunkedRepeatedBlocks) +{ + constexpr size_t kBlocks = 32; + constexpr size_t kEntriesPerBlock = 256; + constexpr size_t kChunkSize = 32 << 10; + + std::string code = R"( + record Header() { + magic: UInt32LE, + flag: Byte, + } + + record Entry(flag) { + id: UInt32LE, + when flag { + optional: UInt16LE, + }, + required: UInt64LE, + } + + header: Header + expect header.magic == 0xdeadbeef + )"; + for (size_t i = 0; i < kBlocks; ++i) { + code += "block" + std::to_string(i) + ": Entry(header.flag)[" + + std::to_string(kEntriesPerBlock) + "]\n"; + } + + std::vector input; + input.reserve(5 + kBlocks * kEntriesPerBlock * 14); + auto appendLE = [&input](uint64_t value, size_t width) { + for (size_t i = 0; i < width; ++i) { + input.push_back((uint8_t)(value >> (8 * i))); + } + }; + + appendLE(0xdeadbeefULL, 4); + input.push_back(1); + for (size_t block = 0; block < kBlocks; ++block) { + for (size_t entry = 0; entry < kEntriesPerBlock; ++entry) { + const uint64_t value = block * 1000 + entry; + appendLE(value, 4); + appendLE(value ^ 0x55AA, 2); + appendLE(value * 17 + 3, 8); + } + } + + expect_chunked_success(code, input, kChunkSize); +} + +TEST_F(SDDL2GraphTest, CompressChunkedSingleLargeSegment) +{ + constexpr size_t kChunkSize = ZL_MIN_CHUNK_SIZE; + constexpr size_t kNumEntries = 3 * (kChunkSize / sizeof(uint32_t)) + 7; + + std::vector input(kNumEntries); + for (size_t i = 0; i < input.size(); ++i) { + input[i] = (uint32_t)(i * 17 + 3); + } + + expect_chunked_success( + R"( + payload : UInt32LE[] + )", + input, + kChunkSize); +} + +TEST_F(SDDL2GraphTest, CompressChunkedSingleLargeStructureSegment) +{ + constexpr size_t kChunkSize = ZL_MIN_CHUNK_SIZE; + constexpr size_t kRecordSize = + sizeof(uint8_t) + sizeof(int16_t) + sizeof(int32_t); + constexpr size_t kRecordsPerChunk = kChunkSize / kRecordSize; + constexpr size_t kNumRecords = 3 * kRecordsPerChunk + 7; + + const auto input = gen(kNumRecords * kRecordSize); + const std::string code = R"( + payload : record() { + a : Byte, + b : Int16LE, + c : Int32LE, + }[] + )"; + + expect_chunked_success(code, input, kChunkSize); + +#if ZL_ALLOW_INTROSPECTION + expect_chunk_count(code, input, 4, kChunkSize); +#endif +} + +#if ZL_ALLOW_INTROSPECTION +TEST_F(SDDL2GraphTest, ChunkSizeHintIgnoredBeforeChunkFormatVersion) +{ + constexpr size_t kChunkSize = ZL_MIN_CHUNK_SIZE; + constexpr size_t kExpectedChunked = 4; + constexpr size_t kLegacyChunkCount = 1; + constexpr size_t kNumEntries = 3 * (kChunkSize / sizeof(uint32_t)) + 7; + + const auto input = gen(kNumEntries); + const std::string code = R"( + payload : UInt32LE[] + )"; + + expect_chunk_count(code, input, kExpectedChunked, kChunkSize); + expect_chunk_count( + code, + input, + kLegacyChunkCount, + kChunkSize, + ZL_CHUNK_VERSION_MIN - 1); +} + +TEST_F(SDDL2GraphTest, ChunkCountDoesNotBackfillAcrossLargeSegmentBoundary) +{ + constexpr size_t kHeaderSize = 8; + constexpr size_t kRecords = 10921; + constexpr size_t kRecordSize = sizeof(uint32_t) + sizeof(uint16_t); + constexpr size_t kTrailerSize = 16; + constexpr size_t kChunkSize = ZL_MIN_CHUNK_SIZE; + constexpr size_t kExpectedChunks = 4; + + std::vector input; + input.reserve(kHeaderSize + kRecords * kRecordSize + kTrailerSize); + for (size_t i = 0; i < kHeaderSize; ++i) { + input.push_back((uint8_t)i); + } + for (size_t i = 0; i < kRecords; ++i) { + uint32_t id = (uint32_t)(i * 11 + 7); + input.push_back((uint8_t)(id >> 0)); + input.push_back((uint8_t)(id >> 8)); + input.push_back((uint8_t)(id >> 16)); + input.push_back((uint8_t)(id >> 24)); + uint16_t value = (uint16_t)(i ^ 0x55AA); + input.push_back((uint8_t)(value >> 0)); + input.push_back((uint8_t)(value >> 8)); + } + for (size_t i = 0; i < kTrailerSize; ++i) { + input.push_back((uint8_t)(0xF0 + i)); + } + + std::string code = R"( + header : Bytes(8) + records : record() { + id : UInt32LE, + value : UInt16LE, + }[)"; + code += std::to_string(kRecords); + code += R"(] + trailer : Bytes(16) + )"; + + expect_chunk_count(code, input, kExpectedChunks, kChunkSize); +} + +TEST_F(SDDL2GraphTest, DefaultChunkSizeAppliedWhenHintOmitted) +{ + constexpr size_t kNumEntries = + SDDL2_DEFAULT_CHUNK_BYTE_SIZE / sizeof(uint32_t) + 7; + + std::vector input(kNumEntries); + for (size_t i = 0; i < input.size(); ++i) { + input[i] = (uint32_t)(i * 17 + 3); + } + + expect_chunk_count( + R"( + payload : UInt32LE[] + )", + input, + 2); +} + +TEST_F(SDDL2GraphTest, ExplicitZeroChunkHintUsesDefaultChunking) +{ + constexpr size_t kNumEntries = + SDDL2_DEFAULT_CHUNK_BYTE_SIZE / sizeof(uint32_t) + 7; + + std::vector input(kNumEntries); + for (size_t i = 0; i < input.size(); ++i) { + input[i] = (uint32_t)(i * 17 + 3); + } + + expect_explicit_chunk_param_chunk_count( + R"( + payload : UInt32LE[] + )", + input, + 0, + 2); +} +#endif + +TEST_F(SDDL2GraphTest, SimpleApiOmitsDefaultChunkSizeParam) +{ + auto bytecode = assemble_bytecode( + R"( + payload : UInt32LE[] + )"); + + Compressor simple_api_compressor; + auto simple_graph = ZL_Compressor_registerSDDL2Graph( + simple_api_compressor.get(), bytecode.data(), bytecode.size()); + ASSERT_NE(simple_graph, ZL_GRAPH_ILLEGAL); + simple_api_compressor.selectStartingGraph(simple_graph); + + Compressor omitted_param_compressor; + LocalParams local_params; + local_params.addCopyParam( + SDDL2_BYTECODE_PARAM, bytecode.data(), bytecode.size()); + auto omitted_param_graph = omitted_param_compressor.parameterizeGraph( + ZL_GRAPH_SDDL2, + { + .localParams = std::move(local_params), + }); + omitted_param_compressor.selectStartingGraph(omitted_param_graph); + + EXPECT_EQ( + simple_api_compressor.serializeToJson(), + omitted_param_compressor.serializeToJson()); +} + +TEST_F(SDDL2GraphTest, OversizedChunkHintThrowsAtConstruction) +{ + const size_t chunk_size = + static_cast(std::numeric_limits::max()) + 1; + + try { + (void)graphs::SDDL2( + poly::string_view("", 0), ZL_GRAPH_STORE, chunk_size); + FAIL() << "Expected oversized chunk size to throw at construction"; + } catch (const openzl::Exception& ex) { + EXPECT_NE( + std::string{ ex.what() }.find("Bad SDDL2 chunk size"), + std::string::npos) + << ex.what(); + } +} + +TEST_F(SDDL2GraphTest, CompressWithExplicitZeroChunkLocalParam) +{ + const size_t star_entry_size = 2 * sizeof(double) + 2 * sizeof(uint8_t) + + sizeof(int16_t) + 2 * sizeof(float); + const auto input = gen(28 + 100 * star_entry_size); + + expect_explicit_zero_chunk_param_success( + R"( + header : Bytes(28) + stars : record() { + SRA0 : Float64LE, # Right Ascension (radians) + SDEC0 : Float64LE, # Declination (radians) + ISP : Bytes(2), # Spectral type + MAG : Int16LE, # Magnitude + XRPM : Float32LE, # R.A. proper motion + XDPM : Float32LE # Dec. proper motion + }[] + )", + input); +} + +// ============================================================================ +// Error Scenarios +// ============================================================================ + +TEST_F(SDDL2GraphTest, CompressInputSizeNotMultipleOfRecordSize) +{ + const auto input = gen(2 * sizeof(int32_t) * 100 + 1); + + expect_error( + R"( + : record() { + a : Int32LE, + b : Int32LE, + }[] + )", + input, + "split instructions do not map exactly the entire input"); +} + +TEST_F(SDDL2GraphTest, ChunkedCompressInputSizeNotMultipleOfRecordSize) +{ + constexpr size_t kChunkSize = ZL_MIN_CHUNK_SIZE; + constexpr size_t kRecords = ZL_MIN_CHUNK_SIZE / (2 * sizeof(int32_t)) + 100; + const auto input = gen(2 * sizeof(int32_t) * kRecords + 1); + + expect_chunked_error( + R"( + : record() { + a : Int32LE, + b : Int32LE, + }[] + )", + input, + kChunkSize, + "split instructions do not map exactly the entire input"); +} + +TEST_F(SDDL2GraphTest, ChunkedCompressElementLargerThanChunkSize) +{ + const auto input = gen(4); + + expect_chunked_error( + R"( + payload : UInt32LE[] + )", + input, + 2, + "cannot fit one element of size 4"); +} + +TEST_F(SDDL2GraphTest, ExpectFail) +{ + const auto input = gen(10); + + expect_error( + R"( + expect 5 + 5 == 15 + + : Byte[] + )", + input, + "expect_true condition not met"); +} + +// ============================================================================ +// Stable Clustering Tags for Optional Fields +// ============================================================================ + +#if ZL_ALLOW_INTROSPECTION + +namespace { + +void append_u8(std::vector& input, uint8_t v) +{ + input.push_back(v); +} + +template +void append(std::vector& input, std::mt19937& rng) +{ + std::uniform_int_distribution dist; + T v = dist(rng); + for (size_t j = 0; j < sizeof(T); ++j) { + input.push_back(static_cast(v >> (8 * j))); + } +} + +template +void append_n(std::vector& input, size_t n, std::mt19937& rng) +{ + for (size_t i = 0; i < n; ++i) { + append(input, rng); + } +} + +constexpr uint8_t TRUE = 3; + +} // namespace + +TEST_F(SDDL2GraphTest, TopLevelConditionalClusteringTagsStable) +{ + constexpr size_t kN = 10; + std::mt19937 rng(42); + + auto make_input = [&](bool present) { + std::vector input; + append_u8(input, present ? TRUE : 0); + if (present) { + append_n(input, kN, rng); + } + append_n(input, kN, rng); + return input; + }; + + std::string code = R"( + flag: UInt8 + when flag { + optional: UInt32LE[)" + + std::to_string(kN) + R"(] + } + tail: UInt16LE[)" + + std::to_string(kN) + R"(] + )"; + + // flag=1: tags {0, 1, 2} + { + auto input = make_input(true); + expect_clustering_tags(code, input, { 0, 1, 2 }); + } + + // flag=0: tags {0, 2} — tag 1 reserved but not emitted + { + auto input = make_input(false); + expect_clustering_tags(code, input, { 0, 2 }); + } +} + +TEST_F(SDDL2GraphTest, RecordWithConditionalFieldsClusteringTagsStable) +{ + constexpr size_t kN = 10; + std::mt19937 rng(42); + + auto make_input = [&](bool present) { + std::vector input; + append_u8(input, present ? TRUE : 0); + for (size_t i = 0; i < kN; ++i) { + append(input, rng); + if (present) { + append(input, rng); + } + append(input, rng); + } + return input; + }; + + std::string prog = R"( + record Data(COND) { + a: Int32LE, + when COND { + optional: Int16LE + }, + b: Int32LE + } + flag: UInt8 + : Data(flag)[)" + + std::to_string(kN) + R"(] + )"; + // flag=1: + { + auto input = make_input(true); + expect_clustering_tags(prog, input, { 0, 1, 2, 3 }); + } + + // flag=0: tag 2 reserved but not emitted + { + auto input = make_input(false); + expect_clustering_tags(prog, input, { 0, 1, 3 }); + } +} + +TEST_F(SDDL2GraphTest, MultipleOptionalFieldsClusteringTagsStable) +{ + constexpr size_t kN = 10; + std::mt19937 rng(42); + + auto make_input = [&](bool opt1_present, bool opt2_present) { + std::vector input; + for (size_t i = 0; i < kN; ++i) { + append(input, rng); + if (opt1_present) { + append(input, rng); + } + if (opt2_present) { + append(input, rng); + } + append(input, rng); + } + return input; + }; + + auto make_code = [&](int f1, int f2) { + return std::string(R"( + record Data(f1, f2) { + a: Int32LE, + when f1 { + opt1: Int16LE + }, + when f2 { + opt2: Int32LE + }, + b: Int32LE + } + : Data()") + + std::to_string(f1) + ", " + std::to_string(f2) + ")[" + + std::to_string(kN) + R"(] + )"; + }; + + // Both present: tags {0, 1, 2, 3} + { + auto input = make_input(true, true); + expect_clustering_tags(make_code(1, 1), input, { 0, 1, 2, 3 }); + } + + // Only opt1 present: tags {0, 1, 3} — tag 2 reserved + { + auto input = make_input(true, false); + expect_clustering_tags(make_code(1, 0), input, { 0, 1, 3 }); + } + + // Only opt2 present: tags {0, 2, 3} — tag 1 reserved + { + auto input = make_input(false, true); + expect_clustering_tags(make_code(0, 1), input, { 0, 2, 3 }); + } + + // Neither present: tags {0, 3} — tags 1 and 2 reserved + { + auto input = make_input(false, false); + expect_clustering_tags(make_code(0, 0), input, { 0, 3 }); + } +} + +TEST_F(SDDL2GraphTest, RecordWithNestedConditionalFieldsClusteringTagsStable) +{ + constexpr size_t kN = 10; + std::mt19937 rng(42); + + auto make_input = + [&](bool top_level_cond, bool outer_cond, bool inner_cond) { + std::vector input; + append_u8(input, top_level_cond ? TRUE : 0); + append_u8(input, outer_cond ? TRUE : 0); + append_u8(input, inner_cond ? TRUE : 0); + if (top_level_cond) { + for (size_t i = 0; i < kN; ++i) { + append(input, rng); + if (outer_cond) { + append(input, rng); + if (inner_cond) { + append(input, rng); + } + append(input, rng); + } + append(input, rng); + } + } + append_n(input, kN, rng); + return input; + }; + + std::string code = R"( + record Inner(COND) { + a: Int16LE, # 4 + when COND { + opt: Int32LE # 5 + }, + b: Int16LE # 6 + } + record Outer(OUTER_COND, INNER_COND) { + header: Int32LE, # 3 + when OUTER_COND { + inner: Inner(INNER_COND) + }, + footer: Int32LE # 7 + } + top_level_flag: UInt8 # 0 + outer_flag: UInt8 # 1 + inner_flag: UInt8 # 2 + when top_level_flag { + : Outer(outer_flag, inner_flag)[)" + + std::to_string(kN) + R"(] + } + tail: UInt32LE[] # 8 + )"; + + // All conditions true + { + auto input = make_input(true, true, true); + expect_clustering_tags(code, input, { 0, 1, 2, 3, 4, 5, 6, 7, 8 }); + } + + // Inner condition false: tag 5 reserved + { + auto input = make_input(true, true, false); + expect_clustering_tags(code, input, { 0, 1, 2, 3, 4, 6, 7, 8 }); + } + + // Top-level condition false: tags 3, 4, 5, 6, 7 reserved + { + auto input = make_input(false, false, false); + expect_clustering_tags(code, input, { 0, 1, 2, 8 }); + } +} + +#endif + +} // namespace testing +} // namespace sddl2 +} // namespace openzl diff --git a/tests/compress/graphs/sddl2/test_sddl2_input.cpp b/tests/compress/graphs/sddl2/test_sddl2_input.cpp new file mode 100644 index 000000000..204fbdde6 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_input.cpp @@ -0,0 +1,286 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for OpenZL VM input buffer operations. + * Tests Phase 3: Input Buffer + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2InputTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Input Buffer Initialization Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, BufferInit) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 5); + + EXPECT_EQ(buffer.data, data); + EXPECT_EQ(buffer.size, 5u); + EXPECT_EQ(buffer.current_pos, 0u); +} + +// ============================================================================ +// current_pos Operation Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, CurrentPosAtStart) +{ + uint8_t data[] = { 0xAA, 0xBB, 0xCC }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 3); + + // Get current_pos (should be 0) + ASSERT_EQ(SDDL2_op_current_pos(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2InputTest, CurrentPosAfterAdvance) +{ + uint8_t data[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 5); + + // Manually advance cursor (simulating segment creation) + buffer.current_pos = 3; + + // Get current_pos (should be 3) + ASSERT_EQ(SDDL2_op_current_pos(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 3); +} + +TEST_F(SDDL2InputTest, CurrentPosNoAdvance) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 2); + buffer.current_pos = 1; + + // Call current_pos multiple times - should not change cursor + ASSERT_EQ(SDDL2_op_current_pos(stack_, &buffer), SDDL2_OK); + EXPECT_EQ(buffer.current_pos, 1u); + + ASSERT_EQ(SDDL2_op_current_pos(stack_, &buffer), SDDL2_OK); + EXPECT_EQ(buffer.current_pos, 1u); + + // Stack should have two copies of position + popAndVerifyI64(stack_, 1); + popAndVerifyI64(stack_, 1); +} + +// ============================================================================ +// load.u8 Operation Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, LoadU8Basic) +{ + uint8_t data[] = { 0xAA, 0xBB, 0xCC, 0xDD }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 4); + + // Load byte at address 0 (should be 0xAA) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0xAA); + + // Load byte at address 2 (should be 0xCC) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0xCC); +} + +TEST_F(SDDL2InputTest, LoadU8AllBytes) +{ + uint8_t data[] = { 0x00, 0xFF, 0x42, 0x7F, 0x80 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 5); + + // Load all bytes + for (size_t i = 0; i < 5; i++) { + ASSERT_EQ( + SDDL2_Stack_push(stack_, SDDL2_Value_i64((int64_t)i)), + SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, (int64_t)data[i]); + } +} + +TEST_F(SDDL2InputTest, LoadU8NoCursorAdvance) +{ + uint8_t data[] = { 0x11, 0x22, 0x33 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 3); + size_t original_pos = buffer.current_pos; + + // Load byte - should NOT advance cursor + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + + EXPECT_EQ(buffer.current_pos, original_pos); + popAndVerifyI64(stack_, 0x22); +} + +// ============================================================================ +// Bounds Checking Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, LoadU8OutOfBoundsPositive) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 3); + + // Try to load at address 3 (out of bounds, valid range is 0-2) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); + + // Try to load at address 100 (way out of bounds) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2InputTest, LoadU8OutOfBoundsNegative) +{ + uint8_t data[] = { 0xAA, 0xBB }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 2); + + // Try to load at negative address + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2InputTest, LoadU8AtLastValidAddress) +{ + uint8_t data[] = { 0x10, 0x20, 0x30, 0x40, 0x50 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 5); + + // Load at last valid address (4) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(4)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x50); + + // Load at address 5 should fail + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2InputTest, LoadU8EmptyBuffer) +{ + uint8_t* data = NULL; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 0); + + // Any address should fail on empty buffer + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +// ============================================================================ +// Type Mismatch Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, LoadU8TypeMismatch) +{ + uint8_t data[] = { 0xAA, 0xBB }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 2); + + // Try to load with Tag instead of I64 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_TYPE_MISMATCH); + + // Try to load with Type instead of I64 + SDDL2_Type t = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(t)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// Stack Underflow Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, LoadU8Underflow) +{ + uint8_t data[] = { 0xAA }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 1); + + // Try to load with empty stack + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// Combined Operation Tests +// ============================================================================ + +TEST_F(SDDL2InputTest, CurrentPosAndLoad) +{ + uint8_t data[] = { 0x10, 0x20, 0x30, 0x40 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 4); + buffer.current_pos = 2; // Simulate being midway through + + // Get current position + ASSERT_EQ(SDDL2_op_current_pos(stack_, &buffer), SDDL2_OK); + + // Use it to load the byte at current position + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x30); // data[2] + + // Position should still be 2 + EXPECT_EQ(buffer.current_pos, 2u); +} + +TEST_F(SDDL2InputTest, ArithmeticWithLoad) +{ + uint8_t data[] = { 0x05, 0x03, 0x08 }; + SDDL2_Input_cursor buffer; + + SDDL2_Input_cursor_init(&buffer, data, 3); + + // Load data[0] = 5 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + + // Load data[1] = 3 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + + // Add them + ASSERT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_OK); + + // Result should be 8 + popAndVerifyI64(stack_, 8); + + // Verify it matches data[2] + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 8); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_jump_if.cpp b/tests/compress/graphs/sddl2/test_sddl2_jump_if.cpp new file mode 100644 index 000000000..b41992dfb --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_jump_if.cpp @@ -0,0 +1,126 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for the jump_if VM operation. + * Tests conditionally skipping N instructions based on a condition value. + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2JumpIfTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Basic Jump Tests +// ============================================================================ + +TEST_F(SDDL2JumpIfTest, JumpIfTrueSkipsInstructions) +{ + // Push N=3 (skip count), then condition=1 (true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + size_t skip_count = 0; + ASSERT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_OK); + + EXPECT_EQ(skip_count, 3u); + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2JumpIfTest, JumpIfFalseDoesNotSkip) +{ + // Push N=3 (skip count), then condition=0 (false) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + + size_t skip_count = 999; + ASSERT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_OK); + + EXPECT_EQ(skip_count, 0u); + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2JumpIfTest, JumpIfWithNZero) +{ + // Push N=0 (skip nothing), then condition=1 (true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + size_t skip_count = 999; + ASSERT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_OK); + + EXPECT_EQ(skip_count, 0u); + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2JumpIfTest, JumpIfNonZeroConditionIsTrue) +{ + // Push N=5, then condition=100 (non-zero = true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + + size_t skip_count = 0; + ASSERT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_OK); + + EXPECT_EQ(skip_count, 5u); + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2JumpIfTest, JumpIfNegativeConditionIsTrue) +{ + // Push N=2, then condition=-1 (negative = true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + + size_t skip_count = 0; + ASSERT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_OK); + + EXPECT_EQ(skip_count, 2u); + EXPECT_EQ(stack_->top, 0u); +} + +// ============================================================================ +// Error Cases +// ============================================================================ + +TEST_F(SDDL2JumpIfTest, JumpIfUnderflow) +{ + // Only condition, no N value + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + size_t skip_count = 0; + EXPECT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2JumpIfTest, JumpIfTypeMismatchCondition) +{ + // Push N, then Tag as condition (not I64) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + + size_t skip_count = 0; + EXPECT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2JumpIfTest, JumpIfTypeMismatchN) +{ + // Push Tag as N (not I64), then condition + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + size_t skip_count = 0; + EXPECT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2JumpIfTest, JumpIfNegativeN) +{ + // Push N=-1 (negative), then condition + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + size_t skip_count = 0; + EXPECT_EQ(SDDL2_op_jump_if(stack_, &skip_count), SDDL2_TYPE_MISMATCH); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_load.cpp b/tests/compress/graphs/sddl2/test_sddl2_load.cpp new file mode 100644 index 000000000..2ce99dae3 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_load.cpp @@ -0,0 +1,715 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2LoadTest : public SDDL2StackTest {}; + +} // namespace + +// ============================================================================ +// 8-bit Load Tests +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadU8Basic) +{ + uint8_t data[] = { 0x42, 0xFF, 0x00, 0x7F }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load byte at address 0: 0x42 (66) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x42); + + // Load byte at address 1: 0xFF (255, zero-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0xFF); +} + +TEST_F(SDDL2LoadTest, LoadI8SignExtension) +{ + uint8_t data[] = { 0x42, 0xFF, 0x80, 0x7F }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load signed byte at address 0: 0x42 (66, positive) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 66); + + // Load signed byte at address 1: 0xFF (-1, sign-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, -1); + + // Load signed byte at address 2: 0x80 (-128, sign-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, -128); + + // Load signed byte at address 3: 0x7F (127, positive) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 127); +} + +// ============================================================================ +// 16-bit Load Tests +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadU16LEBasic) +{ + uint8_t data[] = { 0x34, 0x12, 0xFF, 0xFF }; // 0x1234 LE, 0xFFFF LE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load u16le at address 0: 0x1234 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u16le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x1234); + + // Load u16le at address 2: 0xFFFF (65535, zero-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u16le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0xFFFF); +} + +TEST_F(SDDL2LoadTest, LoadU16BEBasic) +{ + uint8_t data[] = { 0x12, 0x34, 0xFF, 0xFF }; // 0x1234 BE, 0xFFFF BE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load u16be at address 0: 0x1234 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u16be(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x1234); +} + +TEST_F(SDDL2LoadTest, LoadI16LESignExtension) +{ + uint8_t data[] = { 0xFF, 0xFF, 0xFF, 0x7F }; // -1 LE, 32767 LE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load i16le at address 0: 0xFFFF (-1, sign-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i16le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, -1); + + // Load i16le at address 2: 0x7FFF (32767, positive) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i16le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 32767); +} + +TEST_F(SDDL2LoadTest, LoadI16BESignExtension) +{ + uint8_t data[] = { 0xFF, 0xFF, 0x7F, 0xFF }; // -1 BE, 32767 BE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load i16be at address 0: 0xFFFF (-1, sign-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i16be(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, -1); +} + +// ============================================================================ +// 32-bit Load Tests +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadU32LEBasic) +{ + uint8_t data[] = { 0x78, 0x56, 0x34, 0x12 }; // 0x12345678 LE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load u32le at address 0: 0x12345678 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u32le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x12345678); +} + +TEST_F(SDDL2LoadTest, LoadU32BEBasic) +{ + uint8_t data[] = { 0x12, 0x34, 0x56, 0x78 }; // 0x12345678 BE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load u32be at address 0: 0x12345678 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_u32be(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x12345678); +} + +TEST_F(SDDL2LoadTest, LoadI32LESignExtension) +{ + uint8_t data[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load i32le at address 0: 0xFFFFFFFF (-1, sign-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i32le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, -1); + + // Load i32le at address 4: 0x7FFFFFFF (2147483647, positive) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(4)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i32le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 2147483647); +} + +TEST_F(SDDL2LoadTest, LoadI32BESignExtension) +{ + uint8_t data[] = { 0xFF, 0xFF, 0xFF, 0xFF }; // -1 BE + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load i32be at address 0: 0xFFFFFFFF (-1, sign-extended) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i32be(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, -1); +} + +// ============================================================================ +// 64-bit Load Tests +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadI64LEBasic) +{ + uint8_t data[] = { 0xEF, 0xCD, 0xAB, 0x90, 0x78, 0x56, 0x34, 0x12 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load i64le at address 0: 0x1234567890ABCDEF + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i64le(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x1234567890ABCDEF); +} + +TEST_F(SDDL2LoadTest, LoadI64BEBasic) +{ + uint8_t data[] = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Load i64be at address 0: 0x1234567890ABCDEF + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_load_i64be(stack_, &buffer), SDDL2_OK); + popAndVerifyI64(stack_, 0x1234567890ABCDEF); +} + +// ============================================================================ +// Error Condition Tests - Stack Underflow +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadU8StackUnderflow) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI8StackUnderflow) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadU16LEStackUnderflow) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_u16le(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadU16BEStackUnderflow) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_u16be(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI16LEStackUnderflow) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i16le(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI16BEStackUnderflow) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i16be(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadU32LEStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_u32le(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadU32BEStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_u32be(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI32LEStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i32le(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI32BEStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i32be(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI64LEStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i64le(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LoadTest, LoadI64BEStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + EXPECT_EQ(SDDL2_op_load_i64be(stack_, &buffer), SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// Error Condition Tests - Type Mismatch +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadU8TypeMismatchTag) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU8TypeMismatchType) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI8TypeMismatchTag) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI8TypeMismatchType) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU16LETypeMismatchTag) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(300)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u16le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU16LETypeMismatchType) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_U16LE, .width = 2 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u16le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU16BETypeMismatchTag) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(400)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u16be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU16BETypeMismatchType) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_U16BE, .width = 2 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u16be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI16LETypeMismatchTag) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(500)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i16le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI16LETypeMismatchType) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I16LE, .width = 2 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i16le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI16BETypeMismatchTag) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(600)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i16be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI16BETypeMismatchType) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I16BE, .width = 2 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i16be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU32LETypeMismatchTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(700)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u32le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU32LETypeMismatchType) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_U32LE, .width = 4 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u32le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU32BETypeMismatchTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(800)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u32be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadU32BETypeMismatchType) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_U32BE, .width = 4 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u32be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI32LETypeMismatchTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(900)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i32le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI32LETypeMismatchType) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I32LE, .width = 4 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i32le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI32BETypeMismatchTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(1000)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i32be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI32BETypeMismatchType) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I32BE, .width = 4 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i32be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI64LETypeMismatchTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(1100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i64le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI64LETypeMismatchType) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I64LE, .width = 8 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i64le(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI64BETypeMismatchTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(1200)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i64be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LoadTest, LoadI64BETypeMismatchType) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Type type = { .kind = SDDL2_TYPE_I64BE, .width = 8 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i64be(stack_, &buffer), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// Error Condition Tests - Bounds Checking +// ============================================================================ + +TEST_F(SDDL2LoadTest, LoadU8BoundsNegativeAddress) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadU8BoundsBeyondBuffer) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI8BoundsBeyondBuffer) +{ + uint8_t data[] = { 0x42 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i8(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadU16LEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Try to load at address 1 (needs 2 bytes, but only 1 byte left) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u16le(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadU16BEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u16be(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI16LEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i16le(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI16BEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x42, 0x43 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i16be(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadU32LEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; // Only 3 bytes + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Try to load u32le at address 0 (needs 4 bytes, but only have 3) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u32le(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadU32BEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_u32be(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI32LEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i32le(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI32BEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i32be(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI64LEBoundsBeyondBuffer) +{ + uint8_t data[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 + }; // Only 7 bytes + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + // Try to load i64le at address 0 (needs 8 bytes, but only have 7) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i64le(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2LoadTest, LoadI64BEBoundsBeyondBuffer) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_load_i64be(stack_, &buffer), SDDL2_LOAD_BOUNDS); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_logic.cpp b/tests/compress/graphs/sddl2/test_sddl2_logic.cpp new file mode 100644 index 000000000..1fdc094eb --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_logic.cpp @@ -0,0 +1,397 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2LogicTest : public SDDL2StackTest {}; + +} // namespace + +// ============================================================================ +// AND Operation Tests - Logical AND (returns 0 or 1) +// ============================================================================ + +TEST_F(SDDL2LogicTest, LogicAndTrueTrue) +{ + // Test: true && true = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicAndTrueFalse) +{ + // Test: true && false = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicAndFalseTrue) +{ + // Test: false && true = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicAndFalseFalse) +{ + // Test: false && false = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicAndNonzeroValues) +{ + // Test: Any non-zero values are treated as true + // 100 && 200 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(200)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicAndNegativeValues) +{ + // Test: Negative values are treated as true + // -1 && -2 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicAndZeroWithNonzero) +{ + // Test: 0xFFFFFFFF && 0 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0xFFFFFFFF)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +// ============================================================================ +// OR Operation Tests - Logical OR (returns 0 or 1) +// ============================================================================ + +TEST_F(SDDL2LogicTest, LogicOrTrueTrue) +{ + // Test: true || true = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicOrTrueFalse) +{ + // Test: true || false = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicOrFalseTrue) +{ + // Test: false || true = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicOrFalseFalse) +{ + // Test: false || false = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicOrNonzeroValues) +{ + // Test: Any non-zero values are treated as true + // 100 || 200 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(200)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicOrZeroWithNonzero) +{ + // Test: 0 || 42 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicOrNegativeValues) +{ + // Test: Negative values are treated as true + // -1 || 0 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +// ============================================================================ +// XOR Operation Tests - Logical XOR (returns 0 or 1) +// ============================================================================ + +TEST_F(SDDL2LogicTest, LogicXorTrueTrue) +{ + // Test: true ^^ true = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicXorTrueFalse) +{ + // Test: true ^^ false = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicXorFalseTrue) +{ + // Test: false ^^ true = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicXorFalseFalse) +{ + // Test: false ^^ false = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicXorNonzeroValues) +{ + // Test: Both non-zero = false + // 100 ^^ 200 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(200)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicXorZeroWithNonzero) +{ + // Test: One true, one false = true + // 0 ^^ 42 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicXorNegativeValues) +{ + // Test: Both negative (both true) = false + // -1 ^^ -2 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +// ============================================================================ +// NOT Operation Tests - Logical NOT (returns 0 or 1) +// ============================================================================ + +TEST_F(SDDL2LogicTest, LogicNotZero) +{ + // Test: !0 = 1 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicNotOne) +{ + // Test: !1 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicNotPositive) +{ + // Test: !42 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicNotNegative) +{ + // Test: !(-1) = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicNotLargeValue) +{ + // Test: !(large value) = 0 + ASSERT_EQ( + SDDL2_Stack_push(stack_, SDDL2_Value_i64(0x123456789ABCDEF0)), + SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicNotDoubleNegation) +{ + // Test: !!0 = 0 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2LogicTest, LogicNotDoubleNegationNonzero) +{ + // Test: !!42 = 1 (normalizes to boolean) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); +} + +// ============================================================================ +// Error Condition Tests +// ============================================================================ + +TEST_F(SDDL2LogicTest, LogicAndStackUnderflow) +{ + // Empty stack + EXPECT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); + + // Only one value + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LogicTest, LogicOrStackUnderflow) +{ + // Empty stack + EXPECT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); + + // Only one value + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LogicTest, LogicXorStackUnderflow) +{ + // Empty stack + EXPECT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); + + // Only one value + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LogicTest, LogicNotStackUnderflow) +{ + // Empty stack + EXPECT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2LogicTest, LogicAndTypeMismatch) +{ + // Push Tag instead of I64 for second operand + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LogicTest, LogicOrTypeMismatch) +{ + // Push Type instead of I64 for first operand + SDDL2_Type type = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LogicTest, LogicXorTypeMismatch) +{ + // Push two Tags instead of I64s + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(20)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2LogicTest, LogicNotTypeMismatch) +{ + // Push Type instead of I64 + SDDL2_Type type = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// Combined Operations Tests +// ============================================================================ + +TEST_F(SDDL2LogicTest, LogicCombinedOperations) +{ + // Test: ((a && b) || c) ^^ d + // a=1, b=0, c=1, d=0 + // a && b = 0 + // (a && b) || c = 1 + // ((a && b) || c) ^^ d = 1 + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_and(stack_, NULL, 0), SDDL2_OK); // Result: 0 + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); // Result: 1 + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_xor(stack_, NULL, 0), SDDL2_OK); // Result: 1 + + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2LogicTest, LogicDeMorganLaw) +{ + // Test De Morgan's Law: !(a || b) == (!a && !b) + // a=1, b=0 + // a || b = 1, !(a || b) = 0 + // !a = 0, !b = 1, (!a && !b) = 0 + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_or(stack_, NULL, 0), SDDL2_OK); // Result: 1 + ASSERT_EQ(SDDL2_op_not(stack_, NULL, 0), SDDL2_OK); // Result: 0 + + popAndVerifyI64(stack_, 0); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_segments.cpp b/tests/compress/graphs/sddl2/test_sddl2_segments.cpp new file mode 100644 index 000000000..95aebaa5e --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_segments.cpp @@ -0,0 +1,372 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for OpenZL VM segment generation. + * Tests Phase 4: Simple Byte Segments + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2SegmentsTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Segment List Init/Destroy Tests +// ============================================================================ + +TEST_F(SDDL2SegmentsTest, SegmentListInit) +{ + SDDL2_Segment_list list; + SDDL2_Segment_list_init(&list, nullptr, nullptr); + + EXPECT_EQ(list.items, nullptr); + EXPECT_EQ(list.count, 0u); + EXPECT_EQ(list.capacity, 0u); +} + +TEST_F(SDDL2SegmentsTest, SegmentListDestroy) +{ + SDDL2_Segment_list list; + SDDL2_Segment_list_init(&list, alloc_fn, alloc_ctx_); + SDDL2_Segment_list_destroy(&list); + + EXPECT_EQ(list.items, nullptr); + EXPECT_EQ(list.count, 0u); + EXPECT_EQ(list.capacity, 0u); +} + +// ============================================================================ +// Single Segment Tests +// ============================================================================ + +TEST_F(SDDL2SegmentsTest, CreateSingleSegment) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 4); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Create unspecified segment: size=4 (no tag) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(4)), SDDL2_OK); + ASSERT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_OK); + + // Verify segment (tag=0 for unspecified) + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 0u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 4u); + + // Verify cursor advanced + EXPECT_EQ(buffer.current_pos, 4u); + + // Verify stack is empty + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, CreateZeroSizeSegment) +{ + uint8_t data[] = { 0xAA, 0xBB }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Create zero-size unspecified segment: size=0 (no tag) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_OK); + + // Verify segment (tag=0 for unspecified) + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 0u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 0u); + + // Cursor should not advance + EXPECT_EQ(buffer.current_pos, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +// ============================================================================ +// Bounds Checking Tests +// ============================================================================ + +TEST_F(SDDL2SegmentsTest, SegmentExceedsBuffer) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 3); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Try to create segment larger than buffer: size=10 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_SEGMENT_BOUNDS); + + // No segment should be created + EXPECT_EQ(segments.count, 0u); + + // Cursor should not advance + EXPECT_EQ(buffer.current_pos, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentAtExactBoundary) +{ + uint8_t data[] = { 0x10, 0x20, 0x30, 0x40, 0x50 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 5); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Create segment exactly at buffer size: size=5 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_OK); + + // Verify segment + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); + EXPECT_EQ(buffer.current_pos, 5u); + + // Try to create one more byte - should fail + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_SEGMENT_BOUNDS); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentAfterPartialConsumption) +{ + uint8_t data[] = { 0xAA, 0xBB, 0xCC, 0xDD }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 4); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Create first segment: size=2 + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_OK); + + // Try to create segment that's too large for remaining: size=3 (only 2 + // left) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_SEGMENT_BOUNDS); + + // Only first segment should exist + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(buffer.current_pos, 2u); + + SDDL2_Segment_list_destroy(&segments); +} + +// ============================================================================ +// Type Mismatch Tests +// ============================================================================ + +TEST_F(SDDL2SegmentsTest, SegmentWrongTagType) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Push Tag instead of I64 for size + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(segments.count, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentWrongSizeType) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Push Type instead of I64 for size + SDDL2_Type t = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(t)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(segments.count, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentNegativeTag) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Negative size should fail + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-100)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(segments.count, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentNegativeSize) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Another negative size test + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-5)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(segments.count, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +// ============================================================================ +// Stack Underflow Tests +// ============================================================================ + +TEST_F(SDDL2SegmentsTest, SegmentEmptyStack) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Empty stack - should underflow + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_STACK_UNDERFLOW); + + EXPECT_EQ(segments.count, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentMissingSize) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Don't push anything - test empty stack + EXPECT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_STACK_UNDERFLOW); + + EXPECT_EQ(segments.count, 0u); + + SDDL2_Segment_list_destroy(&segments); +} + +// ============================================================================ +// Integration Tests +// ============================================================================ + +TEST_F(SDDL2SegmentsTest, EndToEndSimpleProgram) +{ + uint8_t data[] = { 0x48, 0x65, 0x6C, 0x6C, 0x6F }; // "Hello" + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 5); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Simulate VM program: + // push 5 # size + // segment_create_unspecified + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_OK); + + // Result: One unspecified segment covering entire "Hello" string + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 0u); // Unspecified + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); + EXPECT_EQ(buffer.current_pos, 5u); + + SDDL2_Segment_list_destroy(&segments); +} + +TEST_F(SDDL2SegmentsTest, SegmentsWithArithmetic) +{ + uint8_t data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + + SDDL2_Input_cursor_init(&buffer, data, 10); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + + // Simulate VM program with arithmetic: + // push 2 # a + // push 3 # b + // add # a + b = 5 + // segment_create_unspecified + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_add(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ( + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments), + SDDL2_OK); + + // Result: One segment of size 5 + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); + + SDDL2_Segment_list_destroy(&segments); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_stack_depth.cpp b/tests/compress/graphs/sddl2/test_sddl2_stack_depth.cpp new file mode 100644 index 000000000..2dd73bb57 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_stack_depth.cpp @@ -0,0 +1,212 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Comprehensive tests for SDDL2 push.stack_depth operation + * Tests the stack introspection opcode + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2StackDepthTest : public SDDL2StackTest {}; +class SDDL2StackDepthSmallTest : public SDDL2StackTestCustomCapacity<10> {}; +class SDDL2StackDepthLargeTest : public SDDL2StackTestCustomCapacity<1000> {}; +} // namespace + +// ============================================================================ +// push.stack_depth Basic Tests +// ============================================================================ + +TEST_F(SDDL2StackDepthTest, PushStackDepthEmptyStack) +{ + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1u); + popAndVerifyI64(stack_, 0); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthOneElement) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 2u); + popAndVerifyI64(stack_, 1); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthMultipleElements) +{ + for (int i = 0; i < 5; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + } + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 6u); + popAndVerifyI64(stack_, 5); +} + +TEST_F(SDDL2StackDepthLargeTest, PushStackDepthLargeDepth) +{ + for (int i = 0; i < 100; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + } + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 101u); + popAndVerifyI64(stack_, 100); +} + +// ============================================================================ +// push.stack_depth Interaction Tests +// ============================================================================ + +TEST_F(SDDL2StackDepthTest, PushStackDepthAfterPush) +{ + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 0); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 1); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(30)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 3); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthAfterPop) +{ + for (int i = 0; i < 5; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + } + + SDDL2_Value val; + ASSERT_EQ(popValue(stack_, &val), SDDL2_OK); + ASSERT_EQ(popValue(stack_, &val), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 3); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthWithDifferentTypes) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + SDDL2_Type type = { .kind = SDDL2_TYPE_U32LE, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 4u); + popAndVerifyI64(stack_, 3); +} + +// ============================================================================ +// push.stack_depth Overflow Test +// ============================================================================ + +TEST_F(SDDL2StackDepthSmallTest, PushStackDepthNearCapacity) +{ + for (int i = 0; i < 9; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + } + + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 10u); + popAndVerifyI64(stack_, 9); +} + +TEST_F(SDDL2StackDepthSmallTest, PushStackDepthOverflow) +{ + for (int i = 0; i < 10; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + } + + EXPECT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_STACK_OVERFLOW); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 10u); +} + +// ============================================================================ +// push.stack_depth Combined Operations Tests +// ============================================================================ + +TEST_F(SDDL2StackDepthTest, PushStackDepthWithArithmetic) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(30)), SDDL2_OK); + + // Get depth (3) and multiply by 10 + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_mul(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 30); // 3 * 10 +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthWithComparison) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + + // Check if depth equals 2 + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_eq(stack_, NULL, 0), SDDL2_OK); + popAndVerifyI64(stack_, 1); // True +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthValidationPattern) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(30)), SDDL2_OK); + + // Validate depth == 3 + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_eq(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ(SDDL2_op_expect_true(stack_, NULL), SDDL2_OK); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthMultipleCalls) +{ + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 0); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + // After operations: [1, depth(1)=1, depth(2)=2] = 3 elements + EXPECT_EQ(SDDL2_Stack_depth(stack_), 3u); + popAndVerifyI64(stack_, 2); + popAndVerifyI64(stack_, 1); +} + +// ============================================================================ +// push.stack_depth Edge Cases +// ============================================================================ + +TEST_F(SDDL2StackDepthTest, PushStackDepthAfterDup) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_dup(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 2); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthAfterSwap) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_swap(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 2); +} + +TEST_F(SDDL2StackDepthTest, PushStackDepthAfterDrop) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_drop(stack_, NULL, 0), SDDL2_OK); + ASSERT_EQ(SDDL2_op_push_stack_depth(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 2); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_stack_drop_if.cpp b/tests/compress/graphs/sddl2/test_sddl2_stack_drop_if.cpp new file mode 100644 index 000000000..63f194df8 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_stack_drop_if.cpp @@ -0,0 +1,244 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for stack.drop_if operation. + * + * Tests the conditional stack drop operation which: + * - Pops a condition (I64) + * - If condition is non-zero, pops and discards the top value + * - If condition is zero, leaves the top value on the stack + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2StackDropIfTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Basic Functionality Tests +// ============================================================================ + +TEST_F(SDDL2StackDropIfTest, DropIfTrueBasic) +{ + // Push value then condition=1 (true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + // Execute drop_if - should drop the 42 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + // Stack should be empty + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2StackDropIfTest, DropIfFalseBasic) +{ + // Push value then condition=0 (false) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + + // Execute drop_if - should NOT drop the 42 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + // Stack should contain the 42 + EXPECT_EQ(stack_->top, 1u); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_I64); + EXPECT_EQ(result.value.as_i64, 42); +} + +TEST_F(SDDL2StackDropIfTest, DropIfNonzeroIsTrue) +{ + // Push value then condition=100 (non-zero = true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(99)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + + // Execute drop_if - should drop the 99 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2StackDropIfTest, DropIfNegativeIsTrue) +{ + // Push value then condition=-1 (negative = true) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(50)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + + // Execute drop_if - should drop the 50 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + EXPECT_EQ(stack_->top, 0u); +} + +// ============================================================================ +// Type Interactions +// ============================================================================ + +TEST_F(SDDL2StackDropIfTest, DropIfWithDifferentValueTypes) +{ + // Test with Tag value (should work - any value type can be dropped) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(123)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(stack_->top, 0u); + + // Test with Type value + SDDL2_Type type = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2StackDropIfTest, DropIfPreservesValueType) +{ + // Push Tag value and condition=0 (false) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(999)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + + // Execute drop_if - should NOT drop + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + // Verify Tag value is preserved + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TAG); + EXPECT_EQ(result.value.as_tag, 999u); +} + +// ============================================================================ +// Error Cases +// ============================================================================ + +TEST_F(SDDL2StackDropIfTest, DropIfUnderflowEmptyStack) +{ + EXPECT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2StackDropIfTest, DropIfUnderflowOnlyCondition) +{ + // Only condition, no value to drop + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + // Should fail when trying to drop non-existent value + EXPECT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2StackDropIfTest, DropIfTypeMismatchCondition) +{ + // Push value then Tag as condition (not I64) + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + + // Should fail - condition must be I64 + EXPECT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_TYPE_MISMATCH); +} + +// ============================================================================ +// Stack State Tests +// ============================================================================ + +TEST_F(SDDL2StackDropIfTest, DropIfMultipleValuesOnStack) +{ + // Push several values, then drop_if on top one + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(30)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + // Drop the 30 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + // Stack should have 10, 20 remaining + EXPECT_EQ(stack_->top, 2u); + + SDDL2_Value v1, v2; + ASSERT_EQ(popValue(stack_, &v1), SDDL2_OK); + ASSERT_EQ(popValue(stack_, &v2), SDDL2_OK); + EXPECT_EQ(v1.value.as_i64, 20); + EXPECT_EQ(v2.value.as_i64, 10); +} + +TEST_F(SDDL2StackDropIfTest, DropIfLeavesStackUnchangedWhenFalse) +{ + // Push several values + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(20)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(30)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + + // Execute drop_if + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + + // Stack should still have 10, 20, 30 + EXPECT_EQ(stack_->top, 3u); + + SDDL2_Value v1, v2, v3; + ASSERT_EQ(popValue(stack_, &v1), SDDL2_OK); + ASSERT_EQ(popValue(stack_, &v2), SDDL2_OK); + ASSERT_EQ(popValue(stack_, &v3), SDDL2_OK); + EXPECT_EQ(v1.value.as_i64, 30); + EXPECT_EQ(v2.value.as_i64, 20); + EXPECT_EQ(v3.value.as_i64, 10); +} + +// ============================================================================ +// Sequential Operations +// ============================================================================ + +TEST_F(SDDL2StackDropIfTest, DropIfSequence) +{ + // Test sequence: drop true, drop false, drop true + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); // drops 1 + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); // keeps 2 + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); // drops 3 + + // Only 2 should remain + EXPECT_EQ(stack_->top, 1u); + popAndVerifyI64(stack_, 2); +} + +// ============================================================================ +// Combined with Other Operations +// ============================================================================ + +TEST_F(SDDL2StackDropIfTest, DropIfWithComparison) +{ + // Pattern: compare two values, drop result based on comparison + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(999)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_gt(stack_, NULL, 0), SDDL2_OK); // 10 > 5 = 1 (true) + + // Should drop 999 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(stack_->top, 0u); +} + +TEST_F(SDDL2StackDropIfTest, DropIfWithArithmetic) +{ + // Use arithmetic result as condition + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_sub(stack_, NULL, 0), SDDL2_OK); // 10 - 10 = 0 (false) + + // Should NOT drop 42 + ASSERT_EQ(SDDL2_op_stack_drop_if(stack_, NULL, 0), SDDL2_OK); + EXPECT_EQ(stack_->top, 1u); + popAndVerifyI64(stack_, 42); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_structure_segment.cpp b/tests/compress/graphs/sddl2/test_sddl2_structure_segment.cpp new file mode 100644 index 000000000..e3153d200 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_structure_segment.cpp @@ -0,0 +1,265 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for creating segments with structure types. + * + * Tests that segment.create_tagged works correctly with: + * - Single structure instances + * - Arrays of structures + * - Multiple segments with different structure types + * - Segment merging with same structure type + */ + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2StructureSegmentTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Success Scenarios +// ============================================================================ + +TEST_F(SDDL2StructureSegmentTest, SingleStructureSegment) +{ + // Structure {U8, I16LE, I32LE} = 7 bytes, 1 instance + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }; + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Build structure type {U8, I16LE, I32LE} + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i16_type = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_type = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i16_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + // Pop the structure type, then push tag/type/size for segment creation + SDDL2_Value struct_val; + ASSERT_EQ(popValue(stack_, &struct_val), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, struct_val), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 7u); + EXPECT_EQ(segments.items[0].type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(segments.items[0].type.width, 1u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2StructureSegmentTest, ArrayOfStructuresSegment) +{ + // Structure {U8, I32LE} = 5 bytes, array of 10 = 50 bytes + uint8_t data[50]; + memset(data, 0x42, sizeof(data)); + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Build structure {U8, I32LE} + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_type = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + // Create array of 10 structures + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value array_val; + ASSERT_EQ(popValue(stack_, &array_val), SDDL2_OK); + ASSERT_EQ(array_val.value.as_type.width, 10u); + + // Push tag/type/size for segment creation + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, array_val), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 200u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 50u); // 10 × 5 + EXPECT_EQ(segments.items[0].type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(segments.items[0].type.width, 10u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2StructureSegmentTest, MultipleStructureSegments) +{ + uint8_t data[100]; + memset(data, 0, sizeof(data)); + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_type = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + // Segment 1: {U8, U8} = 2 bytes, 10 instances = 20 bytes + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + SDDL2_Value struct1_val; + ASSERT_EQ(popValue(stack_, &struct1_val), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, struct1_val), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Segment 2: {I32LE, I32LE} = 8 bytes, 5 instances = 40 bytes + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + SDDL2_Value struct2_val; + ASSERT_EQ(popValue(stack_, &struct2_val), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, struct2_val), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + ASSERT_EQ(segments.count, 2u); + + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 20u); // 10 × 2 + EXPECT_EQ(segments.items[0].type.kind, SDDL2_TYPE_STRUCTURE); + + EXPECT_EQ(segments.items[1].tag, 200u); + EXPECT_EQ(segments.items[1].start_pos, 20u); + EXPECT_EQ(segments.items[1].size_bytes, 40u); // 5 × 8 + EXPECT_EQ(segments.items[1].type.kind, SDDL2_TYPE_STRUCTURE); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2StructureSegmentTest, SegmentMergingSameStructure) +{ + uint8_t data[100]; + memset(data, 0, sizeof(data)); + SDDL2_Input_cursor buffer; + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Structure {U8, I16LE} = 3 bytes + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i16_type = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i16_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + SDDL2_Value struct_val; + ASSERT_EQ(popValue(stack_, &struct_val), SDDL2_OK); + + // First segment: tag=100, 5 instances = 15 bytes + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, struct_val), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + ASSERT_EQ(segments.count, 1u); + + // Second segment with SAME tag and type: should merge + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, struct_val), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Should still be 1 segment (merged) + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 24u); // 8 instances × 3 bytes + EXPECT_EQ(segments.items[0].type.kind, SDDL2_TYPE_STRUCTURE); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_structure_split_integration.cpp b/tests/compress/graphs/sddl2/test_sddl2_structure_split_integration.cpp new file mode 100644 index 000000000..69d471075 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_structure_split_integration.cpp @@ -0,0 +1,239 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Integration test for structure split-by-struct metadata. + * + * These checks validate the structure descriptions that drive the public + * `!zl.sddl2` graph's split-by-struct path. Full bytecode round-trip coverage + * lives in the SDDL2 graph tests. + */ + +#include +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2StructureSplitIntegrationTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Flat Structure Tests +// ============================================================================ + +TEST_F(SDDL2StructureSplitIntegrationTest, FlatStructureSplit) +{ + // Structure: {U8, I16LE, I32LE} = 7 bytes per instance, 10 instances = 70 + // bytes Expected after split: + // Field 0: 10 U8 values = 10 bytes + // Field 1: 10 I16LE values = 20 bytes + // Field 2: 10 I32LE values = 40 bytes + + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i16_type = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_type = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + size_t alloc_size = sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type); + auto* struct_data = (SDDL2_Struct_data*)malloc(alloc_size); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 3; + struct_data->total_size_bytes = 7; // 1 + 2 + 4 + struct_data->members[0] = u8_type; + struct_data->members[1] = i16_type; + struct_data->members[2] = i32_type; + + SDDL2_Type struct_type = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct_data }; + + EXPECT_EQ(struct_type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(struct_type.width, 1u); + EXPECT_EQ(struct_data->member_count, 3u); + EXPECT_EQ(struct_data->total_size_bytes, 7u); + + EXPECT_EQ(getTypeSize(struct_data->members[0]), 1u); // U8 + EXPECT_EQ(getTypeSize(struct_data->members[1]), 2u); // I16LE + EXPECT_EQ(getTypeSize(struct_data->members[2]), 4u); // I32LE + + free(struct_data); +} + +// ============================================================================ +// Nested Structure Tests +// ============================================================================ + +TEST_F(SDDL2StructureSplitIntegrationTest, NestedStructureSplit) +{ + // Outer: {U8, {I16LE, I32LE}, F64BE} + // Inner: {I16LE, I32LE} = 6 bytes + // Total: 1 + 6 + 8 = 15 bytes per instance + // Flattened: 4 primitive fields [U8, I16LE, I32LE, F64BE] + + size_t inner_alloc = sizeof(SDDL2_Struct_data) + 2 * sizeof(SDDL2_Type); + auto* inner_data = (SDDL2_Struct_data*)malloc(inner_alloc); + ASSERT_NE(inner_data, nullptr); + + inner_data->member_count = 2; + inner_data->total_size_bytes = 6; // 2 + 4 + inner_data->members[0] = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + inner_data->members[1] = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + SDDL2_Type inner_struct = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = inner_data }; + + size_t outer_alloc = sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type); + auto* outer_data = (SDDL2_Struct_data*)malloc(outer_alloc); + ASSERT_NE(outer_data, nullptr); + + outer_data->member_count = 3; + outer_data->total_size_bytes = 15; // 1 + 6 + 8 + outer_data->members[0] = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + outer_data->members[1] = inner_struct; + outer_data->members[2] = { .kind = SDDL2_TYPE_F64BE, + .width = 1, + .struct_data = nullptr }; + + SDDL2_Type outer_struct = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = outer_data }; + + EXPECT_EQ(outer_struct.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(outer_struct.width, 1u); + EXPECT_EQ(outer_data->member_count, 3u); + EXPECT_EQ(outer_data->total_size_bytes, 15u); + + EXPECT_EQ(outer_data->members[1].kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(inner_data->member_count, 2u); + + free(inner_data); + free(outer_data); +} + +// ============================================================================ +// Structure with Array Field Tests +// ============================================================================ + +TEST_F(SDDL2StructureSplitIntegrationTest, StructureWithArrayField) +{ + // Structure: {U8, [I32LE × 5], I16LE} + // Field 0: U8 (1 byte) + // Field 1: [I32LE × 5] (20 bytes) + // Field 2: I16LE (2 bytes) + // Total: 23 bytes per instance + + size_t alloc_size = sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type); + auto* struct_data = (SDDL2_Struct_data*)malloc(alloc_size); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 3; + struct_data->total_size_bytes = 23; // 1 + 20 + 2 + struct_data->members[0] = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct_data->members[1] = { .kind = SDDL2_TYPE_I32LE, + .width = 5, + .struct_data = nullptr }; + struct_data->members[2] = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + + SDDL2_Type struct_type = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct_data }; + + EXPECT_EQ(struct_type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(struct_data->member_count, 3u); + EXPECT_EQ(struct_data->total_size_bytes, 23u); + + EXPECT_EQ(getTypeSize(struct_data->members[0]), 1u); // U8 + EXPECT_EQ(getTypeSize(struct_data->members[1]), 20u); // I32LE × 5 + EXPECT_EQ(getTypeSize(struct_data->members[2]), 2u); // I16LE + + free(struct_data); +} + +// ============================================================================ +// Mixed Endianness Tests +// ============================================================================ + +TEST_F(SDDL2StructureSplitIntegrationTest, MixedEndiannessStructure) +{ + // Structure: {U16LE, I32BE, F64LE} = 14 bytes + + size_t alloc_size = sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type); + auto* struct_data = (SDDL2_Struct_data*)malloc(alloc_size); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 3; + struct_data->total_size_bytes = 14; // 2 + 4 + 8 + struct_data->members[0] = { .kind = SDDL2_TYPE_U16LE, + .width = 1, + .struct_data = nullptr }; + struct_data->members[1] = { .kind = SDDL2_TYPE_I32BE, + .width = 1, + .struct_data = nullptr }; + struct_data->members[2] = { .kind = SDDL2_TYPE_F64LE, + .width = 1, + .struct_data = nullptr }; + + SDDL2_Type struct_type = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct_data }; + + EXPECT_EQ(struct_type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(struct_data->member_count, 3u); + EXPECT_EQ(struct_data->total_size_bytes, 14u); + + EXPECT_EQ(struct_data->members[0].kind, SDDL2_TYPE_U16LE); + EXPECT_EQ(struct_data->members[1].kind, SDDL2_TYPE_I32BE); + EXPECT_EQ(struct_data->members[2].kind, SDDL2_TYPE_F64LE); + + free(struct_data); +} + +// ============================================================================ +// Field Size Extraction Tests +// ============================================================================ + +TEST_F(SDDL2StructureSplitIntegrationTest, FieldSizeExtraction) +{ + // Structure: {U8, I32LE, F64BE} = 13 bytes + + size_t alloc_size = sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type); + auto* struct_data = (SDDL2_Struct_data*)malloc(alloc_size); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 3; + struct_data->total_size_bytes = 13; // 1 + 4 + 8 + struct_data->members[0] = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct_data->members[1] = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + struct_data->members[2] = { .kind = SDDL2_TYPE_F64BE, + .width = 1, + .struct_data = nullptr }; + + EXPECT_EQ(getTypeSize(struct_data->members[0]), 1u); + EXPECT_EQ(getTypeSize(struct_data->members[1]), 4u); + EXPECT_EQ(getTypeSize(struct_data->members[2]), 8u); + + free(struct_data); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_tagged_segments.cpp b/tests/compress/graphs/sddl2/test_sddl2_tagged_segments.cpp new file mode 100644 index 000000000..5860d0313 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_tagged_segments.cpp @@ -0,0 +1,1018 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for OpenZL VM tagged segments with automatic merging. + * Tests Phase 5: Tag Registry & Segment Merging + * + * This tests tagged segments and the automatic merging behavior: + * - When consecutive segments have the same tag, they merge automatically + * - When tags differ or positions are not consecutive, new segments are created + */ + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2TaggedSegmentsTest : public SDDL2StackTest {}; +class SDDL2TaggedSegmentsLargeTest : public SDDL2StackTestCustomCapacity<1000> { +}; +} // namespace + +// ============================================================================ +// Tag Registry Init/Destroy Tests +// ============================================================================ + +TEST_F(SDDL2TaggedSegmentsTest, TagRegistryInit) +{ + SDDL2_Tag_registry registry; + SDDL2_Tag_registry_init(®istry, nullptr, nullptr); + + EXPECT_EQ(registry.entries, nullptr); + EXPECT_EQ(registry.count, 0u); + EXPECT_EQ(registry.capacity, 0u); +} + +TEST_F(SDDL2TaggedSegmentsTest, TagRegistryDestroy) +{ + SDDL2_Tag_registry registry; + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_destroy(®istry); + + EXPECT_EQ(registry.entries, nullptr); + EXPECT_EQ(registry.count, 0u); + EXPECT_EQ(registry.capacity, 0u); +} + +// ============================================================================ +// Single Tagged Segment Tests +// ============================================================================ + +TEST_F(SDDL2TaggedSegmentsTest, CreateSingleTaggedSegment) +{ + uint8_t data[] = { 0x01, 0x02, 0x03, 0x04, 0x05 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 5); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Stack: tag=100, type=U8, size=5 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Check segment + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); + + // Check buffer advanced + EXPECT_EQ(buffer.current_pos, 5u); + + // Check tag registered + EXPECT_EQ(registry.count, 1u); + EXPECT_EQ(registry.entries[0].tag, 100u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentZeroSize) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 3); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Stack: tag=42, size=0 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(42)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 42u); + EXPECT_EQ(segments.items[0].size_bytes, 0u); + EXPECT_EQ(buffer.current_pos, 0u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +// ============================================================================ +// Automatic Merging Tests (Core Feature) +// ============================================================================ + +TEST_F(SDDL2TaggedSegmentsTest, MergeConsecutiveSameTag) +{ + uint8_t data[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 8); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Create first segment: tag=100, size=2 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Check: 1 segment, size=2 + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 2u); + EXPECT_EQ(buffer.current_pos, 2u); + + // Create second segment: tag=100, size=3 (SHOULD MERGE!) + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Check: STILL 1 segment, size=5 (merged!) + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); // 2 + 3 = 5! + EXPECT_EQ(buffer.current_pos, 5u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, NoMergeDifferentTag) +{ + uint8_t data[] = { 1, 2, 3, 4, 5, 6 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 6); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Create first segment: tag=100, size=2 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Create second segment: tag=200, size=3 (different tag, NO MERGE) + SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Check: 2 separate segments + EXPECT_EQ(segments.count, 2u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 2u); + EXPECT_EQ(segments.items[1].tag, 200u); + EXPECT_EQ(segments.items[1].start_pos, 2u); + EXPECT_EQ(segments.items[1].size_bytes, 3u); + EXPECT_EQ(buffer.current_pos, 5u); + + // Check both tags registered + EXPECT_EQ(registry.count, 2u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, MergeMultipleConsecutive) +{ + uint8_t data[20] = { 0 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 20); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Create 5 consecutive segments with tag=100, sizes: 2, 3, 1, 4, 5 + // Expected: All merge into 1 segment of size 15 + int sizes[] = { 2, 3, 1, 4, 5 }; + for (int i = 0; i < 5; i++) { + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(sizes[i])); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + } + + // Check: 1 merged segment + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 15u); // 2+3+1+4+5 + EXPECT_EQ(buffer.current_pos, 15u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, MergePatternAlternating) +{ + uint8_t data[20] = { 0 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 20); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Pattern: tag=100 (size=2), tag=200 (size=3), tag=100 (size=1), tag=200 + // (size=2) Expected: 4 segments (no merging due to alternation) + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + // Check: 4 separate segments + EXPECT_EQ(segments.count, 4u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].size_bytes, 2u); + EXPECT_EQ(segments.items[1].tag, 200u); + EXPECT_EQ(segments.items[1].size_bytes, 3u); + EXPECT_EQ(segments.items[2].tag, 100u); + EXPECT_EQ(segments.items[2].size_bytes, 1u); + EXPECT_EQ(segments.items[3].tag, 200u); + EXPECT_EQ(segments.items[3].size_bytes, 2u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, MergeSameTagAfterOtherTag) +{ + uint8_t data[20] = { 0 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 20); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Pattern: tag=100 (size=2), tag=100 (size=3), tag=200 (size=1), tag=200 + // (size=2) Expected: 2 segments: [tag=100, size=5], [tag=200, size=3] + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(200)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + // Check: 2 merged segments + EXPECT_EQ(segments.count, 2u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); // Merged! + EXPECT_EQ(segments.items[1].tag, 200u); + EXPECT_EQ(segments.items[1].size_bytes, 3u); // Merged! + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, NoMergeDifferentStructTypesSameSize) +{ + uint8_t data[32] = { 0 }; // 16 + 16 bytes + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 32); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Create first structure type: {U8, U8, I16LE, I32LE, I64LE} + // Size: 1 + 1 + 2 + 4 + 8 = 16 bytes + SDDL2_Struct_data* struct1_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 5 * sizeof(SDDL2_Type)); + ASSERT_NE(struct1_data, nullptr); + + struct1_data->member_count = 5; + struct1_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct1_data->members[1] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct1_data->members[2] = SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + struct1_data->members[3] = SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + struct1_data->members[4] = SDDL2_Type{ .kind = SDDL2_TYPE_I64LE, + .width = 1, + .struct_data = nullptr }; + struct1_data->total_size_bytes = 16; + + SDDL2_Type type1 = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct1_data }; + + // Create second structure type: {I64LE, I32LE, I16LE, U8, U8} + // Size: 8 + 4 + 2 + 1 + 1 = 16 bytes (SAME size, DIFFERENT layout!) + SDDL2_Struct_data* struct2_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 5 * sizeof(SDDL2_Type)); + ASSERT_NE(struct2_data, nullptr); + + struct2_data->member_count = 5; + struct2_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_I64LE, + .width = 1, + .struct_data = nullptr }; + struct2_data->members[1] = SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + struct2_data->members[2] = SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + struct2_data->members[3] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct2_data->members[4] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct2_data->total_size_bytes = 16; + + SDDL2_Type type2 = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct2_data }; + + // Create first segment: tag=100, type=struct1, size=16 bytes + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push(stack_, SDDL2_Value_type(type1)); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)); // 1 element + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + // Check: 1 segment, size=16 + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 16u); + EXPECT_EQ(buffer.current_pos, 16u); + + // Create second segment: tag=100 (SAME tag!), type=struct2, size=16 bytes + // This should FAIL because tag 100 is already registered with a different + // type! + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push(stack_, SDDL2_Value_type(type2)); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)); // 1 element + // Should fail with TYPE_MISMATCH because tag 100 already has a different + // type! + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_TYPE_MISMATCH); + + // Only the first segment should exist + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].start_pos, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 16u); + EXPECT_EQ(buffer.current_pos, 16u); + + // Only 1 tag should be registered + EXPECT_EQ(registry.count, 1u); + EXPECT_EQ(registry.entries[0].tag, 100u); + + free(struct1_data); + free(struct2_data); + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +// ============================================================================ +// Error Handling Tests +// ============================================================================ + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentBoundsError) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Try to create segment larger than buffer: tag=100, size=10 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)); + + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_SEGMENT_BOUNDS); + + // Nothing should be created + EXPECT_EQ(segments.count, 0u); + EXPECT_EQ(buffer.current_pos, 0u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentNegativeTag) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 3); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Try negative tag (using I64 instead of Tag): tag=-100, type=U8, size=2 + SDDL2_Stack_push(stack_, SDDL2_Value_i64(-100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_TYPE_MISMATCH); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentNegativeSize) +{ + uint8_t data[] = { 0x01, 0x02, 0x03 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 3); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Try negative size: tag=100, size=-5 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(-5)); + + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_TYPE_MISMATCH); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentSizeOverflow) +{ + uint8_t data[1024] = { 0 }; // Large buffer + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, sizeof(data)); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Try to create segment where element_count * type_size would overflow + int64_t overflow_count = (int64_t)(SIZE_MAX / 8) + 1; + + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_I64LE, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(overflow_count)); + + // Should return overflow error, not bounds error + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_MATH_OVERFLOW); + + // Nothing should be created + EXPECT_EQ(segments.count, 0u); + EXPECT_EQ(buffer.current_pos, 0u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentWrongTypeTag) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Push wrong type for tag (I64 instead of Tag) + SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_TYPE_MISMATCH); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentWrongTypeSize) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Push correct tag and type, but wrong type for size (Tag instead of I64) + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_tag(42)); + + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_TYPE_MISMATCH); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, TaggedSegmentStackUnderflow) +{ + uint8_t data[] = { 0x01, 0x02 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 2); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Push only tag and type, no size + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + + // After refactoring: we type-check as we pop, so TYPE_MISMATCH + // is detected before STACK_UNDERFLOW (fail-fast behavior) + EXPECT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_TYPE_MISMATCH); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +// ============================================================================ +// Integration Tests +// ============================================================================ + +TEST_F(SDDL2TaggedSegmentsTest, TaggedWithArithmetic) +{ + uint8_t data[20] = { 0 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 20); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Compute size with arithmetic: push 2, push 3, add -> 5 + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)); + SDDL2_op_add(stack_, NULL, 0); // -> 5 + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + + EXPECT_EQ(segments.count, 1u); + EXPECT_EQ(segments.items[0].tag, 100u); + EXPECT_EQ(segments.items[0].size_bytes, 5u); // Computed size! + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, MixedUnspecifiedAndTagged) +{ + uint8_t data[20] = { 0 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 20); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Create unspecified segment (tag=0) + SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)); + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments); + + // Create tagged segment (tag=100) + SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + SDDL2_op_segment_create_tagged(stack_, &buffer, &segments, ®istry); + + // Create another unspecified segment (tag=0) + SDDL2_Stack_push(stack_, SDDL2_Value_i64(4)); + SDDL2_op_segment_create_unspecified(stack_, &buffer, &segments); + + // Check: 3 segments + EXPECT_EQ(segments.count, 3u); + EXPECT_EQ(segments.items[0].tag, 0u); + EXPECT_EQ(segments.items[0].size_bytes, 3u); + EXPECT_EQ(segments.items[1].tag, 100u); + EXPECT_EQ(segments.items[1].size_bytes, 2u); + EXPECT_EQ(segments.items[2].tag, 0u); + EXPECT_EQ(segments.items[2].size_bytes, 4u); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsTest, ManyTagsRegistryGrowth) +{ + uint8_t data[200] = { 0 }; + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data, 200); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + // Create 50 segments with different tags (should trigger registry growth) + for (int i = 0; i < 50; i++) { + SDDL2_Stack_push(stack_, SDDL2_Value_tag((uint32_t)(100 + i))); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + } + + // Check: 50 segments, all registered + EXPECT_EQ(segments.count, 50u); + EXPECT_EQ(registry.count, 50u); + + // Verify each segment has correct tag + for (int i = 0; i < 50; i++) { + EXPECT_EQ(segments.items[i].tag, (uint32_t)(100 + i)); + EXPECT_EQ(segments.items[i].size_bytes, 2u); + } + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +// ============================================================================ +// Dynamic Growth Tests +// ============================================================================ + +TEST_F(SDDL2TaggedSegmentsLargeTest, SegmentListDynamicGrowth) +{ + const int NUM_SEGMENTS = SDDL2_SEGMENT_INITIAL_CAPACITY + 1; + const int SEGMENT_SIZE = 5; + + std::vector data(NUM_SEGMENTS * SEGMENT_SIZE); + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data.data(), data.size()); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + size_t initial_capacity = segments.capacity; + + // Create NUM_SEGMENTS segments with DIFFERENT tags (prevents merging) + for (int i = 0; i < NUM_SEGMENTS; i++) { + SDDL2_Stack_push(stack_, SDDL2_Value_tag((uint32_t)(1000 + i))); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push(stack_, SDDL2_Value_i64(SEGMENT_SIZE)); + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + } + + // Verify all 100 segments were created (no merging) + EXPECT_EQ(segments.count, (size_t)NUM_SEGMENTS); + + // Verify capacity grew beyond initial (proves dynamic growth works) + EXPECT_GT(segments.capacity, initial_capacity); + EXPECT_GE(segments.capacity, (size_t)NUM_SEGMENTS); + + // Verify each segment is correct and in order + for (int i = 0; i < NUM_SEGMENTS; i++) { + EXPECT_EQ(segments.items[i].tag, (uint32_t)(1000 + i)); + EXPECT_EQ(segments.items[i].start_pos, (size_t)(i * SEGMENT_SIZE)); + EXPECT_EQ(segments.items[i].size_bytes, SEGMENT_SIZE); + EXPECT_EQ(segments.items[i].type.kind, SDDL2_TYPE_U8); + EXPECT_EQ(segments.items[i].type.width, 1u); + } + + // Verify buffer cursor advanced correctly + EXPECT_EQ(buffer.current_pos, (size_t)(NUM_SEGMENTS * SEGMENT_SIZE)); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} + +TEST_F(SDDL2TaggedSegmentsLargeTest, SegmentListGrowthDifferentTypes) +{ + const int NUM_SEGMENT_GROUPS = (SDDL2_SEGMENT_INITIAL_CAPACITY + 4) / 4; + const int NUM_SEGMENTS = NUM_SEGMENT_GROUPS * 4; + const int SEGMENT_GROUP_SIZE = 16; + + std::vector data(NUM_SEGMENT_GROUPS * SEGMENT_GROUP_SIZE); + SDDL2_Input_cursor buffer; + SDDL2_Segment_list segments; + SDDL2_Tag_registry registry; + + SDDL2_Input_cursor_init(&buffer, data.data(), data.size()); + SDDL2_Segment_list_init(&segments, alloc_fn, alloc_ctx_); + SDDL2_Tag_registry_init(®istry, alloc_fn, alloc_ctx_); + + size_t initial_capacity = segments.capacity; + + // Types to cycle through (different sizes) + SDDL2_Type_kind types[] = { + SDDL2_TYPE_U8, // 1 byte + SDDL2_TYPE_I16LE, // 2 bytes + SDDL2_TYPE_F32LE, // 4 bytes + SDDL2_TYPE_I64BE // 8 bytes + }; + size_t element_counts[] = { 2, 1, 1, 1 }; // Total per segment: 2, 2, 4, 8 + + // Create NUM_SEGMENTS segments with DIFFERENT tags and DIFFERENT types + for (int i = 0; i < NUM_SEGMENT_GROUPS; i++) { + for (int type_idx = 0; type_idx < 4; type_idx++) { + SDDL2_Stack_push( + stack_, + SDDL2_Value_tag((uint32_t)(100 + 4 * i + type_idx))); + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = types[type_idx], + .width = 1, + .struct_data = nullptr })); + SDDL2_Stack_push( + stack_, SDDL2_Value_i64((int64_t)element_counts[type_idx])); + + ASSERT_EQ( + SDDL2_op_segment_create_tagged( + stack_, &buffer, &segments, ®istry), + SDDL2_OK); + } + } + + // Verify all 50 segments were created (no merging - different tags!) + EXPECT_EQ(segments.count, (size_t)NUM_SEGMENT_GROUPS * 4); + + // Verify capacity grew beyond initial + EXPECT_GT(segments.capacity, initial_capacity); + EXPECT_GE(segments.capacity, (size_t)NUM_SEGMENTS); + + // Verify each segment has correct type and tag + size_t expected_pos = 0; + for (int i = 0; i < NUM_SEGMENTS; i++) { + int type_idx = i % 4; + size_t expected_bytes = + element_counts[type_idx] * getKindSize(types[type_idx]); + + EXPECT_EQ(segments.items[i].tag, (uint32_t)(100 + i)); + EXPECT_EQ(segments.items[i].type.kind, types[type_idx]); + EXPECT_EQ(segments.items[i].type.width, 1u); + EXPECT_EQ(segments.items[i].start_pos, expected_pos); + EXPECT_EQ(segments.items[i].size_bytes, expected_bytes); + + expected_pos += expected_bytes; + } + + // 50 tags should be registered (each segment uses unique tag) + EXPECT_EQ(registry.count, (size_t)NUM_SEGMENTS); + + SDDL2_Segment_list_destroy(&segments); + SDDL2_Tag_registry_destroy(®istry); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_type_fixed_array.cpp b/tests/compress/graphs/sddl2/test_sddl2_type_fixed_array.cpp new file mode 100644 index 000000000..5e21d26d1 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_type_fixed_array.cpp @@ -0,0 +1,167 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2TypeFixedArrayTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Success Scenarios +// ============================================================================ + +TEST_F(SDDL2TypeFixedArrayTest, BasicArrayType) +{ + SDDL2_Type base_type = { .kind = SDDL2_TYPE_U32LE, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_U32LE); + EXPECT_EQ(result.value.as_type.width, 10); +} + +TEST_F(SDDL2TypeFixedArrayTest, NestedArrays) +{ + // I16LE with width=1 + SDDL2_Type base_type = { .kind = SDDL2_TYPE_I16LE, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + + // Create I16LE[5] + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + // Create array of 3 of those: I16LE[15] + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_I16LE); + EXPECT_EQ(result.value.as_type.width, 15); // 5 * 3 +} + +TEST_F(SDDL2TypeFixedArrayTest, ArrayCountOne) +{ + // F32BE with width=7 + SDDL2_Type base_type = { .kind = SDDL2_TYPE_F32BE, .width = 7 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_F32BE); + EXPECT_EQ(result.value.as_type.width, 7); // 7 * 1 +} + +TEST_F(SDDL2TypeFixedArrayTest, ZeroWidthArray) +{ + SDDL2_Type base_type = { .kind = SDDL2_TYPE_U8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_U8); + EXPECT_EQ(result.value.as_type.width, 0); +} + +TEST_F(SDDL2TypeFixedArrayTest, MaxSafeValue) +{ + SDDL2_Type base_type = { .kind = SDDL2_TYPE_I8, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push(stack_, SDDL2_Value_i64((int64_t)UINT32_MAX)), + SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.value.as_type.width, UINT32_MAX); +} + +TEST_F(SDDL2TypeFixedArrayTest, AllTypeKinds) +{ + SDDL2_Type_kind types[] = { + SDDL2_TYPE_BYTES, SDDL2_TYPE_U8, SDDL2_TYPE_I16LE, SDDL2_TYPE_U32BE, + SDDL2_TYPE_I64LE, SDDL2_TYPE_F32LE, SDDL2_TYPE_BF16BE, + }; + + for (size_t i = 0; i < sizeof(types) / sizeof(types[0]); i++) { + SDDL2_Stack_init(stack_); + + SDDL2_Type base_type = { .kind = types[i], .width = 2 }; + ASSERT_EQ( + SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.value.as_type.kind, types[i]); + EXPECT_EQ(result.value.as_type.width, 10); // 2 * 5 + } +} + +// ============================================================================ +// Error Scenarios +// ============================================================================ + +TEST_F(SDDL2TypeFixedArrayTest, ErrorWidthOverflow) +{ + SDDL2_Type base_type = { .kind = SDDL2_TYPE_U32LE, + .width = UINT32_MAX / 2 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + EXPECT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_MATH_OVERFLOW); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2TypeFixedArrayTest, ErrorWidthOverflowBoundary) +{ + SDDL2_Type base_type = { .kind = SDDL2_TYPE_U8, .width = UINT32_MAX }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(base_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + + EXPECT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_MATH_OVERFLOW); +} + +TEST_F(SDDL2TypeFixedArrayTest, ErrorWrongType) +{ + // Push I64 instead of Type + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + + EXPECT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2TypeFixedArrayTest, ErrorStackUnderflow) +{ + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); + + EXPECT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_STACK_UNDERFLOW); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_type_sizeof.cpp b/tests/compress/graphs/sddl2/test_sddl2_type_sizeof.cpp new file mode 100644 index 000000000..ef10f5506 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_type_sizeof.cpp @@ -0,0 +1,339 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for SDDL2 type.sizeof operation. + * + * Tests that type.sizeof correctly computes the byte size for: + * - Primitive types (U8, I32LE, F64LE, etc.) + * - Array types (type with width > 1) + * - Structure types + * - Integration with type.fixed_array and type.structure + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2TypeSizeofTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Success Scenarios +// ============================================================================ + +TEST_F(SDDL2TypeSizeofTest, PrimitiveI32LE) +{ + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type({ .kind = SDDL2_TYPE_I32LE, .width = 1 })), + SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1); + popAndVerifyI64(stack_, 4); +} + +TEST_F(SDDL2TypeSizeofTest, VariousPrimitives) +{ + struct { + SDDL2_Type_kind kind; + int64_t expected_size; + } test_cases[] = { + { SDDL2_TYPE_U8, 1 }, { SDDL2_TYPE_I8, 1 }, + { SDDL2_TYPE_BYTES, 1 }, { SDDL2_TYPE_U16LE, 2 }, + { SDDL2_TYPE_I16BE, 2 }, { SDDL2_TYPE_F16LE, 2 }, + { SDDL2_TYPE_U32LE, 4 }, { SDDL2_TYPE_I32BE, 4 }, + { SDDL2_TYPE_F32LE, 4 }, { SDDL2_TYPE_U64LE, 8 }, + { SDDL2_TYPE_I64BE, 8 }, { SDDL2_TYPE_F64LE, 8 }, + }; + + for (const auto& tc : test_cases) { + SDDL2_Stack_init(stack_); + + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type({ .kind = tc.kind, .width = 1 })), + SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_I64); + EXPECT_EQ(result.value.as_i64, tc.expected_size) << "kind=" << tc.kind; + } +} + +TEST_F(SDDL2TypeSizeofTest, ArrayType) +{ + // I16LE with width=10 -> 2 * 10 = 20 bytes + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + { .kind = SDDL2_TYPE_I16LE, .width = 10 })), + SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 20); +} + +TEST_F(SDDL2TypeSizeofTest, WithFixedArray) +{ + // Create U32LE[5] via type.fixed_array, then sizeof -> 4 * 5 = 20 + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type({ .kind = SDDL2_TYPE_U32LE, .width = 1 })), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 20); +} + +TEST_F(SDDL2TypeSizeofTest, StructureType) +{ + // Build structure: {U8, I16LE, I32LE} -> 1 + 2 + 4 = 7 + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 7); +} + +TEST_F(SDDL2TypeSizeofTest, StructureWithArrayMembers) +{ + // Build structure: {U8, I16LE[5], I32LE} -> 1 + (2*5) + 4 = 15 + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 5, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 15); +} + +TEST_F(SDDL2TypeSizeofTest, LargeArray) +{ + // U64LE[1000] = 8 * 1000 = 8000 + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + { .kind = SDDL2_TYPE_U64LE, .width = 1000 })), + SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 8000); +} + +TEST_F(SDDL2TypeSizeofTest, BytesArray) +{ + // BYTES[100] = 1 * 100 = 100 + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + { .kind = SDDL2_TYPE_BYTES, .width = 100 })), + SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 100); +} + +// ============================================================================ +// Error Scenarios +// ============================================================================ + +TEST_F(SDDL2TypeSizeofTest, ErrorEmptyStack) +{ + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); + + EXPECT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_STACK_UNDERFLOW); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2TypeSizeofTest, ErrorTopIsI64) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + + EXPECT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2TypeSizeofTest, ErrorTopIsTag) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + + EXPECT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_TYPE_MISMATCH); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0); +} + +TEST_F(SDDL2TypeSizeofTest, ErrorMultipleValuesTopWrong) +{ + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type({ .kind = SDDL2_TYPE_U32LE, .width = 1 })), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(99)), SDDL2_OK); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 2); + + EXPECT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_TYPE_MISMATCH); + + // Type value remains on stack + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1); +} + +// ============================================================================ +// Integration Scenarios +// ============================================================================ + +TEST_F(SDDL2TypeSizeofTest, SizeofForValidation) +{ + // Build structure: {F64LE, F64LE, BYTES[2]} -> 8 + 8 + 2 = 18 + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_F64LE, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_F64LE, + .width = 1, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type( + SDDL2_Type{ .kind = SDDL2_TYPE_BYTES, + .width = 2, + .struct_data = nullptr })), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + // Duplicate the type for validation + ASSERT_EQ(SDDL2_op_dup(stack_, nullptr, 0), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + popAndVerifyI64(stack_, 18); + + // Original type still on stack + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1); +} + +TEST_F(SDDL2TypeSizeofTest, PreservesStackBelow) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(200)), SDDL2_OK); + + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type({ .kind = SDDL2_TYPE_I32LE, .width = 1 })), + SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_depth(stack_), 3); + + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + + // Should have 3 elements: I64(100), I64(200), I64(4) + EXPECT_EQ(SDDL2_Stack_depth(stack_), 3); + + popAndVerifyI64(stack_, 4); + popAndVerifyI64(stack_, 200); + popAndVerifyI64(stack_, 100); +} + +TEST_F(SDDL2TypeSizeofTest, MultipleTimes) +{ + ASSERT_EQ( + SDDL2_Stack_push( + stack_, + SDDL2_Value_type({ .kind = SDDL2_TYPE_U64LE, .width = 5 })), + SDDL2_OK); + + // Duplicate it + ASSERT_EQ(SDDL2_op_dup(stack_, nullptr, 0), SDDL2_OK); + + // Get sizeof first copy + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 40); // 8 * 5 + + // Get sizeof second copy + ASSERT_EQ(SDDL2_op_type_sizeof(stack_), SDDL2_OK); + popAndVerifyI64(stack_, 40); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_type_structure.cpp b/tests/compress/graphs/sddl2/test_sddl2_type_structure.cpp new file mode 100644 index 000000000..a65e42256 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_type_structure.cpp @@ -0,0 +1,174 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for SDDL2 structure types. + * + * Tests structure type creation and properties: + * - Simple structure creation and member verification + * - Arrays of structures + * - Structures with array members + * - Nested structures + */ + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2TypeStructureTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Success Scenarios +// ============================================================================ + +TEST_F(SDDL2TypeStructureTest, SimpleStructureCreation) +{ + // Structure: {U8, I16LE, I32LE} -> size = 1 + 2 + 4 = 7 + auto* struct_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type)); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 3; + struct_data->total_size_bytes = 0; + + struct_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct_data->members[1] = SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + struct_data->members[2] = SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + struct_data->total_size_bytes = getTypeSize(struct_data->members[0]) + + getTypeSize(struct_data->members[1]) + + getTypeSize(struct_data->members[2]); + + EXPECT_EQ(struct_data->total_size_bytes, 7); + + SDDL2_Type my_struct = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct_data }; + + EXPECT_EQ(my_struct.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(my_struct.width, 1); + ASSERT_NE(my_struct.struct_data, nullptr); + + SDDL2_Struct_data* data = my_struct.struct_data; + EXPECT_EQ(data->member_count, 3); + EXPECT_EQ(data->total_size_bytes, 7); + + free(struct_data); +} + +TEST_F(SDDL2TypeStructureTest, ArrayOfStructures) +{ + // Structure: {U8, I32LE} -> size = 1 + 4 = 5 + // Array of 10 -> total = 5 * 10 = 50 + auto* struct_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 2 * sizeof(SDDL2_Type)); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 2; + struct_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct_data->members[1] = SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + struct_data->total_size_bytes = 1 + 4; + + SDDL2_Type array_of_structs = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 10, + .struct_data = struct_data }; + + EXPECT_EQ(array_of_structs.width, 10); + EXPECT_EQ(array_of_structs.struct_data->total_size_bytes, 5); + + free(struct_data); +} + +TEST_F(SDDL2TypeStructureTest, StructureWithArrayMembers) +{ + // Structure: {U8, [I32LE × 10], I16LE} -> 1 + (4*10) + 2 = 43 + auto* struct_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type)); + ASSERT_NE(struct_data, nullptr); + + struct_data->member_count = 3; + struct_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + struct_data->members[1] = SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 10, + .struct_data = nullptr }; + struct_data->members[2] = SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + + struct_data->total_size_bytes = getTypeSize(struct_data->members[0]) + + getTypeSize(struct_data->members[1]) + + getTypeSize(struct_data->members[2]); + + EXPECT_EQ(struct_data->total_size_bytes, 43); + + SDDL2_Type my_struct = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = struct_data }; + + EXPECT_EQ(my_struct.struct_data->members[1].width, 10); + + free(struct_data); +} + +TEST_F(SDDL2TypeStructureTest, NestedStructures) +{ + // Inner: {U8, I16LE} -> 1 + 2 = 3 + auto* inner_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 2 * sizeof(SDDL2_Type)); + ASSERT_NE(inner_data, nullptr); + + inner_data->member_count = 2; + inner_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + inner_data->members[1] = SDDL2_Type{ .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + inner_data->total_size_bytes = 1 + 2; + + SDDL2_Type inner_struct = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = inner_data }; + + // Outer: {U8, inner_struct, I32LE} -> 1 + 3 + 4 = 8 + auto* outer_data = (SDDL2_Struct_data*)malloc( + sizeof(SDDL2_Struct_data) + 3 * sizeof(SDDL2_Type)); + ASSERT_NE(outer_data, nullptr); + + outer_data->member_count = 3; + outer_data->members[0] = SDDL2_Type{ .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + outer_data->members[1] = inner_struct; + outer_data->members[2] = SDDL2_Type{ .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + outer_data->total_size_bytes = 1 + 3 + 4; + + SDDL2_Type outer_struct = { .kind = SDDL2_TYPE_STRUCTURE, + .width = 1, + .struct_data = outer_data }; + + SDDL2_Struct_data* outer_sd = outer_struct.struct_data; + EXPECT_EQ(outer_sd->member_count, 3); + EXPECT_EQ(outer_sd->members[1].kind, SDDL2_TYPE_STRUCTURE); + EXPECT_NE(outer_sd->members[1].struct_data, nullptr); + + free(outer_data); + free(inner_data); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_var.cpp b/tests/compress/graphs/sddl2/test_sddl2_var.cpp new file mode 100644 index 000000000..aa61fd26f --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_var.cpp @@ -0,0 +1,204 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { + +class SDDL2VarTest : public SDDL2StackTest { + protected: + void SetUp() override + { + SDDL2StackTest::SetUp(); + SDDL2_Var_registers_init(®s_); + } + + SDDL2_Var_registers regs_{}; +}; + +} // namespace + +// ============================================================================ +// var.store Tests +// ============================================================================ + +TEST_F(SDDL2VarTest, StoreI64) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + EXPECT_EQ(regs_.occupied[0], 1); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0u); +} + +TEST_F(SDDL2VarTest, StoreTag) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + EXPECT_EQ(regs_.occupied[5], 1); +} + +TEST_F(SDDL2VarTest, StoreType) +{ + SDDL2_Type t = { .kind = SDDL2_TYPE_I32LE, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(t)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + EXPECT_EQ(regs_.occupied[10], 1); +} + +TEST_F(SDDL2VarTest, StoreOverwrite) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(99)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_OK); + popAndVerifyI64(stack_, 99); +} + +TEST_F(SDDL2VarTest, StoreBoundsNegative) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2VarTest, StoreBoundsOverflow) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(256)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2VarTest, StoreTypeMismatch) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2VarTest, StoreUnderflowEmpty) +{ + EXPECT_EQ( + SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2VarTest, StoreUnderflowOneValue) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ( + SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// var.load Tests +// ============================================================================ + +TEST_F(SDDL2VarTest, LoadI64) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_OK); + popAndVerifyI64(stack_, 42); +} + +TEST_F(SDDL2VarTest, LoadTag) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(100)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(5)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_OK); + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TAG); + EXPECT_EQ(result.value.as_tag, 100u); +} + +TEST_F(SDDL2VarTest, LoadType) +{ + SDDL2_Type t = { .kind = SDDL2_TYPE_I32LE, .width = 1 }; + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(t)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_OK); + SDDL2_Value result; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_I32LE); + EXPECT_EQ(result.value.as_type.width, 1u); +} + +TEST_F(SDDL2VarTest, LoadUninitialized) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2VarTest, LoadBoundsNegative) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2VarTest, LoadBoundsOverflow) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(256)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_LOAD_BOUNDS); +} + +TEST_F(SDDL2VarTest, LoadTypeMismatch) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_tag(0)), SDDL2_OK); + EXPECT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2VarTest, LoadUnderflow) +{ + EXPECT_EQ( + SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_STACK_UNDERFLOW); +} + +// ============================================================================ +// Combined / Integration Tests +// ============================================================================ + +TEST_F(SDDL2VarTest, StoreLoadRoundTrip) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(12345)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_OK); + popAndVerifyI64(stack_, 12345); +} + +TEST_F(SDDL2VarTest, MultipleRegisters) +{ + for (int i = 0; i < 3; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(100 + i)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_store(stack_, NULL, 0, ®s_), SDDL2_OK); + } + + for (int i = 2; i >= 0; i--) { + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(i)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_var_load(stack_, NULL, 0, ®s_), SDDL2_OK); + popAndVerifyI64(stack_, 100 + i); + } +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_vm.cpp b/tests/compress/graphs/sddl2/test_sddl2_vm.cpp new file mode 100644 index 000000000..5d23d9d99 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_vm.cpp @@ -0,0 +1,130 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Basic unit tests for OpenZL VM stack operations. + * Tests Phase 1: Foundation (Stack + Values) + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2VmTest : public SDDL2StackTest {}; +class SDDL2VmSmallStackTest : public SDDL2StackTestCustomCapacity<10> {}; +} // namespace + +// ============================================================================ +// Stack Operations Tests +// ============================================================================ + +TEST_F(SDDL2VmTest, StackInit) +{ + EXPECT_NE(stack_, nullptr); + EXPECT_EQ(stack_->capacity, 100u); +} + +TEST_F(SDDL2VmTest, StackPushPop) +{ + // Push an I64 value + SDDL2_Value v1 = SDDL2_Value_i64(42); + ASSERT_EQ(SDDL2_Stack_push(stack_, v1), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1u); + EXPECT_FALSE(SDDL2_Stack_is_empty(stack_)); + + // Push a Tag value + SDDL2_Value v2 = SDDL2_Value_tag(100); + ASSERT_EQ(SDDL2_Stack_push(stack_, v2), SDDL2_OK); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 2u); + + // Pop and verify Tag + SDDL2_Value popped; + ASSERT_EQ(popValue(stack_, &popped), SDDL2_OK); + EXPECT_EQ(popped.kind, SDDL2_VALUE_TAG); + EXPECT_EQ(popped.value.as_tag, 100u); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1u); + + // Pop and verify I64 + ASSERT_EQ(popValue(stack_, &popped), SDDL2_OK); + EXPECT_EQ(popped.kind, SDDL2_VALUE_I64); + EXPECT_EQ(popped.value.as_i64, 42); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 0u); +} + +TEST_F(SDDL2VmTest, StackUnderflow) +{ + SDDL2_Value v; + EXPECT_EQ(popValue(stack_, &v), SDDL2_STACK_UNDERFLOW); + EXPECT_EQ(SDDL2_Stack_peek(stack_, &v), SDDL2_STACK_UNDERFLOW); +} + +TEST_F(SDDL2VmSmallStackTest, StackOverflow) +{ + // Fill stack to max capacity (10) + SDDL2_Value v = SDDL2_Value_i64(1); + for (size_t i = 0; i < 10; i++) { + ASSERT_EQ(SDDL2_Stack_push(stack_, v), SDDL2_OK); + } + + // Try to push one more - should overflow + EXPECT_EQ(SDDL2_Stack_push(stack_, v), SDDL2_STACK_OVERFLOW); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 10u); +} + +TEST_F(SDDL2VmTest, StackPeek) +{ + SDDL2_Value v1 = SDDL2_Value_i64(123); + ASSERT_EQ(SDDL2_Stack_push(stack_, v1), SDDL2_OK); + + // Peek should not modify stack + SDDL2_Value peeked; + ASSERT_EQ(SDDL2_Stack_peek(stack_, &peeked), SDDL2_OK); + EXPECT_EQ(peeked.kind, SDDL2_VALUE_I64); + EXPECT_EQ(peeked.value.as_i64, 123); + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1u); + + // Peek again - should return same value + ASSERT_EQ(SDDL2_Stack_peek(stack_, &peeked), SDDL2_OK); + EXPECT_EQ(peeked.value.as_i64, 123); +} + +// ============================================================================ +// Value Kind Tests +// ============================================================================ + +TEST_F(SDDL2VmTest, ValueKinds) +{ + // Test I64 value + SDDL2_Value v_i64 = SDDL2_Value_i64(-9223372036854775807LL); + EXPECT_EQ(v_i64.kind, SDDL2_VALUE_I64); + EXPECT_EQ(v_i64.value.as_i64, -9223372036854775807LL); + + // Test Tag value + SDDL2_Value v_tag = SDDL2_Value_tag(0xDEADBEEF); + EXPECT_EQ(v_tag.kind, SDDL2_VALUE_TAG); + EXPECT_EQ(v_tag.value.as_tag, 0xDEADBEEFu); + + // Test Type value + SDDL2_Type t = { .kind = SDDL2_TYPE_I32LE, .width = 4 }; + SDDL2_Value v_type = SDDL2_Value_type(t); + EXPECT_EQ(v_type.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(v_type.value.as_type.kind, SDDL2_TYPE_I32LE); + EXPECT_EQ(v_type.value.as_type.width, 4u); +} + +// ============================================================================ +// Type Size Tests +// ============================================================================ + +TEST_F(SDDL2VmTest, TypeSizes) +{ + EXPECT_EQ(getKindSize(SDDL2_TYPE_U8), 1u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I8), 1u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_U16LE), 2u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I16BE), 2u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_U32LE), 4u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_F32BE), 4u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I64LE), 8u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_F64BE), 8u); + EXPECT_EQ(getKindSize(SDDL2_TYPE_BYTES), 1u); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_vm_kind_size.cpp b/tests/compress/graphs/sddl2/test_sddl2_vm_kind_size.cpp new file mode 100644 index 000000000..e161e1eb1 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_vm_kind_size.cpp @@ -0,0 +1,93 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for SDDL2_kind_size() function. + * Verifies that all 24 type kinds return the correct size in bytes. + */ + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +// ============================================================================ +// 1-byte types +// ============================================================================ + +TEST(SDDL2KindSizeTest, OneByteTypes) +{ + EXPECT_EQ(getKindSize(SDDL2_TYPE_BYTES), 1); + EXPECT_EQ(getKindSize(SDDL2_TYPE_U8), 1); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I8), 1); + EXPECT_EQ(getKindSize(SDDL2_TYPE_F8), 1); +} + +// ============================================================================ +// 2-byte types +// ============================================================================ + +TEST(SDDL2KindSizeTest, TwoByteTypes) +{ + // Integers + EXPECT_EQ(getKindSize(SDDL2_TYPE_U16LE), 2); + EXPECT_EQ(getKindSize(SDDL2_TYPE_U16BE), 2); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I16LE), 2); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I16BE), 2); + + // Floats + EXPECT_EQ(getKindSize(SDDL2_TYPE_F16LE), 2); + EXPECT_EQ(getKindSize(SDDL2_TYPE_F16BE), 2); + EXPECT_EQ(getKindSize(SDDL2_TYPE_BF16LE), 2); + EXPECT_EQ(getKindSize(SDDL2_TYPE_BF16BE), 2); +} + +// ============================================================================ +// 4-byte types +// ============================================================================ + +TEST(SDDL2KindSizeTest, FourByteTypes) +{ + // Integers + EXPECT_EQ(getKindSize(SDDL2_TYPE_U32LE), 4); + EXPECT_EQ(getKindSize(SDDL2_TYPE_U32BE), 4); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I32LE), 4); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I32BE), 4); + + // Floats + EXPECT_EQ(getKindSize(SDDL2_TYPE_F32LE), 4); + EXPECT_EQ(getKindSize(SDDL2_TYPE_F32BE), 4); +} + +// ============================================================================ +// 8-byte types +// ============================================================================ + +TEST(SDDL2KindSizeTest, EightByteTypes) +{ + // Integers + EXPECT_EQ(getKindSize(SDDL2_TYPE_U64LE), 8); + EXPECT_EQ(getKindSize(SDDL2_TYPE_U64BE), 8); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I64LE), 8); + EXPECT_EQ(getKindSize(SDDL2_TYPE_I64BE), 8); + + // Floats + EXPECT_EQ(getKindSize(SDDL2_TYPE_F64LE), 8); + EXPECT_EQ(getKindSize(SDDL2_TYPE_F64BE), 8); +} + +// ============================================================================ +// Invalid type +// ============================================================================ + +TEST(SDDL2KindSizeTest, InvalidTypeReturnsError) +{ + SDDL2_RESULT_OF(size_t) result = SDDL2_kind_size(SDDL2_Type_kind(9999)); + EXPECT_TRUE(SDDL2_isError(result)); + EXPECT_EQ(SDDL2_error(result), SDDL2_TYPE_MISMATCH); +} + +TEST(SDDL2KindSizeTest, StructReturnsError) +{ + SDDL2_RESULT_OF(size_t) result = SDDL2_kind_size(SDDL2_TYPE_STRUCTURE); + EXPECT_TRUE(SDDL2_isError(result)); + EXPECT_EQ(SDDL2_error(result), SDDL2_TYPE_MISMATCH); +} diff --git a/tests/compress/graphs/sddl2/test_sddl2_vm_type_structure.cpp b/tests/compress/graphs/sddl2/test_sddl2_vm_type_structure.cpp new file mode 100644 index 000000000..f705a7315 --- /dev/null +++ b/tests/compress/graphs/sddl2/test_sddl2_vm_type_structure.cpp @@ -0,0 +1,172 @@ +// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. + +/** + * Unit tests for SDDL2_op_type_structure() VM Operation. + * + * Tests the stack-based operation for creating structure types: + * - Simple structure creation via VM op + * - Structures with array members + * - Array of structures (via type.fixed_array) + * - Zero-member structures + * - Error handling (negative members, wrong type) + */ + +#include + +#include "tests/compress/graphs/sddl2/utils.h" + +using namespace openzl::sddl2::testing; + +namespace { +class SDDL2VmTypeStructureTest : public SDDL2StackTest {}; +} // namespace + +// ============================================================================ +// Success Scenarios +// ============================================================================ + +TEST_F(SDDL2VmTypeStructureTest, SimpleStructure) +{ + // Push member types: U8, I16LE, I32LE + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i16_type = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_type = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i16_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_type)), SDDL2_OK); + + // Push member count + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + EXPECT_EQ(SDDL2_Stack_depth(stack_), 1u); + + SDDL2_Value result{}; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(result.value.as_type.width, 1u); + ASSERT_NE(result.value.as_type.struct_data, nullptr); + + SDDL2_Struct_data* struct_data = result.value.as_type.struct_data; + EXPECT_EQ(struct_data->member_count, 3u); + EXPECT_EQ(struct_data->total_size_bytes, 7u); // 1 + 2 + 4 + + EXPECT_EQ(struct_data->members[0].kind, SDDL2_TYPE_U8); + EXPECT_EQ(struct_data->members[1].kind, SDDL2_TYPE_I16LE); + EXPECT_EQ(struct_data->members[2].kind, SDDL2_TYPE_I32LE); + + EXPECT_EQ(getTypeSize(result.value.as_type), 7u); +} + +TEST_F(SDDL2VmTypeStructureTest, StructureWithArrays) +{ + // Structure {U8, [I32LE × 10], I16LE} + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_array_type = { .kind = SDDL2_TYPE_I32LE, + .width = 10, + .struct_data = nullptr }; + SDDL2_Type i16_type = { .kind = SDDL2_TYPE_I16LE, + .width = 1, + .struct_data = nullptr }; + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ( + SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_array_type)), + SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i16_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(3)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + SDDL2_Value result{}; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + + SDDL2_Struct_data* struct_data = result.value.as_type.struct_data; + EXPECT_EQ(struct_data->total_size_bytes, 43u); + EXPECT_EQ(struct_data->members[1].width, 10u); +} + +TEST_F(SDDL2VmTypeStructureTest, ArrayOfStructures) +{ + // Create structure {U8, I32LE}, then array of 10 + SDDL2_Type u8_type = { .kind = SDDL2_TYPE_U8, + .width = 1, + .struct_data = nullptr }; + SDDL2_Type i32_type = { .kind = SDDL2_TYPE_I32LE, + .width = 1, + .struct_data = nullptr }; + + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(u8_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_type(i32_type)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(2)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + // Use type.fixed_array to create array of 10 structures + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(10)), SDDL2_OK); + ASSERT_EQ(SDDL2_op_type_fixed_array(stack_), SDDL2_OK); + + SDDL2_Value result{}; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(result.value.as_type.width, 10u); + + SDDL2_Struct_data* struct_data = result.value.as_type.struct_data; + EXPECT_EQ(struct_data->total_size_bytes, 5u); // Size of one instance + + // Total size = 5 bytes × 10 = 50 bytes + EXPECT_EQ(getTypeSize(result.value.as_type), 50u); +} + +TEST_F(SDDL2VmTypeStructureTest, ZeroMemberStructure) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(0)), SDDL2_OK); + + ASSERT_EQ(SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), SDDL2_OK); + + SDDL2_Value result{}; + ASSERT_EQ(popValue(stack_, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_TYPE); + EXPECT_EQ(result.value.as_type.kind, SDDL2_TYPE_STRUCTURE); + EXPECT_EQ(result.value.as_type.width, 1u); + + SDDL2_Struct_data* struct_data = result.value.as_type.struct_data; + ASSERT_NE(struct_data, nullptr); + EXPECT_EQ(struct_data->member_count, 0u); + EXPECT_EQ(struct_data->total_size_bytes, 0u); +} + +// ============================================================================ +// Error Scenarios +// ============================================================================ + +TEST_F(SDDL2VmTypeStructureTest, ErrorNegativeMembers) +{ + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(-1)), SDDL2_OK); + + EXPECT_EQ( + SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), + SDDL2_TYPE_MISMATCH); +} + +TEST_F(SDDL2VmTypeStructureTest, ErrorWrongTypeOnStack) +{ + // Push I64 instead of Type + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(42)), SDDL2_OK); + ASSERT_EQ(SDDL2_Stack_push(stack_, SDDL2_Value_i64(1)), SDDL2_OK); + + EXPECT_EQ( + SDDL2_op_type_structure(stack_, alloc_fn, alloc_ctx_), + SDDL2_TYPE_MISMATCH); +} diff --git a/tests/compress/graphs/sddl2/utils.h b/tests/compress/graphs/sddl2/utils.h new file mode 100644 index 000000000..c679f864e --- /dev/null +++ b/tests/compress/graphs/sddl2/utils.h @@ -0,0 +1,181 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +#pragma once + +#include + +#include +#include +#include +#include +#include + +#include "openzl/codecs/zl_clustering.h" +#include "openzl/compress/graphs/sddl2/sddl2_vm.h" +#include "openzl/cpp/CompressIntrospectionHooks.hpp" +#include "openzl/cpp/DecompressIntrospectionHooks.hpp" +#include "openzl/zl_config.h" +#include "openzl/zl_graph_api.h" +#include "openzl/zl_input.h" + +namespace openzl { +namespace sddl2 { +namespace testing { + +#if ZL_ALLOW_INTROSPECTION +class CompressChunkCounterHook : public openzl::CompressIntrospectionHooks { + public: + size_t chunkCount = 0; + + void on_ZL_Segmenter_processChunk_start( + ZL_Segmenter*, + const size_t[], + size_t, + ZL_GraphID, + const ZL_RuntimeGraphParameters*) override + { + ++chunkCount; + } +}; + +class ClusteringTagCaptureHook : public openzl::CompressIntrospectionHooks { + public: + std::set tags; + + void on_migraphEncode_start( + ZL_Graph*, + const ZL_Compressor*, + ZL_GraphID, + ZL_Edge* inputs[], + size_t nbInputs) override + { + for (size_t i = 0; i < nbInputs; ++i) { + const ZL_Input* input = ZL_Edge_getData(inputs[i]); + if (input == nullptr) { + continue; + } + ZL_IntMetadata meta = ZL_Input_getIntMetadata( + input, ZL_CLUSTERING_TAG_METADATA_ID); + if (meta.isPresent) { + tags.insert(meta.mValue); + } + } + } +}; + +class DecompressChunkCounterHook : public openzl::DecompressIntrospectionHooks { + public: + size_t chunkCount = 0; + + void on_decompressChunk_start(ZL_DCtx*, size_t) override + { + ++chunkCount; + } +}; +#endif + +class SDDL2TestBase : public ::testing::Test { + protected: + static void* alloc_fn(void* allocator_ctx, size_t size) + { + auto arena = (std::vector*)allocator_ctx; + arena->push_back(std::string(size, 'x')); + return arena->back().data(); + } + + template + static std::vector gen( + size_t length, + std::optional opt_min = std::nullopt, + std::optional opt_max = std::nullopt) + { + std::vector vec(length); + + // Generate distribution + T min = opt_min.value_or(std::numeric_limits::lowest()); + T max = opt_max.value_or(std::numeric_limits::max()); + std::uniform_int_distribution dist(min, max); + + std::mt19937 mersenne_engine(10); + auto gen = [&dist, &mersenne_engine]() { + return dist(mersenne_engine); + }; + + std::generate(vec.begin(), vec.end(), gen); + return vec; + } + + static size_t sum(const std::vector& vec) + { + return std::accumulate(vec.begin(), vec.end(), size_t{ 0 }); + } + + std::vector arena_; + void* alloc_ctx_ = &arena_; +}; + +template +class SDDL2StackTestCustomCapacity : public SDDL2TestBase { + protected: + void SetUp() override + { + stack_ = (SDDL2_Stack*)malloc(sizeof(SDDL2_Stack)); + assert(stack_ != NULL); + + stack_->items = + (SDDL2_Value*)malloc(sizeof(SDDL2_Value) * StackCapacity); + assert(stack_->items != NULL); + + stack_->capacity = StackCapacity; + SDDL2_Stack_init(stack_); + } + void TearDown() override + { + free(stack_->items); + free(stack_); + } + + SDDL2_Stack* stack_; +}; + +using SDDL2StackTest = SDDL2StackTestCustomCapacity<100>; + +inline size_t getKindSize(SDDL2_Type_kind kind) +{ + SDDL2_RESULT_OF(size_t) result = SDDL2_kind_size(kind); + EXPECT_FALSE(SDDL2_isError(result)); + return SDDL2_value(result); +} + +inline size_t getTypeSize(SDDL2_Type type) +{ + SDDL2_RESULT_OF(size_t) result = SDDL2_Type_size(type); + EXPECT_FALSE(SDDL2_isError(result)); + return SDDL2_value(result); +} + +/** + * Pop helper that extracts value into out parameter. + * Provides compatibility with old API for tests. + */ +inline SDDL2_Error popValue(SDDL2_Stack* stack, SDDL2_Value* out) +{ + SDDL2_RESULT_OF(SDDL2_Value) result = SDDL2_Stack_pop(stack); + if (SDDL2_isError(result)) { + return SDDL2_error(result); + } + *out = SDDL2_value(result); + return SDDL2_OK; +} + +static void popAndVerifyI64(SDDL2_Stack* stack, int64_t expected) +{ + SDDL2_Value result; + ASSERT_EQ(popValue(stack, &result), SDDL2_OK); + EXPECT_EQ(result.kind, SDDL2_VALUE_I64); + EXPECT_EQ(result.value.as_i64, expected); +} + +} // namespace testing +} // namespace sddl2 +} // namespace openzl diff --git a/tests/compress/ml_selectors/test_zstrong_ml_core_models.c b/tests/compress/ml_selectors/test_zstrong_ml_core_models.c index fbde30dc0..4da77651b 100644 --- a/tests/compress/ml_selectors/test_zstrong_ml_core_models.c +++ b/tests/compress/ml_selectors/test_zstrong_ml_core_models.c @@ -21,105 +21,102 @@ static const GBTPredictor GBT_BINARY_CORE_PREDICTOR = { { { .featureIdx = 1, - .value = 0.5f, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { .featureIdx = 0, - .value = 0.5f, + .value = 1.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { .featureIdx = -1, - .value = -1.8709677f, + .value = -1.1203319f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -1.7037038f, + .value = -1.007752f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.6521739f, + .value = 3.8095236f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { .numNodes = 5, .nodes = (GBTPredictor_Node[]) { { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 - }, - { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 3, - .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 2 }, { .featureIdx = -1, - .value = -1.0042307f, + .value = -0.8604836f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, + { + .featureIdx = 1, + .value = 1.0f, + .leftChildIdx = 3, + .rightChildIdx = 4, + .missingChildIdx = 4 + }, { .featureIdx = -1, - .value = -0.8862287f, + .value = 0.65244645f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.85729164f, + .value = -0.7151537f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } } }; -static const Label GBT_BINARY_CORE_CLASS_LABELS[] = {"zero", "one"}; -static const size_t GBT_BINARY_CORE_NB_LABELS = 2; +static const size_t GBT_BINARY_CORE_NB_SUCCESSORS = 2; static const Label GBT_BINARY_CORE_FEATURE_LABELS[] = {"a", "b"}; static const size_t GBT_BINARY_CORE_NB_FEATURES = 2; -GBTModel getGbtBinaryCoreGbtModel(FeatureGenerator featureGenerator) +GBTModel getGbtBinaryCoreGbtModel(FeatureGenerator featureGenerator) { GBTModel gbtModel = { .predictor = &GBT_BINARY_CORE_PREDICTOR, .featureGenerator = featureGenerator, - .nbLabels = GBT_BINARY_CORE_NB_LABELS, - .classLabels = GBT_BINARY_CORE_CLASS_LABELS, + .nbSuccessors = GBT_BINARY_CORE_NB_SUCCESSORS, .nbFeatures = GBT_BINARY_CORE_NB_FEATURES, .featureLabels = GBT_BINARY_CORE_FEATURE_LABELS, }; return gbtModel; } - -// GENERATED GBT_MULTICLASS_CORE MODEL MEMBER FIELDS + // GENERATED GBT_MULTICLASS_CORE MODEL MEMBER FIELDS static const GBTPredictor GBT_MULTICLASS_CORE_PREDICTOR = { .numForests = 3, @@ -135,515 +132,487 @@ static const GBTPredictor GBT_MULTICLASS_CORE_PREDICTOR = { { { .featureIdx = 1, - .value = 0.5f, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 5, .rightChildIdx = 6, - .missingChildIdx = 5 + .missingChildIdx = 6 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 7, .rightChildIdx = 8, - .missingChildIdx = 7 + .missingChildIdx = 8 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 9, .rightChildIdx = 10, - .missingChildIdx = 9 + .missingChildIdx = 10 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 11, .rightChildIdx = 12, - .missingChildIdx = 11 + .missingChildIdx = 12 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 13, .rightChildIdx = 14, - .missingChildIdx = 13 + .missingChildIdx = 14 }, { .featureIdx = -1, - .value = 1.4219654f, + .value = 1.4042553f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7269625f, + .value = -0.7317074f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7341177f, + .value = -0.7287067f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 15, .rightChildIdx = 16, - .missingChildIdx = 15 + .missingChildIdx = 16 }, { .featureIdx = -1, - .value = -0.72563183f, + .value = -0.72332025f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.5008103f, + .value = 0.5320197f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = 1, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 17, .rightChildIdx = 18, - .missingChildIdx = 17 + .missingChildIdx = 18 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 1, + .value = 2.0f, .leftChildIdx = 19, .rightChildIdx = 20, - .missingChildIdx = 19 + .missingChildIdx = 20 }, { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 21, .rightChildIdx = 22, - .missingChildIdx = 21 + .missingChildIdx = 22 }, { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 23, .rightChildIdx = 24, - .missingChildIdx = 23 + .missingChildIdx = 24 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 25, .rightChildIdx = 26, - .missingChildIdx = 25 + .missingChildIdx = 26 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 27, .rightChildIdx = 28, - .missingChildIdx = 27 + .missingChildIdx = 28 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 29, .rightChildIdx = 30, - .missingChildIdx = 29 + .missingChildIdx = 30 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 31, .rightChildIdx = 32, - .missingChildIdx = 31 + .missingChildIdx = 32 }, { .featureIdx = -1, - .value = -0.70909095f, + .value = -0.70700645f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4285715f, + .value = 1.416149f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4014598f, + .value = 1.4181818f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7100592f, + .value = -0.69767445f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.6741574f, + .value = -0.7127072f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4237288f, + .value = 1.416149f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.3714286f, + .value = 1.4181818f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7142858f, + .value = -0.704698f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 33, .rightChildIdx = 34, - .missingChildIdx = 33 + .missingChildIdx = 34 }, { .featureIdx = -1, - .value = -0.7278689f, + .value = -0.7266437f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7278689f, + .value = -0.7287067f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = 2, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 35, .rightChildIdx = 36, - .missingChildIdx = 35 + .missingChildIdx = 36 }, { .featureIdx = -1, - .value = 1.3953488f, + .value = 1.4219654f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.70700645f, + .value = -0.70072997f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.69600004f, + .value = -0.7021277f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4068966f, + .value = 1.4140128f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { - .numNodes = 35, + .numNodes = 31, .nodes = (GBTPredictor_Node[]) { { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 1, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 5, .rightChildIdx = 6, - .missingChildIdx = 5 + .missingChildIdx = 6 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 7, .rightChildIdx = 8, - .missingChildIdx = 7 + .missingChildIdx = 8 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 9, .rightChildIdx = 10, - .missingChildIdx = 9 + .missingChildIdx = 10 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 11, .rightChildIdx = 12, - .missingChildIdx = 11 + .missingChildIdx = 12 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 13, .rightChildIdx = 14, - .missingChildIdx = 13 + .missingChildIdx = 14 }, { .featureIdx = -1, - .value = 0.5718974f, + .value = 0.5656097f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.5213649f, + .value = -0.5683136f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.5091445f, + .value = -0.5177248f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 15, .rightChildIdx = 16, - .missingChildIdx = 15 + .missingChildIdx = 16 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = -1, + .value = -0.50612986f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = 0.20929128f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = 0.18638352f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = 1, + .value = 2.0f, .leftChildIdx = 17, .rightChildIdx = 18, - .missingChildIdx = 17 + .missingChildIdx = 18 }, { .featureIdx = 2, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 19, .rightChildIdx = 20, - .missingChildIdx = 19 + .missingChildIdx = 20 }, { .featureIdx = 2, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 21, .rightChildIdx = 22, - .missingChildIdx = 21 + .missingChildIdx = 22 }, { .featureIdx = 2, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 23, .rightChildIdx = 24, - .missingChildIdx = 23 + .missingChildIdx = 24 }, { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 25, .rightChildIdx = 26, - .missingChildIdx = 25 - }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 27, - .rightChildIdx = 28, - .missingChildIdx = 27 - }, - { - .featureIdx = -1, - .value = -0.50410056f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 29, - .rightChildIdx = 30, - .missingChildIdx = 29 - }, - { - .featureIdx = -1, - .value = 0.55633605f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = -0.56521213f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = 0.20873131f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .missingChildIdx = 26 }, { .featureIdx = -1, - .value = -0.5674702f, + .value = -0.581066f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.5138941f, + .value = 0.57080823f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.6952867f, + .value = 0.6896345f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.63332886f, + .value = -0.46780372f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = -1, - .value = 0.7518081f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 0, + .value = 2.0f, + .leftChildIdx = 27, + .rightChildIdx = 28, + .missingChildIdx = 28 }, { .featureIdx = -1, - .value = 0.75839627f, + .value = -0.5105352f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.63109124f, + .value = -0.51342064f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 31, - .rightChildIdx = 32, - .missingChildIdx = 31 - }, - { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 33, - .rightChildIdx = 34, - .missingChildIdx = 33 + .featureIdx = 2, + .value = 2.0f, + .leftChildIdx = 29, + .rightChildIdx = 30, + .missingChildIdx = 30 }, { .featureIdx = -1, - .value = -0.48233476f, + .value = 0.5721305f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.5600104f, + .value = -0.47128305f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.5746739f, + .value = -0.47305343f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.46032077f, + .value = 0.56921756f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -657,267 +626,239 @@ static const GBTPredictor GBT_MULTICLASS_CORE_PREDICTOR = { .nodes = (GBTPredictor_Node[]) { { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { .featureIdx = 1, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { .featureIdx = 0, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 5, .rightChildIdx = 6, - .missingChildIdx = 5 + .missingChildIdx = 6 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 7, .rightChildIdx = 8, - .missingChildIdx = 7 + .missingChildIdx = 8 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 9, .rightChildIdx = 10, - .missingChildIdx = 9 + .missingChildIdx = 10 }, { .featureIdx = 1, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 11, .rightChildIdx = 12, - .missingChildIdx = 11 + .missingChildIdx = 12 }, { .featureIdx = 1, - .value = 1.5f, + .value = 1.0f, .leftChildIdx = 13, .rightChildIdx = 14, - .missingChildIdx = 13 + .missingChildIdx = 14 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 1, + .value = 1.0f, .leftChildIdx = 15, .rightChildIdx = 16, - .missingChildIdx = 15 - }, - { - .featureIdx = 0, - .value = 1.5f, - .leftChildIdx = 17, - .rightChildIdx = 18, - .missingChildIdx = 17 + .missingChildIdx = 16 }, { .featureIdx = -1, - .value = -0.728972f, + .value = -0.7328245f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 2, - .value = 0.5f, - .leftChildIdx = 19, - .rightChildIdx = 20, - .missingChildIdx = 19 - }, { .featureIdx = -1, - .value = -0.73190355f, + .value = -0.7272728f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4014598f, + .value = 1.4093959f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 0, - .value = 1.5f, - .leftChildIdx = 21, - .rightChildIdx = 22, - .missingChildIdx = 21 + .featureIdx = 2, + .value = 1.0f, + .leftChildIdx = 17, + .rightChildIdx = 18, + .missingChildIdx = 18 }, { - .featureIdx = -1, - .value = -0.7266437f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 2, + .value = 1.0f, + .leftChildIdx = 19, + .rightChildIdx = 20, + .missingChildIdx = 20 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 2, + .value = 2.0f, + .leftChildIdx = 21, + .rightChildIdx = 22, + .missingChildIdx = 22 + }, + { + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 23, .rightChildIdx = 24, - .missingChildIdx = 23 + .missingChildIdx = 24 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 25, .rightChildIdx = 26, - .missingChildIdx = 25 + .missingChildIdx = 26 }, { .featureIdx = 2, - .value = 0.5f, + .value = 1.0f, .leftChildIdx = 27, .rightChildIdx = 28, - .missingChildIdx = 27 + .missingChildIdx = 28 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 1, + .value = 1.0f, .leftChildIdx = 29, .rightChildIdx = 30, - .missingChildIdx = 29 + .missingChildIdx = 30 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 31, .rightChildIdx = 32, - .missingChildIdx = 31 - }, - { - .featureIdx = 0, - .value = 1.5f, - .leftChildIdx = 33, - .rightChildIdx = 34, - .missingChildIdx = 33 - }, - { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 35, - .rightChildIdx = 36, - .missingChildIdx = 35 - }, - { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 37, - .rightChildIdx = 38, - .missingChildIdx = 37 + .missingChildIdx = 32 }, { .featureIdx = -1, - .value = -0.71098274f, + .value = -0.7127072f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = -1, - .value = 1.4068966f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 2, + .value = 2.0f, + .leftChildIdx = 33, + .rightChildIdx = 34, + .missingChildIdx = 34 }, { .featureIdx = -1, - .value = 1.4389141f, + .value = -0.72843456f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.704698f, + .value = 1.3953488f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 39, - .rightChildIdx = 40, - .missingChildIdx = 39 + .value = 2.0f, + .leftChildIdx = 35, + .rightChildIdx = 36, + .missingChildIdx = 36 }, { .featureIdx = -1, - .value = -0.72631586f, + .value = -0.72563183f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7287067f, + .value = -0.7021277f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 41, - .rightChildIdx = 42, - .missingChildIdx = 41 - }, { .featureIdx = -1, - .value = -0.68571436f, + .value = 1.4014598f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4285715f, + .value = 1.3884298f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.416149f, + .value = -0.7127072f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.69600004f, + .value = 1.4181818f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7142858f, + .value = -0.6992482f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4140128f, + .value = -0.728972f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, + { + .featureIdx = 1, + .value = 1.0f, + .leftChildIdx = 37, + .rightChildIdx = 38, + .missingChildIdx = 38 + }, { .featureIdx = -1, - .value = 1.4201183f, + .value = 1.416149f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 @@ -930,341 +871,285 @@ static const GBTPredictor GBT_MULTICLASS_CORE_PREDICTOR = { .missingChildIdx = 0 }, { - .featureIdx = -1, - .value = 1.4117647f, + .featureIdx = 2, + .value = 1.0f, + .leftChildIdx = 39, + .rightChildIdx = 40, + .missingChildIdx = 40 + }, + { + .featureIdx = 2, + .value = 1.0f, + .leftChildIdx = 41, + .rightChildIdx = 42, + .missingChildIdx = 42 + }, + { + .featureIdx = -1, + .value = -0.70909095f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.6741574f, + .value = 1.4201183f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.70072997f, + .value = -0.7127072f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4093959f, + .value = 1.4014598f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = 1.4042553f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = -0.7021277f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { - .numNodes = 43, + .numNodes = 31, .nodes = (GBTPredictor_Node[]) { { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 1, + .value = 2.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 5, .rightChildIdx = 6, - .missingChildIdx = 5 + .missingChildIdx = 6 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 7, .rightChildIdx = 8, - .missingChildIdx = 7 + .missingChildIdx = 8 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 9, .rightChildIdx = 10, - .missingChildIdx = 9 + .missingChildIdx = 10 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 11, .rightChildIdx = 12, - .missingChildIdx = 11 + .missingChildIdx = 12 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 13, .rightChildIdx = 14, - .missingChildIdx = 13 + .missingChildIdx = 14 }, { .featureIdx = 0, - .value = 0.5f, + .value = 1.0f, .leftChildIdx = 15, .rightChildIdx = 16, - .missingChildIdx = 15 + .missingChildIdx = 16 + }, + { + .featureIdx = 1, + .value = 1.0f, + .leftChildIdx = 17, + .rightChildIdx = 18, + .missingChildIdx = 18 }, { .featureIdx = -1, - .value = -0.5135021f, + .value = -0.5954352f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.5046074f, + .value = 0.19785446f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.57464546f, + .value = -0.5637001f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 17, - .rightChildIdx = 18, - .missingChildIdx = 17 - }, - { - .featureIdx = 0, - .value = 1.5f, - .leftChildIdx = 19, - .rightChildIdx = 20, - .missingChildIdx = 19 - }, - { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 21, - .rightChildIdx = 22, - .missingChildIdx = 21 - }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 23, - .rightChildIdx = 24, - .missingChildIdx = 23 - }, - { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 25, - .rightChildIdx = 26, - .missingChildIdx = 25 - }, - { - .featureIdx = 1, - .value = 0.5f, - .leftChildIdx = 27, - .rightChildIdx = 28, - .missingChildIdx = 27 - }, { .featureIdx = -1, - .value = 0.57785547f, + .value = 0.17522162f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.49395284f, + .value = 0.7202468f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.51668644f, + .value = -0.5114188f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 29, - .rightChildIdx = 30, - .missingChildIdx = 29 - }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 31, - .rightChildIdx = 32, - .missingChildIdx = 31 - }, { .featureIdx = 1, - .value = 1.5f, - .leftChildIdx = 33, - .rightChildIdx = 34, - .missingChildIdx = 33 + .value = 1.0f, + .leftChildIdx = 19, + .rightChildIdx = 20, + .missingChildIdx = 20 }, { .featureIdx = 1, - .value = 1.5f, - .leftChildIdx = 35, - .rightChildIdx = 36, - .missingChildIdx = 35 - }, - { - .featureIdx = -1, - .value = -0.5687817f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = -0.48493275f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .value = 1.0f, + .leftChildIdx = 21, + .rightChildIdx = 22, + .missingChildIdx = 22 }, { - .featureIdx = -1, - .value = 0.5664608f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 0, + .value = 1.0f, + .leftChildIdx = 23, + .rightChildIdx = 24, + .missingChildIdx = 24 }, { - .featureIdx = -1, - .value = 0.56825083f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 2, + .value = 2.0f, + .leftChildIdx = 25, + .rightChildIdx = 26, + .missingChildIdx = 26 }, { .featureIdx = -1, - .value = -0.44080478f, + .value = -0.47328582f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.47128305f, + .value = 0.5575687f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.5712829f, + .value = 0.690161f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.563356f, + .value = -0.44513193f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 1, - .value = 1.5f, - .leftChildIdx = 37, - .rightChildIdx = 38, - .missingChildIdx = 37 - }, { .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 39, - .rightChildIdx = 40, - .missingChildIdx = 39 - }, - { - .featureIdx = 2, - .value = 1.5f, - .leftChildIdx = 41, - .rightChildIdx = 42, - .missingChildIdx = 41 - }, - { - .featureIdx = -1, - .value = 0.5672704f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .value = 2.0f, + .leftChildIdx = 27, + .rightChildIdx = 28, + .missingChildIdx = 28 }, { .featureIdx = -1, - .value = -0.46542704f, + .value = -0.56888866f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.56564116f, + .value = -0.51656187f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = -1, - .value = 0.7132853f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 0, + .value = 1.0f, + .leftChildIdx = 29, + .rightChildIdx = 30, + .missingChildIdx = 30 }, { .featureIdx = -1, - .value = -0.46478736f, + .value = 0.56396335f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.6982921f, + .value = -0.49957976f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.56867665f, + .value = -0.47839633f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.57217145f, + .value = 0.5715523f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } @@ -1278,507 +1163,472 @@ static const GBTPredictor GBT_MULTICLASS_CORE_PREDICTOR = { .nodes = (GBTPredictor_Node[]) { { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { .featureIdx = 1, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 1, + .value = 1.0f, .leftChildIdx = 5, .rightChildIdx = 6, - .missingChildIdx = 5 + .missingChildIdx = 6 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 7, .rightChildIdx = 8, - .missingChildIdx = 7 + .missingChildIdx = 8 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 9, .rightChildIdx = 10, - .missingChildIdx = 9 + .missingChildIdx = 10 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 11, .rightChildIdx = 12, - .missingChildIdx = 11 + .missingChildIdx = 12 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 13, .rightChildIdx = 14, - .missingChildIdx = 13 + .missingChildIdx = 14 }, { .featureIdx = -1, - .value = -0.7324676f, + .value = -0.72332025f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 1, + .value = 1.0f, .leftChildIdx = 15, .rightChildIdx = 16, - .missingChildIdx = 15 - }, - { - .featureIdx = 1, - .value = 1.5f, - .leftChildIdx = 17, - .rightChildIdx = 18, - .missingChildIdx = 17 - }, - { - .featureIdx = 2, - .value = 0.5f, - .leftChildIdx = 19, - .rightChildIdx = 20, - .missingChildIdx = 19 + .missingChildIdx = 16 }, { .featureIdx = -1, - .value = 1.4366198f, + .value = 1.4042553f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7272728f, + .value = -0.7278689f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.73065907f, + .value = 0.35494325f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.3996627f, + .value = -0.72631586f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = 0, - .value = 1.5f, + .value = 2.0f, + .leftChildIdx = 17, + .rightChildIdx = 18, + .missingChildIdx = 18 + }, + { + .featureIdx = 1, + .value = 2.0f, + .leftChildIdx = 19, + .rightChildIdx = 20, + .missingChildIdx = 20 + }, + { + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 21, .rightChildIdx = 22, - .missingChildIdx = 21 + .missingChildIdx = 22 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 23, .rightChildIdx = 24, - .missingChildIdx = 23 + .missingChildIdx = 24 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 1, + .value = 2.0f, .leftChildIdx = 25, .rightChildIdx = 26, - .missingChildIdx = 25 + .missingChildIdx = 26 }, { .featureIdx = 2, - .value = 0.5f, + .value = 1.0f, .leftChildIdx = 27, .rightChildIdx = 28, - .missingChildIdx = 27 + .missingChildIdx = 28 }, { .featureIdx = 0, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 29, .rightChildIdx = 30, - .missingChildIdx = 29 + .missingChildIdx = 30 }, { .featureIdx = 0, - .value = 1.5f, + .value = 2.0f, .leftChildIdx = 31, .rightChildIdx = 32, - .missingChildIdx = 31 + .missingChildIdx = 32 }, { .featureIdx = -1, - .value = -0.70588243f, + .value = -0.70072997f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4093959f, + .value = 1.4439834f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4181818f, + .value = 1.4254143f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.70072997f, + .value = -0.70807457f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, + { + .featureIdx = 2, + .value = 1.0f, + .leftChildIdx = 33, + .rightChildIdx = 34, + .missingChildIdx = 34 + }, { .featureIdx = -1, - .value = -0.70344836f, + .value = -0.7297298f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.4093959f, + .value = -0.72843456f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, + { + .featureIdx = 1, + .value = 2.0f, + .leftChildIdx = 35, + .rightChildIdx = 36, + .missingChildIdx = 36 + }, { .featureIdx = -1, - .value = 1.4042553f, + .value = -0.7100592f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.7142858f, + .value = 1.3953488f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 1, - .value = 1.5f, - .leftChildIdx = 33, - .rightChildIdx = 34, - .missingChildIdx = 33 - }, { .featureIdx = -1, - .value = -0.7310925f, + .value = 1.4181818f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.72597873f, + .value = -0.70700645f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 1, - .value = 1.5f, - .leftChildIdx = 35, - .rightChildIdx = 36, - .missingChildIdx = 35 - }, { .featureIdx = -1, - .value = 1.3483146f, + .value = 1.3984963f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.68571436f, + .value = -0.71098274f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.704698f, + .value = -0.70072997f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 1.392f, + .value = 1.4042553f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } }, { - .numNodes = 45, + .numNodes = 37, .nodes = (GBTPredictor_Node[]) { { - .featureIdx = 2, - .value = 1.5f, + .featureIdx = 1, + .value = 1.0f, .leftChildIdx = 1, .rightChildIdx = 2, - .missingChildIdx = 1 + .missingChildIdx = 2 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 3, .rightChildIdx = 4, - .missingChildIdx = 3 + .missingChildIdx = 4 }, { - .featureIdx = 1, - .value = 1.5f, + .featureIdx = 0, + .value = 2.0f, .leftChildIdx = 5, .rightChildIdx = 6, - .missingChildIdx = 5 + .missingChildIdx = 6 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 7, .rightChildIdx = 8, - .missingChildIdx = 7 + .missingChildIdx = 8 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 2.0f, .leftChildIdx = 9, .rightChildIdx = 10, - .missingChildIdx = 9 + .missingChildIdx = 10 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 11, .rightChildIdx = 12, - .missingChildIdx = 11 + .missingChildIdx = 12 }, { - .featureIdx = 0, - .value = 1.5f, + .featureIdx = 2, + .value = 1.0f, .leftChildIdx = 13, .rightChildIdx = 14, - .missingChildIdx = 13 + .missingChildIdx = 14 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = -1, + .value = -0.5092313f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = 0.58028257f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = 0.18739705f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = -1, + .value = -0.50997317f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 + }, + { + .featureIdx = 1, + .value = 2.0f, .leftChildIdx = 15, .rightChildIdx = 16, - .missingChildIdx = 15 + .missingChildIdx = 16 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 17, .rightChildIdx = 18, - .missingChildIdx = 17 + .missingChildIdx = 18 + }, + { + .featureIdx = -1, + .value = -0.5595142f, + .leftChildIdx = 0, + .rightChildIdx = 0, + .missingChildIdx = 0 }, { .featureIdx = 2, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 19, .rightChildIdx = 20, - .missingChildIdx = 19 + .missingChildIdx = 20 }, { - .featureIdx = 2, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 21, .rightChildIdx = 22, - .missingChildIdx = 21 + .missingChildIdx = 22 }, { - .featureIdx = 1, - .value = 0.5f, + .featureIdx = 0, + .value = 1.0f, .leftChildIdx = 23, .rightChildIdx = 24, - .missingChildIdx = 23 + .missingChildIdx = 24 }, { .featureIdx = 1, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 25, .rightChildIdx = 26, - .missingChildIdx = 25 + .missingChildIdx = 26 }, { - .featureIdx = 0, - .value = 0.5f, + .featureIdx = 1, + .value = 2.0f, .leftChildIdx = 27, .rightChildIdx = 28, - .missingChildIdx = 27 - }, - { - .featureIdx = -1, - .value = -0.61457556f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .missingChildIdx = 28 }, { .featureIdx = 1, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 29, .rightChildIdx = 30, - .missingChildIdx = 29 + .missingChildIdx = 30 }, { .featureIdx = 1, - .value = 0.5f, + .value = 2.0f, .leftChildIdx = 31, .rightChildIdx = 32, - .missingChildIdx = 31 - }, - { - .featureIdx = 2, - .value = 0.5f, - .leftChildIdx = 33, - .rightChildIdx = 34, - .missingChildIdx = 33 - }, - { - .featureIdx = -1, - .value = -0.5142705f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 35, - .rightChildIdx = 36, - .missingChildIdx = 35 + .missingChildIdx = 32 }, { .featureIdx = -1, - .value = -0.56659806f, + .value = -0.46048066f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.4877399f, + .value = 0.72062385f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.5629581f, + .value = 0.56384486f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, - { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 37, - .rightChildIdx = 38, - .missingChildIdx = 37 - }, { .featureIdx = -1, - .value = -0.6152538f, + .value = -0.5654189f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = -1, - .value = -0.48149866f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = 0.78480965f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = -0.44551954f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 2, + .value = 2.0f, + .leftChildIdx = 33, + .rightChildIdx = 34, + .missingChildIdx = 34 }, { .featureIdx = -1, - .value = 0.7787018f, + .value = -0.512225f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.51411456f, + .value = -0.51641506f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 39, - .rightChildIdx = 40, - .missingChildIdx = 39 - }, - { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 41, - .rightChildIdx = 42, - .missingChildIdx = 41 - }, - { - .featureIdx = 0, - .value = 0.5f, - .leftChildIdx = 43, - .rightChildIdx = 44, - .missingChildIdx = 43 - }, - { - .featureIdx = -1, - .value = 0.5656658f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 + .featureIdx = 2, + .value = 2.0f, + .leftChildIdx = 35, + .rightChildIdx = 36, + .missingChildIdx = 36 }, { .featureIdx = -1, @@ -1789,96 +1639,72 @@ static const GBTPredictor GBT_MULTICLASS_CORE_PREDICTOR = { }, { .featureIdx = -1, - .value = 0.5635658f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = -0.45336577f, + .value = 0.5670938f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.57685995f, + .value = 0.5600116f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.48777962f, + .value = -0.47957614f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.4749832f, + .value = 0.57459754f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.5493352f, + .value = -0.48105377f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = -0.4956725f, + .value = -0.47890803f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 }, { .featureIdx = -1, - .value = 0.57080823f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = 0.7165425f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 - }, - { - .featureIdx = -1, - .value = -0.46482655f, + .value = 0.5706471f, .leftChildIdx = 0, .rightChildIdx = 0, .missingChildIdx = 0 } - } + } } } } } }; -static const Label GBT_MULTICLASS_CORE_CLASS_LABELS[] = {"zero", "one", "two"}; -static const size_t GBT_MULTICLASS_CORE_NB_LABELS = 3; +static const size_t GBT_MULTICLASS_CORE_NB_SUCCESSORS = 3; static const Label GBT_MULTICLASS_CORE_FEATURE_LABELS[] = {"a", "b", "c"}; static const size_t GBT_MULTICLASS_CORE_NB_FEATURES = 3; -GBTModel getGbtMulticlassCoreGbtModel(FeatureGenerator featureGenerator) +GBTModel getGbtMulticlassCoreGbtModel(FeatureGenerator featureGenerator) { GBTModel gbtModel = { .predictor = &GBT_MULTICLASS_CORE_PREDICTOR, .featureGenerator = featureGenerator, - .nbLabels = GBT_MULTICLASS_CORE_NB_LABELS, - .classLabels = GBT_MULTICLASS_CORE_CLASS_LABELS, + .nbSuccessors = GBT_MULTICLASS_CORE_NB_SUCCESSORS, .nbFeatures = GBT_MULTICLASS_CORE_NB_FEATURES, .featureLabels = GBT_MULTICLASS_CORE_FEATURE_LABELS, }; return gbtModel; } - diff --git a/tests/compress/ml_selectors/test_zstrong_ml_core_models.h b/tests/compress/ml_selectors/test_zstrong_ml_core_models.h index 04ff9dcf6..1ce14cad7 100644 --- a/tests/compress/ml_selectors/test_zstrong_ml_core_models.h +++ b/tests/compress/ml_selectors/test_zstrong_ml_core_models.h @@ -12,11 +12,22 @@ extern "C" { #endif +typedef enum { + GBT_BINARY_CORE_ZERO = 0, + GBT_BINARY_CORE_ONE = 1, +} GbtBinaryCoreLabelEnum; + // GENERATED GBT_BINARY_CORE MODEL GETTER FUNCTION -extern GBTModel getGbtBinaryCoreGbtModel(FeatureGenerator featureGenerator); +extern GBTModel getGbtBinaryCoreGbtModel(FeatureGenerator featureGenerator); + +typedef enum { + GBT_MULTICLASS_CORE_ZERO = 0, + GBT_MULTICLASS_CORE_ONE = 1, + GBT_MULTICLASS_CORE_TWO = 2, +} GbtMulticlassCoreLabelEnum; // GENERATED GBT_MULTICLASS_CORE MODEL GETTER FUNCTION -extern GBTModel getGbtMulticlassCoreGbtModel(FeatureGenerator featureGenerator); +extern GBTModel getGbtMulticlassCoreGbtModel(FeatureGenerator featureGenerator); #ifdef __cplusplus } diff --git a/tests/compress/test_cgraph.cpp b/tests/compress/test_cgraph.cpp deleted file mode 100644 index 4bd72f038..000000000 --- a/tests/compress/test_cgraph.cpp +++ /dev/null @@ -1,391 +0,0 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. - -#include - -#include - -#include "openzl/zl_opaque_types.h" -#include "openzl/zl_public_nodes.h" -#include "openzl/zl_reflection.h" -#include "openzl/zl_selector.h" // ZL_SelectorDesc - -#include "tests/utils.h" - -using namespace ::testing; - -namespace { - -class CGraphTest : public Test { - protected: - void SetUp() override - { - cgraph_ = ZL_Compressor_create(); - } - void TearDown() override - { - ZL_Compressor_free(cgraph_); - } - - ZL_GraphID declareGraph( - ZL_NodeID node, - std::vector const& successors) - { - return ZL_Compressor_registerStaticGraph_fromNode( - cgraph_, node, successors.data(), successors.size()); - } - - size_t nbOutcomes(ZL_NodeID node) const - { - return ZL_Compressor_Node_getNumOutcomes(cgraph_, node); - } - - ZL_GraphID declareGraph(ZL_NodeID node) - { - std::vector successors(nbOutcomes(node), ZL_GRAPH_STORE); - return declareGraph(node, successors); - } - - ZL_Compressor* cgraph_{ nullptr }; -}; - -TEST_F(CGraphTest, referencingUnfinishedCGraphWithoutStartingGraphID) -{ - ZL_CCtx* const cctx = ZL_CCtx_create(); - ASSERT_TRUE(cctx); - ZL_Compressor* const cgraph = ZL_Compressor_create(); - ASSERT_TRUE(cgraph); - - ZL_Report const rcgr = ZL_CCtx_refCompressor(cctx, cgraph); - EXPECT_EQ(ZL_isError(rcgr), 1) << "CGraph reference should have failed\n"; - EXPECT_EQ(rcgr._code, ZL_ErrorCode_graph_invalid) - << "expected this error code specifically"; - - ZL_Compressor_free(cgraph); - ZL_CCtx_free(cctx); -} - -/* Note(@Cyan): since zstrong supports Typed Inputs, there is no longer a - * requirement for the first default Graph to support Serial Inputs. */ - -TEST_F(CGraphTest, graphName) -{ - ZL_Compressor* const cgraph = ZL_Compressor_create(); - ASSERT_TRUE(cgraph); - - static const char graphName[] = "!test graph name"; - const ZL_GraphID successor[] = { ZL_GRAPH_STORE }; - ZL_StaticGraphDesc const testGraph = { - .name = graphName, - .headNodeid = ZL_NODE_DELTA_INT, - .successor_gids = successor, - .nbGids = 1, - }; - - ZL_GraphID const graphid = - ZL_Compressor_registerStaticGraph(cgraph, &testGraph); - - const char* const testName = ZL_Compressor_Graph_getName(cgraph, graphid); - EXPECT_EQ(strcmp(testName, graphName + 1), 0); - - ZL_Compressor_free(cgraph); -} - -TEST_F(CGraphTest, nullGraphName) -{ - ZL_Compressor* const cgraph = ZL_Compressor_create(); - ASSERT_TRUE(cgraph); - - const ZL_GraphID successor[] = { ZL_GRAPH_STORE }; - ZL_StaticGraphDesc const testGraph = { - // .name intentionally not set - .headNodeid = ZL_NODE_DELTA_INT, - .successor_gids = successor, - .nbGids = 1, - }; - - ZL_GraphID const graphid = - ZL_Compressor_registerStaticGraph(cgraph, &testGraph); - - const char* const testName = ZL_Compressor_Graph_getName(cgraph, graphid); - EXPECT_EQ(strcmp(testName, "#0"), 0); - - ZL_Compressor_free(cgraph); -} - -TEST_F(CGraphTest, selectorName) -{ - ZL_Compressor* const cgraph = ZL_Compressor_create(); - ASSERT_TRUE(cgraph); - - static const char graphName[] = "!test selector name"; - const ZL_GraphID successor[] = { ZL_GRAPH_STORE }; - const ZL_SelectorDesc desc = { - .selector_f = - [](auto, auto, auto, auto) noexcept { return ZL_GRAPH_STORE; }, - .inStreamType = ZL_Type_serial, - .customGraphs = successor, - .nbCustomGraphs = 1, - .name = graphName, - }; - - ZL_GraphID const graphid = - ZL_Compressor_registerSelectorGraph(cgraph, &desc); - - const char* const testName = ZL_Compressor_Graph_getName(cgraph, graphid); - EXPECT_EQ(strcmp(testName, graphName + 1), 0); - - ZL_Compressor_free(cgraph); -} - -TEST_F(CGraphTest, baseNodeStandardTransform) -{ - ZL_Compressor* const compressor = ZL_Compressor_create(); - ASSERT_TRUE(compressor); - - const auto std_nid = ZL_NODE_ZIGZAG; - - { - // Standard nodes don't expose their base nodes. - const auto std_base_nid = - ZL_Compressor_Node_getBaseNodeID(compressor, std_nid); - EXPECT_EQ(std_base_nid, ZL_NODE_ILLEGAL); - } - - ZL_IntParam int_param = (ZL_IntParam){ - .paramId = 1, - .paramValue = 1, - }; - const ZL_LocalParams local_params{ .intParams = (ZL_LocalIntParams){ - .intParams = &int_param, - .nbIntParams = 0, - } }; - const auto cp_nid = - ZL_Compressor_cloneNode(compressor, std_nid, &local_params); - EXPECT_NE(cp_nid, ZL_NODE_ILLEGAL); - EXPECT_NE(cp_nid, std_nid); - - { - // Copied nodes should point back to their parent. - const auto cp_base_nid = - ZL_Compressor_Node_getBaseNodeID(compressor, cp_nid); - EXPECT_NE(cp_base_nid, ZL_NODE_ILLEGAL); - EXPECT_EQ(cp_base_nid, std_nid); - } - - int_param.paramValue++; - const auto cp_cp_nid = - ZL_Compressor_cloneNode(compressor, cp_nid, &local_params); - EXPECT_NE(cp_cp_nid, ZL_NODE_ILLEGAL); - EXPECT_NE(cp_cp_nid, cp_nid); - - { - // Multiply-copied nodes should point back to their immediate parent. - const auto cp_cp_base_nid = - ZL_Compressor_Node_getBaseNodeID(compressor, cp_cp_nid); - EXPECT_NE(cp_cp_base_nid, ZL_NODE_ILLEGAL); - EXPECT_EQ(cp_cp_base_nid, cp_nid); - } - - ZL_Compressor_free(compressor); -} - -TEST_F(CGraphTest, baseNodeCustomTransform) -{ - ZL_Compressor* const compressor = ZL_Compressor_create(); - ASSERT_TRUE(compressor); - - const auto outputStreamType = ZL_Type_serial; - const auto tr_func = [](ZL_Encoder*, const ZL_Input*) noexcept { - return ZL_returnSuccess(); - }; - const auto tr_desc = (ZL_TypedEncoderDesc){ - .gd = - (ZL_TypedGraphDesc){ - .CTid = 12345, - .inStreamType = ZL_Type_serial, - .outStreamTypes = &outputStreamType, - .nbOutStreams = 1, - }, - .transform_f = tr_func, - .localParams = (ZL_LocalParams){}, - .name = "!custom.test.noop", - }; - - const auto nid = ZL_Compressor_registerTypedEncoder(compressor, &tr_desc); - EXPECT_NE(nid, ZL_NODE_ILLEGAL); - - { - // Registered custom nodes don't have a base node. - const auto base_nid = ZL_Compressor_Node_getBaseNodeID(compressor, nid); - EXPECT_EQ(base_nid, ZL_NODE_ILLEGAL); - } - - ZL_IntParam int_param = (ZL_IntParam){ - .paramId = 1, - .paramValue = 1, - }; - const ZL_LocalParams local_params{ .intParams = (ZL_LocalIntParams){ - .intParams = &int_param, - .nbIntParams = 0, - } }; - const auto cp_nid = ZL_Compressor_cloneNode(compressor, nid, &local_params); - EXPECT_NE(cp_nid, ZL_NODE_ILLEGAL); - EXPECT_NE(cp_nid, nid); - - { - // Copied nodes should point back to their parent. - const auto cp_base_nid = - ZL_Compressor_Node_getBaseNodeID(compressor, cp_nid); - EXPECT_NE(cp_base_nid, ZL_NODE_ILLEGAL); - EXPECT_EQ(cp_base_nid, nid); - } - - int_param.paramValue++; - const auto cp_cp_nid = - ZL_Compressor_cloneNode(compressor, cp_nid, &local_params); - EXPECT_NE(cp_cp_nid, ZL_NODE_ILLEGAL); - EXPECT_NE(cp_cp_nid, cp_nid); - - { - // Multiply-copied nodes should point back to their immediate parent. - const auto cp_cp_base_nid = - ZL_Compressor_Node_getBaseNodeID(compressor, cp_cp_nid); - EXPECT_NE(cp_cp_base_nid, ZL_NODE_ILLEGAL); - EXPECT_EQ(cp_cp_base_nid, cp_nid); - } - - ZL_Compressor_free(compressor); -} - -void cloneAndCheckGetBaseGraphID( - ZL_Compressor* const compressor, - const ZL_GraphID gid) -{ - EXPECT_NE(gid, ZL_GRAPH_ILLEGAL); - - { - // Graphs produced other than by registerParameterizedGraph (standard, - // static, dynamic, etc.) don't expose their base graphs. - const auto base_gid = - ZL_Compressor_Graph_getBaseGraphID(compressor, gid); - EXPECT_EQ(base_gid, ZL_GRAPH_ILLEGAL); - } - - ZL_IntParam int_param = (ZL_IntParam){ - .paramId = 1, - .paramValue = 1, - }; - const ZL_LocalParams local_params{ .intParams = (ZL_LocalIntParams){ - .intParams = &int_param, - .nbIntParams = 0, - } }; - const auto desc1 = (ZL_ParameterizedGraphDesc){ - .name = NULL, - .graph = gid, - .customGraphs = NULL, - .nbCustomGraphs = 0, - .customNodes = NULL, - .nbCustomNodes = 0, - .localParams = &local_params, - }; - const auto cp_gid = - ZL_Compressor_registerParameterizedGraph(compressor, &desc1); - EXPECT_NE(cp_gid, ZL_GRAPH_ILLEGAL); - EXPECT_NE(cp_gid, gid); - - { - // Copied nodes should point back to their parent. - const auto cp_base_gid = - ZL_Compressor_Graph_getBaseGraphID(compressor, cp_gid); - EXPECT_NE(cp_base_gid, ZL_GRAPH_ILLEGAL); - EXPECT_EQ(cp_base_gid, gid); - } - - int_param.paramValue++; - const auto desc2 = (ZL_ParameterizedGraphDesc){ - .name = NULL, - .graph = cp_gid, - .customGraphs = NULL, - .nbCustomGraphs = 0, - .customNodes = NULL, - .nbCustomNodes = 0, - .localParams = &local_params, - }; - const auto cp_cp_gid = - ZL_Compressor_registerParameterizedGraph(compressor, &desc2); - EXPECT_NE(cp_cp_gid, ZL_GRAPH_ILLEGAL); - EXPECT_NE(cp_cp_gid, cp_gid); - EXPECT_NE(cp_cp_gid, gid); - - { - // Multiply-copied nodes should point back to their immediate parent. - const auto cp_cp_base_gid = - ZL_Compressor_Graph_getBaseGraphID(compressor, cp_cp_gid); - EXPECT_NE(cp_cp_base_gid, ZL_GRAPH_ILLEGAL); - EXPECT_EQ(cp_cp_base_gid, cp_gid); - } -} - -TEST_F(CGraphTest, baseGraphStandard) -{ - ZL_Compressor* const compressor = ZL_Compressor_create(); - ASSERT_TRUE(compressor); - - const auto std_gid = ZL_GRAPH_FIELD_LZ; - - cloneAndCheckGetBaseGraphID(compressor, std_gid); - - ZL_Compressor_free(compressor); -} - -TEST_F(CGraphTest, baseGraphStatic) -{ - ZL_Compressor* const compressor = ZL_Compressor_create(); - ASSERT_TRUE(compressor); - - const auto successor = ZL_GRAPH_ZSTD; - const auto gid = ZL_Compressor_registerStaticGraph_fromNode( - compressor, ZL_NODE_ZIGZAG, &successor, 1); - - cloneAndCheckGetBaseGraphID(compressor, gid); - - ZL_Compressor_free(compressor); -} - -TEST_F(CGraphTest, baseGraphDynamic) -{ - ZL_Compressor* const compressor = ZL_Compressor_create(); - ASSERT_TRUE(compressor); - - const auto name = "!tests.graph.dyn.stub"; - const auto graph_func = [](ZL_Graph*, ZL_Edge*[], size_t) noexcept { - ZL_RET_R_ERR(GENERIC, "Unimplemented! Can't actually run."); - }; - const auto validate_func = [](const ZL_Compressor*, - const ZL_FunctionGraphDesc*) noexcept { - // TODO: actually do some validation? - return 1; - }; - - const auto inputTypes = ZL_Type_any; - const auto desc = (ZL_FunctionGraphDesc){ - .name = name, - .graph_f = graph_func, - .validate_f = validate_func, - .inputTypeMasks = &inputTypes, - .nbInputs = 1, - .lastInputIsVariable = false, - .customGraphs = NULL, - .nbCustomGraphs = 0, - .customNodes = NULL, - .nbCustomNodes = 0, - .localParams = {}, - }; - const auto gid = ZL_Compressor_registerFunctionGraph(compressor, &desc); - - cloneAndCheckGetBaseGraphID(compressor, gid); - - ZL_Compressor_free(compressor); -} - -} // namespace diff --git a/tests/compress/test_compress.cpp b/tests/compress/test_compress.cpp index c1ed33ae3..e01d0223f 100644 --- a/tests/compress/test_compress.cpp +++ b/tests/compress/test_compress.cpp @@ -6,16 +6,32 @@ #include "openzl/common/assertion.h" #include "openzl/common/errors_internal.h" +#include "openzl/common/limits.h" +#include "openzl/common/wire_format.h" +#include "openzl/compress/cctx.h" +#include "openzl/cpp/CCtx.hpp" +#include "openzl/cpp/Compressor.hpp" #include "openzl/zl_compress.h" #include "openzl/zl_compressor.h" #include "openzl/zl_public_nodes.h" +#include "tests/utils.h" + using namespace ::testing; +using namespace ::openzl; namespace { class CompressTest : public Test { protected: + void SetUp() override + { + cctx_.setParameter(CParam::StickyParameters, 1); + cctx_.setParameter(CParam::FormatVersion, ZL_MAX_FORMAT_VERSION); + compressor_.selectStartingGraph(ZL_GRAPH_COMPRESS_GENERIC); + cctx_.refCompressor(compressor_); + } + size_t compress( void* dst, size_t dstCapacity, @@ -38,6 +54,9 @@ class CompressTest : public Test { return ZL_validResult(report); } + + CCtx cctx_; + Compressor compressor_; }; TEST_F(CompressTest, CompressionSucceedsWithSmallDstBuffer) @@ -55,4 +74,123 @@ TEST_F(CompressTest, CompressionSucceedsWithSmallDstBuffer) dst.data(), cSize0, data.data(), data.size(), ZL_GRAPH_CONSTANT); ASSERT_EQ(cSize0, cSize1); } + +TEST_F(CompressTest, CompressionZeroLengthCommentIsNotSent) +{ + std::string data(1000, 'a'); + std::string comment = ""; + auto d1 = cctx_.compressSerial(data); + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), (const uint8_t*)comment.data(), comment.size())); + auto d2 = cctx_.compressSerial(data); + EXPECT_EQ(d1, d2); +} +TEST_F(CompressTest, CompressionCommentReadCorrectly) +{ + std::string data(1000, 'a'); + std::string comment = "comment"; + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), (const uint8_t*)comment.data(), comment.size())); + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment(cctx_.get(), NULL, 0)); + auto dst = cctx_.compressSerial(data); + auto zfi = ZL_FrameInfo_create(dst.data(), dst.size()); + auto r = ZL_RES_value(ZL_FrameInfo_getComment(zfi)); + std::string reconstructed((const char*)r.data, r.size); + EXPECT_EQ(r.size, 0); + ZL_FrameInfo_free(zfi); +} + +TEST_F(CompressTest, CompressionZeroLengthCommentClearsField) +{ + std::string data(1000, 'a'); + std::string comment = "comment"; + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), (const uint8_t*)comment.data(), comment.size())); + auto dst = cctx_.compressSerial(data); + auto zfi = ZL_FrameInfo_create(dst.data(), dst.size()); + auto r = ZL_RES_value(ZL_FrameInfo_getComment(zfi)); + std::string reconstructed((const char*)r.data, r.size); + EXPECT_EQ(comment, reconstructed); + ZL_FrameInfo_free(zfi); +} + +TEST_F(CompressTest, CompressionCommentSentIsOverriden) +{ + std::string data(1000, 'a'); + std::string comment1 = "comment1"; + std::string comment2 = "comment2"; + + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), comment1.data(), comment1.size())); + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), comment2.data(), comment2.size())); + auto dst = cctx_.compressSerial(data); + auto zfi = ZL_FrameInfo_create(dst.data(), dst.size()); + auto r = ZL_RES_value(ZL_FrameInfo_getComment(zfi)); + std::string reconstructed((const char*)r.data, r.size); + EXPECT_EQ(comment2, reconstructed); + ZL_FrameInfo_free(zfi); +} + +TEST_F(CompressTest, CompressMultipleTimesCommentRead) +{ + std::string data(1000, 'a'); + std::string comment = "comment"; + + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), comment.data(), comment.size())); + // Compressing clears the comment in the cctx + auto dst = cctx_.compressSerial(data); + auto zfi = ZL_FrameInfo_create(dst.data(), dst.size()); + auto r = ZL_RES_value(ZL_FrameInfo_getComment(zfi)); + std::string reconstructed((const char*)r.data, r.size); + EXPECT_EQ(comment, reconstructed); + ZL_FrameInfo_free(zfi); + // Try again after message has been cleared + dst = cctx_.compressSerial(data); + zfi = ZL_FrameInfo_create(dst.data(), dst.size()); + r = ZL_RES_value(ZL_FrameInfo_getComment(zfi)); + std::string emptyComment((const char*)r.data, r.size); + // Expect no comment since sticky parameters are disabled + EXPECT_EQ(emptyComment.size(), 0); + ZL_FrameInfo_free(zfi); +} + +TEST_F(CompressTest, CompressCommentIsZeroedInCctxAfterCompression) +{ + std::string data(1000, 'a'); + std::string comment = "comment"; + + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), comment.data(), comment.size())); + // Compressing clears the comment in the cctx + auto dst = cctx_.compressSerial(data); + auto r = CCTX_getHeaderComment(cctx_.get()); + EXPECT_EQ(r.size, 0); +} + +TEST_F(CompressTest, CompressTooLongCommentFails) +{ + std::string comment(ZL_MAX_HEADER_COMMENT_SIZE_LIMIT + 1, 'a'); + EXPECT_ZS_ERROR(ZL_CCtx_addHeaderComment( + cctx_.get(), comment.data(), comment.size())); +} + +TEST_F(CompressTest, OlderFormatVersionCommentDoesNotChangeFrameHeader) +{ + std::string data(1000, 'a'); + std::string comment = "comment"; + std::string emptyComment = ""; + cctx_.setParameter(CParam::FormatVersion, ZL_COMMENT_VERSION_MIN - 1); + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), comment.data(), comment.size())); + auto dst = cctx_.compressSerial(data); + // Clear comment + EXPECT_ZS_VALID(ZL_CCtx_addHeaderComment( + cctx_.get(), emptyComment.data(), emptyComment.size())); + auto dst2 = cctx_.compressSerial(data); + // Ensure that the frame is identical regardless of the comment + EXPECT_EQ(dst, dst2); +} + } // namespace diff --git a/tests/compress/test_compressor_serialization.cpp b/tests/compress/test_compressor_serialization.cpp index 33af7a618..6a0bb5d28 100644 --- a/tests/compress/test_compressor_serialization.cpp +++ b/tests/compress/test_compressor_serialization.cpp @@ -2,10 +2,14 @@ #include +#include + #include "openzl/zl_compressor_serialization.h" #include "openzl/common/a1cbor_helpers.h" #include "openzl/common/logging.h" +#include "openzl/compress/private_nodes.h" +#include "openzl/cpp/Exception.hpp" #include "tests/datagen/random_producer/PRNGWrapper.h" #include "tests/datagen/structures/CompressorProducer.h" @@ -14,7 +18,7 @@ using namespace ::testing; -namespace zstrong { +namespace openzl { namespace tests { namespace { @@ -270,16 +274,25 @@ TEST_F(CompressorSerializationTest, Roundtrip) }, }; }; - auto lp = make_lp(); - auto cp_nid = ZL_Compressor_cloneNode(compressor, ZL_NODE_ZIGZAG, &lp); + auto lp = make_lp(); + const ZL_ParameterizedNodeDesc pndesc = { + .node = ZL_NODE_ZIGZAG, + .localParams = &lp, + }; + auto cp_nid = ZL_Compressor_registerParameterizedNode(compressor, &pndesc); EXPECT_NE(cp_nid, ZL_NODE_ILLEGAL); ips.push_back((ZL_IntParam){ .paramId = 123, .paramValue = 5678, }); - lp = make_lp(); - auto cp_cp_nid = ZL_Compressor_cloneNode(compressor, cp_nid, &lp); + lp = make_lp(); + const ZL_ParameterizedNodeDesc pndesc2 = { + .node = cp_nid, + .localParams = &lp, + }; + auto cp_cp_nid = + ZL_Compressor_registerParameterizedNode(compressor, &pndesc2); EXPECT_NE(cp_cp_nid, ZL_NODE_ILLEGAL); ZL_REQUIRE_SUCCESS( @@ -339,5 +352,73 @@ TEST_F(CompressorSerializationTest, GetDepsWithCompressor) } } +TEST_F(CompressorSerializationTest, RejectPrivateStoreAsParameterizedBase) +{ + // openzl::Compressor compressor; + // // Create a parameterize the private serial_store graph and register + // it. const ZL_GraphID serialStoreGraph = { + // ZL_PrivateStandardGraphID_serial_store + // }; + // const ZL_ParameterizedGraphDesc desc = { + // .name = NULL, + // .graph = serialStoreGraph, + // .customGraphs = NULL, + // .nbCustomGraphs = 0, + // .customNodes = NULL, + // .nbCustomNodes = 0, + // .localParams = NULL, + // }; + // auto paramGid = + // ZL_Compressor_registerParameterizedGraph(compressor.get(), + // &desc); + // ASSERT_NE(paramGid.gid, ZL_GRAPH_ILLEGAL.gid); + // compressor.selectStartingGraph(paramGid); + + // Deserializing a parameterized private graph should fail. The bytes come + // from a parameterized serial store graph if successfully executed. + const unsigned char serializedBytes[] = { + 0xa6, 0x67, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x68, 0x66, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0xa1, 0x70, 0x37, 0x34, 0x33, 0x64, + 0x66, 0x39, 0x34, 0x65, 0x65, 0x34, 0x63, 0x37, 0x38, 0x61, 0x32, 0x61, + 0xa2, 0x64, 0x69, 0x6e, 0x74, 0x73, 0xa0, 0x65, 0x62, 0x6c, 0x6f, 0x62, + 0x73, 0xa0, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0xa0, 0x66, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x73, 0xa1, 0x78, 0x19, 0x7a, 0x6c, 0x2e, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x2e, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x23, 0x30, 0xa5, 0x64, 0x74, 0x79, + 0x70, 0x65, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x64, 0x62, 0x61, 0x73, 0x65, 0x77, 0x7a, 0x6c, + 0x2e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2e, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x66, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x73, 0x80, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x80, + 0x66, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x70, 0x37, 0x34, 0x33, 0x64, + 0x66, 0x39, 0x34, 0x65, 0x65, 0x34, 0x63, 0x37, 0x38, 0x61, 0x32, 0x61, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x19, 0x7a, 0x6c, 0x2e, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2e, 0x73, 0x65, 0x72, 0x69, 0x61, + 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x23, 0x30, 0x6d, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x70, + 0x37, 0x34, 0x33, 0x64, 0x66, 0x39, 0x34, 0x65, 0x65, 0x34, 0x63, 0x37, + 0x38, 0x61, 0x32, 0x61 + }; + std::string serialized( + reinterpret_cast(serializedBytes), + sizeof(serializedBytes)); + + openzl::Compressor deserializedCompressor; + EXPECT_THROW( + { + try { + deserializedCompressor.deserialize(serialized); + } catch (const openzl::Exception& e) { + std::string msg = e.what(); + EXPECT_NE( + msg.find( + "The private store graph cannot be used as a base graph and parameterized"), + std::string::npos); + throw; + } + }, + openzl::Exception); +} + } // namespace tests -} // namespace zstrong +} // namespace openzl diff --git a/tests/compress/test_estimate.cpp b/tests/compress/test_estimate.cpp index 863c2a2c8..d11730fe5 100644 --- a/tests/compress/test_estimate.cpp +++ b/tests/compress/test_estimate.cpp @@ -12,11 +12,14 @@ #include #include "openzl/shared/estimate.h" +#include "tests/datagen/random_producer/compat_uniform_distribution.h" namespace { template std::vector generateFixedData(size_t cardinality) { + using compat_dist = + openzl::tests::datagen::compat_uniform_int_distribution; std::mt19937 gen(42); std::unordered_set tokens; if (cardinality > (size_t)std::numeric_limits::max()) { @@ -24,7 +27,7 @@ std::vector generateFixedData(size_t cardinality) tokens.insert(Int(i)); } } else { - std::uniform_int_distribution dis; + compat_dist dis; while (tokens.size() < cardinality) { tokens.insert(dis(gen)); } @@ -48,7 +51,7 @@ VariableData generateVariableData(size_t cardinality, size_t size) std::mt19937 gen(42); std::unordered_set tokens; std::uniform_int_distribution len(0, 100); - std::uniform_int_distribution chr; + openzl::tests::datagen::compat_uniform_int_distribution chr; while (tokens.size() < cardinality) { std::string x; @@ -64,9 +67,9 @@ VariableData generateVariableData(size_t cardinality, size_t size) } std::shuffle(values.begin(), values.end(), gen); VariableData data; - data.data = std::move(values); data.ptrs.reserve(values.size()); data.sizes.reserve(values.size()); + data.data = std::move(values); for (auto const& s : data.data) { data.ptrs.push_back(s.data()); data.sizes.push_back(s.size()); @@ -131,15 +134,17 @@ void testEstimateVariable() template void testComputeUnsignedRange() { + using compat_dist = + openzl::tests::datagen::compat_uniform_int_distribution; std::mt19937 gen(42); - std::uniform_int_distribution bounds( + compat_dist bounds( std::numeric_limits::min(), std::numeric_limits::max()); for (size_t i = 0; i < 1000; ++i) { auto const bound1 = bounds(gen); auto const bound2 = bounds(gen); auto const min = std::min(bound1, bound2); auto const max = std::max(bound1, bound2); - std::uniform_int_distribution value(min, max); + compat_dist value(min, max); std::vector values; values.reserve(100); for (size_t j = 0; j < 100; ++j) { @@ -157,8 +162,10 @@ void testComputeUnsignedRange() template std::vector genStridedData(int stride) { + using compat_dist = + openzl::tests::datagen::compat_uniform_int_distribution; std::mt19937 gen(42); - std::uniform_int_distribution dist; + compat_dist dist; std::bernoulli_distribution match(0.5); std::bernoulli_distribution copyStride(0.9); std::poisson_distribution offset(1.5); @@ -305,7 +312,7 @@ TEST(Estimate, GuessFloatWidth) ASSERT_EQ(ZL_guessFloatWidth(data8.data(), data8.size()), 1u); ASSERT_EQ(ZL_guessFloatWidth(data16.data(), data16.size() * 2), 1u); - std::uniform_int_distribution dist8; + openzl::tests::datagen::compat_uniform_int_distribution dist8; for (size_t i = 0; i < 8192; ++i) { data8[i] = dist8(gen); } diff --git a/tests/compress/test_features.cpp b/tests/compress/test_features.cpp index 4f829a3a6..046c8513d 100644 --- a/tests/compress/test_features.cpp +++ b/tests/compress/test_features.cpp @@ -23,7 +23,7 @@ void verifyIntegerFeatures( const std::map& featureMap) { VECTOR(LabeledFeature) features = VECTOR_EMPTY(kDefaultVectorCapacity); - const ZL_Report report = FeatureGen_integer(stream, &features, nullptr); + const ZL_Report report = FeatureGen_integer(stream, &features); ASSERT_FALSE(ZL_errorCode(report)); for (size_t i = 0; i < VECTOR_SIZE(features); ++i) { @@ -47,7 +47,7 @@ void generateStreamAndVerifyIntegerFeatures( const std::map& featureMap) { ASSERT_TRUE(std::is_arithmetic::value); - zstrong::tests::WrappedStream stream(streamData, ZL_Type_numeric); + openzl::tests::WrappedStream stream(streamData, ZL_Type_numeric); verifyIntegerFeatures(stream.getStream(), featureMap); } diff --git a/tests/compress/test_gbt.cpp b/tests/compress/test_gbt.cpp index f52f51913..352226a24 100644 --- a/tests/compress/test_gbt.cpp +++ b/tests/compress/test_gbt.cpp @@ -2,11 +2,13 @@ #include #include +#include #include #include #include "openzl/common/stream.h" // For stream usage in hardcoded feature generators #include "openzl/compress/selectors/ml/gbt.h" +#include "tests/datagen/random_producer/compat_uniform_distribution.h" #include "tests/zstrong/test_zstrong_fixture.h" using namespace ::testing; @@ -33,7 +35,8 @@ GBTPredictor_Tree generateTree( bool forceRight = false) { std::mt19937_64 mt(kRandomSeed); - std::uniform_int_distribution dist(0, 100); + openzl::tests::datagen::compat_uniform_int_distribution dist( + 0, 100); for (size_t i = 0; i < sz; ++i) { // Update necessary variables if node is leaf node @@ -45,13 +48,14 @@ GBTPredictor_Tree generateTree( (forceRight || dist(mt) % 2) ? rightChildIdx : leftChildIdx; const float value = (float)(i + 1) + valueOffset; - nodes.push_back({ - .featureIdx = featureIdx, - .value = value, - .leftChildIdx = leftChildIdx, - .rightChildIdx = rightChildIdx, - .missingChildIdx = missingChildIdx, - }); + nodes.push_back( + { + .featureIdx = featureIdx, + .value = value, + .leftChildIdx = leftChildIdx, + .rightChildIdx = rightChildIdx, + .missingChildIdx = missingChildIdx, + }); } GBTPredictor_Tree tree = { .numNodes = nodes.size(), .nodes = nodes.data() }; @@ -228,11 +232,14 @@ class GBTBinaryForestTest : public Test { void SetUp() override { const size_t kTreeNb = 5; - nodes = { { .featureIdx = -1, - .value = 0.2f, - .leftChildIdx = 0, - .rightChildIdx = 0, - .missingChildIdx = 0 } }; + GBTPredictor_Node node; + node.featureIdx = -1; + node.value = 0.2f; + node.leftChildIdx = 0; + node.rightChildIdx = 0; + node.missingChildIdx = 0; + nodes.clear(); + nodes.push_back(node); for (size_t i = 0; i < kTreeNb; i++) { trees.push_back( { .numNodes = nodes.size(), .nodes = nodes.data() }); @@ -245,7 +252,7 @@ class GBTBinaryForestTest : public Test { TEST_F(GBTBinaryForestTest, binaryClassification) { /* Result should be 1, since each tree in the 5 forests have value of 0.2. - * The resulting sum is greater than 0.5, so the predicted label is 1. + * The resulting sum is greater than 0, so the predicted label is 1. */ const GBTPredictor predictor = { .numForests = binaryForest.size(), .forests = binaryForest.data() }; @@ -327,8 +334,7 @@ class GBTBinaryModelTest : public Test { const size_t sz = 7; const std::vector streamData = { 0, 1, 2, 3, 4 }; - - const std::vector